一站式多鏈DAPP底層設施

中級Feb 29, 2024
本文詳解ZetaChain 的全鏈解決方案進行技術視角的闡述,説明ZetaChain 如何作爲全鏈互操作DAPP的底層基礎設施,實現跨鏈消息解析與處理。
一站式多鏈DAPP底層設施

轉髮原文標題:技術解讀ZetaChain:一站式多鏈DAPP底層設施

·ZetaChain是一條基於Cosmos SDK的POS公鏈,其區塊中記録了“外部鏈”上髮起的跨鏈消息與數據。用戶可以在BTC等“外部鏈”上,通過類似Ordinals協議的原理,髮布特定格式的消息,曏ZetaChain網絡傳達自己的“意圖”;·ZetaChain的節點通過共識的方式,確定哪些消息要被處理,以及先後次序,最終通過TSS門限簽名技術,在目標鏈上生成數字簽名,從該鏈的公共賬戶中釋放資産,觸髮後續的交易步驟。


(目前ZetaChain的驗證者節點名單,有很多項目方或機構,包括OKX、HashKey Cloud、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 多年前所言:「多鏈是未來」。雖然多鏈併存已經成爲大勢所趨,但在異構鏈之間建立跨鏈橋,仍然是一個麻煩事。


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

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

現有跨鏈方案的問題

其實,單純論跨鏈橋要解決的問題,最簡單的場景是資産在不衕鏈上的轉移。你從 ETH 往 Polygon 上跨資産,要先往 ETH 鏈上指定的充值地址轉入資産,然後在 Polygon 鏈上接收等量資金。但問題在於,Polygon 的節點無法確認 ETH 鏈上髮生了什麽,不知道你是否真充值了 xx 金額。如果有人謊稱,自己往 ETH 鏈的指定地址轉了 100U,然後在 Polygon 鏈上髮起提款聲明,要求釋放他的 100U,這就會出現“憑空提款問題”。跨鏈橋的關鍵在於,解決此處的“憑空提款問題”,即確認所有的提款聲明都對應著真實的充值行爲,本質而言,是設法在 B 鏈上證明,A 鏈上的確髮生了 N 筆與跨鏈橋相關的交易。


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


衕時,現有的跨鏈橋方案大多選擇 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 功能。這樣達到的效果是:在不衕的區塊鏈之間進行消息傳遞,實現互操作。


基於全鏈互操作場景的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的全鏈應用可以省去不少麻煩事,至少不需要在不衕鏈上費盡心力的設計映射資産合約了,所有關於源鏈-目標鏈之間資産進入-進出的細節,都由ZetaChain“承包”。換句話説,就是你隻需要在ZetaChain上部署和跨鏈交易相關的業務邏輯就可以。這樣便於不衕的全鏈應用在前端支持Solana、Algorand、Bitcoin 和 DogeCoin 等非 EVM 鏈,不需要費盡心力的在不衕鏈上實現跨鏈應用專屬合約。此外,ZetaChain 本身也支持部署資産合約或AA賬戶,不衕鏈上的用戶可以髮送特定格式的消息來調用,就好像在操作一個全鏈統一的賬戶一般,這種設計思路在 Particle Network 的 Particle chain 上也有體現,最終達成的效果是:用戶可以盡量把資産的數據記録,集中在ZetaChain或Particle Chain一條鏈上,在必要時,通過“外部鏈”上的DAPP前端髮送調用消息,異步調用自己在ZetaChain上的資産合約,然後ZetaChain會通過外部鏈上公共賬戶,轉移一定的資産至用戶消息指定的地址,或是與用戶指定的Defi協議進行交互。


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

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

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


Validator 節點們在 ZetaChain 網絡中,作爲去中心化的公證人存在,他們會確認其他鏈上觸髮了哪些待處理的跨鏈請求,併通過共識,對這些跨鏈行爲做記録,進行後續步驟。通過TSS分布式密鑰簽名,ZetaChain可以在其他鏈上生成交易指令。可以説,Validator 做的事情,與公證人模式下的跨鏈橋有部分類似,但通過POS質押,公證人節點更去信任,以解決女巫問題。


(目前Zetachain的驗證者節點名單,有很多項目方或機構)Zetachian的Validator 客戶端中包含 ZetaCore 和 ZetaClient 兩個模塊。ZetaCore模塊參與ZetaChain區塊的産生和共識過程,ZetaClient 模塊則觀察外部鏈上的事件,併簽署出站交易。這裡的出站,可以簡單理解成,將 ZetaChain 上的交易日誌記録,髮送到“外部鏈”(就是指ZetaChain外的其他鏈),從而在目標鏈上觸髮對應行爲,髮送的內容主要包含用戶在消息中聲明要調用的合約地址、鏈ID、消息內容,其實就類似於 Ethereum 交易中的 Log 部分。


反之,入站則可以理解成,將ZetaChain外的外部鏈上相關消息/交易,如跨鏈請求、調用 zEVM 上的智能合約等內容,記録到 ZetaChain 上。這裡需要註意,實際運行 ZetaChain 的 Validator 節點時,客戶端代碼包含驗證者、觀察者、TSS 簽名者 三個模塊。這三個模塊負責的職能有所不衕,但衕屬於ZetaChain客戶端中。

觀察者和TSS簽名者模塊

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


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


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


主動模式的優點是,大多數ZetaChain節點都會衕步外部鏈上的數據,此時的抗審查性最強,任何用戶要和ZetaChain産生交互,隻要有節點監測到,你在外部鏈上髮起請求即可。但主動模式下,運行節點的成本較高,除了要運行ZetaChain自身的節點客戶端,還要運行外部鏈的全節點,時刻衕步數據併進行掃描。而被動模式下,普通觀察者節點的運行成本低得多,隻有特定節點去運行外部鏈的全節點客戶端,其他節點隻運行外部鏈的輕客戶端,不需要衕步外部鏈的完整區塊。這樣一來,被動模式下的費用更便宜,也更容易擴展節點數量,方便對接多條外部鏈。但被動模式的缺點是,外部鏈上的數據觀察活性,取決於少數節點,抗審查性差。爲了緩解這種情況,ZetaChain 會激勵節點運行主動模式的觀察者模塊。


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

TSS 簽名

所有被ZetaChain節點觀察到併驗證過的跨鏈消息,最終會在目標鏈上通過ZetaChain的公共賬戶地址,觸髮一筆交易行爲,進而執行後續的操作。而這個過程中,需要在目標鏈上爲該筆跨鏈交易生成數字簽名。爲了保證安全與去信任,簽名的生成由 ZetaChain 所有節點承擔,共衕存儲用於生成簽名的密鑰片段。這些密鑰片段分布在多個簽名者之間,隻有絶大多數簽名者都簽名了,才能在外部鏈上,生成交易的數字簽名。任何時候,單個實體或一小部分節點,都無法代錶 ZetaChain 在外部鏈上觸髮交易/簽署消息


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


這種場景其實格外適合搭載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的“全鏈互操作基礎設施”身份有了更多了解。其通過 Validator客戶端中的觀察者模塊,監測外部鏈的特定消息/交易,併彙報給驗證者模塊,最終在ZetaChain網絡中對消息進行共識。再對消息包含的數據進行解析,用TSS生成數字簽名,在對應的目標鏈上觸髮後續的交易流程,從而實現全鏈上的交互。與此衕時,基於ZetaChain的全鏈智能合約,使得我們可以與不衕區塊鏈進行貼近原生的交互,無需在不衕的鏈上使用映射資産合約,這可以避免調用冗餘的合約邏輯,節約了手續費成本。衕時,由於ZetaChain本身EVM兼容,可以讓任何DAPP開髮者甚至個人用戶,部署定製化的跨鏈消息處理邏輯,理論上可以一站式的部署全鏈DAPP合約,跨鏈應用開髮者不需要在不衕的鏈上頻繁部署/更新映射資産合約邏輯,免去了重覆造輪子的成本。

聲明:

  1. 本文轉載自[極客 Web3],原文標題《技術解讀ZetaChain:一站式多鏈DAPP底層設施》,著作權歸屬原作者[Howe & Faust,極客web3],如對轉載有異議,請聯繫Gate Learn團隊,團隊會根據相關流程盡速處理。
  2. 免責聲明:本文所錶達的觀點和意見僅代錶作者個人觀點,不構成任何投資建議。
  3. 文章其他語言版本由Gate Learn團隊翻譯, 在未提及Gate.io的情況下不得覆製、傳播或抄襲經翻譯文章。
Şimdi Başlayın
Kaydolun ve
100 USD
değerinde Kupon kazanın!
Üyelik oluştur