如何利用雙花證明保護(hù)商家交易的風(fēng)險(xiǎn)
“用戶至上”始終是BCH所尊崇的理念。BCH作為點(diǎn)對(duì)點(diǎn)的電子現(xiàn)金,為了能夠給用戶提供良好的使用體驗(yàn),一直在不斷的優(yōu)化,尤其在交易費(fèi)用和交易速度方面。目前通過(guò)擴(kuò)大區(qū)塊容量,已經(jīng)將BCH的交易費(fèi)用降到可以忽略不計(jì)的水平,但是交易速度卻一直是開(kāi)發(fā)者的心病。
BCH社區(qū)也曾多次提出通過(guò)0確認(rèn)交易來(lái)減少用戶的等待時(shí)間,提升BCH的交易速度。甚至一些商家也將0確認(rèn)交易加入到他們的服務(wù)中,包括Cryptonize.it,Bitasia Exchange,Keys4coins,Bitpay,SatoshiDice,Mini-POS,Lieferando等等。不過(guò),0確認(rèn)交易卻始終需要解決一個(gè)安全問(wèn)題——雙花。
1. 什么是雙花?
所謂“雙花”就是雙重支付。在傳統(tǒng)的金融和貨幣體系中,由于金錢貨幣是物理實(shí)體,具有客觀唯一存在的屬性,所以可以避免雙重支付的情況。但是,當(dāng)加密貨幣作為一種支付貨幣時(shí),支付本質(zhì)上已經(jīng)變成了一種記賬的行為,這就可能出現(xiàn)雙重支付的問(wèn)題。
最為常見(jiàn)的一種雙花方式則是:一個(gè)人同時(shí)向網(wǎng)絡(luò)中發(fā)送兩筆交易,一筆交易發(fā)給自己(為了提高攻擊成功率,他給這筆交易增加足夠的小費(fèi)),一筆交易發(fā)給商家。由于發(fā)送給自己的交易中含有較高的費(fèi),會(huì)被礦工打包成區(qū)塊的概率比較高。通過(guò)這個(gè)過(guò)程,用戶可以在不花錢的情況下獲得商品,對(duì)商家造成一定的損失。
2. 雙花證明與轉(zhuǎn)發(fā)
為了解決雙花問(wèn)題,BCH社區(qū)也提出了多種方法:雙花警報(bào)、雙花證明與轉(zhuǎn)發(fā)、Avalanche等。雖然大家一致認(rèn)為Avalanche是解決該問(wèn)題的最佳方法,不過(guò)由于Avalanche的開(kāi)發(fā)比較復(fù)雜,BCH的開(kāi)發(fā)者另辟蹊徑,率先完成了“雙花證明與轉(zhuǎn)發(fā)”方案。
BCH開(kāi)發(fā)者Thomas Zander在reddit發(fā)布信息表示:“雙花證明已實(shí)現(xiàn),第一概念驗(yàn)證已經(jīng)可以通過(guò)Flowee Hub實(shí)行”。
他表示:“在BCH交易中,礦工和節(jié)點(diǎn)使用 ‘first seen’接收交易的原則,這意味著接受未經(jīng)證實(shí)的交易(即即時(shí)交易)通常是安全的,因?yàn)槿魏坞p重支出都將被整個(gè)網(wǎng)絡(luò)拒絕。但是當(dāng)我們積極嘗試攻擊商家時(shí),仍然存在雙重花費(fèi)的情況。而這種情況下,商家是不會(huì)收到通知的。雙花證明則能夠通過(guò)一個(gè)相對(duì)較?。ê愣ù笮。┑南?,證明消費(fèi)者發(fā)出了兩個(gè)不同的交易,試圖花費(fèi)你將收到的錢。這項(xiàng)工作的一個(gè)重要部分是確保原始的雙重支出交易無(wú)法重建,從而讓雙花更難進(jìn)行”。
雙花證明之前一直是一個(gè)想法,最近幾周Thomas Zander編寫了核心代碼,完成了設(shè)計(jì)工作,現(xiàn)在已經(jīng)是Flowee Hub的一部分。
3. 雙花證明受益者是誰(shuí)?
雙花證明主要的作用是通知接受資金的人,付款人試圖欺騙他們。通過(guò)接收雙花的證據(jù),賣家可以更快地了解到欺騙他們的企圖并采取適當(dāng)措施。雙花證明的設(shè)計(jì)允許完整節(jié)點(diǎn)和SPV錢包接收此消息,并且可以進(jìn)行加密檢查以確保雙花證明是合法的(人們不能欺騙別人花費(fèi)額外的雙倍資金)。如果出現(xiàn)雙花,可以將此作為司法起訴的實(shí)際證據(jù)。
因此,雙花證明的重點(diǎn)是避免雙花,通知和保護(hù)商家,降低了接受0確認(rèn)交易的風(fēng)險(xiǎn)。
4. 雙花證明的局限性
對(duì)于那些不與礦工勾結(jié),而是依賴網(wǎng)絡(luò)延遲或礦工策略差異進(jìn)行雙花的對(duì)手,雙花證明是有用的。對(duì)于與礦工勾結(jié)的雙重支付,這在確認(rèn)之前是無(wú)法發(fā)現(xiàn)的,雙花證明的作用并不大。不過(guò),這一點(diǎn)可以通過(guò)Avalanche解決。
另外,由于雙花證明中采用了Schnorr簽名方法,雙花證明僅針對(duì)BCH起作用,對(duì)于BTC等其他鏈?zhǔn)菬o(wú)用的。
雙花證明的實(shí)現(xiàn),降低了BCH的雙花幾率,提高了BCH的零確認(rèn)交易的安全性。安全的零確認(rèn)交易對(duì)于BCH是意義重大的。不僅能夠提高BCH的交易體驗(yàn),也能增加BCH的反脆弱性。假設(shè)BCH網(wǎng)絡(luò)最終讓整個(gè)生態(tài)接受了安全的零確認(rèn),那哪怕是所有的BCH礦池被同一時(shí)間摧毀,對(duì)所有用戶來(lái)說(shuō),也無(wú)關(guān)緊要,交易照發(fā),只是零確認(rèn)罷了,而且零確認(rèn)的交易還可以再發(fā)給下一家,而確認(rèn)只需要慢慢等礦工恢復(fù)生產(chǎn)就好了。