原文標題:《深度剖析閃電網路》
撰文:談國鵬,ownbit 創始人
閃電網路(lighting network)是比特幣的二層擴容方案,由 joseph poon 和 thaddeus dryja 在 2015 年提出,並在 2016 年撰寫了其白皮書。
起源
閃電網路的起源可以追溯到比特幣白皮書裡的微支付通道。微支付通道是一種單向的閃電網路,因此支持者們認為閃電網路起源於中本聰(satoshi nakamoto)的設計。
隨著比特幣的發展,比特幣網路的兩大弊病逐漸突顯:確認速度慢 和 礦工費用高。
而閃電網路的設計目的就是為了解決上述兩個問題。在閃電網路白皮書釋出兩年後,2018 年,閃電網路實驗室(lightning labs)成立,正式開始將閃電網路推向落地。閃電網路實驗室主要由 blockstream 公司主導,並獲得了眾多知名機構和投資人的投資,其中包括推特的創始人,jack dorsey.
原理
比特幣的白皮書闡述了微支付通道的實現,可以讓雙方之間開啟一個單向的支付通道。其主要的流程如下:
- 建立 2-2 多籤賬戶,並生成存款交易 a;
- 使用 locktime 引數,生成 refund 交易 b;
- 將交易 a 廣播至網路(注意順序,先要拿到 refund 交易,才能廣播 a,為什麼?可以思考下);
- 下面就是不斷地更新 refund 交易 c、d、e...,新的 refund 交易的 locktime 為 0,因此比 refund 交易 b 擁有更高的優先權;
- 將 refund 交易 n 廣播至網路,通道關閉,兌現比特幣。
原生的比特幣網路不能實現雙向的微支付通道,其主要的原因是交易延展性。交易延展性是指在父交易被簽名之前,可以先簽名子交易(花費尚未完成簽名的父交易的交易)的能力。因為交易在完成簽名前其交易雜湊(txhash)尚未確定,而子交易簽名時需要用到父交易的交易雜湊,因此這是一個矛盾的需求,在原生的比特幣網路下無法實現。
隔離見證(segwit)的啟用解決了這一問題。
在隔離見證環境下,交易雜湊的計算將不包括簽名部分。因此在父交易完成簽名之前,它的交易雜湊已經可以確定,進而實現了先簽名子交易、後簽名父交易的需求。
隔離見證的啟用給閃電網路帶來了可能。具體來說,閃電網路是在隔離見證環境下,利用了 rsmc (revocable sequence maturity contract) (利用 sequence 引數)來實現雙向的微支付通道。
多個微支付通道之間可以互相打通,形成網路。例如 ab 之間開通了閃電網路通道,bc 之間也開通了閃電網路通道,當 a 要給 c 轉賬時,可以利用 b ,形成了 a -> b -> c 之間的通道。從全域性來看這就形成了點對點之間的快速轉賬的通道網路,因此稱為閃電網路。
現狀
閃電網路主網 beta 版於 2018 年 3 月 15 日上線。上線兩年多以來,取得了一定的發展,但是總體資料並不理想。
截止 2020 年 11 月 7 日資料,比特幣閃電網路一共執行著 14,381 個節點(其中 7,411 個節點開通了活躍的通道)。一共開通了 35,043 個通道,並鎖定了 1,030 枚 btc。
比特幣閃電網路鎖定 btc 數量
btc 在閃電網路中的總質押(鎖定)量相當於當前總流通量的 0.0056%。跟閃電網路獲得的關注和期望相比,這一資料顯得尷尬。可以看出閃電網路當前在實際使用中並沒有取得成功。
缺陷
閃電網路在實際使用場景中的遇冷,跟其本身的缺陷密不可分。閃電網路的缺陷可分為設計缺陷和安全漏洞兩大類。
使用閃電網路的前提是開通道和質押。因此它不符合偶發的需求。例如路過一家咖啡店,想用比特幣買一杯咖啡。在你當前和該咖啡店之間沒有通道的情況下(也沒有其他路由),閃電網路就非常不適用。因為如果使用閃電網路,你即將面臨開啟通道、關閉通道兩次操作,而每次通道操作其性質是向比特幣主網路傳送交易,這些都是需要花費手續費的。而不使用閃電網路的情況下,你只需要花費一次手續費。
另外一點的設計缺陷,是我們之前談到的 a -> b -> c 的路由。在這些路由中,最小的一筆通道質押將成為整個路由的瓶頸。例如 ab 之間通道的質押有 10btc,而 bc 通道之間的質押只有 1btc。那麼透過路由 a 向 c 之間最多隻能轉移 1btc,而不是 10btc。
這兩點設計缺陷,已經讓閃電網路在使用場景上大大受限。另外,閃電網路在實際的執行中,頻曝安全漏洞。
在此之前,研究人員 jona harris 和 aviv zohar 發表了一篇名為《洪水與掠奪:閃電網路的系統性攻擊》的論文。該論文闡述了透過同時關閉大量閃電網路通道,進而造成比特幣網路擁堵,以至無法關閉通道,來實現的一種攻擊方式。
此外,在 2020 年 6 月 2 日,antoine riard 和 gleb naumenko 發表了另一篇有關閃電網路漏洞的論文,稱為「時間擴散攻擊」。naumenko 和 riard 披露了有關時間擴散攻擊的一個令人恐懼的事實,報告稱「目前有可能透過使節點僅遮蓋 2 小時就可以竊取所有的通道資金」。
在此問題發生後不久,antoine riard 又討論了另一種易受攻擊的漏洞,稱為「pin 攻擊」(pin 是透過傳送 icmp 包進行網路測速的一個工具)。riard 指出,「當前部署的閃電網路伺服器在 [某些 pin 攻擊] 場景中並不安全。」
除此以外,我們應該看到二層解決方案增加了系統的複雜性,從而導致了更多的安全風險。例如,我們無法從協議層面讓閃電網路可以有效地抵禦 ddos 攻擊。
結語
最近比特幣網路又持續擁堵,使得比特幣對擴容的需求變得更加迫切。然而本被寄予厚望的閃電網路並未能在此時發揮作用。
早在 bch 分叉之前,比特幣社羣對隔離見證和閃電網路就存在大量質疑。期間分成了大區塊擴容方案和閃電網路擴容方案兩派。如今從資料看來,在擴容方面,除隔離見證給比特幣網路帶來了 60%左右的擴容外,由 blockstream 主導的閃電網路方案几乎未起到任何作用。
基於以上種種缺陷,閃電網路並不適用於偶發性需求的交易。而偶發性需求一直都是主要需求,想要全面擴容比特幣,我們唯有期待更加創新的方案。
來源連結:mp.weixin.qq.com