白話區塊鏈
從入門到精通,看我就夠了!
「白話區塊鏈入門」系列讓零基礎的小夥伴也能輕鬆入門,剛入門的小夥伴建議從第一期開始閱讀哦!掃描文末二維碼,獲取零基礎文集。歡迎大家在文末點贊留言,說說你最想了解的區塊鏈小知識,參與有獎哦!
作者 | Fiona
出品|白話區塊鏈(ID:hellobtc)
在之前的文章《什麼是閃電網路》、《星巴克支援比特幣支付,對閃電網路意味著什麼》中,我們介紹過閃電網路的定義和特點。你可能會發現,閃電網路交易只在通道開啟和關閉時會訪問兩次BTC區塊鏈,期間大量的交易資料儲存在鏈下。
那在沒有其他節點同步交易資料的情況下,誰來驗證上鍊最終結果的正確性呢?
其實,通常情況是交易雙方共同確認併發布,即表明釋出的是雙方都認可的正確結果。不過如果是單方關閉通道併發布了過期交易,比特幣網路的確也是無法立即識別其有效性的。
如何解決這一問題呢?這就要介紹下閃電網路的懲罰機制了。簡單說,就是如果交易一方在通道關閉時向比特幣網路釋出了過期交易的餘額,在被發現後將會被沒收相應的BTC金額,沒收金額直接給到對方。
閃電網路開發者之一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釋出懲罰。
在閃電網路中,我們似乎常隱約看到第三方的身影:在通道中間節點跳轉上、在通道關閉時的交易有效性驗證代理上。它們不是必需的,但如果你希望享受更方便、更安全的交易服務,它們似乎又是不可或缺的。
總結:
閃電網路的每筆交易,本質上等同於沒在比特幣網路釋出的比特幣交易,通道關閉時會發布到比特幣網路。在釋出交易的可靠性上,則是透過懲罰機制來執行的,作惡一方會被罰沒所有費用。
你願意付費給第三方,幫你監測閃電網路交易結果的有效性,從而保障你的資產安全麼?歡迎在留言區留言。
附:2019-4-3閃電網路指標,網路容量超過1000,在過去30天內增長43%