月亮链 月亮链
Ctrl+D收藏月亮链
首页 > SHIB > 正文

以太坊:为以太坊引入 KZG 承诺:工程师视角(上)_VALUE

作者:

时间:1900/1/1 0:00:00

免责声明?:本文仅仅是汇集、链接了许多已经公开的成果,对应的荣誉应归属于相应的作者/开发者。

P.S.?:特别感谢EthereumR&Ddiscord频道帮助我理解KZG10承诺的某些方面。此外,还要感谢?@vbuterin帮忙审校本文。

PPS?:本文是出于lodestar团队的利益而撰写的;lodestar是一个很棒的ETHPoS客户端,基于typescript,可以让以太坊的服务?无处不在,也开启了作者对以太坊生态和创新的理解。

我希望本文也能对全世界的其他开发者/技术人员有所帮助。本文遵循CC0自由创作公约,作者已放弃所有权利。

动机

作为一个有益的指南,帮助读者熟悉、总结以太坊背景下?KZG10承诺的提议用法,并提供深入理解的指南。

本文的目的更多是总结,而非严谨,不过,您可以点击文中所附的链接,它们会有更详细的解释。

基础原理

注-1:哈希值就是一个对被哈希的原像的承诺,用于检验被哈希的数据的完整性。

举个例子,假设?h1=H(t1,t2,t3..),然后把h1交给验证者,然后给出一个伪造的区块?(t1,t2',t3...),对方快速计算这个伪造区块的哈希值之后,发现两者对不上,就可以合理地拒绝你的伪造区块。

类似的,一棵默克尔树的根节点,就是对按特定索引组织起来的所有叶子节点的承诺。或者简单来说,是对?indexes=>values的映射的承诺。

现场丨MAP协议开源贡献者兰舟:以太坊难以吸收新鲜的血液,波卡可能会成为以太坊的强力竞争者:金色财经现场报道,11月20日,由金色财经主办,Blocklike,鲸交所,四块科技,DSFS-LABS协办的金色沙龙第57期在杭州举办,在圆桌环节,MAP协议开源贡献者兰舟表示,以太坊在DeFi生态可以称之为垄断,但是难以吸收新鲜的血液,由于技术壁垒较高,很少会有新的开发者加入。而波卡则对链开发者很友好,无论是内容还是社区推广上面,波卡都做的很优秀,所以波卡可能会成为以太坊的强力竞争者。[2020/11/20 21:31:18]

而这里的“证明”就是一个叶子的?默克尔分支?以及?兄弟哈希值,凭借这些数据,可以逐级向上哈希,并通过最终的哈希值是否与根节点一致来判断该叶子是否与这棵默克尔树一致。

Bitfly:应该建议为以太坊主网使用16GB的主存:Bitfly刚刚发布推文称,在过去的1500个epoch中,Medalla始终还没有达到最终状态,同时节点使用的内存比在正常网络中的还要多。8GB内存的用户很难保持同步。我们应该建议为以太坊主网使用16GB的RAM(主存)。[2020/10/20]

可看看这里的介绍?:)。

注-2:数据映射与一个多项式的对应关系

indexes=>values?这样的数据映射可以表示为一个多项式?f(x),并且?f(index)=value。“f(index)=value”通常被称为?求值形式,而“f(x)=a0+a1.x+a2.x^2...”则是其?系数形式。直观来说,我们其实是根据映射中所有的?(index,value)?点,拟合出了一个多项式。

为了简便计算,并确保多项式与数据映射的一一匹配,我们不使用索引值来作为f(x)的x,用的是?w^index,也就是?f(w^index)=value,其中w是d次单位根,而d是该多项式的次数。因此,我们可以使用快速傅立叶变换来实现高效的多项式计算,比如乘法和除法,在求值形式下其计算复杂度会是?O(d),而且可以在?O(d*log(d))?的复杂度内转化回系数形式。所以保持?d?数值较小还是很有好处的。

V神:不认为以太坊2.0第0阶段2021年才能上线:金色财经报道,据此前消息,以太坊2.0研究人员Justin Drake表示以太坊2.02第0阶段可能在2021年上线。对此,V神在发给Drake的信息中表示:“我个人非常不同意这一点,并且无论准备程度如何,我都希望显著地早于该日期启动第0阶段。”对此,V神解释称,eth1从第一个多客户端测试网到正式启动只花了4个月的时间,因此当eth2测试网Altona启动时,他认为从7月初开始就进入了四个月的倒计时。eth2第0阶段在某种程度上比eth1更简单,但在某些方面也更复杂。因此,总的来说,V神表示没有理由认为eth2第0阶段的发布会比eth1花费更多的时间。[2020/7/11]

注-2.1:以太坊的状态是一个从地址到账户状态的映射。

动态 | Rivet将为以太坊钱包MyEtherWallet提供隐私优先的节点服务:以太坊钱包MyEtherWallet(MEW)宣布与Rivet建立新的合作伙伴关系,以满足其区块链基础设施的需求。Rivet提供了一种隐私优先的节点服务,旨在快速、准确、可靠地连接以太坊区块链。(CryptoNinjas)[2019/11/22]

背景知识

以太坊当前使用默克尔树作为EVM数据的承诺。此种承诺方式可以:

逐个区块地插入/更新数据,以增量的方式产生新的根哈希

验证者可以逐个区块地校验和证明

前缀树结构在这里提供了这种逐块更新的特性。

给定一个?d?叉的、有?N?个叶子的前缀树,任意更改一个叶子节点,都需要更新?O(log-d(N))?个节点以计算反映新状态的新根值;而这需要额外的?(d-1)*O(log-d(N))?个兄弟节点哈希值/承诺来用作时间和空间的见证数据。一个区块可视为一个需要更改?m?个随机叶子的批量更新,且?m<<N。因为预计只有一小部分的节点可以共享witness和计算,所以,每次更新的?Order不会有太大改变。

声音 | 江卓尔:分片提升容量难度大时间长 故而Vitalik提出使用BCH或者ETC作为以太坊数据层:7月25日消息,莱比特矿池CEO江卓尔表示,分布式系统(去中心化系统)有一个不可能三角,称为分布式系统CAP定理,指的是在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得。Vitalik提出用分片方法提升容量,但分片方法的难点是一致性,也就是CAP中的C,Consistency(一致性),这个是一个要挑战不可能三角的开发,所以开发难度很大,时间长,所以Vitalik才提出使用BCH或者ETC作为以太坊数据层的短期方案,来解决ETH的燃眉之急。[2019/7/25]

在下列情况下,问题还会变得更加严重:

部分采用快速同步的协议,比如?beamsync,会下载并快速验证区块头来追上最新的主链顶端并参与网络的共识,注意,它不会先行构建好完整的状态再参与共识,而是通过获取错过的/未加载的状态的见证数据,来逐步构建出完整的状态

为?轻节点?服务的时候,他们只关心自己,只想获得区块链状态的特定部分

网络走向完全无状态时,所有的事务和合约操作,都要附带相关的见证数据,来证明数据输入和输出的正确性

在验证者会被混洗到不同分片的区块链分片模型中,要让验证者每到一个分片就构建完整状态是不现实的

代码默克尔化,访问代码时需要附带这些代码块的见证数据

在状态保质期协议中,访问过期的账户需要重新附带状态见证数据,以便重建该账户的状态

在无状态以太坊项目的一个实验中,出现了?1MB?的区块证据,在发生攻击的时候还会膨胀好几倍。

其中一种解决办法是转为使用“二进制默克尔树”,也就是把?d?降下来,这样虽然树的深度会增加,但仍然是?O(log(N))?的规模。

为什么要使用KZG10承诺?

对于要放在区块头内承诺数据的承诺方案来说,以下特点是理想属性:

证据的数据量较小,可以塞进区块头里,且仍具有很强的安全保证

易于证明某个承诺是使用分组化数据的一个子集生成出来的

足够小,最好证据的数据量是恒定的

为了跟踪数据,承诺应当易于以增量的形式变更

基于KZG10承诺的方案就是大家一番搜寻的结果。

译者注:可以看到,作者有三个?

什么是KZG10承诺?

KZG10承诺可以视为另一种哈希方案,只不过它哈希的不是“字节”,而是多项式。

实际上,它就是?计算?多项式?f(x)?在秘密的定点?s?上的值,只不过它们都是表示在一条椭圆曲线上的,也即?=f()。这需要一个受信任的启动设置,来生成、、…?,而?d?就是多项式的最大阶数。

这里的??表示点t处的椭圆曲线值,也就是?t,是椭圆曲线加法群的生成点相加t次。椭圆曲线上的所有计算都是对Fp求模,Fp给曲线施加了一定的范围。

注3.0:在?indexes=>values?的映射中,所有的值都要表示为一条椭圆曲线上的元素,即,以便计算承诺。这就使得value的大小有了限制。在BLS曲线上,大概在31~32字节之间。为了简便,value的大小就限制在31字节,任意更大的值都要分块化,并用其索引值来恰当地表示。

注3.1:可以被视为t的哈希值,因为从找回t是个离散对数问题,对于安全的曲线来说,是很难做到的。

注3.2:s是一个秘密的数值,永远不应泄漏给任何人/所有人,但椭圆曲线点?,?…?及其在另一条椭圆曲线上的值?'?则应生成并公开出来,让所有人知道。这就是启动设置要做的事。

这些?系统参数?定义了整个系统的安全性,因为?s?暴露会使得攻击者可以构建任意内容的?证据。因此,一个有N个参与者共同参与的启动设置仪式中,他们要通过协议把本地的s结合起来,这样只要有1个参与者是诚实的、在参与之后就销毁掉了自己提供的s,这个系统就会是安全的。即,信任模型是1/N模型,N越高,风险就越低。

注3-3:?是一个线性的操作,即+=,而且?a=。

如果上所述,我们将数据映射表示为?f(w^index)=value,即一个多项式的求值形式,也可说,我们用这些?(w^index,value)?点拟合出了一条曲线。

所以,一个多项式f(x)的KZG10承诺c(f)?是一个椭圆曲线点?f(),这个点可以靠在f(x)的展开式中插入?,?…计算得出。

注3-4:f(s)是无法计算的,因为s是个秘密值。但是?C(f)==f()?是可以计算的。

注3-5:f(x)的承诺?C(f)=?也是一个线性的运算符,即,C(f+g)=C(f)+C(g)。

Rollup/聚合器?可以使用这一属性来更新承诺。在求值形式下,更新一个求值点将导致f(x)完全改变,但因为有这个属性,其承诺c(f)仍然是易于更新的。

标签:以太坊ETHALUVALUE以太坊币今日价格行情人民币etha币能买不valuetokenvalue币团队跑路

SHIB热门资讯
比特币:科普:什么是 Taproot 升级?_OOT

摘要:比特币作为有史以来第一种加密货币,缺乏其他一些加密货币所具备的功能。Taproot升级计划于2021年11月的某个时候实施,将为比特币带来大量功能,包括更低的费用、增强的隐私和创建智能合约.

1900/1/1 0:00:00
比特币:金色前哨丨中央打击比特币 币圈应对:矿业出海 停止大宗交易区_BUSD

为响应中央打击比特币挖矿和交易的要求,最近两周,各地政府和主管监管机构在集中出台政策。2021年6月18日四川省有关部门下发通知要求立即停止向虚拟货币“挖矿”项目供电.

1900/1/1 0:00:00
RBI:最高法:明确区块链存证效力范围 完善证据真实性审查标准_哪个是区块链最核心的内容

涉区块链存证效力范围得以明确。6月17日,最高人民法院介绍我国互联网司法发展情况,发布《人民法院在线诉讼规则》和《人民法院司法改革案例选编》.

1900/1/1 0:00:00
比特币:金色早报 | 葡萄牙央行首次向加密货币交易所授予运营许可证_加密货币和数字货币的区别和联系

头条▌北京地区率先上线ATM数字人民币与现金的互兑功能目前,工行北京市分行和农行北京市分行,已在北京地区率先上线ATM数字人民币与现金的互兑功能.

1900/1/1 0:00:00
NFT:NFT抢包玩法模式探秘(wax链)_nft币发行量万亿有升值空间

大家好,我是佩佩,这期继续更新一些近期看到的关于NFT游戏的模式玩法,依旧还是说的wax链上的.

1900/1/1 0:00:00
ARB:10分钟读懂 L2 可扩展性解决方案Arbitrum_RUM

下个月,Tracer将在?Arbitrum?上部署其永续掉期产品。本文将帮助你深入理解Arbitrum背后的机制,以便你在L2环境中通过Tracer交易时获得更好的体验.

1900/1/1 0:00:00