原文作者:ChelseaJiang
原文来源:?ForesightResearch
Cosmos的雏形及源头项目Tendermint成立,比特币的白皮书发布仅5年。
2018年,Cosmos的白皮书在上海的万向区块链周获得最佳白皮书,熊市开启4年的周期。
2022年,cosmos终于实现了白皮书,区块链的世界开始认真的思考,公链不再一家独大,而是像cosmos描述的,是区块链互联的宇宙。
本文涉及技术细节,篇幅较长,可以结合目录查看
目录
1.Cosmos:区块链3.0
1.1比特币:区块链1.0,去中心化的价值
1.2以太坊:区块链2.0,应用的爆发
1.3Cosmos:区块链3.0,可扩展的模块化区块链网络
1.3a)公链的构建
1.3b)公链的组成
1.3c)Tendermint共识机制:基于BFT的POS的提供
1.3d)CosmosSDK:模块化的开发方式
1.3e)IBC跨链协议:区块链互联网的TCP/IP协议
1.3f)CosmosHub:价值枢纽
1.3g)GravityBridgeEVMOS:兼容以太坊生态
2.多链的选择:CosmosVs.PolkadotVs.Avalanche
3.多链的必然性:Web3.0的前提
3.1多链的世界:无限扩展的模块化区块链
3.2多链的Defi:完整的金融体系
3.3多链的社交:统一的身份
4.总结
开发者工具降低开发门槛,包括Tendermint共识引擎,CosmosSDK的模块化开发框架,加上IBC通信协议,实现区块链之间的信息和资产转移,打通不同区块链的孤岛,形成互联网。
在理解Cosmos的开发思路之前,我们不妨先回顾下区块链的发展。
比特币是一个去中心化的货币体系。比特币的区块链技术第一次在分布式数据库引入了共识机制:Proofofwork的工作量证明,通过奖励原生代币bitcoin激励参与者成为矿工,确保账本一致。比特币是一个任何人都可以参与记账的账本,但是没有任何人结合能够拥有这个账本,所以也没有人能改变这个账本上的记录,第一次通过技术的手段实现去中心化的货币体系,转移价值。你可以与世界上任何一个人进行交易或者转账,只需要知道对方的比特币地址即可,不需要确认开户银行甚至提供居住地址。
POW的共识机制解决了信任问题,不需要相信某一个人或者机构(这将给予他们巨大的权利)。每一个人都可以参与比特币的网络,成为节点一起记账,一个节点只有在计算出加密算法的数学难题后才能记账并获得全网的共识,保证同一个比特币不会被用两次。如果有人想要恶意攻击网络,比如说把1000个比特币划到自己的账本上,那需要51%的网络的节点同同意才可能完成修改。而现在比特币的挖矿更像是军备竞赛,加入网络的壁垒变得越来越高,想要掌握51%的节点更是难上加难,保证了网络的安全。所以比特币作为去中心化的价值越来越被更多的人认识,获得全球共识。
但是,比特币的可开发空间有限。如果想要在比特币网络上开发应用,基于POW的比特币只给了开发者两种选择,分叉或者在原有的代码上进行开发。选择分叉的需要花费大量ji保持原代码的运行,而且在2008年创建的比特币的脚本语言过于原始,难度较高;选择在比特币网络上开发的话,比特币的网络层、共识层和应用层都混合在一起,而且比特币支持的简单的脚本编写基本只适用于交易,很难在上面继续开发其他的功能。
以太坊带来的智能合约打开了应用场景的开发空间,区块链可以被更多的主流人群采用。以太坊虚拟机,EthereumVirtualMachine模拟了完整硬件系统功能的处理系统,通过这个虚拟机可以为应用程序提供运行,也就是我们看到的智能合约。开发人员只需要通过代码告诉智能合约需要做什么,怎么做,剩下的只需要智能合约自己去执行就可以了。智能合约解放了应用层的开发空间,开发人员可以构建各种可供用户使用的应用,进入区块链2.0时代。
但是以太坊依然面临平衡的问题,即可扩展性,可用性,和独立性的问题。现有的部署在EVM上的app的DAPP,本质上是在争夺链上有限的区块空间,可扩展的空间受限:需要处理各种类型的EVM只能做普适的优化,但是不同的应用场景却有不同的需求,比如说Defi需要快速确认,然而NFT的应用需要的是存储空间,所以以太坊不可能适合所有的应用场景,可用性天花板较低:基于EVM的所有DAPP都是需要依赖以太坊的底层环境,因为EVM是部署在以太坊网络上的每个节点,DAPP需要修改的话还有受限与底层以太坊网络是否能兼容。一旦部署智能合约,开发者基本上只能依靠合约自主运行了。
EVM真正开启了区块链作为底层技术支撑的应用场景空间。像是苹果IOS的系统给予了开发者创作的空间,让手机从一个单一的通讯工具变成了包含社交,娱乐,工作的智能工具。以太坊的EVM作为智能合约的运行底层,也赋予了开发者无限的创造空间,带来了我们现在看到的去中心化的金融系统Defi,提供确权的NFT,以及去中心化的游戏经济体gamefi。
但是,随着这些应用获得越来越多的流量和用户,比如日活达到200万的AxieInfinity游戏,大约每秒处理15笔交易的以太坊公链显然无力承载如此庞大的流量。同时智能合约升级也十分困难,且难以修改,使用智能合约的应用也无法快速迭代提供更好的用户体验。同时其他公链也开始形成自己的生态,用户在每个公链都持有一定的资产,但是跨链转移资产依然面临诸多不便。
Cosmos在以太坊的基础上更进一步,通过CosmosSDK的形式提供搭建区块链的脚手架,提供通用的开发框架,CosmosSDK模块,大大简化了区块链的开发难度,对于开发人员来说可以添加定制的功能实现扩展。
1.3a)公链的构建
首先,所有解决具体应用场景的应用都需要构建在底层的公链上,具体来讲,对应用开发影响最大的是公链偏上层的应用层,更偏向公链底层的网络层和共识层提供的是应用运行的底层性能,具体的底层设计只要在保证性能的情况下不会对应用程序本身产生更多的影响。
但是,如果要达到主流采用的应用的话,可能需要整个公链单独为应用服务。比如说21年爆火的链游Axie在,选择了开发自己的侧链Ronin处理大量交易。如果继续依赖承载着其他Defi、NFT等交易活动的以太坊来处理的话,不仅会无法处理Axie游戏的业务,还会导致以太坊网络的拥堵。毕竟以太坊的TPS仅仅是10。所以,长期来看,大量的应用堆积在一条主链上去共享资源既无法满足应用,还拖垮整个网络。单一公链不可能为每一个应用场景都做到最优,不同赛道的项目应该选择在适合自己的公链生态进行上构建,Cosmos提供模块化的区块链,开发者可以更高效的搭建出适应应用场景的链
同时以太坊上应用的爆发也让开发者意识到,不同的应用场景对公链的要求也不一样,比如确认时间的速度对Gamefi项目的影响一定大于Defi的项目。理想情况下,考虑未来的大量使用的场景的话,每一个应用应该有独立的一条区块链。但是,开发公链的底层既没必要也浪费资源,目前位置公链的设计方案已经大体相同,而且开发工作量巨大,并且实际能做到的人也不多。
1.3b)公链的组成
我们可以看看从头搭建一个区块链需要什么:
1.数据层:数据存储的技术,主要是基于密码学的数据存储,实现交易安全,包括Merklle树、数字签名、散列函数、非对称加密技术等,将数据存在一个区块再通过链式结构,结合时间戳的技术按顺序相连接组成一条区块。
2.网络层:Peer-to-peer点对点的网络中节点沟通的机制,影响区块链的信息确认的速度,也决定了区块链的可扩展性
3.共识层:统一记账的方式,让分散的节点同意并确认账本的记录,确保区块链的安全性。
4.激励层:通过经济激励模型鼓励节点来参与区块链,也就是常说的挖矿机制,是区块链运行的基础
5.合约层:由以太坊为代表的智能合约可以开发并自动执行应用程序
6.应用层:面向用户的产品
1.3c)Tendermint共识机制
Tendermint其实是创始人JaeKwon在创造Cosmos之前创建的公司的名称,而TendermintCore是实际使用的软件,主要有两个组件构成:包含提供共识机制的TendermintCore,共识引擎,和适应大多数编程语言的接口ABCI。
在Cosmos的设计中,数据层和网络层归类网络层,合约层和激励层归共识层,合约和应用层归为应用层。对于开发者来说,最底层的网络层和共识层并不是他们想要开发的关键,而是开发应用层,负责业务逻辑来提供应用场景。Tendemint提供了通用的网络层和共识层,让开发者在在此基础上搭建自己的应用层。
TendermintCore作为一个通用引擎,能够安全的、一致的在链上记录交易,其中包含了网络层和共识层,网络层使用的是Gossip协议,模仿流行病传播方式在P2P的节点网络中传播信息的网络协议,也是比特币网络层使用的协议;共识层使用的是BFTPOS,我们可以看看具体的算法。
1.3c1)TendermintCore共识引擎:基于BFT的POS共识算法
其实每一个人都遇到过共识的问题,那就是和朋友一起吃饭的时候商量吃什么。只不过在区块链里面变成了节点一起商量下一个区块上面写什么。区块链允许节点随时加入或者离开,即使出现故障,网络里的节点依然能够正常工作。这是依靠提前制定的规则,这套规则就是共识机制。
中本聪首次在比特币的设计中融入了拜占庭容错(BFT),开始将学术界的容错机制引入到像区块链这种分布式计算,思考在不可靠的环境中建立一个可靠的系统的。JaeKwon是第一个真正提出将BFT研究应用到PoS的区块链中,并创造了Tendermint实现了他的想法。
BFT拜占庭容错机制
1982年,Lamport,Shostak和Pease首次提出拜占庭将军问题,一群拜占庭将军分别从不同的位置围困一座城市,需要决定进攻或撤退。但是处于不同位置的将军只能通过信使互相联系,如果这些将军中出现叛徒,那么叛徒可以向不同的将军发送不同的消息,比如向倾向于撤退的将军发送其他将军也打算撤退的假消息,扰乱大家的决定。
而让忠诚的将军在有叛徒的情况下,依然能够达成共识的机制的能力就被称作BFT,ByzantineFaultTorerance拜占庭容错。BFT保证在总的节点数为N的情况下,故障或者作恶的节点数为F,只要N>=3F1时,网络依然能够达成共识做出一致的决定。
网络的参与者不能确定是否有人撒谎,或者消息是否被修改,即使存在这些问题,参与者也能一起达成共识做出决定的系统就被称为具有拜占庭容错(BFT)。
POS权益证明
BFT描述的是在网络中运行达到共识的规则,POS描述的是参与网络的方式,也就是挖矿的机制。Proofofstaking权益证明作为挖矿的机制,要求共识的参与节点,被称为验证者,持有并质押区块链的原生代币,也就是Cosmos的Atom代币,将POW的以硬件算力的成本转换成持有代币的成本,期望获得手续费和区块的奖励作为回报。质押的代币作为保证金获得投票权,确保节点不是虚假账户发起女巫攻击。在参与共识的过程中,锁定验证者的保证金,避免验证者多次投票发生无利害关系问题,否则没收保证金。
共识机制
获得共识的流程主要是验证者在多轮的提议,预投票,和预提交过程中获得2/3的投票,成功后开始提交信息添加新的区块,将区块链的“高度”上加1,否则重新开始整个流程。仅参加提议、预投票、预提交的准备阶段被称为非验证人节点,或者轻客户端,确保网络中的所有节点都能监听消息;从投票到出块参与全流程的验证者也被称为全节点;开启每轮投票流程的验证者也被称作提议者,确保责任落实,根据质押的代币获得的权利越大,被选中的概率就越大。换句话说,投入越多,获得回报的几率就越大。
当然,并不是每一轮都会成功产生区块,提议者可能掉线或者延迟等情况下,整个流程就会重启。
同时,轻客户端可以验证交易的有效性。相比存储了完整区块链信息的验证者,轻客户端只需要定期下载部分信息也就是区块头,甚至不需要同步链上的所有区块头,轻客户端就可以通过区块的最终结果,跟踪参与投票的验证人的集合,验证是否有大于三分之二来自该区块的验证人进行了预提交。
当然,并不是每一轮都会成功产生区块,提议者可能掉线或者信息不符合标准,那么整个流程就会重新开启。
性能
中本聪共识及通过POW的方式,允许所有人加入成为矿工通过算力的比拼获得记账的权利,也就是出块。而Tendermint中会预设固定的节点,如果要增加的话需要至少2/3的节点的一致投票,同时为了防止节点过多达成共识变慢,tendermint的节点上限为100个,并且得出的结果具有最终确定性,这意味着在同样的输入条件下,输出的结果总是确定的,保证用户的交易是立即完成。而比特币可能出现分叉的风险。
上限100个的Tendermint的验证者可能被质押不够去中心化,不过,去中心化在区块链中应该是一种手段,而不应该成为目标本身。只要破坏系统的代价够大,并且有针对性的防御及惩罚机制,即使Tendermint的验证者是固定已知的,也不妨碍稳定、确定的达成共识。
TendermintCore作为提供网络层和共识层的共识引擎,是支持BFT的共识机制。这意味着即使有1/3的节点发生故障,包括黑客攻击和恶意攻击,Tendermint的网络也依然能够获得共识,正常工作。这意味着使用Tendermint共识引擎的网络在大多数情况下都能保证网络的安全运行,这是任何应用开始大规模使用的前提;同时是迅速的,出块时间约为1秒,保证同样的交易按照同样的顺序记录在链上
1.3c2)ABCI接口:解放开发者的接口
在Cosmos的区块链网络中,每条区块链都由Tendermint作为底层的通用的网络层和共识层,同时每个应用都能在应用层设计自己的业务逻辑。对于开发者来说,只需要通过ABCI,ApplicationBlockchainInterface应用程序区块链接口调用,他们可以直接在tendermint提供的共识机制上提供的最终交易上就可以构建应用程序。
ABCI:灵活的调用方式
ABCI,全称ApplicationBlockchainInterface,作为一个socket协议是一个调用的接口,不同于其他的区块链要求开发者学习并使用特定的语言,开发人员可以选择他们熟悉的语言进行开发。
我们看到的比特币、以太坊在设计区块链网络时都是采用的一体化的思路,每一个技术栈,也就是我们刚刚讲到的区块链的各个层级,都是一个相互链接和依赖的程序,无法单独拆开。
这种整体的架构在开发时容易遇到2个问题。
1)代码难以使用。比如说,比特币的一个堆栈里面就包含了待处理的交易池mempool,账户余额,用户权限等,如果想要单独拎出mempool就会变得非常困难,即使分叉也很难维护,变成面条式代码,和面条一样缠绕在一起混乱难以理出头绪。
2)限制开发语言。在以太坊网络中,EVM需要通过编译器将智能合约代码编译成字节码再上传到区块链之后才能执行操作,导致开发者只能使用EVM编译器支持的语言,也就是Serpent和Solidity。
功能类型
主要有3个ABCI连接应用层和Tenderint共识层,包括:
1)CheckTx:验证交易并提交到mempool交易池中广播交易
2)DeliverTx:提交给共识引擎处理并更新状态
3)BeginBlock/EndBlock:查询应用层的状态
abci协议包括几种不同的消息类型。Tendermintcore会创建3个ABCI连接到应用层:
在计算机科学中,通常不认为单体架构通常是一个好的做法。Cosmos把原来的需要从底层开始构建层层堆叠的区块链架构,变成了模块化的可自由组合的结构。就像是组装电脑一样,你可以把内存条,显示器,键盘,鼠标组装成一个电脑需要考虑添加具体的配置就可以开车上路了。而应用层的配置也提供了工具,CosmosSDK,一个允许开发者为应用场景自定义配置的框架,提供了新的开发范式。
一图总结Tendermint
1.3d)CosmosSDK:模块化的开发方式
区块链的本质是一个可以被复制的状态机,一个简化了事物因果关系的逻辑模型,可以给定某个条件来更新状态。比如说比特币就是一个可以被所有人下载的账本,新的交易成功后就会被更新到这个所有人都可以看到的账本。在实践中,大量的交易可以被打包并上传到链上修改账本的状态。
1.3d1)SDK模块设计
通过模块化的设计,SDK提供了通用的应用功能,每个功能能够独立运行、组合。管理。每一个模块也可以被看成单独的小状态机,开发者可以自定义状态以及改变状态的方式,并用KVStore的形式保存在Multistory里支持以后的使用。同时作为开源的软件,开发者可以通过项目实践,快速迭代。
SDK的模块是一个作为开发者能够为其他开发者提供的简洁、实用的开发工具,开发者可以放开手脚创作更多的应用。
运行机制
通过Multistore的机制来定义和维护应用层的状态,将应用层的状态划分到不同的模块,可以看作是独立的状态机CosmosSDK里内置的底层basepp里有ABCI的接口可以直接调用适应所有应用类型的Tendermint共识机制,经过CheckTX的验证非攻击后提交到mempool交易池,在验证节点达成共识成功出块后交易被打包上链,通过DeliverTx成功修改状态,即交易成功。
通过DeliverTx的功能收到字节形式的交易后,解码提取消息,在验证交易相关的信息后,比如是否有签名,再推送到对应的模块处理,最后更新状态。更新后的状态由SDK里的Multistore的功能保存,并且还可以把信息切割开来对应到不同的模块。
1.3d2)SDK模块功能
现有模块提供的功能
Account模块:司账户管理的account模块
Bank模块:司转账交易
Staking模块:司代币质押
Slashing模块:司惩罚策略的slashing
Distribution模块:司奖励分配的distribution模块
Supply模块:司新币生成的
Gov模块:司链上治理
基本上涵盖了应用层的必需功能,而开发者可以直接使用这些车轮开发自己的汽车了。
兼容性
SDK支持开发者使用第三方的模块,但是需要做一些安全检查保证各个模块可以互相适配。
IBC协议和SDK是独立运行的,使用CosmosSDK模块并不强制要求绑定到Tendermint的共识机制,开发者可以根据自身的诉求选择底层的共识协议,而后文介绍的IBC模块则在一定条件下链接不同共识算法,比如,比特币和以太坊这两大公链。
Object-CapabilityModel支持对象模型
CosmosSDK支持对象能力模型,可以让每一个模块的运行逻辑被保存在Keeper的功能里,通过调用Keeper,模块存储器件,就可以在相应的应用中读写。这意味着,即使有未知的或者恶意的攻击,在不需要了解具体代码的情况下,也可以对引用的对象和链接的分析从而保证系统的安全,只要引用的对象之间产生了链接。
这个叫做keeper的逻辑控制可以藏在幕后,隔离不同的代码,最终提高系统的安全性。对于应用的架构开发者可以更清晰的梳理代码的功能、逻辑、链接,因此可以更容易的定位问题,适配其他语言,甚至更多的优化。
采用Cosmos构建的应用都有独立的应用层,共识层以网络层,开发者可以选择网络层的验证者,建立自己的社区以及经济体系。如果使用默认的共识层TendermintCore,开发者可跨多个cosmos区块链使用可以选择自己的验证者。而说基于CosmosSDK构建的公链已经有了BinanceChain,Terra,还有Kava等大型公链提供服务。
开发Keplr钱包的Josh曾经总结过,使用智能合约是租房,使用CosmosSDK开发才是建造属于自己的房子。
1.3e)IBC跨链协议:区块链互联网的TCP/IP协议
IBC跨链协议是CosmosSDK其中一个模块,使用CosmosSDK构建的应用都可以通过升级兼容IBC协议,和我们平常升级手机软件一样。
IBC,全称InterBlockchainCommunication区块链间通信协议,统一了在不同的区块链之间跨链沟通的标准。可以理解成战国时期秦国统一度量衡,或者用Tendermint的前首席研究员SunnyAggarwal的话则是,IBC是将运输货物的集装箱标准化,实现全球经济贸易。
1.3e1)跨链协议设计
单条公链提供的功能和场景有限,因此需要跨链才能满足更多的需求,比如你在美团上点了外卖之后通过支付宝支付。跨链本质上是一种把数据安全、可信地转移到另一条链,并达到预期效果。
参考互联网的发展历史,脱胎于阿帕网,ARPANET,是第一个是实现计算机远程通信的网络,但是依然只能在有限的规定节点中传输信息。直到TCP/IP协议,或者称为互联网协议套件,InternetProtcolSuite/IPS的网络传输协议,提供了不同计算机之间如何传达和接受信息的标准机制,才形成了我们现在使用的互联网。在TCP/IP之上,还需要其他的协议来保证不同类型的传输,比如说网页采用HTTP,电子邮件需使用SMTP等。
IBC协议作为跨链的标准,提供了:
1.互操作性
IBC协议作为跨链的基础,在此之上可以实现真正的跨链互操作,包括:
1.)资产跨链:将不同链上的资产转移到目标链上,比如把ETH转账到ATOM链上
2.)信息跨链:从其他链上获取信息并使用,比如抵押以太坊链上的资产后在Cosmos上借贷
跨链的价值不仅仅体现在代币的价值上,还能带来真正的区块链构成的互联网,就像我们现在使用的互联网
2.安全性
功能越少,出现能够被攻击的安全漏洞的可能性就会越小。且IBC假设不同的链互不信任,IBC协议的安全来自Tendermint共识的最终性,而我们前文所讨论的BFT的安全性和轻节点的验证功能能给予足够的安全性,没有再引入其他的可信任假设。
3.通用性
对技术的追求可能没有尽头,但是技术作为服务需求的工具,最终的判断来自于用户。所以一个技术被采纳时,选择的可能不是最好的技术,而是选择最有用户基础的技术。类似互联网技术的发展历程,TCP/IP网络技术被提出之后,也出现过性能更好的解决方案,但都没有被整个网络所采纳。区块链也是一样,除了对技术的研究,需要用户需求的技术才可能被接纳。
IBC协议从通用的角度仅对应用层提出最少的要求,有利于IBC协议广泛部署,当越多的区块链加入IBC的标准,IBC成为真正的跨链标准的可能性就越大。
4.兼容性
作为通用标准,IBC需要适应各种类型且互不信任的区块链。确保区块链作为状态机的结果是确定的,即无法撤,才能保证通信的正确的执行。这意味着区块链必须具有提供最终确定性的共识机制才能兼容,目前POW的比特币和以太坊还不支持,但是通过后文介绍的GravityBridge也能实现跨链。
1.3e2)跨链协议内容
类似于TCP/IP协议定义了不同的计算机在传输信息是采用了IP地址、端口号、协议号的结构来传输信息。
IBC协议里,类似于定位计算机的IP地址是channelID,定位应用程序的端口是portID,再加上客户端同步信息构成了标准化沟通信息的方式。简洁的协议减少了跨链通信带给链本身的负担,没有过多约束参与跨链通信的应用本身,更加灵活。
PortID
每一个模块化的应用程序有一个特定的端口,称为PortID
Channel通道
首先每个模块需要建议使用IBC通信协议的通道,并且可以建立多个通道,避免当个通道信息过载。初始化通道时,遇到错误的返回也可以拒绝通道。
同时通道可以保证交易的有序性,理论上也可以支持无序的通道,方便验证有效性。
Port端口
每个模块都可以绑定任意数量的端口,在和其他模块建立通道时可以使用不同的端口ID,可以适应不同的应用场景的信息。
轻客户端
轻客户端需要同步对方的区块头信息,实时跟踪对方的验证者集合来验证交易的有效性和合法性,支持使用CosmosSDK构建的同构区块链
Handshake握手连接
在建立通信之后,需要确认操作模式,达成协定之才可以进行的信息的交换
1)A链发起跨链到B链的OpenInit请求,等待Relayer接收到该请求。
2)Realy收到OpenInit的请求之后,构造OpenTry的请求发送到B链上。
3)B链收到OpenTry请求之后,同意并确认之后生成OpenACK数据包,并由Relayer按照同样的方式发送给A链。
4)A链通过OpenACK数据包判断此次握手是否成功,成功则发送OpenConfirm并把包含信息的数据包返回B链,成功传输信息;否则握手失败
Packet数据包
定义了跨链通信的必要信息,包含发送和接收方的channelID,portID,sequence序列,还有TimeoutHeight,TimeoutTimestamp的超时机制。保证在某个时间前完成交易,否则可以退回,防止资金长时间冻结。
跨链交易
如果用户需要从A链跨链转账100个ATOM到B链,那么交易流程则是
1)验证轻客户端验证资产是否合法有效
2)A链发送证明ATOM已被锁定
3)B链验证A链的证明
4)B链创建100个AMT的Voucher抵用券,可以流通使用直到返回A链后用来解锁原来的100个ATOM
实际上,跨链交易只是两条链上的资产的所有权的交换,BTC仍然在比特币区块链上,ETH在以太坊区块链上。BTC离开比特币区块链就失去了价值,而交易实际上把BTC作为资产的价值进行转移,在Cosmos的模式下,资产本身就能在链上转移。
1.3e3)跨链协议对比Vs.PolkadotXCMP
XCMP协议
XCMP,全称Cross-ChainMessagePassing跨链消息传递协议,平行链插入波卡的中继链成为多链网络中的其中一条链后通过此协议接入同一中继链的其他平行链跨链沟通。
XCMP运行机制
在平行链收集交易并提交到候选的区块的节点被称为收集人,在中继链验证收集人提供的候选区块完成交易,也称为出块,的节点被称为验证人,通过XCMP协议收集人可以发送和接受其他平行链的消息。
如果一条平行链,A链,需要发送消息到另外一条B链,那么:
1.质押代币DOT使用XCMP协议来打开一个A链到B链的是一个单向通道发送消息,接受消息需要另外的通道,消息传递后关闭通道时可返还押金。
2.A链上的收集人会把消息、收件人、时间戳一起放到A链的输出队列中。
2.B链的收集人通过Gossip机制的网络传递消息时会发现这条消息并放到输入队列中,并且这条消息在A链和B链的验证人中都会保存确保合法有效
3.B链的收集人提交消息给中继链的验证人,验证人确认后将信息放到中继链记录消息并出块,完成消息传递。
使用XCMP发送的消息可以包括任何的数据和消息,也就是说支持资产跨链和信息跨链的跨链互操作性,比如跨链调用合约的跨链这意味着。
但是按照目前的多链生态,可以预见跨链交易的大量增长,而每次使用波卡的XCMP跨链都需要质押DOT使用一次性的的通道,有一定的成本并且会牺牲效率。目前XCMP协议还在开发中,还需等待上线后查看实际效果。
Polkadot的XCMP协议通过中继链维护全局的安全性,而简洁的CosmosIBC协议从设计上降低了跨链的成本,IBC协议更像是WTO的全球贸易的协定,任何国家都可以自由的建立多边贸易协定,开启全球贸易。
Cosmo团队喜欢把IBC协议比喻成集装箱标准,标准化的集装箱可以在世界上任何一个港口交易,而Cosmos的IBC协议把跨链的信息标准化,让Cosmos的网络中的区块链也可以交流,交易。而在这个经济一体化的网络中,CosmosHub就是这个网络的枢纽。
1.3f)CosmosHub:价值枢纽
Cosmos的网络采用的是中心辐射模型,Hub作为网络中的中心枢纽,连接其他被称为Zone的区块链。Zone可以连接到Hub并记录每条公链作为Zone的状态,在交换信息时,Hub和交互双方这三个独立的区块链中都会留下记录。
其中,CosmosHub是网络中第一个区块链,基于CosmosSDK开发的CosmosHub也是为Cosmos多链网络中的第一个枢纽。
1.3f1)Hub:交通枢纽
IBC协议可以让每一条公链都互相连接,但是这种做法不具备扩展性。如果网络中有10条链,每条链都和其他的链互通的话,会产生45个链接;如果有100条链,两两相链就会产生4950个链接。显然,这种做法是不可持续的。
换一种思路,把所有的链串联起来,那么10条链只需要9个链接,100条链只需要99个链接。虽然复杂程度显著减少,但是信任的风险却增加了。当A链接到B,B链接C,那么如果从A链到C链的话就必须同时信任A链和B链才能保证C链收到资产的安全,验证非常复杂且容易出现安全风险。
同样的问题我们也可以在现实世界中找到解决方案,比如航班规划。理论上从任何机场起飞你都可以到达目的地,但在成本、收益、效益的考量下,最终还是会看到主要的枢纽机场作为中转站出现。CosmosHub就是网络中的枢纽。
运行机制
CosomosHub采用中心辐射的模型,每一个区块链作为分区Zone与Hub直接通信,Hub会同步更新所有Zone的区块头作为验证的信息,不同的Zone就能通过Hub通信。Hub作为枢纽能够收到所有Zone的状态和信息,也就是说Hub记录着每一条区块链作为账本的余额和交易记录,避免出现双重支付问题。当Zone1想要跨链转账到Zone2时,Zone1向Hub发送这个转账的消息后,Hub会向Zone2证明转账的消息无误,Zone2通过存储在Hub上的区块头验证消息合法后实现转账。
可升级
当网络出现新版本或者需要更新配置的时候,所有的验证人都需要同时转移到升级的区块链,在其他的区块链网络可能导致硬分叉的出现。而在Cosmos网络的区块链,也就是分区,只需要通过接入Hub将现有分区的用户转移到新分区上即可成功升级。
HubZone的模型让Cosmos能够安全的扩展网络,即使网络中有100条,甚至更多的区块链也能够实现互操作。
1.3f2)Hub:价值枢纽
区块链的安全
区块链通过共识机制验证的数据难以篡改,从而保证了数据和交易的安全。使用POW机制的网络,比如比特币,安全性由矿工提供哈希算力提供,只有掌握了整个网络51%的算力才能发起攻击篡改数据,也被称为51%攻击。目前比特币的网络的规模十分庞大,导致聚集51%算力非常难,并且,即使能做到成本也相当的高,所以POW共识的网络的安全性较高。
但是如果一条小型链的算力较少,那么遭受攻击的可能性就会很大,网络非常的不安全。同理,使用PoS共识的网络也面临同样的问题,但是安全的保障从算力变成了质押的保证金。在PoS网络中,验证人通过质押保证金获得验证产出区块的权利,同时提供安全。质押的资产越多,安全性就越强。如果一条链规模较小,节点质押的资金较少的话,那么节点作恶的成本和攻击者的成本也会降低,网络的安全会大打折扣。
跨链安全的必要性
如前文所说,Tendermint作为基于BFT的POS共识机制,需要链上总质押资产的2/3的验证者达成共识,换句话说,如果要发起攻击,攻击者的成本就是2/3的链上总质押的资产。举个例子,一条链上的验证者总共质押了1000万美金,如果链上聚集了5000万的资金,那么理性思考的验证者就会选择盗取5000万的资金,只需要最少700万的美金,就能获得5000万-被惩罚没收的700万=4300万的回报。
提供安全的做法是增加作恶的成本,有两种做法
1)保证链上质押资产和链上的TVL的比例在相对安全的范围内。
2)允许拥有更多质押资产的链,比如Hub,分配资产给其他质押资产较少的链提供安全。
每个链上提供的应用场景不同,能够捕获的TVL也有限。但是对于互通的Cosmos生态来说,保证每个分区的安全才能确保整个网络的安全,所以通过将资本分配到质押资金较少的链上来提供作恶成本对整个网络都是有意义的。
分区的链可以在自己链的原生代币上的基础上加上Hub的质押资产,节点的作恶成本也就从原链资产上变成了原链资产加上Hub的资产的总和。
跨链安全的价值
在2022年2月即将上线的跨链安全对Cosmos带来的主要价值是
1)保证Hub的极简主义:**精简的功能带来的是安全的提高,因为可能被暴露的安全的漏洞就越少。并且,简洁的功能更能精准的服务目标用户,避免同时服务不同需求的用户。**比如Defi的用户喜欢的功能不一定会让Gamefi的用户开心。同时模块化的设计可以将提供某个应用功能的模块拆解成独立运行的区块链并使用相同的验证人的集合,即使受到攻击,Hub也可以正常运转避免停摆
2)降低开发和运行公链的门槛:公链首先要确保的是安全。当资产和数据的安全能够得到保障,用户才会开始成为公链的用户。而维护公链的成本,如前文所描述的,是需要大量的资金的。如果开发者能够提供很好的应用场景但是缺乏足够的资金冷启动,就可以通过跨链安全来获得。
3)保证Cosmos网络的安全:通过共享验证人,Hub把Cosmos里的分区的区块链绑定在Hub,变成了利益共同体。木桶原理也适用于链接各个分区的Cosmos的网络,Cosmos的网络安全取决于最弱的分区,而跨链安全保证了最弱的分区也可以租赁Hub的安全,实际上将hub的安全性补全了较弱的区块,确保了整个网络的安全。无论分区的应用场景能够提供多少的经济价值,作为Cosmos网络中的参与者实际都会是整个网络安全的受益者。
值得一提的是,CosmuoHub网络中担任中央账本的功能可能会影响去中心化,但是每个人都可以运行自己的hub,不同的分区也可以组成局域网并运行独立的Hub,不一定需要通过官方的cosmoshub。
网络无需权限,任何人都能创建枢纽区块链或分区,并有权拒绝其他区块链的连接,形成自己的局域网。同时分区的局域网之间也可以互相通信,保证内部通信不受外网影响。Cosmos网络可以是一个试验田,开发者和用户都可以尝试不同的社会和经济形态。
1.3f2)Atom:价值捕获
CosmosHub的原生代币是Atom,成为验证者需要在Hub上质押Atom作为保证金来获得挖矿的权利,并获取手续费和交易收入。Hub上的验证者不仅可以为Hub出块获得收益,还可以申请为其他分区的链出块收获额外收益。一旦节点作恶,Hub就会通过Slashing惩罚机制没收Atom
提供跨链安全的方式
分区的链可以随时向Hub请求验证,提供预期的交易费作为相应的奖励;Hub上的每个验证者可以申请验证分区的链并质押Atom在Hub上开始工作。验证人可以同时运行多个节点,一个负责为Hub验证交易,剩下的节点可以为其他的分区出块。
经济模型
$ATOM是CosmosHub是的治理代币,通过质押Atom可以同时成为Hub和其他分区的节点获得奖励和交易手续费,包括Atom和其他分区的代币。从创世块开始,Atom总量的1/3将会作为网络验证者的工作奖励。
初始供应量2亿枚,Atom采用通胀模型,第一年按照7%增发,用于节点等奖励,之后每年增发比例会每年的抵押率波动:如果总质押的Atom小于供应总量的2/3,通胀率上升到20%;如果总质押大于供应总量的2/3,通胀率将会减小到最少7%。
目前总流通量达2.86亿枚$ATOM,总市值达84亿美金,在1月21日录得最高市值119亿美金。Atom的价值是节点作恶的很大一部分成本,而Atom的升值则通过增加作恶成本上给Cosmos的网络安全提供了一定的保障。
当越来越多的区块链加入Cosmos的网络,不同的信息、资产、交易通过CosmosHub交易,而Atom是Hub作为交通枢纽和价值枢纽的货币,则是Hub上不断增长的交易规模的捕获方式。
治理机制
区块链网络,作为软件的迭代、升级都是不可避免的,而如何进行改动以及应用就需要治理机制。Cosmos团队在《Cosmos中的Hub治理机制流程》解释了独立的治理机制:
现实世界里混杂着形形色色的经济体系,公司,政府,国家,每一个参与者可能都有着不尽相同的目的,区块链也是如此。源于哲学或者思想的分歧已经造成了比特币的分叉,以太坊的社区有时也难以达成共识,在某些情况下甚至影响了以太坊的升级。
Cosmos认为没有一套普适的规则能够完美的适应这个网络中的每一个区块链的应用场景,所以每一个分区的区块链都可以独立的运行自己的治理机制。持有Atom的人都可以发起针对Hub或者Zone的治理提案,可以是软件的更新,区块的手续费,甚至安全政策等机制进行改变,Zone或Hub的验证者和介绍对提案进行投票,为的用户和开发者提供了自由,可以不加约束的试验潜能。
1.3g)异构链通信:兼容以太坊
除了采用CosmosSDK的同构公链,其他异构公链也可以连接Cosmos生态,而在现有的区块链中,Cosmos最先实现的是和以太坊的通信
显而易见,作为开发者最多的生态,以太坊的兼容可以让更多的开发者加入Cosmos的生态并吸引更多的用户。
区块链的分类:
1.提供最终确定性的链:区块链上的状态都是确定的,即交易不可逆,比如基于Tendermint共识的区块链。在任意时刻,从创世块开始的每一个区块可以被复现推演。
2.基于概率出块的链:区块链的中网络参与者只能根据不同链上的比例,以一定的概率认为某条链是主链。比如说,使用POW的比特币,只能通过确定区块在最长链上来确认交易,通常需要等待6个区块确认,也就是最长链规则。
如前文所述,IBC跨链协议的前提是确定的交易,毕竟你只能在自己的链上确定了交易之后才能和别人进行交易。所以在连接其他非确定性的区块链时,比如以太坊,Cosmos提供GravityBridge桥接以太坊的原生代币,加上EVMOS支持以太坊的智能合约的运行。
1.3g1)GravityBridge:Cosmos与以太坊的跨链桥
跨链桥是允许在不同共识机制、代币标准、治理模型的区块链之间转移资产和数据的方式,将资产保留在原链上,并在目标链释放资产,并定义托管以及解锁资产的条件。在2022年1月19日成功部署的GravityBridge桥接以太坊和Cosmos,通过IBC协议支持基于CosmosSDK的链和以太坊之间转移资产。
Althea团队作为Cosmos开发者生态里的成员,在基于Cosmos白皮书中PegZone,一个代理桥可以连接Cosmos和其他不具备最终性的区块链,的基础之上开发无需许可的跨链桥,GravityBridge。同时,GravityBridge作为专属于Cosmos和以太坊的跨链桥,不是直接作为CosmosSKD的其中一个模块,而是一个独立于Cosmos生态的区块链,并拥有独立的代币用来激励用户和验证者。GravityBridge将拥有自己独立的验证者负责网络的维护和安全,同时通过Cosmos的共享安全,持有Atom的验证者也可以为GravityBridge出块提供服务。
在跨链桥的设计上,可以分为:
1)基于信任的桥,引入信任的检查者来执行:比如AvalancheBride的跨链桥要求信任的见证人使用MPC技术,SecureMultiple-PartyComputation也就是隐私计算中的多方安全计算,确保交易的有效合法,把跨链交易变成了了一个普通的链上的交易流程。
2)无需信任的桥:GravityBridge首先将需要转移的资产锁定在原来的链上,在验证了资产的有效性后,再把资产映射到目标链上作为资产使用。
作为一个无需许可的桥,GravityBridge的治理将以DAO,去中心化的组织,的形式展开,并且DAO将持有一半的代币将来用于空投,生态发展,和流动性挖矿
1.3g2)EVMOS:Cosmos的EVM中心
Evmos,即EVMonCosmos,起源于Cosmos中最早构思兼容以太坊EVM的Ethermint,是一个包含了CosmosSDK,Tendermint共识,和EVM兼容模块的区块链,即将在2022年1月下旬上线。
EVMO:以太坊枢纽
Evmos作为兼容EVM区块链,在Cosmos生态中可以作为Hub连接特定应用场景的以太坊链,比如支持Defi去中心化金融的链,或者支持NFT的链,让每个应用场景都能在独立的区块链中获得最大的支持。
同时EVMO和IBC都将支持以太坊的代币模式,ERC20,这也意味着在Cosmos生态内通过IBC通信的其他非EVM兼容的链也可以和以太坊的生态互操作。换句话说,Cosmos生态和以太坊生态就可以实现互操作了
而且今年即将升级的CosmosSDK的升级可以允许Evmos的兼容链获得跨链安全,EVMOS作为Hub就可以为其他兼容EVM的分区的链提供安全。
经济模型:社区共享价值
虽然以太坊生态中,只有维护网络的矿工可以获得区块奖励,但是Evmos奖励所有为Evmos生态的参与者:
质押奖励:40%
团队归属:25%
使用奖励:25%
社区奖金池:10%
同时还对生态产生价值的行为进行奖励,包括:
用户手续费返利
流动性挖矿奖励
智能合约收入分润
IBC中继器返利
可以把Cosmos,Polkadot,Avalanche,分别看成淘宝,天猫,和京东,有专业定制的Avalanche可能吸引更多企业用户,有安全成本的Polkadot可能吸引更多有资金支持的开发者入驻,Comos则是允许万物生长的淘宝。
各种商家入驻,带来各种类型的流量和用户,最终留下的蓬勃发展的互联的区块链生态。技术可能有更好的解决方案,但是最终被采纳的方案一定是符合实际需求的技术。
如果只是寄希望于一个区块链能够满足所有的需求或者技术场景,那么大概率这个希望会落空。其实多链的网络并不一定只有一个赢家,Polkadot和Avalanche也可以作为Cosmos生态的分区生态给月开发者和用户都更多的选择。不过,COSMOS其实仍然是相对年轻的尝试,目前依然是运行在轻节点的框架协议,更像是网络的HTTP通信协议,还没经受网络攻击或者用户涌入的检验。也许给予足够的时间,Cosmos正在按照自己的路线图一步一步实现他的愿景。
Web3.03.1)多链的世界:无限扩展的模块化区块链
公链承载的流量是有限的,在一个公链上实现所有的应用场景是不现实的。当主流人群采用区块链作为底层的技术时,我们可能需要不同的链针对不同的应用场景进行设计,而模块化的区块链使得搭建区块链变得简单
3.1a)区块链设计:不可能三角
在区块链的设计中,有一个著名的不可能三角,即:
1)去中心化:是否有集中化权力中心,主要以节点的数量来衡量
2)可扩展性:数据吞吐量是多少,主要以TPS,TransactionPerSecond每秒事务处理量来衡量。
3)安全:是否能够低于网络攻击,包括女巫攻击、DOS等
所有的公链从设计上都试图在一条主链上同时实现这三个目标,都只能在这三者中去其二,比如在模块化之前的以太坊等公链,在保证了去中心化和安全的同时只能牺牲可扩展性。并且大多数的区块链设计是以一体化的方式设计,也就是单片式区块链,很难在不影响其他功能的同时提供某一种性能,直到可拆解、可组合的模块化的区块链设计。
模块化的设计将区块链从这个不可能三角中解救出来,让不同的模块负责不同的目标,通过组合模块完成目标,而不是要求一个模块完成所有目标。当区块链可组合,可扩展,越来越多的区块链可以提供更多的应用场景,支持越来越多的人使用区块链,作为底层的区块链技术才可能支持未来的Web3.0。
3.1b)区块链设计:专业化分工
不管是去中心化,安全性,还是可扩展性,这些性能都是描述区块链的工作过程的结果。我们在前文所述的工作流程可以概括为:
1.共识:让参与网络的节点达成一致,每个节点都按照相同的顺序复制同样的结果,决定了区块链的去中心化程度和安全性。可以理解为交易的确认。
2.数据可用:当节点完成共识并得出结果后,链上有足够的空间可以保存并且对所有人都可以使用,可以理解为交易的清算。
3.执行:完成所要求的功能并将新的结果上链,执行的速度决定了区块链是否可扩展支持更多的交易。可以理解为交易的结算。
虽然大多数的区块链都是将三种功能放在同一条链上进行执行,但是以太坊已经开始探索通过Layer2,也就是在保留以太坊的共识和智能合约层的同时新添一层独立的结算层解决扩展性。这其实就是区块链的分工化设计。
经济学之父亚当·斯密早在18世纪就提出了现代经济的基础是分工,区块链也同样适用。模块化的设计将区块链拆成不同的组件,每个组件都可以优化,再组合成区块链。区块链设计从此进去模块化时代,搭建区块链也可以像搭建积木一样,我们可能迎来指数级的效率增长。
Solana,但是从数据表现来看以太坊依然是占据着绝对的主导地位。
金融的可组合性还有一个大的前提需要完成,那就是跨链的信息互通。现在各个公链都是根据自己链上生态的资产和信息决定价格,像是数据孤岛。虽然有预言机能够提供市场价格,但是现在的市场和技术尚未成熟。链上危机四伏,安全事件几乎从未停止。
3.2a)分割的战局:流动性浪费
但是对于金融市场来说,资产定价的底层是流动性,流动性的前提是信息对称。在资产流动前需要信息的流通,市场的有效就基于市场的价格能多大程度的反应影响市场的信息。显然,基于风格的区块链上的市场信息在缺乏有效的沟通渠道上依然存在着价格偏差。
虽然有大量的工具和机器人存在链上能够在发现跨链的价格不对称套利拉平价差,但是这些只是基于利润的短期套利,并没有真正的让资产流动在不同的链之间,本身还是在于不同的链之间并没有建立跨链的资产交易通道让资产可以在两端互相流通。
多链的生态导致流动性割裂,每个链都沉淀了一定的流量和资产在链上。但是不同的公链之间缺乏沟通渠道使得这些资产无法流通。同样的资产缺因为不同的链的映射方式而变成不可交易的资产,或者说交易成本过高的资产,过高的交易摩擦造成了流动性浪费。
3.2b)跨链通信:重构金融网络的第一步
区块链技术正在重构新一代的金融基础设施,从提供流动性的交易所和资本的借贷市场,到提供风险管理工具的利率对冲,期权,期货市场等都只是金融系统里的拼图的一部分。完整的金融市场是一张完整的拼图,当资产能够自由的从借贷市场,流通到货币市场,或者更高风险的资本市场时,金融系统才算形成。而这些流通的渠道,而cosmos通过IBC协议和桥构建的网络提供了金融网络流通的渠道。
3.2c)多链的Defi:应用前景
当不同的链之间的资产可以流动,我们或许可以发现新的应用场景:
1)跨链借贷:借贷是金融系统中最底层的需求,为交易者提供流动性去参与金融系统中所提供的各种各样的投资和收益机会,不论是基于什么链,还是什么标准的代币。当前的用户可以在以太坊上抵押ETH,在Cosmos上接触Atom,在Gravity上的DEX,去中心化交易所,获得固定甚至投资更高的收益,大大增加不同链上的流动性,打开新的交易机会。
2)信用评分:当用户在不同的链上都留下部分记录,比如以太坊上是借贷,Cosmos上是存款,那么在不同的链上的行为就只是组成用户的信用的一部分记录。当所有的借贷信息,交易信息可以汇总进行分析,可以帮助不同的金融机构针对不同风险偏好、资金实力、交易策略的用户提供不同的解决方案
3.3)多链的社交:统一的身份
现实生活中,我们在公司上班,在银行贷款,在画廊逛展,我们可能拥有不同的身份。在Web2中,我们每一个人都拥有一个微信账号、支付宝账号、抖音账号,但是这些都是独立的账号,你需要记忆这些账号信息并且你在这些应用上的行为也不能在其他的平台上展示。比如你并在微信上的朋友并不一定能发现你是抖音上的搞笑视频博主。
在多链的世界中,这些行为都可以链上记录并展示,这些数据可以包括金融的资产,交易的行为,参与的活动。不同于传统社会中细碎的、散落的、破碎的数据存储,链上可以就可以看到你的身份,你的兴趣,你的经验,你可以发现和自己收藏同一个NFT的艺术爱好者,也可以找到一起玩游戏的玩家。
3.3a)多链的社交:应用前景
Web3的社交3.0时代里,,那人与人之间的沟通、合作、社交会不会发生其他的改变
1)DID,DecentalizedIdentity去中心化的身份标识:一个人可以不只是defi世界的金融高手,也可以是一个gamefi的游戏王者,甚至是NFT的创作者,而这所有的身份都可以通过一个ID体现。你所有的社会属性,工作技能,艺术品味都能通过DID被被人发现和认可。
2)DAO,DecentralizedAutonomousOrganization去中心化组织:DAO的去中心化的治理让人们真正的参与到社区的形成、治理、和生产,过程透明,给予了社区成员参与的权利。成员既是这个社区产品的用户,也是塑造这个社区的团队,这些通过而这吸引到了更多的人群想要参与。
总结?
程序员总梦想改变这世界,中本聪用比特币做到了,vitalik用以太坊做到了,提出Cosmos网络的Jaekwon是不是也能用cosmos做到呢?
从2014年开始构思的Cosmos网络,可以说是Righttechwrongtime,生不逢时的Cosmos在8年之后再次回到了聚光灯下,这次会不会是righttechrighttime呢?
技术就是这样的,可能某一个拐点出现了,然后就进入了一个爆炸式的增长。这个拐点可能非常快就发生,也可能几年后才发生,我们无法判断什么时候会发生,就像我们无法想象这会带来什么样翻天覆地的变化。但是当我们身在其中,我们可能会发现,原来回过头去看,有些事情注定会发生。
据NewsBitcoin1月30日消息,多个部委、监管机构和执法机构已经制定了加密货币路线图,该文件旨在在今年年底前规范俄罗斯的加密货币市场.
“波卡知识图谱”是我们针对波卡从零到一的入门级文章,我们尝试从波卡最基础的部分讲起,为大家提供全方位了解波卡的内容,当然这是一项巨大的工程,也充满了挑战.
Gate.io今日已正式上線PENDLE、PLACE、SENATE、ALPH、PAF多個幣種USDT、ETH交易對礦池,並開啓新版流動性礦池獎勵.
头条 以太坊和IPFS的API服务供应商Infura已恢复运行以太坊和IPFS的API服务供应商Infura已恢复运行.
尊敬的WEEX用户您好!新春虎年行大运万元红包等你拿 活动五:天天空投发红包 活动方式: 活动期间每天抽出10位有完成合约交易的用户随机送8、18、38、68、88USDT,不限币种金额.
Gate.iowilllistPrism(PRISM)at04:00AM(UTC),onJanuary31,2022.Tocelebratethelisting.