LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 区块链资产 > B1发布改善EOS参与者之间的经济一致性。V神Verkle树的详细内容解说

B1发布改善EOS参与者之间的经济一致性。V神Verkle树的详细内容解说

2021-06-20 锦瑟币58078 来源:区块链网络


我是柚哥,先来播报EOS最新消息,然后给大家发一篇V神为Verkle 树的详细文章。

今年4 月,blockone根据 Prysm 集团的经济分析提出了他们基于股权的投票和奖励提案。最近,B1已经汇总了反馈意见,为网络做出贡献并改善EOS参与者之间的经济一致性。

AtticLab BP 基于股权的投票和奖励提案反馈

今年 4 月,Block.one 提出了基于 Prysm 集团经济分析的基于股权的投票和奖励提案。我们仔细研究了该提案,并仔细研究了社区反馈,以便为网络做出贡献并改善 EOS 参与者之间的经济一致性。建议的提案对网络发展做出了重大贡献,我们的团队已经汇总了我们的反馈意见。

质押奖励

根据来自资源的数据,EOS 区块生产者获得 18.5% 的通胀调整奖励,而备用区块生产者仅获得 0.75% 的奖励率,这大约是奖励百分比的 20 倍。根据该提案,备用区块生产者用于维护 IT 基础设施的成本减少了三倍,因此盈利能力大幅下降。我们的估计表明,目前将通货膨胀率限制在 3.8% 并将 32% 的年通货膨胀率留给所有区块生产者的建议从经济角度来看可能无法解决备用区块生产者的动机问题。关键结果将是按比例奖励价值提高 62%,盈利能力整体改善。尽管立场购买 BP 的奖励百分比很可能低于两位数,因此会缩小生产者的激励范围。

链上性能

该提案指出,“如果未来经济活动的实际增长率长期在2.4%的范围内,那么3.5%的初始总通证通胀率可能会相应下调,以避免对经济活动造成重大风险。 EOS 代币作为一种有效的交换媒介发挥作用”。我们真的怀疑是否有历史证据表明链上性能、通货膨胀和代币价格之间存在强相关性。根据资源的token统计,2021年6月8日通过EOS区块链处理的交易总数为338万笔,而2020年6月8日为356万笔。 2021 年 6 月 8 日 EOS/USD 价格为 5.07 美元,而 2020 年 6 月 8 日仅为 2.78 美元。

因此,结论是,虽然链上交易量在 12 个月间隔的选定日期下降了 5%,但代币价格上涨了 82%。

因此,我们怀疑是否应将经济活动增长用作评估拟议通胀率的高低的基准,并应单独评估。 EOS 代币估值与 BTC 价格动态以及生态系统中的其他代币有很强的相关性。如果“加密冬天”情景在不久的将来演变并且 BTC 价格下跌 50% 或更多,即使 EOS 链上活动显示强劲增长,EOS 代币价格也很可能会跟随这种动态。在这方面,另一个需要解决的问题是——考虑到当前的年度 IT 维护费用,EOS 代币的价格是多少才能使区块生产者的业务能够自我维持?根据估计,如果 EOS 价格跌至 3 美元,区块生产者将获得很少或根本没有利润。一直低于这个水平的 BP 将遭受损失。

通货膨胀和奖励

将通货膨胀率提高到 3.8% 的提议可能还有其他缺点,例如更多的赌注者会加入池中,因此按比例奖励百分比的结果会以相反的方式出现——与当前水平相比下降。它可以从当前总供应量中大约 45% 的代币质押到 Tezos 显示 77% 的代币质押的水平。

根据 Tezos 的统计,区块生产者获得的受通货膨胀调整的奖励极低,几乎接近于零,低至 0.7%。因此,通货膨胀加剧将导致质押代币的总份额增加。因此,按比例奖励将受到两个因素的影响:质押者的数量增加速度快于奖励池,其次,高通胀消除了净奖励。如果奖励低于两位数的水平,很可能更多的赌徒会更喜欢产量农业选项。

移除 bpay 奖励并通过 vpay 分发所有奖励的提议。

这似乎是一个正确的思路,而且得到了社区的积极支持。相信奖励并不是平均分配的:前21名的BP和第31名以下的BP承担的成本几乎相等,而第21至31名的BP获得的奖励要少得多。可能值得考虑为活跃参与者分配成本和奖励,这将最终导致网络去中心化的改进。同样重要的是要考虑到,要想获得 TOP-21 EOS 级别的奖励,必须达到阈值,目前约为 2.1 亿票。

表现不佳或未能在指定时间出块的 BP 将产生惩罚效应,降低系统中的总通货膨胀率。

目前可以肯定的是,被跳过的区块非常罕见:区块的产生成功率约为 99.9%。因此,产生惩罚效应是很有可能的,因为它不会对网络的经济造成严重损害,同时可能会改善参与者的纪律,所以显然,这是一个很好的建议。

以下是B1对提案的回复:

基于 EOS 权益投票和奖励提案

关于提案

自 EOSIO 成立以来,其公共实现一直是一些最强大的开源网络,它使网络运营商和代币持有者的利益保持一致。为了促进网络参与者之间实现激励一致性的持续努力,我们与 Prysm Group 合作分析了向 EOS 公共区块链的质押奖励模型的拟议迁移,最终形成了 Stake-Baked Voting & Rewards Proposal。

如果采用,该模型有可能通过将通货膨胀分配给任何参与支持共识和保护区块链的人来进一步提高所有网络参与者之间的一致性,我们认为这是一种更公平的分享通货膨胀的方法。

作为下一步,我们希望该提案将在社区内引发讨论,因为各个利益相关者开始测试提议的代码。

质押奖励提案

Block.one 聘请了领先的顾问 Prysm Group 来分析质押奖励模型对 EOS 公共区块链的影响。

阅读提案

代码存储库和错误赏金

直接向代码存储库提交评论和问题或参与 Bug 赏金计划。

查看代码

提交错误

区块生产者

鼓励区块生产者测试、审查并提供有关模型的反馈,因为与模型的互动是我们在分配选票时会考虑的一个因素。所有希望被考虑的区块生产者都应在他们选择的平台上发布他们的发现,并通过表格提交可公开访问的链接。

提交反馈

*此测试程序旨在关注代码本身,而不是 Prysm Group 在基于股权的投票和奖励机制白皮书中提出的示例经济参数。 Block.one 或 Prysm 不会考虑对示例经济参数的任何反馈。此类反馈应与 EOS 网络社区共享和讨论,因为社区而非 Prysm Group 或 Block.one 将负责确定和采用最能满足社区需求的特定参数。

Verkle 树

Verkle 树正在成为以太坊即将进行的扩展升级的重要组成部分。它们与 Merkle 树具有相同的功能:您可以将大量数据放入 Verkle 树中,并对可以通过以下方式验证的任何单个或一组数据进行简短证明(“见证”) 只有树根的人。然而,Verkle 树提供的关键特性是它们在证明大小方面效率更高。如果一棵树包含 10 亿条数据,在传统的二叉 Merkle 树中进行证明将需要大约 1 KB,但在 Verkle 树中,证明将少于 150 字节——这一减少足以使无状态客户端最终在实践中可行 .

这篇文章将解释什么是 Verkle 树以及它们背后的密码魔法是如何工作的。其短证明大小的代价是对更复杂的密码学的依赖程度更高。也就是说,在我看来,密码学仍然比现代 ZK SNARK 方案中的高级密码学简单得多。在这篇文章中,我将尽我所能来解释它。

Merkle Patricia vs Verkle Tree 节点结构

就树的结构(树中节点的排列方式以及它们包含的内容)而言,Verkle 树与目前以太坊中使用的 Merkle Patricia 树非常相似。每个节点要么是 (i) 空的,要么是包含键和值的叶节点,要么是 (iii) 具有固定数量的子节点(树的“宽度”)的中间节点。中间节点的值计算为其子节点值的散列。

值在树中的位置基于其键:在下图中,要到达键为 4cc 的节点,从根开始,然后向下到达位置 4 处的子节点,然后向下到达子节点 在位置 c(记住:十六进制中的 c = 12),然后再次下到位置 c 的孩子。要到达带有密钥 baaa 的节点,请转到根节点的位置 b 子节点,然后是该节点的位置 a 子节点。路径 (b,a) 处的节点直接包含键为 baaa 的节点,因为树中没有其他以 ba 开头的键。

十六进制(每个父节点 16 个子节点)Verkle 树中的节点结构,此处填充了六个(键、值)对。

Verkle 树和 Merkle Patricia 树结构的唯一真正区别在于 Verkle 树在实践中更广泛。更广泛。当宽度 = 2 时,帕特里夏树的效率最高(因此以太坊的十六进制帕特里夏树实际上是次优的)。另一方面,Verkle 树的宽度越高,证明越短;唯一的限制是,如果宽度太高,则创建校样的时间就会过长。为以太坊提议的 Verkle 树的宽度为 256,有些人甚至赞成将其提高到 1024 (!!)。

承诺和证明

在 Merkle 树(包括 Merkle Patricia 树)中,值的证明由整个姐妹节点集组成:证明必须包含树中的所有节点,这些节点与路径中的任何节点共享一个父节点 您要证明的节点。理解起来可能有点复杂,所以这里有一张证明 4ce 位置值的图片。必须包含在证明中的姐妹节点以红色突出显示。

这是很多节点!您需要在每个级别提供姐妹节点,因为您需要一个节点的整个子节点集来计算该节点的值,并且您需要继续这样做直到到达根节点。您可能认为这并没有那么糟糕,因为大多数节点都是零,但这只是因为这棵树的节点很少。如果这棵树有 256 个随机分配的节点,则顶层几乎可以肯定所有 16 个节点都已满,而第二层将平均满 63.3%。

另一方面,在 Verkle 树中,您不需要提供姐妹节点;相反,您只需提供路径,并提供一点额外的证据。这就是为什么 Verkle 树受益于更大的宽度而 Merkle Patricia 树则没有:在这两种情况下,更大宽度的树会导致更短的路径,但在 Merkle Patricia 树中,这种效果被需要提供所有宽度的更高成本所淹没 - 证明中每级 1 个姐妹节点。在 Verkle 树中,该成本不存在。

那么我们需要作为证明的这个额外的东西是什么?要理解这一点,我们首先需要回到一个关键细节:用于从其子节点计算内部节点的哈希函数不是常规哈希。相反,这是一个矢量承诺。

向量承诺方案是一种特殊类型的散列函数,对列表 h(z1,z2...zn)→C 进行散列。但是向量承诺具有特殊性质,即对于承诺 C 和值 zi,可以简短地证明 C 是对某个列表的承诺,其中第 i 个位置的值是 zi。在 Verkle 证明中,这个简短的证明取代了 Merkle Patricia 证明中姐妹节点的功能,让验证者相信子节点确实是其父节点给定位置上的子节点。

树中值的证明不需要姐妹节点;只是路径本身加上一些简短的证明,以将路径中的每个承诺与下一个承诺联系起来。

在实践中,我们使用比向量承诺更强大的原语,称为多项式承诺。多项式承诺让您可以对多项式进行散列,并在任何时候为散列多项式的评估提供证明。您可以使用多项式承诺作为向量承诺:如果我们同意一组标准化的协调 (c1,c2...cn),给定一个列表 (y1,y2...yn),您可以承诺多项式 P,其中 P( ci)=yi 对于所有 i∈[1..n] (你可以用拉格朗日插值找到这个多项式)。我在关于 ZK-SNARKs 的文章中详细讨论了多项式承诺。最容易使用的两种多项式承诺方案是 KZG 承诺和防弹式承诺(在这两种情况下,一个承诺都是一个 32-48 字节的椭圆曲线点)。多项式承诺为我们提供了更大的灵活性,让我们能够提高效率,而且恰好可用的最简单和最有效的向量承诺是多项式承诺。

该方案已经非常强大:如果您使用 KZG 承诺和证明,则证明大小为每个中间节点 96 字节,如果我们设置宽度 = 256,则空间效率比简单的 Merkle 证明高近 3 倍。然而,它 事实证明,我们可以进一步提高空间效率。

合并证明

通过使用多项式承诺的额外属性,我们不需要为路径上的每个承诺提供一个证明,而是可以制作一个固定大小的证明,以证明路径上承诺之间的所有父子链接对于无限数量的密钥。我们使用通过随机评估实现多重证明的方案来做到这一点。

但是要使用这个方案,我们首先需要将问题转换成一个更结构化的问题。我们有 Verkle 树中一个或多个值的证明。该证明的主要部分由通往每个节点的路径上的中间节点组成。对于我们提供的每个节点,我们还必须证明它实际上是它上面(并且在正确位置)节点的子节点。在上面的单值证明示例中,我们需要证明来证明:

那个key: 4ce 节点实际上是prefix: 4c 中间节点的position-e 子节点。

前缀:4c 中间节点实际上是前缀:4 中间节点的位置-c 子节点。

前缀:4中间节点实际上是根的位置4子节点

如果我们有证明多个值的证明(例如 4ce 和 420),我们将拥有更多节点和更多链接。但无论如何,我们要证明的是一系列形式为“节点 A 实际上是节点 B 的位置 i 子节点”的语句。如果我们使用多项式承诺,这将变成等式:A(xi)=y,其中 y 是对 B 的承诺的哈希值。

这个证明的细节是技术性的,Dankrad Feist 比我自己解释得更好。到目前为止,证明生成中最笨重和最耗时的步骤涉及计算以下形式的多项式 g:

g(X)=r0A0(X)?y0X?x0+r1A1(X)?y1X?x1+...+rnAn(X)?ynX?xn

只能计算每一项

riAi(X)-yiX-xi 如果该表达式是多项式(而不是分数)。这要求 Ai(X) 在点 xi 处等于 yi。

我们可以通过一个例子看到这一点。认为:

Ai(X)=X2+X+3

我们正在证明 (xi=2,yi=9)。 Ai(2) 等于 9,所以这会起作用。

Ai(X)?9=X2+X?6,和

X2+X-6X-2 给出一个干净的 X-3。但是如果我们试图适应 (xi=2,yi=10),这将不起作用; X2+X-7 不能在没有小数余数的情况下被 X-2 干净地除。

证明的其余部分涉及提供对 g(X) 的多项式承诺,然后证明该承诺实际上是正确的。再一次,请参阅 Dankrad 的更多技术说明以了解证明的其余部分。

一个证明可以证明无限数量的父子关系。

我们有了它,这就是最大效率的 Verkle 证明的样子。

使用此方案的证明大小的关键属性

Dankrad 的多随机评估证明允许证明者证明任意数量的评估 Ai(xi)=yi,给定对每个 Ai 的承诺和正在证明的值。此证明大小恒定(一个多项式承诺、一个数字和两个证明;128-1000 字节取决于所使用的方案)。

不需要明确提供 yi 值,因为它们可以直接从 Verkle 证明中的其他值计算出来:每个 yi 本身就是路径中下一个值(承诺或叶子)的哈希值。

也不需要显式提供 xi 值,因为可以从键和从路径导出的坐标计算路径(以及因此 xi 值)。

因此,我们所需要的只是我们正在证明的叶子(键和值),以及从每个叶子到根的路径上的承诺。

假设一棵宽度为 256 的树和 232 个节点,证明将需要被证明的键和值,加上(平均)从该值到根的路径上每个值的三个承诺。

如果我们要证明许多值,则可以进一步节省:无论您要证明多少个值,您都不需要提供超过 256 个顶级值。

证明大小(字节)。行:树大小,列:已证明的键/值对

1 10 100 1,000 10,000

256 176 176 176 176 176

65,536 224 608 4,112 12,176 12,4**

16,777,216 272 1,040 8,8** 59,792 457,616

4,294,967,296 320 1,472 13,616 107,744 937,472

假设宽度为 256 和 48 字节的 KZG 承诺/证明。另请注意,这假设树最大为偶数;对于现实的随机树,添加 ~0.6 的深度(因此每个元素 ~30 字节)。如果使用防弹风格的承诺而不是 KZG,那么减少到 32 字节是安全的,因此这些大小可以减少 1/3。

证明者和验证者计算负载

生成证明的大部分成本是计算每个riAi(X)-yiX-xi 表达式。这需要大约四次字段运算(即 256 位模算术运算)乘以树的宽度。这是限制 Verkle 树宽度的主要约束。幸运的是,四个字段操作的成本很小:单个椭圆曲线乘法通常需要数百个字段操作。因此,Verkle 树的宽度可以非常高;宽度 256-1024 似乎是最佳范围。

要编辑树,我们需要从叶子到根“沿着树向上走”,在每一步更改中间承诺以反映发生在较低位置的更改。幸运的是,我们不必从头开始重新计算每个承诺。相反,我们利用同态性质:给定多项式承诺 C=com(F),我们可以通过取 C'=C+com(G) 来计算 C'=com(F+G)。在我们的例子中,G=Li?(vnew?vold),其中 Li 是多项式的预先计算的承诺,在我们试图改变的位置等于 1,在其他地方等于 0。

因此,一次编辑需要大约 4 次椭圆曲线乘法(叶子和根之间的每个承诺一个,这次包括根),尽管可以通过预先计算和存储每个 Li 的许多倍数来大大加快速度。

证明验证非常有效。对于 N 个值的证明,验证者需要执行以下步骤,对于甚至数千个值,所有这些步骤都可以在 100 毫秒内完成:

一种大小-N椭圆曲线快速线性组合

大约 4N 个字段操作(即 256 位模算术运算)

不依赖于证明大小的少量恒定工作量

另请注意,与 Merkle Patricia 证明一样,Verkle 证明为验证者提供了足够的信息来修改被证明的树中的值,并在应用更改后计算新的根哈希。这对于验证例如。块中的状态更改已正确处理。

结论

Verkle 树是 Merkle 证明的强大升级,允许更小的证明尺寸。不需要在每个级别提供所有“姐妹节点”,证明者只需要提供一个证明来证明沿着从每个叶节点到根的路径的所有承诺之间的所有父子关系。这使得证明大小与理想的 Merkle 树相比减少了约 6-8 倍,与以太坊今天使用的十六进制 Patricia 树相比减少了 20-30 倍以上(!!)。

它们确实需要更复杂的密码学来实现,但它们提供了获得可扩展性巨大收益的机会。从中期来看,SNARK 可以进一步改进:我们可以对已经高效的 Verkle 证明验证器进行 SNARK 以将见证大小减少到接近于零,或者如果/当 SNARK 变得更好时(例如通过 GKR)切换回 SNARKed Merkle 证明 ,或非常 SNARK 友好的哈希函数,或 ASIC)。更进一步,量子计算的兴起将迫使使用散列的 STARKed Merkle 证明进行更改,因为它使 Verkle 树所依赖的线性同态变得不安全。但就目前而言,它们为我们提供了与使用更先进的技术相同的扩展收益,而且我们已经拥有有效实施它们所需的所有工具。


—-

编译者/作者:锦瑟币58078

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...