關鍵方面
Layer 2 解決方案的創建是爲了解決區塊鏈技術固有的可擴展性限制。
閃電網絡是第 2 層可擴展性解決方案,無需區塊確認即可提供快速交易,從而實現高效的小額支付。
通過多重簽名地址和哈希時間鎖定合約確保安全且可擴展的支付。
介紹
加密貨幣有一些非常獨特的屬性。它們不易被黑客攻擊或竊聽,任何人都可以使用它們在世界任何地方之間傳輸價值,而無需第三方參與。
為了確保維持這些功能,必須做出重大權衡。由於許多節點負責運行加密貨幣網絡,因此處理能力有限。因此,對於旨在大規模採用的技術來說,區塊鏈網路每秒可以處理的交易數量(TPS)相對較低。
為了克服區塊鏈技術固有的局限性,人們提出了幾種可擴展性解決方案,旨在增加網路可以處理的交易數量。在本文中,我們將深入研究閃電網絡,它是比特幣協議的擴展之一。
什麼是閃電網路?
閃電網路是一個在區塊鏈上運行的網絡,以促進快速的點對點交易。它並不是比特幣獨有的,因為其他加密貨幣已經整合了它。
您可能想知道「在區塊鏈上運行」是什麼意思。閃電網路就是我們所說的鏈下或第 2 層解決方案,它允許人們進行交易,而無需在區塊鏈上記錄每筆交易。
閃電網路與比特幣網路是分開的:它有自己的節點和軟體,但它與主鏈進行通訊。要進入或離開閃電網絡,您必須在區塊鏈上創建特殊交易。
您對第一筆交易的實際操作是與另一個使用者建立一種智能合約。我們稍後會深入探討這一點。現在,只需考慮一下為您和其他用戶提供私人分類帳的智慧合約。在這個分類帳中,您可以寫入許多交易。它們僅對您和您的對手可見,但由於設置的一些特殊功能,您都無法作弊。
這個迷你帳本稱為通道。假設 Alice 和 Bob 各將 5 BTC 放入智能合約中。在他們的頻道上,他們現在都有 5 BTC 的餘額。然後,愛麗絲可以向帳簿寫入「向鮑伯支付 1 比特幣」。現在,Bob 有 6 個 BTC,Alice 有 4 個。他們可以繼續這樣做一段時間。
在任何時候,他們中的任何一個都可以在區塊鏈上發布通道的當前狀態。那時,通道每一側的餘額將被分配到鏈中各自的部分。
顧名思義,閃電網路交易速度快如閃電。無需等待區塊確認——只要您的網路連線允許,即可快速付款。
為什麼需要閃電網路?
到目前為止,閃電網路(或簡稱 LN)似乎是實現比特幣區塊鏈可擴展性的最明智的方法。在如此龐大的生態系統中協調變化非常複雜:存在硬分叉和潛在災難性錯誤的風險。考慮到如此大的價值,實驗是極其危險的。
當您將實驗移出區塊鏈時,您將擁有更大的靈活性。如果出現問題,不會對實際的比特幣網路產生影響。第 2 層解決方案不會破壞任何支撐該協議超過 15 年的安全假設。
也沒有義務取代舊有的做事方式。鏈上交易將繼續對最終用戶照常運行,只是現在他們還可以選擇執行鏈下交易。
使用閃電網路有幾個優點。接下來,我們將看到一些主要的。
可擴展性
比特幣區塊大約每十分鐘創建一次,並且只能包含一定數量的交易。塊空間是一種稀缺資源,因此您必須與其他用戶競價才能及時包含您的塊空間。礦工首先關心的是支付,因此他們會優先考慮費用較高的交易。
當沒有很多用戶同時嘗試發送資金時,這並不是真正的問題。您可以設定較低的費用,交易可能包含在下一個區塊中。但當太多用戶同時傳輸交易時,平均佣金會顯著增加。曾多次超過10美元。在2017年牛市的最高峰時,它超過了50美元。 2021年4月,比特幣平均交易費用超過60美元。
對於用比特幣轉移數千美元的交易來說,這似乎微不足道,但對於較小的支付來說,這是不可持續的。誰願意支付 3 美元的咖啡並收取 10 美元的佣金?
使用閃電網絡,您仍然需要支付費用,一筆用於打開通道,另一筆用於關閉通道,但是一旦通道打開,您和您的交易對手就可以免費進行數千筆交易。當您完成交易後,您只需在區塊鏈上發布最終狀態即可。
一般來說,如果更多的用戶依賴閃電網路等鏈下解決方案,區塊空間將得到更有效的利用。低價值、高頻的轉帳可以在支付管道中進行,而區塊空間將用於更大的交易,以及開啟或關閉管道。這將使系統可供更廣泛的用戶群使用,並實現長期可擴展性。
米克羅帕戈斯
在一筆交易中,可以發送的最小比特幣數量:大約 0.00000546 BTC。在撰寫本文時,這大約相當於 38 美分。雖然金額很小,但閃電網路允許您突破目前可用的最小單位進行交易的限制:0.00000001 BTC 或 1 聰。
閃電網路對於小額支付更具吸引力。常規交易費用使得在主鏈上發送小額金額變得不切實際。然而,在一個通道內,您可以免費發送一小部分比特幣。
小額支付是許多用例的理想選擇。有些人推測它們可能是基於訂閱的模式的可行替代品,在訂閱模式中,用戶每次使用服務時只需支付很少的費用。
隱私
閃電網路的第二個好處是它可以為使用者提供高度的保密性。各方不需要讓更廣泛的網路了解他們的管道。雖然您可能可以查看區塊鏈並說該交易打開了一個通道,但您不一定能夠知道該通道內發生了什麼。如果參與者選擇將其頻道設為私有,則只有他們知道正在發生哪些交易。
如果愛麗絲與鮑伯有一個通道,而鮑伯與卡羅爾有一個通道,那麼愛麗絲和卡羅爾將能夠透過鮑伯向彼此發送付款。如果 Dan 與 Carol 連接,Alice 將能夠向他付款。因此,其覆蓋範圍擴展到了廣泛的互連支付管道網路。在這種情況下,一旦通道關閉,您將無法確定 Alice 已將資金發送給誰。
閃電網路如何運作?
我們已經解釋了閃電網路是如何基於高層節點之間的通道的。現在讓我們更深入地看看這個。
多重簽名地址
多重簽章(或多重簽章)位址是多個私鑰可以從中進行支出的位址。建立地址時,您指定可以花費多少私鑰資金以及簽署交易需要多少個私鑰。例如,五分之一方案意味著五個金鑰可以產生有效簽名,並且只需要一個。 3 中的 2 個方案表明,在三個可能的密鑰中,需要兩個來花費資金。
要啟動閃電通道,參與者將資金鎖定在 2-of-2 方案中,只有兩個私鑰能夠簽名,並且都需要兩個私鑰來轉移代幣。為了理解它,讓我們來看看我們的朋友愛麗絲和鮑伯的另一個例子。在接下來的幾個月裡,他們將在彼此之間進行許多付款,因此他們決定開放閃電網路通道。
關係始於你們雙方將 3 BTC 存入你們共享的多重簽名地址。有必要重申的是,未經Alice批准,Bob將無法從管理層提取資金,反之亦然。
當然,他們可以簡單地將雙方調整後的餘額寫在一張紙上。兩者的起始餘額均為 3 BTC。如果愛麗絲想向鮑伯轉帳 1 BTC,為什麼不在單上註明愛麗絲現在擁有 2 BTC,鮑伯現在擁有 4 BTC?可以透過這種方式追蹤餘額,直到他們決定提取資金。
這樣做是可以的,但是樂趣在哪裡呢?更重要的是,這是否會導致其中一個人乾脆決定不合作?如果愛麗絲剩下 6 個比特幣,而鮑伯剩下 0 個比特幣,那麼鮑伯不會因為拒絕釋放資金而損失任何東西(也許除了他與愛麗絲的友誼)。
哈希時間鎖定合約(HTLC)
我們上面描述的系統很無聊,與目前涉及信任的配置相比並沒有提供很大的優勢。當我們引入一種負責執行 Alice 和 Bob 之間「契約」的機制時,一切都變得更加有趣。如果一方決定不遵守規則,另一方仍有權從通道中提取資金。
該機制是哈希時間鎖定合約(或 HTLC)。這個術語可能聽起來很複雜,但實際上是一個相當容易理解的概念。它結合了其他兩種技術(哈希鎖和時間鎖),以糾正支付管道中的任何不合作行為。
哈希鎖是應用於交易的條件,只有當你證明你知道一個秘密時,才允許你花費資金。發送方取得一段資料的雜湊值,並將該雜湊值包含在發送給接收方的交易中。接收者可以使用它的唯一方法是提供與雜湊值相符的原始資料(秘密)。您提供該資料的唯一方法是寄件者將其提供給您。
時間鎖是一種阻止您在特定時間之前支出資金的條件。它被指定為實時或給定的塊高度。
HTLC 是透過組合雜湊鎖和時間鎖創建的。在實踐中,HTLC 可用於建立有條件付款:接收者必須在特定時間之前提供秘密,否則發送者可以收回資金。下一部分可能透過範例最好地理解,所以讓我們再次轉向 Alice 和 Bob。
開啟和關閉通道
在我們舉了愛麗絲和鮑伯的例子之前,他們剛剛產生了為他們共享的多重簽名地址提供資金的交易。這些交易尚未在區塊鏈上發布。首先,我們必須做點別的事情。
鮑伯的三枚硬幣和愛麗絲的三枚硬幣。
請記住,這些代幣離開多重簽章的唯一方法是 Alice 和 Bob 共同簽署交易。如果愛麗絲想將六枚硬幣發送到外部地址,她需要得到鮑伯的批准。您必須先建立一個交易(六個比特幣到該地址),然後添加您自己的簽名。
您可以嘗試立即傳輸它,但這將是無效的,因為鮑勃尚未包含他的簽名。首先,Alice 必須將不完整的交易傳遞給 Bob。一旦他添加了簽名,交易就有效。
我們還沒有建立一個機制讓大家都遵守規則。正如我們之前所說,如果你的交易對手拒絕合作,實際上你的資金就會被困住。那麼讓我們看看防止這種情況發生的機制,它是由幾個不同的齒輪組成的,所以要注意。
每一方都必須提出一個秘密。我們將這些秘密稱為 A 和 B。對等方將產生各自秘密的雜湊值:h(As) 和 h(Bs)。因此,他們不是共享秘密,而是彼此共享這些哈希值。
愛麗絲和鮑伯交換他們的秘密的雜湊。
Alice 和 Bob 在將他們的第一個交易發佈到多重簽名地址之前還必須創建一個提交交易集。如果其中一方決定扣留資金,這將為他們提供解決方案。
如果您將通道想像為我們之前解釋過的迷你帳本,那麼承諾交易將是您對帳本所做的更新。每次創建一對新的承諾交易時,您都會重新調整兩個參與者之間的資金。
Alice 的交易將有兩個輸出:一個用於支付她擁有的地址,另一個則被鎖定到新的多重簽章地址。她在上面簽名並把它交給鮑伯。
Alice 的交易有兩個輸出:一個用於她自己的地址,另一個用於新的多重簽章地址。 Alice 仍然需要 Bob 的簽章才能使其有效。
鮑伯做了同樣的事情:一個輸出支付給自己,另一個輸出支付給另一個多重簽名地址。他在上面簽名並把它交給了愛麗絲。
我們有兩筆非常相似的不完整交易。
通常,Alice 可以為 Bob 的交易添加簽名以使其有效。但您會注意到,這些資金是從我們尚未資助的 2 個多重簽名中的 2 個中支出的。這有點像是嘗試從當前餘額為零的帳戶中支出支票。因此,這些部分簽署的交易只有在多重簽名啟動並運行後才可用。
新的多重簽名位址(3 個 BTC 輸出所在的位址)具有一些特殊的屬性。讓我們來看看 Alice 簽名並交給 Bob 的不完整交易。多重簽名輸出可以在以下條件下使用:
雙方可以合作簽約。
鮑勃只能在一定時間後使用它(由於我們的時間鎖)。
如果愛麗絲知道鮑伯的秘密 B,她就可以花掉它。
對於鮑伯給愛麗絲的交易:
雙方可以合作簽約。
愛麗絲只有在一定時間後才能使用它。
如果鮑伯知道愛麗絲的秘密王牌,他就可以花掉它。
請注意,雙方都不知道對方的秘密,因此還不可能出現條件 3。另一件需要記住的事情是,如果您簽署了一項交易,您的交易對手可以立即支出,因為他們的退出沒有特殊條件。您可以等待時間鎖到期自行花費資金,也可以與對方合作立即花費資金。
好的。現在您可以將交易發佈到原始的 2 of 2 多重簽名地址。
一旦交易得到確認,通道就會啟動並運作。第一對交易向我們展示了迷你帳本的當前狀態。目前,您將向 Bob 支付 3 BTC,向 Alice 支付 3 BTC。
如果 Alice 想要向 Bob 進行新的付款,則對等方會建立兩個新交易來取代第一組交易。練習是相同的:它們只有一半簽名。然而,愛麗絲和鮑勃首先放棄他們的舊秘密並為下一輪交易交換新的哈希值。
例如,如果 Alice 想向 Bob 支付 1 BTC,則兩筆新交易將向 Alice 貸記 2 BTC,向 Bob 貸記 4 BTC。這樣餘額就被更新了。
任何一方都可以隨時簽署並傳輸最新的交易之一,以將其「結算」在區塊鏈上。但這樣做的一方必須等到時間鎖到期,而另一方可以立即支出。請記住,如果鮑勃簽署並傳輸愛麗絲的交易,她現在可以無條件退出。
雙方可以同意共同關閉通道(合作關閉)。這可能是將資金返還到鏈上的最簡單、最快的方法。然而,即使一方停止回應或拒絕合作,另一方仍然可以透過等待時間鎖來領取您的資金。
閃電網路如何防止作弊?
您可能已經在此處確定了攻擊媒介。如果 Bob 目前有 1 BTC 餘額,那麼是什麼阻止他傳遞他有更多 BTC 的舊交易呢?你已經有了 Alice 的半簽名交易,你只需要添加她的簽名並傳輸它,對嗎?
沒有什麼可以阻止你這樣做,除了你可能會失去全部平衡。假設您執行了該操作並傳輸了一筆舊交易,該交易向 Alice 支付一枚硬幣,並向我們之前提到的多重簽名地址支付五枚硬幣。
愛麗絲立刻收到了她的硬幣。另一方面,Bob 必須等到時間鎖到期才能從多重簽名位址進行支出。還記得我們提到的另一個條件,即允許愛麗絲立即花掉這些相同的資金嗎?他需要一個他以前不知道的秘密。現在你知道了:第二輪交易一創建,鮑伯就透露了這個秘密。
當鮑伯等待時,在時間鎖結束之前無法執行任何操作,而愛麗絲可以轉移這些資金。這種基於懲罰的機制使得參與者不太可能試圖作弊,因為另一方可以獲得他們的代幣。
付款路線
我們之前談過:通道是可以連接的。否則,閃電網路對於支付就不會那麼有用。你真的會在一個有咖啡店的頻道上鎖定 500 美元,這樣你就可以在接下來的幾個月裡每天喝咖啡嗎?
你不必這樣做。如果 Alice 開啟了與 Bob 的頻道,而 Bob 已經與 Carol 建立了頻道,則 Bob 可以在兩者之間路由付款。這可以跨越多個“躍點”,這意味著愛麗絲可以有效地向存在路徑的任何人付款。
在這種情況下,愛麗絲可以走多條路線到達弗蘭克。在實踐中,她總是會選擇最簡單的一種。
由於其在路由中的作用,中介機構可能會收取少量佣金(儘管沒有義務這樣做)。閃電網路仍然相對較新,因此佣金市場尚未實現。許多人期望看到的是根據所提供的流動性收取費用。
在基礎鏈上,您的費用僅基於您的交易在區塊中佔用的空間(傳輸的價值並不重要)。 1 美元和 10,000,000 美元的付款費用相同。相比之下,閃電網路內沒有區塊空間。
相反,有本地和遠程平衡的想法。本地餘額是您可以「推送」到頻道另一端的金額,而遠端餘額是對方可以向您推送的金額。
讓我們來看另一個例子。讓我們仔細看看上述路徑之一:Alice <> Carol <> Frank。
從 Alice 轉帳 0.3 BTC 之前和之後給 Frank 的用戶餘額。
Alice <> Carol 和 Carol <> Frank 的總容量均為 1 BTC。 Alice 的本地餘額為 0.7 BTC。如果他們現在在區塊鏈上結算,Alice 將收到 0.7 BTC,而 Carol 將收到遠端餘額(即 0.3 BTC)。
如果 Alice 想發送 0.3 BTC 給 Frank,她就將 0.3 BTC 推到 Carol 的頻道端。然後 Carol 將她本地餘額中的 0.3 BTC 與 Frank 一起存入通道。結果,卡羅爾的餘額保持不變:愛麗絲的 +0.3 BTC 和弗蘭克的 -0.3 BTC 相互抵消。
卡羅爾並沒有因為充當愛麗絲和弗蘭克之間的聯繫而失去價值,但她變得不那麼靈活了。現在您可以在 Alice 的頻道上花費 0.6 BTC,但在 Frank 的頻道上只能花費 0.1 BTC。
您可以想像這樣一種情況:Alice 僅連接到 Carol,而 Frank 連接到更廣泛的網路。 Carol 以前可以透過 Frank 總共向其他人發送 0.4 BTC,但現在她只能推送 0.1 BTC,因為這是她在頻道端的所有資產。
在這種情況下,愛麗絲實際上消耗了卡羅爾的流動性。沒有任何激勵,卡羅爾可能不想削弱自己的地位。因此,你可以說,我會將每 0.01 BTC 轉為 10 聰的費用。這樣,卡羅爾在「更強」的路徑上犧牲的局部平衡越多,她獲得的利潤就越多。
正如我們之前提到的,事實上並沒有收取佣金的要求。有些人可能並不擔心流動性減少。其他人可能只是直接向接收者打開通道。
閃電網路的局限性
如果閃電網路被證明可以解決所有比特幣可擴展性問題,那就太好了。不幸的是,它有自己的缺點,可能會造成乾擾。
可用性
對於初學者來說,比特幣並不是最直觀的系統:地址、費用等可能難以熟悉。設定閃電用戶端後,用戶還必須開始開通通道才能進行付款。這可能是一個耗時的過程,對於剛接觸輸入和輸出功能等概念的人來說可能會感到不知所措。
也就是說,我們正在不斷進行改進,以降低進入門檻並為用戶提供更簡化的體驗。
流動性
對閃電網路最大的批評之一是你的交易能力可能受到限制。您的支出不能超過您在頻道上封鎖的金額。如果您花費了所有資金,使得遠端餘額擁有該通道的所有資金,則您將必須關閉該通道。或者,您可以等到有人透過它向您付款,但這並不理想。
您的路線也可能受到通道總容量的限制。我們以上面的愛麗絲<>卡羅爾<>弗蘭克為例。如果 Alice 和 Carol 在他們的頻道上有 5 BTC 容量,但 Carol 和 Frank 只有 1 BTC 容量,那麼 Alice 永遠不能發送超過 1 BTC。即使這樣,整個平衡也必須在 Carol <> Frank 頻道的 Carol 這邊才能發揮作用。這可能會嚴重限制可以透過 LN 通道傳遞的資金量,從而對可用性產生連鎖反應。
集中樞紐
由於上一節提到的問題,有人擔心網路將促進大規模「樞紐」的創建。也就是說,大型實體,聯繫緊密且具有大量流動性。任何大額付款都應透過其中一些實體發送。
顯然,這不會是一個很好的情況。這會削弱系統,因為這些實體離線會破壞同儕關係。由於交易僅經過幾個點,因此審查風險也較高。
閃電網路現狀
截至 2024 年 3 月,閃電網路看起來很健康。它擁有超過 13,000 個線上節點,超過 52,000 個活躍通道,容量略高於 4,570 BTC。
閃電網路節點的全球分佈。
有幾種不同的節點實作:Blockstream 的 c-lightning、Lightning Labs 的 Lightning Network Daemon 和 ACINQ 的 Eclair 都是一些例子。對於技術不太熟練的用戶,許多公司提供即插即用節點。您所要做的就是打開設備,然後您就可以使用閃電網路了。
結論
自 2018 年主網推出以來,閃電網路取得了顯著的成長。仍然存在一些可用性障礙需要克服,因為目前操作閃電節點需要一定程度的技術熟練程度。但是,隨著開發量的增加,我們可能會看到進入障礙隨著時間的推移而降低。
進一步閱讀
區塊鏈可擴展性:側鏈和支付管道
什麼是節點?
什麼是智能合約以及它們如何運作?
法律聲明和風險警告:此內容「按原樣」呈現,僅供一般資訊和教育目的,不作任何形式的陳述或保證。它不應被解釋為財務、法律或其他專業建議,也不旨在建議購買任何特定產品或服務。您應該向合適的專業顧問尋求個人建議。由於本文由第三方貢獻,請注意,所表達的觀點僅代表第三方貢獻者的觀點,並不一定反映幣安學院的觀點。欲了解更多信息,請在此處閱讀我們的完整法律聲明。數位資產價格可能會波動。投資的價值可升可跌,您可能無法收回投資金額。只有您對您的投資決策負責。幣安學院對您可能遭受的任何損失不承擔任何責任。本資料不應被視為財務、法律或其他專業建議。欲了解更多信息,請參閱我們的使用條款和風險警告。
