XCM:跨鏈開發者的「低程式碼平台」

在波卡生態中,XCM 就像是一張"跨鏈通行證",讓你的資產和操作可以自由地在不同鏈間流轉。不僅如此,身為開發者,你甚至可以讓使用者在你的應用程式中直接使用其他鏈的功能,就像在同一個超級APP 裡切換不同的服務一樣流暢!
XCM:跨鏈開發者的「低程式碼平台」

想像一下,你是一位滿懷熱情的區塊鏈工程師,站在Web3 技術的最前線。你看到了無數的機會:

  • Acala 上有30% APY 的流動性挖礦

  • Moonbeam 上有優質的借貸機會

  • Astar上線了熱門NFT 項目

但要把這些機會連結起來,你需要面對:

  • 智能合約開發

  • 跨鏈技術的基本原理

  • 跨鏈交易的安全性

  • 建構實際的跨鏈應用場景

  • 代碼審計和安全性分析

為了更科學、更合理地寫程式碼,你還需要深入研究:

  • 一些頂尖的跨鏈項目

  • 基礎設施型DApp 的程式碼和合約位址

這一切似乎都讓人望而卻步!

然而,你不禁思考,是否存在一種工具,能夠讓你繞過複雜的跨鏈原理、安全性的顧慮,甚至免去代碼學習的艱辛,讓你能夠將大部分精力集中在跨鏈場景的構建和使用者體驗的優化上。幸運的是,波卡的跨鏈協定: XCMP ,可能就是你尋找的答案。

為什麼要關注XCM ?

讓我們先來看一個真實的場景:小明是一個DeFi 玩家,他發現Moonbeam 上有個很好的借貸機會,而Acala 上則有個高收益的流動性挖礦項目。但要同時參與這兩個項目,他需要:先把資產從Moonbeam 轉到中心化交易所,等待確認,從交易所提現到Acala 再等待確認,最後才能開始操作。
整個過程不僅耗時,還要支付高額手續費,更別說中間還要承擔中心化交易所的風險。
而有了XCM,這個過程可以簡化為: “在Moonbeam 上點擊"跨鏈轉移到Acala 並挖礦"”
等待十幾秒,tada!交易完成!
在波卡生態中,XCM 就像是一張"跨鏈通行證",讓你的資產和操作可以自由地在不同鏈間流轉。不僅如此,身為開發者,你甚至可以讓使用者在你的應用程式中直接使用其他鏈的功能,就像在同一個超級APP 裡切換不同的服務一樣流暢!

XMC 與傳統跨鏈橋的區別

簡單來說, XCM(Cross-Consensus Message)就是Polkadot 生態的"萬用積木"。它不是普通的跨鏈橋,而是一種全新的跨鏈通訊格式,就像樂高積木一樣可以自由組合,建構出各種有趣的應用。

安全性對比

傳統安全橋通常會有2個重要的技術組件: 1)源鏈交易正確性證明2)跨鏈訊息relay ,因此跨鏈橋的安全級別既取決於源鍊和目標鏈的鏈安全級別,也取決於跨鏈橋專案的安全等級。
而支撐Polkadot 的XCMP 的真正協議正是Polkadot 的根基:共識共享安全。也就是說在Polkadot 生態裡,所有平行鏈的安全等級和Polkadot 是一樣的,而跨鏈訊息的正確傳遞也由Polkadot 保證。從模型的角度來看,如果把parachain 都理解成「大合約」的話,那麼Polkadot 和parachain 所組成的並不是一個傳統意義上的跨鏈網絡,這就是一個超級區塊鏈,只不過「應用/合約」和「應用程式/合約」之間的溝通形式是「非同步」的而已。
這也是我們為什麼可以拋開XCM 的原理和安全性,只聚焦在業務建置的原因。
傳統跨鏈橋的安全性:
源鏈安全性+ 橋的安全性+ 目標鏈安全性= 最終安全性
Polkadot XCMP 的安全性:
Polkadot 中繼鏈安全性= 平行鏈安全性= XCM 安全性

功能對比

傳統跨鏈橋:就像坐輪渡過河,每次都要重新排隊、買票、等待
XCM:像是城市地鐵,刷一張卡片就能暢通無阻
XCM:跨鏈開發者的「低程式碼平台」

XCMP 不僅能夠傳輸資產,還能攜帶錯誤處理、指令、回呼和自訂訊息,使得跨鏈通訊更加強大和靈活。這種能力上的飛躍,讓XCMP 在跨鏈通訊領域獨樹一幟,為開發者提供了前所未有的便利和可能性。

XCMP 簡單介紹

XCM 的傳遞頻道就是XCMP ,是Polkadot 生態內重要的跨鏈訊息傳遞基礎設施,目前的頻道分成兩大類:
VMP (垂直訊息傳遞)
適用情境:平行鍊和中繼鏈之間的溝通
平行鏈<==(UMP/DMP)==> 中繼鏈
UMP: 向上訊息傳遞
DMP: 向下訊息傳遞
HRMP(橫向訊息傳遞)
適用場景:平行鏈之間的溝通,目前還需要通過中繼鏈。
ParaA ==> 中繼鏈==> ParaB
特點:
  • 訊息經過中繼鏈轉發
  • 成本較高但穩定可靠

XCM:跨鏈開發者的「低程式碼平台」

主角登場:什麼是XCM

透過這些頻道傳遞的訊息就是X​​CM (Cross-Chain Message)。 XCM,準確來說,它是一種訊息格式,是Polkadot 生態中用於實現跨鏈和跨共識通信的標準:允許不同區塊鏈之間交換“任意”數據,為開發者提供了一種編寫跨不同鏈、智慧合約平台和Substrate模組的通用語言。
簡言之,基於XCM 構造跨鏈訊息,可以在Polkadot relaychain 和parachain 之間以「任意」路徑路由「任意」訊息。

XCM:跨鏈開發者的「低程式碼平台」

深入之前,你還應該知道

到了這裡,我們離XCM 構造學習只差一步了,想像你正在建立一個跨鏈應用,如何準確定位鏈上的任何資源? MultiLocation就是為解決這個問題而設計的通用尋址系統。
為什麼需要MultiLocation
傳統區塊鏈的位址表示:
0x742d35Cc6634C0532925a3b844Bc454e4438f44e
如果要進一步最佳化,可以標識網路:
eth:0x742d35Cc6634C0532925a3b844Bc454e4438f44e
sep:0x2a01008eaf04151687736326c9fea17e25fc5287
但這樣做仍有缺點:
  • 只能在單鏈內使用
  • 無法表達跨鏈關係
  • 缺乏層級結構
而為了解決以上的問題,MultiLocation 選擇了一個相對路徑的描述方案:
XCM:跨鏈開發者的「低程式碼平台」
為了更形象化地理解這一點,假設我們現在有兩個帳戶,Acala 鏈上的Alice,和Bifrost 鏈上的Bob,他們的帳戶位置如下:
XCM:跨鏈開發者的「低程式碼平台」
如果我們從Polkadot 的視角來看,那麼Alice 和Bob 的相對路徑就是( child 即向下數):
Child -> Parachain(acala_chain_id)-> Account(alice)
Child -> Parachain(bifrost_chain_id)-> Account(bob)
如果從Acala 的角度來看的話,那麼Bob 的描述就是( Parent 即向上數):
Parent -> Parachain(bifrost_chain_id) -> Account(bob)
也就是說,對於來源鏈而言,知道了發送目的地的目標帳戶,即知道此條XCM 訊息的路徑;同樣地,目標鏈會從xcm sender 的表示中知道源鏈的信息,並用此完成一些目標鏈上的資產、帳戶隔離等安全操作。
由此,我們也可以總結得到MultiLocation 的關鍵設計原則:
相對性原則
  • 位置始終相對於當前鏈
  • 使用parents 向上導航
  • 使用interior 向下/平行導航
最短路徑原則
  • 優先選擇直接路徑
  • 避免不必要的中繼鏈跳轉
  • 減少定位層級
統一性原則
  • 統一的尋址格式
  • 支援各類鏈上資源
  • 方便跨鏈互通
更重要的是,MultiLocation 不僅涉及跨鏈系統中帳戶標識的設計,也是跨鏈資產的重要基石,它可以幫助目標鏈準確定位跨鏈資產的來源信息,從而保證在目標鏈的安全映射。
跨鏈系統特有的安全風險通常包括:帳戶混淆、資產詐欺和路由劫持,而MultiLocation 的設計想法是一個很好的解決方案。

XCM 初探

XCM 是一門「跨鏈語言」,而且相當簡單。我們可以把XCM 想像成一堆指令,而「執行XCM」就是一個虛擬機器在執行指令。所以我們在很多文章中常常可以看到XCVM 和XCM 成對出現。這裡的XCVM 並不是一個真正的虛擬機,而是一個虛擬概念,確切地說,它是xcm-executor。當一堆XCM訊息到達目標鏈時,他們被按照順序拿出並依次執行。
我們可以透過:
https://github.com/paritytech/polkadot-sdk/blob/master/polkadot/xcm/src/v5/mod.rs#L393
直接看到XCM 的具體指令,我們可以大致把XCM指令大致分成6類:資產操作類別、錯誤處理類別、流程控制類別、權限控制類別、通用作業類別、其他
資產操作類
XCM:跨鏈開發者的「低程式碼平台」
流程控制類
 SetAppendix(Xcm < Call > ),
錯誤處理類
XCM:跨鏈開發者的「低程式碼平台」
權限控制類
XCM:跨鏈開發者的「低程式碼平台」
通用操作類
Transact,
其他類別包括一些查詢狀態、自訂路由、gasfee 處理相關的指令。
我們可以從XCM 的指令分類看出,XCVM( XCM 執行器)幾乎就是一個資產特化版的「簡單虛擬機器」。有了XCM ,就可以把開發者從「跨鏈系統原理」、「業務研究」、「手搓合約」的繁重勞動中解放出來,而只需要專注於「如何組合XCM 指令完成業務」即可。到這裡,我們就觸摸了XCM 的精髓—— XCM 的可組合性。

跨鏈樂高:XCM 的可組合性

到這裡,我們都對XCM 有了基本的概念,基於各種XCM 指令的組合可以建立豐富的跨鏈場景。在實際應用中,Polkadot 使用XCM 的可組合性,為跨鏈資產轉帳這一場景建構了一些基本的XCM 組合範式,目前已經成為了中繼鍊和平行鏈、平行鍊和平行鏈之間跨鏈資產的事實標準。
Polkadot 內,跨鏈資產轉移有2 種模式: 1. Burn-mint 2. Reserve-Deposit.顧名思義,這兩種模式在目標鏈上的行為相差不大,重要的是在源鏈上,被跨鏈的資產是被銷毀還是鎖定在某個「託管帳戶」中。從這兩種模式的差異我們可以看出,burn-mint 對源鏈和目標鏈的信任度要求非常高,因此這種模式的跨鏈轉帳通常發生在中繼鏈與其係統平行鏈跨鏈轉帳中,而其他三方平行鏈之間則通常使用withdraw-deposit模式。
Burn-mint: Teleport
Burn-mint 的轉移模式在Polkadot 中有一種特定的稱呼,叫做teleport.

XCM:跨鏈開發者的「低程式碼平台」

每次teleport 通常由下面的三條指令完成業務功能:
XCM:跨鏈開發者的「低程式碼平台」
這種鎖定-釋放模式的跨鏈轉帳可以安全地轉移任意資產,更具體地說,資產發行地在Polkadot 任意鏈上,並不局限於只能轉移源鏈或目標鏈上的資產,圖中展示的即是AB 鏈之間跨鏈轉移C 鏈資產的場景。可以看到,完成這種相對複雜的跨鏈資產轉移,也只需要5 個XCM 訊息
XCM:跨鏈開發者的「低程式碼平台」
腦力激盪:XCM 如何建構性感的跨鏈應用
此處所給的XCM 組合僅作為示意,不能直接把它用在生產環境中。
到了這裡,我們就已經基本了解如何構造XCM 用於跨鏈轉賬了,下面讓我們暢想一些有趣的跨鏈應用,以及要如何組合使用XCM 來實現它們。
場景一:跨鏈流動性聚合器
想像一個可以自動在多個DEX 間尋找最佳價格的跨鏈交易系統:
XCM:跨鏈開發者的「低程式碼平台」
XCM:跨鏈開發者的「低程式碼平台」
場景二:跨鏈借貸協議
實現在一個鏈上存入抵押品,在另一個鏈上借出資產:
XCM:跨鏈開發者的「低程式碼平台」
XCM:跨鏈開發者的「低程式碼平台」
場景三:跨鏈DAO 治理
實現跨鏈投票和提案執行:
XCM:跨鏈開發者的「低程式碼平台」

XCM:跨鏈開發者的「低程式碼平台」

XCM,波卡開發者的新機遇

Polkadot 開發新典範:從「造鏈」到「造橋」
除了上述場景之外,我們還有無窮無盡的跨鏈機會:跨鏈NFT 的交易,跨鏈閃電貸套利方案、 資產收益多鏈配置.......曾經,在Polkadot 生態內,開發者都努力學習substrate(polkadot-sdk),努力開發自己的app-chain.
時間來到2024 年,Polkadot 此時:
  • 平行鏈數量來到了45 條
  • Coretime 競標降低入場門檻
  • 鏈間互通需求激增
  • 跨鏈應用迎來爆發期
此時有一扇全新的大門敞開了: 「整合多平行鏈功能,構造跨鏈入口」 ,這也深度契合當前區塊鏈世界大的發展方向——鏈抽象。也就是說,我們只需要理解其他平行鏈的商業程式碼,並合理地組合XCM 指令,就可以創造出性感的跨鏈應用,甚至很可以成為Polkadot 的獨角獸應用。
The future is cross-chain, and it starts with XCM.
參考資料
XCM入門:https://wiki.polkadot.network/docs/learn-xcm-index
分享至:

作者:OneBlock Community

本文為PANews入駐專欄作者的觀點,不代表PANews立場,不承擔法律責任。

文章及觀點也不構成投資意見

圖片來源:OneBlock Community如有侵權,請聯絡作者刪除。

關注PANews官方賬號,一起穿越牛熊
推薦閱讀
3小時前
4小時前
4小時前
19小時前
2025-12-06 07:08
2025-12-06 07:03

熱門文章

行業要聞
市場熱點
精選讀物

精選專題

App内阅读