区块链的 TCP/IP ?Cosmos 技术分析|标准共识

区块链的 TCP/IP ?Cosmos 技术分析|标准共识

Cosmos 简介

以传统互联网的角度来看,正是由于 IP 协议的中继左右,让我们熟知的 HTTP、P2P、IEEE、WiFi 等协议相互连接,才有了我们可以在 HTTP 协议上登录网页版微信,利用 P2P 协议将文件通过网页版微信传输等应用场景。而以 Cosmos、Polkadot 为代表的跨链技术正在构建区块链领域的 IP 协议,故而有人将跨链技术视为区块链 3.0 时代。

区块链的 TCP/IP ?Cosmos 技术分析|标准共识

Cosmos 原理

区块链的 TCP/IP ?Cosmos 技术分析|标准共识

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

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

Cosmos SDK 架构

区块链的 TCP/IP ?Cosmos 技术分析|标准共识

baseapp :定义了一个基本ABCI应用的模版,与 Tendermint 通信。开发者也可以根据自己的需求重写。

应用程序 :包括 gaia、basecoin、democoin 。其中 gaia 就是 hub 主程序,basecoin 以及 democoin 是提供的两个示例应用。

plugins :cosmos-sdk 的基本单元,每个 plugin 都是 baseapp 的功能扩展,包含各自的消息和交易处理逻辑。

目前 SDK 已经集成了一些重要的 plugin :

staking :POS 相关的实现,包括:绑定,解绑,通货膨胀,费用等操作。

ibc :跨链协议 IBC 的实现,也是 Cosmos 支持跨链的主要插件。

governance :治理相关的实现,如提议、投票等。

auth :定义了一个标准的多资产账户结构(BaseAccount),开发者可以直接嵌入自己的账户体系中。

bank :定义资产的转移。

PegZone 原理

基于 Cosmos-sdk 开发的区块链能够轻松满足实时最终性,然而现存的 Bitcoin 和 Ethereum 这类使用 POW 共识的区块链并不具备此特点,只能属于概率最终性,无法防止区块链的回滚。对于这类链,团队采用 PegZone 方案来解决。

区块链的 TCP/IP ?Cosmos 技术分析|标准共识

上图我们可以看出 PegZone 可以分为 5 个部分:

Smart Contract :资产托管的角色,保管以太坊中的代币和 Cosmos 中的代币。主要提供了 lock、unlock、mint、burn 四个方法。

Witness :是一个以太坊全节点,监听以太坊合约的 event ,并等待 100 个区块产生后,封装 WitnessTx 提交到 PegZone 中来证明在以太坊内状态更改。

PegZone :PegZone 是基于 Tendermint 的区块链,负责维护用户的账户信息,允许用户之间资产的转移,并提供交易查询。

Signer :使用 secp256k1 对交易进行签名,以便签名能够高效的被智能合约验证,对应于智能合约的校验者公钥集合。

Relayer : 中继器负责交易转发。将所有 Signer 签名后的 SignTx 转发到 smart contract 中。

以太网到 Cosmos 的传输过程

区块链的 TCP/IP ?Cosmos 技术分析|标准共识

合同在 Cosmos 端接收 lock 带有 ERC20 令牌和目的地地址的交易。它将收到的资金锁定在挂钩区域的共识,记录通知转发器的事件。

中继器通过 RPC 连接到以太坊完整节点,监听 Lock 事件。

一旦节点收到智能合约的存款,它就等待 100 个街区(最终门槛),然后生成并签署 SignWitnessMsg 证明宇宙钉区正在监听的事件的证据。

挂钩区域接收证人交易,直到超级大多数投票权见证了事件。每个 BeginBlock 调用 peg 区域检查是否有任何传入的以太坊传输已达到超过大多数确认。

然后,节点使用内部事务更新状态,以反映某人想要从以太坊发送令牌并生成 IBCWitness 将令牌转换为指定的目标链.

合约操作过程如下图

区块链的 TCP/IP ?Cosmos 技术分析|标准共识

Cosmos到以太网的传输过程

区块链的 TCP/IP ?Cosmos 技术分析|标准共识

ABCI 应用程序收到 IBCRelay 要求刻录以太坊令牌的请求,并根据 IBC 规范处理它。ABCI 应用程序生成一个有效的以太坊交易,其中包含{地址,令牌地址,金额,非现金},并将其写入其状态。

每个签名应用程序正在监视 ABCI 状态中的新事务,并检测新事务。

每个签名应用程序使用 secp256k1 使用以太坊智能合约已知的密钥签署交易。

每个签名应用程序都将其中继提交回 ABCI 应用程序以 SignRelayMsg 进行复制。

定期查询 ABCI 应用程序事务的中继进程看到事务已达到所需的中继阈值。

其中一个中继器通过调用该 unlock 函数将事务发送到智能合约

智能合约用于 ecrecover 检查它是否由与交易高度相对应的超级大多数验证器集签名(这可能已被更新)。智能合约释放交易中指定的令牌,使其可用于目标地址。

标准共识分析

Cosmos 目前有 Cosmos Hub 模块 跨链 PegZone 模块 IBC 模块 治理相关模块 等一系列全生态环境,从愿景上看,Cosmos 希望打造成一个区块链互联网。所以需要解决跨链的问题,目前未知并未在跨链方面看到成熟方案,这个目标还是很远大,但很难实现,类比互联网网络没有共识层,只要解决好传输问题,就可以完成基本的通信,但区块链不一样,它的特色就是有不同的共识模型,这是它的生命力,也是它进步的方向。

币搜:比特币领域的搜索引擎www.btcsearch.com