作者:Fiona / 來源:白話區塊鏈
在之前的文章《什么是閃電網絡?》中,我們介紹過閃電網絡的定義和特點。你可能會發現,閃電網絡交易只在通道開啟和關閉時會訪問兩次BTC區塊鏈,期間大量的交易數據保存在鏈下本地。
那在沒有其他節點同步交易數據的情況下,誰來驗證最終結果的正確性呢?
通常情況下,如果是交易雙方共同確認并發布,即表明發布的是最終結果。不過如果是單方關閉通道并發布了過期交易,比特幣網絡的確也是無法識別其有效性的。
閃電網絡用懲罰機制很好地解決了這一問題。簡單說,就是如果交易一方在通道關閉時向比特幣網絡發布了過期結果,發現后會被沒收相應的BTC,沒收資金將給到對方。
閃電網絡開發者之一Alex Bosworth曾在Twitter上發布過這一懲罰機制的測試結果
這一懲罰機制是由閃電網絡的RSMC協議(RecoverableSequence 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天,過期后雙方交易結果將正式被比特幣網絡確認,懲罰將無法生效。
2、B在反對時需要提供相應的數據,因為閃電網絡通道關閉前的交易是保存在鏈下本地,所以交易雙方要妥善保管相關交易數據(包括簽名、對方發來的臨時私鑰等等),如果數據丟失,就算看到對方是假數據,也無法獲得賠償。
所以,新問題又來了:如何保證B能在指定時間內及時反對并提交證據呢?解決辦法有兩個,B自己運營一個比特幣全節點,或委托給第三方(或稱“瞭望塔”),幫助監控發布到全網的交易,發現是筆過期交易時,立即代理B在全網發布懲罰。
在閃電網絡中,我們似乎常能隱約看到第三方的身影:在通道中間節點跳轉上、在通道關閉時的交易有效期驗證代理上。它們不是必需的,但如果你希望享受更方便、更安全的交易服務,它們似乎又是不可或缺的。
總結:
閃電網絡的每筆交易,本質上等同于沒在比特幣網絡發布的比特幣交易,通道關閉時會發布到比特幣網絡。在發布交易的可靠性上,則是通過懲罰機制來執行的,作惡一方會罰沒所有費用。
你愿意付費給第三方,幫你監測閃電網絡交易結果的有效性嗎?歡迎在留言區留言。
附:2019-4-3閃電網絡指標,網絡容量超過1000,在過去30天內增長43%