要點

  • Layer 2 解決方案的創建是爲了解決區塊鏈技術固有的可擴展性限制。

  • 閃電網絡是一種第 2 層擴展解決方案,無需區塊確認即可提供快速交易,從而實現高效的小額支付。

  • 它通過多重簽名地址和哈希時間鎖合約確保安全且可擴展的支付。

介紹

加密貨幣有一些非常獨特的屬性。它們不會輕易被黑客攻擊或關閉,任何人都可以使用它們在全球範圍內傳輸價值,而無需第三方干預。

爲了確保保留這些功能,必須做出重大權衡。由於許多節點負責運行加密貨幣網絡,因此吞吐量是有限的。因此,對於旨在被大衆採用的技術來說,區塊鏈網絡每秒可以處理的交易數量(TPS)相對較低。

爲了克服區塊鏈技術的固有侷限性,人們提出了許多可擴展性解決方案來增加網絡可以處理的交易數量。在本文中,我們將深入探討閃電網絡,這是比特幣協議的一種擴展。

什麼是閃電網絡?

閃電網絡是一個在區塊鏈之上運行的網絡,以促進快速的點對點交易。它並不是比特幣獨有的——其他加密貨幣也集成了它。

您可能想知道“在區塊鏈之上運行”是什麼意思。閃電網絡是所謂的鏈下或第二層解決方案。它允許個人進行交易,而無需在區塊鏈上記錄每筆交易。

閃電網絡與比特幣網絡是分開的——它有自己的節點和軟件,但它仍然與主鏈進行通信。要進入或退出閃電網絡,您需要在區塊鏈上創建特殊交易。

您實際上在處理第一筆交易時正在與另一個用戶構建某種智能合約。我們將很快討論細節 - 現在,只需考慮爲您和其他用戶保存私人分類賬的智能合約。您可以將許多交易寫入此分類帳。它們僅對您和您的交易對手可見,但由於設置的一些特殊功能,你們都無法作弊。

這個迷你賬本稱爲通道。假設 Alice 和 Bob 每人將 5 BTC 放入智能合約中。在他們的頻道中,他們現在都有 5 BTC 的餘額。然後,愛麗絲可以向賬本寫入“向鮑勃支付 1 比特幣”。現在,鮑勃有 6 個 BTC,愛麗絲有 4 個。然後,鮑勃可以稍後將 2 BTC 發送回給愛麗絲,將愛麗絲這邊的餘額更新爲 6 BTC,鮑勃這邊的餘額更新爲 4 BTC。他們可以繼續這樣做一段時間。

任何時候,任何一方都可以將通道的當前狀態發佈到區塊鏈。此時,通道兩側的餘額將分配給鏈上各自的各方。

正如其名稱所示,閃電交易速度極快。無需等待區塊確認 - 只要您的互聯網連接允許,付款速度就可以達到您的預期。

爲什麼需要閃電網絡?

到目前爲止,閃電網絡(或簡稱 LN)似乎是擴展比特幣區塊鏈的最明智的方法。在如此龐大的生態系統中協調變化是很棘手的——存在硬分叉和潛在災難性錯誤的風險。考慮到如此大的價值,實驗是極其危險的。

當你將實驗從區塊鏈中移開時,你就有了更大的靈活性。如果出現問題,也不會對實際的比特幣網絡產生影響。第二層解決方案不會破壞任何使該協議持續運行 15 年以上的安全假設。

也沒有義務放棄舊的做事方式。對於最終用戶來說,鏈上交易繼續正常進行,但他們現在也可以選擇進行鏈下交易。

使用閃電網絡有幾個好處。我們將在下面看看一些主要的。

可擴展性

比特幣區塊大約每十分鐘創建一次,並且只能容納一定數量的交易。塊空間是一種稀缺資源,因此您必須與其他用戶競價才能及時包含您的塊空間。礦工首先關心的是獲得報酬,因此他們會首先考慮費用較高的交易。

當沒有很多用戶同時嘗試發送資金時,這並不是一個真正的問題。您可以設置較低的費用,並且您很可能將交易包含在下一個區塊中。但是,當太多用戶同時廣播交易時,平均費用可能會大幅上升。有多次超過10美元的情況。在2017年牛市最高峯時,它超過了50美元。 2021 年 4 月,比特幣平均交易費用超過 60 美元。

對於轉移價值數千美元的比特幣的交易來說,這似乎微不足道,但對於較小的支付來說,這是不可持續的。誰願意支付 3 美元的咖啡並附加 10 美元的費用?

使用閃電網絡,您仍然需要支付兩項費用 - 一項用於打開通道,另一項用於關閉通道。但一旦通道開放,您和您的交易對手就可以免費進行數千筆交易。完成後,您只需將最終狀態發佈到區塊鏈即可。

從長遠來看,如果更多的用戶依賴閃電網絡等鏈下解決方案,區塊空間將得到更有效的利用。低價值、高頻次的轉賬可以在支付通道中進行,而區塊空間則用於更大的交易和通道的打開/關閉。這將使該系統可供更廣泛的用戶羣使用,從而使其能夠長期擴展。

小額支付

您可以在一筆交易中發送的比特幣最低金額約爲 0.00000546 BTC。在撰寫本文時,這大約相當於 38 美分。雖然金額很小,但閃電網絡允許您突破當前可用的最小交易單位的限制——0.00000001 BTC 或 1 聰。

閃電網絡對於小額支付更具吸引力。常規交易的費用使得在主鏈上發送少量金額是不切實際的。然而,在一個通道內,你可以免費發送一小部分比特幣。

小額支付適合很多用例。一些人推測它們可能是基於訂閱的模式的可行替代品,在訂閱模式中,用戶每次使用服務時只需支付少量費用。

隱私

閃電網絡的第二個好處是它可以爲用戶提供高度的保密性。各方不需要讓更廣泛的網絡瞭解他們的渠道。雖然您可能可以查看區塊鏈並說這筆交易打開了一個通道,但您不一定能夠知道其中發生了什麼。如果參與者選擇將其頻道設爲私有,則只有他們知道正在發生哪些交易。

如果 Alice 與 Bob 有一個通道,並且 Bob 有與 Carol 的通道,則 Alice 和 Carol 可以通過 Bob 相互發送付款。如果 Dan 與 Carol 連接,則 Alice 可以向他發送付款。您可以想象這擴展到一個龐大的互連支付渠道網絡。在這樣的設置中,一旦通道關閉,您就無法確定 Alice 已將資金髮送給誰。

閃電網絡如何工作?

我們已經從總體上解釋了閃電網絡如何依賴節點之間的通道。現在讓我們來深入瞭解一下。

多重簽名地址

多重簽名(或多重簽名)地址是可以使用多個私鑰的地址。創建私鑰時,您指定可以使用資金的私鑰數量,以及簽署交易需要多少個私鑰。例如,五分之一方案意味着五個密鑰可以產生有效簽名,並且只需要一個。 3 之 2 方案表明,在三個可能的密鑰中,任何兩個都需要花費資金。

爲了初始化閃電通道,參與者以二中二的方案鎖定資金。只有兩個私鑰能夠簽名,並且都需要兩個私鑰來轉移硬幣。現在讓我們帶回我們的朋友愛麗絲和鮑勃。在接下來的幾個月裏,他們將相互進行大量付款,因此他們決定開放閃電網絡通道。

首先,他們兩人各自向共同擁有的多重簽名地址存入 3 個 BTC。值得重申的是,未經 Alice 同意,Bob 不能將資金轉出地址,反之亦然。

現在,他們只需保留一張紙來調整兩邊的平衡即可。兩者的起始餘額均爲 3 BTC。如果 Alice 想向 Bob 支付 1 BTC,爲什麼不直接記下 Alice 現在擁有 2 BTC,Bob 擁有 4 BTC?可以這樣跟蹤餘額,直到他們決定將資金轉出。

這是可能的,但是其中的樂趣在哪裏呢?更重要的是,這不是很容易讓人不合作嗎?如果愛麗絲最終得到了 6 個比特幣,而鮑勃一無所獲,那麼鮑勃拒絕釋放資金不會造成任何損失(也許除了他與愛麗絲的友誼)。

哈希時間鎖定合約(HTLC)

上面的系統很無聊,並且沒有提供比當今可信設置更多的功能。當我們引入一種強制執行 Alice 和 Bob 之間“契約”的機制時,事情會變得更加有趣。如果其中一方決定不遵守規則,那麼另一方仍然可以採取補救措施將資金移出渠道。

該機制是哈希時間鎖定合約(或 HTLC)。這個術語可能聽起來令人畏懼,但它實際上是一個非常容易理解的概念。它結合了其他兩種技術(哈希鎖和時間鎖)來糾正支付渠道中的任何不合作行爲。

哈希鎖是交易上的一個條件,規定您只能通過證明您知道祕密來花費資金。發送方對一段數據進行哈希處理,並將哈希值包含在發送給接收方的交易中。接收者可以使用它的唯一方法是提供與哈希值匹配的原始數據(祕密)。他們提供該數據的唯一方法是發送者將其提供給他們。

時間鎖是一種阻止您在特定時間之前支出資金的條件。它被指定爲實際時間或指定的塊高度。

HTLC 是通過組合哈希鎖和時間鎖創建的。在實踐中,HTLC 可用於創建有條件支付——接收方必須在特定時間之前提供祕密,否則發送方可以收回資金。下一部分可能會通過示例更好地解釋,所以讓我們回到愛麗絲和鮑勃。

打開和關閉通道

我們舉了一個例子,愛麗絲和鮑勃剛剛創建了爲他們將共享的多重簽名地址提供資金的交易。但這些交易尚未發佈到區塊鏈!我們首先還需要做一件事。

Three coins from Bob and three coins from Alice.

鮑勃的三枚硬幣和愛麗絲的三枚硬幣。

請記住,這些代幣可以移出多重簽名的唯一方法是 Alice 和 Bob 共同簽署交易。如果愛麗絲想將所有六枚硬幣發送到外部地址,她需要得到鮑勃的批准。她首先會整理一筆交易(六個比特幣到這個地址)並添加她自己的簽名。

她可以嘗試立即廣播交易,但這將是無效的,因爲鮑勃沒有包含他的簽名。 Alice必須先把不完整的交易交給他。一旦他添加簽名,該簽名即生效。

我們還沒有建立一個機制來讓每個人都誠實地玩遊戲。正如我們之前所說,如果您的交易對手拒絕合作,您的資金實際上就會被困。讓我們瞭解一下防止這種情況發生的機制。有一些不同的移動部分,所以請耐心等待。

每一方都需要提出一個祕密——我們將這些祕密稱爲 A 和 B。如果愛麗絲和鮑勃透露了它們,那將是可怕的祕密,所以他們暫時將它們隱藏起來。該對將生成各自祕密的哈希值 – h(As) 和 h(Bs)。因此,他們不是共享祕密,而是彼此共享這些哈希值。

Alice and Bob share the hashes of their secrets with each other.

愛麗絲和鮑勃互相分享他們的祕密的哈希值。

Alice 和 Bob 在將他們的第一筆交易發佈到多重簽名地址之前還需要創建一組承諾交易。如果對方決定扣留資金,這將爲他們提供補救措施。

如果您將渠道想象成我們之前提到的迷你賬本,那麼承諾交易就是您對賬本所做的更新。每當您創建一對新的承諾交易時,您都會重新平衡兩個參與者之間的資金。

愛麗絲的一個將有兩個輸出——一個用於支付她擁有的地址,另一個則被鎖定到一個新的多重簽名地址。她在上面簽名並把它交給鮑勃。

Alice’s transaction with two outputs – one to her own address, and one to a new multisig. She still needs Bob’s signature to make it valid.

Alice 的交易有兩個輸出——一個輸出到她自己的地址,另一個輸出到一個新的多重簽名。她仍然需要鮑勃的簽名才能使其有效。

Bob 也做了同樣的事情——一個輸出支付給自己,另一個支付給另一個多重簽名地址。他簽名並將其交給 Alice。

We have two incomplete transactions that are very similar.

我們有兩筆非常相似的不完整交易。

通常,Alice 可以爲 Bob 的交易添加簽名以使其有效。但您會注意到,這些資金是從我們尚未資助的 2-of-2 多重簽名中支出的。這有點像嘗試從目前餘額爲零的帳戶中支出支票。因此,這些部分簽名的交易只有在多重簽名啓動並運行後纔可用。

新的多重簽名地址(3 個 BTC 輸出的目的地)具有一些特殊的屬性。讓我們看一下 Alice 簽名並交給 Bob 的不完整交易。多重簽名輸出可以在以下條件下使用:

  1. 雙方可以合作簽署。

  2. 鮑勃可以在一段時間後自己使用它(由於我們的時間鎖)。

  3. 如果愛麗絲知道鮑勃的祕密 B,她就可以花掉它。

對於鮑勃給愛麗絲的交易:

  1. 雙方可以合作簽署。

  2. 一段時間後,愛麗絲可以自己花掉它。

  3. 如果 Bob 知道 Alice 的祕密 A,他就可以花掉它。

請記住,雙方都不知道對方的祕密,因此條件 3 目前還不可能實現。另外需要注意的是,如果你簽署了交易,你的交易對手可以立即支出,因爲他們的輸出沒有特殊條件。你可以等待時間鎖到期後自己支出資金,也可以與對方合作直接支出。

好的!現在您可以將交易發佈到原始的 2-of-2 多重簽名地址中。這樣做最終是安全的,因爲如果您的交易對手放棄該渠道,您可以取回資金。

一旦交易得到確認,通道就會啓動並運行。第一對交易向我們展示了迷你分類賬的當前狀態。目前,它將向 Bob 支付 3 BTC,向 Alice 支付 3 BTC。

當愛麗絲想要向鮑勃進行新的付款時,兩人創建兩個新交易來替換第一組交易。演習是一樣的——他們只簽了一半。然而,愛麗絲和鮑勃首先放棄他們的舊祕密併爲下一輪交易交換新的哈希值。

If Alice wanted to pay 1 BTC to Bob, for example, the two new transactions would credit 2 BTC to Alice, and 4 BTC to Bob. In this way, the balance is updated.

例如,如果愛麗絲想向鮑勃支付 1 比特幣,則兩筆新交易將向愛麗絲記入 2 比特幣,向鮑勃記入 4 比特幣。這樣,餘額就更新了。

任何一方都可以隨時簽署並廣播最新的交易之一,以將其“結算”在區塊鏈上。但無論哪一方這樣做,都需要等到時間鎖到期,而另一方則可以立即支出。請記住,如果鮑勃簽署並廣播愛麗絲的交易,她現在就有一個沒有任何條件的輸出。

雙方可以同意共同關閉渠道(合作關閉)。這可能是將資金重新放回鏈上的最簡單、最快捷的方法。但是,即使一方沒有迴應或拒絕合作,另一方仍然可以通過等待時間鎖來收回資金。

閃電網絡如何防止作弊?

您可能已經在此處確定了攻擊媒介。如果 Bob 目前有 1 BTC 餘額,那麼什麼可以阻止他廣播他有更多 BTC 的舊交易呢?他已經從Alice那裏得到了半簽名的交易,他只需要添加他的簽名並廣播它,對吧?

沒有什麼可以阻止他這樣做——除了他可能會失去整個平衡。假設他執行了該操作並廣播了一筆舊交易,該交易向 Alice 支付一枚硬幣,並向我們之前提到的多重簽名地址支付 5 枚硬幣。

愛麗絲立即收到了她的硬幣。另一方面,鮑勃必須等到時間鎖到期才能從多重簽名地址進行支出。還記得我們提到的另一個條件,即允許愛麗絲立即花掉這些相同的資金嗎?她需要一個她當時沒有的祕密。她現在這樣做了——第二輪交易一創建,鮑勃就泄露了這個祕密。

當 Bob 坐在那裏,等待時間鎖到期而無法做任何事情時,Alice 可以轉移這些資金。這種基於懲罰的機制意味着參與者不太可能試圖作弊,因爲同伴將獲得他們的代幣。

路由支付

我們之前談到過這一點——通道可以連接。否則,閃電網絡對於支付就不會那麼有用。您真的打算在咖啡店的渠道中鎖定 500 美元,以便在接下來的幾個月裏每天都能獲得咖啡因嗎?

你不必這樣做。如果 Alice 打開了與 Bob 的通道,並且 Bob 已經與 Carol 建立了通道,則 Bob 可以在兩者之間路由付款。這可以跨越多個“躍點”,這意味着愛麗絲可以有效地向存在路徑的任何人付款。

In this scenario, Alice can go through multiple routes to get to Frank. In practice, she will always take the easiest one.

在這種情況下,Alice 可以通過多條路線到達 Frank。在實踐中,她總是會選擇最簡單的。

對於其在路由中的作用,中介機構可能會收取少量費用(儘管沒有義務這樣做)。閃電網絡仍然相對較新,因此費用市場尚未實現。許多人期望看到的是根據所提供的流動性收取費用。

在基礎鏈上,您的費用完全取決於您的交易在區塊中佔用的空間——傳輸的價值並不重要——1 美元和 10,000,000 美元的付款成本相同。相比之下,閃電網絡內沒有區塊空間這樣的東西。

相反,有本地和遠程平衡的想法。本地餘額是您可以“推送”到通道另一端的金額,而遠程餘額是您的交易對手可以推送給您的金額。

是時候再舉一個例子了。讓我們仔細看看上面的一條路徑:Alice <> Carol <> Frank。

Users’ balance before and after a transfer of 0.3 BTC from Alice to Frank.

用戶從 Alice 向 Frank 轉賬 0.3 BTC 前後的餘額。

Alice <> Carol 和 Carol <> Frank 的總容量均爲 1 BTC。 Alice 的本地餘額爲 0.7 BTC。如果他們現在在區塊鏈上結算,她將收到 0.7 BTC,卡羅爾將收到遠程餘額(即 0.3 BTC)。

如果 Alice 想要向 Frank 發送 0.3 BTC,她會將 0.3 BTC 推送到 Carol 的通道一側。然後 Carol 從她在 Frank 通道中的本地餘額中推送 0.3 BTC。因此,Carol 的餘額保持不變:Alice 的 +0.3 BTC 和 Frank 的 -0.3 BTC 相互抵消。

卡羅爾並沒有因爲充當愛麗絲和弗蘭克之間的聯繫而失去價值,但她讓自己變得不那麼靈活。你看,她現在可以在 Alice 的頻道中花費 0.6 BTC,但在 Frank 的頻道中只能花費 0.1 BTC。

您可以想象這樣一種情況:Alice 僅連接到 Carol,而 Frank 連接到更廣泛的網絡。 Carol 以前可以通過 Frank 總共向其他人發送 0.4 BTC,但現在她只能推送 0.1 BTC,因爲這就是她在渠道端的所有資產。

在這種情況下,愛麗絲實際上正在蠶食卡羅爾的流動性。如果沒有任何形式的激勵,卡羅爾可能不想削弱自己的地位。因此,她可能只是說我將以 10 聰的費用每 0.01 BTC 進行路由。這樣,卡羅爾在“更強”的路徑上犧牲的當地平衡越多,她獲得的利潤就越多。

如前所述,事實上並沒有收取費用的要求。有些人可能不關心流動性的減少。其他人可能只是直接向接收者打開通道。

閃電網絡的侷限性

如果閃電網絡被證明是解決比特幣所有可擴展性問題的解決方案,那就太棒了。不幸的是,它有其自身的缺點,可能會成爲障礙。

可用性

對於初學者來說,比特幣並不是最直觀的系統——地址、費用等可能會讓你感到困惑。閃電客戶端設置完成後,用戶還需要開始開通通道才能進行支付。這可能是一個耗時的過程,並且當向新手介紹入站/出站容量等概念時,可能會感到不知所措。

也就是說,我們正在不斷進行改進,以減少進入壁壘,併爲用戶提供更簡化的體驗。

流動性

對閃電網絡最大的批評之一是您的交易能力可能會受到限制。您的支出不能超過您鎖定的頻道。如果您花費了所有資金,使得遠程餘額擁有該通道的所有資金,則您必須關閉該通道。或者,您可以等到有人通過它向您付款,但這並不理想。

您的路徑也可能受到通道總容量的限制。以前面的愛麗絲<>卡羅爾<>弗蘭克爲例。如果 Alice 和 Carol 的通道容量爲 5 BTC,但 Carol 和 Frank 的容量只有 1 BTC,則 Alice 永遠無法發送超過 1 BTC。即便如此,整個平衡也需要在 Carol <> Frank 頻道的 Carol 這邊才能發揮作用。這可能會嚴重限制可以通過 LN 通道傳遞的資金量,從而對可用性產生連鎖反應。

集中樞紐

由於上一節中提到的問題,有人擔心網絡將促進大規模“中心”的創建。也就是說,具有大量流動性、聯繫緊密的大型實體。任何大額付款都需要通過其中一些實體進行。

顯然,這不是一個好情況。這會削弱系統,因爲這些實體離線會嚴重破壞同行之間的關係。由於交易僅通過幾個點進行,因此審查的風險也增加了。

閃電網絡的現狀

截至 2024 年 3 月,閃電網絡看起來很健康。它擁有超過 13,000 個在線節點、52,000 多個活躍通道以及超過 4,570 BTC 的容量。

Global distribution of Lightning Network nodes. Source: explorer.acinq.co

閃電網絡節點的全球分佈。

有幾種不同的節點實現——Blockstream 的 c-lightning、Lightning Labs 的 Lightning Network Daemon 和 ACINQ 的 Eclair 都是一些例子。對於不太懂技術的用戶,許多公司提供即插即用節點。您唯一需要做的就是給設備通電,然後您就可以開始使用閃電網絡了。

結束語

自 2018 年主網推出以來,閃電網絡取得了顯着的增長。仍有一些可用性障礙需要克服,因爲目前需要一定程度的技術熟練程度來操作閃電節點。但是,隨着開發量的不斷增加,我們很可能會看到進入壁壘隨着時間的推移而減少。

進一步閱讀

  • 區塊鏈可擴展性 - 側鏈和支付渠道

  • 什麼是節點?

  • 什麼是智能合約?其如何運作?

免責聲明:此內容按“原樣”提供給您,僅供一般信息和教育目的,不作任何形式的陳述或保證。它不應被視爲財務、法律或其他專業建議,也無意建議購買任何特定產品或服務。您應該向適當的專業顧問尋求自己的建議。如果文章由第三方貢獻者貢獻,請注意,所表達的觀點屬於第三方貢獻者,並不一定反映幣安學院的觀點。請在此處閱讀我們的完整免責聲明以瞭解更多詳情。數字資產價格可能會波動。您的投資價值可能會下降或上升,並且您可能無法收回投資金額。您對自己的投資決定承擔全部責任,幣安學院對您可能遭受的任何損失不承擔任何責任。本材料不應被視爲財務、法律或其他專業建議。有關更多信息,請參閱我們的使用條款和風險警告。