比特幣閃電網(wǎng)絡(luò)曾發(fā)展迅猛,如今為何又陷入停滯?
是時(shí)候認(rèn)真研究一下比特幣閃電網(wǎng)絡(luò)的技術(shù)、解決方案和近期發(fā)展了。閃電網(wǎng)絡(luò)曾經(jīng)被詬病的資產(chǎn)安全問(wèn)題在 2019 年得到大幅度改進(jìn),用戶體驗(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)用及用戶大幅擴(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ú)需礦工參與,用戶只需為中間節(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)作。用戶 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ī)制可以確保用戶不會(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ì)稱,實(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 已可以滿足基礎(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 (也被稱為暗示數(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
第三步:Bob 在 t 時(shí)刻前向 Carol 提供 R,獲得 0.5 BTC,此時(shí) Carol 知悉 R。反之,0.5 BTC 會(huì)返回給 Carol,Carol 不會(huì)遭受任何損失。
第四步:Carol 在 T 時(shí)刻前向 Alice 提供 R,獲得 0.5 BTC。反之,0.5 BTC 會(huì)返回給 Alice,Alice 不會(huì)遭受任何損失。
可以看出兩點(diǎn):第一,在 HTLC 下,支付要么完成,要么完不成但不會(huì)對(duì)參與者造成損失,因此是「原子式」的(Atomic),這是序貫博弈均衡的結(jié)果;第二,原像 R (信息)和資金相向流動(dòng),原像 R 可以被視為收據(jù)(Receipt)。
總的來(lái)說(shuō),RSMC 保障兩個(gè)人之間的直接交易可以在鏈下完成,HTLC 保障任意兩個(gè)人之間的轉(zhuǎn)賬都可以通過(guò)一條首尾相接的支付通道來(lái)完成。閃電網(wǎng)絡(luò)整合這兩種機(jī)制,即可實(shí)現(xiàn)任意兩個(gè)人之間的交易都在鏈下完成。在整個(gè)交易中,智能合約起到了中介的重要角色,而區(qū)塊鏈網(wǎng)絡(luò)則確保最終的交易結(jié)果被確認(rèn)。
路由
閃電網(wǎng)絡(luò)使用源路由和洋蔥路由。通過(guò)源路由,源節(jié)點(diǎn)負(fù)責(zé)計(jì)算從源到目的地的整條支付路徑。為此,源節(jié)點(diǎn)需要下載完整的公開(kāi)支付通道表,以便計(jì)算出一條支付路徑,并根據(jù)這條支付路徑涉及的所有通道的負(fù)載量來(lái)計(jì)算手續(xù)費(fèi)和所需條數(shù)。在點(diǎn)對(duì)點(diǎn)交易中,這個(gè)過(guò)程會(huì)涉及到大量數(shù)據(jù),而且數(shù)據(jù)量還會(huì)隨著網(wǎng)絡(luò)擴(kuò)大而增加。而洋蔥路由則讓交易鏈中間節(jié)點(diǎn)無(wú)法得知整個(gè)交易發(fā)起或接受方,保障了用戶隱私。
由于 HTLC 的時(shí)限性,交易達(dá)成速度不夠快就會(huì)失效,因此提高交易傳播速度對(duì)閃電網(wǎng)絡(luò)效率非常重要。而要提高交易傳播速度,最重要問(wèn)題便是如何規(guī)劃最短支付路徑。
閃電網(wǎng)絡(luò)運(yùn)用 PBMC (Probability-based mission control) 機(jī)制解決這個(gè)問(wèn)題。初始設(shè)定每個(gè)節(jié)點(diǎn)都有一個(gè)默認(rèn)成功率,并根據(jù)實(shí)際轉(zhuǎn)賬完成率調(diào)整。網(wǎng)絡(luò)路由的交易越多,任務(wù)控制組件就越了解這個(gè)網(wǎng)絡(luò)的特性,也就能更好地規(guī)劃支付路徑。
費(fèi)用機(jī)制
對(duì)于鏈上 BTC 交易,用戶選擇每筆交易的手續(xù)費(fèi),礦工選擇手續(xù)費(fèi)較高的交易生成區(qū)塊,以最大程度提高收入。但閃電網(wǎng)絡(luò)目前是以另外一種方式運(yùn)作:節(jié)點(diǎn)運(yùn)營(yíng)商設(shè)定手續(xù)費(fèi),用戶為他們的支付選擇路徑和通道,以最大程度降低手續(xù)費(fèi)。因此,閃電網(wǎng)絡(luò)能夠提供較低廉的收費(fèi)架構(gòu)。運(yùn)營(yíng)商提供專(zhuān)門(mén)化服務(wù),運(yùn)營(yíng)商之間(而非普通用戶)就費(fèi)率展開(kāi)競(jìng)爭(zhēng)更加恰當(dāng),操作上也更為便捷。
在閃電網(wǎng)絡(luò)中,節(jié)點(diǎn)運(yùn)營(yíng)商必須確定兩種類(lèi)型的路由費(fèi):基本費(fèi)和費(fèi)率?;举M(fèi)是每次交易通過(guò)路由支付時(shí)收取的固定費(fèi)用,以千分之一聰來(lái)表示。例如,基本費(fèi) 1000,這就表示每個(gè)交易的基本費(fèi)是 1 聰。而費(fèi)率則指按支付價(jià)值的一定百分比來(lái)收費(fèi),實(shí)際費(fèi)率公式為費(fèi)率除以 1,000,000。例如,費(fèi)率 1000 是指 1,000/1,000,000,也就是 0.1%,一旦轉(zhuǎn)賬成功,該路由通道會(huì)收取 0.1% 的轉(zhuǎn)賬價(jià)值費(fèi)用。
此外,為了給路由支付提供流動(dòng)性,閃電網(wǎng)絡(luò)節(jié)點(diǎn)運(yùn)營(yíng)商需要在支付通道鎖定一定數(shù)量的比特幣,包含入境流動(dòng)及出境流動(dòng)。入境流動(dòng)指節(jié)點(diǎn)的支付通道可以接收其他路由節(jié)點(diǎn)的最大資金數(shù)額。而出境流動(dòng)則指節(jié)點(diǎn)的支付通道可以用來(lái)支付其他路由節(jié)點(diǎn)的最大資金數(shù)額。節(jié)點(diǎn)可以控制出境流動(dòng),但無(wú)法控制入境流動(dòng),因?yàn)槿刖沉鲃?dòng)取決于其他路由節(jié)點(diǎn)存放在通道內(nèi)的資金數(shù)額。比如,如果節(jié)點(diǎn) A 要通過(guò)路由節(jié)點(diǎn) B 收取節(jié)點(diǎn) C 的 1 BTC,則節(jié)點(diǎn) A 需要有至少 1 BTC 的入境流動(dòng)。也就是路由節(jié)點(diǎn) B 需要放置至少 1 BTC 在 A、B 之間的通道中,交易才能成功。
入境流動(dòng)無(wú)法控制會(huì)造成閃電網(wǎng)絡(luò)交易效率低下。如果兩個(gè)節(jié)點(diǎn)交易中間隔了一個(gè)以上的路由節(jié)點(diǎn),就算能夠自身入境流動(dòng)余額足夠,但無(wú)法確認(rèn)其他路由節(jié)點(diǎn)的入境流動(dòng)余額是否足夠。只要有一個(gè)路由節(jié)點(diǎn)入境余額不夠,就會(huì)造成交易失敗。
節(jié)點(diǎn)運(yùn)營(yíng)商需要時(shí)時(shí)調(diào)整基本費(fèi)、費(fèi)率并監(jiān)控調(diào)整后影響。因?yàn)橹Ц缎枨笸ǖ罆r(shí)常改變,再加上目前費(fèi)率普遍過(guò)低 (一個(gè)大型節(jié)點(diǎn)日均收入為 10 萬(wàn)聰,約等于 7 美元),所以多數(shù)節(jié)點(diǎn)入不敷出。因此,當(dāng)前閃電網(wǎng)絡(luò)中的流動(dòng)性提供者,并非受投資回報(bào)所推動(dòng)。但為了實(shí)現(xiàn)大規(guī)模應(yīng)用,閃電網(wǎng)絡(luò)費(fèi)率設(shè)計(jì)需要重新思考激勵(lì)力度,通過(guò)兼顧投資回報(bào)和流動(dòng)性架構(gòu)以吸引節(jié)點(diǎn)運(yùn)營(yíng)商。
2019 年閃電網(wǎng)絡(luò)技術(shù)進(jìn)展
2019 年,閃電網(wǎng)絡(luò)有許多進(jìn)展,大幅增加了易用性、用戶資產(chǎn)安全及支付規(guī)模。以下,是較為重要的 4 個(gè)技術(shù)進(jìn)展:
瞭望塔 Watchtowers
閃電網(wǎng)絡(luò)白皮書(shū)首次描述了瞭望塔機(jī)制,該機(jī)制在 2019 年改善并應(yīng)用。瞭望塔針對(duì)的問(wèn)題是,使用閃電網(wǎng)絡(luò)的人需要保持在線狀態(tài),以確保他們的交易對(duì)手沒(méi)有試圖竊取資金。暸望塔可以檢測(cè)到不誠(chéng)實(shí)的一方是否試圖竊取資金,然后廣播正確交易的消息,將資金發(fā)回誠(chéng)實(shí)的一方(即使誠(chéng)實(shí)性節(jié)點(diǎn)處于離線狀態(tài))。換言之,如果一個(gè)不良行為節(jié)點(diǎn)試圖傳播一個(gè)舊的交易,瞭望塔就會(huì)懲罰該節(jié)點(diǎn)。
閃電網(wǎng)絡(luò)用戶可以連接專(zhuān)業(yè)運(yùn)營(yíng)的第三方暸望塔來(lái)保護(hù)他們的利益,任何路由節(jié)點(diǎn)也都可以運(yùn)行自己的瞭望塔來(lái)保護(hù)自身利益。暸望臺(tái)還可帶來(lái)威嚇與抑制欺詐的效果。對(duì)潛在攻擊者來(lái)說(shuō),因?yàn)椴磺宄灰讓?duì)手是否鏈接暸望塔,欺詐成本會(huì)大幅度增加。圖 5 顯示了瞭望塔運(yùn)行機(jī)制,瞭望塔實(shí)際上是由專(zhuān)業(yè)機(jī)構(gòu)代一般用戶實(shí)施圖 3 的懲罰機(jī)制。
延續(xù)圖 1-圖 3 的表述,考慮兩個(gè)交易對(duì)手 Alice 和 Bob,各放 0.5 BTC 在通道(即 C1a/RD1a 和 C1b/RD1b,不妨稱為交易 1 或「老交易」),然后 Alice 支付 Bob 0.1 BTC (即 C2a/RD2a 和 C2b/RD2b,不妨稱為交易 2 或「新交易」)。此時(shí),通道余額應(yīng)為 Alice 擁有 0.4 BTC,Bob 擁有 0.6 BTC。假設(shè) Alice 想欺詐,把交易 1 含有雙方簽名的通道狀態(tài)廣播到鏈上。如果在 seq=1000 個(gè)區(qū)塊確認(rèn)時(shí)間內(nèi),Bob 沒(méi)有上線提出反對(duì),欺詐便會(huì)成功,Bob 將損失 0.1 BTC。
假設(shè) Bob 委托瞭望塔來(lái)防范交易對(duì)手詐欺。Bob 建立一個(gè)撤銷(xiāo)型交易(即圖 3 中的 BR1a),授權(quán)瞭望塔必要時(shí)可以撤銷(xiāo)交易對(duì)手廣播的過(guò)期交易。Bob 將該交易預(yù)先簽名并設(shè)定暗示數(shù),將暗示數(shù)及預(yù)先簽名的交易送至瞭望塔。該暗示數(shù)可以讓瞭望塔識(shí)別出過(guò)期交易,但不能讓瞭望塔得知交易明細(xì)或通道余額。
此后,每當(dāng)區(qū)塊鏈上廣播新交易時(shí),瞭望塔會(huì)根據(jù)哈希表來(lái)比對(duì)暗示數(shù)。一旦有交易之暗示數(shù)符合 Bob 設(shè)定之暗示數(shù),瞭望塔就可知該交易為須撤銷(xiāo)之交易。此時(shí),瞭望塔解密 Bob 提供的撤銷(xiāo)型交易并證明 Alice 發(fā)布的是過(guò)期交易,重組并廣播 Bob 預(yù)先簽好名的交易,將 Alice 通道內(nèi)的余額罰沒(méi)給 Bob。也就是說(shuō),只在欺詐行為發(fā)生時(shí),瞭望塔才可以解密撤銷(xiāo)型交易并得知其中內(nèi)容,因此不會(huì)嚴(yán)重影響用戶隱私。
潛交換 Submarine Swaps
潛交換技術(shù)是由 Alex Bosworth 創(chuàng)建,被作為一種無(wú)縫銜接鏈上和鏈下比特幣流通的技術(shù)。潛交換運(yùn)作機(jī)制類(lèi)似 HTLC,但同時(shí)涉及鏈上和鏈下交易(圖 6)。
假設(shè) Alice 要將鏈上比特幣支付給閃電網(wǎng)絡(luò)上的用戶 Bob,但是 Alice 并沒(méi)有閃電網(wǎng)絡(luò)通道。
第一步:Bob 會(huì)設(shè)定一組暗示數(shù) R (即原像),并將其哈希值 H 告知 Alice。
第二步:Alice 通過(guò)鏈上 HTLC,將比特幣連同 Bob 的閃電網(wǎng)絡(luò)地址一同送至潛交換服務(wù)商,要求潛交換服務(wù)商在一定時(shí)間內(nèi)揭示暗示數(shù)才能獲得這筆鏈上比特幣。類(lèi)似地,潛交換服務(wù)商通過(guò)鏈下 HTLC,將同樣數(shù)量的比特幣通過(guò)閃電網(wǎng)絡(luò)支付通道轉(zhuǎn)到 Bob 的閃電網(wǎng)絡(luò)地址,要求 Bob 在一定時(shí)間內(nèi)揭示暗示數(shù)才能獲得這筆鏈下比特幣。
第三步:Bob 揭示暗示數(shù)獲得鏈下比特幣,潛交換服務(wù)商再利用暗示數(shù)獲得鏈上比特幣,整個(gè)潛交換完成。
由此可見(jiàn),潛交換最大功用是提升鏈上、鏈下的互操作性,并因?yàn)?HTLC 的特性,能將信用成本降至最低。潛交換可以用來(lái)延長(zhǎng)支付通道使用壽命上。閃電網(wǎng)絡(luò)交易需要交易雙方通道余額充足。當(dāng)通道流動(dòng)性枯竭后,用戶傾向關(guān)掉原有通道,等到下次需要時(shí)再開(kāi)啟一個(gè)新通道,但這限制了閃電網(wǎng)絡(luò)通道擴(kuò)展和商業(yè)規(guī)模化。在使用潛交換時(shí),用戶可以無(wú)需經(jīng)由鏈上交易,經(jīng)由潛交換服務(wù)提供商就可獲得鏈下比特幣,從而維持通道余額。
原子多路徑支付 Atomic Multi-Path Payments
目前閃電網(wǎng)絡(luò)交易單次支付的路由只能是單方向的。假設(shè) Alice 要支付 0.01 BTC 給用戶 Bob,那么他不僅必須在單通道上有 0.01 BTC,而且該路由上的所有中間商也必須在通道中準(zhǔn)備好 0.01 BTC 才能進(jìn)行交易。換句話說(shuō),支付額越大,就越難找到合適的支付路徑。
多路徑支付的想法在 2018 年已經(jīng)有豐富的討論,最初想法如下:將大額付款分割成小部分款項(xiàng),這些小部分款項(xiàng)再通過(guò)不同的節(jié)點(diǎn)運(yùn)營(yíng)商從付款人轉(zhuǎn)移到收款人手里。該解決方案面臨的挑戰(zhàn)是,利用閃電網(wǎng)絡(luò)支付有失敗的可能,將一筆交易分割為多筆交易可能出現(xiàn)部分交易成功而部分交易失敗的情況。換言之,越大額的支付越可能出現(xiàn)部分支付的問(wèn)題,這會(huì)制約用戶使用閃電網(wǎng)絡(luò)進(jìn)行大額付款的意愿。
解決方法是原子多路徑支付,簡(jiǎn)單來(lái)說(shuō)就是多路徑支付+防部分支付機(jī)制?!冈印沟暮x是:僅當(dāng)所有小額支付均成功時(shí),交易對(duì)手才會(huì)收到完整的付款;如果某些小額付款失敗,那么整個(gè)交易就會(huì)失敗,資金將退回付款方。
原子多路徑支付有如下好處 : 第一,提升隱私性。不管拆分成多少個(gè)通道來(lái)支付款項(xiàng),只有交易雙方知道其中的過(guò)程。第二,提升支付體驗(yàn)。用戶可以一次性轉(zhuǎn)出大額款項(xiàng),無(wú)須考慮通道金額上限問(wèn)題。
中微子協(xié)議 neutrino
中微子協(xié)議由一條「過(guò)濾層」鏈所組成。每一個(gè)過(guò)濾層和一個(gè)比特幣區(qū)塊連結(jié),以壓縮的方式代表其連結(jié)的區(qū)塊,過(guò)濾層相較于原區(qū)塊大小約壓縮 250 倍。中微子協(xié)議目的是減輕客戶端硬件設(shè)施的負(fù)擔(dān),只擷取和交易雙方相關(guān)的數(shù)據(jù),避免硬件設(shè)施需要和比特幣主鏈時(shí)刻同步。中微子協(xié)議運(yùn)行流程如下:
每當(dāng)一個(gè)新區(qū)塊產(chǎn)出,全節(jié)點(diǎn)計(jì)算區(qū)塊對(duì)應(yīng)的中微子過(guò)濾層,并發(fā)送給閃電網(wǎng)絡(luò)上所有中微子客戶端。因此,大約每 10 分鐘,客戶端會(huì)收到一個(gè)中微子過(guò)濾層,客戶端比對(duì)所有錢(qián)包,看是否有任何交易與錢(qián)包用戶相關(guān)。一旦發(fā)現(xiàn)該區(qū)塊包含錢(qián)包用戶相關(guān)交易,客戶端會(huì)下載「剝離區(qū)塊」?!竸冸x區(qū)塊」只包含交易數(shù)據(jù),不包含簽名和「見(jiàn)證」數(shù)據(jù),可以讓客戶端減少一半以上硬件負(fù)擔(dān)。通過(guò)新數(shù)據(jù),客戶端得以更新錢(qián)包余額。
一般來(lái)說(shuō),閃電網(wǎng)絡(luò)錢(qián)包運(yùn)營(yíng)商希望提供的產(chǎn)品具有高用戶體驗(yàn)及低使用門(mén)檻的特點(diǎn),但提高易用性往往會(huì)降低安全性,比如個(gè)人資料遭竊取或用戶資產(chǎn)丟失。此外,大量數(shù)據(jù)承載使閃電網(wǎng)絡(luò)難以在移動(dòng)端實(shí)現(xiàn)。中微子協(xié)議讓用戶不必運(yùn)行全節(jié)點(diǎn),且可以在移動(dòng)設(shè)備上進(jìn)行操作,對(duì)用戶量擴(kuò)展有極大幫助。
閃電網(wǎng)絡(luò)落地概況和有待解決的問(wèn)題
閃電網(wǎng)絡(luò)落地概況
Bitcoin Visuals 提供的閃電網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)、通道數(shù)和 BTC 承載量等關(guān)鍵指標(biāo)顯示,閃電網(wǎng)絡(luò)自 2019 年 4 月達(dá)到增長(zhǎng)高峰后陷入停滯。
目前閃電網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)量為 5104 個(gè)。節(jié)點(diǎn)數(shù)量在 2019 上半年經(jīng)歷了持續(xù)增長(zhǎng),從 2019 年 1 月 4 月節(jié)點(diǎn)數(shù)量增加了 77%。但從 2019 年 5 月初截至 2020 年 2 月 10 日,閃電網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)卻只增加了 15%,增長(zhǎng)率大幅下滑。
閃電網(wǎng)絡(luò)通道數(shù)量從 2019 年 4 月初開(kāi)始下滑,截至 2020 年 2 月 10 日下滑了 20%,目前通道數(shù)量為 32,030 個(gè)。
BTC 承載量從 2019 年 1 月的 525.80 枚上升到了 2019 年 4 月初的 1,059.50 枚,增幅為 101.5%;但自 2019 年 4 月初截至 2020 年 2 月 10 日,BTC 承載量已下滑至 865.58 枚。
閃電網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)、通道數(shù)及 BTC 承載量從 2019 年 4 月開(kāi)始下滑主要有三個(gè)原因 :
· 比特幣幣價(jià)從三月開(kāi)始快速上漲,投資人變現(xiàn)意愿提高
從圖 9 可以看出,閃電網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)成長(zhǎng)最快的時(shí)間(2019 年 11 月至 2019 年 3 月間),正好是比特幣幣價(jià)徘徊在谷底的區(qū)間。這段時(shí)間許多投資者的比特幣在二級(jí)市場(chǎng)被套、無(wú)法變現(xiàn),閃電網(wǎng)絡(luò)通道成為投資者可以考慮的一個(gè)比特幣存放處。
但從 2019 年 3 月開(kāi)始,比特幣上漲,且閃電網(wǎng)絡(luò)尚未有足夠多的應(yīng)用場(chǎng)景及商戶,許多閃電網(wǎng)絡(luò)用戶選擇將比特幣在二級(jí)市場(chǎng)變現(xiàn)套利而非繼續(xù)存放在閃電網(wǎng)絡(luò)。從圖 10 也可以看出,從 2019 年 4 月起,比特幣交易量大幅上升,意味著比特幣在二級(jí)市場(chǎng)流通量增加,相對(duì)地,存放在閃電網(wǎng)絡(luò)通道的比例下降。
· 閃電網(wǎng)絡(luò)節(jié)點(diǎn)盈利無(wú)法覆蓋成本及風(fēng)險(xiǎn)
運(yùn)營(yíng)一個(gè)閃電網(wǎng)絡(luò)節(jié)點(diǎn)的成本 = 架設(shè)節(jié)點(diǎn)成本+運(yùn)營(yíng)成本+鎖定資金流動(dòng)性成本,而風(fēng)險(xiǎn)則為閃電網(wǎng)絡(luò)或節(jié)點(diǎn)遭受黑客攻擊的可能。目前閃電網(wǎng)絡(luò)共鎖定價(jià)值 800 多萬(wàn)美元的比特幣,損失大量流動(dòng)性且面臨著黑客攻擊的風(fēng)險(xiǎn),但節(jié)點(diǎn)運(yùn)營(yíng)商每月的盈利只有 1-20 美元不等。顯然,閃電網(wǎng)絡(luò)節(jié)點(diǎn)目前還缺乏可持續(xù)的商業(yè)模式。
· 閃電網(wǎng)絡(luò)為天然壟斷市場(chǎng),小型節(jié)點(diǎn)逐漸無(wú)法生存
由于閃電網(wǎng)絡(luò)開(kāi)關(guān)通道費(fèi)用的設(shè)計(jì),用戶多開(kāi)一個(gè)通道就多一筆開(kāi)關(guān)通道費(fèi),且各節(jié)點(diǎn)的服務(wù)高度同質(zhì)化,不同之處主要是連接其他節(jié)點(diǎn)數(shù)量多寡。因此,用戶傾向找一個(gè)較多連接其他節(jié)點(diǎn)的節(jié)點(diǎn),這樣不僅交易較容易成功,所需支付的通道費(fèi)也越低。從經(jīng)濟(jì)層面考慮,中心化超級(jí)節(jié)點(diǎn)是用戶較為理想的選擇。在用戶數(shù)量沒(méi)有大幅增加的狀況下,關(guān)閉小型或無(wú)用節(jié)點(diǎn),而擴(kuò)大大型節(jié)點(diǎn)的連結(jié)量,是節(jié)點(diǎn)運(yùn)營(yíng)商節(jié)省成本的一種方式。
閃電網(wǎng)絡(luò)有待解決的問(wèn)題
· 節(jié)點(diǎn)需保持在線
為使交易成功,閃電網(wǎng)絡(luò)節(jié)點(diǎn)需要時(shí)時(shí)在線,相比傳統(tǒng)支付系統(tǒng)并不方便。閃電網(wǎng)絡(luò)用戶并沒(méi)有冷存儲(chǔ)資金的選擇,用戶無(wú)法安全地存儲(chǔ)資金。雖然暸望臺(tái)能解決不在線欺詐的行為,但也讓整個(gè)生態(tài)趨向中心化。如果一個(gè)重要節(jié)點(diǎn)下線,容易讓整個(gè)網(wǎng)絡(luò)流動(dòng)性大幅下降,甚至造成用戶資金凍結(jié)數(shù)天的情況。
· 路由經(jīng)濟(jì)設(shè)計(jì)不佳
閃電網(wǎng)絡(luò)為高隱私性而實(shí)行洋蔥路由。在洋蔥路由下,每個(gè)節(jié)點(diǎn)只知道前后兩個(gè)節(jié)點(diǎn)的地址,沒(méi)法重新還原整條鏈或確定收款人的身份,中間方只在掌握須知信息的基礎(chǔ)上進(jìn)行傳輸。實(shí)際操作中的問(wèn)題在于,無(wú)法得知究竟哪個(gè)節(jié)點(diǎn)在線,哪個(gè)節(jié)點(diǎn)能連通到目的用戶。雖然尋找最短路徑不是難題,已經(jīng)有很多成熟可靠的算法,但是交易過(guò)程中,閃電網(wǎng)絡(luò)需要計(jì)算整條路徑的費(fèi)用。一旦中間有個(gè)節(jié)點(diǎn)發(fā)送失敗,發(fā)起交易的用戶除了要重新發(fā)送交易以外,還要從起始節(jié)點(diǎn)開(kāi)始重新計(jì)算費(fèi)率,造成時(shí)間浪費(fèi)及用戶體驗(yàn)下降。
為了提高交易成功率,每個(gè)節(jié)點(diǎn)都需要維護(hù)所有的節(jié)點(diǎn)和通道列表。隨著網(wǎng)絡(luò)規(guī)模增大,這個(gè)表也越來(lái)越大,需要同步和更新的消息也越來(lái)越多,這會(huì)占用大量帶寬。即使如此,發(fā)送前無(wú)法保證一定成功,發(fā)送過(guò)程中通道還有可能被關(guān)閉。可能解決方式是建造一個(gè)可信賴的路由網(wǎng)絡(luò),由規(guī)模化的商業(yè)節(jié)點(diǎn)負(fù)責(zé)擔(dān)任路由節(jié)點(diǎn),構(gòu)建一個(gè)成本低且高效的路由網(wǎng)。
責(zé)任編輯;zl
評(píng)論
查看更多