​2015年2月比特幣開發者Joseph Poon和Thaddeus Dryja在論文《The Bitcoin Lightning Network :Scalable off-Chain Instant Payments》中提出了可擴容的鏈下支付-閃電網絡的概念,我們都知道比特幣之所以很可靠的一個很重要的原因是因為所有的比特幣節點都保存了比特幣賬本,如果有人想要篡改交易記錄的話就需要全網一半以上的算力,這是非常困難的。
但如果你想要做鏈下交易,也就是Off-chain transaction。當交易只有雙方知道,沒有區塊鍊網絡這個信任機器,那麼該如何保證交易的一方不會反悔或抵賴呢?閃電網絡的出現很好地解決了這一問題。
什麼是閃電網絡?
閃電網絡是構建在比特幣網絡上的第二層支付協議,用來解決比特幣網絡堵塞問題。簡單來說就是在區塊鏈之外開通一條“綠色通道”,將大量高頻的、小額的交易在區塊鏈外進行。同時保證交易的安全性。
閃電網絡如何運作?
交易雙方需先建立一個支付通道,各轉一筆錢到一個多簽地址上,雙方同時出具私鑰才能將錢取出,為避免一方不出具私鑰錢取不出來的情況,在存入之前需要先廣播一條退款消息,如果一方不出具私鑰,你就可以將退款消息廣播到區塊鏈上。但需要注意的是,退款消息一旦廣播到鏈上,對方可以立即收到退款,而發起方的退款則需要存入一個雙方的多簽地址,退款發起方需要等待1000個區塊確認後,才可以收到退款。也就是說誰先發起退款關閉通道,就會受到延遲退款的小懲罰。
在沒有區塊鏈這個信任基礎的情況下,閃電網絡如何解決雙方不誠信的問題的呢?如果其中一方想不支付賬單,把很久前的消息廣播出來的話,那麼廣播虛假消息的一方將會失去所有的錢作為懲罰。
如果想要提現關閉通道的話只需要雙方都同意後,資金即可立即到賬。如果其中一方不同意,一方強制關閉,那麼就會觸發之前講到的退款流程,退款發起方資金需等待1000個區塊確認後到賬,另一方則可立即到賬。
閃電網絡如何實現多方轉賬呢?
舉個簡單的例子:現有小明、小白兩人需要交易,他們都分別與小紅建立了支付通道。
  • 第一步:小白首先用自己的密鑰R生成了一個哈希值H,然後將哈希值傳給小明。

  • 第二步:同時小明和小紅簽署了一個合約(如果小紅在2天內能給小明正確的密鑰R,小明就給小紅轉1.1BTC,否則就不給)

  • 第三步:然後小白又和小紅簽署了一個合約(如果1天內小白能給小紅密鑰R,小紅就給小白1BTC,否則就不給)

  • 於是,小紅作為中間方,拿到小白的密鑰R後給到小明,小明在拿到密鑰R後與小白給的哈希值一對比,確認小白的身份後即可給小白轉賬,在整個交易過程中,小明與小紅,小白與小紅之間所達成的合約就是我們經常說到的哈希時間鎖定合約(Hashed timelock contrct)。

那麼閃電網絡都有哪些優缺點呢?
閃電網絡有即時支付的特點,交易不需等待網絡確認,因而交易可於幾秒內迅速完成。同時由於交易結算於鏈下進行,因而閃電網絡轉賬手續費極低。手續費按付款額比例來計算,對於小額交易不會產生不合理的高昂手續費。閃電網絡讓比特幣網絡處理數百萬筆交易變得可能。
雖然閃電網絡一方面為比特幣擴容提供了可持續方案,但另一方面也引發了諸多質疑,比如我們前面舉到的例子中,小紅會不會像支付寶和銀行一樣一家獨大?這也是我們需要思考的問題,歡迎大家在評論區一起討論。