迷你世界野人怎么驯服|loxx迷你世界|
文章阅读页通栏

《读懂区块链PoS共识》第十章 PoS项目例子-Cosmos

来源: 区块链卡咩 作者:卡咩
项目介绍 Cosmos的中文翻译是宇宙,之前看过一个讲宇宙起源的纪录片《宇宙时空之旅?#32602;琁MDB的评分非常高,也叫Cosmos,其中展示了整个宇宙的浩瀚和壮......
项目介绍

Cosmos的中文翻译是宇宙,之前看过一个讲宇宙起源的纪录片《宇宙时空之旅?#32602;琁MDB的评分非常高,也叫Cosmos,其中展示了整个宇宙的浩瀚和壮阔,令人震撼。我想项目方给项目起Cosmos这个名号也是有原因的,象征着区块链世界的浩瀚广阔。

Cosmos?#30446;?#21495;喊的很大,大概是我见过最有理想气息的区块链项目。
The Internet of Blockchain 区块链的互联网

同时跨链明星项目的Polkadot,其中开发团队的一篇博文中也起了一个旗鼓相当?#30446;?#21495;
The Foundation of a New Internet 一个新互联网的组织结构

这两个跨链项目,无疑都在争夺的是同一个角色的位置,那就是区块链世界最底层架构。这个角色的重要性可以追溯到整个互联网的起源时代,类似于奠定互联网基础协议的TCP/IP协议。TCP/IP这个协议规?#35835;?#25972;个互联网初期的数据传输标准,提供点对点的链接机制,将数据应该如何封装、定址、传输、路由以及在目的地如何接收,?#25216;?#20197;标准化,对现代互联网奠定了非常重要的基础。

如果我们认为区块链是下一个互联网时代,未来也是多链共存的这么一个情况,那么提供基础架构/协议支持多链互通是一件非常重要的,而且是必然会发生的一件事。

Cosmos作为跨链项目最早的参与者,最早可以追溯到2014年,到目前为止已经发展了5年,2019年Q1预计会上线主网。

Cosmos的愿景是实现代币最底层的价值交换,即Token交换,让Tendermint共识成为人们值得信赖的“第三方?#20445;?#26469;保证价值互换的安全性,取代目前中心化交易所实现价值交换的方法,消除暗箱操作?#30446;?#33021;性,让密码学为安全做背书。

插件化,模块化是Cosmos一个典型的特点,可集成性让众多基于CosmosSDK搭建的项目获便利了许多。项目开发方恶意自由定制相关模块,也可以直接使用和Cosmos hub一样的机制,这是Cosmos希望作为中心的一种市场策略,即尽量降低项目方接入的成?#23613;?#30446;前,从Cosmos论坛上看,选择使用Cosmos SDK搭建的项目已经超过50多种。

模块化,插件化只种,Tendermint就是Cosmos中一个很重要的插件,也是Cosmos团队的第一个重磅产品(SDK)。基于该SDK开发的区块链项目可以使用和Cosmos一样的共识,并可以使用SDK中的IBC(Inter-Blockchain Communication)模块和进行其他连接公链进行价值交换。所有交换都会指向到一个中心(Cosmos Hub)区域,Hub是Cosmos中一个中心记账本,接受IBC传递的信息并记录,最终实现多链之间的价值互换,其中的安全由Tendermint Core来保证。

其他重要的模块化还包括Stake模块,奖励分发模块,IBC模块?#21462;?/span>

基于Tendermint共识建立的项目,需要自己的验证人体系,这和Polkadot的分享验证人机制不同,Polkadot有类似于Cosmos的hub,叫Relay Chain,其中心的验证人可以帮助连接的侧链做区块验证,而Cosmos的hub只是承担记账中心的功能,没有帮助侧链验证的功能,这是两者非常不同的一种策略。

Cosmos测试网跑了大概2年时间,也一直在修正roadmap,我在写这本书时,Cosmos已经完成测试网的测试,正在进行最终上线前的代码审计。

代币情况

Cosmos是一个双代币结构的区块链,主代?#39029;?#21495;为Atom,主要用于Stak;次代?#39029;?#21495;为Photon,主要用于流通性。ICO主要是众筹的Atom,其总量为68,475,963个,Photon总量不定,按照ETH1:1数量锚定。

总共1090人参与了Atom的众筹,整个募资结构分为ICF 基金会(10%),AIB 开发团队(10%),Initial Donors 战略投资伙伴(5%),ICO (75%)。

Cosmos ICO 日期 2017 4月4号,30分钟募资结束,募资金额1700万美金左右,其中btc占1/3,eth占2/3,按照当时估值为一个Atom0.1美金左右。

Atom每年会有增发,增发率7%~22%,具体的比例根据当前Atom Staking的数量。当Stake数?#30475;?#20110;整体Atom总量的1/3时,增发率为7%,小于1/3时,增发率为22%。

代币作用

Atom的作用主要用于Stake,Photon的作用主要用于流通。因为Cosmos的Tendermint共识是PoS+BFT的混合共识,Stake是保证?#20302;?#23433;全的重要因素,加上拜?#32426;?#23481;错机制的加入,Cosmos对Atom的Staking量要求更要严格。

Cosmos会有?#20302;?#22686;发,越多Atom Stake,增发?#35797;叫。?#36825;会让持有人为了防止Atom被增发稀释,通通来Stake,那么?#20302;?#30340;Atom流通性就减弱,为了提高?#20302;?#20195;币的流通性,Cosmos新发了Photon?#21019;?#26367;Atom作为?#20302;?#27969;通性的燃?#31232;?/span>

当然,除了Stake,Atom和其他PoS共识的公有链一样,还拥有链上投票的作用。Photon则只是充当?#20013;?#36153;的燃?#24076;?#21478;外,Cosmoshub支持?#20013;?#36153;白名单体系,也就是?#25285;?#26410;来只要是被大部分人认同的?#20013;?#36153;token种类,都可以被当做为?#20013;?#36153;使用代币。

发展路线

Cosmos对自己路线图的规划一直都比较清晰,官网对路线图的记录页一直保持着完整的记录。以下列举了从第一个测试网以来到即将上线的路线图:

2017-10-19:gaia-1000测试网,支持Token的交易
2018-01-31:gaia-2000测试网,全节点和验证人节点可以升?#35835;?#25509;的节点
2018-04-20:gaia-3000测试网,社区成员可?#28304;?#21019;世区块开始,参与网路验证
2018-04-20:gaia-4000测试网,全节点验证人可以声明成为验证人节点
2018-05-02:gaia-5000测试网,验证节点出块可以获得区块奖励
2018-06-08:gaia-6000测试网,持币人可以通过委托,将代币委托给验证节点
2018-06-08:gaia-6000测试网,加入Slash,?#22836;?#19981;对区块进行验证的验证节点
2018-07-16:gaia-7000测试网,支持链上治理,简单的投票
2018-07-21:gaia-7000测试网,支持Ledger Nano S 硬件钱包
2018-09-28:GoS牛排赛
2018-10-31:gaia-9000测试网,支持区块和?#20013;?#36153;奖励
2018-11-09:gaia-9000测试网,Cosmos SDK v0.26版本
2018-12-18:GoS牛排赛,开始测试网测试?#28909;?/span>
完成SDK审计
结束GoS牛排测试赛

以下是未来规划

· 建议创世区块的代币分配
· 上线主网

在上线主网之后,还要对一些既有提案的表决,决定是否执行,如

· Atom的交易:上线主网时,Atom并不能转移
· 支持IBC:上线主网时,跨链资产交易?#20849;?#33021;进行
· 社区治理

从发展规划来看,Cosmos算是发展比较顺利的,至少?#29992;?#20010;里程碑上看,都有在做事情。但是,Cosmos主网上线也是跳票了几次,本来在2018年中要上线了,现在已经?#26377;?#21040;2019年Q1了。从测试网GoS的?#28909;?#26469;看,网络稳定?#20849;?#19981;明朗,我很惊讶官网在此时结束了GoS,并宣?#25216;?#23558;启动主网上线。那?#28909;?#24320;发团队都官宣了,我们就拭目?#28304;?#21543;。

设计哲学

Cosmos的设计哲学围绕着两个方向展开的,一个是扩容,一个是互通。

扩容的设计采取了侧链的方式,非必要?#20063;?#37325;要的价值交换都放在侧链上进行,重要的,必要的的价值交换都放在主链上进行,这是目前主链性能瓶?#32972;?#29616;下的解决方案。这能有效解决现在的性能问题,并且顺从整个生态的发展方向。Cosmos正是这样的设计思路:让所有主链都连接自己,成为Cosmos Hub的侧链,并承担起一个中心账本的作用,记录连接自己的各条主链之间的价值互换关系,这也是Cosmos设计哲学围绕的第二个方面:互通。

Cosmos设计了一套中心(中心)-区域(Zone)的模型,每个连接自己的Hub的都是一个Zone,每个Zone有着自己的作用,?#28909;?#20135;权链,金融链等,每个Zone只有需要进行价值交换,即Token互换时才会和Hub发起交互。为此,Cosmos特意设计了一套交互协议IBC(Inter Blockchain Communication)来保证接入的Zone都可以以统一标准进行交互,这样一来,Cosmos hub就可以成为一个类联合国一样的机构,统管,协调来自各个Zone的价值交换。

所以可以看到,Cosmos的设计哲学,将解决问题和基础架构合理的结合在了一起,一方面看到以太坊的性能瓶?#20445;?#19968;方面看到多链架构下有交换价值的需要,Cosmos以一个统一的协调方出现,安全,有效的模型让人们看到了区块链世界,基础架构的重要性。

为此,Cosmos开发团队给接入方提供了诸多的便利,提供了基于Tendermint的SDK,用于开发方可以轻松实现自己的区块链项目,并集成了接入Cosmos Hub的IBC模块。同时Cosmos项目方还为那些不是以SDK搭建的区块链项目做了连接?#29275;?#26041;便现存的区块链也可以简单接入Cosmos的中心,进行价值交换。

Cosmos SDK实现了多功能模块?#30446;?#25554;拔,这意味着以Cosmos SDK搭建区块链项目的项目方有比较大的便利性,也有比较大?#30446;?#36873;择性来建立自己的生态,这和Polkadot项目方只能依赖?#20302;?#30340;验证人?#20302;?#30340;方式是大大不同的。

这也许就是Cosmos设计哲学给Cosmos带来的优势吧。

Tendermint

Tendermint是Cosmos的共识名称,其背后是BFT共识。也有人将Cosmos共识称作为BPoS,因为Cosmos中也有PoS共识存在。BPoS,其中的B是Bond(抵押金),意思是说Cosmos其实也是一?#20540;?#25276;金的PoS共识。

Tendermint中利用的是非常典型的拜?#32426;?#23481;错方案,一个高度上,验证人被提前选举出来,按照投?#27604;?#37325;,通过随机算法被选出,成为区块的出块人,在此高度上打包交易,生成新区块,然后所有人对新区块进行验证,并投?#20445;?#25237;票通过后新区块生成,转而进入下一个循环。投票的过程有两个阶段,一次Prevote,一个Precommit,两次投票都超过2/3的投?#27604;?#37325;,新区块才得以生效,否则会有新的区块代替没通过的区块来重新发起投票。因为有了投?#27604;?#37325;的加入,Tendermint为Cosmos带来了及时的区块确定性,这让Cosmos的交易速率大大提高。

投?#27604;?#37325;的概念是PoS在最早提出时就已经明确的概念,意思是持币人币?#31354;?#24635;量的比例(而非验证人数占据的比例)。Tendermint的安全和投?#27604;?#37325;有很大的关系,所以为了让足够多的Atom Staking到?#20302;?#20013;来,Cosmos定义了动态的高稀释通胀方案。Staking的越多,稀释的越少,投?#27604;?#37325;也就越高,对区块达成共识权重也更大,也就更安全。

为了提高性能,Tendermint规定了Cosmos Hub在第一年只有100个验证人位置,然后以每年30人左右的人数增加,人数的增加依赖于网络速度的提升(如5G),这些验证人以接受的Atom委托量决定是否从全节点转为出块节点。

Cosmos中的委托和Tezos的委托?#20849;?#22826;一样,虽然都是将代币权利关?#24213;?#31227;,但是Cosmos中的委?#34892;?#35201;用户一起来承担?#20302;?#39118;险,委托是一个池子的概念,而不是块的概念。这个池子可能面对很多风险,这个风险可能来自于?#20302;?#30340;不成熟,也可能来自于出块节点的不作为,或者是有意作恶,当发生?#20302;?#19981;可预期的情况发生时,?#20302;?#20250;扣除池子里面的Atom,扣除的Atom按照比例摊到每个委托人身上,同时,除了承担风险,委托的代?#19968;?#20250;被?#20302;?#38145;定15天左右的时间,来防止长程攻击。

Cosmos是池子式的委?#24515;?#24335;,Tezos是基于块的委?#24515;?#24335;,我认为Cosmos这种类型的委托是对Tezos的进一步设计,是将”市场解决“的这只?#30452;?#25104;了开发团队的直接规定,Cosmos这样做可以将大量的代币委托引向社区名望较大的验证人,也就是有效的让代币趋向于前100个验证人,这对整体?#20302;称?#21160;有直接作用。

这前100名委托量的排名,和EOS投票选出前21个验证人的逻辑很相似,从这个角度上看,可以将Cosmos的?#20302;?#30475;成是一个放大版本的EOS,只不过Cosmos是允许将验证人给委托/投票的人给与区块奖励分红的,并且将这种分红模式做成了功能,写在代码(Protocol)里了,EOS则不行,这样分红会被宪法定义为贿选,是不合法的。

Cosmos对出块节点的要求较为严格,要求24小时在线,如果出现不在线的情况,会被?#20302;砈lash,还有新的提案需要投票时,节点也需要对提案进行投?#20445;换?#26497;参与投票的也会被Slash。这种Slash的制定和BFT的性能,安全都有关系,这也是Tendermint比较典型的特点了。

总的来?#25285;?#34987;抽出来的Tendermint共识,被人们看到了轻松实现区块链项目?#30446;?#33021;性,连币安的公链都是基于Tendermint共识?#21019;?#24314;的,可见,其便利性还是有项目方看中的。

Tendermint首次实现了无需信任的Token交互机制,用中心Hub运行共识来保证安全,这种跨链技术和其他跨链技术,如第三?#21483;?#20219;人,哈希时间锁等方?#35762;?#19981;同。这种方式目前来看,被验证是可行的,但还需要Cosmos上线来检测。

性能

按照主网上线前的测试网(Gos,Game of Stake)演练来看,200+个验证人,Cosmos的出块速度为7s左右,TPS没有真实的数据。由于GoS验证人超标(主网第一年只会有100个),所以测试网的出块时间应该是不准确的,如果按照2倍的关系来看,GoS的出块时间在3s左右。

另外一方面,从Cosmos官网显示的测试数据来看,Tendermint共识的出块时间在1s左右,TPS在1000+,但不确定这个数据是基于哪个测试网的。

不过官网显示的一般是理论值,所以只能看看。结?#38505;?#23454;的测试网数据来看,理论值都需要打对折,甚至更多,但是,如果仅仅是打对折的话,那Tendermint的共识应该还算蛮快的。

Tendermint的性能和验证人数量多少强相关,验证人数量过多,性能肯定是降低的,Cosmos官网中和了性能和去中心化的需要,第一年定了100个验证人。按照现在的市场情况来看,1个项目启动初期能有100个验证人,就已经非常不容易了,其他基于Tendermint搭建的项目,很可能达不到如此高的数量,从这个角度看,性能还会有所提升。

运行

Cosmos节点有全节点和出块节点之分,运行Cosmos的出块节点有门槛,得到的投?#27604;?#37325;必须是前100名之内。节点运行简单来说只需要?#35762;劍?/span>

· 运行节点
具体操作步骤可以看官网:https://cosmos.network/docs/gaia/what-is-gaia.html

· 创建验证人
运行好节点后,需要创建成为验证人,并设置自己的投?#27604;?#37325;(Voting Power),?#28909;?#20320;的账户已有Atom,你可以将该账户中全部的Atom都设置为投?#27604;?#37325;。如果该权重排名不在前100中,那么这个验证人将不能获得选举出块的机会。

增加投?#27604;?#37325;的方式可以通过二级市场购买,也可?#28304;游?#25176;用户处获得。

· 出块人
Cosmos的出块人也叫验证人(Validator)第一年只有100个名额,每年新增十几到二十个位置不等,最终维持在300个验证人左右,以下是验证人的年增加情况:

Year 0: 100
Year 1: 113
Year 2: 127
Year 3: 144
Year 4: 163
Year 5: 184
Year 6: 208
Year 7: 235
Year 8: 265
Year 9: 300
Year 10: 300

任何人都可以成为验证人,只需要按照?#20302;?#35201;求,运行节点程序,参加到网络维护中来,并获得足够多的投票。验证人的职责很简单,就是保护网络安全,只需要按照?#20302;?#35201;求完?#19978;低?#25152;安排的工作,就能获得?#20302;?#30340;奖励,?#28909;?#20986;块,投票?#21462;?#24403;然,验证人不能做出毁坏?#20302;?#30340;行为,?#28909;?#21452;签,否则会被Slash。?#26053;?#21015;举一下Cosmos验证人所需要做的工作包括有:

出块?#21644;?#25104;指定时间?#20302;?#30340;打包交易,生成新出块的工作
投?#20445;?#21442;与链上治理,决定社区发展方向
在线:保持投?#27604;?#37325;7x24小时在线

由于采用了较为典型的BFT,Cosmos对验证人的在线时间要求极其严格。Atom的总量我们知道是?#20302;?#20013;所有的投?#27604;?#37325;,只有当拥有投?#27604;?#37325;超过66%以上的验证节点出现的情况下,Cosmos网络才会启动创世区块。而在启动之后,Cosmos对于超过66%的共识安全要求,让节点在线的严格性比其他PoS公链要强很多。

所以最早在验证人的要求上,Cosmos提出了诸如,要是公司或者团队,需要硬件服务器,在社区有足够高的影响力等在一般公有链上,体会不到的“高大上?#24065;?#27714;。但从GoS测试网?#28909;?#30475;来,不是所有验证人都能满足如?#25628;?#26684;的要求。

Cosmos的验证人可以接收持币人的委托,?#28304;死创?#21040;前100名投?#27604;?#37325;的要求,当然如果验证人自己有足够多的Atom,也可以不接受委?#23567;?#39564;证人接收委托会被要求设置一定的委托?#20013;?#36153;,这?#20302;?#23618;面的设定,?#20302;?#20250;按照这个比例给委托用户做区块奖励的分红。

另外,Cosmos每年增发7%~22%的Atom用于奖励维护网络的验证人。这些验证人获得奖励的多少和做的工作量有关系,而工作量的机会获得是按照验证人所拥有的投?#27604;?#37325;来确定的,权重越高,获得的机会越多,同样,奖励也就越多。

目前来?#25285;?#36328;链的验证人还是比较有吸引力的,Cosmoshub承担了一个中心验证人角色,如果这个hub真正成为了区块链世界的Internet,那么这个中心验证人的角色,肯定是非常非常重要的。

持币人

持有Atom的人可以将代币委托给验证人,来获得区块的分红奖励。当然,前提是你委托给的是前100的投?#27604;?#37325;的验证人,否则是没有奖励的。?#20302;?#20250;按照验证人设置委托?#20013;?#36153;,扣除后?#20013;?#36153;后,将奖励发送到委托人用户。

除了Stake,Atom的持币人目前还有太多的使用功能。

激励

Cosmos的激励方式有3种

· 区块奖励(Block Provision),奖励是Atom,主要是用于奖励那些Stake Atom的委托人
· 区块奖励(Block Reward),奖励是Photon,主要用于奖励 Ethermint zone的验证奖励
· ?#20013;?#36153;(fee),奖励是白名单中的代币种类,现在有Atom和Photon

因为Cosmos是跨链架构,所以会多出来一个区块奖励,这个区块奖励是为了激励Pegzone区域的验证的,也就是支持那些不是基于Tendermint共识的区块链项目的。这些项目如果想接入Cosmos,需要有一个单独的架构来支持,而这个架构的验证支持,同样需要经济激励,这个多出来的区块奖励(Block Reward)就是奖励给这些验证人的。

Atom其总量为68,475,963个,每年增发7%~22%的比例用作是区块激励,按照Stake的比例来决定奖励数值,但目前具体单区块,单行为的奖励还未明确。Photon的初始总量是1:1锚定ETH数量的,最终总量还没有明确,增发的情况也不确定,因为Ethermint?#30446;?#21457;计划还暂时在搁浅中。

另外,为了Cosmos的后续发展,Cosmos设计了一个基金池子,来源是交易费Fee中的一部分,主要是用来资助后续的Cosmos开发人员的工资。

?#22836;?/span>

Cosmos的?#22836;lash方式有以下3种

· 双签:在同一高度签两条不同链的区块
· 不在线:没有参与Tendermint的共?#35835;?#31243;,如Prevote,Precommit等
· 不投?#20445;?#27809;有参与社区的治理投票

除此之外,还有一些不能太明确的“坏”行为,如节点崩溃,失去连接或是遭遇DDoS攻击等这些行为都会让该节点的抵押金被Slash。

具体Slash多少还未确定,但可以明确的是,如果发生Slash,委托人的委托金一样会被Slash。举一个例子,一个验证节点有1000个Atom,其中有600个是通过委托来的,由于非恶意的行为,该验证节点在4545高?#30830;?#29983;了双签,导致?#20302;?#25187;除了100个Atom。这100个Atom会按照验证节点的Atom比例来扣除,这里就是节点被扣除40个,委托人总共被扣除60个。

前面说过,Cosmos对验证人的要求极其严格,要求7x24小时都需要在线,否则会被Slash。节点在线就相当于投?#27604;?#37325;在线,这能增加?#20302;潮还?#20987;的成本,这个Slash就是上述描述中的第2点。

治理

链上治理不是Cosmos的特点,Cosmos的治理目前看到的只有链上投?#20445;?#27604;较简单,而且没有上线,相对于Dfinity和Tezos来?#25285;?#36824;没看见什?#21019;?#26032;的方向。

问题

?#28216;也?#21152;Cosmos主网上线前的测试网来看,Cosmos的团队并没有像我想象中的出色,第一印象感觉就是人力有限,很多应该在前期由开发团队主导的工作,并没有得到及时的支援,反倒是社区里面有几个团队还比较活跃,帮助开发团队完成了很多方面的组织工作,甚至是修复工作。

但宣传方面,Cosmos是比较在行的,官网随着项目进展的多次改版,路线图的及时更新,以及创始人频繁在各个大会上的演讲,Cosmos的市场宣传一直在有条不紊的进行。

这也许会给人一种错觉,只会宣传,不会做事。但这可能只是我的个人偏见,从Cosmos的另外一个Hub——Irisnet团队口中得知(Irisnet的团队曾经是Cosmos中国开发团队),Cosmos团队其实是一个非常?#38750;?#23436;美的团队,对很多新的技术都保持好奇心,同时也是很非常积极向上的一个团队。

这点我是比较认同的,但是我也觉得这样所带来的问题是,无法明确一个很简化的产品方向,大而全的设计会导致不可预知的情况出现,导致延期上线,投资者诟病?#21462;?#30456;信,这也是为什么Cosmos主网屡次跳票的原因之一了。

另外一个问题就是Cosmos的融?#35782;?#24230;有点小了,总共1600万美元,不知道这个资金是否能支撑Cosmos?#30446;?#21457;,好在,融资时,获得ETH和BTC的价格都较低,且在2017你那4月进行的ICO,如果团队在牛市将ETH和BTC都换成了法币,那肯定是可以支持团队不?#25103;?#23637;的。目前,Cosmos团队并没有公布财务状况。

未来

和Polkadot一样,Cosmos站在跨链的风口,未来还是可期的。如果我们认为未来肯定是一条多链的世界,公有链,联盟链,私有链在各个行业里面生存,那么其本身价值的交换就肯定有需求,这个需求在Cosmos看来,可以非常轻松的满足,同时又不会对接入的生态造成破坏。

我个人还是比较倾向多链架构的,未来的区块链世界肯定不是一条公链主导,而是多链并存的情况,那么多链并存的底层基建就是强需求,那么最早开始搭建的Cosmos,是有一定优势的。
关键词: 读懂区块链PoS共识  Cosmos  
0/300
? 迷你世界野人怎么驯服