火星链 火星链
Ctrl+D收藏火星链
首页 > Luna > 正文

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

作者:

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

干货|为以太坊引入KZG承诺:工程师视角

什么是KZG10?承诺?

注3.6:如果启动设置所计算的?,…?只计算到了指数d,这一组值是不能用来生成任何阶数大于d的多项式的承诺的。反之亦然。

因为在安全的曲线上,没有办法用两个点相乘来得出第三个点,所以??是一个无法求出的值,因此可以说,任意的承诺?c(f)?都只能表示一个阶数小于等于d的多项式。

注3.7:使用KZG10承诺的证据基本上就是在证明?f(x)-某些余数?的结果可以按特定的办法来分解,但这就要有一种办法可以?相乘?这些因数,并与原始的承诺相比较?C(f)=f()。

为此,我们需要“配对方程”,就是一种能把曲线上的两个点相乘并与另一个曲线点比较的乘法,因为我们无法直接让这两个曲线点直接相乘来得到合成的曲线点。

注3.8:上述两个属性,可以进一步用来证明某个承诺c(f)所代表的多项式f(x)的阶数k小于d。

综上,KZG10承诺可以有很好的属性:

验证承诺的过程是:提供底层多项式在任意点?r?上的值?y=f(r)?,以及除法多项式?q(x)=(f(x)-y)/(x-r)?在??点的值,并用?配对方程?来对比之前所提供的承诺?f。这就叫?开启?在r点的承诺,而?q()?就是证据。容易看出,q(s)?就是?p(s)-r?除以?s-r?,恰好就是我们用配对方程来检查的东西,即检查?(f()-)*'=q()*'?。

币安:将在晚间把7.5亿枚Tron上USDT转换为以太坊上USDT:6月12日消息,币安发推称,将于北京时间今日20:00之后直接通过Tether将7.5亿枚Tron上USDT转换为7.5亿枚以太坊上的USDT。[2023/6/12 21:31:54]

在非交互且确定性的版本中,?FiatShamirHeuristic?提供了一种办法来获得相对随机的点r:因为随机性只跟我们尝试证明的输入有关,即,只要已经有了承诺?c=f()?,r就可以用哈希所有输入来获得,而?承诺的提出者?要负责提供?开启点?和?证据。

使用预先计算好的拉格朗日多项式,f()?和?q()?都可以在?求值形式?下直接计算。要计算r处的开启值,就需要把f(x)转为?f(x)=a0+a1*x^1....?的系数形式。可以通过?反向快速傅立叶变换?来实现,复杂度为?O(dlogd),但甚至这里也有一种可用的替代算法,在?O(d)?的复杂度内完成计算,而无需使用反向快速傅立叶变换。

你可以使用单个开启点和证据来证明f(x)的多个值,也就是多个索引值对应的数值,?index1=>value1、index2=>value2?…

除法多项式q(x)现在变成了f(x)除以零多项式?z(x)=(x-w^index1)*(x-w^index2)...(x-w^indexk)?的商

余数为?r(x)?

CoinShares:Solana已成为以太坊有力的竞争对手:8月24日消息,欧洲数字资产投资平台CoinShares最近发布的数字资产资金流向报告中提到,Solana相关的投资产品上周吸引机构投资者投入710万美元资金,而与以太坊相关的投资产品只有320万美元资金流入。CoinShares强调,Solana已成为以太坊有力的竞争对手,相较于以太坊提供了更为灵活的基础设施和更快的交易结算。(Financemagnates)[2021/8/24 22:34:15]

检查?(f()-r())*'=q()*z(')

在PoS链的共同起步设置中,共享的数据块会被表示为低阶的多项式,KZG承诺可以用来检查任意?随机?分块并验证和确保?数据可得性,而无需获得?兄弟数据点。这就开启了随机取样的可能性。

现在,对于一个最大可能包含?2^28?个账户键的状态,你需要至少?2^28?阶的多项式来构建?扁平的?承诺。在更新和插入的时候,会有一些不便利。对任一账户的任意更改,都会触发承诺的重新计算。

更新KZG10承诺

对任一?索引值=>数值?点的任何更改,比如更改了?indexk,都需要使用相应的拉格朗日多项式来更新承诺。复杂度约为每次更新?O(1)。

但是,因为f(x)本身也改变了,所以所有的见证?q_i()?,也即所有对第i个键值对的见证,也需要更新。总复杂度约为?O(N)

Vocdoni 认为以太坊和零知识证明等技术可以实现数字投票方案:去中心化治理工具 Vocdoni 撰文认为在经历了 2020 年美国大选期间的投票混乱之后,是时候该考虑基于以太坊、零知识证明(zkSNARK)和 IPFS 等去中心化技术实现安全且匿名的数字投票解决方案。

Vocdoni 认为这不是一个简单的挑战,但是他们设计了一套系统希望能解决投票的问题,将利用以太坊、IPFS 和 Tendermint 等技术。Vocdoni 表示他们的投票协议技术(Vocdoni Open Stack)是完全开源的,已经在欧洲的一些文化组织选举中被证明是成功的,涉及近 20 万投票者。[2020/11/9 12:06:07]

如果我们没有维护预先计算好的?q_i()?见证,任何一条见证数据都要从头开始计算,都需要?O(N)

一种复杂度为?sqrt(N)?的更新KZG10承诺的构造

因此,为了实现理想承诺方案的第四点,我们需要一个特殊的构造:Verkletrie。

Verkle树

需要表示的以太坊的状态大约有?2^28约等于16^7约等于2.5亿?个键值对。如果我们只使用扁平的承诺;甚至于,如果没有预先计算好的见证数据,则每条见证数据都需要花?O(N)?来重新计算。

因此,我们需要把扁平的结构换成叫做?Verkle树?的结构,跟默克尔树一样是树结构。

以太坊基金会社区经理:认为以太坊2.0将在2020年推出:金色财经报道,以太坊基金会社区经理Hudson Jameson刚刚发推文称:“我认为以太坊2.0将在2020年推出。不过,我只参与Eth 1.0的开发,并且只从看到的Eth 2.0的研究和开发进展,以及与开发者的交谈中得出了这个结论。”据今天早些时候消息,以太坊2.0研究人员Justin Drake表示,以太坊2.0第0阶段可能在2021年才能上线。[2020/7/11]

即,像默克尔树一样,构建出一棵承诺树,这样我们就可以保证阶数?d?比较小。

每个父节点都编码对其子节点的承诺,子节点就是一个映射,其索引值都存在其父节点内

实际上,父节点的承诺编码了哈希后的子节点,因为承诺的输入是标准化的、32字节的值。

叶子节点编码了对其所存储的数据的32字节哈希值的承诺;或者直接跳转到数据,假如其32字节的数据的用法与下一章提到的?状态树?提议用法一样的话。

要提供对一个分支的证据时,一个多值证明的承诺?D、E?可以围绕使用fiatshamirheruristic产生一个相对随机的点t来生成。

动态 | 开源赏金平台Gitcoin宣布为以太坊提供20万美元资助:12月19日消息,开源赏金平台Gitcoin宣布计划从1月6日开始新一轮奖励,为以太坊提供20万美元资助。Gitcoin正在为以太坊两个独立的资金池拨款:其将在媒体、社区和营销产品上投资7.5万美元;同时承诺为以太坊基础设施项目投资12.5万美元,包括ETH 2.0、分散化金融(DeFi)、加密钱包和用户体验等领域。(Decrypt)[2019/12/20]

复杂度

这里是一份对?Verkle多值证明的分析

更新/插入叶子节点?index=>value?需要更新?log_d(N)?个承诺~?log_d(N)

为生成证据,证明者需要

计算?f_i(X)/(X-z_i)?在??处的值,用于生成?D?,复杂度总计?O(dlog_dN),但可以在更新/插入时调整以节约预计算,复杂度会变成Odlog_d(N)

计算?m?个~?O(log_d(N))?个?f_i(t)?来计算?h(t),总计为?O(dlog_dN)

计算?π,?ρ?,需要对?m~log_dN?个指数多项式的和做除法。需要约?O(dlog_dN)?来获得分子的求值形式,以计算除法

证明的规模加上验证的复杂度~?O(log_d(N))

Verkle树构建

被提议的ETH状态Verkle树

单一的树结构,存储账户的?header?和?代码分块,还有?存储项分块,节点的承诺为阶数d=256的多项式

把地址和头/存储空档结合起来推导出一个32字节的?storageKey,本质上就是元组?(address,sub_key,leaf_key)?的一种表示

所推导的键的前30个字节用于构建普通的verkle树节点pivots

后2个字节是一个树高为2的子树,表示最多65536个32字节的分块

对于基本的数据,这个树高为2的子树最多有4个叶子承诺,来覆盖haeader和code

因为一个分块为?65536*32?字节的分块表示为单个的字数,所以主树上可能有许多子树来存储一个账户

Gas?定价方案

访问类型?(address,sub_key,leaf_key)?的事件

每一个专门的访问事件都收取?WITNESS_CHUNK_COST

每个专门的?address,sub_key?组合都收取额外的?WITNESS_BRANCH_COST

代码默克尔化

代码会自动成为verkle树的一部分

一个区块的header和code都作为一个树高为2的承诺树的一部分

单个分块最多有4条见证数据,分别收取?WITNESS_CHUNK_COST,访问账户需要收取一次?WITNESS_BRANCH_COST

数据采样和PoS协议中的分片

ETHPoS的目标之一是能够提交约1.5MB/s的数据量。要实现这一点,许多并行的区块提议要能发出并在给定的12秒内验证;也就是要存在多条分片,每个分片在每个slot都要发布自己的数据块。若有大于2/3的投票支持,信标链区块将包含分片数据块,分叉选择规则也将根据信标链区块内所有数据块及其祖先的数据可得性确定它是否能成为主链区块。

注3:此时的分片不是链,任何隐含的顺序都要由L2协议来解释。

KZG承诺也可以用来构建数据有效性和可得性方案,客户端无需访问分片提议者发布的完整数据就可以校验其可得性。

分片数据块是?16384?个样本,约为512kb;还有数据头,主要由这些样本相应的最大16384阶的多项式承诺组成

但多项式求值形式?D?却有?2^16384?的规模,即,1,w^1,…w^,…?w^32767,而W是32768的单元根

我们可以为数据拟合出最大16384阶的多项式,并扩展到32768作为纠删码样本,即计算?f(w^16384)?…?f(w^32767)

对每个点的值的证明也同时计算并与样本一起发布

32768个样本中获得任意16384个都可以完全恢复出f(x)以及原始的样本,即?f(1),f(w^1),f(w^2)…?f(w^16383)

这纠删编码的32768个样本分为2048个分块,每个分块包含16个样本,即512字节的数据;由分片提议者水平地发布,即将第i个分块以及相应地证据发给第i个垂直子网络,外加全局公开完整数据的承诺

在被指定的(shard,slot),每个验证者都在?k~20?个垂直子网中下载和检查这些分块,并使用对应数据块的承诺来验证它们,以建立数据可得性保证

我们需要为每个(shard,slot)安排足够多的验证者,使得总体上一般都被获取了;另外,还要满足一些统计学上的要求,每个(shard,slot)约128个委员,需要有至少70个委员的见证,使得该分片数据块能成功打包到信标链上,

至少需要约262144个验证者

基准测试

如我们在?POCverklego代码库中看到的,以状态树的规模构建完一次verkle之后,插入和更新都非常快:

插入/更新的基准测试

证明生成验证的基准测试

标签:以太坊VERERKSHA以太坊交易所委托挂单要收手续费吗CryptoVerificationCoinBerserk Financeushark AI token

Luna热门资讯
ETF:加拿大是否会成为加密世界里的下一个“萨尔瓦多”?

加拿大是北美大陆人口第三多的国家,目前正在逐渐成为最大的加密货币公司的所在地。加拿大对于加密货币的监管环境的有利程度超过了美国。加拿大最近批准了第一个加密货币ETF.

1900/1/1 0:00:00
ACA:金色百家谈 | 对话Acala:Kusama卡槽竞拍启动 如何抓住头槽效应

作为波卡的先行网,Kusama一直为波卡的发展扮演着重要的测试作用。6月15日,Kusama平行链插槽竞拍正式启动,为波卡实现Web3迈出了关键的一步.

1900/1/1 0:00:00
比特币:证券时报:监管持续加码 虚拟货币炒作可休矣

近期,针对虚拟货币炒作的监管措施密集出台且持续加码。梳理相关政策脉络可以发现,监管层对虚拟货币交易的链条有着全面的了解,对其危害有深刻的认知,打击的态度也非常明确.

1900/1/1 0:00:00
DAO:DAO全景式科普:分类、实用工具、发展历程、前景展望

加密世界中人们常说这样一句话:「Codeislaw.」,每一个协议的运行都严格遵照代码,不可篡改.

1900/1/1 0:00:00
加密货币:金色观察丨吹糠见米 四川叫停挖矿后全球比特币能耗已减少50%

金色财经区块链6月28日讯??根据剑桥大学比特币电力消耗指数显示,自国内打击数字货币挖矿以来,全球比特币能源消耗已经减少了一半以上。 现阶段,比特币每年大约消耗68太瓦时(TWh)的电力.

1900/1/1 0:00:00
SAM:Kusama “Parachain” 分析报告 (三)

风物长宜放眼量。没有一直上涨的市场,也没有一直下跌的市场。亚当·斯密在《国富论》里,以及风险投资人霍德华·马克思在《周期》中都表达过:市场的力量在平衡点只是瞬间,总是像钟摆一样在上涨下跌中摆动.

1900/1/1 0:00:00