体验Tezos“自我修正”的过程(上)
在这篇文章中,将描述 Tezos “自我修正”程序在实践中是如何运作的,并提出一些近期改进的方法。
更新到2020年:后巴比伦时期的图表更新
(感谢Pietro Abate的更新)
背景
Tezos 是一个自我修正的区块链网络,该网络整合了正式的链上机制,可以提议,选择,测试和激活协议升级,而无需进行硬分叉。
在这篇文章中,我将描述 Tezos “自我修正”程序在实践中是如何运作的,并提出一些近期改进的方法。更深层次的问题,如将投票权从共识中分离出来,或者如何为链上的修正提案提供资金,不在本文讨论范围之内,但却是未来需要考虑的重要话题。
这幅作品需要具备Tezos Baker(烘焙师)的基本知识。我建议阅读《It’s a baker’s life for me》和 Tezos 的利益证明文件来开始。
*为了避免与 Baker 的“周期”相混淆,我使用“ amendment process ”而不是“ election cycle ”。
1. 了解 Tezos 修正程序
修正过程可以分为四个独立的阶段:提案阶段、探索或“测试”投票阶段、测试阶段和升级投票阶段。这四个周期中的每个周期持续8个Baker周期(即32,768个区块或大约22天18小时),从提案到激活几乎需要花费整整3个月。
正如下面的流程图所示,任何未能进入下一周期的情况都将使网络恢复提议阶段。换句话说,如果周期流转失败,整个修正过程将重新启动。
这正是自Tezos 创世区块在六月份被社区采用以来发生的情况简介。在没有任何提案的情况下,自创世区块开始,每八个周期重新启动一个新的提案期。
那么它是如何工作的呢?
1.1 提案阶段
Tezos 修正过程从提案期开始,在此期间,“烘焙师”(Baker)可以通过提案操作在链上提交提案,该操作以“源”、“周期”和“提案哈希”作为参数。“源”是提交提案操作的Baker,“period”指定提交提案的特定提案期限,“提案哈希”是串联的.ml / .mli源文件的压缩包的哈希。
Baker 在每个提案期内最多可提交20份提案。当提交一份提案时,Baker 也提交一份对该提案的投票,该投票数等于期初股权余额中的滚动数。
对于那些想要跟随的人,Tzscan.io(以及其他 Tezos 区块探索者)允许你观看即将到来的提案。
然后,其他 Baker 可以通过提交自己的提案操作来对提案进行投票。正如白皮书中所述,提案期的投票是通过“赞成投票”进行的,这意味着每位 Baker 可以对20个提案各进行一次投票。可以将这种行为视为“投票”的一种形式。
在提议期结束时,该网络将计算提案投票,投票最多的提案将进入探索投票期。如果没有提交任何提案,或者提案之间有联系,一个新的提案期就开始了。
1.2 探索投票期(在当前议定书中称为“测试投票”)
在探索投票期,Baker 可以对上一个提议期排名靠前的提议进行投票。
投票是通过“投票操作”(Ballot Operation)在链上完成的,整个过程包含“source”、“period_n”、“proposal”和“Ballot”。“source”是 Baker,“period_n”是操作提交的具体投票周期,“proposal”是提案,“ballot”是 Baker 的投票,可以是“(是)Yay”、“(否)Nay”、“(弃权)Abstain”。
与在提案期一样,Baker 的投票基于探索投票期开始时其质押余额中的“卷数”(Rolls)。每个 Baker 在投票期间只能进行一次投票操作。
在八个周期结束时,网络将对票数进行计数。如果投票参与(“赞成”,“反对”和“弃权”的总数)达到法定人数(如下所述),并且有80%的非弃权 Baker 通过,则提案将进入测试期。
如果未达到法定人数或80%的绝对多数,修正过程将恢复到提案期的开始。
与提案期的一个显著区别是,在探索投票期之后,法定人数更新如下,其中Qt为之前的法定人数,qt为总参与人数:
这将调整法定人数以匹配过去参与率的指数移动平均数。
在创世区块,开始时的法定人数是80%,直到第一次探索投票结束前都将保持在80%。
1.3 测试周期
如果在探索投票期间,一项提案获得了绝对多数人的批准,那么测试阶段(8个周期)的测试网分支将与 Tezos 主链平行运行48小时。为了减少网络将测试网分支误视为主链的风险,已保守地设置了该48小时常数。
正如在2014年的Tezos白皮书中所描述的那样,提案可以访问一个小型标准库,但已被沙盒化,不能进行任何系统调用。
测试期的目的是评估一项提案是否值得修正协议。
测试网分支确保升级不会破坏网络,并且如果采用了升级,网络将继续进行有效的状态转换。然而,48小时的测试时间显然太短了,无法确定一项提案是否值得一试,以及是否安全。特别是,它可以维持超过48小时的活跃状态,并且不包含安全漏洞。因此,一个与修订提案相匹配的测试网很可能在余下的7.3个测试周期内运行,使网络参与者能够评估和讨论修订,从而更好地了解其特性。
1.4 升级投票期
测试期结束即升级投票期开始。在此期间,网络根据链下讨论和测试期期间的行为来决定是否采用修正提案。
与探索投票阶段一样,Baker 使用投票操作提交他们的投票,投票的权重与推广投票期间开始时的质押余额中的掷骰数成比例。同探索投票期一样,每名 Baker 在此期间只能进行一次投票操作。
在升级投票期结束时,网络会统计投票数。如果参与率达到最低法定人数,并且不弃权的 Baker 中有80%的绝对多数投了赞成票,则该提案将被激活为新的主网。
否则,流程将再次回到第一阶段。根据参与率更新最小法定人数,所用公式与探索投票期结束时相同:
修改后的协议被激活后,新的提案期开始,修改过程重新开始。
我们将在下篇继续为大家介绍改进Tezos修正流程,敬请期待!
Bitcoin Price Consolidates Below Resistance, Are Dips Still Supported?
Bitcoin Price Consolidates Below Resistance, Are Dips Still Supported?
XRP, Solana, Cardano, Shiba Inu Making Up for Lost Time as Big Whale Transaction Spikes Pop Up
XRP, Solana, Cardano, Shiba Inu Making Up for Lost Time as Big Whale Transaction Spikes Pop Up
Justin Sun suspected to have purchased $160m in Ethereum
Justin Sun suspected to have purchased $160m in Ethereum