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

发布时间:2019-07-11 18:10:30 来源:不思义棋牌-不可思议的棋牌-不可思议琪牌点击:5

  项目介绍

  Tezos项目起源于2014年,出发点为了解决频繁的BTC分叉问题,提出了一套可从程序最底层自行升级的系统,希望用链上治理来整顿BTC分叉闹剧。外加上智能合约,Tezos变成了一个可自治理的智能合约平台,从此,Tezos也被贴上了以太坊竞争对手的标签。但不得不说的是,Tezos启用了新的智能合约语言,支持形式化验证,是新一代智能合约平台有力的竞争者。

  Tezos有多个特点,在位置白皮书(Position Paper)中也有比较清楚的描述,后多个特点升华出来,其中最为用户感知的就是以下3个:

  自治理

  自治理指的是Tezos可以通过提议,对基础的协议进行升级。该升级的可以修改到Tezos的最底层协议,满足时代变化所需。Tezos不会像BTC一样无休止的分叉,所有大部分人同意的修改,都会得到执行,而少数人分叉注定是失败的。

  为此Tezos提议设计了一套底层协议,来支持底层协议的升级,并配套了一套链上治理机制,用以为协议升级达成一致。两者配合,是目前我们能看到的,在区块链世界开始运用起来的一套链上治理方案了。

  形式化验证

  形式化验证的概念看起来不太好明白,维基百科给出的定义是:

  在计算机硬件(特别是集成电路)和软件系统的设计过程中,形式验证的含义是根据某个或某些形式规范或属性,使用数学的方法证明其正确性或非正确性。

  软件测试中,你很难测试出什么是对的,或者什么是错的,唯一能确定的是,你规定了某种情况/方式/方法是错的,然后以这种标准去做软件测试,形式化验证就是这样一种标准。这样的标准能有效帮助系统测试做出有效的判断。

  这种标准对智能合约平台是极其有帮助的,因为涉及到Token的价值传播,代码编写就需要极其谨慎,形式化验证对常见的错误进行了规范并纠正,能有效减少代码的bug比率。

  当然,不是所有的公有链或者智能合约平台都达到了这个要求,所以形式化验证是Tezos主推的一个特点。

  LPoS(Liquid Proof of Stake 流动性的权益证明机制)

  2012年PoS共识被提出,后经历了两年左右的发展,Tezos提出了自己的PoS共识,采用了单块抵押金,配合Slash的方式,解决Nothing at stake等重要的PoS问题。创新性的引入委托权益的证明,使得Tezos整个项目的去中心化程度变得较为突出。历经4年,2018年上线主网,目前这套PoS系统成功代替了BTC的PoW共识,无消耗,无竞争,运行良好,也算是开启了PoS第二阶段的第一个项目里程碑(第一阶段是PoS在2012~2014年发展阶段)。

  这3个特点的提出吸引了众多的投资人,2017年进行ICO的Tezos获得了2.3亿美金的投资,成功成为2017年ICO募资之最,其中不乏大名鼎鼎的硅谷投资教父Tim Draper。

  Tezos的发起人是Authur B,最早是高盛的员工。和其他项目的创始人一样,都从迷恋比特币的白皮书开始进入区块链世界。面对BTC的分叉,ETH的性能,PoW的消耗性能,AB提出了解决办法都应用到了Tezos上。

  但是一直以来,Tezos项目都相当低调,据AB说,低调的性格是秉承了法国人独有的调性。所以项目很早之前,开发团队基本不露脸,也不公开发展路线图,社区能得到的消息极少极少,也因此,曾经一度有投资者组成了维权群。

  ICO结束后,Tezos经历了项目史上最严重的两次磨难,一个是基金会主席的中饱私囊,ICO募资资金光发自己,不发开发者;另外一个是美国SEC法案将Tezos ICO列入调查的情况。两者相冲突,项目进展信息得不到,社区里一度认为这个项目已经黄掉了,但没想到后面Tezos奇迹的站了起来,由社区请愿罢免了基金会主席,也通过法律手段解决了SEC的问题。

  经历了这两次磨难,Tezos的社区变得更加健全,开发者,验证人都在稳步增加,新的基金会大方拨款成立开发者资助计划,目前来看,整个社区发展较为稳健,白皮书中列举的一些方案,都在有序进行当中,包括投票治理,扩容和隐私等,新的一年,还是值得期待的。

  目前,Tezos请了四大的会计事务所对Tezos的所有开销进行审计,并公开。从中可以了解到的是Tezos基金会目前还有约5亿美元的资金,可以支持项目的长期发展。长期发展是Tezos提出的一个重要理念,所以我们可以看到Tezos的开发周期基本是按月以上来排的,很多调整都较为仔细,并且和众多高校,科研机构达成了合作,资助了很多开发工具的团队,着重培养学生,准备好了来打区块链5年以上的"战争"。

  这种步调,像极了法国人处事的节奏。

  代币情况

  Tezos的代币称号为XTZ,符号为?,总量约7.6亿。其中20%留给基金会和团队,其余80%用于ICO。Tezos ICO采取不设硬顶的方式,XTZ的总量和投资总额有一定的关系,最终投资额锁定在2.3亿美元,由此得出的XTZ总量。

  XTZ年增发约5.5%,增发的奖励全部分发给Tezos的验证人。目前,超过70%的XTZ用于Stake,Stake可以抵消增发造成的稀释,在目前并没有太多应用的场景下,非稀释性通胀给系统带来的安全程度是很高的。

  XTZ的年增发不会长期停留在5.5%,白皮书中有提到过增发率会无限趋近于1%,减少增发率是一个线性过程,这有助于合理平衡系统。Tezos认为,过于大的通货膨胀不利于系统发展。

  代币作用

  XTZ的作用有两个,一个用于Stake(Tezos中把Stake叫做为烘焙),一个用户投票,链上治理。目前第一个功能已经实现,目前有超过70%总量的XTZ用于Stake,第二个功能目前正在开发当中,预计于2019年Q1会有第一个提案出来。

  Stake的量如此高有两方面的原因,一方面是熊市,XTZ的价格并没有达到预期,持有人Stake可以获得奖励,比单放着好很多;另外一方面是XTZ并没有太多使用场景,除了交易和Stake外,其他并无选择,所以Stake的量会比较高。

  发展路线

  Tezos并没有很清晰的发展路线,Authur B也在直播中表示过,Tezos并不会有Roadmap,因为他觉得Tezos是一个社区,社区的发展应该有所有开发者来决定,不应该有一个中心来决定Tezos的发展规划。

  但从目前所得到的信息中看,Tezos正在一步步执行白皮书中写到的一些规划,如链上治理的Furtarchy,扩容的zk-SNARKs,还有参考Tendermint要实现的BFT容错规划等。

  之前AB在2019年临近的直播中,展望了一下Tezos的发展,其中包括zk-SNARKs,内存优化等技术优化,更多开发工具,开发语言等。

  设计哲学

  Tezos的设计哲学比较特别,不像Cardano的学术派,不像Bitcoin的放任派,Tezos综合了比较多项目的优点,倾向于较重的去中心化,倾向于低调(Low Key)的行事,Tezos从2014年开始,2018年上线主网,前后经历4年,尽显法国人酿红酒的本性,主网上线后运行稳定,鲜有波动。

  在去中心化上,Tezos应该是非常开放的。在Tezos的设计中,成为验证人的门槛是持有10000个XTZ,如果没有持有那么多,那么可以将权利委托给别人,间接获得验证的权利。这样委托权益的方案,对去中心化的程度有一定帮助。

  另外,Tezos没有像EOS或者Cosmos一样设置验证人上限,因为Tezos有zk-SNARKs的方案来做扩容,AB在早期的Medium博客网站上,就曾撰写长文讲zk-SNARKs的扩容方案。目前Tezos的验证人数保持在100+,全节点数量在450+,对于一个PoS共识公有链来说,可以说是非常出色了。

  最关键的是,后来者可以轻松的进入到验证环节,不需要花费巨大的精力和成本,就可以成为验证人。同样,已经参与验证的持币人也可以轻松退出验证环节。这种去中心化模式,让我更明白了去中心化的定义:

  任何共识当中,验证人可以轻松进入,也可以轻易离开,即是非常好的去中心化。

  除了去中心化,Tezos创新性的将PoS共识进行了优化,制定出了非常清晰的,以区块为单位的抵押金和奖励机制,并结合了Vitalik的Slash规则来规范分叉和不诚实节点问题,这套逻辑到目前仍然是一种比较前沿的设计方案。

  但是Tezos并非所有都是完美的,不知道是开发时间限制还是思想差异,Tezos系统中很多模块都是需要在线下协调来完成了,比如委托Stake的奖励分发,比如委托抵押金的交付人是谁等,Tezos充分发挥了市场的作用,让其得到解决。

  这点和Cosmos是完全不一样的,同样的问题,Cosmos将解决方法设计到了原型(Protocol)中,方便了和解决了众多去中心化的协调问题。

  不过,这就是Tezos的设计哲学,遵循慢即是快,遵循区块链精神,虽然有表象上发展比较慢的诟病,但是这种差异化哲学让Tezos在西方世界收获了非常多的认同。ICO地址有3万+个,在一开始,Tezos就获得了比其他项目还要大的认同。

  LPoS

  Tezos的共识是基于PoS的优化,社区人为了区别和其他PoS共识,命名为LPoS(Liquid Proof of Stake)。按照以往对于PoS共识的命名来说,Tezos的PoS也可以命名为DPoS(Delegate Proof of Stake),因为在Tezos里面,持币人是可以将XTZ委托(Delegate)给验证人的,这和BM创建的DPoS的投票选举不同,XTZ的委托是Tezos里面去中心化的一大特色。

  既然是基于PoS,LPoS同样是建立在持币人权利上的机制,持币人通过Stake可以参与到Tezos的验证人系统当中,运行节点程序,验证人在被选中的高度进行出块(Bake)和验证(Endorsement),合理的行为会被奖励,作恶的行为会被扣除大部分抵押金。

  Tezos为了提高性能,采用了以10000个XTZ为一个卷(Roll)的出块人选举方案,同时,和Cardano,以太坊一样,设置了选举周期(Cycle),一个周期大概是4096个块,2.8个自然日,周期开始前,下个周期的验证人,出块人都会按照Roll的比例被选举出来。抵押金缴纳则是发生在出块前或者验证前,出一个块交一次抵押金,验证一个块交一次抵押金,完成指定操作后,奖励会发送到你的验证人账户,但是是被锁定的状态。

  单块抵押金的多少和单块奖励的多少是Tezos根据一个安全系数算出来的,目前出块奖励为16XTZ,验证奖励为2XTZ,出块抵押金为512XTZ,验证抵押金为64XTZ。总体算下来,抵押金的安全比例为8.25%。

  所以LPoS是以小单位:区块,大单位:周期形成的一种选举人共识。

  另外,没有能力,时间,或者是技术的持币人,可以将XTZ委托给验证人,委托过程不存在转币,委托只是一层系统认定的权利转移关系。同时,系统锁定了抵押金,但并没有锁定委托的XTZ数量,委托人在委托期间可以任意转移自己委托的XTZ。

  这也是LPoS中,L(Liquid流动)的由来了。

  锁定的抵押金,目前Tezos市场上出现了验证人帮助委托人交抵押金的情况,委托人委托并不会担任自己本金丢失的风险,但有不诚实验证人不给于奖励的风险,这相对于丢失本金的风险要小的多。市场上超过50%以上的XTZ是通过委托来参与验证的,这个数量足以看出委托体系建立,对于Tezos的帮助了。

  整体来说,LPoS解决了PoS中,参与Stake动力不足的问题,满足了PoS系统中需要越多币参与Stake越安全的要求,通过非稀释性通胀吸引用户参与Stake,是一种创新。另外,LPoS的选举效率和选举安全都是可以得到保证的,目前,Tezos使用的Follow the Satoshi选举算法和Cardano选举算法大致是一样的,后者有数学严谨的证明其是安全的,可靠的,无偏差的。

  性能

  Tezos的性能并不算出众,目前大概只有40TPS左右。但目前尴尬的是,几乎每个块都还填不满数据,所以对于Tezos来说,提高性能并不是当前的要务。

  去中心化和性能这两个不可兼得,Tezos的设计哲学是先冲着去中心化去的,因为觉得去中心化是不可逆的,而性能是可以不断提高的。所以我们可以看到前期Tezos花了很多时间在设计整套去中心化架构,从参与验证,到委托权益,这些功能在一定程度上降低了系统的处理能力。

  我很期待zk-SNARKs给Tezos带来的性能提升,因为从ZCash的sapling2.0来看,优化后的zk-SNARKs给ZCash带来了指数级别的提升。

  运行

  运行Tezos的节点程序比较简单,需要搭建所需环境,并按照官方指导步骤搭建即可。搭建节点的 教程比较多,这里贴一个比较完整的节点搭建方案:https://github.com/tezoscommunity/FAQ/blob/master/Compile_Mainnet.md。

  另外,节点搭建完成后,还需要注册才能成为验证人。记得,成为验证人需要1万个XTZ,只有注册成功的验证人才能获得被选举的权利。

  目前Tezos的节点程序更新并不算频繁,但是只要是更新一般都需要节点一起来更新,来保证整个网络运行稳定。节点验证人会有一个地方进行交流:https://tezos-baking.slack.com/messages/CC4FD2HUY/。

  Tezos并不会要求节点24小时在线,被选举的验证在指定时间没有在线,则会有次优先级的人来替代出块,所以不在线不会成为Slash的条件,不在线只会让验证人丢失本就属于自己的奖励。但是,节点升级尽可能的还是选择没有出块或者验证的时间段来停机升级,避免不必要的损失。

  出块人

  Tezos上的出块人,也称作为验证人,验证人有四个职责:

  出块:指生成新区块链,打包交易到区块并广播

  验证:验证新的区块和交易,并签名

  披露:将当前周期的随机种子在下一个周期开始前广播

  谴责:如果发现不诚实行为,可以发表谴责声明到区块链中(可选)

  其中,4个行为中,除了披露外,都可以得到系统的奖励,其中,以验证的奖励最多。持币人通过运行节点程序,并注册,即可成为验证人。

  持币人

  持币人在Tezos系统中,有三个权利:

  投票

  注册成为验证人

  委托权利:可以将XTZ的Stake权益委托给其他验证人

  目前投票的进程才开始初步试水,已有在社交媒体上发起讨论了。但是真正的投票还在调试当中,预计第一次投票会在2019年Q1开展。

  激励

  Tezos年增发5.5%,按照7.6亿的总量来算,每年有4千万XTZ会被增发出来,按照3人民币一个XTZ的价格来算,每年增发的XTZ价值1.2亿。

  Tezos上的激励行为有以下3种

  出块:一个区块奖励16个XTZ

  验证:一个区块奖励2个XTZ

  谴责:被证实后,没收的抵押金少部分奖励给发表谴责的人

  举个例子,按500万个XTZ计算,一个周期大概能获得40个出块机会,1400个验证机会。有足够多的抵押金情况下,可以获得奖励=40x16+1400x2=3440个XTZ。

  如果500万个XTZ中有80%是用户委托了,验证人设置的委托手续费为10%,那么验证人可以获得的总奖励=3440x(1-80%)+3440x80%x10%=688+275=964个XTZ

  一个周期大概2.8天,那么一个月下来,接受委托的验证人大概可以获得9640个左右的XTZ。

  惩罚

  Tezos的惩罚Slash和其他的PoS公有链差不多,基本是针对分叉和不诚实节点做出的限定,主要有以下几个惩罚行为:

  双块:在同一区块高度生成两个新的区块

  双签:在同一区块高度在两个不同链上上的区块签名

  披露:在周期结束时,不披露随机Nonce

  Tezos对不诚实行为的惩罚是非常严厉的。按照周期为范围,如果周期内发生一次,那么周期内的抵押金会被全部扣除。就按照500万个XTZ来计算,40个出块机会,1400个验证机会,总共要交的抵押金=40x512+1400x64=130560,这个抵押金要是被扣除了,那可得不偿失了。

  所以验证人作恶的成本是很高的,一般情况下,不会去作恶。但是由于系统初期,并不是所有验证人都能清楚的知道什么行为会被Slash,或者是知道了Slash的行为但不知道怎么去规避,亦或者是误操作,导致的Slash情况也很多。

  治理

  Tezos是非常强调链上治理的,最开始讲Tezos的一个重要特点就是自治理,自治理需要配套一套链上提议-投票的系统来一起维护。

  

  目前,开发团队的投票系统针对的是Tezos底层的协议升级,也就是自治理部分,分为4个阶段,每个阶段都是以周期计算(Tezos中的周期为Cycle,一个Cycle4096个块)

  · 提议周期:第一阶段持续1~8个周期。这个可以理解为广泛收集议题的周期。有验证人提交提案,所有验证人给提议投票,每个验证人只能投20个提案,取票数最高的那个提案进入下一个周期

  · 探索投票周期:第二阶段持续9~16周期。此周期内,所有验证人对第一阶段投票最高的提案进行二次投票,确定是否同意执行。如果此周期的投票人数超过绝多数(80%),并且投票人数中投通过的大于投否定的票数,那么该提案进入下一个周期

  · 测试周期:第三阶段持续17~24周期,该周期会从主链分叉出一条测试链,用于测试该提案,持续48小时。另外,一个链下的测试网可以用于评估提案。

  · 推进周期:第四阶段持续25~32周期,测试周期结束后,验证需要再次对提案进行投票,以决定是否要将提案应用到主网。同样,如果此周期的投票人数超过绝多数(80%),并且投票人数中投通过的大于投否定的票数,那么该提案所在的测试网将被认成为主网。

  一个底层协议的升级一共经历32个周期(90天),3次投票,其中还要经过足够长时间测试才能确定是否上主网,看上去升级元协议并非易事。

  另外,验证人并挑选出来作为权力代表,代表委托权益人进行投票,这点很EOS有点像,只是委托人可选择的范围不受21个的数量限制。有一些权力代表初期会收集委托用户的投票意向,但是这种意向收集往往费时费力,并不能确定在没有激励的情况下,投票的参与率和收集率的情况。而且一次投票的时间间隔比较长,很像是大国治理,达成共识的难度较高,这有点偏离了以往我们对于互联网产品更新迭代速度快的印象。

  第一次的链上提案已经发出,在社交平台上已经有了讨论,主要议题有两个

  · 减少Roll的数量

  · 提高Gas Limit

  这次提案还没有提交到链上走投票流程,预计2019年Q1会正在上链进行投票。Tezos的链上治理还是比较复杂的,不像其他公链,仅仅是一个提案上链投票,然后选择团队执行的的过程,而是将上链投票和执行都自动化到流程中了,所有过程和利弊都可以在链上看到,避免了提案本身描述的天花乱坠,但线上崩溃的一塌糊涂的境地。

  这也就是Tezos被称之为一个可自治理的区块链的由来了。

  问题

  Tezos项目自2014年~2017年发展的都还挺顺利,ICO后到时出现了一大堆问题,特别是法律法规问题,Tezos更是聘请了财务,法律团队来避免一些不必要的踩坑,目前来看,Tezos的审计开放程度是比较公开的。尽管做到如此的小心谨慎,项目还是不可避免的存在这样那样的问题:

  · SEC问题

  美国证券交易所的决定,会影响XTZ的价格走向,如果SEC把XTZ列为证券,那么它极有可能会被合规交易所下架交易对,这对Tezos来说是比较严重的打击。目前,将XTZ列为证券的讨论还存在。

  · 基金会法律问题

  基金会的法律问题一直以来都没有停止过,大到基金会主席的不作为,小到投资人的维权诉讼,这些干扰因素一直在困扰着基金会。虽然2018年,基金会重组,甚至出现了一个由草根组织形成的基金会,整体向好,但是仍然有很多法律问题时不时会出现。

  · 开发慢问题

  Tezos的开发团队主要是在法国,法国的生活节奏,工作节奏都比较慢,所以Tezos的项目开发也是比较慢,这会被众多投资者诟病,特别是来自中国的投资者。

  未来

  Tezos的未来是想成为一个能自治理的智能合约平台,因为其新的智能合约语言OCAML的关系,它极有可能在金融领域突出重围。也因为这个原因,Tezos准备好了区块链发展5~10年的准备,重金投资了很多科研机构,教育机构,培养新的开发者在Tezos上写智能合约,做应用。

  但是,Tezos想大成可不简单,Tezos面临的竞争也很多,这本书中讲到的一些例子(Cardano,Dfinity,Ethereum等)都是它的竞争对手,而且对手的团队,融资额,市场操作并不会比Tezos差,所以,都想成为新一代智能合约开发平台的心,会引起非常惨烈的竞争,而最终胜出的极有可能是小部分,亦或是在各自在各自的领域存活,并获得生机。

  Tezos有自己的优点,也在打自己的差异化,很多项目并没有5~10年的发展计划,所以在长远(Long Run)来看,Tezos应该会有属于自己的一席之地,尽管现在的生态发展很糟糕。