閃電網路開發者之一Alex Bosworth曾在Twitter上釋出過這一懲罰機制的測試結果
這一懲罰機制是由閃電網路的RSMC協議(Recoverable Sequence Maturity Contract,中文翻譯為“序列到期可撤銷合約”)實現的(為方便記憶,不妨參考在白話之前文章中對RSMC的翻譯:肉絲冒菜)。
事實上,RSMC不僅可以避免或懲罰欺詐行為,也保障著閃電網路每筆交易的有效性。下面透過一個簡單的閃電網路支付流程,來說明在RSMC協議下,閃電網路交易是如何發生的:
1、A和B在閃電網路上交易,雙方都向一個多重簽名地址中存入0.5BTC,此時會開啟閃電網路的支付通道,通道內共有1BTC;
2、交易通道開啟期間,AB之間可以發生多次轉帳,每次轉帳雙方都會進行簽字認可,通道每次會判斷雙方餘額是否足夠支付,並在轉帳完成後更新最新餘額、 同時作廢之前的交易。假設多次交易後,A餘額有0.2BTC,B餘額為0.8BTC。
這裡需要說明的是,在通道開啟期間,因為交易資料沒有釋出到比特幣網路上,通道內的餘額不會影響雙方真實比特幣地址餘額。
3、A不再想和B交易,準備結束交易提現走人,可以把有雙方簽字的最終餘額提交給比特幣網路,並關閉支付通道。如果在指定時間B不反對,那麼結果就在比特幣網路上正式確認,餘額按協議轉入雙方預先設立的提現地址。如果B在指定時間內反對並提交證據,證明A釋出的是雙方之前過期交易的餘額分配方案,那麼A資金將被全部罰沒給B。
從上面的流程中,我們可以看出RSMC協議可以懲罰欺詐情況,不過在過程中有兩點仍然需要注意:
1、B需要在指定時間內發現A造假;這一時間可以自定義,比如可以設定為1000個區塊確認時間,即差不多是7天,如果在這7天內沒有被發現,那過期後雙方交易結果將正式被比特幣網路確認,懲罰將無法生效。
2、B在反對時需要提供相應的資料,因為閃電網路通道關閉前的交易是儲存在鏈下,所以交易雙方要妥善保管相關交易資料(包括簽名、對方發來的私鑰等等),如果資料丟失,就算知道對方是假資料,也無法獲得賠償。
所以,新問題又來了:如何保證B能在指定時間內及時反對並提交證據呢?解決辦法有兩個:B自己成為閃電節點,或委託第三方(也稱“瞭望塔”)來實時監控閃電網路釋出到比特幣鏈上的交易是否有效,如果發現是筆過期交易時,立即代理B釋出懲罰。
在閃電網路中,我們似乎常隱約看到第三方的身影:在通道中間節點跳轉上、在通道關閉時的交易有效性驗證代理上。它們不是必需的,但如果你希望享受更方便、更安全的交易服務,它們似乎又是不可或缺的。
總結:
閃電網路的每筆交易,本質上等同於沒在比特幣網路釋出的比特幣交易,通道關閉時會發布到比特幣網路。在釋出交易的可靠性上,則是透過懲罰機制來執行的,作惡一方會被罰沒所有費用。
作者 | Fiona
出品|白話區塊鏈(ID:hellobtc)