8BTCCI: 7627.60 8BTCVI: 7556.64 24H成交额: ¥2041.77亿 总市值: ¥9494.68亿
软硬核:彻底读懂 Cosmos 如何一键发链与万链互联

软硬核:彻底读懂 Cosmos 如何一键发链与万链互联

链闻ChainNews 发布在 区块链 海盗号 63735

我们只能自造「软硬核」这个词汇来描述这篇文章的特点:首先,这是一篇实打实的关于 Cosmos 硬核技术的全面解读;但是,它却把极「硬」的技术和理论,用易懂的语言深入浅出地进行了拆解,化「硬核」于柔掌之中,保证你充分理解。

Cosmos 主网上线会是区块链世界的一件大事,关于其意义,可以参考著名区块链投资机构 1confirmation 创始人 Nick Tomaino 撰写的文章:「Cosmos 的前世今生、未来前景和投资价值」。

今天推送的这篇文章,用作者的原话则是:从 Cosmos 最小的细胞结构讲起,直到讲清楚它是如何以这一结构为基础实现庞大的宇宙图景。而「cosmos」这个单词的本意正好是「宇宙」的意思。

Enjoy reading~

1_meitu_12

跨链是区块链正确的发展方向吗?万链互连是区块链未来的落地图景吗?不知道。人们都在观望。

不过,最少有两个标本可供观察:Cosmos 与 PolkaDot。

Cosmos 在 3 月 14 日的早 7:00 启动主网,它是以伯克利的 Tendermint 团队为核心团队开发的跨链项目,要实现两件事情:第一件,是让公链开发变得简单;第二件,是让所有的链能够连接起来。

它是如何完成这两件事情的?以这两件事情的实现为基础,Cosmos 希望构建出怎样的区块链世界?它的跨链生态目前的进展如何?本文将逐一解答这些问题。

Cosmos 的工作原理

 

让我们通过分析和拆解公链的结构,来清楚地理解 Cosmos 是如何把复杂的公链开发变成一件容易完成的事情。

一条公链从底层至上层可以粗略地被分为三个部分 如下图所示:

  • 网络层:底层的数据结构和通信协议的设计。
  • 共识层:共识机制的设计。
  • 应用层:具体业务逻辑的设计。
2

一部分公链的设计目的是为了对公链这种基础设施本身做出改进,比如以太坊等,它们是需要在网络层、共识层、应用层上都进行思考和建设的。

但其他绝大多数的公链是为了解决具体的应用需求而存在的,它们是要解决自己的业务问题,而不是解决公链的问题。也就是说,它们实际上不用关心网络层和共识层,只需要设计为自身业务逻辑服务的应用层即可。

基于这一思路,Cosmos 把网络层和共识层设计好并封装起来,提供给公链开发者使用,在这种情况下开发者就只用考虑应用层。

被封装起来的网络层和共识层叫「tendermint core」,应用层调用 tendermint core 的接口叫「ABCI Application Blockchain Interface」。通过 ABCI 接口,应用层与共识层、网络层组成一个可以协同工作的完整的公链系统。整个系统,可以用下图展示:

3

到这一步,Cosmos 把开发一条公链的工作减少为设计一个应用层的工作。但 Cosmos 并没有就此打住,它继续「切分」应用层。

应用层需要实现一系列的功能来完成最终的业务逻辑,不过这些功能中有很多是可以通用的,比如账户管理的功能,Cosmos 把这些功能分解出来,再以模块化的方式加以实现。

这样一来,开发者在进行应用层开发时,只需要实现自身业务逻辑中特殊的功能,其他的功能都可以直接调用 Cosmos 的功能模块。

如下图所示,Accounts、Governance、Staking、Slashing 等均是功能模块,能够以「插拔」的方式被组合到一起使用。

4

Cosmos 把自己提供的这一模块化开发工具叫做「Cosmos SDK」,它覆盖了应用层需要实现的大部分的功能,到这一步,Cosmos 把设计一个应用层的工作减少为实现少数具体的功能模块的工作。

最终,如下图所示,通过对公链的分层设计以及对应用层的分模块设计,开发者能够以 tendermint 共识引擎和 Cosmos SDK 开发工具为基础,快速地完成公链的开发。他们不再需要设计整条公链,而只需要实现核心的业务功能。

5

 

 

Cosmos 的跨链实现

 

理解 Cosmos 跨链,最关键的是了解 IBC Inter-Blockchain Communication,即 Cosmos 的跨链通信协议。

IBC 定义了链与链之间的通信标准,或者说它定义了一种跨链结构,具有相同结构的链就可以实现互相连通,它允许区块链读取和验证同结构的其他链上的事件。

利用 Cosmos SDK 开发的公链天然具备这一跨链结构,它们之间从创立之初就可以通过 IBC 实现链链交互。

那些不是使用 Cosmos SDK 开发,未包含 IBC 跨链标准的链怎么连通?方法是使用 Cosmos SDK 为原链开发一条「代理链」。

这条代理链既遵守原链的通信标准,可以与原链连通;又采用 IBC 标准,可以与其他 Cosmos SDK 开发的链连通,从而间接实现了原链与 Cosmos 链的跨链。如下图所示,右上角的 Ethermint 即是以太坊的一条代理链,通过它可以实现以太坊与 Cosmos 链的连接。

6

Cosmos 跨链实现中的另一个重要角色是「Hub」,它承担的是中间枢纽的角色。

以上图为例,图中最左侧和最右侧的 4 条公链在没有 Hub 的情况下要实现连接,就必须在彼此之间新建一条通道,但如果有了 Hub,它们都只需要与 Hub 连接,由 Hub 实现跨链的中转。

Hub 本身也是一条公链,使用 Cosmos SDK 开发,具备 tendermint 结构;Hub 连接的公链以及公链的代理链被称作「Zone」,所有的 Zone 都需要实现 IBC 通信标准。

最终,如下图所示,以 IBC 通信标准为跨链的基础结构,以 Hub 为跨链的中间枢纽,Cosmos 实现了链与链的互联。

7

Cosmos 主网,让跨链生态从理论阶段进入实现阶段

 

Cosmos 主网是指由 Cosmos 团队自己开发的第一个官方版 Hub,也就是不同链进行跨链操作时的第一个中央枢纽。随着该主网的上线,Cosmos 的跨链生态将从理论阶段进入到实现阶段。

8

首先介绍大家最为关注的,Cosmos 与其他非 Cosmos SDK 开发的公链的连接。

以太坊将是 Cosmos 最先连接的公链,目前有两个项目去实现这种连接: Cosmos 开发团队主导的 Ethermint 项目,以及由 Loom Network 主导的 PlasmaChain。

Ethermint 是一个单独的 Zone,基于 Tendermint ,并且完全兼容以太坊的 web3 接口和 RPC 调用方法,其跨链实现是:以太坊连接 Ethermint Zone,Ethermint 连接 Cosmos Hub,Cosmos Hub 连接其他遵守 IBC 通信标准的 Zone/链。通过这种连通关系,最终实现以太的跨链转移。

目前 Ethermint 仍在开发中,已经完成了 web3 兼容 API 层的部分开发。

PlasmaChain 则是以 Zone 和 Hub 的双重身份出现,它是以太坊的 DPoS 侧链。

基于 Tendermint 和 Cosmos SDK 展开的项目,天然实现了链与链互联的 Cosmos 跨链生态。该生态目前已经包含了 100 多个项目。基于 Tendermint 和 Cosmos SDK 开发的项目,可以是 Zone,也可以是 Hub,它们都遵守 IBC 跨链通信协议,可以轻松实现彼此地互联。通过 https://cosmos.network/ecosystem 能够查看到这些项目的信息。

随着 Cosmos 主网的上线,包括主 Hub 的上线,以及用以实现与不具备 IBC 跨链结构的公链连接的项目的实现,还有本来就基于 Cosmos SDK 开发的项目的上线,Cosmos 将一步步地连接起更多的链,不断扩张其跨链生态。

 

Hub 的潜力

 

本文的最后一个主题是探讨 Hub 的潜力,它在 Cosmos 生态中扮演着重要角色。

试想,有了 Tendermint 和 Cosmos SDK,公链的开发从设计实现一整条公链变成设计实现多个只与自身业务逻辑相关的功能模块,那么,开发公链的工作还可以被进一步减少吗?

有了 IBC,不同的链在基于相同的跨链结构下完成了连通,从而实现了代币的跨链转移,那么,链链互联还可以完成除了流通代币外的更多的任务吗?

答案是可以,通过「定制」Hub。

Hub 既可以是类似于 Cosmos Hub 的通用 Hub,也可以是针对具体应用场景或特定业务需求而开发的专业 Hub。

这类专业 Hub 可以扩展 Cosmos SDK 的功能模块,也可以扩展 IBC 的数据接口,这样一来,当开发者进行这一具体应用场景下的公链开发时,便可以直接使用该 Hub 扩展后的 Cosmos SDK 以及 IBC 通信标准。

到这一步,公链的开发就只需要实现极少的特殊功能模块,而通过该专业 Hub 连接起来的具有相同 IBC 通信标准的链,可以完成除代币转移外的、基于更丰富接口实现的更多功能的连接。

不难发现,通过 Hub,Cosmos 让自己具备了真正的可扩展性,在链的功能上以及跨链的实现上。随着更多聚焦于不同主题的 Hub 的开发和上线,Cosmos 将成长为一个包容的、强大的生态。

如何用 30 秒说清楚 Cosmos 是什么?

讲了这么多,如果只用 30 秒钟,如何说明 Cosmos 是什么,以及它是如何实现一键发链与万链互联的?很简单:

  • 通过 tendermint 共识引擎和 Cosmos SDK,实现公链的简单、快速开发。
  • 通过 IBC 跨链通信协议,实现相同结构下的链与链之间的可通信、可互连。
  • 通过 Hub,连接起不同的 Zone 与 Hub,实现 Cosmos 整体的跨链生态。
  • 通过定制的 Hub,进一步简化开发工作和满足特定领域的开发需求,并实现除代币跨链外的更多跨链的可能。
这就是 Cosmos。

 

 

参考资料及数据来源:

1.《Blockchain Interoperability: Cosmos vs. Polkadot》,Dave Kajpust

2.《对话 Cosmos:未来是所有人都用一条公链,还是每个人都有自己的链?》,李阳

3.《Beginner’s Guide to Cosmos: The Tendermint-Based Blockchain Ecosystem》,Brian Curran

4. 基于 Cosmos SDK 的项目信息,https://cosmos.network/ecosystem

 

撰文:李画;来源:链闻ChainNews;

致谢:IRISnet 创始人 & Cosmos 中国 Harriet Cao

(编者注:本文作了不改变原意的删节。)

文章标签: COSMOS
评论(1)
登录 账号发表你的看法,还没有账号?立即免费 注册