閃電網路(1)-詳解比特幣 Layer 2 擴容方案

什麼是閃電網路 (Lightning Network)

閃電網路是比特幣最具討論度的 Layer 2 擴容方案之一,其背後的主要思想是設計一種支付協議,可用於比特幣所面臨可擴展性問題的鏈下解決方案。究竟比特幣面對的問題是什麼?閃電網路又要解決什麼問題?這邊用一個輕鬆的例子,簡單介紹。

以比特幣的交易速度來說,每秒只能處理2~7筆交易,想像一下用比特幣進行支付,就像需要去銀行排隊轉帳一樣,一但交易量暴增,豈不是要在銀行等到白了頭?這種支付方式明顯難以接受。

閃電網路就像行動支付,你可以把一部分的錢存到行動支付,與任何支援的商家或個人快速地進行轉帳。某一天夜深人靜,阿平跟阿菜兩人無聊,決定比賽,用行動支付互相轉帳,每筆只轉一塊錢,看誰轉的比較多。如果是傳統的銀行模式,兩人可能排隊排一夜只能玩個幾次,還需要花手續費,根本沒辦法玩。透過行動支付一個晚上下來可以轉上千次,最終結果是阿菜比阿平手速快,一塊險勝。

而結算時行動支付會替他們去銀行排隊,然後跟櫃台說 : 「阿平帳戶餘額 -1,阿菜帳戶餘額 +1」。讀到這就能大致了解閃電網路解決方案的基本邏輯了。

重點來了,「閃電網路」要如何運作才能保證資產能夠在無信任的前提之下進行交易,並保障交易能夠安全的回到比特幣主鏈上確認呢?以下就來介紹幾項閃電網路的關鍵技術的概念。

單向支付渠道 (One-Directional Payment Channel)

在閃電網絡出現之前,單向支付渠道的概念已經存在了一段時間了,但應用有限。Alice向Bob開啟了一個單向支付渠道,在這渠道中Alice有10BTC,Alice可以向Bob支付鏈下交易,但這個渠道是單向的,也就是說Bob不能通過相同的渠道支付給Alice。

假如Bob在接收到1顆比特幣後:

  • 可以選擇關閉渠道,將交易廣播至主鏈,讓礦工做確認,即可從Alice那獲得1顆比特幣。
  • 或者,Bob知道日後Alice會繼續支付比特幣給他,選擇讓通道繼續開著。

問題來了,Bob擁有最後的簽名與廣播權,如果Bob是個無賴,讓通道一直開著,Alice就永遠沒辦法結算,10BTC就會被被綁架在這個支付渠道中。所以一般而言,支付渠道都會搭配一個配套措施「時間鎖」。

時間鎖 CheckSequenceVerify(CSV)

所謂的時間鎖就是,在創建通道時會先約定好一個時間,時間一到,通道就必須強制關閉,有兩人簽名的交易將會上鏈做交易確認,沒有簽名的餘額,會被返回給原持有人。

Alice和Bob在創建時,約定好在1000個區塊後,通道必須關閉。所以Bob必須要在時間到之前,簽名並廣播交易,才能拿到Alice給他的1顆比特幣。如果Bob遲遲不簽名廣播,一但約定時間到,Bob將一毛錢也拿不到。

雙向支付渠道 (Bi-Directional Payment Channel)

單向支付渠道之所以簡單,是因為交易是單向的,只允許兩個人中的其中一個人發送交易,另一個人廣播交易,不會有信任問題,但應用場景相對有限。

有鑑於單向渠道在應用上的不足,閃電網路想要打造的是無信任的雙向支付渠道,讓渠道的雙方能夠自由進行交易。那麼閃電網路要如何避免交易雙方產生信任問題,實現雙向支付渠道呢?

所謂的信任問題包括:

  • 雙向支付渠道代表雙方都必須有部分資金在渠道,那資產會不會被捲款?
  • 如何保證最終結算不會有誤?
  • 支付渠道是P2P網路,沒有驗證機制,誰來保護帳本?

下一集我們將探討,閃電網路如何解決信任問題,及其兩大核心技術的開發概念。

本文由 AMIS 首席科學家 – 陳昶吾博士協助審閱

相關文章