Cosmos:一个即将到来的模块化框架与基于Tendermint的区块链平台
Cosmos 是一个即将推出的模块化框架和基于Tendermint的区块链平台,旨在为特定应用的区块链提供一个生态系统。Cosmos的设计理念是标准化其更广泛生态系统中各个区块链之间的通信,以实现互操作性。该项目无疑是非常雄心勃勃的,主网预计将在2019年某个时候发布。
Tendermint 的独特之处在于它作为其他区块链的多链框架,同时仍利用其自己的共识机制——基于Tendermint核心的权益证明(PoS)。可扩展性和互操作性是加密货币领域中最重要的两个发展方向,而Cosmos在这两个方面都进行了探索。然而,启动一个创新的、可投入生产的PoS网络,尤其是考虑到大规模PoS共识网络尚未被实际证明是可持续的,是非常具有挑战性的。
Cosmos背景
Cosmos的开发由瑞士的Interchain基金会支持,Cosmos是他们的第一个项目。许多参与Cosmos开发的开发者来自Tendermint区块链引擎背后的公司All in Bits。值得注意的是,Jae Kwon——他于2014年首次提出了Tendermint——是该项目的主要开发者之一,并且是Interchain基金会的董事会成员。
Cosmos在2017年4月结束的ICO中筹集了大约1680万美元。自那时起,该项目经历了有条不紊的开发过程。Game of Stakes(GoS)测试网即将上线,随后将对最近发布的SDK进行审计,最终主网也将启动。更多详细信息可在其路线图中找到。
技术细节
Cosmos是一个模块化框架,允许平行区块链连接到称为Cosmos Hub的主要枢纽。Cosmos Hub是网络中的第一个区块链,并作为系统中各个区域之间的连接媒介。这些区域包括私有和公共区块链,它们都通过跨链通信(IBC)协议相互连接。
图片版权 - Cosmos博客
Cosmos建立在Tendermint引擎上,该引擎由两个主要部分组成:
- Tendermint Core - BFT权益证明共识引擎
- 应用区块链接口(ABCI)- 以多种编程语言复制dapps的BFT。
Tendermint核心是Cosmos Hub共识的基础,随后是更广泛的网络,用于管理区域之间标准化的代币交换。需要注意的是,连接到Cosmos的区块链保留其共识主权,并不会将其让渡给更大的Cosmos PoS共识。
ABCI是语言无关的,使开发人员能够以任何语言构建其区块链的应用程序部分,并且它将在Tendermint共识引擎上运行。ABCI是Tendermint共识引擎与Cosmos SDK之间的重要边界,用于构建应用程序。SDK是一个分层框架,建立在ABCI的低级存在之上,使开发人员能够创建高级应用程序,而无需应对低级环境的逻辑复杂性。
Cosmos将区块链的三个概念层定义为:
- 网络 - 交易传播(即八卦协议)
- 共识 - 验证节点对交易达成一致
- 应用 - 更新交易状态和处理交易
Tendermint将网络和共识层结合在一起,使开发人员能够更轻松地在通用引擎上构建区块链和运行应用程序。这是Cosmos的核心概念之一,使其能够作为一个环境供平行区块链接入。开发人员只需专注于应用层。
ABCI是打包的Tendermint核心(网络和共识层)与应用层之间的接口。重要的是,ABCI使用套接字协议使共识引擎能够管理在另一个共识进程中运行的应用程序状态。根据Cosmos文档:“Cosmos因此可以支持各种货币和脚本语言,如比特币、以太坊、ZeroCash、CryptoNote等。”
底层的Tendermint核心非常灵活,与公共和私有区块链都兼容。此外,开发人员可以享受Tendermint的近乎即时最终性和高性能,其设计目的是为了扩展。IBC是整个网络的标准化通信协议。标准化是强大的,它允许互操作性和增强的可扩展性(即互联网协议)。IBC是一组用于在具有独立共识算法的区块链之间进行消息传递的语义。根据Cosmos SDK Github仓库:“核心IBC协议是有效负载无关的。在IBC之上,开发人员可以实现特定应用程序的语义,使用户能够在不同区块链之间转移有价值的资产,同时保留该资产的合同保证——例如货币的稀缺性和可替代性,或数字猫咪的全球唯一性。”
IBC要求具有快速最终性的区块链(如PoS区块链)在连接区块链之间得到原生支持。然而,IBC可以通过具有较慢共识的peg-zone区块链(如PoW)来实现,如下文所述的Ethermint。更多关于IBC的详细信息可在其规范文件中找到。IBC由基于Tendermint的区域原生支持,并促进了网络中不同区块链之间代币转移的标准化格式。这类似于网络内的通用原子交换协议。重要的是要区分IBC仅由基于Tendermint的区块链以及具有快速最终性共识算法(包括PoS变体)的区块链原生支持。
Ethermint是用Go语言编写的,它将是第一个peg zone,是在Tendermint引擎上实现的以太坊虚拟机(EVM)。Cosmos通过利用Tendermint协议的ABCI实现了这一点,该协议允许任何语言的应用程序在Tendermint引擎上运行。在这种情况下,他们复制了以太坊代码库,并使Cosmos与以太坊的Web3接口完全兼容。开发人员甚至可以使用Truffle将应用程序和智能合约直接移植到Cosmos。
在区块链上构建应用程序是一项艰巨的任务。应用程序框架提供了急需的资源和工具,以促进更好的开发体验,这也是Cosmos最近推出其SDK的原因。
Cosmos SDK
Cosmos SDK是一个用Golang编写的ABCI框架,旨在支持多资产PoS区块链、权威证明(PoA)区块链以及在其上构建的应用程序的开发。SDK的主要目的是减少构建ABCI以实现常见区块链功能的复杂性,并允许开发人员在标准化框架内专注于可定制的应用程序。
SDK的模块化结构分层在低级的ABCI之上,并为开发人员提供了一套工具和资源。它是为Gaia(Cosmos Hub的第一个实现)构建的,主网启动将在SDK代码审计以及Game of Stakes PoS测试网完成后进行。
图片版权 - Cosmos博客
SDK是使用对象能力原则构建的,以最佳安全性应对开发人员在制作其模块时可能使用的潜在恶意第三方模块,作为SDK开放框架的一部分。Cosmos在其SDK文档中提供了广泛的资源,供开发人员在平台上线后抢先构建应用程序。
Lotion JS是Cosmos SDK的替代框架,用JavaScript构建,允许用该语言构建区块链应用程序。它比SDK框架小得多,并设计为构建专注模块的基础。
互操作性的未来
区块链的互操作性被认为是继可扩展性之后行业的自然下一步。然而,像Cosmos这样从一开始就设计为可扩展的互操作性框架的项目,为我们提供了对未来互操作性区块链格局的一些有趣见解。
确定Cosmos将如何发挥作用是非常具有挑战性的,尤其是考虑到它对PoS共识的依赖以及其Game of Stakes测试网的待定结果。PoS是出了名的难以推理,并且倾向于对不变性进行主观解释。
Cosmos主网启动的时间表尚不确定,但与Polkadot(一个类似的多链框架)一起,可能为标准化通信和区块链之间代币交换的机制提供有用的衡量标准。如果成功,Cosmos将为开发人员和用户提供一个全新的环境,以启动和与可扩展的去中心化应用程序进行交互。