Kusama已經開啟了第8次卡槽拍賣了,這也代表著Kusama的中繼鏈上共享安全的平行鏈將有第8個。
Kusama的中繼鏈結構和波卡的中繼鍊是一樣的。因為共享安全的設計,不同異構鏈可以完成消息通訊。面對異構鏈的不同,波卡的跨鏈協議需要具備一些不同的通信方式。
XCM就是不同平行鏈之間通信的消息格式。根據GavinWood對XCM介紹,我們從其中摘出部分介紹內容,用來了解XCM。
XCM是一種消息格式。它不是消息傳遞協議。它不能用於在系統之間實際“發送”任何消息,它的作用僅在於表達接收者應該做什麼。
Polkadot帶有三個不同的系統,用於在其組成鏈之間實際通信XCM消息:UMP、DMP和XCMP。
UMP(向上消息傳遞)允許平行鏈向它們的中繼鏈發送消息。
DMP(向下消息傳遞)允許中繼鏈將消息向下傳遞到其平行鏈。
XCMP允許平行鏈之間發送消息。
XCM則可被用於通過這三個通信通道中的任意一個來表達消息的含義。
除了在鏈之間發送消息之外,XCM在其他語境也很有用,比如,由於XCM抽象且通用,因此它可以用作為錢包提供持久交易格式的手段,用於創建許多常見交易。對於業務邏輯變化很小的鏈(例如比特幣),交易格式或者錢包用來向鏈發送指令的格式,一般會一直保持一致。
XCM旨在成為共識系統之間交流思想的語言。它應該足夠通用,以便在整個不斷發展的生態系統中保持正確且有用。它是可擴展的,可擴展性意味著可變化,也意味向前兼容。可以高效在鏈上運行,能在計量環境中運行。
XCM可用於多種系統,包括gas計量的智能合約平台和社區平行鏈、系統平行鏈與其中繼鏈之間的可信交互。
雖然XCM的目標是通用的、靈活的和麵向未來的,但它當然必須滿足實際需求,尤其是鏈之間的代幣轉移。在整個DeFi世界中,可選的費用支付是很常見的。可以使用XCM語言進行一些特定操作。
重要的是,有許多希望支持的代幣轉移模型:可能只需要簡單地控制遠程鏈上的帳戶,允許本地鏈在遠程鏈上擁有一個地址以接收資金並最終將其控制的資金轉移到該遠程鏈上的其他賬戶中。
但這個過程裡可能有兩個共識系統,它們都是特定代幣的系統。例如USDT或USDC這樣的代幣,在幾個不同的鏈上都有實例,並且完全可以互換。應該可以在一條鏈上銷毀這樣的代幣,並在另一條支持的鏈上鑄造相應的代幣。在XCM中,可以稱之為傳送(teleport),因為資產的轉移實際上是通過在一側銷毀它,並在另一側創建一個克隆來實現的。
XCM格式的核心在於XCVM。這代表跨共識虛擬機。這是一台超高級別的非圖靈完備計算機,其指令設計為與交易大致處於同一級別。
XCM中的“消息”實際上只是一個運行在XCVM上的程序。它是一個或多個XCM指令。程序會一直執行,直到它運行到最後或遇到錯誤為止才會結束並停止。
XCM中的位置是分層的,共識中的一些部分被完全封裝成單獨的部分。例如Polkadot的平行鏈完全存在於整個Polkadot共識中的內部位置。只要有一個共識系統的任何變化都意味著另一個共識系統的變化,而前一個系統是後者的內部系統。
在XCM中工作時,通常需要引用某種資產。是因為幾乎所有現有的公共區塊鏈都依賴於一些原生數字資產來為其內部經濟和安全機制提供支柱。對於比特幣等工作量證明區塊鏈,原生資產(BTC)用於獎勵開發區塊鏈的礦工並防止雙重支出。對於Polkadot等權益證明區塊鏈,原生資產(DOT)用作一種抵押形式,網絡管理員(稱為權益人)必須承擔風險才能生成有效區塊並獲得實物獎勵。
XCM中的費用支付是一個相當重要的用例。 Polkadot社區中的大多數平行鏈都會要求其對話者為他們希望進行的任何操作付費,以免“垃圾交易”和DDOS。
當鏈有充分的理由相信它們的對話者可信時,也可以不付費,例如Polkadot中繼鏈與PolkadotStatemint公共利益鏈通信時就是這種情況。但是,對於一般情況而言,費用是確保XCM消息及其傳輸協議不會被過度使用的好方法。
我們來看看XCM消息到達Polkadot時如何支付費用。
對於確實需要支付一定費用的系統,XCM提供了使用資產購買執行資源的能力。概括來講,這包括了三個部分:
提供一些資產
就計算時間(用Substrate中的說法就是weight)交換資產。
XCM按照指示執行