驗證& 維護網絡

輕客戶端

爲了驗證跨鏈信息的加密證明,需要一個可信的根。通常情況下,加密證明是一個(變種)Merkle樹中特定值的存在Merkle證明,例如Ethereum中的Merkle Patricia Tree(MPT)或Cosmos中使用的Immutable AVL(IAFL+)樹,而可信根是該樹的Merkle根,通常包含在塊頭中。然後,通過將所有感興趣的區塊鏈的所有區塊頭送入MAP中繼鏈,可信根的可用性問題可以輕鬆解決。然而,隨着不斷努力縮短區塊生成的內部時間,在MAP中繼鏈上處理所有上傳的區塊頭會消耗大量的資源,特別是當我們試圖連接越來越多的區塊鏈和區塊鏈,如Binance智能鏈,Polygon網絡已經在每2或3秒產生區塊。另一個問題是,如何驗證上傳的區塊頭的正確性?MAP協議的設計是去除所有的信任方,因此依靠信任方來上傳正確的區塊頭顯然不是一個可接受的解決方案。隨着SPV技術和輕型客戶端構建技術的進步,這兩個問題都可以用無信任的方式解決。核心的觀察是,幾乎所有的區塊鏈都可以在非常有限的信息下達成共識。

PoW鏈的輕客戶端

類似中本聰的共識鏈,例如以太坊,新的區塊頭可以很容易地按照共識規則檢查,例如,哈希鏈接以及累積的工作等。如果以太坊網絡不會重新組織超過n個區塊,那麼以太坊的輕客戶端只需要保留n+1個最新的區塊頭來驗證新的區塊頭並以自主方式更新其內部狀態。考慮到傳遞跨鏈信息的延遲,以這種方式構建的輕客戶端可以存儲更多的區塊頭,例如,過去48小時內產生的區塊頭。在以太坊~13秒的區塊間隔下,MAP中繼鏈上的輕客戶端只需要存儲13k個以太坊區塊頭。另一方面,通過採用Flyclient技術,上傳至MAP Relay Chain的區塊數量可以大大減少。雖然輕客戶端的創世狀態需要手動設置,但由於任何人都可以檢查創世狀態的正確性,所以無信任的特性不會受到影響。我們猜想,這基本上與取證世界中流行的 "弱主觀性 "概念相同。

PoW Chain的Light-Client部署在其他鏈上

  • 存儲最新的N個區塊頭。

  • 按照共識協議驗證新的區塊頭並自我更新。

  • 某些txs的證明:包含Merkle證明。

  • 維護者: 用Light-client爲MAP協議更新預付氣體費用,並從MAP協議中獲得獎勵

PoS鏈的輕型客戶端

對於基於Proof-of-Stake和BFT的區塊鏈,輕客戶端的構建在開始時可能顯得相當困難。感謝Tendermint團隊的工作,事實證明,一個更有效的輕客戶端可以被構建。雖然技術細節可能相當冗長,但核心思想卻很簡單。在這樣的網絡中,區塊是由一組被選中的有樁驗證者簽署的,所以通過驗證一些數字簽名,可以很容易地檢查一個區塊的有效性。驗證者的集合可以隨着時間的推移而改變,但在典型的PoS網絡中,新的驗證者集合也需要由舊的集合通過簽名來證明。這樣一來,只需提供當前驗證器集的少量信息,例如,每個驗證器集的樁重、公鑰,輕型客戶端就可以輕鬆檢查新的區塊頭以及更新自己。甚至不需要上傳所有的區塊頭,只需要上傳極少數的區塊頭,例如那些參與跨鏈操作的區塊頭,或者驗證集升級。

MAP中繼鏈上的輕客戶端被初始化爲智能合約,因此該鏈可以爲由MAP中繼鏈連接的新區塊鏈快速添加新的輕客戶端。默克爾證明驗證和數字簽名驗證對於輕客戶端的構建和運行至關重要。但是,用Solidity實現這些密碼學原語既麻煩又低效,特別是在不同的區塊鏈中使用各種密碼學原語。爲了簡化輕客戶端的開發,在區塊鏈層面支持各種密碼學原語,並通過預先編譯的合約暴露給EVM。

PoS鏈的輕客戶端部署在其他鏈上

  • 存儲驗證者的公鑰和投票權重 - 不需要存儲區塊頭。

  • 驗證一組新的驗證者(由前一組驗證者授權)並自我更新。

  • 某些txs或事件的證明:包含Merkle證明和相應的塊頭信息(包含簽名)。

  • 維護者: 用Light-client爲MAP協議更新預付汽油費,並從MAP協議獲得獎勵。

*注意:Light-Client的獨立和自我驗證機制可以保證驗證的最終性,並且是無操縱的。初始狀態將由MAP協議團隊向公衆完全開放。

MAP中繼鏈的輕客戶端

僅僅在MAP中繼鏈上維護連接的區塊鏈的輕客戶端是不足以實現無信任風格的雙向跨鏈互操作的,MAP協議要求在每個連接的區塊鏈上都有MAP中繼鏈的輕客戶端存在。雖然在MAP中繼鏈上,天然氣價格可以不斷優化以保持儘可能低的價格,但在其他鏈上,我們必須接受現實。由於MAP中繼鏈採用了PoS和IBFT,按照上述技術可以很容易地建立一個輕客戶端。爲了優化輕客戶端在其他鏈上的氣體消耗,MAP Relay Chain採用了BN256曲線上的聚合BLS簽名。這樣一來,MAP Relay Chain的驗證器的簽名驗證可以減少到只用一個聚合公鑰驗證一個聚合簽名。由於BN256的預編譯合約被兼容EVM的區塊鏈廣泛支持,維護MAP Relay Chain的輕客戶端的氣體消耗可以減少。

MAP協議的驗證和維護網絡示意圖

維護者

MAP中繼鏈上的連接區塊鏈的輕客戶端和連接區塊鏈上的MAP中繼鏈的輕客戶端需要跟上相應區塊鏈的發展。這就是維護者的責任。MAP協議中的維護者持續監控MAP中繼鏈以及所有連接區塊鏈的區塊鏈增長。MAP中繼鏈的新區塊頭被提交給所有連接的區塊鏈,以保持MAP中繼鏈的輕客戶端更新。同時,所有連接的區塊鏈的新區塊頭被提交給MAP Relay Chain,以更新生活在MAP Relay Chain上的各種輕客戶端。這樣一來,MAP中繼鏈和每個連接的區塊鏈都知道彼此的最新狀態,爲跨鏈消息驗證奠定了基礎。

正確設置後,每個輕客戶端可以根據其內部狀態以及合約中編碼的規則來驗證較新的區塊頭,這樣不誠實的維護者就無法欺騙輕客戶端接受無效的區塊頭。或者在其他世界中,MAP協議的安全性並不依賴於受信任的中轉者。只要輕客戶端被正確地初始化,並且實現正確地遵循相應區塊鏈的共識協議,輕客戶端的正確性就會得到加密保證。由於向區塊鏈提交交易會消耗氣體,所有維護者都會根據他們完成的有益工作,例如提交的有效區塊頭的數量,得到MAP代幣的獎勵。

Last updated