以速度擴展:解釋比特幣閃電網絡

已發表: 2022-03-11

比特幣閃電網絡是一個獨立的解決方案,被譽為解決所有阻礙比特幣被主流採用的問題的解決方案。 它聲稱可以解決慘淡的擴展問題,進行即時交易,保持交易費用微乎其微,並將您的交易從區塊鏈中移除。 獨立於核心比特幣的系統如何提供這些改進? 它如何通過提供零確認的安全交易來違反比特幣的常規規則? 什麼是比特幣閃電網絡?

在本文中,我們將探討比特幣閃電網絡的真正含義、它如何提供它所提供的保證以及它的當前狀態。

注意:本文假設您熟悉比特幣。 如果您不熟悉加密貨幣的工作原理或需要復習,請閱讀傻瓜加密貨幣:比特幣及其他。

先決條件:比特幣擴容問題

如果您知道比特幣擴容問題,請隨意跳過本節,但如果您不知道,或者需要復習,請繼續閱讀。

比特幣存在擴容問題。 比特幣旨在將所有交易存儲在稱為塊的數據結構中。 一個區塊包含關於前一個區塊的信息,關於挖礦獎勵的雜項數據,並且大部分區塊只是交易數據。 塊的大小也固定為最大 1 MB。 最後一點是問題所在。

因為塊大小為 1 MB,並且每 10 分鐘創建一個塊,假設事務不是 SegWit(稍後出現),網絡每秒最多可以處理 3.3 到 7 個事務。 對於一種專為數十億人和他們的機器大規模使用而設計的貨幣,每秒 7 筆交易根本達不到標準。 另一方面,Visa 聲稱每秒能夠處理 24,000 筆交易。

隨著交易數量開始增加,您的個人交易在有限的區塊空間內相互競爭,因此,您的交易被包含在區塊中的可能性開始降低。 由於礦工可以任意決定將哪些交易包含在一個區塊中,因此在這些情況下,激勵礦工包含您的交易的唯一方法是增加您的交易費用。 然而,這開始使交易變得異常昂貴——例如這個 192 字節的交易為 92.98 美元,而交易費用為 14.86 美元。

那麼,我們如何“擴展”比特幣呢? 有三種主要的思想流派,或者——我喜歡稱之為——比特幣大擴容之戰:

  • 增加塊大小:2X, 8X, ..., ∞X
  • 較小的交易:SegWit 等。
  • 側鏈:比特幣閃電網絡

增加比特幣區塊大小

這個很容易理解:如果 1 MB 的塊限制是問題,那就讓它更大! 關於這件事的爭論很激烈,而且還在繼續。 最終,在 2017 年 8 月 1 日,比特幣 (BTC) 被分叉,比特幣現金 (BCH) 誕生了。 兩者的主要區別在於 BCH 有 8 MB 塊。 這使得區塊大部分是空的,費用非常低。

然而,8 MB 的區塊意味著 BCH 區塊鏈的總大小可能會以更快的速度增長,這使得存儲成本成為進入礦工場景的更高門檻。 論點是,這將減少礦工的總數,這也保護了區塊鏈,減少了去中心化和比特幣網絡的整體安全性。

對大塊的另一個批評是它本身並不能解決問題。 相反,它會暫時修補問題。 對於更大的區塊,總會有一個最大限制,而最大限制總是遠低於我們試圖達到的目標限制:每秒 24,000 筆交易。 即使有更大的 8 MB 塊,BCH 也有每秒 61 個事務的限制。

較小的交易:隔離見證

其他解決方案指出,當前的交易格式並不是最有效的,並且旨在將更多交易打包在同一個區塊中。 其中最值得注意的是隔離見證 (SegWit),它通過 BIP 91 提出並於 2017 年 8 月 25 日在區塊 481824 中激活。隔離見證現在是比特幣的一部分,高興!

非隔離見證和隔離見證區塊的比較
非 SegWit 和 SegWit 塊的比較,基於 David A. Harding 的插圖

SegWit 從交易中獲取簽名數據並將其存儲在與交易塊分開的結構中,從而使單個交易更小,並更好地利用每個塊內的有限空間。 然後,在同步區塊鏈時,此結構是可選的,從而減少了磁盤上的大小。

這也導致了交易延展性問題的解決方案,僅花費 SegWit 輸出的交易不再容易受到攻擊。

比特幣閃電網絡

閃電網絡是一個第二層網絡,它在對等點之間傳輸已簽名但未廣播的交易,並且僅依賴比特幣區塊鏈進行資金的最終結算。 這意味著交易完全不受區塊大小的限制,確認時間無關緊要,並且比特幣區塊鏈不需要存儲曾經發生的每一筆交易。

誰開發了比特幣閃電網絡? 它最初是在由 Joseph Poon 和 Thaddeus Dryja 撰寫的白皮書中描述的,但後來演變為與第三方個人甚至公司為規範和實施做出貢獻的社區努力。

更多信息稍後。

隔離見證 vs. 增加區塊大小 vs. 比特幣閃電網絡

那麼哪個最好呢? 我沒有經驗證據可以作為我回答的基礎,所以這是一個觀點:雖然我確實認為更好地利用區塊空間(la SegWit)是一件好事,但我認為增加區塊大小就像推動未來的球門柱。 如果比特幣的使用量要大幅增加,我們會發現自己一開始就在爭論區塊大小的另一次增加。

不同意? 在下面發表評論!

話雖如此,雖然我認為像比特幣閃電這樣的替代結算網絡是一個絕妙的主意,但我也在等著看它在現實世界中的效果。 到目前為止,它還不是我父親和我可以使用的狀態。

比特幣閃電網絡解釋

我已經提到閃電網絡是一個第二層網絡,它在對等點之間傳輸簽名但未廣播的交易,並且僅依賴比特幣區塊鏈進行資金的最終結算。

讓我們看看這將如何在現實生活中發揮作用。

閃電節點和通道

閃電節點的運行方式與比特幣節點非常相似和不同,因為它以網絡方式運行、驗證交易並與其他節點通信,但它做比特幣節點歷史上不做的事情:它持有資金、充當自動金融中介,主動監控閃電“通道”的惡意行為並做出防禦反應(這在後面會詳細解釋)等。

為了執行這些功能,節點需要錢。

注意:這些示例最初假設每個人都運行一個 24/7 連接到互聯網的比特幣閃電網絡節點,但顯然情況並非如此。 這一假設將在閃電錢包與閃電節點部分中被打破。

創建閃電通道

假設您和您的朋友 Bob 的關係涉及相當數量的金融交易。 你們時不時一起出去吃午飯或看電影。 有時你們中的一個人缺錢,有時另一個人和你們通常會在之後互相Venmo。

然而,作為加密貨幣的擁護者,你們倆都決定嘗試閃電網絡並創建一個新的共同渠道,每個人用半個比特幣平分資金(這是很多午餐)。

在比特幣閃電網絡上創建通道的兩個節點的圖示

創建一個新的閃電通道就像創建一個多簽名比特幣錢包,需要你的兩個簽名才能批准交易,但有一個區別; 根據閃電網絡白皮書,你們每個人都會獲得一份已簽署但尚未廣播的“承諾交易”,它將您的初始存款返還給您。 這樣,如果你們的友誼經歷了艱難的時期,或者你們中的任何一個人需要錢,你可以通過廣播這筆交易單方面關閉頻道,每個人都得到他們應得的金額。

與您有渠道的人進行閃電交易

假設有一天你又出去吃午飯,你最終欠鮑勃相當於 8,000 聰(我寫這篇文章時為 0.31 美元)。 這個時候,如果你用比特幣來結算這筆錢,你最終會支付 0.10 美元並等待一個小時,這是不可行的。

兩個節點更新其通道狀態的圖示

然而,使用閃電網絡,您可以通過簡單地用新交易替換您的“承諾交易”來免費做到這一點,讓你們雙方都堅持下去。 只是這一次,Bob 多了 8,000 satoshis,而你少了。 (如果您此時正在考慮通過廣播舊交易來作弊,請等到關閉頻道部分。)

您可以廣播交易並關閉頻道,但是關閉頻道會產生交易費用,並且由於雙方都不需要立即使用該金額,您可以簡單地保留頻道並使用它來償還未來的債務。

與您沒有渠道的人進行閃電交易

假設有一天,Bob 邀請了他的另一個朋友 Alice,在吃了一個小時的緊張三明治之後,你們倆都欠 Alice 的債,因為這家商店只接受 Coinye(一種在 Kanye West 起訴後被廢棄的已失效加密貨幣),Alice 發生了這種情況擁有。

多跳閃電交易的插圖

現在,假設 Bob 與 Alice 有一個通道,使用閃電網絡,你也可以通過 Bob 向 Alice 付款。 您的節點計算您和 Alice 之間的最佳路線——在這種情況下,Bob 作為金融中介——中間人都可以提前支付款項,如果他們願意的話,只需支付少量費用。

關閉頻道:兩種好方法和一種壞方法

有三種方法可以關閉閃電通道:

  1. 協作:通道中的任何一方發起關閉比特幣閃電通道,另一方批准。 沒有時間鎖定,一經確認就可以花錢了。 這是關閉頻道的“最佳”方式。
  2. 單方面:通道中的任何一方都可以在其中一方願意時關閉比特幣閃電通道,即使另一方不同意。 這導致了時間鎖定,另一方可以通過“違約補救措施”交易對關閉者提出異議(參見下面的場景 3),但我們假設這不會發生。 時間鎖定到期後,資金可以自由使用。 這是關閉通道的“可接受的”方式。
  3. 違約補救措施:由於閃電交易是已簽名交易的時間戳列表,其中資金分配不同,因此一方有可能通過單方面關閉持有更多資金的舊交易的渠道來嘗試作弊(違反信任)(請參閱情景2)。 這導致了時間鎖定,在此期間,受害方不僅可以收回自己的資金,還可以使用“Breach Remedy”交易刷掉通道的全部容量,如比特幣閃電網絡白皮書中所述。

閃電節點與閃電錢包

在上面的示例中,我們使用了術語閃電網絡“節點”,這會讓您認為您必須保持您的節點在互聯網上 24/7 全天候運行。 是的,你是對的。 閃電網絡的設計使節點始終在線,確保網絡以接近最大容量運行。 而且,如果沒有人在線監控作弊企圖並且它成功了,該頻道將像常規單方面關閉一樣關閉,讓您沒有資金。

然而,閃電網絡白皮書描述了解決這個問題的方法:

…人們應該定期監控區塊鏈,看看對方是否廣播了無效的承諾交易,或者委託第三方這樣做。 第三方可以通過僅向該第三方提供違約補救交易來委託。 通過在輸出中給這些第三方一些費用,可以激勵他們在交易對手惡意的情況下觀看區塊鏈廣播此類交易。 由於第三方只有在交易對手惡意行為時才能採取行動,因此該第三方無權強制關閉通道。

這些第三方通常被稱為瞭望塔,應該消除用戶始終在線的負擔。

閃電網絡的狀態

截至 2019 年 3 月 27 日的比特幣閃電網絡:

  • 擁有超過 7500 個節點
  • 擁有近 4 萬個開放渠道
  • 容量略高於 1000 比特幣

它的增長速度為:

  • 每小時 25 個節點
  • 每小時 304 個頻道

有很多閃電網絡節點實現,甚至是 Play 商店中的 Eclair 閃電錢包。 它仍然是實驗性的,缺乏修飾和接收資金的重要特徵,但在我看來,雖然生態系統很小,但它正在健康成長。

規範和實現

比特幣閃電網絡規範處於徵求意見 (RFC) 狀態,由一系列稱為閃電技術基礎 (BOLTS) 的文檔構成。 BOLTS 在本出版物中不斷變化,歡迎貢獻。

閃電網絡節點也有幾個符合 BOLT 標準的實現:

  • LND: Lightning Network Daemon 的縮寫,這是一個主要基於 Go 的實現。
  • Eclair:主要基於 Scala 的實現。
  • C-lightning:主要基於 C 的實現。

有關更多資源,請參閱本文的結論。

照明網絡的優勢與批評

那麼我們可以通過閃電網絡實現什麼?

  • 真正的微交易(幾分之一美分)
  • 可以想像的最低費用(幾分之一美分)
  • 一定程度的隱私(沒有區塊鏈記錄)

然而,正如我之前所說,閃電網絡存在許多批評,其中一些是有效的,並且是閃電面臨的當前尚未解決的挑戰:

  • 路由和中心化:由於閃電網絡不斷變化,通道狀態每天都在變化,打開和關閉,並且有歷史的集中存儲可以回退,因此每次都需要重新計算支付路線。 當網絡很小時這很好,但是當它變得足夠大時,運行在微型硬件上的小節點可能沒有計算路由的處理能力。 這個問題的解決方案可能是一個集中的超級節點,它具有您可以查詢的高級知識。 這在此處進行了更詳細的描述。
  • 貸款過多:在這篇文章中得到了最好的描述,甚至讓以太坊的聯合創始人 Vitalik Buterin 參與進來。這實質上是說,由於支付 10 美元的 10 次啤酒花鏈需要每個人都支付 10 美元,所以你會最終轉移了 100 美元的資金。 在某一時刻,移動大量產品變得不可行。 這在現實世界中是否成立還有待確定,但這仍然是一個令人信服的論點。

我錯過了任何批評嗎? 請在下面的評論中告訴我。

進一步閱讀和資源

我希望您最終了解閃電網絡的真正含義。 在這一切之下,它只是一個以交換加密令牌為基礎的消息傳遞系統。 它還不是完美的或廣泛使用的,但這並不意味著它不是一個令人印象深刻的工程。

我建議閱讀原始的比特幣閃電網絡白皮書。 我還可以推薦進一步閱讀和應用程序、書籍和論文的列表,但 GitHub 用戶 Ben Congdon 已經開始這樣做了,所以我建議查看bcongdon/awesome-lightning-network 。 謝謝本! 作為比特幣開發人員,您有責任盡可能多地閱讀這項新技術。

如果這一切信息太多,讓我們以有趣的方式結束。 這是一段有趣的視頻,據稱是 Satoshi Craig Wright 試圖談論比特幣的美好時光。