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





