來源:位元組元CKB
作為構建在比特幣區塊鏈之上的P2P 網絡,閃電網絡不僅能夠有效解決比特幣「又慢又貴」 的難題,而且在加密支付領域有著其他解決方案無可比擬的優勢,是我們實現P2P經濟的基礎,也是我們憧憬的Web5 世界的重要組成部分。
今天這篇文章,我們將繼續介紹閃電網絡,講清楚閃電網路的運作原理和相關技術。
閃電網路的基石:支付通道
閃電網路本質上是一個精心設計的支付通道系統。以Alice 和Bob 之間的交易為例,他們使用閃電網路進行結算時,會經歷以下三個關鍵階段:開啟通道、進行交易、關閉通道。
1、開啟通道:建構信任的橋樑
所謂開啟通道,實質上是創造一個由參與雙方共同控制的多簽錢包,並向該錢包注入資金。這個錢包所接收的資金總額即為這個頻道的餘額。
我們假設Alice 和Bob 各自持有10 萬聰BTC。首先,他們需要將各自的10 萬聰轉入一個由兩人共同控制的多簽錢包地址,作為建立通道的質押金。這筆交易,被稱為“Funding Transaction(充值交易)” 或“Anchor Transaction(錨點交易)”,需要廣播到網路並記錄在比特幣區塊鏈上,以表明通道的正式開啟。在這個例子中,連接Alice 和Bob 的支付通道實質就是一個普通的2-of-2 多簽名錢包,裡麵包含20 萬聰的餘額(為簡化說明,我們暫不考慮開啟通道時需要支付的礦工費)。
2、開始交易:鏈下交易的藝術
通道開啟後,參與雙方的後續交易將全部在比特幣區塊鏈之外進行,實現了高效的鏈下結算。讓我們假設Alice 和Bob 之間進行了以下3 次交易:
-
Alice 向Bob 轉帳1 萬聰,此時Alice 擁有9 萬聰,Bob 擁有11 萬聰。
-
Alice 繼續向Bob 轉帳2 萬聰,此時Alice 擁有7 萬聰,Bob 擁有13 萬聰。
-
Bob 向Alice 轉帳1 萬聰,此時Alice 擁有8 萬聰,Bob 擁有12 萬聰。
從上面的例子中,我們可以看到,無論Alice 和Bob 之間進行多少次轉賬,他們之間的通道餘額始終保持不變,都是20 萬聰。
每次Alice 和Bob 發生交易時,雙方需要更新通道中各自的餘額,並交換經過簽名的「承諾交易(Commitment Transaction)」。這些交易本身都是有效的,可以隨時發送到比特幣網路中,但雙方通常會將其保存而不廣播,除非他們打算關閉通道。如此一來,通道內Alice 和Bob 的餘額狀態,一秒內變動幾十次、幾百次都沒問題,更新的速度僅受限於雙方創建、簽名和向對方發送承諾交易的速度。
3、關閉通道:最終結算的時刻
關閉通道可以透過兩種方式進行:一是雙方一致同意關閉,將一筆結算交易(Settlement Transaction)發送到比特幣網路中;二是單方決定關閉,將最後一筆承諾交易(Commitment Transaction)發送到比特幣網路中。後者的設計是為了防止某一方離線導致另一方在頻道中的餘額一直被鎖定的情況。
在Alice 和Bob 的例子中,他們在進行了3 筆交易後決定關閉通道。關閉後,Alice 取回8 萬聰,Bob 取回12 萬聰(同樣,為簡化說明,我們不考慮關閉通道時產生的礦工費)。
雙向支付通道的安全保障:從LN-Penalty 到eltoo 再到Daric
上文提到,關閉通道既可以雙方一致同意關閉,也可以是單方決定關閉。那麼,在雙向支付通道中,如何防止某一方詐欺呢?例如上面的例子中,如何防止Bob 拿著第2 次而不是第3 次承諾交易來關閉通道呢?如果使用第2 次的承諾交易關閉通道,Bob 可以抵賴掉最後付給Alice 的1 萬聰付款,這顯然看起來很有誘惑力。
比特幣閃電網路引入了LN-Penalty 機制來防止某一方把一個過時的但對自己有利的狀態發送的鏈上來關閉通道。 LN-Penalty 使用「不對稱的承諾交易」 和「撤銷金鑰」 等複雜技術,確保如果Bob 試圖使用過時的承諾交易關閉通道,Alice 將有權獲得通道內的全部資金—— 20 萬聰。這種懲罰機制有效遏止了潛在的詐欺行為。
然而,LN-Penalty 也存在一些不足,除了自身的複雜性之外,還造成了存儲負擔—— 用戶必須保存過去每一次更新通道狀態時候的資料,還有一些罕見的情形可能會導致它意外地懲罰誠實的使用者。
為了克服這些缺點,早在2018 年,比特幣社群就提出了名為「eltoo」 的解決方案,來消除儲存負擔和意外懲罰的風險。在這個方案中,用戶只需保存最新一筆承諾交易及其結算交易即可。然而,eltoo 方案至今還不可用,因為它的實施需要對比特幣進行軟分叉,引入一個新的簽名哈希類型—— SIGHASH_ANYPREVOUT。
Nervos CKB 推出的閃電網路Fiber Network 則選擇了2022 年提出的 Daric 方案。 Daric 在eltoo 的基礎之上,有效解決了瞭望塔(Watchtower)的成本和安全性問題。瞭望塔是運行在獨立機器和網路上的閃電網路節點,會監控支付通道,並在偵測到惡意行為時幫助受害方執行罰沒交易,從而保護用戶的資金。節點操作者通常會運行自己的瞭望塔,以保護自己的節點。
結語
閃電網路作為比特幣擴容解決方案,其核心在於巧妙設計的支付通道系統。透過開啟通道、鏈下交易和關閉通道三個階段,閃電網路大幅提升了交易速度並降低了成本。
為確保雙向支付通道的安全,閃電網路採用了LN-Penalty 機制,比特幣社群也提出了eltoo、Daric 等更優的安全機制,來有效防範潛在的詐欺行為。
這些創新使得閃電網路在保證安全性的同時,為比特幣網路帶來了顯著的效能提升,為快速、低成本的小額支付鋪平了道路。