比特幣閃電網(wǎng)絡(luò)的運(yùn)作機(jī)制進(jìn)展與挑戰(zhàn)分析
掃描二維碼
隨時(shí)隨地手機(jī)看文章
比特幣閃電網(wǎng)絡(luò)曾發(fā)展迅猛,如今為何又陷入停滯?
是時(shí)候認(rèn)真研究一下比特幣閃電網(wǎng)絡(luò)的技術(shù)、解決方案和近期發(fā)展了。閃電網(wǎng)絡(luò)曾經(jīng)被詬病的資產(chǎn)安全問(wèn)題在 2019 年得到大幅度改進(jìn),用戶(hù)體驗(yàn)也有所優(yōu)化。過(guò)去閃電網(wǎng)絡(luò)限于小額支付的問(wèn)題,也藉由支付路徑的擴(kuò)增而得到解決。
在未來(lái),原子多路徑支付伴隨 HTLC(哈希時(shí)間鎖定合約)將會(huì)成倍增加路由選擇,有望大幅增加通道流動(dòng)性。但挑戰(zhàn)依然存在:閃電網(wǎng)絡(luò)系統(tǒng)的穩(wěn)定度和支付規(guī)模尚且不足,且無(wú)法支持多數(shù)應(yīng)用層,因此離規(guī)?;纳虡I(yè)應(yīng)用及用戶(hù)大幅擴(kuò)增還有一段距離。此外,閃電網(wǎng)絡(luò)通道手續(xù)費(fèi)收費(fèi)過(guò)低,節(jié)點(diǎn)數(shù)量上升緩慢,如何激勵(lì)運(yùn)營(yíng)節(jié)點(diǎn)加入也將是一大考驗(yàn)。
閃電網(wǎng)絡(luò)是一種比特幣鏈下支付協(xié)議,目標(biāo)是解決比特幣的可擴(kuò)展性問(wèn)題。盡管閃電網(wǎng)絡(luò)還處在早期發(fā)展階段,但比特幣支付網(wǎng)絡(luò)加上閃電網(wǎng)絡(luò),利用鏈下支付和「凈額軋差」概念,有助于提高比特幣交易效率,降低交易成本,一定程度上加強(qiáng)了比特幣作為交易媒介的屬性。
本文將通過(guò)三個(gè)方面,闡述和分析比特幣閃電網(wǎng)絡(luò)的進(jìn)展與挑戰(zhàn):
· 第一部分介紹閃電網(wǎng)絡(luò)運(yùn)作機(jī)制;
· 第二部分介紹 2019 年閃電網(wǎng)絡(luò)技術(shù)進(jìn)展;
· 第三部分介紹閃電網(wǎng)絡(luò)落地概況和有待解決的問(wèn)題。
閃電網(wǎng)絡(luò)運(yùn)作機(jī)制
閃電網(wǎng)絡(luò)基于微支付通道(雙向支付通道)演進(jìn)而來(lái),由微型銀行和支付通道兩個(gè)概念所構(gòu)筑,并就支付通道概念設(shè)計(jì)出了兩種類(lèi)型的交易合同——可撤銷(xiāo)的序列成熟度合約 RSMC (Revocable Sequence Maturity Contract)和哈希時(shí)間鎖定合約 HTLC (Hashed Timelock Contract)。其中,RSMC 解決通道中貨幣單向流動(dòng)及確權(quán)問(wèn)題,HTLC 解決貨幣跨節(jié)點(diǎn)傳遞通道的問(wèn)題。
閃電網(wǎng)絡(luò)的優(yōu)點(diǎn)包括:一是交易費(fèi)用低廉,無(wú)需礦工參與,用戶(hù)只需為中間節(jié)點(diǎn)支付通道費(fèi)用。二是交易時(shí)間迅速,只有少數(shù)節(jié)點(diǎn)參與,維持秒級(jí)交易時(shí)間。三是數(shù)據(jù)存儲(chǔ)負(fù)擔(dān)小,大多數(shù)數(shù)據(jù)存儲(chǔ)在鏈下,對(duì)鏈上存儲(chǔ)壓力不大。四是隱私性,交易數(shù)據(jù)不上鏈,隱私性得到一定的保護(hù)。
接下來(lái)依次介紹閃電網(wǎng)絡(luò)中的關(guān)鍵組成部分:智能合約(微型銀行)、支付通道(RSMC 和 HTLC)、路由和費(fèi)用機(jī)制。
智能合約
閃電網(wǎng)絡(luò)鏈上智能合約如同微型銀行運(yùn)作。用戶(hù) A 與 B (相互為交易對(duì)手) 如同微型銀行的存款人,而支付通道中的交易就是雙方調(diào)整各自存款余額的行為。微型銀行存在以下要素 :
· 點(diǎn)對(duì)點(diǎn) : 只存在 A、B 雙方
· 無(wú)須信任 : 公開(kāi)、透明、不可篡改、不可偽造
· 自治 : A、B 共同管理鏈上資產(chǎn)
· 雙簽 : 鏈上資產(chǎn)分配需要雙方簽名
· 承諾 : 雙方對(duì)存款余額調(diào)整方案達(dá)成?致,并且雙方簽名。此消息并不立刻廣播到鏈上,而是由雙方存儲(chǔ)在本地,并可經(jīng)由雙方同意進(jìn)行覆蓋。
支付通道
支付通道是支付雙方以閃電網(wǎng)絡(luò)托管雙方的資產(chǎn),通過(guò)共同承諾重新清算雙方的存款余額,以達(dá)到價(jià)值轉(zhuǎn)移的效果,由 RSMC 及 HTLC 兩個(gè)合約所組成。
RSMC
首先假定交易雙方之間存在一個(gè)支付通道。交易雙方先預(yù)存一部分資金到微支付通道里,初始情況下雙方的分配方案等于預(yù)存金額。每次發(fā)生交易后,需要對(duì)調(diào)整后的資金分配方案共同進(jìn)行確認(rèn),同時(shí)簽字把舊版的分配方案作廢。任何一方需要提現(xiàn)時(shí),將他手里雙方簽署過(guò)的交易結(jié)果寫(xiě)到區(qū)塊鏈網(wǎng)絡(luò)中并確認(rèn)。需要強(qiáng)調(diào)的是,只有在提現(xiàn)的時(shí)候才需要通過(guò)區(qū)塊鏈。
任何一個(gè)版本的資金分配方案都需要經(jīng)過(guò)雙方的簽名認(rèn)證才合法。任何一方在任何時(shí)候都可以提出提現(xiàn)的請(qǐng)求,提現(xiàn)時(shí)需要提供一個(gè)雙方都簽名過(guò)的資金分配方案(意味著某次交易后的結(jié)果,被雙方確認(rèn)過(guò),但未必是最新結(jié)果)。在一定時(shí)間內(nèi),如果另外一方拿出證明表明這個(gè)方案并非最新的交易結(jié)果,則提出方的資金歸于質(zhì)疑方(罰金機(jī)制);否則按照提出方的結(jié)果進(jìn)行分配。罰金機(jī)制可以確保用戶(hù)不會(huì)故意拿舊交易結(jié)果來(lái)提現(xiàn)。即使雙方都確認(rèn)了某次提現(xiàn),提出方的資金到賬時(shí)間要晚于對(duì)方。
· RSMC 交易構(gòu)造
圖 1:RSMC 交易構(gòu)造,來(lái)源:https://blocking.net/1516/bitcoin-lightning-network-rsmc/
假設(shè) Alice 及 Bob 想進(jìn)行鏈下閃電網(wǎng)絡(luò)交易,并且雙方預(yù)存金額均是 0.5 BTC。
首先,Alice 和 Bob 各自將 0.5 BTC 的保證金打到一個(gè) 2-2 多重簽名地址當(dāng)中 (即 Funding Tx)。Funding Tx 交易暫不被簽名,也不被廣播到鏈上。
接著,Alice 構(gòu)造一筆承諾交易 C1a,其中包含一筆退款交易 RD1a。C1a 的第一個(gè)輸出是 RD1a,由 Alice 另一個(gè)私鑰 Alice2 和 Bob 私鑰的多重簽名向 Alice 的地址轉(zhuǎn)入 0.5 BTC。但 RD1a 包含一個(gè) seq 變量以防止其馬上進(jìn)入?yún)^(qū)塊,而是要等 seq=100 個(gè)區(qū)塊。C1a 的第二個(gè)輸出是向 Bob 的地址轉(zhuǎn)入 0.5 BTC。Alice 將 C1a/RD1a 交給 Bob 簽名。
與此同時(shí),Bob 構(gòu)造一筆承諾交易 C1b,其中包含一筆退款交易 RD1b。C1b 的第一個(gè)輸出是 RD1b,由 Bob 的另一個(gè)私鑰 Bob2 和 Alice 的私鑰的多重簽名向 Bob 的地址轉(zhuǎn)入 0.5 BTC。但 RD1b 包含一個(gè) seq 變量,防止其馬上進(jìn)入?yún)^(qū)塊,而是要等 seq=1000 個(gè)區(qū)塊確認(rèn)。C1b 的第二個(gè)輸出是向 Alice 的地址轉(zhuǎn)入 0.5 BTC。Bob 將 C1b/RD1b 交給 Alice 簽名。
然后,Bob 對(duì) C1a/RD1a 簽名并返給 Alice,同時(shí) Alice 對(duì) C1b/RD1b 簽名并返給 Bob。
最后,Alice 檢查 C1a/RD1a 以及 Bob 的簽名,確認(rèn)后自己簽名。同時(shí),Bob 檢查 C1b/RD1b 以及 Alice 的簽名,確認(rèn)后自己簽名。
可以看出兩點(diǎn):第一,C1a/RD1a 和 C1b/RD1b 在結(jié)構(gòu)上相互對(duì)稱(chēng),實(shí)際上是站在 Alice 和 Bob 各自立場(chǎng)上,對(duì)雙方預(yù)存金額均是 0.5 BTC 這一事實(shí)的不同表述(「一個(gè)產(chǎn)權(quán)關(guān)系,各自表述」)。這有點(diǎn)類(lèi)似中國(guó)古代「券」的概念:以竹片寫(xiě)作契約,分左右兩券,各執(zhí)其一,其中左券為契約中履約索償?shù)膽{證。但 C1a/RD1a 和 C1b/RD1b 在地位上比左右券平等。
第二,C1a 和 C1b 花費(fèi)的是同一個(gè)交易輸出,因此 C1a 和 C1b 中只有一個(gè)能被打包進(jìn)區(qū)塊。如果 Alice 廣播 C1a,那么 Bob 馬上就能拿到 0.5 BTC,而 Alice 要等 seq=1000 個(gè)區(qū)塊的確認(rèn)后才能拿到 0.5 BTC。反之,如果 Bob 廣播 C1b,那么 Alice 馬上就能拿到 0.5 BTC,而 Bob 要等 seq=1000 個(gè)區(qū)塊的確認(rèn)后才能拿到 0.5 BTC。換言之,如果交易的一方單方面廣播交易以關(guān)閉支付通道,他將延遲拿回自己的資金,而對(duì)方則可以馬上拿回自己的資金。這種安排構(gòu)成對(duì)后者的保護(hù)。
· RSMC 交易更新
假設(shè) Alice 向 Bob 支付 0.1 BTC,那么雙方在支付通道內(nèi)的資金分配方案將從 0.5/0.5 變?yōu)?0.4/0.6。與前文一樣,按照「一個(gè)產(chǎn)權(quán)關(guān)系,各自表述」的原則,Alice 和 Bob 將分別構(gòu)造 C2a/RD2a 和 C2b/RD2b,以確認(rèn)調(diào)整后的資金分配方案(圖 2)。
圖 2:RSMC 交易更新,來(lái)源:https://blocking.net/1516/bitcoin-lightning-network-rsmc/
與此同時(shí),雙方需要將舊版的資金分配方案(C1a/RD1a 和 C1b/RD1b)簽名作廢掉。這就要用到「顯示以撤銷(xiāo)」安排(Reveal to Revoke)。
在 C1a 的第一個(gè)輸出 RD1a 中,Alice 把自己的另一個(gè)私鑰 Alice2 交給 Bob,這意味著 Alice 放棄 C1a 而認(rèn)可 C2a。如果 Alice 反悔,那么 Bob 可以用 Alice2 構(gòu)造一個(gè)懲罰交易 BR1a。懲罰交易把 Alice 的資金轉(zhuǎn)入 Bob 的地址,并且不受 seq 變量的制約。如果 Alice 廣播 C1a/RD1a,那么 Bob 將廣播 BR1a。BR1a 將在 RD1a 之前執(zhí)行,從而對(duì) Alice 構(gòu)成懲罰。
圖 3:懲罰交易,來(lái)源:https://blocking.net/1516/bitcoin-lightning-network-rsmc/
反之,在 C1b 的第一個(gè)輸出 RD1b 中,Bob 把自己的另一個(gè)私鑰 Bob2 交給 Alice,這意味著 Bob 放棄 C1b 而認(rèn)可 C2b。類(lèi)似地,Alice 可以構(gòu)造懲罰交易對(duì) Bob 進(jìn)行反制。
由上面不難看出,seq 變量提供了一個(gè)實(shí)施懲罰和反制的時(shí)間窗口。
· RSMC 交易終止
關(guān)閉支付通道,并根據(jù)雙方最終認(rèn)可的資金分配方案構(gòu)造交易并廣播。
HTLC
RSMC 已可以滿(mǎn)足基礎(chǔ)清算要求,但也存在明顯的局限性:通過(guò) RSMC 方案進(jìn)行結(jié)算的雙方,必須建立直連的支付通道才能支付?;诖送袋c(diǎn),閃電網(wǎng)絡(luò)需要另一個(gè)協(xié)議 HTLC。
HTLC 支持「條件支付」(CondiTIonal Payment),通過(guò)多個(gè)首尾相連的支付通道串聯(lián)起來(lái)形成的支付路徑,支持首尾雙方通過(guò)支付路徑完成支付。
HTLC 的核心是時(shí)間鎖和 Hash 鎖。時(shí)間鎖是交易雙方約定在某個(gè)時(shí)間 T 之內(nèi)提交才有效,超時(shí)則承諾方案失效(無(wú)論是提出方或接受方)。哈希鎖可以理解為,對(duì)一個(gè)哈希值 H,提供原像 R,使得 Hash(R) = H,承諾有效;否則失效。如果支付交易因?yàn)楦鞣N原因未能成功,時(shí)間鎖能夠讓交易參與各方收回自己的資金,避免欺詐行為。
假設(shè) Alice 想要開(kāi)啟一個(gè)與 Bob 的交易,交易金額為 0.5 BTC,但 Alice 需要通過(guò) Carol 才能與 Bob 建立通道進(jìn)行交易(圖 4):
第一步:Bob 設(shè)定原像 R (也被稱(chēng)為暗示數(shù)),把哈希值 H=Hash(R) 告訴 Alice。
第二步:Alice 通過(guò) HTLC 向 Carol 進(jìn)行條件支付:當(dāng)且僅當(dāng) Carol 在 T 時(shí)刻前提供與哈希值 H 對(duì)應(yīng)的原像,Alice 才向 Carol 支付 0.5 BTC。類(lèi)似地,Carol 通過(guò) HTLC 向 Bob 進(jìn)行條件支付:當(dāng)且僅當(dāng) Bob 在 t 時(shí)刻前提供與哈希值 H 對(duì)應(yīng)的原像,Carol 才向 Bob 支付 0.5 BTC。其中,t