免责声明?:本文仅仅是汇集、链接了许多已经公开的成果,对应的荣誉应归属于相应的作者/开发者。
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的映射的承诺。
Poly Network攻击者已将约200万枚DOWS交易为以太坊并转移:7月5日消息,据PeckShield监测,Poly Network攻击者已将约200万枚DOWS交易为约5.3枚以太坊,并转入0x4F2E开头地址。此外,该地址还接收了攻击者转入的另外200万枚DOWS。[2023/7/5 22:19:27]
而这里的“证明”就是一个叶子的?默克尔分支?以及?兄弟哈希值,凭借这些数据,可以逐级向上哈希,并通过最终的哈希值是否与根节点一致来判断该叶子是否与这棵默克尔树一致。
可看看这里的介绍?:)。
注-2:数据映射与一个多项式的对应关系
indexes=>values?这样的数据映射可以表示为一个多项式?f(x),并且?f(index)=value。“f(index)=value”通常被称为?求值形式,而“f(x)=a0+a1.x+a2.x^2...”则是其?系数形式。直观来说,我们其实是根据映射中所有的?(index,value)?点,拟合出了一个多项式。
Double Protocol推出的可租赁NFT标准“ERC-4907”成为以太坊最终标准:6月29日消息,NFT租赁市场Double Protocol推出的可租赁NFT标准“EIP-4907”已通过以太坊开发团队最终审核,成为以太坊上第30个状态为“Final”(最终版)的ERC标准。该标准通过双角色的设置,实现了NFT所有权与使用权的分离,并首创了到期自动收回使用权功能。“ERC-4907”这一标准的应用将极大地降低游戏、元宇宙、会员卡等Utility NFT租赁的开发和集成成本,让NFT资产更具流动性。据悉,目前确认应用“ERC-4907”标准的项目已达12家。[2022/6/29 1:38:14]
为了简便计算,并确保多项式与数据映射的一一匹配,我们不使用索引值来作为f(x)的x,用的是?w^index,也就是?f(w^index)=value,其中w是d次单位根,而d是该多项式的次数。因此,我们可以使用快速傅立叶变换来实现高效的多项式计算,比如乘法和除法,在求值形式下其计算复杂度会是?O(d),而且可以在?O(d*log(d))?的复杂度内转化回系数形式。所以保持?d?数值较小还是很有好处的。
以太坊联合创始人:以太坊2.0将成为以太坊1.0上“最大和最复杂DeFi应用”:以太坊联合创始人兼软件公司ConsenSys创始人约瑟夫·鲁宾(JosephLubin)在最近接受YouTube频道BaselineProtocol采访时表示,以太坊1.0将会永远存在,原因是以太坊2.0只是从以太坊1.0自然过渡,以太坊1.0永远不会消失,以太坊1.0正在演变为以太坊1.5,它将是无状态的,并且容易被以太坊2.0吸收。以太坊2.0正在到来,现在正处于最终测试网的中间阶段,不同团队构建了许多以太坊2.0客户端,因此需要在测试网上进行流畅操作测试。约瑟夫·鲁宾还表示,以太坊2.0将成为以太坊1.0上的“最大和最复杂DeFi应用”。(Cointelegraph)[2020/9/12]
注-2.1:以太坊的状态是一个从地址到账户状态的映射。
韦氏评级:加密猫团队离开以太坊并不奇怪 因为以太坊还没扩展:3月8日,韦氏评级发推称,Cryptokitties(加密猫)背后的团队将离开以太坊,并创建自己的区块链。这并不奇怪,因为以太坊还没有扩展。更快的区块链意味着更少的验证器,反之亦然。为什么不推出一个新的区块链自己发行代币。3月5日消息,加密猫CryptoKitties开发团队Dapper Labs开发的公链平台 Flow宣布推出交互式Web开发工具 Flow Playground。[2020/3/8]
背景知识
以太坊当前使用默克尔树作为EVM数据的承诺。此种承诺方式可以:
逐个区块地插入/更新数据,以增量的方式产生新的根哈希
验证者可以逐个区块地校验和证明
前缀树结构在这里提供了这种逐块更新的特性。
给定一个?d?叉的、有?N?个叶子的前缀树,任意更改一个叶子节点,都需要更新?O(log-d(N))?个节点以计算反映新状态的新根值;而这需要额外的?(d-1)*O(log-d(N))?个兄弟节点哈希值/承诺来用作时间和空间的见证数据。一个区块可视为一个需要更改?m?个随机叶子的批量更新,且?m<<N。因为预计只有一小部分的节点可以共享witness和计算,所以,每次更新的?Order不会有太大改变。
阿里参谋长:不认为以太坊已经成功:阿里巴巴集团参谋长曾鸣今日在“三点钟无眠区块链”群发表了自己对区块链的看法。他表示,如果有一个新应用足够大(比如达到千万用户),其不但会推出自己的交易所,而且会推自己的基础设施平台,甚至自己的币,这是生态的标准打法;因此正是在这个意义上,判断区块链处于哪个发展阶段是非常重要的。他认同比特币是区块链第一个成功应用,而且由于其货币属性,可能会非常成功。然而他并不认为以太坊已经成功,因为其还不是真正的生态,只能算是一种平台。如果一个大应用成功了,肯定会推出自己的智能合约平台,如果这件事在未来三年左右发生,对以太坊的打击可能是巨大的。基于这个判断,他认为区块链生态目前更类似上世纪的90年,而不是98年。[2018/2/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)仍然是易于更新的。
标签:以太坊ALUVALUEVAL波场币在以太坊发布AvaluseConscious Value Networkxcarnival币创始人
6月20日,由济南经济开发区管理委员会、济南市长清区大学园区建设指挥部、济南市长清区工业和信息化局等政府单位及国家权威机构联合主办.
1900/1/1 0:00:006月20日,联合国官网发文《可持续解决方案还是气候灾难?加密货币技术的危险和前景》。文章表示,近期,媒体广泛报道了比特币等加密货币对环境的负面影响,波动性也被认为是值得关注的问题.
1900/1/1 0:00:00去中心化金融正在重新定义金融的未来,为金融应用提供动力的底层基础设施正在发生重大转变,它正在改变我们对权限和控制、透明度和风险的思考方式.
1900/1/1 0:00:00巴勒斯坦金融管理局考虑推出数字货币以寻求货币独立。巴勒斯坦于上世纪90年代与以色列达成协议不发行本国货币,而使用以色列货币Shekel、约旦货币Dinar以及美元作为法币,但金融和外汇受到以色列.
1900/1/1 0:00:00突发消息:Swarm官方宣布“6月21日空投即将结束。这真是一段旅程。自空投宣布以来,Swarm网络已经从200个Bee节点发展到全球数十万个Bee,8月2号开启质押运行主网节点”.
1900/1/1 0:00:00美联储今日凌晨开完议息会议,释放出鹰派信号,市场似乎反应平平,一些悲观者此前的担忧烟消云散。有观点认为:美联储释放鹰派信号后,之所以会出现稳定的市场反应,很可能是因为此前通胀预期已经计入比特币价.
1900/1/1 0:00:00