理解閃電網絡主要分為兩步,一是理解雙向支付通道,二是諸多通道擴展成閃電網絡。
閃電網絡想要解決的是比特幣擴容、交易即時確認和手續費高的問題。舉個例子來說明閃電網絡整體思路,設想我們的老朋友Alice要給Bob轉1個比特幣,她該怎么做呢?
傳統做法是Alice可以挑選出其未花費的輸出用對應私鑰簽名,并向比特幣網絡廣播,礦工驗證打包,一般來說6個區塊之后即可確認交易。這個過程很慢,需要等待一個小時左右,并且還要支付給礦工的手續費。于是呢,天才的程序員們碰撞出了閃電網絡的解決方案。
操作過程是這樣的,Alice和Bob先各自把5個BTC轉給一個由兩人共同控制的多重簽名地址。這筆交易和比特幣網絡上其他普通交易沒什么太大區別,只是轉出的地址是一個多簽地址。這個過程稱為開啟通道。
多重簽名技術(multisig)是多個用戶同時對一個數字資產進行簽名??梢院唵蔚乩斫鉃?,一個賬戶多個人擁有簽名權和支付權。如果一個地址只能由一個私鑰簽名和支付,表現形式就是1/1;而多重簽名的表現形式是m/n,也就是說一共n個私鑰可以給一個賬戶簽名,而當m個地址簽名時,就可以支付一筆交易。例如,多重簽名2/3,表示3個人擁有簽名權,而兩個人簽名就可以支付這個賬戶里的比特幣;多重簽名1/2,表示2個人擁有簽名權,誰都可以單獨來支配這筆資金。
開啟通道后,這個多簽地址里面就擁有10個比特幣,這是被區塊鏈記錄了的,全網承認。接下來就是Alice和Bob私底下的交易了,不廣播,不記在鏈上,正因如此,交易確認速度快,幾乎零手續費(其實可能還有較低的路由費,后文會講),這個過程稱為鏈外交易,在交易通道(channel)中進行。
(注意:有很多人問為什么閃電網絡很快,我想說,沒有第三方記賬當然快啊。)
1.構建雙向支付通道
什么是通道?怎么在通道進行交易呢?它安全嗎?
簡單來說,Alice和Bob都會在各自的小本本上記賬,他們都知道對方怎么記的,且有密碼學設計保證誰也不能多記耍賴。這當然也是由閃電協議精巧的設計保證的,后文再講技術細節。
那么我們就可以想象出這樣一個通道:在這個通道中,一開始Alice和Bob各有有5個,如果第一筆記“Alice有4個,Bob有6個”,這就相當于Alice給Bob轉了1個比特幣。如果,過了幾天,Alice又要向Bob支付2個比特幣,那么他倆會再記一次賬,這次記“Alice有2個,Bob有8個”,同時上次記的“Alice有4個,Bob有6個”在兩人共同確認后作廢,也就是說,本次記賬后,Alice只有2個比特幣,她不能再拿出舊賬單說“Alice有4個,Bob有6個”。
注意,在通道關閉之前,這10個比特幣只能在Alice和Bob之間使用。也就是說,在不關閉通道的情況下,主網只知道多簽地址有10個比特幣,并不知道Bob已經擁有了其中的8個比特幣,這就是所謂“雙向支付通道”。
關于這個記賬過程,EthFans翻譯的《用算盤了解閃電網絡》可以說很形象了。
之后Alice和Bob就可以在通道里過上你來我往的相互轉賬的愉快生活,遠離主鏈的擁堵與高費用。這就好比倆人結婚了,夫妻們想要私下結算,只要倆人同意,想怎么算就怎么算。
天有不測風云,突然有一天,Alice不想和Bob這么轉來轉去了,想取出自己在通道里的錢去外面的花花世界瀟灑快活。那么就需要關閉通道了,常有兩種方式,一是協議離婚,如下圖,這種方式很和平,雙方共同從最開始的多簽地址簽名發起一筆交易分別轉到兩人各自控制的地址對應數額的比特幣,同時將之前記在小本本上的所有舊賬一筆勾銷。
二是起訴離婚,Alice想離而Bob不想離,這時Alice可以單方面強制關閉通道,將小本本最后一筆交易廣播出去,只要礦工驗證并打包進區塊,這婚也算離了,代價是Alice并不能立馬得到比特幣,需要等待一定時間。
此文由 中國比特幣官網 編輯,未經允許不得轉載?。?a href="http://www.huohuxiazai.com/">首頁 > 比特幣行情 » 閃電網絡很難懂?你需要看看這篇文章 | 硬核科普