引介 | 閃電網絡的歷史:從頭腦風暴,到測試版本(下)

實現

閃電網絡的白皮書是一份長而複雜的文件,包含許多技術含量很高的概念;在 2015 年,很少有人有時間和能力讀完並且理解這份文件。但 Linux 系統內核長期開發者 Rusty Russell 學習了這份白皮書後,大家的基礎認識提高了一大截。在 2015 年初的 系 列 博 客 中,Russell 為更廣泛的讀者 “翻譯” 了這份白皮書(但還是比較挑人的)。

然後,在2015 年 3 月,Russell 接受 Blockstream 工程的聘請,開發一個 C 語言的閃電網絡實現:c-lightning。事實證明,這是邁向實現的關鍵一步。一個幾個月前才剛剛提出的概念,現在就有了一個世界頂尖的工程師來實現它。後來,Blockstream 的 Christian Decker 也加入了 Russell;其他人(包括 Corné Plooy) 也為這個開源項目做了貢獻。

在 Russell 開始開發 c-lightning 不久之後,Blocksteam 就不是唯一一個入局實現閃電網絡的公司了。在 2015 年夏天,ACINQ 這家更小的比特幣科技公司(一開始計劃開發基於智能卡的硬件錢包)決定也嘗試一下這項富有前景的技術。這家位於巴黎的創業公司後來宣布他們開發者用 Scala 編程語言開發出了自己的閃電網絡協議,叫做 eclair。

引介 | 閃電網絡的歷史:從頭腦風暴,到測試版本(下)

– 來自 ACINQ 的 eclair 發行公告。來源:medium.com –

又過了幾個月,第三個實現開始起步。在 2016 年 1 月,閃電網絡白皮書的作者 Poon 和 Dryja,也跟 Elizabeth Stark 和 Olaoluwa “Laolu” Osuntokun 一道,成立了一個全新的公司來開發閃電網絡:Lightning Labs。Lightning Labs 帶頭在 lnd 上開閘,這是一個用谷歌公司推出的 Go 編程語言(也叫 “golang”)實現的閃電網絡 —— 他們在公司成立之前就開始開發了。

在成立公司大概一年後,在 2016 年底,Dryja 離開了 Lightning Labs,轉而加入了 MIT Media Lab 的 Digital Currency Initiative,這個機構也僱用了Bitcoin Core 的頂尖開發者 Wladimir van der Laan 和多位 Bitcoin Core 的貢獻者。在 MIT,Dryja 繼續開發他在 Lightning Labs 起步的閃電網絡實現,重命名為 lit。現在 lnd 和 lit 都可用。Lit 與 lnd 和其它實現有差異的點在於它把錢包和節點封裝成了一個整體;現在,它還支持同時使用多種幣。

此外,區塊鏈公司 Bitfury(因其礦池服務和挖礦硬件而知名)也 fork 了 lnd 實現、做了另一個版本。這個版本的特殊之處在於,它在設計上做了犧牲,使得無需修複比特幣網絡的熔融性(malleability)—— 後面我們再詳細說明。Bitfury 也在交易路由領域作了貢獻,最著名的成果是 “Flare” 協議(只不過現在 Bitfury 版本的 lnd 開發似乎已經停滯下來了)(譯者註:“熔融性” 的例子是,本質上是同一個簽名的交易,可能會產生完全不同的哈希值(交易 ID),使交易變得無法跟蹤;就像同一塊金屬可以熔成不同的形狀一樣)。

再後來,在 2016 年,主要的錢包服務商 Blockchain 宣布他們開發出了一個簡化版的閃電網絡,叫做 “thunder”。這個實現對標準的閃電網絡實現做了比較大的犧牲,最明顯的是它需要你信任網絡中的對手方。也因為這種犧牲,它得以在 2016 年春天推出 alpha 版本,比其他開發團隊要早得多。(雖然 thunder 也可能兼容閃電網絡,但這一實現的開發似乎也已經停滯了。)

在 Scaling Bitcoin Milan 大會之後,第三次會議在 2016 年底舉辦,大部分閃電網絡的貢獻者都齊聚一堂(這場大會因此被稱為第一次閃電網絡峰會)。在這裡,他們討論了如何讓所有的不同實現能相互操作,從而產生了一個叫做 “BOLT”的閃電網絡協議規範(BOLT 是“閃電網絡技術技術(Basis of Lightning Technology)” 的縮寫)。閃電網絡白皮書是理論上的第一,BOLT 才是我們今天所知的、實際上的閃電網絡的基礎。

協議變更

在閃電網絡白皮書首次面世時,它的想法跟當時的比特幣協議是不兼容的 —— 至少,是不安全的。要像白皮書里寫的那樣使用閃電網絡,比特幣需要多方面的協議變更。

第一個變更是新類型的時間鎖,它可以讓支付網絡抵抗比特幣的熔融性漏洞。不過,這個問題在閃電網絡白皮書出版之前就已經在解決中了,並且在 2015 年得到了最終的解決:Peter Todd 所提議和設計的一種新型時間鎖(CheckLockTimeVerify,CLTV)在比特幣協議中實現了。

然後,Bitcoin Core 開發者意識到,如果有相對時間鎖,閃電網絡可以運行得更好。因為相對時間鎖可以讓用戶指定某些比特幣在某筆交易上鏈后再鎖定一段時間。概念上,在閃電網絡中,用戶可以讓支付通道永遠敞開;但 CLTV 時間鎖讓他們不得不定期關閉通道。一個軟分叉升級實現了相對時間鎖,叫做 “CheckSequenceVerify”(CSV)。這種腳本是由 Bitcoin Core 的貢獻者 BtcDrak、Eric Lombrozo 和 Mark Friedenbach 設計的,並且在 2016 年夏天的比特幣網絡上激活了。

但閃電網絡(至少,如果想要用一個平順的用戶體驗的話)所要求的最大的協議變更是為所有的比特幣交易修復熔融性漏洞。

在閃電網絡白皮書出版之時,熔融性已經被認為是個很大的問題。雖然那時候已經有一個軟分叉草案已經在討論中了,但開發者並不確定這有用,而且認為可能需要一次硬分叉才行。然後,在 2015 年末,Bitcoin Core 貢獻者們發現,Blockstream 公司 Elements Project 解決熔融性的辦法 “隔離 見證”(SegWit)可以作為向後兼容的軟分叉部署在比特幣上。

漫長的掙扎過後,隔離見證軟分叉最終於 2017 年夏天在比特幣區塊鏈上激活,為閃電網絡登陸比特幣鋪平了道路。

(要了解隔離見證的歷史,見“The Long Road to SegWit: How Bitcoin’s Biggest Protocol Upgrade Became Reality”)

Alpha 版本

即使在隔離見證還未部署在比特幣協議上(也尚不清楚到底會不會部署)的時候,閃電網絡的開發也進展很大。

這是從測試網上開始的。測試網是比特幣網絡的副本,專門用於測試。閃電網絡最開始在一個特殊版本的測試網上個起步:代號為“SegNet 4” 的測試網(它是第四個 SegWit 的測試網),啟動於 2016 年 5 月。

SegNet 4 測試網部署不到半年,在 2016 年 10 月,Blockstream 開發團隊就已經把他們的 c-lightning 原型提高到可用的程度。後來這被稱為 “閃電網絡第一擊”:Decker 通過閃電網絡的一個早期版本,從 Russell 手上 “買” 了一隻貓,用的是測試網的比特幣(沒有價值的)。

引介 | 閃電網絡的歷史:從頭腦風暴,到測試版本(下)

– Christian Decker 從 Rusty Russell 處 “買” 的一張貓圖片。來源:Blockstream.com-

到 2017 年 1 月,第一個閃電網絡實現 —— lnd —— 推出 Alpha 版本。有了這個實現,閃電網絡就 “正式” 地邁入了 “Alpha 階段”:全世界的開發者,第一次收到邀請,去實驗這種新技術。而 Lightning Labs 還在繼續測試和提升代碼。

這個 Alpha 版本,反過來,吸引越來越多的開發者到 lng 和其他閃電網絡實現上開發應用。這些 “Lapps”從桌面端錢包到移動端錢包,再到小額支付的博客平台,博彩網站,到瀏覽器,無所不包 —— 雖然大部分仍然是為比特幣的測試網設計的。

到了 2017 年夏天,隔離見證終於激活,而閃電網絡在比特幣上的地基已經夯實。又過了三個月,Blockstream 宣布在比特幣主網上發出了第一筆閃電網絡交易。11 月,Lightning Labs 做了第一筆跨區塊鏈(從比特幣到萊特幣)的閃電網絡交易。12 月,來自 Blockstream、Lightning Labs 和 ACINQ 的開發團隊宣布他們已經通過了互操作性測試。

而且,到了這一年的末尾,有些人開始在比特幣主網上使用 alpha 的閃電網絡實現了 —— 有時候甚至是違反開發者的建議的。越來越多的閃電通道打開。到了 12 月,開發者 Alex Bosworth 用閃電網絡通道向支付處理商 Bitrefill 支付了自己的手機賬單:這是閃電網絡上最早一批把比特幣當錢來用的交易之一。

又過了一個月,Blockstream 開設了一個網上商店,讓人可以用比特幣來購買實體商品 —— 雖然 c-lightning 實現還只是 beta 版本,網站上有清晰的風險提醒。2018 年 2 月,在閃電網絡仍處在 alpha 階段時,比特幣世界的傳奇人物、以“比特幣買披薩” 趣事聞名世界的 Lazlo Hanyecz 宣布自己使用閃電網絡買了 —— 當然,又是 —— 披薩!

引介 | 閃電網絡的歷史:從頭腦風暴,到測試版本(下)

– Lazlo Hanyecz 享用披薩。來源:-

Beta 版

經過多年的開發和(甚至更長時間的)思索之後,閃電網絡在幾周前到達了可能是最大的一個里程碑。

2018 年 3 月中旬,Lightning Labs 的 lnd 率先發布了 beta 版的閃電網絡實現。他們同時還宣布獲得了 250 萬美元的種子輪融資,投資人包括大名鼎鼎的 Twitter CEO ack Dorsey。Lightning Labs 認為,他們已經準備好在比特幣的主網上使用閃電網絡 —— 雖然最主要還是提供給懂技術的人用的。

緊隨這份公告之後,ACINQ 在 3 月 28 日發布了一條推文,宣布 eclair 已經推出 vet 版本,因此也已經準備好在主網上使用了。這家創業公司還宣布,他們的 Android 閃電錢包幾周后就將與大家見面。(算起來恰好是本文出版的這周。)

Blockstream 的 c-lightning 實現尚未發布 beta 版,雖然他們的開發團隊告訴 Bitcoin Megazine,他們也會緊隨其後。這家區塊鏈開發公司還在 3 月份的最後一周一口氣發布了 7 款新的 Lapp(在此之前他們也一直在推出新品),彰顯了這家公司在閃電網絡前端的積累。

雖然在 alpha 時代,人們就已經在使用閃電網絡軟件了,beta 版本進一步刺激了增長趨勢。在本文發表之時,已經有超過 1000 個閃電網絡節點和 5000 個閃電網絡通道,留存有超過 10 btc(在本文撰寫之時總價值約 7 萬美元)。(編者註:截至 2021 年 8 月 8 日,全世界已經有 12044 個閃電網絡節點和 58717 個通道,留存超過 1500 btc,價值 6000 萬美元。)每天都有數百個新節點加入,甚至萊特幣專用的閃電網絡也發展了,未來還可以與比特幣的閃電網絡交互。

引介 | 閃電網絡的歷史:從頭腦風暴,到測試版本(下)

– 在本文撰寫之時,閃電網絡的圖示。來源:http://lnmainnet.gaben.win/ –

即使我們已經有了這些進展,閃電網絡也還是處在非常初級的階段。大部分用戶都非常了解技術(通常就是開發者),使用場景也都是實驗性的。雖然 beta 版軟件發布是一個很大的里程碑,網絡的開發和提升仍要繼續,還有許多事情等我們去做,路由、隱私 和其他風險領域,還有許多開放問題。

通常來說,只有進一步普及,才能告訴我們這些問題的答案。

作者註:在為本文做研究時,我開始意識到,閃電網絡的(史前)歷史比我已知的要豐富得多。把它們都塞到一篇文章里,需要我略去許多細節,這對所有幫助實現這項技術的人、項目和概念都不公平。本文嘗試概括閃電網絡迄今的故事,但最好只把本文當成一個粗糙的總結 —— 而不是一份詳盡的歷史和技術講解。感謝每一位提供信息和其它反饋的朋友。

本文鏈接:https://www.8btc.com/article/6671445

轉載請註明文章出處

(0)
上一篇 2021-08-09 07:43
下一篇 2021-08-09 08:19

相关推荐