欧博真人百家乐博彩平台客服_Vitalik:以太坊景况爆炸问题,多项式快活决策可处置 | BTC
写在前边:为了搪塞以太坊的景况爆炸问题,以太坊长入首创东谈主Vitalik提议了新的处置决策,其提议使用多项式快活(polynomial commitments)决策来替代默克尔树(Merkle tree),以此大大减少无景况以太坊客户端的见证数据(witnesses)。
(图:以太坊长入首创东谈主Vitalik Buterin)
(辅导:著作有好多公式,译文仅供参考,以原文为准)
以下为译文:对于这一筹办,这里要感谢好多东谈主提供的匡助,尤其是(1)AZTEC团队向我先容了复制敛迹( copy constraint)参数、排序参数以及灵验的批界限证明顺次; (2)Datery Khovratovich和Justin Drake在Kate 快活部分提供的决策,(3)Eli ben Sasson对于FRI提供的反应,以及(4)Justin Drake进行的审查职责。这篇著作仅仅第一次尝试,要是有进一步的弥留念念考,我如实但愿该决策大致被类似但更好的缱绻所取代。
太烦不看版细致:
可持续发展咱们建议用称为“多项式快活”(polynomial commitments)的神奇数学来替代默克尔树(Merkle tree)来积贮区块链景况。平允包括:将无景况客户端的见证内容(witnesses)的大小减少到接近于零。这篇著作提议了诳骗多项式快活进业绩态积贮所存在的挑战,并提议了具体的构建顺次。
什么是多项式快活(polynomial commitments)?
多项式快活是多项式P(x)的一种‘哈希’,其具有可对哈希实行算术查验的属性。
举例,在三个多项式P(x),Q(x),R(x)上,给定三个多项式快活h_P = commit(P(x)), h_Q = commit(Q(x)), h_R = commit(R(x)),然后: 要是P(x) + Q(x) = R(x),你不错生成一个证明(proof),证明它和h_P, h_Q, h_R的关系(在某些构造中,你不错浅显地查验h_P + h_Q = h_R); 要是P(x) * Q(x) = R(x),你不错生成一个证明(proof),证明它和h_P, h_Q, h_R的关系; 要是P(z) = a ,你不错针对h_P坐褥一个证明(称为怒放证明opening proof或简称opening) 你不错将多项式快活用作vector快活,类似于默克尔树(Merkle tree)。多项式快活的一个主要优点是,由于其数学结构的原因,其生成复杂证明要容易得多(详备解释见下文)。
有哪些流行的多项式快活决策?
现时有两个领跑者,它们分辩是Kate快活(在这篇著作中搜索 “Kate”)以及基于FRI的快活。你可能还传闻过防弹证明(Bulletproofs)和DARKs算法,这些是替代型多项式快活决策。而要了解关联多项式快活的更多信息,YouTube上有干系的内容(part 1,part 2,part 3,以及幻灯片)。
多项式快活在以太坊中有哪些容易应用的场景?
咱们不错用多项式快活来替换目下区块数据的默克尔根(举例以太坊2.0的分片区块),并用怒放证明替换默克尔分支(Merkle branches)。这给咱们带来了两个很大的上风。当先,数据可用性查验会变得容易,而且不会存在诈骗,因为你不错浅显地以当场形势(举例一个N次多项式的2N个坐标中的40个)申请怒放。非交互式的托管证明也可能变得更容易。
生肖属鸡的朋友,他们是一个性格比较自我的人,平时在生活中总是严格要求自己,而且他们为人也非常的好,总是懂得心存感恩,从来不会咄咄逼人,因此大家都比较喜欢和他打交道,他们做事也会有始有终,从来都不会患得患失,因此只要继续努力,必定能够活出自我,很快就能够上让人羡慕的幸福生活。
其次,劝服大齐据片断的轻客户端也变得愈加容易,因为你不错制造一个同期涵盖多个索引的灵考证明。对于任何集{(x_1, y_1), ..., (x_k, y_k)},界说三个多项式: 通过所有这些点的插值多项式I(x); 在x_1,...,x_k等于0的零多项式Z(x)=(x-x_1)* ... *(x-x_k); 商多项式Q(x)=(P(x)-I(x))/Z(x); 商多项式Q(x)的存在,意味着P(x) - I(x)是Z(x)的倍数,因此P(x)-I(x)为零,其中Z(x) 为零。这意味着对于所有i,咱们齐有P(x_i) - y_i = 0,即P(x_i) = y_i。考证者(verifier)不错生成插值多项式和零多项式。证明(proof)由对商的快活,加上圈套场点z上的怒放证明构成,因此,咱们不错对苟且多个点领有一个常数大小的见证内容(witness)。
这种本领不错为区块数据的屡次拜访提供一些平允。但是,其对于一种不同的用例而言,存在的上风就要大得多:证明区块往来账户witness。平均而言,每个区块会拜访数百个账户和存储密钥,这导致潜在的无景况客户端的见证内容大小会有0.5 MB大小。而多项式快活多见证(multi-witness),证据决策的不同,不错将区块witness的大小从数万字节减少到几百字节。
那咱们不错使用多项式快活来存储景况吗?
大体上,咱们是不错的。比较将景况存储为默克尔树(Merkle tree),咱们遴荐将景况存储为两个多项式S_k(x) 和S_v(x) ,其中S_k(1),...,S_k(N)暗意键(key),而S_v(1),.. 。,S_v(N)暗意这些键(key)上的值(要是值大于字段大小,则至少暗意这些值的哈希值)。
为了证明键值对(k_1,v_1),...,(k_k,v_k)是景况的一部分,咱们将提供索引 i_1, ..., i_k 并(使用上头提到的插值本领)闪现与索引匹配的键和值,即k_1 = S_k(i_1), ..., k_k = S_k(i_k) 和 v_1 = S_v(i_1), ..., v_k = S_v(i_k)。
为了证明某些键(key)的非成员性,不错尝试构造一个奇特的证明,证明键(key)不在S_k(1),…,S_k(N)中。相背,咱们只需对键(key)进行排序,以便证明非成员身份就足以证明两个相邻key的成员身份,一个小于方向key,一个则大于方向key。

而这和Justin Drake提议的使用SNARKs/STARKs来压缩witness以及干系的想法有着一样的平允,另外一个平允是,由于证明是累加器密码学原生的,而不是构建在累加器密码学上的证明,因此这摒除了一个数目级的支拨,并移除了对零学问证明友好哈希函数的需求。
但这里存在着两个大问题: 为k个密钥生成witness需要的时候是O(N),其中N是景况的大小。而瞻望N对应的景况数据会有大要50 GB,因此在单个区块中生成这么的证明是虚伪际的; 2、用k个新值更新S_k(x)和S_v(x) 消费的时候也需要O(N)。这在单个区块中是不切履行的,特别是接头到诸如witness更新和再行排序之类的复杂性。 底下咱们将先容搪塞这两大问题的处置决策。
高效读取(Efficient reading)
咱们提供了两种处置决策,一种针对Kate快活而想象,另一种则是针对基于FRI的快活。可怜的是,这些决策具有不同的优点和瑕玷,从而会导致不同的属性。 1、Kate快活 当先,请概括,对于N次多项式f,有一种决策可生成N个对应于O(N * log(N))时候中每个q_i(x) = (f(x) - f(i)) / (X - i)的怒放证明。
还请概括,咱们不错按以下形势褪色witness。接头这么一个事实,q_i(x)仅仅一个离开f(x)/(X-i)的子常数(sub-constant)项,频频,已知f/((X - x_1) * ... * (X - x_k))是f /(X-x_1),...,f /(X-x_k)使用部分分式瓦解( partial fraction decomposition)的某种线性组合。只需知谈x坐标就不错详情具体的线性组合:只需提议一个线性组合c_1 * (x - x_2) * ... * (x - x_k) + c_2 * (x - x_1) * (x - x_3) * ... * (x - x_k) + ... + c_k * (x - x_1) * ... * (x - x_{k-1}),其中不存在特别数项,这是k个未知数中的k方程组。
给定这么的线性组合,咱们取得的东西仅是离开f/((x - x_1) * ... * (x - x_k))的一个子常数项(因为所有原始错误齐是子常数的,是以线性诞妄的组合势必是sub-constant),因此它势必是商 f(x) // ((x - x_1) * ... * (x - x_k)),其等于祈望值(f(x) - I(x_1 ... x_k, y_1 ... y_k)) / ((x - x_1) * ... * (x - x_k))。
一个可能的挑战是,对于大的景况,一个履行可计较的单一信得过成立(举例,100多个孤苦参与者,因此只好其中任何一个是默契的,决策即是安全的)是不够大的:举例,PLONK成立只可容纳约3.2 GB。相背,咱们不错有一个由多个Kate快活构成的景况。
咱们对好多快活作如下单一witness。为证明,当先让
(这是fi和1的线性组合,因此考证者verifier不错及时计较此快活)。witness是
;要是Q是一个多项式,则F履行上在那些位置为零,因此fi在其位置具有祈望值。
2、基于FRI的快活
咱们将景况存储在一个二维多项式F(x,y)的求值中(每个变量的阶数为sqrt(N)),并骁敢于对4*sqrt(N) by 4*sqrt(N) square求值F。
咱们将所有咱们感情的值存储在位置 (x, x**sqrt(N)),因此它们齐具有独一的x坐标。(请概括,在很厚情况下,这些位置会超出咱们快活求值的4*sqrt(N) by 4*sqrt(N) square,而这卑不足谈。)
欧博真人百家乐为了证明在一组点x_1, ..., x_k上的求值,咱们构造了一个k次多项式旅途(x),其在x_i处的求值为x_i ** sqrt(N)。
咱们在求值域中遴荐当场的30列c_1 ... c_k,新宝代理对于每列查询30个当场行。咱们快活于h(使用FRI证明它履行上是一个多项式),为z_i = h(c_i)提供一个多启齿(multi-opening),并对列商 (R_i - z_i) / (X - path(c_i))进行FRI当场线性组合,以考证h(c_i)的声明值是正确的,因此h(t) 履行上等于F(t, path(t))。
使用二维多项式的原因是,这确保了咱们无须对所有F进行任何计较;相背,咱们只需要对咱们遴荐的当场30行F进行计较(即30*sqrt(N)),加上阶为 p * (sqrt(N) + 1)的h,创建FRI进行的计较大要为p * sqrt(N) 。不错将此本领膨胀到二维以上的多项式,以将sqrt因子裁减到更低的指数。 高效写入(Efficient writing) 咱们通过一系列的快活,来处置与更新包含所有这个词景况的单个快活干系的挑战,较大的快活,其更新频率也就较低: 区块本人,具有“读取见证”(R_k(x), R_v(x))和“写入见证”(W_k(x),W_v(x)),暗意要写入景况的值。概括,咱们不错成立W_k = R_k,并在初始时计较W_v。 第一个缓存C1 =(C1_k(x),C1_v(x))存储最近一天的更新内容; 第二个缓存C2等于前一天的临了一个C1; 满景况S = (S_k(x),S_v(x))包含时候跳跃1-2天的值;
复制敛迹(copy constraint)参数的简介
复制敛迹参数,是咱们将使用的witness更新证明的关节构成部分;关联复制敛迹参数若何职责的详备信息,请参见此处。简而言之,该想法是遴荐一个当场r,并生成一个“累加”多项式ACC(x),其中ACC(0)= 1 且ACC(x + 1)= ACC(x)*(r + P(x))。你不错通过怒放读取ACC(y) / ACC(x),来读取x .... y-1界限内的点累加器。你不错使用这些累加器值,将这些求值与其他求值集(手脚多集)进行比较,而无需接头胪列。
为了证明子集,咱们不错作念疏导的事情,除了咱们还要提供一个筹备多项式ind(x),证明该ind(x)在所有这个词界限内等于0或1,并成立ACC(x + 1)= ACC(x )*(ind(x)*(r + P(x))+(1-ind(x)))(即,要是筹备为1,则在每一步乘以r + P(x),不然不使用累加器值)。
小结: 咱们不错证明a和b之间的P(x)求值,是a和b(或某些不同的c和d)之间Q(x)求值的置换; 咱们不错证明a和b之间的P(x)求值,是a和b(或一些不同的c和d)之间Q(x)求值置换的子集; 咱们不错证明P(x)和Q(x)的求值,是R(x)和S(x)置换,其中P-> Q和R-> S是疏导的置换; 鄙人面的内容中,除非明确证实,不然咱们将偷懒地表述为“P是Q的置换”,道理是“P在0和k之间的求值,是Q在0和k之间对符合k求值的置换”。请概括,底下的内容中,咱们还会波及到每个witness的“大小”,以详情咱们经受的任何C_k中的坐标,而超出界限的C_k(x)值固然不计较在内。
映射褪色参数(Map merging argument)
为了更新缓存,咱们使用了“映射褪色参数”。给定两个映射A=(A_k(x),A_v(x))和B=(B_k(x),B_v(x)),生成褪色映射C=(C_k(x),C_v(x))以便: C_k中的键被分类; 对于0 <= i < size(B),(B_k(i), B_v(i)) 在C中; 对于0 <= i < size(A),仅当 A_k(i)不在B的求值集之内时,(A_k(i), A_v(i))在C中; 咱们用一系列复制敛迹参数来放手这极少。当先,咱们生成两个提拔多项式U(x),I(x),它们分辩暗意A_k和B_k的“并集”和“杂乱”。将A_k,B_k,C_k,U,I视为连合,咱们当先需要展示:
1、A_k ⊆ U;
皇冠hg86a
2、B_k ⊆ U;
3、I ⊆ A_k;
4、I ⊆ B_k;
5、A_k + B_k = U + I;
太平洋在线咱们事前假定在A_k和B_k中莫得访佛,这意味着A_k(i)!= A_j(j)对于界限内的i!= j与B_k疏导(因为在之前使用此算法时已对此进行了考证)。由于I是A_k和B_k的子集,是以咱们依然知谈I也莫得访佛的值。通过使用另一个复制敛迹参数来证明U和C_k之间的等价关系,证明了U中莫得访佛项,并证明C_k是已排序且无访佛的。咱们用一个浅显的复制敛迹参数证明A_k + B_k = U + I声明。
美高梅中國皇冠客服飞机:@seo3687
为了证明C_k已排序且莫得访佛,咱们证明C_k(x + 1)> C_k(x)的界限为0 ... size(C_k)。咱们通过生成多项式D_1(x),...,D_16(x),并证明C(x + 1)-C(x)= 1 + D_1(x)+ 2 ** 16 * D_2(x)+ 2 ** 32 * D_3(x)+...来作念到这极少。本色上,D_1(z),...,D_16(z)将互异存储在基2**16中。然后,咱们生成一个多项式E(x),其知足所有D_1,...,D_16的复制敛迹以及f(x)= x,而且知足 E(x+1) - E(x) = {0, 1} 松手(对E的2次敛迹)。咱们还查验了E(0)= 0以及E(size(C_k)* 16 + 65536)= 65535。
目下,咱们需要证明value(值)。咱们添加另一个多项式U_v(x),并考证: 在0...size(B)的(U, U_v)等于在0...size(B)的 (B_k, B_v); 在size(B) ... size(A)+size(B) 的(U, U_v) ,是(A_k,A_v)在0...size(A)的一个子集; 方向是在U中,咱们先摒弃来自B的所有值,然后再摒弃来自A的值,并使用疏导的置换参数来确保键(key)和值(value)被正确复制。然后咱们考证(C_k,C_v)是(U,U v)的一个置换。
使用映射褪色参数
咱们按照底下的形势使用映射褪色参数,假定每天有BLOCKS_PER_DAY个区块。 要是block.number % BLOCKS_PER_DAY != 0,咱们考证(C1_k, C1_v) = merge((W_k, W_v), (C1_old_k, C1_old_v))(将区块褪色到C1); 要是block.number % BLOCKS_PER_DAY == 0,咱们考证(C1_k, C1_v) = (W_k, W_v) 以及(C2_k, C2_v) = (C1_old_k, C1_old_v) (也即是说,咱们“废除” C1并将其内容移入C2); 请概括,C2具有一整天的时候,在此时代它保抓不变。咱们为任何东谈主产生(S_k,S_v)= merge((S_old_k,S_old_v),(C2_k,C2_v))的证明提供奖励;提供此证光线,咱们将快活(S_k,S_v)更新为新值,并将(C2_k,C2_v)重置为空。要是S在本日莫得更新,则咱们将C1-> C2传输蔓延到更新为止;请概括,该条约如实取决于S的更新速率是否鼓胀快。要是这不成能发生,那么咱们不错通过添加更多层缓存的线索结构来处置这个问题。
从灾祸的FRI中规复
对于FRI的情况,概括,有可能会出现存东谈主生成的FRI在某些位置无效,但这不及以迫害考证。这不会立即变成安全风险,但可能会迫害下一个更新者生成witness。
咱们通过以下几种顺次来处置这个问题。当先,概括到某些FRI生成诞妄的东谈主,可提供我方的FRI。要是通过疏导的查验,它将被添加到可构建下一次更新的灵验FRI列表中。然后,咱们不错使用交互式计较游戏来检测和刑事包袱不良FRI的创建者。其次,他们可提供我方的FRI以及STARK来证明其灵验,从而立即罚没了无效FRI的创建者。通过FRI生成STARK短长常崇高的,尤其是在较大界限时,但这么作念是值得的,因为这不错赚取很大一部分无效提议者的保证金奖励。
网站以其优质博彩服务多样化博彩游戏,广大博彩爱好者提供最佳博彩体验丰富博彩乐趣。因此,咱们有了一种机制来使用多项式快活,以此手脚一个灵验读取和写入witness来存储景况。这使咱们大致大幅度减稀有证内容(witness)大小,同期也不错带来一些平允,比如让咱们有才调对数据可用性进行查验,以及放手对于景况的托管证明。
今后的职责
提议FRI证明,条目少于900次查询(改良式地讲,安全参数小于夙昔);
从表面上讲,要是你事前计较并存储拉格朗日基(Lagrange basis)葡京娱乐棋牌,表面上不错快速更新 Kate快活。这是否不错膨胀到(i)快速更新所有witness,以及(2)为键值映射而不是一个vector职责?