作者:Howe & Faust,極客web3
ZetaChain是一條基于Cosmos SDK的POS公鏈,其區(qū)塊中記錄了“外部鏈”上發(fā)起的跨鏈消息與數(shù)據(jù)。用戶可以在BTC等“外部鏈”上,通過類似Ordinals協(xié)議的原理,發(fā)布特定格式的消息,向ZetaChain網(wǎng)絡(luò)傳達自己的“意圖”;
ZetaChain的節(jié)點通過共識的方式,確定哪些消息要被處理,以及先后次序,最終通過TSS門限簽名技術(shù),在目標(biāo)鏈上生成數(shù)字簽名,從該鏈的公共賬戶中釋放資產(chǎn),觸發(fā)后續(xù)的交易步驟。

(目前ZetaChain的驗證者節(jié)點名單,有很多項目方或機構(gòu),包括OKX、HashKey?Cloud、Dora Factory等)
由于ZetaChain本身EVM兼容,支持部署合約邏輯。全鏈DAPP項目方可以直接在ZetaChain鏈上寫好跨鏈消息的處理程序,無需在多鏈上部署橋接資產(chǎn)合約,這樣可以節(jié)省開發(fā)成本;從用戶端來看,理論上只需要和ZetaChain上的合約交互,而不必與源鏈-目標(biāo)鏈之間的橋接合約多次交互,也可以節(jié)省手續(xù)費成本;
與一些具有“一站式資產(chǎn)托管鏈”效果的Intent項目類似,ZetaChain本身支持部署資產(chǎn)合約或Defi協(xié)議,用戶可以在不同鏈上的DAPP前端生成特定消息,對ZetaChain上的Defi合約或資產(chǎn)狀態(tài),進行異步調(diào)用(支持BTC鏈上賬戶);
這就好像讓ZetaChain直接托管了全鏈統(tǒng)一的資產(chǎn)賬戶,但要達成這種效果,需要專屬的DAPP前端來配合。
目前看來,ZetaChain最主要的功能,是充當(dāng)跨鏈、全鏈互操作的底層設(shè)施,既可以解析并處理特定的跨鏈消息,也可以作為多鏈DAPP的業(yè)務(wù)邏輯執(zhí)行平臺,主要的商業(yè)模式是典型的 B to B to C。
隨著區(qū)塊鏈行業(yè)的不斷發(fā)展,我們正處于一個多鏈互聯(lián)的時代。在這樣的時代背景下,不同特性的公鏈衍生出了差異化的應(yīng)用場景,為用戶創(chuàng)造了多樣化的體驗,但與此同時,“鏈間孤島”問題也顯得愈發(fā)嚴重。不同鏈上的賬戶往往無法互通,人們的全鏈資產(chǎn)處于一種割裂而不統(tǒng)一的狀態(tài),這增加了使用門檻,也極大程度降低了用戶體驗。
可以說,異構(gòu)鏈之間的割裂與不兼容問題,是阻礙用戶轉(zhuǎn)化率增長的主要原因之一。而當(dāng)今BTC生態(tài)的火爆,把異構(gòu)鏈的互操作問題進一步體現(xiàn)了出來。
正如 Vitalik Buterin 多年前所言:「多鏈是未來」。雖然多鏈并存已經(jīng)成為大勢所趨,但在異構(gòu)鏈之間建立跨鏈橋,仍然是一個麻煩事。

為了解決多鏈互操作問題,LayerZero、Polyhedra、Map Protocol、Bool Network 乃至于 Cosmos 和 Polkadot,都曾提出不同的鏈間消息傳遞方案,而近期上線 Token 的 ZetaChain 也是全鏈基礎(chǔ)設(shè)施版圖中的重要一員。
下文中,我們將簡要的對ZetaChain 的全鏈解決方案進行技術(shù)視角的闡述,說明ZetaChain 如何作為全鏈互操作DAPP的底層基礎(chǔ)設(shè)施,實現(xiàn)跨鏈消息解析與處理。

其實,單純論跨鏈橋要解決的問題,最簡單的場景是資產(chǎn)在不同鏈上的轉(zhuǎn)移。你從 ETH 往 Polygon 上跨資產(chǎn),要先往 ETH 鏈上指定的充值地址轉(zhuǎn)入資產(chǎn),然后在 Polygon 鏈上接收等量資金。
但問題在于,Polygon 的節(jié)點無法確認 ETH 鏈上發(fā)生了什么,不知道你是否真充值了 xx 金額。如果有人謊稱,自己往 ETH 鏈的指定地址轉(zhuǎn)了 100U,然后在 Polygon 鏈上發(fā)起提款聲明,要求釋放他的 100U,這就會出現(xiàn)“憑空提款問題”。
跨鏈橋的關(guān)鍵在于,解決此處的“憑空提款問題”,即確認所有的提款聲明都對應(yīng)著真實的充值行為,本質(zhì)而言,是設(shè)法在 B 鏈上證明,A 鏈上的確發(fā)生了 N 筆與跨鏈橋相關(guān)的交易。

目前主流的跨鏈橋都傾向于采用公證人機制,就是設(shè)置一批公證人節(jié)點,通過多簽或者 MPC 簽名來“共識”,只要多數(shù)公證人認為你的跨鏈行為可以被批準,你的資產(chǎn)就可以順利跨走。
也有一些跨鏈橋采取更安全的哈希鎖,或是用鏈上合約實現(xiàn)其他鏈的輕節(jié)點,通過接收 merkle proof 或 zk proof,來確認跨鏈行為有效性,但這種跨鏈橋的成本往往比較高,最終會轉(zhuǎn)嫁到用戶手續(xù)費上。所以,多數(shù)跨鏈橋還是選擇了鏈下公證人節(jié)點走多簽的模式。
參考資料:白話科普:設(shè)計跨鏈橋時都要考慮哪些事?。
基于公證人的跨鏈橋往往面臨著巨大風(fēng)險:易遭黑客攻擊,或監(jiān)守自盜,據(jù) SlowMist Hacked 統(tǒng)計,2022 年跨鏈橋安全事件共 16 起,損失達 12.1 億美元,占當(dāng)年鏈上攻擊事件損失總額的 32%,由此可見跨鏈橋安全漏洞的危害。

同時,現(xiàn)有的跨鏈橋方案大多選擇 Lock-Mint 模式,即在 A 鏈上鎖定資產(chǎn),在 B 鏈上增發(fā)相應(yīng)的映射資產(chǎn),從而實現(xiàn)資產(chǎn)跨鏈。但這類方案的充提款處理流程中,需要與映射資產(chǎn)合約進行多次交互,手續(xù)費摩擦較大,存在資金損耗問題。
此外,不少跨鏈橋方案只支持 EVM 兼容鏈間的資產(chǎn)轉(zhuǎn)移,在異構(gòu)鏈如Solana、Bitcoin 的跨鏈行為往往受制于彼此的技術(shù)標(biāo)準不同,開發(fā)難度較大。
綜合安全與手續(xù)費問題,目前主流的跨鏈橋方案往往無法取得太好的效果,更無法保證資產(chǎn)的“原生跨鏈”。而在如今的比特幣生態(tài)中,越來越多的人渴望實現(xiàn)原生、無縫的跨鏈交互體驗,期待找到一種更優(yōu)的方案。ZetaChain 對此提出了自己的一套解決方案。
ZetaChain的功能:全鏈互操作DAPP的底層基礎(chǔ)設(shè)施
ZetaChain的自我定位是全鏈互操作型DAPP的基礎(chǔ)設(shè)施,專門支持各種全鏈交互類的應(yīng)用協(xié)議,是一種典型的B To B To C底層基礎(chǔ)設(shè)施。它通過 PoS 準入機制,允許任何質(zhì)押資產(chǎn)的節(jié)點進入網(wǎng)絡(luò)之中,充當(dāng)公證人。全體 PoS 節(jié)點通過 TSS 門限簽名技術(shù),參與到跨鏈消息的驗證與處理中,盡可能提升安全性。
同時,ZetaChain上可以部署智能合約,添加與資產(chǎn)互換相關(guān)的業(yè)務(wù)邏輯,用戶可以在任何一條鏈上發(fā)送特定格式的消息,調(diào)用 ZetaChain 或其支持的多鏈上的Defi合約,在BTC鏈上就可以間接調(diào)用 Polygon 上的 DeFi 功能。這樣達到的效果是:在不同的區(qū)塊鏈之間進行消息傳遞,實現(xiàn)互操作。

基于全鏈互操作場景的DAPP可以在ZetaChain上部署資產(chǎn)互換的業(yè)務(wù)邏輯,幫用戶自動兌換不同鏈上的gas代幣。
比如,你可以通過某些全鏈DAPP的前端,在BTC上通過類似Ordinals協(xié)議的數(shù)據(jù)發(fā)布方式,發(fā)出一條特定格式的消息,指明要調(diào)用Solana上的XX合約,這條消息會被ZetaChain節(jié)點監(jiān)測到。
之后,ZetaChain上的AMM合約可以自動計算BTC和SOL的兌換比例,然后在Solana鏈上釋放等量的SOL,完成后續(xù)的調(diào)用合約等復(fù)雜操作,最后再把你應(yīng)得的資產(chǎn),轉(zhuǎn)回到你的BTC地址或Solana地址,這便是所謂的“全鏈互操作”,你只需要在一條鏈上發(fā)布消息,就可以遠程調(diào)用多條鏈上的DAPP,當(dāng)然這中間涉及到好幾條異步消息的發(fā)布與觸發(fā)過程。
在此,我們可以將 ZetaChain 理解為一個“鏈中鏈結(jié)算層”,所有的多鏈交互場景,比如A鏈上發(fā)起調(diào)用B鏈的某DAPP,相當(dāng)于A鏈先和 ZetaChain 進行“結(jié)算”,然后 ZetaChain將預(yù)處理的結(jié)算結(jié)果,同步到B鏈的相應(yīng)賬戶,再完成后續(xù)的步驟。
整個過程中不存在與映射資產(chǎn)合約的過度交互及手續(xù)費摩擦,資產(chǎn)流通經(jīng)由ZetaChain在不同鏈上的公共賬戶來完成,這樣就不需要像傳統(tǒng)跨鏈應(yīng)用那樣,頻繁的在不同鏈上部署映射資產(chǎn)合約。

目前看來,基于ZetaChain的全鏈應(yīng)用可以省去不少麻煩事,至少不需要在不同鏈上費盡心力的設(shè)計映射資產(chǎn)合約了,所有關(guān)于源鏈-目標(biāo)鏈之間資產(chǎn)進入-進出的細節(jié),都由ZetaChain“承包”。換句話說,就是你只需要在ZetaChain上部署和跨鏈交易相關(guān)的業(yè)務(wù)邏輯就可以。
這樣便于不同的全鏈應(yīng)用在前端支持Solana、Algorand、Bitcoin 和 DogeCoin 等非 EVM 鏈,不需要費盡心力的在不同鏈上實現(xiàn)跨鏈應(yīng)用專屬合約。
此外,ZetaChain 本身也支持部署資產(chǎn)合約或AA賬戶,不同鏈上的用戶可以發(fā)送特定格式的消息來調(diào)用,就好像在操作一個全鏈統(tǒng)一的賬戶一般,這種設(shè)計思路在 Particle Network 的 Particle chain 上也有體現(xiàn),最終達成的效果是:
用戶可以盡量把資產(chǎn)的數(shù)據(jù)記錄,集中在ZetaChain或Particle Chain一條鏈上,在必要時,通過“外部鏈”上的DAPP前端發(fā)送調(diào)用消息,異步調(diào)用自己在ZetaChain上的資產(chǎn)合約,然后ZetaChain會通過外部鏈上公共賬戶,轉(zhuǎn)移一定的資產(chǎn)至用戶消息指定的地址,或是與用戶指定的Defi協(xié)議進行交互。

當(dāng)然,這一系列操作需要專門的前端DAPP來實現(xiàn),也就是說,ZetaChain本身只提供全鏈底層設(shè)施的服務(wù),而在應(yīng)用端需要有專門的前端入口來生成特殊格式的消息。
ZetaChain的安全模型:基于POS質(zhì)押的大號公證人節(jié)點網(wǎng)絡(luò)
歸根結(jié)底,ZetaChain本質(zhì)上是一個專為跨鏈消息處理,而設(shè)置的公證人節(jié)點網(wǎng)絡(luò),它建立在 Cosmos SDK 基礎(chǔ)上,由很多臺 Validator 驗證節(jié)點組成,并以POS作為準入機制,以此實現(xiàn)節(jié)點反女巫和底層安全。

Validator 節(jié)點們在 ZetaChain 網(wǎng)絡(luò)中,作為去中心化的公證人存在,他們會確認其他鏈上觸發(fā)了哪些待處理的跨鏈請求,并通過共識,對這些跨鏈行為做記錄,進行后續(xù)步驟。通過TSS分布式密鑰簽名,ZetaChain可以在其他鏈上生成交易指令。
可以說,Validator 做的事情,與公證人模式下的跨鏈橋有部分類似,但通過POS質(zhì)押,公證人節(jié)點更去信任,以解決女巫問題。

(目前Zetachain的驗證者節(jié)點名單,有很多項目方或機構(gòu))
Zetachian的Validator 客戶端中包含 ZetaCore 和 ZetaClient 兩個模塊。ZetaCore模塊參與ZetaChain區(qū)塊的產(chǎn)生和共識過程,ZetaClient 模塊則觀察外部鏈上的事件,并簽署出站交易。
這里的出站,可以簡單理解成,將 ZetaChain 上的交易日志記錄,發(fā)送到“外部鏈”(就是指ZetaChain外的其他鏈),從而在目標(biāo)鏈上觸發(fā)對應(yīng)行為,發(fā)送的內(nèi)容主要包含用戶在消息中聲明要調(diào)用的合約地址、鏈ID、消息內(nèi)容,其實就類似于 Ethereum 交易中的 Log 部分。

反之,入站則可以理解成,將ZetaChain外的外部鏈上相關(guān)消息/交易,如跨鏈請求、調(diào)用 zEVM 上的智能合約等內(nèi)容,記錄到 ZetaChain 上。
這里需要注意,實際運行 ZetaChain 的 Validator 節(jié)點時,客戶端代碼包含驗證者、觀察者、TSS 簽名者 三個模塊。這三個模塊負責(zé)的職能有所不同,但同屬于ZetaChain客戶端中。

觀察者和TSS簽名者模塊
首先,所有的 ZetaChain 節(jié)點都具備“驗證者”的模塊,與 PoS 公鏈中 Validator 節(jié)點的職能基本一致,要參與出塊和共識流程。此外,節(jié)點可以按質(zhì)押的代幣(ZETA)比例,投票參與鏈上提案。ZetaChain 的區(qū)塊中,則包含了處理的所有跨鏈記錄、全鏈智能合約交互等行為,相當(dāng)于日志記錄。

而ZetaChain客戶端中的“觀察者”模塊,會通過運行其他公鏈的全節(jié)點/輕節(jié)點,監(jiān)測特定格式的跨鏈交易/消息。觀察者模塊可以分為兩種模式:主動模式和被動模式。
不同的ZetaChain節(jié)點可以做出選擇,將觀察者模塊切換到兩種模式中的一個。觀察者模塊會持續(xù)監(jiān)控,其他鏈上是否有ZetaChain相關(guān)的跨鏈消息/事件,如果有,ZetaChain節(jié)點的觀察者模塊會向驗證者模塊匯報情況。這些觀測到的跨鏈消息,會被提交到ZetaChain的區(qū)塊里,通過共識的方式進行全體確認。

觀察者模塊有兩種模式:主動模式和被動模式。主動模式下,節(jié)點會不斷掃描 ZetaChain 外的區(qū)塊鏈上的交易/事件/狀態(tài),運行其他鏈的fullnode;而被動模式下,節(jié)點不同步其他區(qū)塊鏈的完整block,被動的從其他ZetaChain節(jié)點處,接收解析后的跨鏈消息。
不過,被動模式下的節(jié)點,雖然不同步完整的外部鏈區(qū)塊,但是會同步區(qū)塊頭,并通過Merkle 證明確定外部鏈上真的存在這些跨鏈消息/交易數(shù)據(jù)。

主動模式的優(yōu)點是,大多數(shù)ZetaChain節(jié)點都會同步外部鏈上的數(shù)據(jù),此時的抗審查性最強,任何用戶要和ZetaChain產(chǎn)生交互,只要有節(jié)點監(jiān)測到,你在外部鏈上發(fā)起請求即可。
但主動模式下,運行節(jié)點的成本較高,除了要運行ZetaChain自身的節(jié)點客戶端,還要運行外部鏈的全節(jié)點,時刻同步數(shù)據(jù)并進行掃描。而被動模式下,普通觀察者節(jié)點的運行成本低得多,只有特定節(jié)點去運行外部鏈的全節(jié)點客戶端,其他節(jié)點只運行外部鏈的輕客戶端,不需要同步外部鏈的完整區(qū)塊。
這樣一來,被動模式下的費用更便宜,也更容易擴展節(jié)點數(shù)量,方便對接多條外部鏈。但被動模式的缺點是,外部鏈上的數(shù)據(jù)觀察活性,取決于少數(shù)節(jié)點,抗審查性差。
為了緩解這種情況,ZetaChain 會激勵節(jié)點運行主動模式的觀察者模塊。

(主動模式下,節(jié)點還需要運行外部鏈的全節(jié)點客戶端;被動模式下,只運行外部鏈的輕客戶端,從主動模式的ZetaChain節(jié)點那里,接收 跨鏈消息+merkle proof,確認消息的有效性)
TSS 簽名
所有被ZetaChain節(jié)點觀察到并驗證過的跨鏈消息,最終會在目標(biāo)鏈上通過ZetaChain的公共賬戶地址,觸發(fā)一筆交易行為,進而執(zhí)行后續(xù)的操作。而這個過程中,需要在目標(biāo)鏈上為該筆跨鏈交易生成數(shù)字簽名。
為了保證安全與去信任,簽名的生成由 ZetaChain 所有節(jié)點承擔(dān),共同存儲用于生成簽名的密鑰片段。這些密鑰片段分布在多個簽名者之間,只有絕大多數(shù)簽名者都簽名了,才能在外部鏈上,生成交易的數(shù)字簽名。任何時候,單個實體或一小部分節(jié)點,都無法代表 ZetaChain 在外部鏈上觸發(fā)交易/簽署消息

(ZetaChain的跨鏈模型下,只需要在不同的鏈上擁有一個公共賬戶地址,而不必部署復(fù)雜的智能合約)
ZetaChain的多簽算法,采用TSS,全稱為 Threshold Signature Scheme 門限簽名方案。對于外界來說,我們能看到的交易數(shù)字簽名,雖然只對應(yīng)著一個私鑰、公鑰和地址,但實際上,這個私鑰是由很多道片段,在沒有中間人的情況下生成的,這些片段分布在所有ZetaChain節(jié)點設(shè)備本地。任何時候,單個實體或少數(shù)驗證者都無法代表網(wǎng)絡(luò)整體去拼湊私鑰片段并簽署消息。
TSS的密鑰生成和簽名過程,通過多方計算(MPC)的方式完成,不會泄露任何參與節(jié)點的秘密。ZetaChain的節(jié)點可以生成不同鏈上的交易簽名,在兼容各 EVM 鏈的基礎(chǔ)上,為比特幣/非智能合約鏈的賬戶,添加了遠程調(diào)用智能合約的功能,直觀體驗就好比BTC用戶可以直接調(diào)用某些defi功能。

這種場景其實格外適合搭載BTC生態(tài)的多鏈Defi應(yīng)用,因為BTC鏈上無法實現(xiàn)太復(fù)雜的業(yè)務(wù)邏輯,只能依賴于外部設(shè)施遠程調(diào)用某些Defi合約。而ZetaChain的這些特性,正適合BTC生態(tài)內(nèi)的用戶通過異步調(diào)用的方式,
zEVM:一站式的全鏈DAPP合約平臺
不同于傳統(tǒng)跨鏈方案要在每條鏈上部署映射資產(chǎn)合約,ZetaChain 可以僅在自家鏈上部署一次智能合約,即實現(xiàn)多鏈的跨鏈功能。在 ZetaChain 中,有一個EVM兼容的執(zhí)行層,稱為 zEVM,而跨鏈智能合約可以直接部署在 zEVM 上。
zEVM支持以下功能:
任何人可以在外部鏈上發(fā)送特定格式的交易數(shù)據(jù),調(diào)用 zEVM 上的某個合約;
zEVM 上的合約邏輯,可以控制在外部鏈上生成的出站交易數(shù)據(jù)。
這兩個附加功能使得 zEVM 支持通用編程,可部署特定的業(yè)務(wù)邏輯,原子性地對不同鏈上的狀態(tài)進行修改。如果一筆跨鏈操作發(fā)生了,ZetaChain檢測到這筆跨鏈行為的后續(xù)步驟,在目標(biāo)鏈上沒有成功,則可以回滾掉該筆跨鏈交易在ZetaChain合約里修改的數(shù)據(jù),就好像什么都沒發(fā)生。
同時,全鏈應(yīng)用DAPP無需在不同的鏈上部署映射資產(chǎn)合約,只需要通過ZetaChain鏈上的合約,就可以一站式的將消息跨鏈的處理邏輯集中設(shè)置,無需頻繁的將跨鏈合約部署到多鏈網(wǎng)絡(luò)中。
這樣可以大幅度節(jié)省全鏈DAPP開發(fā)成本。在用戶層面,因為不需要頻繁的與多鏈上的映射資產(chǎn)合約產(chǎn)生交互,成本要比那些需要在不同鏈上部署映射資產(chǎn)合約的主流跨鏈橋更低。
此外,ZetaChain上也可以部署專門的Defi合約和ZRC-20乃至NFT資產(chǎn),對資產(chǎn)狀態(tài)進行數(shù)據(jù)同步,或是部署AA賬戶。這使其具備了統(tǒng)一的資產(chǎn)管理(狀態(tài)記錄)平臺功能。因為我們不再需要費盡心力的在多鏈上擁有資產(chǎn),這種全鏈統(tǒng)一資產(chǎn)賬戶的場景,可以在未來賦予更多的想象力。

總結(jié)
通過前面的內(nèi)容,我們或多或少對 ZetaChain的“全鏈互操作基礎(chǔ)設(shè)施”身份有了更多了解。其通過 Validator客戶端中的觀察者模塊,監(jiān)測外部鏈的特定消息/交易,并匯報給驗證者模塊,最終在ZetaChain網(wǎng)絡(luò)中對消息進行共識。再對消息包含的數(shù)據(jù)進行解析,用TSS生成數(shù)字簽名,在對應(yīng)的目標(biāo)鏈上觸發(fā)后續(xù)的交易流程,從而實現(xiàn)全鏈上的交互。
與此同時,基于ZetaChain的全鏈智能合約,使得我們可以與不同區(qū)塊鏈進行貼近原生的交互,無需在不同的鏈上使用映射資產(chǎn)合約,這可以避免調(diào)用冗余的合約邏輯,節(jié)約了手續(xù)費成本。
同時,由于ZetaChain本身EVM兼容,可以讓任何DAPP開發(fā)者甚至個人用戶,部署定制化的跨鏈消息處理邏輯,理論上可以一站式的部署全鏈DAPP合約,跨鏈應(yīng)用開發(fā)者不需要在不同的鏈上頻繁部署/更新映射資產(chǎn)合約邏輯,免去了重復(fù)造輪子的成本。