免責聲明: 金色財經作為開放的資訊分享平臺,所提供的所有資訊僅代表作者個人觀點,與金色財經平臺立場無關,且不構成任何投資理財建議。
APP
中國版App下載 Android & iPhone
金色專欄
  • 專欄申請

理解閃電網絡:結算并關閉支付通道

閃電網絡

目前,Alice 和 Bob 已經開通了一個雙向支付通道,并分別往通道中存入了 5btc。他們已經來回完成了兩筆交易。在當前通道狀態下,Alice 和 Bob 可以通過終止通道各自取回 5btc。

現在,他們想要在通道中放入一個哈希時間鎖合約(HTLC),以確保 Bob 在用 1btc 交換 Carol 手中的秘密值后,Bob 可以從 Alice 那里取回 1btc。

就像之前的步驟一樣(詳見 Part 1),Alice 和 Bob 先要各自創建一筆新的承諾事務。這兩個承諾事務跟之前創建的承諾事務很像,包含一個普通的輸出、一個帶有 CSV ?時間鎖(相對時間鎖)的多簽地址輸出和一個特殊的哈希鎖。接著,像之前的步驟一樣,Alice 和 Bob 交換之前的秘密值來讓之前的通道狀態失效。一旦交換過秘密值后,Alice 和 Bob 就可以簽署各自的承諾事務,并在任何時候將這承諾事務發送到區塊鏈上。

這些步驟與之前的步驟基本相同,除了一點。Alice 和 Bob 新創建的承諾事務包含一個新的輸出,而這個輸出價值 1btc。(因此,支付通道中的 btc 余額變成了 Alice:4;Bob:5;新的輸出:1。)

這個新的輸出本質上是哈希時間鎖合約,而且相比其它輸出更有趣,因為有三種方式可以解鎖它。

第一種方法是,只有當后序事務包含 Bob 的簽名和秘密值時,(包含在 Alice 和 Bob 的承諾事務內的)新的輸出才會釋放 btc。無論 Alice 或 Bob 是否簽署并廣播承諾事務,只有 Bob 可以解鎖該輸出 —— 只要他將秘密值包含在后序事務內。但是,兩個承諾事務存在一處細微差別:如果 Bob 終止通道,會受到 CSV 時間鎖的約束。這時,Bob 必須等待 1000 個區塊才能取回自己的 btc。(如果 Alice 終止通道,Bob 就可以立即取回自己的 btc。)

為什么 Bob 需要等待 1000 個區塊呢?原因跟我們之前解釋的差不多:如果 Bob 試圖簽署并廣播過期的通道狀態,Alice 就可以拿走 1 btc。這就是解鎖輸出的第二種方法。如果 Alice 提供 Bob 的(最新)秘密值,就可以 “偷走” 通道內的資金。

Alice 和 Bob 可以玩這樣一個游戲:如果 Alice 試圖廣播過期的通道狀態,Bob 可以使用 Alice 的秘密值取走那 1 btc(甚至無需提供秘密值)。

第三種方法是,與其它哈希時間鎖合約一樣,這兩個承諾事務也包含常見的 CLTV 時間鎖(絕對時間鎖)超時退回機制,即,如果 Bob 沒有在限期(比如兩周)內將秘密值包含在后序事務內,Alice 就可以取回自己的1btc。在這種情況下,終止通道的人是 Alice 還是 Bob 都沒關系。

那么,具體是如何操作的?

Alice 和 Bob 各自持有部分有效的承諾事務。如果 Alice 將自己持有的(也是 Bob 發給她的)承諾事務發送到區塊鏈上,就會立即發送 5btc 給 Bob。Alice 則需要等待 1000 區塊之后才能取回自己的 4btc。另外,Bob 有兩周時間提供秘密值,解鎖 “哈希時間鎖合約輸出” 對應的 1 btc。(如果他沒有在兩周內提供秘密值,Alice 就可以取回這 1btc。)

與此同時,Bob 隨時都可以將他的承諾事務上鏈,并立即將 4btc 發送給 Alice。接著,他必須等待 1000 區塊過后才能從一個地址那里取走 5 btc,如果他在限期內提供秘密值,還能解鎖 “哈希時間鎖合約輸出” 對應的 1 btc。(如果他沒有在兩周內提供秘密值,Alice 就可以取回這 1btc。)

當然了,如果 Alice 或 Bob 在將來任何時候試圖作惡,簽署并廣播過期的通道狀態,另一方都可以阻止作惡方,并偷走通道內的所有 btc。

2

結算狀態

這時,Bob 一定會收到 1btc 來交換他手中的秘密值(假如他有的話)。他要做的只是簽署并廣播他從 Alice 那里得到的承諾事務,將秘密值包含在一個后序事務內,然后簽署并廣播該后序事務。

Alice 知道這一點。她沒有辦法騙走 Bob 的 btc,即使她通過其它手段得到了秘密值。

因此,Alice 和 Bob 還不如在支付通道外進行 “結算”。Bob 可以將秘密值給 Alice,Alice 可以同意更新通道狀態,這樣就不需要哈希時間鎖合約和截止日期了。

假設 Alice 和 Bob 都想讓通道保持開啟,這也很正常:比起在鏈上終止通道省事多了。

3

關閉通道

最后才是閃電網絡真正強大的地方:

本系列文章中所述內容幾乎都不需要實際上用到比特幣區塊鏈。

如果 Alice 和 Bob 想要和平關閉通道,可以創建一個事務來完全覆蓋掉開啟通道事務之后的所有事務。他們可以根據最新通道狀態中所示的 btc 余額歸屬情況,通過關閉通道事務將自己應得的 btc 余額發送給自己。

具體來說,這意味著如果 Alice 想要關閉通道,她可以創建一個事務向自己支付 4btc,同時向 Bob 支付 6btc,然后讓 Bob 簽署并廣播該事務。Bob 沒有理由不答應這個請求,他大概率會配合 Alice 關閉該通道。

最后,只會有兩筆事務被廣播到比特幣網絡并打包進區塊:開啟通道事務和關閉通道事務。哪怕 Alice 和 Bob 之間發生了 100 萬筆交易也是這個結果,因此極大地減輕了區塊鏈的負擔。

4

格外感謝 Rusty Russell 和 JosephPoon 的信息和額外的反饋。

jinse.com
好文章,需要你的鼓勵
jinse.com
好文章,需要你的鼓勵
發表評論
0/140
發布評論
評論
文章作者: / 責任編輯: 我要糾錯

聲明:本文由入駐金色財經的作者撰寫,觀點僅代表作者本人,絕不代表金色財經贊同其觀點或證實其描述。

提示:投資有風險,入市須謹慎。本資訊不作為投資理財建議。

金色財經 > 區塊鏈 > 理解閃電網絡:結算并關閉支付通道
乐天堂手机app Fun88| FUN88登录| fun88官网| fun88官网备用| FUN88手机版| Fun88乐天堂| 梦飞翔| 乐体育| 乐体育官网| 乐体育网址| 乐天堂app下载| 乐天堂fun88体育官网| 乐天堂fun88入口| 乐天堂国际| 乐天堂手机app| 乐天堂手机app下载| 乐天使| 热天堂| 热天堂官网| 乐天堂fun88| FUN88电竞| 乐天堂入口| 乐天堂最新网址| 乐天堂备用网址| 乐天堂体育官网| 乐天堂fun88电竞| 乐天堂体育官网平台| 乐天堂注册| 乐天堂fun88国际| 乐天堂备用网站| 乐天堂电竞体育综合平台| fun88地址| fun88首页| fun88乐天堂网址| 天堂fun88| 乐天堂app| 乐天堂网址| 乐天堂电竞平台| fun88亚洲体育| 乐天堂手机版| 乐天堂体育注册| 乐天堂首页| 乐天堂88| 乐天堂fun88体育投注| 乐天堂fun88投注| 乐天堂fun88app| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>