共识方案与经济模型干货详解 | PlatON云图第二次社区议事会直播实录(上)

PlatON云图第二次社区议事会于3月17日晚19点正式启动,与节点合作伙伴和所有关注技术发展的社区成员,通过ZOOM视频直播方式,“面对面”探讨PlatON重大技术事宜。

在长约1小时20分钟的议事会过程中, PlatON首席架构师李升林、技术负责人傅志敬详细阐述PlatON共识方案和经济模型,以及LatticeX基金会Grants计划参与流程和最新进展。

同时,PlatON团队与约60位受邀的节点代表和社区用户直播互动,依次解答了与节点利益息息相关的问题,包括各个收益率算法、奖励机制、零出块处罚后续优化策略等。关于PlatON的技术优势、项目规划和未来计划等大家感兴趣的话题,在本次直播中也进行了深刻讨论。

PlatON首席架构师李升林全方位阐述了PlatON共识方案与经济模型的技术细节。 他表示,PlatON的共识是一种PoS共识方案,因此首先对整个PoS共识进行一个概述。

PoS共识方案可以分为四类:

一是 Chain-Based ,这是早期第一代第二代PoS。根据持有token的数量伪随机地选择验证人进行区块生产,其中有些PoS+PoW方案,一般是PoW出块,通过PoS选择验证人进行验证,以太坊的Casper1.0也是一种混合PoS/PoW的方案,作为其从PoW转换到PoS的中间方案;

二是 DPoS ,每个token持有人可以把权利委托给部分代表,由代表参与区块的生产和验证;

三是通过 VRF 随机选取验证人,Dfinity、Cardano和Algorand是这类的代表;

四是选出验证人后通过 BFT 协议经过多轮投票确认区块,Tendermint、Stellar、Ontology、Zilliqa、NEO等都有采用。 PlatON的共识方案PPoS是VRF+PoS+BFT三种共识方案的结合。

接着,李升林阐述了验证节点的选取流程。PlatON的节点按照阶段分成三类:

第一是 备选节点候选人 。成为备选节点候选人,目前测试网需要最低质押100万LAT,主网待定。

第二是 备选节点 。每个结算周期(即Staking周期,10750个区块一轮,约3小时)的最后一个结算区块,我们会从备选节点候选人里根据当时的排名选出前101个作为备选节点。

第三是 验证节点 ,每个结算周期有若干个共识周期(250个区块一轮),在每个共识周期的第230个区块里,我们会选出下一个共识轮的25名验证节点来生产区块。

以上是我们共识方案和经济模型的概述,接下来阐述大家最关心的方案细则和节点操作步骤。

一、 质押 & 委托

大家可以通过锁定 LAT成为备选节点候选人。 成为备选节点候选人需要最低质押100万LAT ,锁仓的LAT也可以进行质押,质押的LAT锁定为一个Staking周期,不申请赎回会自动重新锁定一个新的Staking周期,任何时候都可以申请赎回,但是需要等冻结时间结束后才能到账。

赎回需要等待28个Staking周期,质押的LAT会自动返还到原质押钱包。 冻结28个Staking周期主要是考虑给予双签双出处罚一个举报期。

任何社区成员都能将自己持有的LAT通过质押的方式委托给候选节点、备选节点或者共识中的验证节点。 委托的LAT锁定为一个Staking周期 ,不赎回会自动重新锁定一个新的Staking周期,任何时候都可以赎回LAT,并 可立即返还到原委托钱包

二、 备选节点选取

发起创建验证节点交易进行质押,才能成为备选节点候选人,这在下一个结算周期才能真正生效。在下一个结算周期开始前的时间称为犹豫期,犹豫期质押金没有被锁定。

在每个结算周期的最后一个区块 (即结算区块) ,把当时排名前101个备选节点候选人作为下一个结算周期的备选节点。

三、验证节点选取

每个共识周期负责生产250个区块,在共识周期的第230区块从101个备选节点中选举下一轮共识周期验证节点 ,第1个共识周期的验证节点是在创世区块中内置的。

为防止新选取的验证节点由于网络连接慢、区块不同步等原因影响共识效率,保证共识的容错性和连续性 ,每次不全部替换所有25个节点,只替换掉部分验证节点 (当前考虑为8个)

也就是说,25个验证节点里面有17个验证节点顺延到下一个结算周期,这17个节点可以正常进行出块,但是每个最多顺延3个结算周期,超过则会被替换出去。 其中,被处罚、版本未升级、已解除质押的节点不选取参与共识。

当然,101个备选节点被选取成为验证节点,涉及到概率问题。 Staking越高的备选节点,经VRF被选为验证节点的概率越高。 长远看,被选中的概率跟Staking的数量占比是一致的。

做个简单的类比,将每个备选节点的每个自有质押或被委托的LAT看作不同颜色的小球(不同备选节点颜色不同),放到同一个容器里面,从中随机抽球,并且抽完后放回。 统计被抽中的球的颜色分布,出现次数最高的25种颜色对应的备选节点即为验证节点。

每个备选节点被选中的概率服从二项分布,给每个备选节点选择一个VRF值(将前101个区块中的VRF值选取),并计算二项分布的累积概率反函数,获得x值。根据这个x值进行排序,排名最高的前25名备选节点被选中。

VRF的设置具有随机性,不会包含区块本身的数据,最终选出的验证节点不一定正好是Staking最高的备选节点。Staking较低的备选节点也有一定的选中概率。

四、运行CBFT协议出块

25个验证节点被选出来之后,运行CBFT协议进行区块生产和验证,CBFT有以下几个特性:

第一,为降低通讯复杂度, 把View change流程和正常出块流程结合,每个View出满10个块,则自动切换到下一个View ,无需单独的view change投票流程,未出满10个区块,再进行一次view change投票流程;

第二,应用 BLS 聚合签名 ,把多个签名聚合成一个签名,降低通讯量;

第三, 引进pipeline方式对区块进行确认 ,每个区块只需一次投票,将区块生产和确认异步化。

第四, 在一个View内,区块可以批量生产 ,无需等待任何确认动作,在一个View内,区块生产和验证完全并行化。

需要强调的是,25个节点轮流出块,每个节点分别出10个区块,前一个节点未出满可由下一个节点继续,如果一圈下来未出满250个区块,继续轮转,直到出满250个区块为止。

五、治理升级

所有备选节点都可以通过链上投票参与提案,每个提案只能投一次票(提案可能跨很多个Staking周期,每个Staking周期的新备选节点都可以参与投票)。

对于升级提案,备选节点必须在投票周期内升级本地节点后发起投票交易。升级提案投票通过后,未升级的备选节点将降级为备选节点候选人,不再参与共识,也不获取Staking奖励。 不过,备选节点候选人可以升级本地节点并发版本声明交易,重新参与排名成为备选节点。

六、质押&委托赎回

委托赎回比较简单,任何时候都可以操作,但当前Staking周期的奖励将不会发放。如果验证节点想要退出,也可以进行解质押,节点在犹豫期时可以随时解除质押,质押金将立即回退到账。但 如果被锁定,质押金将被锁定28个结算周期,届时才能回退到账

七、经济模型

接下来介绍我们的经济模型(见下图)。

初始发行部分会直接分配到账户,部分是通过锁仓合约分配,部分会由基金会补贴进入奖励池。每年增发主要进入奖励池,另外一部分作为社区开发基金。

个人账户和验证节点可以进行质押或委托,涉及的LAT锁定在Staking池。Staking池是一个合约,进入里面的LAT除了解质押和解委托回到原账户外,还有一部分通过处罚进入到奖励池。 所有的区块奖励和Staking奖励从奖励池中发出,会将根据比例发放给验证节点,并根据节点设置的委托收益比例发放到委托收益池,委托收益池的金额将由委托人自行领取。

八、奖励机制

PlatON的奖励机制主要体现在节点奖励和委托奖励这两项。

每个Staking周期会根据平均出块时间重新计算每年周期的区块数,以逼近365.25天,因此 每个Staking周期都会调整当前Staking周期的总奖励数量,每年的总奖励数为年初奖励池的总数,每个Staking周期的总奖励数为当年剩余的奖励总数除于剩余的Staking周期数的商。

节点奖励分为以下三部分:

第一, 区块奖励 。每成功产出一个区块,验证节点将获得LAT作为奖励。 Staking奖励总量的1/2作为区块奖励,按10,750个区块平均发放

第二, 手续费 。打包交易的手续费全部由打包区块的验证节点收取。

第三, Staking奖励Staking奖励总量的1/2作为Staking奖励,Staking周期结束后,平均发放给所有备选节点。

委托奖励根据节点设置的委托奖励比例计算,根据该比例,我们将委托收益部分放入到委托收益池,委托人需要手动领取收益。

PlatON的以上奖励发放存在一定周期。目前,区块奖励是在区块里直接发放到出块节点本身的账户,并按照其设置的委托奖励比例存入到委托收益池;而Staking奖励,在Staking周期的最后一个区块里才会被分配到Staking池,平均分发到101个备选节点的账户里,并按照各节点设置的委托奖励比例存入到委托收益池。

关于大家最关心的委托奖励比例,这里说明一下,是可以随时发起修改的,但修改后在当前Staking周期是不生效的,要等到下一个Staking周期才会生效。

九、惩罚机制

针对 nothing-at-stake问题,我们也设有惩罚机制,并主要针对恶意节点,譬如双签双出、长期不在线、违背共识协议等影响整个系统稳定性的行为。

PlatON惩罚机制包括两大类:

第一是针对零出块。 这方面目前我们的规则是比较严格的,只要某一共识周期被选为验证节点但是没有出块,则会在下一轮共识周期的第230个区块里被判为零出块(即使出块了,但因网络不同步等问题导致没有被任何其他节点验证通过也算零出块)。对于这种情况,我们的做法是强制解质押,质押金锁定28个Staking周期才返还,另外也有处罚金,数量可配置,目前为0。

第二是针对双签双出等恶意行为。 因为网络上的每个签名是P2P广播的,不能保证每个签名被所有节点收到,因此双签双出的行为只能通过举报来处理。双签举报有一个有效期,超过28个结算周期后的举报为无效举报。

对于双签双出的行为,我们的做法除强制解质押、质押金锁定28个Staking周期外,另行扣除0.1%作为惩罚,处罚金50%返回激励池,50%给举报者。50%放入奖励池,一方面是整个社区的补偿,另一方面也是防止通过自举报达到无需冻结解锁质押金的行为。这些惩罚参数可通过治理投票进行调整。

以上,就是共识方案和经济模型的介绍。

最后,李升林介绍了近期技术进展: PlatON预计于4月5日发布新贝莱世界测试网络0.11.0新版本,包括WASM合约和底层多项优化 (具体优化见下图)。

目前测试网正在平稳运行当中,欢迎大家积极加入我们,促进PlatON网络建设和治理的进一步升级优化。
微信图片_20200227211445
扫码获取PlatON更多详情,还有技术干货哦!

2 个赞