閃電網路如何讓多筆付款不必逐筆上鏈?

閃電網路如何讓多筆付款不必逐筆上鏈?的文章封面插畫

日常小額付款若每一筆都要等待交易確認、競爭手續費並占用有限的區塊空間,使用體驗很難像刷卡或電子支付那樣即時。直覺解法似乎是把全球共享帳本更新得更快,卻也會增加每個驗證者同步資料的負擔。

不過,Lightning Network 若讓付款離開鏈上,收付款雙方憑什麼相信中途的餘額不會被任意改寫?如果最後仍要回到比特幣結算,省下的等待究竟發生在哪裡?

關鍵在於支付通道。參與者先用鏈上交易鎖定一筆資金,接著在通道內反覆交換雙方簽署的新狀態;平常不必把每次更新廣播給全網,發生爭議或關閉通道時,任何一方仍能把最新有效狀態送回比特幣網路執行。速度來自重複改寫同一筆鎖定資金的分配方案,而非創造另一套無須鏈上約束的餘額。

開通通道先要做一筆鏈上承諾

兩個人建立通道時,錢包會產生一筆資金交易,把某個 UTXO 鎖進雙方共同約定的花費條件。這筆交易需要進入有效區塊;在它獲得足夠確認前,通道缺少可由比特幣規則執行的資金基礎。

鎖進去的總額形成通道容量,資金起初位在哪一側,則決定付款方向。若甲把資金全部放在自己這側,甲可以逐步付給乙;等大部分餘額移到乙那側,甲可支付的空間也會縮小。通道沒有憑空增加比特幣,只是在固定容量內改變雙方各自能取回多少。

開通與日後關閉通常仍要占用鏈上空間,也要面對當時的手續費與確認等待。Lightning 減少的是兩次結算之間的逐筆上鏈需求,沒有消除基礎層成本。

每次付款都在替換可執行的結算版本

通道內付款時,雙方會建立新的「承諾交易」,記錄更新後各自可取得的餘額,並用各自的私鑰簽署。這份交易平時留在參與者手中,不立刻廣播;下一次付款再以更新版本取代它。數百次小額往來因此可以只留下開通與關閉等少數鏈上紀錄。

真正棘手的是舊版本。假設甲曾經擁有較多餘額,後來已經付了一部分給乙,甲若還能把早期版本拿去結算,就有誘因假裝後續付款沒有發生。Lightning 的通道協議會讓已撤銷的舊狀態帶有可被追究的條件:有人廣播過期版本時,另一方可在限定時間內提出對應資訊,取走違規一方原本想領回的資金。

這套約束依賴簽章、時間鎖與可在鏈上執行的花費條件。比特幣全節點不必在每次通道更新時知道新餘額;它們只在結算交易真正被廣播後,依公開規則判斷哪一筆支出有效。參與者因此需要保存最新通道狀態,並在可能發生爭議的期間監看鏈上活動,或委託專門的監看服務代為警戒。

沒有直接通道,也能借路付款

實際使用時,付款人通常不會和每位收款人都各開一條通道。若甲和乙有通道、乙和丙也有通道,付款可以經由乙轉送。協議用帶有雜湊條件與期限的付款安排,讓沿途各段要嘛一起完成,要嘛到期後各自退回;中繼者不能只收下前一段資金,卻拒絕完成已承諾的下一段。

借路仍受流動性限制。沿途每條通道都必須在正確方向上有足夠可用餘額,付款才有機會成功。路徑太少、金額超過可用容量、參與者暫時離線或條件在期限內未完成,都可能讓嘗試失敗。付款程式可以改找其他路徑,卻無法把不存在的流動性變出來。

中繼者也可能收取路由費,用來補償資金占用與維運成本。它和鏈上手續費的計價方式不同,仍提醒我們:更快的支付路徑需要有人提供通道、資金與連線。

關閉通道時,鏈上規則重新接手

雙方都保持連線且同意最終餘額時,可以合作產生關閉交易,直接把資金分配回各自可控制的輸出。若一方失聯或拒絕合作,另一方也能單方面廣播自己持有的最新承諾交易;代價通常是部分資金要經過等待期,讓對方有時間檢查是否出現舊狀態。

因此,通道內的快速付款沒有取代比特幣的最終裁決。它把大量中間更新留在少數相關參與者之間,並保留一條能回到公開規則的出口。當出口壅塞、鏈上費用升高或狀態管理出錯時,這些依賴也會重新浮現。

閃電網路適合被理解成一套「先鎖定、反覆更新、最後結算」的支付協議。它讓高頻小額付款不必逐筆等待新區塊,同時把流動性、在線監看、路由與通道備份變成新的工程問題。快速體驗有清楚的技術來源,也有不能省略的現實邊界;看懂這個交換,才知道它能分擔哪些鏈上工作,又有哪些責任仍留在使用者與服務提供者手上。