XCM作为跨链解决方案之一,对波卡生态发展影响重大,尽管更多细节还在完善中,但仍值得我们期待
“波卡知识图谱”是我们针对波卡从零到一的入门级文章,我们尝试从波卡最基础的部分讲起,为大家提供全方位了解波卡的内容,当然这是一项巨大的工程,也充满了挑战,然而我们希望通过这样的努力让大家能够正确认知波卡,也让不了解波卡的人方便快速掌握波卡相关知识,今天是该栏目的第24期,聊一聊大家有点陌生的跨共识消息格式XCM。
Substrate为区块链开发者提供了方便快捷且安全的解决方案,波卡异构多链的架构在不同链之间建立起了联系,而实现跨链任务则需要更为巧妙的工具,XCM是“跨共识”消息格式,不仅能在链之间交流,还能在智能合约、模块之间,以及桥和分片中发送各种信息。因此,XCM对实现波卡的跨链构想有着非同一般的意义。
XCM是一种消息格式,而不是消息传递协议,因为它无法在系统之间发送任何消息,仅仅是一种应如何执行消息传输的格式,也就是表达接收者应该做什么。XCM还可用于通过UMP(向上信息传递)、DMP(向下消息传递)、XCMP(跨链消息传递)通信通道中的任意一个来表发消息的含义。
除了在链之间发送消息之外,XCM也在其他语境发挥作用。比如,用于之前并不是很熟悉其交易格式的链上进行交易。对于业务逻辑变化很小的链、交易格式,往往会无限期的保持完全相同或至少兼容。
使用高度可进化的基于元协议的链,比如波卡及其组成的平行链,业务逻辑可以通过单个交易跨网络升级。由于XCM版本良好、抽象且通用,所以它可以用作一种为钱包提供持久交易格式的手段,以及用于创建许多常见交易。
XCM旨在成为共识系统之间交流思想的语言。因此“交叉共识”具备通用且可扩展的特性。
通用,意味着它能在整个不断发展的生态系统中正确并有用。由于可扩展性不可避免地意味着变化,可扩展性意味着它应该是面向未来和向前兼容的。此外,它应该足够高效的在链上和计量环境中运行。 XCM的设计并不是让每个支持该格式的系统都应该能够解释任何可能的XCM消息。
实际上,有些消息在某些系统下不会有合理的解释,或是由于资源限制以及因为可以以更清晰、更规范的方式表达相同的内容会被故意不支持。系统将不可避免地只支持消息的一个子集,资源严重受限的系统(如智能合约)可能只支持非常有限的“方言”。这种普遍性甚至延伸到诸如为执行XCM消息支付费用之类的概念。
相比于XCMP这种大众熟知的跨链解决方案,XCM格式却很少人了解。尽管XCM是一种语言,并且是一种非常专业的语言。作为共识系统相互对话的手段,在波卡想要实现的网络效应中,也是十分重要的。
而Gavin博士在曾在社交平台上多次发布相关的文章,从设计到执行模型对XCM进行了详细的解析,可见XCM跨链对波卡生态发展的重要性。未来随着项目一个个接入波卡网络,像XCM这样的跨链解决方案还有更大的发展空间。
为防止失联,欢迎大家加入我们Polkadot生态研究院的电报群:
https://t.me/polkadot_eri