技術解讀 ZetaChain:一站式多鏈 DAPP 底層設施



ZetaChain 最主要的功能是充當跨鏈、全鏈互操作的底層設施。

撰文:Howe & Faust,極客 web3

  • ZetaChain 是一條基於 Cosmos SDK 的 POS 公鏈,其區塊中記錄了「外部鏈」上發起的跨鏈消息與數據。用戶可以在 BTC 等「外部鏈」上,通過類似 Ordinals 協定的原理,發佈特定格式的消息,向 ZetaChain 網路傳達自己的「意圖」;

  • ZetaChain 的節點通過共識的方式,確定哪些消息要被處理,以及先後次序,最終通過 TSS 門限簽名技術,在目標鏈上生成數位簽名,從該鏈的公共賬戶中釋放資產,觸發後續的交易步驟。

技術解讀 ZetaChain:一站式多鏈 DAPP 底層設施插图1

(目前 ZetaChain 的驗證者節點名單,有很多專案方或機構,包括 OKX、HashKeyCloud、Dora Factory 等)

  • 由於 ZetaChain 本身 EVM 相容,支持部署合約邏輯。全鏈 DAPP 專案方可以直接在 ZetaChain 鏈上寫好跨鏈消息的處理程式,無需在多鏈上部署橋接資產合約,這樣可以節省開發成本;

  • 從用戶端來看,理論上只需要和 ZetaChain 上的合約交互,而不必與源鏈 – 目標鏈之間的橋接合約多次交互,也可以節省手續費成本。

  • 與一些具有「一站式資產託管鏈」效果的 Intent 專案類似,ZetaChain 本身支持部署資產合約或 Defi 協定,用戶可以在不同鏈上的 DAPP 前端生成特定消息,對 ZetaChain 上的 Defi 合約或資產狀態,進行非同步調用(支持 BTC 鏈上賬戶);

  • 這就好像讓 ZetaChain 直接託管了全鏈統一的資產賬戶,但要達成這種效果,需要專屬的 DAPP 前端來配合。

  • 目前看來,ZetaChain 最主要的功能,是充當跨鏈、全鏈互操作的底層設施,既可以解析並處理特定的跨鏈消息,也可以作為多鏈 DAPP 的業務邏輯執行平臺,主要的商業模式是典型的 B to B to C。

正文:隨著區塊鏈行業的不斷發展,我們正處於一個多鏈互聯的時代。在這樣的時代背景下,不同特性的公鏈衍生出了差異化的應用場景,為用戶創造了多樣化的體驗,但與此同時,「鏈間孤島」問題也顯得愈發嚴重。不同鏈上的賬戶往往無法互通,人們的全鏈資產處於一種割裂而不統一的狀態,這增加了使用門檻,也極大程度降低了用戶體驗。

可以說,異構鏈之間的割裂與不相容問題,是阻礙用戶轉化率增長的主要原因之一。而當今 BTC 生態的火爆,把異構鏈的互操作問題進一步體現了出來。

正如 Vitalik Buterin 多年前所言:「多鏈是未來」。雖然多鏈並存已經成為大勢所趨,但在異構鏈之間建立跨鏈橋,仍然是一個麻煩事。

技術解讀 ZetaChain:一站式多鏈 DAPP 底層設施插图3

為了解決多鏈互操作問題,LayerZero、Polyhedra、Map Protocol、Bool Network 乃至於 Cosmos 和 Polkadot,都曾提出不同的鏈間消息傳遞方案,而近期上線 Token 的 ZetaChain 也是全鏈基礎設施版圖中的重要一員。

下文中,我們將簡要的對 ZetaChain 的全鏈解決方案進行技術視角的闡述,說明 ZetaChain 如何作為全鏈互操作 DAPP 的底層基礎設施,實現跨鏈消息解析與處理。

技術解讀 ZetaChain:一站式多鏈 DAPP 底層設施插图5

現有跨鏈方案的問題

其實,單純論跨鏈橋要解決的問題,最簡單的場景是資產在不同鏈上的轉移。你從 ETH 往 Polygon 上跨資產,要先往 ETH 鏈上指定的儲值地址轉入資產,然後在 Polygon 鏈上接收等量資金。

但問題在於,Polygon 的節點無法確認 ETH 鏈上發生了什麼,不知道你是否真儲值了 xx 金額。如果有人謊稱,自己往 ETH 鏈的指定地址轉了 100U,然後在 Polygon 鏈上發起提款聲明,要求釋放他的 100U,這就會出現「憑空提款問題」。

跨鏈橋的關鍵在於,解決此處的「憑空提款問題」,即確認所有的提款聲明都對應著真實的儲值行為,本質而言,是設法在 B 鏈上證明,A 鏈上的確發生了 N 筆與跨鏈橋相關的交易。

技術解讀 ZetaChain:一站式多鏈 DAPP 底層設施插图7

目前主流的跨鏈橋都傾向於採用公證人機制,就是設置一批公證人節點,通過多簽或者 MPC 簽名來「共識」,只要多數公證人認為你的跨鏈行為可以被批准,你的資產就可以順利跨走。

也有一些跨鏈橋採取更安全的哈希鎖,或是用鏈上合約實現其他鏈的輕節點,通過接收 merkle proof 或 zk proof,來確認跨鏈行為有效性,但這種跨鏈橋的成本往往比較高,最終會轉嫁到用戶手續費上。所以,多數跨鏈橋還是選擇了鏈下公證人節點走多簽的模式。

基於公證人的跨鏈橋往往面臨著巨大風險:易遭黑客攻擊,或監守自盜,據 SlowMist Hacked 統計,2022 年跨鏈橋安全事件共 16 起,損失達 12.1 億美元,佔當年鏈上攻擊事件損失總額的 32%,由此可見跨鏈橋安全漏洞的危害。

技術解讀 ZetaChain:一站式多鏈 DAPP 底層設施插图9

同時,現有的跨鏈橋方案大多選擇 Lock-Mint 模式,即在 A 鏈上鎖定資產,在 B 鏈上增發相應的映射資產,從而實現資產跨鏈。但這類方案的充提款處理流程中,需要與映射資產合約進行多次交互,手續費莫耳擦較大,存在資金損耗問題。

此外,不少跨鏈橋方案只支持 EVM 相容鏈間的資產轉移,在異構鏈如 Solana、Bitcoin 的跨鏈行為往往受制於彼此的技術標準不同,開發難度較大。

綜合安全與手續費問題,目前主流的跨鏈橋方案往往無法取得太好的效果,更無法保證資產的「原生跨鏈」。而在如今的位元幣生態中,越來越多的人渴望實現原生、無縫的跨鏈交互體驗,期待找到一種更優的方案。ZetaChain 對此提出了自己的一套解決方案。

ZetaChain 的功能:全鏈互操作 DAPP 的底層基礎設施

ZetaChain 的自我定位是全鏈互操作型 DAPP 的基礎設施,專門支持各種全鏈交互類的應用協定,是一種典型的 B To B To C 底層基礎設施。它通過 PoS 準入機制,允許任何質押資產的節點進入網路之中,充當公證人。全體 PoS 節點通過 TSS 門限簽名技術,參與到跨鏈消息的驗證與處理中,盡可能提升安全性。

同時,ZetaChain 上可以部署智慧合約,添加與資產互換相關的業務邏輯,用戶可以在任何一條鏈上發送特定格式的消息,調用 ZetaChain 或其支持的多鏈上的 Defi 合約,在 BTC 鏈上就可以間接調用 Polygon 上的 DeFi 功能。這樣達到的效果是:在不同的區塊鏈之間進行消息傳遞,實現互操作。

技術解讀 ZetaChain:一站式多鏈 DAPP 底層設施插图11

基於全鏈互操作場景的 DAPP 可以在 ZetaChain 上部署資產互換的業務邏輯,幫用戶自動兌換不同鏈上的 gas 代幣。

比如,你可以通過某些全鏈 DAPP 的前端,在 BTC 上通過類似 Ordinals 協定的數據發佈方式,發出一條特定格式的消息,指明要調用 Solana 上的 XX 合約,這條消息會被 ZetaChain 節點監測到。

之後,ZetaChain 上的 AMM 合約可以自動計算 BTC 和 SOL 的兌換比例,然後在 Solana 鏈上釋放等量的 SOL,完成後續的調用合約等複雜操作,最後再把你應得的資產,轉回到你的 BTC 地址或 Solana 地址,這便是所謂的「全鏈互操作」,你只需要在一條鏈上發佈消息,就可以遠端調用多條鏈上的 DAPP,當然這中間涉及到好幾條非同步消息的發佈與觸發過程。

在此,我們可以將 ZetaChain 理解為一個「鏈中鏈結算層」,所有的多鏈交互場景,比如A 鏈上發起調用 B 鏈的某 DAPP,相當於 A 鏈先和 ZetaChain 進行「結算」,然後 ZetaChain 將預處理的結算結果,同步到 B 鏈的相應賬戶,再完成後續的步驟。

整個過程中不存在與映射資產合約的過度交互及手續費莫耳擦,資產流通經由 ZetaChain 在不同鏈上的公共賬戶來完成,這樣就不需要像傳統跨鏈應用那樣,頻繁的在不同鏈上部署映射資產合約。

技術解讀 ZetaChain:一站式多鏈 DAPP 底層設施插图13

目前看來,基於 ZetaChain 的全鏈應用可以省去不少麻煩事,至少不需要在不同鏈上費盡心力的設計映射資產合約了,所有關於源鏈 – 目標鏈之間資產進入 – 進出的細節,都由 ZetaChain「承包」。換句話說,就是你只需要在 ZetaChain 上部署和跨鏈交易相關的業務邏輯就可以。

這樣便於不同的全鏈應用在前端支持 Solana、Algorand、Bitcoin 和 DogeCoin 等非 EVM 鏈,不需要費盡心力的在不同鏈上實現跨鏈應用專屬合約

此外,ZetaChain 本身也支持部署資產合約或 AA 賬戶,不同鏈上的用戶可以發送特定格式的消息來調用,就好像在操作一個全鏈統一的賬戶一般,這種設計思路在 Particle Network 的 Particle chain 上也有體現,最終達成的效果是:

用戶可以儘量把資產的數據記錄,集中在 ZetaChain 或 Particle Chain 一條鏈上,在必要時,通過「外部鏈」上的 DAPP 前端發送調用消息,非同步調用自己在 ZetaChain 上的資產合約,然後 ZetaChain 會通過外部鏈上公共賬戶,轉移一定的資產至用戶消息指定的地址,或是與用戶指定的 Defi 協定進行交互。

技術解讀 ZetaChain:一站式多鏈 DAPP 底層設施插图15

當然,這一系列操作需要專門的前端 DAPP 來實現,也就是說,ZetaChain 本身只提供全鏈底層設施的服務,而在應用端需要有專門的前端入口來生成特殊格式的消息。

ZetaChain 的安全模型:基於 POS 質押的大號公證人節點網路

歸根結底,ZetaChain 本質上是一個專為跨鏈消息處理,而設置的公證人節點網路,它建立在 Cosmos SDK 基礎上,由很多臺 Validator 驗證節點組成,並以 POS 作為準入機制,以此實現節點反女巫和底層安全。

技術解讀 ZetaChain:一站式多鏈 DAPP 底層設施插图17

Validator 節點們在 ZetaChain 網路中,作為去中心化的公證人存在,他們會確認其他鏈上觸發了哪些待處理的跨鏈請求,並通過共識,對這些跨鏈行為做記錄,進行後續步驟。通過 TSS 分佈式密鑰簽名,ZetaChain 可以在其他鏈上生成交易指令。

可以說,Validator 做的事情,與公證人模式下的跨鏈橋有部分類似,但通過 POS 質押,公證人節點更去信任,以解決女巫問題。

技術解讀 ZetaChain:一站式多鏈 DAPP 底層設施插图19

(目前 Zetachain 的驗證者節點名單,有很多專案方或機構)

Zetachian 的 Validator 客戶端中包含 ZetaCore 和 ZetaClient 兩個模塊。ZetaCore 模塊參與 ZetaChain 區塊的產生和共識過程,ZetaClient 模塊則觀察外部鏈上的事件,並簽署出站交易。

這裡的出站,可以簡單理解成,將 ZetaChain 上的交易日誌記錄,發送到「外部鏈」(就是指 ZetaChain 外的其他鏈),從而在目標鏈上觸發對應行為,發送的內容主要包含用戶在消息中聲明要調用的合約地址、鏈 ID、消息內容,其實就類似於 Ethereum 交易中的 Log 部分。

技術解讀 ZetaChain:一站式多鏈 DAPP 底層設施插图21

反之,入站則可以理解成,將 ZetaChain 外的外部鏈上相關消息 / 交易,如跨鏈請求、調用 zEVM 上的智慧合約等內容,記錄到 ZetaChain 上。

這裡需要注意,實際運行 ZetaChain 的 Validator 節點時,客戶端代碼包含驗證者、觀察者、TSS 簽名者 三個模塊。這三個模塊負責的職能有所不同,但同屬於 ZetaChain 客戶端中。

技術解讀 ZetaChain:一站式多鏈 DAPP 底層設施插图23

觀察者和 TSS 簽名者模塊

首先,所有的 ZetaChain 節點都具備「驗證者」的模塊,與 PoS 公鏈中 Validator 節點的職能基本一致,要參與出塊和共識流程。此外,節點可以按質押的代幣(ZETA)比例,投票參與鏈上提案。ZetaChain 的區塊中,則包含了處理的所有跨鏈記錄、全鏈智慧合約交互等行為,相當於日誌記錄。

技術解讀 ZetaChain:一站式多鏈 DAPP 底層設施插图25

而 ZetaChain 客戶端中的「觀察者」模塊,會通過運行其他公鏈的全節點 / 輕節點,監測特定格式的跨鏈交易 / 消息。觀察者模塊可以分為兩種模式:主動模式和被動模式。

不同的 ZetaChain 節點可以做出選擇,將觀察者模塊切換到兩種模式中的一個。觀察者模塊會持續監控,其他鏈上是否有 ZetaChain 相關的跨鏈消息 / 事件,如果有,ZetaChain 節點的觀察者模塊會向驗證者模塊匯報情況。這些觀測到的跨鏈消息,會被提交到 ZetaChain 的區塊裡,通過共識的方式進行全體確認。

技術解讀 ZetaChain:一站式多鏈 DAPP 底層設施插图27

觀察者模塊有兩種模式:主動模式和被動模式。主動模式下,節點會不斷掃描 ZetaChain 外的區塊鏈上的交易 / 事件 / 狀態,運行其他鏈的 fullnode;而被動模式下,節點不同步其他區塊鏈的完整 block,被動的從其他 ZetaChain 節點處,接收解析後的跨鏈消息。

不過,被動模式下的節點,雖然不同步完整的外部鏈區塊,但是會同步區塊頭,並通過 Merkle 證明確定外部鏈上真的存在這些跨鏈消息 / 交易數據。

技術解讀 ZetaChain:一站式多鏈 DAPP 底層設施插图29

主動模式的優點是,大多數 ZetaChain 節點都會同步外部鏈上的數據,此時的抗審查性最強,任何用戶要和 ZetaChain 產生交互,只要有節點監測到,你在外部鏈上發起請求即可。

但主動模式下,運行節點的成本較高,除了要運行 ZetaChain 自身的節點客戶端,還要運行外部鏈的全節點,時刻同步數據並進行掃描。而被動模式下,普通觀察者節點的運行成本低得多,只有特定節點去運行外部鏈的全節點客戶端,其他節點只運行外部鏈的輕客戶端,不需要同步外部鏈的完整區塊。

這樣一來,被動模式下的費用更便宜,也更容易擴展節點數量,方便對接多條外部鏈。但被動模式的缺點是,外部鏈上的數據觀察活性,取決於少數節點,抗審查性差。

為了緩解這種情況,ZetaChain 會激勵節點運行主動模式的觀察者模塊。

技術解讀 ZetaChain:一站式多鏈 DAPP 底層設施插图31

(主動模式下,節點還需要運行外部鏈的全節點客戶端;被動模式下,只運行外部鏈的輕客戶端,從主動模式的 ZetaChain 節點那裡,接收 跨鏈消息 +merkle proof,確認消息的有效性)

TSS 簽名

所有被 ZetaChain 節點觀察到並驗證過的跨鏈消息,最終會在目標鏈上通過 ZetaChain 的公共賬戶地址,觸發一筆交易行為,進而執行後續的操作。而這個過程中,需要在目標鏈上為該筆跨鏈交易生成數位簽名。

為了保證安全與去信任,簽名的生成由 ZetaChain 所有節點承擔,共同存儲用於生成簽名的密鑰片段。這些密鑰片段分佈在多個簽名者之間,只有絕大多數簽名者都簽名了,才能在外部鏈上,生成交易的數位簽名。任何時候,單個實體或一小部分節點,都無法代表 ZetaChain 在外部鏈上觸發交易 / 簽署消息。

技術解讀 ZetaChain:一站式多鏈 DAPP 底層設施插图33

(ZetaChain 的跨鏈模型下,只需要在不同的鏈上擁有一個公共賬戶地址,而不必部署複雜的智慧合約)

ZetaChain 的多簽算法,採用 TSS,全稱為 Threshold Signature Scheme 門限簽名方案。對於外界來說,我們能看到的交易數位簽名,雖然只對應著一個私鑰、公鑰和地址,但實際上,這個私鑰是由很多道片段,在沒有中間人的情況下生成的,這些片段分佈在所有 ZetaChain 節點設備本地。任何時候,單個實體或少數驗證者都無法代表網路整體去拼湊私鑰片段並簽署消息。

TSS 的密鑰生成和簽名過程,通過多方計算(MPC)的方式完成,不會洩露任何參與節點的祕密。ZetaChain 的節點可以生成不同鏈上的交易簽名,在相容各 EVM 鏈的基礎上,為位元幣 / 非智慧合約鏈的賬戶,添加了遠端調用智慧合約的功能,直觀體驗就好比 BTC 用戶可以直接調用某些 defi 功能。

技術解讀 ZetaChain:一站式多鏈 DAPP 底層設施插图35

這種場景其實格外適合搭載 BTC 生態的多鏈 Defi 應用,因為 BTC 鏈上無法實現太複雜的業務邏輯,只能依賴於外部設施遠端調用某些 Defi 合約。而 ZetaChain 的這些特性,正適合 BTC 生態內的用戶通過非同步調用的方式,

zEVM:一站式的全鏈 DAPP 合約平臺

不同於傳統跨鏈方案要在每條鏈上部署映射資產合約,ZetaChain 可以僅在自家鏈上部署一次智慧合約,即實現多鏈的跨鏈功能。在 ZetaChain 中,有一個 EVM 相容的執行層,稱為 zEVM,而跨鏈智慧合約可以直接部署在 zEVM 上。

zEVM 支持以下功能:

  • 任何人可以在外部鏈上發送特定格式的交易數據,調用 zEVM 上的某個合約;

  • zEVM 上的合約邏輯,可以控制在外部鏈上生成的出站交易數據。

這兩個附加功能使得 zEVM 支持通用編程,可部署特定的業務邏輯,原子性地對不同鏈上的狀態進行修改。如果一筆跨鏈操作發生了,ZetaChain 檢測到這筆跨鏈行為的後續步驟,在目標鏈上沒有成功,則可以回滾掉該筆跨鏈交易在 ZetaChain 合約裡修改的數據,就好像什麼都沒發生。

同時,全鏈應用 DAPP 無需在不同的鏈上部署映射資產合約,只需要通過 ZetaChain 鏈上的合約,就可以一站式的將消息跨鏈的處理邏輯集中設置,無需頻繁的將跨鏈合約部署到多鏈網路中。

這樣可以大幅度節省全鏈 DAPP 開發成本。在用戶層面,因為不需要頻繁的與多鏈上的映射資產合約產生交互,成本要比那些需要在不同鏈上部署映射資產合約的主流跨鏈橋更低。

此外,ZetaChain 上也可以部署專門的 Defi 合約和 ZRC-20 乃至 NFT 資產,對資產狀態進行數據同步,或是部署 AA 賬戶。這使其具備了統一的資產管理(狀態記錄)平臺功能。因為我們不再需要費盡心力的在多鏈上擁有資產,這種全鏈統一資產賬戶的場景,可以在未來賦予更多的想像力。

技術解讀 ZetaChain:一站式多鏈 DAPP 底層設施插图37

總結

通過前面的內容,我們或多或少對 ZetaChain 的「全鏈互操作基礎設施」身分有了更多瞭解。其通過 Validator 客戶端中的觀察者模塊,監測外部鏈的特定消息 / 交易,並匯報給驗證者模塊,最終在 ZetaChain 網路中對消息進行共識。再對消息包含的數據進行解析,用 TSS 生成數位簽名,在對應的目標鏈上觸發後續的交易流程,從而實現全鏈上的交互。

與此同時,基於 ZetaChain 的全鏈智慧合約,使得我們可以與不同區塊鏈進行貼近原生的交互,無需在不同的鏈上使用映射資產合約,這可以避免調用冗餘的合約邏輯,節約了手續費成本。

同時,由於 ZetaChain 本身 EVM 相容,可以讓任何 DAPP 開發者甚至個人用戶,部署定製化的跨鏈消息處理邏輯,理論上可以一站式的部署全鏈 DAPP 合約,跨鏈應用開發者不需要在不同的鏈上頻繁部署 / 更新映射資產合約邏輯,免去了重複造輪子的成本。

聯系郵箱:0xniumao@gmail.com