比特幣閃電網絡是什麼?閃電網絡是如何工作的?

比特幣閃電網絡是什麼?閃電網絡是如何工作的?作為構建在比特幣區塊鏈之上的 P2P 網絡,閃電網絡不僅能夠有效解決比特幣 “又慢又貴” 的難題,而且在加密支付領域有著其他解決方案無可比擬的優勢,是我們實現 P2P 經濟的基礎,也是我們憧憬的 Web5 世界的重要組成部分。

今天腳本之傢小編給大傢分享的這篇文章,將為我們詳細介紹閃電網絡,講清楚閃電網絡的運行原理和相關技術。下面一起看看吧!

比特幣閃電網絡是什麼?閃電網絡是如何工作的?

閃電網絡的基本原理

閃電網絡(Lightning Network,以下簡稱 LN)是最古早的比特幣二層拓展方案之一,其主要應用場景在於實現快速且低成本的比特幣點對點支付。

閃電網絡的技術核心是狀態通道,狀態通道是中本聰在比特幣白皮書提到的比特幣拓展方案。比特幣開發者 Joseph Poon 和 Thaddeus Dryja 基於狀態通道發佈瞭閃電網絡的相關論文,最終,由 Lightning Labs、Blockstream、ACINQ 等團隊開發落地,並受到 Jack Dorsey 等一眾比特幣 OG 的支持和追捧。

狀態通道應用於閃電網絡,實現瞭快速的、近乎零成本的點對點支付功能。

現在,我們先梳理下狀態通道的基本運作原理:

當交易雙方建立狀態通道進行交易,隻有第一筆(建立狀態通道)和最後一筆交易(關閉狀態通道)會在比特幣鏈上進行,剩餘的所有交易都在比特幣鏈外進行,也就是在狀態通道內進行。

在狀態通道內進行的比特幣交易(可以理解為此時的 BTC 並非比特幣一層的 BTC,而是在狀態通道這個 “比特幣二層上的 BTC”),交易快速便捷,成本幾乎為零,這裡交易雙方的賬本會出現實時變化的 “BTC 資產負債表”,而且每次交易都需要簽名,以保障交易的合法性和準確性。

當雙方任意一方關閉狀態通道,系統就會把最新的 “BTC 資產負債表” 提交到比特幣一層去驗證,這個驗證一般會設置 7 天的驗證期,或者叫 “檢舉期”,本質就是雙方在這 7 天內都可以發起檢舉,時間到期後,A、B 雙方將根據最新的 ‘BTC 資產負債表” 拿到屬於自己的 BTC 數量。如果雙方都能及時確認,則交易可以立即完成。(以太坊的二層拓展方案 OP-Rollup 就是仿照瞭狀態通道的原理,所有交易在二層進行,然後再向以太坊一層提交驗證 , 同時有 7 天的挑戰期)

我們舉例說明:

假設有 A、B 兩個 LN 節點要使用狀態通道進行 BTC 交易,具體步驟如下:

1、A、B 兩個 LN 節點建立狀態通道。

A、B 雙方都需要向狀態通道存入預先設定的 BTC 數量,比如,A 存入 10 個 BTC,B 存入 5 個 BTC,此時,會生成一個新的比特幣多簽地址,A、B 雙方鎖定的 BTC 數量就在 C 地址體現出來(C 地址是 AB 雙方生成的多簽地址,類似一個無私鑰的智能合約地址)。

此時 A、B 雙方的 “BTC 資產負債表” 是:

A:10BTC

B: 5BTC

C:15BTC

2、當 A 和 B 之間開始交易,A、B 的 “BTC 資產負債表 “開始更新

假設,第一筆交易,A 執行簽名向 B 發送 1 個 BTC,

BTC 資產負債表更新為:

A :9BTC

B :6BTC

C :15BTC

第二筆交易,B 執行簽名向 A 發送 5 個 BTC

BTC 資產負債表更新為:

A:14BTC

B:1BTC

C:15BTC

以此類推,隨著 A、B 雙方的不斷交易,BTC 資產負債表不斷更新(本質就是二層賬本不斷更新,隻是還沒有回到一層驗證)

3、關閉狀態通道

A、B 雙方任意一方都可以隨時關閉狀態通道

假設,關閉狀態通道時,BTC 資產負債表是:

A:12BTC

B:3BTC

C:15BTC

在關閉狀態通道的同時,最新的 “BTC 資產負債表” 將被提交到比特幣一層,同時,啟動為期 7 天的驗證,假設,A、B 雙方都無異議則交易完成。假設,任意一方沒有及時驗證確認,7 天到期後,按照 “BTC 資產負債表” 來分配 A、B 雙方應該得到的 BTC 數量。

以上,就是狀態通道的基本運作原理。

總結就是:狀態通道采用互相簽名 + 時間鎖的機制設計,在沒有第三方托管的情況下,可以安全的實現比特幣的點對點支付,同時,通過鏈外交易 + 主鏈驗證的方式來實現快捷、低成本的交易。

閃電網絡的基石:支付通道

閃電網絡本質上是一個精心設計的支付通道系統。以 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)的成本和安全性問題。瞭望塔是運行在獨立機器和網絡上的閃電網絡節點,會監控支付通道,並在檢測到惡意行為時幫助受害方執行罰沒交易,從而保護用戶的資金。節點操作者通常會運行自己的瞭望塔,以保護自己的節點。

將雙向支付通道擴展成閃電網絡:多跳路由技術

我們同樣使用 Alice 和 Bob 建立通道作為基本背景,但這個世界上除瞭 Alice 和 Bob,其他人也想接入閃電網絡該怎麼辦?有什麼辦法可以把所有人都接入網絡並保證可以向網絡中的任一一個人發起支付?

為瞭解決這一問題,我們需要將雙向支付通道擴展成閃電網絡,並使用多跳路由技術。“路由(routing)” 的字面意思是 “尋找路徑”,在閃電網絡中,就是要找出由通道前後連接而成的、給特定對象支付的路徑。

以 Alice 向 David 支付 2000 聰為例,假設他們之間沒有建立支付通道,不過 Alice 和 Bob 之間、Bob 和 Carol 之間、 Carol 和 David 之間都已經建立瞭支付通道。在這種情況下,Alice 可以先把錢轉給 Bob ,再由 Bob 轉給 Carol,最後 Carol 轉給 David,這樣看起來就實現瞭從 Alice 到 David 間的支付通道,其中 Bob 和 Carol 充當瞭網絡中的路由節點。如果 Alice 和 Eva 之間、Eva 和 David 之間也建立瞭支付通道,那麼 Alice 也可以選擇先把錢轉給 Eva,再由 Eva 轉給 David。

比特幣閃電網絡是什麼?閃電網絡是如何工作的?

從路徑上來看,顯然 Alice 通過 Eva 轉錢給 David 是路徑最短的選擇,但在實際操作過程中,看上去最短的路徑並不總是最佳選擇,因為還需要考慮其他因素,比如通道的容量、路由節點的收費標準、路由節點是否在線,等等。

目前,主流的比特幣閃電網絡實現(客戶端),如 Lightning Labs 開發的 LND 和 Blockstream 開發的 CLN(Core Lightning),在路由算法上都使用瞭 Dijkstra 算法的某個變種,Nervos CKB 推出的閃電網絡 Fiber Network 同樣會使用 Dijkstra 算法來尋找最優路由路徑。

保障路由安全:從 HTLC 到 PTLC

在上面 Alice 要給 David 付款的例子中,我們如何保證中間的路由節點不會耍賴,不會惡意扣留資金呢?傳統金融系統通常依賴大型知名金融中介機構的信用擔保,但閃電網絡是一個 P2P 網絡,並沒有這樣一個獨立於交易者的第三方去提供信用擔保,我們需要一種不同的機制來保障交易安全。這就是 HTLC(哈希時間鎖合約)的作用所在。

HTLC 由兩部分組成:哈希驗證和過期驗證。讓我們以 Alice 要給 David 支付 2000 聰,選擇 Bob 和 Carol 充當網絡中的路由節點為例,理解 HTLC 的工作原理:

比特幣閃電網絡是什麼?閃電網絡是如何工作的?

  • 首先,David 要生成一個秘密值 R,任何詞語、任何數字都可以充當這個秘密值,然後計算出其哈希值 H 並把它發給 Alice。這個哈希值 H 會放在交易輸出的鎖定腳本中,隻有知道 H 所對應的秘密值 R 的人才能使用這個輸出,而 R 在閃電網絡中被稱為 “原像(preimage)”。如果秘密值 R 沒有及時地公開,這筆支付就用不瞭瞭,發送者會收回所有的資金。

  • 然後,Alice 使用收到的哈希值 H 創建一個 HTLC,時間鎖設置成未來 5 個區塊,輸出的數額是 2020 聰,其中 20 聰是給路由節點 Bob 的手續費。用大白話來表述就是,Alice 會給 Bob 支付 2020 聰,隻要他能在 5 個區塊內提供秘密值 R,否則這些錢會返回給 Alice。

  • Bob 在自己和 Carol 的通道中,使用跟 Alice 所提供的同樣的哈希值 H 創建一個 HTLC,時間鎖設置成未來 4 個區塊,輸出的數額是 2010 聰,其中 10 聰是給路由節點 Carol 的手續費。用大白話來表述就是,Bob 會給 Carol 支付 2010 聰,隻要他能在 4 個區塊內提供秘密值 R,否則這些錢會返回給 Bob。

  • Carol 在自己和 David 的通道中,使用同樣的哈希值 H 創建一個 HTLC,時間鎖設置成未來 3 個區塊,輸出的數額是 2000 聰。用大白話來表述就是,Carol 會給 David 支付 2000 聰,隻要他能在 3 個區塊內提供秘密值 R,否則這些錢會返回給 Carol。

  • David 用秘密值 R 解鎖 Carol 設置的 HTLC,拿走 2000 聰。

  • David 拿走資金之後,Carol 也會知道這個秘密值 R,他用 R 解鎖  Bob 設置的 HTLC 並拿走 2010 聰。

  • Carol 拿走資金之後,Bob 也得到瞭秘密值 R,他用 R 解鎖 Alice 設置的 HTLC 並拿走 2020 聰。

通過這種機制,Alice 成功向 David 支付瞭 2000 聰,而無需直接建立支付通道。整個過程中,各方無需相互信任,路由節點也獲得瞭應得的手續費。即使支付在某個環節中斷,由於時間鎖定機制的存在,各方都不會遭受損失,資金會在鎖定時間過後自動返回。

然而,HTLC 也存在一個潛在的隱私問題:整條路徑使用的都是同一個秘密值(原像)。如果某個實體控制瞭支付路徑上的多個節點,就可能通過比對不同節點的輸入和輸出,推斷出完整的交易信息,甚至猜測出付款方和收款方,這就削弱瞭閃電網絡通過洋蔥路由實現的隱私保護。

為瞭解決這個問題,比特幣社區提出瞭 PTLC(點時間鎖合約)。在 PTLC 方案中,路徑中的每一跳都使用不同的秘密值,這樣一來,通過洋蔥路由實現的隱私性就得到瞭保護。Nervos CKB 推出的閃電網絡 Fiber Network 計劃在未來引入 PTLC,進一步增強閃電網絡的隱私保護能力。

結語

閃電網絡作為比特幣擴容解決方案,其核心在於巧妙設計的支付通道系統。通過開啟通道、鏈下交易和關閉通道三個階段,閃電網絡大幅提升瞭交易速度並降低瞭成本。

為確保雙向支付通道的安全,閃電網絡采用瞭 LN-Penalty 機制,比特幣社區還提出瞭 eltoo、Daric 等更優的安全機制,來有效防范潛在的欺詐行為。

這些創新使得閃電網絡在保證安全性的同時,為比特幣網絡帶來瞭顯著的性能提升,為實現快速、低成本的小額支付鋪平瞭道路。

隨著技術的不斷進步,閃電網絡還在持續優化和改進。從 LN-Penalty 到 eltoo 再到 Daric,從 HTLC 到 PTLC,我們看到瞭閃電網絡在安全性、隱私保護等方面的不斷提升。未來,隨著更多創新技術的應用和生態系統的完善,閃電網絡有望成為推動加密貨幣普及的關鍵基礎設施,為實現真正的 P2P 經濟貢獻力量

參考資料

  • https://www.btcstudy.org/2021/09/15/lightning-network-in-depth-part-1-payment-channels/
  • https://www.btcstudy.org/2021/09/15/lightning-network-in-depth-part-2-htlc-and-payment-routing/
  • https://www.btcstudy.org/2022/01/27/breaking-down-the-bitcoin-lightning-network-eltoo/
  • https://www.btcstudy.org/2024/02/07/lightning-network-technology-improvement-and-users-experience-part-2/
  • https://www.btcstudy.org/2024/02/23/lightning-network-technology-improvement-and-users-experience-part-3/
  • https://www.btcstudy.org/2022/08/19/what-are-ptlc/ 

以上就是腳本之傢小編給大傢分享的解讀比特幣閃電網絡工作原理瞭,希望此篇文章能夠幫助大傢更好的瞭解比特幣閃電網絡工作原理。

原创文章,作者:fanbi,如若转载,请注明出处:http://fanbi.net/btc/4735

Like (0)
fanbifanbi
Previous 2024年10月26日 下午2:48
Next 2024年10月26日 下午2:50

相关推荐

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *