比特幣閃電網路新手指南
首頁
文章
比特幣閃電網路新手指南

比特幣閃電網路新手指南

初階
發佈時間 Nov 28, 2018更新時間 May 15, 2024
20m

關鍵要點

  • 第 2 層解決方案的出現是為了解決區塊鏈技術固有的可擴展性限制。

  • 閃電網路是第 2 層擴展解決方案,無需區塊確認即可提供快速交易,進而促進有效率的小額支付。

  • 閃電網路透過多重簽名地址和雜湊時間鎖合約,確保安全可擴展的付款。

前言

加密貨幣屬性相當獨特。 駭客無法輕易入侵或關閉貨幣系統,任何人皆可使用比特幣在全球範圍內傳輸價值,無需第三方介入。

為確保功能存續,必須做出重大的權衡取捨。由於負責執行加密貨幣網路的節點有許多,導致流通量較為有限。因此,對於旨在獲得大眾採納的技術來說,區塊鏈網路的每秒交易次數 (TPS) 相對較低。

為了克服區塊鏈技術的固有局限性,人們已提出許多可擴展性解決方案以提升網路可處理的交易次數。本文將深入探討閃電網路 — 比特幣協定擴展方案。

什麼是閃電網路?

閃電網路是在區塊鏈上執行的網路,可促進快速的點對點交易。它並非比特幣的獨有功能,已有其他加密貨幣整合這項功能。

您可能想知道「在區塊鏈上執行」是什麼意思。閃電網路即所謂的鏈下或第二層解決方案。用戶可透過此網路執行交易,無需在區塊鏈上記錄每筆交易。

閃電網路與比特幣網路彼此獨立,自有節點和軟體,但仍然會與主鏈通訊。您需要在區塊鏈上創建特殊交易,方能進入或離開閃電網路。

您執行的第一筆交易,實際上是與另一位用戶建立某種智能合約。我們稍後會做詳細介紹。現在,只需將智能合約想像成為您和另一位用戶持有私人分類帳即可。您可以在此分類帳中寫入多筆交易。這些交易僅供您和交易對手查看,但由於特定的功能設定,雙方均不得造假。

這個迷你分類帳稱為管道。假設 Alice 和 Bob 各將 5 BTC 放入智能合約中。現在,他們的管道餘額皆為 5 BTC。隨後,Alice 可在分類帳寫入「向 Bob 支付 1 BTC」。現在,Bob 有 6 BTC,而 Alice 有 4 BTC。之後,Bob 可將 2 BTC 轉回給 Alice,則餘額更新為 Alice 有 6 BTC,Bob 有 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 將資金轉給了誰。

閃電網路如何運作?

我們已經解釋閃電網路如何高度依賴於節點之間的管道。我們現在來看看事情的本質。

多重簽名地址

多重簽名地址 (簡稱multisig) 是指可以透過多個私鑰進行消費的地址。創建一個多重簽名時,您會指定可以動用資金的私鑰數量,以及簽署交易需要的私鑰數量。例如,5 選 1 方案表示五個金鑰可以產生一個有效簽名,且僅需要一個簽名。3 選 2 方案則表示,在三個可能的金鑰中,需要使用其中任意兩個才能動用這些資金。

為了初始化閃電管道,參與者會將資金鎖定在 2 選 2 方案中。只有兩個私鑰能夠簽署,如需轉移代幣,兩個私鑰都需要用上。現在,我們再來講講朋友 Alice 和 Bob。在接下來幾個月中,他們將互轉多筆款項,因此,他們決定開啟閃電網路管道。

比如說,首先,他們各自都在聯合擁有的多重簽名地址中存入 3 BTC。需要重申的是,未經 Alice 同意,Bob 不能將資金從此地址轉出,反之亦然。

現在,他們只需要保留一張紙,就能調節雙方的餘額。兩個人的起始餘額均為 3 BTC。如果 Alice 想向 Bob 支付 1 BTC,為何不記錄 Alice 現在擁有 2 BTC,而 Bob 擁有 4 BTC?在他們決定將資金轉出之前,可透過這種方式來追蹤餘額。

這是可以實現的,但有趣的地方在哪裡呢?更重要的是,這樣豈不是很容易讓一些人拒不配合?如果 Alice 最終有 6 BTC,而 Bob 一文不名,Bob 拒絕放行資金並不會有任何損失 (除了可能會斬斷與 Alice 的友情)。

雜湊時間鎖合約 (HTLC)

上述系統較為枯燥,並未提供太多當今信任的設定。若我們引入一種強制在 Alice 和 Bob 之間執行「合約」的機制,會變得更加有趣。如果其中一方不按規矩行事,則另一方仍有補救措施將資金從管道撤出。

此機制是雜湊時間鎖合約 (HTLC)。這個術語可能聽起來很深奧,但實際上卻是一個通俗易懂的概念。此機制結合了另外兩種技術 (雜湊鎖和時間鎖) 以糾正支付管道中的不合作行為。

雜湊鎖是交易中設定的一個條件,表明您只能透過證明您知道一個秘密,才能動用這些資金。發送方會對一段資料進行雜湊處理,並將雜湊值納入發送給接收方的交易中。接收方如需動用這些資金,唯一方式就是提供與雜湊值相符的原始資料 (秘密)。而發送方將相關資料給予接收方,是接收方可以提供這些資料的唯一方法。

時間鎖則是一種可阻止您在特定時間之前動用資金的條件,可將其指定為實際時間或指定的區塊高度。

將雜湊鎖與時間鎖結合起來,就可以創建 HTLC。實際上,可使用 HTLC 創建有條件支付,即接收方必須在特定時間之前提供秘密,不然,發送者可以撤回資金。接下來的這個部分可能透過範例來闡述更為易懂,所以我們再來說說 Alice 和 Bob。

開啟和關閉管道

我們舉了這麼一個例子:Alice 和 Bob 剛剛創建了為共用的多重簽名地址提供資金的交易。但這些交易並未發布至區塊鏈上!我們需要先完成一件事。

Bob 的三枚代幣和 Alice 的三枚代幣。

Bob 的三枚代幣和 Alice 的三枚代幣。

請記住,可將代幣從多重簽名地址中轉出的唯一方法就是 Alice 和 Bob 共同簽署交易。如果 Alice 想要將總共六枚代幣皆轉至外部地址,需要先得到 Bob 的批准。她需要先匯總一筆交易 (六枚比特幣到此地址),並加上她自己的簽名。

她可以嘗試立即廣播交易,但這屬於無效行為,因為 Bob 並未加上他的簽名。Alice 必須先將未完成的交易交給他。一旦他加上自己的簽名,即可生效。

我們仍未落實一個可讓每個人皆誠實行事的機制。如前所述,如果您的交易對手拒絕合作,您的資金就會有效困住。我們來看看防範這種情況的機制。有一些不同的變化因素,因此,請耐心等待。

各方都需要提出一個秘密,我們稱之為 A 秘密和 B 秘密。如果 Alice 和 Bob 揭露這些秘密,後果將不堪設想,所以他們當下會保守秘密。此交易對將生成個別秘密的雜湊值:雜湊值 (A 秘密) 和雜湊值 (B 秘密)。因此,他們並不是分享秘密,而是彼此共用雜湊值。

Alice 和 Bob 彼此分享他們秘密的雜湊值。

Alice 和 Bob 彼此分享他們秘密的雜湊值。

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

如果您考慮像我們之前提到的迷你帳本等管道,則承諾交易就是您對帳本所做的更新。創建承諾交易的新交易對時,都會隨時重新調整兩個參與者之間的餘額。

Alice 的分類帳將有兩筆輸出,一筆輸出向她擁有的地址付款,另一筆輸出則鎖定至新的多重簽名地址。她簽署並將款項給予 Bob。

Alice 的交易有兩筆輸出,一筆輸出至她自己的地址,一筆輸出至一個新的多重簽名地址。她仍然需要 Bob 的簽名才能生效。

Alice 的交易有兩筆輸出,一筆輸出至她自己的地址,一筆輸出至一個新的多重簽名地址。她仍然需要 Bob 的簽名才能生效。

Bob 同樣如此,一筆輸出支付給自己,另一筆輸出支付給另一個多重簽名地址。他簽署並將其給到 Alice。

我們有兩筆非常相似的未完成交易。

我們有兩筆非常相似的未完成交易。

通常,Alice 可以新增簽名至 Bob 的交易,方能生效。但您會發現,這些資金是透過我們尚未提供資金的 2 選 2 多重簽名支出。這有點像是試圖從目前餘額為零的帳戶支出一張支票。因此,這些已部分簽署的交易僅在多重簽名開始順利運作時才可使用。 

新多重簽名地址 (3 BTC 輸出之目的地) 具有一些特殊屬性。我們來看看 Alice 已簽署並交給 Bob 的未完成交易。可於以下條件下使用多重簽名輸出:

  1. 雙方可以合作簽署此交易。

  2. 由於具有時間鎖,Bob 可在特定時段後自行動用資金。

  3. 如果 Alice 知道 Bob 的秘密 (即 B 秘密),她就可以動用資金。

對於 Bob 轉帳給 Alice 的交易:

  1. 雙方可以合作簽署此交易。

  2. Alice 可在特定時段後自行動用資金。

  3. 如果 Bob 知道 Alice 的秘密 (即 A 秘密),他就可以動用資金。

請記住,他們雙方都不知道對方的秘密,因此條件 3) 尚不可能做到。還有一點需要注意,如果您簽署交易,交易對手可立即動用資金,因為他們的輸出未附帶任何特殊條件。您可以等待時間鎖到期,屆時可以自行動用資金,亦可與對方合作,直接動用這筆資金。

好了!您現在可以將交易發布至原始的 2 選 2 多重簽名地址中。這個做法最終是安全的,因為如果交易對手放棄管道,您可以拿回自己的資金。

交易確認後,管道就會開始正常運作。第一個交易對向我們展示了迷你分類帳的當前狀態。目前,分類帳會向 Bob 支付 3 BTC,以及向 Alice 支付 3 BTC。

當 Alice 想要向 Bob 支付一筆新款項時,此交易對會創建兩筆新交易,來取代第一組交易。道理是一樣的,他們僅為半簽署狀態。不過,Alice 和 Bob 先要放棄他們的舊秘密,並為下一輪交易交換新的雜湊值。

例如,如果 Alice 想向 Bob 支付 1 BTC,則兩筆新交易將向 Alice 計入 2 BTC,並向 Bob 支付 4 BTC。這樣一來,餘額會予以更新。

例如,如果 Alice 想向 Bob 支付 1 BTC,則兩筆新交易將向 Alice 計入 2 BTC,並向 Bob 支付 4 BTC。這樣一來,餘額會予以更新。

任何一方皆可隨時簽署及廣播最近的其中一筆交易,以便在區塊鏈上進行「結算」。但任何一方這樣做都需要等待時間鎖到期,而對方可以立即動用資金。請記住,如果 Bob 簽署並廣播 Alice 的交易,她當下會有一個無附加條件的輸出。

雙方可以協議一起關閉管道 (合作關閉)。這是讓資金重回鏈上最簡單快捷的方式。不過,即使一方沒有回應或拒不合作,另一方仍可等待時間鎖到期,藉此來收回他們的資金。

閃電網路如何防止弄虛作假?

您可能已經在此處鑑別出攻擊媒介。如果 Bob 目前餘額為 1 BTC,可採取哪些措施,阻止他在廣播之前已經完成的更早期交易?他已經從 Alice 那裡獲得半簽署的交易,只需要加上自己的簽名並進行廣播,是吧?

沒有什麼可以阻止他這麼做,除了他可能會失去全部餘額這一事實。假設他這麼做了,並廣播了一筆舊交易,這筆交易向 Alice 支付了一枚代幣,並向我們先前提到的多重簽名地址支付了五枚代幣。

Alice 便會立即收到代幣。而 Bob 卻必須等待時間鎖到期,才能透過多重簽名地址動用資金。還記得可讓 Alice 立即動用同一筆資金的另一個條件嗎?她需要一個當時並不知道的秘密。她當下這麼做了,在創建第二輪交易後,Bob 立即洩露該秘密。

Bob 只能坐等時間鎖到期,別無他法,而 Alice 可以動用這些資金。這種基於懲罰的機制就意味著,參與者甚至不太可能試圖作弊,因為這樣會將自己的代幣拱手讓人。

設定支付路徑

我們之前提過這點:管道可以互通。不然,閃電網路對於付款就沒那麼大的用處了。您真的打算在咖啡店的管道中鎖定 500 美元,只是為了在接下來的幾個月中每天都能攝取咖啡因嗎?

您不一定非得這麼做。如果 Alice 與 Bob 開啟一個管道,而 Bob 已經與 Carol 開啟一個管道,則 Bob 可在兩者之間按設定路徑付款。多次「跳躍」也是可行的,也就是說,Alice 可以向擁有路徑的任何人付款。

在這種情況下,Alice 可透過多條路徑轉帳給 Frank。實際上,她總是會選擇最簡單的路徑。

在這種情況下,Alice 可透過多條路徑轉帳至 Frank。實際上,她總是會選擇最簡單的路徑。

中間機構對於在發送路徑中所發揮的作用,可能會收取小額手續費 (雖然沒有義務這麼做)。閃電網路仍然非常新,因此尚未形成手續費市場。許多人期望看到的是根據所提供的流動性收取手續費。

在基礎鏈上,您的手續費僅會依據您的交易在區塊中所佔據空間來收取,傳輸的價值並不重要,1 美元和 10,000,000 美元的付款費用是一樣的。相比之下,閃電網路中不存在區塊空間之類的事物。 

不過,閃電網路具有本地和遠端餘額的概念。本地餘額是您可以「推送」至管道另一端的金額,而遠端餘額是您的交易對手可以推送給您的金額。

再來舉一個例子。讓我們仔細看看上面的其中一條路徑:Alice <> Carol <> Frank。

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

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

Alice <> Carol 和 Carol <> Frank 的總容量各為 1 BTC。Alice 的本地餘額為 0.7 BTC。如果他們現在於區塊鏈結算,她將收到 0.7 BTC,而 Carol 將收到遠端餘額 (即 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 互相抵消。

Carol 並沒有因為充當 Alice 和 Frank 之間的聯繫而喪失價值,但她犧牲了自己的靈活性。您可以看到,她現在與 Alice 的管道中能夠支出 0.6 BTC,但在與 Frank 的管道中只能支出 0.1 BTC。

想想看,Alice 只能連接到 Carol,而 Frank 可以連接到更廣泛的網路。Carol 先前可透過 Frank 向其他人發送共 0.4 BTC,但當下她只能推送 0.1 BTC,因為這是她在管道端的全部家當。

在這種情況下,Alice 正有效消耗 Carol 的流動性。若沒有任何激勵措施,Carol 可能會不想削弱自己的持倉。因此,她可能會說每轉出 0.01 BTC,我將收取 10 聰的手續費。如此一來,Carol 在「更強大」路徑中犧牲的本地餘額愈多,她的收益就愈大。

如前所述,事實上並沒有收取手續費的要求。有些人可能並不怎麼關心流動性的減少。一些人可能只是直接對接收方開啟管道。

閃電網路的局限性

如果能夠證明閃電網路可有效解決比特幣的所有可擴展性問題,那簡直是太好了。可惜的是,閃電網路有一些無可避免的缺點。

可用性

對於新手而言,比特幣並非最直觀的系統,可能會讓人對地址、手續費等事項心存困惑。用戶的閃電用戶端設定完成後,還需要先開啟管道才能進行付款。這個過程可能相當耗時,而且在向新手介紹入帳/出帳容量等概念時,可能會讓人不知所措。

也就是說,我們持續做出改進,來降低准入門檻,並為用戶提供更流暢的體驗。

流動性

閃電網路面臨的最大批評之一是,您的交易能力會受到局限。您所動用的資金必須少於管道內鎖定的資金。如果您動用了全部資金,使得遠端餘額持有此管道的所有資金,則您必須關閉此管道。也可等待其他人透過此管道向您付款,但效果並不理想。

管道總容量可能也會對您的路徑有所限制。以先前的 Alice <> Carol <> Frank 為例。 如果 Alice 和 Carol 在各自管道中有 5 BTC 容量,但 Carol 和 Frank 只有 1 BTC 容量,則 Alice 絕不能轉出超過 1 BTC。即便如此,全部餘額需要在 Carol <> Frank 管道的 Carol 端才能發揮作用。這樣可能會嚴重限制可透過 LN 管道傳遞的資金量,因此對可用性產生連鎖反應。

中心化樞紐

由於上一節提到的問題,有人擔心此網路將促進創建大量「樞紐」,那就是具有大量流動性、高度關聯的大型實體。任何大額付款皆需通過其中一些實體按路徑發送。

顯然,這種情況並不太好。這樣會削弱系統的功能,因為這些實體轉向線下會嚴重破壞對等者之間的關係。審查風險也會有所增加,因為只有幾個點可順利進行交易。

閃電網路的現狀

截至 2024 年 3 月,閃電網路看起來一切運作正常。網路擁有逾 13,000 個線上節點、逾 52,000 個活躍管道以及逾 4,570 BTC 的容量。

閃電網路節點的全球分佈資料來源:explorer.acinq.co

閃電網路節點的全球分佈

節點實作有幾種不同的類型,包括 Blockstream 的 c-lightning、Lightning Labs 的 Lightning Network Daemon 以及 ACINQ 的 Eclair。對於不太擅長技術的用戶而言,很多公司會提供即插即用型節點。您只需要接通裝置電源,就可以開始使用閃電網路。

總結

自 2018 年主網推出以來,閃電網路展現出顯著的成長。由於操作閃電節點需要一定程度的技術能力,因此仍存在可用性障礙,需要克服。但隨著開發量增加,我們很可能會看到進入障礙隨著時間演進而降低。

延伸閱讀

免責聲明:本內容按「如實」原則呈現給您,僅用於一般資訊和教育目的,不作任何形式的陳述或保證。請勿將其視為財務、法律或其他專業建議,亦未企圖推薦購買任何特定產品或服務。您應該向適當的專業顧問尋求建議。本文由第三方貢獻者提供,請注意,文中所述看法均屬第三方貢獻者所有,不一定能反映幣安學院意見。請在這裡參閱完整的免責聲明以了解詳情。數位資產價格可能會波動。您的投資價值可能會下跌或上漲,您可能無法收回投資金額。您須對自己的投資決策負全部責任,幣安學院對於您可能遭受的任何損失概不負責。本文並非財務、法律或其他專業建議。如需更多資訊,請參閱我們的使用條款和風險警告。