
是 Ruben Somsen 于 2018 年基于 eltoo(或稱 LN Symmetry)提案開(kāi)發(fā)的原始第二層協(xié)議。2021 年,CommerceBlock 構(gòu)建了原始提案的變體 Mercury。2024 年,構(gòu)建了原始 Mercury 方案的進(jìn)一步迭代,即 Mercury Layer。
與其他系統(tǒng)(例如 Lightning)相比,Statechain 協(xié)議的討論要復(fù)雜一些,因?yàn)樽畛跆岢龅脑O(shè)計(jì)、實(shí)際實(shí)施的兩個(gè)設(shè)計(jì)以及其他可能提出的設(shè)計(jì)之間可能存在一系列變化。
與 Ark 類似,狀態(tài)鏈也依賴于中心化協(xié)調(diào)服務(wù)器才能運(yùn)行。與 Ark 不同,它們的信任模型與 Ark 批次中的 vUTXO 略有不同。它們依賴協(xié)調(diào)服務(wù)器刪除先前生成的私鑰共享以保持去信任狀態(tài),但只要服務(wù)器遵循定義的協(xié)議并執(zhí)行,它們就能提供強(qiáng)大的安全保障。
狀態(tài)鏈的總體思路是能夠在協(xié)調(diào)器的幫助下,在鏈下將整個(gè) UTXO 的所有權(quán)在不同用戶之間轉(zhuǎn)移。它不需要像閃電網(wǎng)絡(luò)那樣接收流動(dòng)性,也不需要像方舟那樣由協(xié)調(diào)器服務(wù)器提供任何流動(dòng)性。
首先,我們來(lái)看一下 Ruben Somsen 提出的原始協(xié)議。
原始狀態(tài)鏈
狀態(tài)鏈實(shí)際上是一種預(yù)先簽名的交易,允許狀態(tài)鏈的當(dāng)前所有者隨時(shí)單方面在鏈上撤回,并且歷史簽名消息以加密方式證明過(guò)去的所有者和他們發(fā)送狀態(tài)鏈的接收者批準(zhǔn)了這些轉(zhuǎn)移。
最初的設(shè)計(jì)是基于 eltoo 構(gòu)建的,使用了 ,但目前關(guān)于如何實(shí)現(xiàn)相同功能的計(jì)劃是使用 和 (關(guān)于這一點(diǎn)的詳細(xì)解釋在 CHECKSIGFROMSTACK 文章的末尾)。其基本思想是編寫(xiě)一個(gè)腳本,允許預(yù)簽名交易使用任何包含該腳本并鎖定相應(yīng)數(shù)量比特幣的 UTXO,而不是綁定到單個(gè)特定的 UTXO。
在該協(xié)議中,希望將代幣存入狀態(tài)鏈的用戶需要聯(lián)系協(xié)調(diào)器服務(wù)器并執(zhí)行存款協(xié)議。存款用戶 Bob 會(huì)生成一個(gè)由他唯一擁有的密鑰,以及一個(gè)最終會(huì)被共享的“臨時(shí)”密鑰(稍后會(huì)詳細(xì)介紹)。然后,他們創(chuàng)建一筆存款交易,將代幣鎖定在一個(gè)需要協(xié)調(diào)器密鑰和臨時(shí)密鑰簽名的多重簽名上。
使用這個(gè)多重簽名,Bob 和協(xié)調(diào)者簽署一筆交易,該交易將花費(fèi)該幣,并創(chuàng)建一個(gè) UTXO。該 UTXO 可以被任何其他使用臨時(shí)密鑰和協(xié)調(diào)者密鑰(使用閃電網(wǎng)絡(luò)對(duì)稱性)簽名的交易使用,也可以在時(shí)間鎖之后被 Bob 的唯一密鑰使用。Bob 現(xiàn)在可以為多重簽名注入適當(dāng)?shù)慕痤~,狀態(tài)鏈就創(chuàng)建好了。
要將狀態(tài)鏈轉(zhuǎn)移給 Charlie,Bob 必須經(jīng)過(guò)多個(gè)步驟。首先,Bob 用他唯一的私鑰簽署一條消息,證明他將要將狀態(tài)鏈轉(zhuǎn)移給 Charlie。Charlie 還必須簽署一條消息,證明他已從 Bob 收到狀態(tài)鏈。最后,協(xié)調(diào)服務(wù)器必須簽署一項(xiàng)新交易,允許 Charlie 單方面在鏈上認(rèn)領(lǐng)狀態(tài)鏈,之后 Bob 才能向 Charlie 發(fā)送臨時(shí)密鑰的副本。
所有這些都通過(guò)適配器簽名實(shí)現(xiàn)了原子化。這些簽名可以通過(guò)一段隨機(jī)數(shù)據(jù)進(jìn)行修改,使其失效,但一旦簽名持有者收到該信息,即可恢復(fù)有效。所有消息以及新的預(yù)簽名交易均使用適配器簽名進(jìn)行簽名,并通過(guò)適配器數(shù)據(jù)的發(fā)布同時(shí)原子化地生效。
狀態(tài)鏈的持有者必須相信,協(xié)調(diào)器服務(wù)器絕不會(huì)與之前的所有者合謀簽署立即關(guān)閉狀態(tài)鏈的命令,竊取當(dāng)前所有者的資金。但如果協(xié)調(diào)器真的參與了盜竊,預(yù)簽名消息鏈可以證明其參與了盜竊。如果之前的所有者試圖使用其預(yù)簽名交易竊取資金,則支出路徑上的時(shí)間鎖僅使用其密鑰即可允許當(dāng)前所有者提交其預(yù)簽名交易,并在鏈上正確領(lǐng)取資金。
水星和水星層
原始的 Statechain 架構(gòu)需要軟分叉才能運(yùn)行。CommerceBlock 設(shè)計(jì)了其 Statechain 變體,使其無(wú)需軟分叉即可運(yùn)行,但為了實(shí)現(xiàn)這一點(diǎn),他們?cè)诠δ芊矫孀龀隽艘恍?quán)衡。
其基本思路與原始設(shè)計(jì)相同,所有用戶都持有一筆預(yù)簽名交易,允許他們單方面提取資金;協(xié)調(diào)器服務(wù)器仍然負(fù)責(zé)鏈下轉(zhuǎn)賬,這需要用戶信任其誠(chéng)實(shí)行事。兩者的主要區(qū)別在于交易的簽名方式,以及用戶預(yù)先簽名的交易結(jié)構(gòu)。
就簽名而言,不再存在用戶之間傳遞的臨時(shí)私鑰。取而代之的是多方計(jì)算協(xié)議 (MPC),這樣原始所有者和協(xié)調(diào)服務(wù)器就可以協(xié)作生成私鑰的部分片段,而無(wú)需任何一方擁有完整的密鑰。該密鑰用于對(duì)預(yù)簽名交易進(jìn)行簽名。MPC 協(xié)議允許當(dāng)前所有者和協(xié)調(diào)者與第三方(即轉(zhuǎn)賬接收者)進(jìn)行第二個(gè)協(xié)議,以重新生成不同的部分這些密鑰加起來(lái)等于同一個(gè)私鑰。在 Mercury 和 Mercury Layer 協(xié)議中,完成傳輸后,誠(chéng)實(shí)的協(xié)調(diào)器服務(wù)器會(huì)刪除與前任所有者對(duì)應(yīng)的密鑰材料。一旦完成此操作,協(xié)調(diào)器就無(wú)法再與前任所有者簽署交易,因?yàn)樗麄儞碛械男旅荑€材料與任何前任所有者可能仍持有的密鑰材料不兼容。實(shí)際上,只要協(xié)調(diào)器誠(chéng)實(shí),這比原始提案提供了更強(qiáng)有力的保障。
Mercury 和 Mercury Layer 的預(yù)簽名交易結(jié)構(gòu)無(wú)法使用閃電網(wǎng)絡(luò)對(duì)稱性,因?yàn)槿绻麤](méi)有軟分叉,這是不可能的。因此,CommerceBlock 選擇使用遞減時(shí)間鎖。原始所有者的預(yù)簽名交易使用 nLocktime 進(jìn)行時(shí)間鎖定,鎖定到距離 Statechain 創(chuàng)建時(shí)間點(diǎn)很遠(yuǎn)的未來(lái)某個(gè)時(shí)間。每個(gè)后續(xù)用戶在轉(zhuǎn)賬過(guò)程中接收 Statechain 時(shí),其交易的 nLocktime 值會(huì)比前一個(gè)所有者短一段預(yù)定的時(shí)間。這保證了前一個(gè)所有者無(wú)法在當(dāng)前所有者之前嘗試將其交易提交到鏈上,但這也意味著最終在某個(gè)時(shí)間點(diǎn),當(dāng)前所有者必須在先前所有者的交易開(kāi)始生效之前,關(guān)閉其鏈上狀態(tài)鏈。
Mercury 和 Mercury Layer 之間的主要區(qū)別在于這些交易的簽名方式。在 Mercury 中,協(xié)調(diào)器服務(wù)器僅查看提議的交易,進(jìn)行驗(yàn)證,然后進(jìn)行簽名。而 Mercury Layer 使用盲簽名協(xié)議,這意味著他們實(shí)際上看不到所簽名交易的任何細(xì)節(jié)。這需要服務(wù)器使用服務(wù)器上的匿名記錄和當(dāng)前所有者的特殊授權(quán)密鑰來(lái)跟蹤狀態(tài)鏈,以確保他們只簽署有效的轉(zhuǎn)賬。
與其他層的協(xié)同作用
狀態(tài)鏈可以與其他基于預(yù)簽名交易的 Layer 2 協(xié)同作用。例如,原始提案的一部分建議將狀態(tài)鏈與閃電通道相結(jié)合。由于兩者都是簡(jiǎn)單的預(yù)簽名交易,因此實(shí)際上可以在狀態(tài)鏈之上嵌套一個(gè)閃電通道。這只需要當(dāng)前所有者的單邊退出密鑰為多重簽名,并且創(chuàng)建預(yù)簽名交易并將其輸出到閃電通道中。這使得閃電通道可以完全在鏈下打開(kāi)和關(guān)閉。
類似地,可以在 Ark 批次中將狀態(tài)鏈嵌套在 vUTXO 之上。這只需要構(gòu)建狀態(tài)鏈所需的預(yù)簽名交易,并花費(fèi) vUTXO 輸出。
總結(jié)
狀態(tài)鏈并非完全無(wú)需信任,但它們是一種信任最小化的方案,具有極高的流動(dòng)性效率,并允許任何愿意接受狀態(tài)鏈信任模型的用戶之間自由地轉(zhuǎn)移鏈下 UTXO。
雖然最初的提案尚未實(shí)現(xiàn),但 CommerceBlock 設(shè)計(jì)的兩個(gè)實(shí)施方案已完全實(shí)現(xiàn)。然而,在現(xiàn)實(shí)世界中,它們都只取得了有限的使用效果。這究竟是因?yàn)橛脩舨辉附邮芟嚓P(guān)的信任模型,還是僅僅是市場(chǎng)營(yíng)銷或認(rèn)知方面的失敗,目前尚無(wú)法完全確定。
無(wú)論如何,考慮到如果閃電網(wǎng)絡(luò)對(duì)稱性在比特幣上成為可能,將有兩種更靈活的變體的完整實(shí)現(xiàn)和設(shè)計(jì),這是一個(gè)永遠(yuǎn)存在的選項(xiàng)。開(kāi)源軟件的優(yōu)點(diǎn)在于,無(wú)論人們現(xiàn)在是否使用它,或者將來(lái)是否選擇使用它,它都將永遠(yuǎn)存在。






.png)





















