本著勸和不勸分的原則,閃電協議設置了哈希時間鎖定合約,單方面強制離婚(關閉交易通道)會受到延遲收到退款的懲罰,這是為了保證雙方交易的穩定。
以上最后一個過程是通道關閉。注意,不管是協議離婚還是起訴離婚,這都是要法院受理登記的。關閉通道一定要發起交易并廣播到主網,最后礦工記錄,所以還是要忍耐一定確認時間和支付手續費的,這與閃電網絡無關。
至此我們已經知道了Alice和Bob鏈下互相轉賬的那點事兒了,這就是所謂“雙向支付通道”。開啟通道需要在主鏈交易,這是鎖定資金,關閉通道也需要在主鏈交易,這是釋放資金。中間可以進行任意多次轉賬支付,是0確認0手續費的。
2.將雙向支付通道擴展成閃電網絡
新問題來了,世界上除了這兩位,還有Carol、Eric、Diana等等。設想Alice想轉給Carol 1個BTC,她該怎么辦呢?自然地,她倆可以再重復上述操作建立一個雙向通道。但是,如果我們為了應用閃電網絡,需要世界上每兩個人之間都建立一條通道,這將是非常大的工作量且不切實際的。為了解決這一問題,我們需要將雙向支付通道擴展成閃電網絡。
假如Bob和Carol之間已經建立了支付通道,而Alice和Bob之間也有支付通道,那么Alice可以先把錢轉給Bob再由他轉給Carol,即Bob充當了支付的中間人,在網絡里他就是一個路由節點。 如上圖,B和C,A和B之間有通道, A和C就通過B來達成交易。更一般地,A和F可以經過B、D來交易。
當很多的節點相互建立通道,最后就會形成閃電網絡。
03
閃電網絡原理技術細節版
通過上文,我們差不多了解了閃電網路是如何形成的。但是看完大家一定會覺得有哪里不對勁。哪里不對勁呢?
我們來回顧一下歷史。
如果Alice和Bob完成了一筆交易,他們手頭各自都有賬本,在沒有第三方見證的情況下,他們都可能把賬本按照對自己有利的方向進行篡改。銀行是怎么解決這個問題的呢?在傳統的銀行業中,由于Alice和Bob都信任銀行,因此銀行充當了雙方都信任的第三方來進行記賬,并且以第三方的賬目為準,因此雙方不管怎么篡改賬本都沒用。區塊鏈是怎么解決這個問題的呢?區塊鏈同樣引入了第三方來充當記賬者,雖然Alice和Bob都不信任記賬者,但系統會想盡辦法來保證記賬者的誠實性。
但是到了閃電網絡,請注意,這里再也沒有一個第三方記賬者了!Alice和Bob又重新拿回了他們的小本子,各自記起了各自的賬本。問題在于怎么保證他們都誠實記賬!
1.雙方支付通道:如何使記賬的雙方保持誠實?
這是一個非常有意思的問題,使得我們的第一步――建立“雙向支付通道”,變得難以維持了。那么,Alice和Bob這樣兩個完全不信任對方的陌生人,究竟該如何在沒有主鏈礦工記錄的情況下,相互轉賬交易?
作為鋪墊,我們需要講解兩個概念,哈希時間鎖定和哈希密鑰鎖定。首先是哈希時間鎖定,這是在交易腳本里面設置時鐘,必須要等設定時間之后,才能用地址的私鑰簽名解鎖地址里的比特幣。例如Alice收到了一筆2 BTC轉賬,但是對方設定了1000個區塊之后才能解鎖,所以Alice必須等待1000個區塊之后才能用自己的私鑰簽署交易,花費其中的BTC轉給Bob。
其次是哈希密鑰鎖定。哈希函數可以把一串輸入轉換成256位固定長度的輸出,計算過程稱為一次哈希運算,其中輸入稱為密文,輸出稱為密文的哈希值。哈希函數具有單向性,即從密文可以算出哈希值,但是從哈希值反向算出密文幾乎是不可行的。計算的辦法是暴力破解,逐一輸入密文進行哈希運算,驗證運算結果是否為要求的哈希值?;谶@種特性,可以把一個密文的哈希值放入交易的輸出當中充當哈希密文鎖,也就是必須得輸入該哈希值對應的密文才能解鎖腳本中的比特幣。例如,例如Alice收到了一筆2BTC轉賬,但是對方設定了哈希值鎖定,所以Alice必須得到交易方的密文,同時配合自己的密鑰簽名才能簽署交易,花費其中的BTC轉給Bob。
此文由 中國比特幣官網 編輯,未經允許不得轉載?。?a href="http://www.huohuxiazai.com/">首頁 > 比特幣行情 » 閃電網絡很難懂?你需要看看這篇文章 | 硬核科普