Skip to content

Latest commit

 

History

History
163 lines (81 loc) · 17 KB

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

File metadata and controls

163 lines (81 loc) · 17 KB

Cardano

1.1.项目介绍

卡尔达诺(Cardano)是一个智能合约平台,官网对其的介绍是

卡尔达诺是一个分散且公开的区块链,也是ㄧ个加密货币项目,而且是完全开源的。卡尔达诺正在开发一个智能合约平台,旨在提供比以前开发的任何协议更先进的功能。它是第一个从科学哲学和以研究为首驱使导向,进而演变而来的区块链平台。开发团队由全球专业工程师和研究人员组成。

简单来说卡尔达诺(Cardano)和以太坊一样,是一个智能合约平台,是一群由科学家带领的项目,其对于共识、算法、合约、激励等区块链功能的严谨性是空前的,基本上只要是主要的算法都有论文支撑,而论文的背后则是数个科学家的研究结晶。

通过对卡尔达诺的研究中可以发现,该项目用了大量数学方法来解决PoS中遇到的问题,而且验证极其严谨,同样的问题在其他项目中可能是通过人为规则来进行约束的,相对来看,卡尔达诺可能是最具有科学哲学精神的项目,但这也意味着这个项目如果想从研究成果到现实实现,需要不少的时间。

Cardano是2016年的项目,作为一个智能合约平台,它面对的对手同样是以太坊, 还有比它还要早期一点的Tezos。当然,还有无数的后起之秀。特别在2019年大量公链项目上线主网的情况下,智能合约平台面临的竞争都是空前的。

我们来看看开发Cardano的团队。Cardano由3家公司/团队在主导,IOHK,Emurgo和Cardano基金会。IOHK主要负责技术开发,Emurgo负责项目推广,基金会负责监督进展,?我在下面主要讲到的Cardano主要是IOHK负责主导的技术开发,其他两个公司/团队的进展不会涉及。IOHK里面集合了大量的博士,教授以及科学家,它的CEO是Charles Hoskineson,也是大名鼎鼎的区块链先驱,先后从事过比特股(Bitshares),以太坊(Ethereum)的开发工作,和Daniel Lamier(BM)和Vitalik Bertain都有过交集,现在主导Cardano的技术开发。

中国社区喜欢把Charles Hoskineson称为老查,老查很喜欢社交媒体,现在基本成为了Cardano的封面人物,经常会在推特上看到他的发言,是个很极客的人。

1.2.代币情况

Cadano的代币符号为ADA,总量450亿,已经发行311亿,剩余138亿左右会在铸币的过程中产生。对于ADA的持有者来说,整个社区有一个国库,整个国库有一部分未铸币的币和手续费贡献一起形成,国库用于后续的社区的可持续运营。

在已经发行的311亿ADA中,初始一部分分发给了Cardano团队(3家)20%,其他是用众筹的方式来发行的,众筹分4期,都在亚洲区域内募资,从日本启募,随后在韩国,中国,越南,菲律宾等亚洲国家都有进行募资。4期募资后,总体持币人数以日本人最多,持币人有9402个,占总量94.8%,中国持币人有158个,占总量1.38%(后二级市场上的买卖应该打乱这种分布形式,但总的来说应该还是以日本持有量居多)。

而剩余的138亿ADA会议奖励的方式发放给Staking的持币人,维护整个网络的可持续发展。奖励以每一年存量的5%的方式分发,比如第一年是6.9亿(138亿的5%),第二年是0.395亿(6.9亿的5%)。

1.3.发展路线(Roadmap)

2017年10月,Cardano上线了主网,该主网并未实现理想中的全部功能,只实现了基本功能,如转账,默认委托等,目前可以在[浏览器](https://cardanoexplorer.com/? hstc=266014672.8c0b33d6011f67d7470de470172d5597.1545361143825.1546686322927.1546745199193.6& hssc=266014672.1.1546745199193&__hsfp=1099699878)下查看出块数据和交易数据,该网络被称之为测试网阶段。

Cardano的网络分3个节点启动,分别是测试网阶段,引导阶段和奖励阶段。测试网阶段,也就是现在的阶段,引导阶段是过渡阶段,为了防止PoS共识启动时,大量币无法Staking,导致网络网络的安全问题。引导阶段结束后,就会过渡到奖励阶段,也就是我们所说的PoS共识阶段——一个真正由社区运营维护的去中心化的网络(目前的节点都是有官方的团队来维护的,是一个完全中心化的网络),奖励网络的第一个版本会在2019年的Q1上线。

Cardano是目前我看到最多个测试网的项目,每个功能都在专门的测试网上测试,比如智能合约,比如PoS共识等等,一共有5个,分别是:

  • Byron :目前Cardano主网的测试网

  • Shelley :包含委托,矿池等保证主网去中心化功能的测试网

  • Goguon :智能合约测试网

  • Basho : 旨在提高性能的测试网

  • Voltaire :旨在实施链上治理的测试网

目前运行的网络是Byron,使用的PoS算法是Ouroboros,预计2019年Q1 Shelley会上线,该网络使用的PoS共识是Ouroboros的升级版本Ouroboros Praos。而其他测试网正式上线的时间还没有公布。

为什么会有这么多的测试网,这和卡尔达诺的设计哲学有关系。主链只充当结算作用,只支持极少的功能,如ADA的存储和交易,而其他的治理、智能合约,性能侧链都是在其上层来搭建的。以此来保持足够的简单来达到安全,这也是为什么卡尔达诺的主网叫做是卡尔达诺结算层的原因了(Cardano Settlement Layer,CSL)

1.4.设计哲学

上面说到了,Cardano的设计是基于论文的,所以该项目充分考虑到了架构设计的问题。从设计哲学上来说,卡尔达诺的设计哲学满足4个重要指标

  • Sustainability 持续性

  • Interoperability 互通性

  • Scalability 可扩展性

  • Upgradability 可升级性

Sustainability指的是一个区块链项目可以在去中心化的社区组织下,要"存活"足够长的时间,而Cardano的PoS设计就是用来满足此项目标的,Ouroboros不需要消耗能源,持币人可以维护整个网络稳定,以此来使得Cardano成为主流。

互通性,可扩展性和可升级性由Cardano的侧链系统来完成,侧链系统可以和主链产生互通性,同时支持足够的灵活性、可升级性和可扩展性,保持主链足够简单,安全。主链的功能及其有限,大部分功能有侧链来完成,主要的智能合约都在侧链来完成。

1.5.运行

目前主网已启动,运行的PoS算法是Ouroboros,在Shelley上线后,算法升级为Ouroboros Praos。Shelley启动后,持币人通过Staking来参与整个网络的运行。为了是整个网络计算更加高效(如Coin Tossing之间的交互),Cardao为Staking设置了一定的门槛,即允许矿池的出现,接受持币人委托,来维护整个网络的运行,每个矿池的门槛是2%的持币量(2%还未确定)。理想情况下,100个矿池是合适的。当然,这些参数都不是定死的,目前这些参数还未确定,主网启动时,可以写在创世区块中,后期可以修改。

1.6.性能

目前,Cardano的每个Slot之间的时间间隔是20s,主链吞吐量(TPS)未知,侧链性能还在测试网当中,也还未确定TPS。

主链的吞吐量较低,因为在Ouroboros的共识当中,一个Slot一个块,每个Slot需要选举一名出块人,随机选出出块人依赖于每轮周期随机种子的计算,该种子的计算由多轮数据交换产生(此种计算叫多方计算MPC--Multi Party Computation)。如果在Cardano中的出块候选人非常多,这种计算会呈现指数级的增长,这样会延迟性能,所以我们看到在Cardano中,出块候选人假设的合理区间是100个左右,这应该是性能和去中心化两者之间的一个平衡值。

当然,在Cardano的性能方案当中,侧链才是最重要提高性能的方式,主链只作为保证安全的结算层。

1.7.激励

目前Cardano的总体代币上线是450亿,目前已经分发出去大部分,剩余133亿ADA作为激励池总资金,每年以激励池剩余量的5%作为当年出块人激励总量。预计从2019年Q2开始,ADA的激励总量为7亿,到2020年Q1开始,则是6.65千万,以此类推。

和大部分PoS共识公有链一样,Cardano同样遵循PoS前期激励需要足够大的原则。

我在写这篇文章是,Cadano新一版本的结算层网络Shelly还没有上线,所以具体的激励机制并未明确,目前能基本确定的有以下3种

  • 出块:指出块人在确定高度是出块,打包交易

  • 投票:指出块人投票更新系统

  • MPC:指出块人参与MPC计算

其中,大部分的激励会集中在出块上,但一个块的激励具体是多少ADA,Staking的奖励,Staking的锁仓时间等等,目前也并没有能明确。

1.8.惩罚

Cadano没有抵押和惩罚机制,对于PoS出现的问题(比如Nothing at Stake,分叉等,在第9章节中已经具体讲PoS的所有问题及各个PoS链对应的解决办法),全都由共识解决了,准确来说,是用共识中的数学机制来保证了。

如果一定要说惩罚,那么Cardano的惩罚和Bitcoin的方式很像,那就是丢失了你本应该获得的奖励。由于Cardano没有抵押金-Slash的机制,所以不诚实的出块人有不良行为时,也不会被扣除抵押金,因为无抵押金可扣。转而代替的是扣除你应该获得的出块的权利,这样本应该属于你的出块奖励也拿不到了。

1.9.出块人

Cardano中的出块人相当于Bitcoin中的矿工,只不过职责略微不同。Cardano把物理时间分为周期,每个周期有多个槽,每个槽对应一个块(Block),每个块对应有一个出块人(Slot leader),想要成为Cardano中的出块人,持币人需要直接声明(Staking)或者通过委托(Delegate)方式成为准验证候选人,准验证候选人的持币量还需要大于2%才能成为真正的候选人(这里的2%候选人持币量占整体币量的比例,目前未确定具体的数值)成为真正的候选人后,系统会通过选举的算法来选出每个周期(Epoch)每个槽(Slot)的出块人(Slot leader)。

通常在本周期内的选举会决定下一个周期的出块人,Cardano的算法当中,一个周期分为3个部分,第一部分为所有出块人随机种子的提交期,第二部分为出块人披露种子的披露期,第三部分是出块人用种子披露的方法来恢复统一种子的恢复期。3个部分决定了随机种子生成,该随机种子会用于下个周期的出块人选举。所以在此周期结束的时候,我们就能知道下一个周期的出块人了。

每个槽对应的块可以为空,但是整个周期内,必须有大于50%+1的块被生成出来。如何保证必须有50%+1的块被生产出来呢?Cadano相信大部分人是诚实的,所以每个周期里面,必然会有超过50%+1个块被生产出来。当然,如果出块人(Slot leader)在该出块的时候掉线,或者没有把随机种子披露,那么他在下个周期(Epoch)开始时,将不会有参与选举的权利,直到下下个周期的时候才能再次参与。这样的惩罚机制也会保证整个网络的顺利进行。

出块人负责生成新的区块,验证交易并打包交易到新的区块当中去,参与投票,随机种子的多方计算等,这些工作完全后会获得系统的奖励。接受委托的出块人需要自己制定委托手续费,后将奖励按比例分给委托用户,以此一起奖励参与网络维护的委托人。

1.10.持币人

Cardano中的委托人是那些无法自成为出块人的持币人,这些持币人可能因为持币量门槛,或是没有技能,时间等,无法自己来成为一个出块人,他们可以选中将自己的权利授权给出块人,让出块人代表自己的权利来维护系统,从而获得奖励。

而委托人参与到维护系统中来也是因为Cardano本身的激励。Cadano系统会对Staking的持币人(无论是委托的Staking还是自身的Staking)以ADA的代币作为激励手段,只要是满足激励手段的都会得到按比例的激励。

假如你有1%持币量,那么你将会获得系统激励池中1%的代币激励机会,只要你顺利完成了规定的动作,那么你将会获得这1%激励里面的绝大多数。当然,如果是委托的Staking,少部分费用需要支付给代理人。

1.11.链上治理

有一个[视频](https://cardanoroadmap.com/? hstc=266014672.8c0b33d6011f67d7470de470172d5597.1545361143825.1546669930930.1546673403148.4& hssc=266014672.5.1546673403148&__hsfp=1099699878#Cardano%20whiteboard;%20Treasuries,%20with%20Bingsheng%20Zhang,%20Ph.D.%20Lecturer)很好的讲解了Cardano的链上治理

Cardano的链上治理称为是流动性的民主权(Liquid Democracy),相对的是现实世界中直接的民主权(Direct Democracy)。现实世界中,民主决议通常是通过投票来决定的,由于投票的群体过大,有了代表的出现,代表替代群体对提议进行表决,所有的流程都有中心化机构来处理,包括结果执行,这是中心化的处理方式。

在去中心化的世界里面,Cardano想要让民主变得更灵活,同时让投票的结果更加理想(群体的投票只会使投票结果趋于中庸),持币人为Cardano里面最小投票单位(需要达到一定的持币量门槛),任何人都可以发起提议,在任何提议中,任何人都可以声明成为这个提议的投票人/专家/,并可以通过社交媒体获得代理投票权。同时Cardano支持代理投票权的多层转移,利用人际网络关系,找到最合适的投票人,共同将最合适的投票结果投出来。

Cardano为了激励整个系统的投票率,留有一个奖励池作为激励。同时为了整个投票结果更加完善,Cadano把投票人群进行区分,变成专家和投票人,并且支持投票人将投票权代理给专家。任何人都可以声明成为这两种人,并可在社交网络上为自身专业性进行背书,投票人或者专家都可以按投票权重(Voting Power)获得激励。

投票人是自己直接投票的人,专家指可以接受委托投票权的人,投票委员是促使整个投票过程,结果到执行的监督人。委员会的选举和出块人的选举类似,都是按照持币量的比例来随机选出。

Cardano的激励体系,奖金池会给投票人、专家和投票委员给与奖励,如果其支持的项目被最终获得资助,那么对应的投票人也会获得奖励。奖励的大小按照投票时候的存款(Deposit)比例来分配。投票直接投票可以获得奖励,专家通过帮助委托投票人投票也可以获得奖励,这样投票变得更加灵活。

整个投票分为3个阶段

  • 投票准备阶段:准备阶段中,可以接受提议,注册成为投票人或者专家,选举委员会成员等

  • 投票阶段:投票人可以直接投票也可以委托给专家投票,所有投票分为赞同,反对和中立

  • 公布结果阶段:由选举委员会将投票结果公布,并监督执行

3个阶段持续一定的时间,比如1个星期,结束时,按照系统奖金池中的资金情况,决定当期的资助项目,项目按照表决通过率从高到低排序,系统依次资助从高到低的项目,当系统资金不足时,会出现投赞同票大于投反对票的项目也不会得到资助。

截止我写着本书时,Cardano并为完成实现这个项目的链上治理,以上的所有描述都基于当前的论文。

1.12.问题

目前Cardano的问题比较公开,很多投资人也比较心知肚明。

  • 科学化的严谨,开发进展太慢

  • 大户严重的问题

  • 基金会丑闻(拿钱不办事)

科学化的严谨,即是好处也是坏处。而关于ADA筹码集中的问题,社区曾经深刻讨论过这个问题,但似乎没有太好的办法。还有一个就是2018年底闹的沸沸扬扬的基金会拿钱不办事的事情,目前的进展已经通过社区请愿罢免了基金会主席,事情也算告一段落,但印象中,但凡基金会的钱一多,就会变得好吃懒做,这也是目前很多区块链项目基金会的通病了。

1.13.未来

Cardano算是整个区块链世界的一股清流,学术成风,严谨的科研态度值得被人们尊敬。很多研究成果被其他项目应用,并很好的促进了整个区块链世界的发展。这是优势,同样这也是问题,学术-研究-论文-测试-落地的模式,可能在速度上并不是很好的能被这个世界所接纳。

浮躁的区块链世界里面,并不一定能给Cardano留下充足的发展时间,反倒那些带有狼性,进展顺利的项目很可能会异军突起,在前沿获得关注,同时获得大量的投资者认同。投资者认同这件事很重要,因为这会保证背后主导的团队有足够充足的资金来发展,这个对于项目采用,项目进入有非常大的主推作用。

Cardano还是有独树一帜的一面,希望能再加快一下脚步,早上上线所有的测试网功能。