Cosmos与它的Hub们

快链头条
2022-04-19 21:42
公链
8367

以太坊用户和开发者长期以来被扩展性和可用空间困扰,究其原因在于单一的公链资源无法满足多样化需求的应用,Defi与Gamefi等应用层级对公链本身的需求各有不同,也正因为此游戏公链纷纷诞生,由此,早在14年便出现的Cosmos生态走到了舞台中央,Cosmos通过提供模块化的区块链,从而为各个应用开发者使用适合自己的公链提供便利。

在梳理Cosmos生态前,我们先来看看公链底层架构的设计:

  1. 数据层:最底层的加密技术:基于密码学的数据存储(梅克尔树,数字签名,链式存储,时间戳),将数据存储于一个区块,通过链式存储/时间戳等技术相连接组成区块链。
  2. cosmos 网络层所用协议(网络层):gossip协议 P2P比特币网络层协议:节点沟通机制,影响了区块链的信息确认速度,决定区块链的可扩展性。
  3. 共识层协议:BFT+POS

BFT(共识层):拜占庭容错机制,也就是在有节点作恶的前提下/环境不稳定的前提下,节点系统仍然能继续运行。 节点总数为N 作恶节点为F 保证N大于3F+1 即可仍然达成网络共识。

POS(激励层):proof of staking,各个验证者也是参与共识的链上节点

通过持有代币进行质押以获得区块奖励

共识层机制:验证者们通过提议/投票/提交 达成2/3的投票形成共识增加新区块,

有三个群体:全节点:从投票到出块全部都参与的即诶单

非验证人节点:只是参与提议/预投票/预提交等准备阶段的节点

提议者:开启每轮投票流程的验证者/节点

共识中不是每轮投票都能产生新区块,提议者如果掉线就重启了

共识中参与验证的节点上限为100,保证2/3节点达成一致即可出块,也就保证了不会出现分叉的风险,但是固定的验证者/节点可能会出现过于中心化的风险。对POS链进行攻击的代价就是其成本为总节点数量成本的2/3.

共识引擎(共识层):BFT/POS的底层引擎:Tendermint Core 的上的共识机制设计意味着即使出现1/3的节点作恶/故障,也不会影响整个网络的运行,从而保障了整个网络大规模使用的前提。

  1. 合约层:分为智能合约虚拟机(例如EVM),智能合约执行机制:驱动应用程序自动运行的智能程序,智能合约脚本(本身)。
  2. 应用层:多链钱包(小狐狸/Math),软硬钱包(onekey/芭蕾钱包),可编程金融(Defi)

WechatIMG447

从数据层到应用层的层层堆叠构成了区块链的框架,Cosmos则是将层层镶嵌进行拆解,在共同使用底层的共识层和数据层的基础上,通过一组开源工具,例如ABCI与SDK为各个应用链或者平台链开发者提供语言与功能使用的便利。

Cosmos本身的特色

·ABCI(Application Blockchain Interface):socket 协议/调用的接口

ABCI保证了在共识层和网络层之上与应用层之间的关系中,可以通过ABCI调用任何一种开发语言为开发人员进行开发帮助,

举个反例:以太坊网络中EVM虚拟机在让智能合约运行时,需要EVM编译器将EVM允许的语言编译成代码上传区块链执行应用程序。(Solidity/Serpent)

而ABCI则允许应用开发者们使用多数开发语言将应用层接到共识引擎上。(智能合约驱动应用时上传时的语言分为了很多种)

ABCI有三个功能类型:

1)查询应用层的状态:BeginBlock/EndBlock

2)提交给共识引擎处理并更新状态:DeliverTx

3)验证应用中的交易并提交到交易池广播交易:CheckTx

ABCI保证了共识与网络层对应用层语言上的支持,而SDK在Cosmos生态中更像是生产机器或者汽车的机床和流水线,为开发者提供统一和定制类的服务。

·Cosmos SDK—模块化的开发方式

在Cosmos生态中,允许不同应用开发者在SDK模块下对其应用功能进行自由重组,同时可以将已经组装好的模块功能通过KVstore的形式进行保存以供下次改进或者使用,并且SDK可以开源,开发者也可以通过项目实践实现迭代。

Cosmos SDK与ABCI的互动:通过Multistore 的机制来定义和维护应用层的状态,将应用层的状态划分到不同的模块,可以看作是独立的状态机CosmosSDK里内置的底层basepp里有ABCI的接口可以直接调用适应所有应用类型的Tendermint共识机制,更新后的状态由SDK里的Multistore的功能保存,并且还可以把信息切割开来对应到不同的模块。

SDK的模块功能

IBC:跨链协议功能,注意IBC只与SDK相交,但是不完全相同,开发者使用SDK并不强制使用TenderMint的共识协议,使用IBC的开发者也可以连接到其他共识层上,不一定是TM共识算法。

Account模块:账户管理的account模块

Bank模块:转账交易

Staking模块:代币质押

Slashing模块:惩罚策略的slashing

Distribution模块:奖励分配的distribution模块

Supply模块:新币生成的

Gov模块:链上治理

SDK兼容第三方模块:开发者需要其他第三方模块功能时也可以兼容到SDK上,但是需要安全检查

SDK的安全性:SDK的每一个模块功能运行逻辑被保存在Keeper里面,keeper(模块存储器),每个模块的代码运行逻辑可以分散,keeper可以隐藏在幕后,当应用层出现问题时,开发者只要梳理问题代码功能来源,解决问题进行优化。

SDK的自由:使用SDK建立的应用层都可以自由选择自己的网络层和共识层,也可以选择网络层/共识层的验证者,建立社区。通过IBC协议,各个链都可以作为应用层的共识机制/网络层。

Cosmos SDK中的IBC模块,使用Cosmos SDK构建的应用都可以通过升级兼容IBC协议,全称Inter Blockchain Communication 区块链间通信协议,统一了在不同的区块链之间跨链沟通的标准。

·IBC协议

IBC的特点

1 互操作性:资产跨链;信息跨链

2、安全性:IBC的安全来自对Tendermint默认Pos共识的最终确定性(即认可pos链),没有过多功能。

3、通用性:IBC对应用层没有过多要求,可能符合pos共识就可以,所以加入难度较小。可能不是最好的,但是比较便利。

4、兼容性:所有相同共识机制的区块链都可以兼容跨链,目前pow的还不能跨链。

IBC的协议内容

与互联网中的IP地址/端口号一样,每个应用都有自己的Port ID,同时信息交流在Channel通道上(多个通道防止过载/可以有序通过),port端口(模块功能可以介入不同port ID,接受不同应用的信息) 轻客户端:只参与部分流程的验证者 同步对方区块链的头部信息,验证交易的有效性和合法性(主要集中在相同共识机制的区块链:SDK同构区块链)

IBC对两条链之间进行信息资产交流的规则

  1. 验证轻客户端验证资产是否合法有效2)A链发送证明ATOM已被锁定3)B链验证A链的证明4)B链创建100个AMT的Voucher抵用券,可以流通使用直到返回A链后用来解锁原来的100个ATOM(这里发送之后进行创建的并不是真实的资产,而是资产价值的所有权)

两个区块链网络通过IBC协议达成了信息沟通的标准得以进行传送沟通,接下来就是网络沟通交流的方式,Polkadot网络协议XCMP通过中继链维持网络的运转,但其弊病在于需要质押DOT放弃了效率,而Cosmos网络则选择采用Hub中心枢纽的模式。

Cosmos Hub (A--B--C)

  1. 运行机制:

Hub作为Zone的中间枢纽,可以同步更新所有Zone的区块头作为验证的信息,也就是说Hub记录着每一条区块链作为账本的余额和交易记录:

A——发送转账消息——B(由C存储在B上的区块头进行验证信息合法)——转到C

当Zone网络出现升级时,可以通过接入Hub将现有分区数据转移到升级后的Zone上

Pow与Pos的安全性问题:对于比特币和以太坊pow网络而言,验证者是各个为网络提供算力的矿工们,矿工购买算力维护网络获得收益,只有拥有全网络51%算力的验证者才能够对全网进行攻击,但由于比特币和以太坊网络规模到达一定程度,所以拥有51%算力难度较大,相应地安全性也较高; 对于Tendermint默认的pos共识机制而言,验证者/节点运行是各个将pos链资产进行抵押的质押者们,相同的道理,要想攻击整个网络,也需要一定的成本规模,即链上作恶/攻击的节点数量达到总数的2/3,也就是成本达到总质押规模的2/3.(链上存储用于应用/交易/游戏的资产不等同于验证者用于质押的资产)

仍需在安全问题上考虑的问题:每个Zone上的应用的市场需求/规模有限,也就不太可能出现太多的质押资产,这里就需要加上Hub链上的资产抵御攻击。

pos安全的防范措施:1)不要让链上存储过多的资产,也就减少了作案的动机(但不符合未来的趋势)2)允许拥有更多质押资产的链,将Hub中枢链的质押资产分一部分给其他Zone链,提高整个作恶的成本。 3)保证开发出的枢纽Hub功能的简单化,因为越简单,网络所纰漏的漏洞和不安全性的可能性也就越低。同时SDK本身设计是组装性设计Zone,因此也可以将Zone进行拆解成为独立功能的区块链(比如只具备惩罚或者验证功能)即使受到攻击,整个网络也可以正常运转。

Cosmos Hub的出现本身也带来了一定的安全意义,大部分开发者并没有公链的安全维护的冷启动资金,所以有了Cosmos Hub的安全质押资产的保护,客观上也保证了更多开发者集聚。 最需要担心的问题是Cosmos Hub本身作为目前整个Cosmos生态中比较大的Hub枢纽,不太去中心化(同步了所有Zone的信息),由此也需要更多的质押资产对其进行防护。但Cosmos生态中不一定只有一个Hub,接下来的EVMOS/Juno Network/Osmosis都可以从某种程度上分担Cosmos Hub的安全责任,保障去中心化。

2)Cosmos Hub与ATOM: 从创世块开始,Atom总量的1/3将会作为网络验证者的工作奖励。初始供应量2亿枚,Atom采用通胀模型,第一年按照7%增发,用于节点等奖励,之后每年增发比例会每年的抵押率波动:如果总质押的Atom小于供应总量的2/3,通胀率上升到20%;如果总质押大于供应总量的2/3,通胀率将会减小到最少7%。

目前总流通量达2.86 亿枚 $ATOM,在1月21日录得最高市值119亿美金。Atom的价值是节点作恶的很大一部分成本(质押数量*代币价值),而Atom的升值则通过增加作恶成本上给Cosmos的网络安全提供了一定的保障。

打通边界的Cosmos

除了CosmosSDK的同构公链,其他异构公链也可以连接Cosmos生态,而在现有的区块链中,Cosmos最先实现的是和以太坊的通信,为此推出了Gravity Bridge的跨链桥与兼容EVM的EVMOS。

跨链桥:允许在不同的区块链间(不同共识机制/代币标准/治理模型)进行资产和数据/信息转移的方式,将资产仍然保留在A链中,通过一定方式/条件(所有权的转移)在B链进行解锁使用。跨链桥分为 1)基于信任的桥:引入信任的检查者来执行(例如AVAX Bridge需要中间见证人利用隐私计算多方安全计算(MPC)确保交易有效合法。 2)无需信任的桥:即:将资产仍然保留在A链中,通过一定方式/条件(所有权的转移)在B链进行解锁使用。

Gravity Bridge:基于Tendermint共识机制的跨链桥区块链(使用了SDK模块/IBC协议进行组建/通信),作为兼容IBC的区块链,Gravity Zone可以作为兼容不同共识机制的中间桥链,同时Gravity作为独立的Zone区块链跨链桥,将会以DAO的社区形式发放代币与Hub代币(ATOM)一起作为激励验证者的Token。

EVMOS:兼容EVM生态的区块链,作为与Cosmos Hub地位相同的Hub,其底层共识机制仍为Pos(在以太坊未专成Pos之前或许使用Gravity桥进行资产桥接),在SDK模块的基础上添加了兼容EVM虚拟机的模块,既通过IBC/EVMO支持以太坊的ERC20代币标准,使得Cosmos生态内不兼容EVM生态的公链也能使用以太坊生态应用,同时作为Hub也能通过跨链安全和兼容EVM的Zone区块链共享安全护城河。

温馨提示:
快链头条登载此文本着传递更多信息的缘由,并不代表赞同其观点或证实其描述。
文章内容仅供参考,不构成投资建议。投资者据此操作,风险自担。
提示:投资有风险,入市须谨慎。本资讯不作为投资理财建议。