首页 科技内容详情
新二皇冠最新手机登录(www.22223388.com):Vitalik关于无状态、维克尔树和状态休眠的即兴手艺

新二皇冠最新手机登录(www.22223388.com):Vitalik关于无状态、维克尔树和状态休眠的即兴手艺

分类:科技

网址:

反馈错误: 联络客服

点击直达

IPFS官网

www.ipfs8.vip)是FiLecoin致力服务于使用FiLecoin存储和检索数据的官方权威平台。IPFS官网实时更新FiLecoin(FIL)行情、当前FiLecoin(FIL)矿池、FiLecoin(FIL)收益数据、各类FiLecoin(FIL)矿机出售信息。并开放FiLecoin(FIL)交易所、IPFS云矿机、IPFS矿机出售、租用、招商等业务。

,

01

bluepintail 提问:

与举行中的升级 (1559、合并和分片) 相比,实现状态休眠机制 (state expiry) 的庞大度怎么样?

Vitalik 回覆:

好问题!我会说从以太坊客户端开发者的角度来说,它的庞大性介于 1559 和合并之间。它更大的难度在于基础设施还没建起来,以及要与状态休眠机制耐久配合的话需要重写合约 (状态休眠机制不会损坏任何现有的合约,可能除了一些异常病态的情形,但它确实使现有的合约随着时间变得越来越低效,因此它们可能需要在 5-10年内重写,以保持可运行)。

需要构建的一个主要基础设施是提供旧状态的见证数据 (witness)。若是有人有 1 年多没接见过的旧状态,然后他们想提议一个事务接见它的,若是不在它们手上,他们会需要从某处取出该旧状态。有三种可能性:

另一项需要实现的是升级所有以太坊基础设施,以使用包罗地址周期的新地址花样。

对于合约的主要挑战是,若是你想构建一个耐久保持可用的合约系统,那么你将需要以这样的方式:对应新用户的新数据不需要保留在旧地址周期。若是没有做任何事,那么若是一个 ERC20 代币在周期 0 被确立了,它现在应该是周期 10,然后发送一个 ERC20 代币到一个还未拥有该特定 ERC20 代币的地址,这将需要提供 8 个见证数据 (在时段20时,这会酿成需要 18 个见证数据)。因此不是致命的,但会越来越烦人。为了阻止这点,ERC20 代币需要接纳一种在更新的 (newer) 地址周期上有子合约的结构,把更新确立地址上的余额存储在那些更新的地址周期上。我以为,现在是合约设计者最先认真思量若何在“后状态休眠机制” 的天下里设计他们的合约了。

02

dhskiskdferh 提问:

你可以更详细论述一下智能合约实现将如彻底支持这点吗?乍一看,我想知道若何把状态 (像余额和津贴)转移到一个新地址......我想是可以迁徙状态的,只管我会以为这是异常贵的生意。

关于若何在未来编写合约以支持这点,叨教你有什么洞见吗?谢谢

Vitalik 回覆:

以下是一个更完整的"后状态休眠机制" ERC20 代币的概述。

假设 ERC20 合约在周期 C 确立,而它当前处于周期 N。它的每个周期 C, C+1, C+2 .... N 都有子合约。一个地址周期是 A 的地址的代币余额会被存储在周期  max(C, A) 的子合约里。

这确保了纵然 ERC20 合约失活了,若是你确立了一个新地址,你将不需要提供见证数据 (由于若是你的地址是在周期 N ,那么余额会被存储在周期 N 的子合约里,这不需要见证数据才气编辑,由于 N 是最新的时段)。

只有以下两种情形才需要见证数据:

  • 当账户和 ERC20 合约都失活后,第一次设置账户的余额

若是我们真的想,我们可以通过扩展协议来消除第二种情形,使在地址周期 P 的地址 X 可以发送由在地址周期  Q 上的地址 hash(X, P, Q) 所有的代币;这会允许代币持有者使用地址  hash(X, P, Q)  来吸收代币,这样  X 就可以发送它们了 (若是 Q 是最近两个时段之一,这就不需要见证数据了)。

另一个想法是只在可用的最近状态周期里存储代币余额 (这样只要发送者的状态是最近的,就永远不需要见证数据才气发送代币给其他人),且只有在需要时才会用 transfer 函数从历史周期里取周期和汇总余额  (balance 函数也必须这样做;这样 balance 函数的使用就不得不削减,且在需要使用时也会节约许多)。

以上内容的总结是:在为耐久见证数据最小化做优化和简化代码间有一个光谱,我预计许多合约会更关注代码简化,并只使用最基本的耐久见证数据最小化技巧。但我希望易于编码的最佳实践会随着时间推移获得开发和生长。

03

Kike328 提问:

与某地址直接相关的状态不能在每次与该地址自己有交互时都上传吗?我意思是,确立一些较短的周期,但每次与一个合约有交互时,就上传该合约的所有状态到该周期。我不是完全领会以太坊的状态运作细节,以是可能我说的并不现实和有点愚蠢,但这会解决我们合约开发者对写的合约不适用于未来的忧郁。

Vitalik 回覆:

与某地址直接相关的状态不能在每次与该地址自己有交互时都上传吗?

不能,由于可能会有无限多这样的状态。M 个用户* N 枚代币=M*N 个潜在余额。

04

PurpleHamster 提问:

状态休眠机制跟状态租金方案一样吗?

Vitalik 回覆:

状态休眠机制和状态租金解决的是相似的问题,两个方案所属分类的界线是有点模糊的。现在的 state expiry 方案与 2015-18 年间的状态租金方案间的主要现实差异是:

  • 状态休眠机制没有试图对一个吸收了给定状态支付租金的某特定区块做审计。相反,它更大略,按年来盘算。这能削减庞大性。

  • 不存在“支付租金”这一操作;相反,你只需在正常生意发送历程中接见它,就能延伸它的活性时间。

  • 若是你的状态失活了,激活它是很简朴的;你只需提供一个见证数据

  • 使状态失活也不需要有什么操作,这也能削减庞大性

  • 有一个“地址周期”机制使得在无须提供见证数据的情形下更容易确立新合约,同时阻止复生冲突(这种情形是某状态工具在某位置上失活了,有人发送了一个事务到这个位置以确立一个新的工具,这会与之前在这个位置上但“状态不再可用”的值冲突。)

05

robmacca 提问:

若是我忧郁这些数据会丢失,是否有可能为我所有的钱包生意/值 (不是整个网络) 确立见证数据?

Vitalik 回覆:

若是你的数据在该状态周期没有被更新,你就必须每年上线一次,并确立一个见证数据,以是不是确立了见证数据以后什么都不用管了。我小我私人并不忧郁数据丢失;有许多行动者在存储历史数据,只要它们中的一个是可用的,你就可以对其发出 RPC 请求并获得见证数据。所有数据提供商 (我很确定数据提供商的数目跨越 100) 都丢失了它们的数据这件事的概率比遇到 51% 要低得多。

06

CrustyRat  提问:

Mina 和它的实现对以太坊基金会和实现以太坊无状态这一目的有什么启示吗?

Vitalik 回覆:

我们的密码学团队与 Mina 团队在许多场所聊过。我固然希望 Mina 先实现它的目的,由于它是一个更简朴的系统,且可以重新最先,但整个状态转换函数完全使用 ZK-SNARK 加密也是以太坊的一个耐久目的。只管在我看来,这与无状态是两个差其余轨道。

07

BestLucarioFan 提问:

若是所有的存档节点都关闭了,我们只剩下通俗节点的话,失活的状态会怎么样?若是你自己不真的存储失活状态的话,是否不能能为失活状态提供见证数据了?

另有,接纳了状态休眠机制后,你预计运行以太坊客户端需要若干 GB?纵然在很远的未来,这会保持稳固吗?(不思量 gas limit 提升的话)

最后,与 merkle-patricia trie 相比,剖析维克尔树 (verkle trie) 的速率会慢若干倍?

Vitalik 回覆:

所有存档节点都关闭这件事的可能性似乎是极小的。由于存档节点有好几百个,其中许多是由企业的高水平手艺团队运行的。作为一个分外的珍爱层,我预计门户网络或类似的系统会要求每个通俗用户存储一小部门历史状态,并以这种方式举行去中央化备份。

接纳了状态休眠机制方案后,你预计运行要给以太坊客户端需要若干 GB?纵然在很远的未来,这会保持稳固吗?(不思量 gas limit 提升的话)

凭证当前的 gas limit 水平,我预计 50 GB 就可以了,只管若是 gas limit 提升的话这个数字会增添。

08

BestLucarioFan 提问:

这很酷,若是只需要 50 GB的话,我想在我家的 PC 运行一个内陆以太坊客户端。

这里存储量的削减是否会与轻客户端的引入向叠加?

Vitalik 回覆:

在实现了合并、无状态和状态休眠机制后,你会有下列客户端选项可运行:

  • 轻客户端:存储要求:50 kB。带宽要求:最低天天 50 kB、每个区块~1 kB。平安模子:同步委员会的忠实多数

    新二皇冠最新手机登录

    新二皇冠最新手机登录(www.22223388.com)实时更新发布最新最快最有效的新二皇冠最新手机登录网址,包括新2手机网址,新2备用网址,皇冠最新网址,新2足球网址,新2网址大全。

  • 无状态客户端:存储要求:< 1 MB。带宽要求:每个区块~500 kB。平安模子:完全平安

  • 通俗全节点:存储要求:~50 GB。带宽要求:每个区块~100 kB。平安模子:完全平安

  • 存档节点:存储要求:~1-3 TB。带宽要求:每个区块~100 kB。平安模子:完全平安

09

UnrulySasquatch1 提问:

是打错了吗?为什么无状态客户端需要的带宽是存档节点的 5 倍?

Vitalik 回覆:

全节点和存档节点下载的是相同的数据,以与区块链同步。无状态节点需要下载更多数据,由于需要下载见证数据以验证状态 (通俗节点不需要是由于它们仅自己保留和维护状态);这是拥有无状态客户端的折中。

10

AdvocatusDiabo  提问:

维克尔树似乎异常有远景。另一方面,Eli Ben-Sasson 说我们可以天生与今天所需见证数据巨细相同的零知识证实 (https://twitter.com/EliBenSasson/status/1405414149925048323)。以及在数年后,可能会有一个新的改良数据结构。我的问题是我们可以把它抽象了吗?是否有可能使底层数据结构不成为协议的一部门,而对于无状态来说,是否可能在没有一个数据结构的情形下也能请求到见证数据?我希望这个问题是有意义的。

Vitalik 回覆:

从久远来看,STARKs 一定是更好的手艺,但当前的证实天生还不够快。使用对哈希了的二叉树举行STARK 加密的见证数据的最坏情形会是每个分支 6000 次接见 * 80 个哈希值 (假设最坏情形的深度)= 480000 个哈希值,一个更普遍情形的见证数据会是每个分支 1500 次接见 * 25个哈希值=37500个哈希值。纵然是后者也需要异常重型的超并行化机械 (ultra-parallelized machinary),才气在一秒钟内使用通例的哈希函数 (即 SHA256)天生一个证实。一旦优化了算法的哈希函数 (MiMC、Poseidon、Rescue 等系列) 被证实晰是足够平安的,那么STARKs 会变得更可行。至于维克尔树,现在已经可以快速天生证实晰。

11

Routine-Thing 提问:

对于矿工或验证者来说,实现无状态意味着什么?

Vitalik 回覆:

这意味着你不需要大量的磁盘空间来做验证者以验证区块。现在,要做区块提议者照样需要有磁盘空间。也就是说,看起来越来越有可能区块提议在未来会酿成专业化的作业,验证者不是一定要做区块提议事情;详见:https://ethresear.ch/t/proposer-block-builder-separation-friendly-fee-market-designs/9725 (中文版)

12

asdafari 提问:

虽然该提议旨在解决中央化问题,这可能来自 PoS 系统里的 MEV,是保留 MEV 的耐久偏向吗?若是是,缘故原由是什么?它通过抢跑或尾追生意或三明治夹击等从一样平常用户手中提取价值,使区块构建者/提议者获益,我以为这是大多数人都以为是不能取的。我有时以为我在 Uniswap 上的生意已经泛起可疑的高滑点了,但这也可能只是我的多疑。

Vitalik 回覆:

我真的看不泛起在消除 MEV 是可能的。现在有异常多种主要类型的 MEV (例如,生意所的价钱套利),我看不到能把它们消除的方式。我认同应该最大限度地阻止三明治夹击等类似的操作,只管云云,我以为更多的专业区块提议者是解决方案的一部门 (例如,大多数 Uniswap 攻击可以通过设置滑点=0 获得阻止,而要做到生意滑点为 0 且生意一致不会失败或虚耗 gas,在 Uniswap 上排序乐成你生意费支付需要有分外条件,也就是需要专门的生意打包逻辑...)

13

TShougo 提问:

这可能是个新手问题。修剪 (pruning) 和无状态有什么区别?修剪不是也为全节点削减状态巨细吗?

Vitalik 回覆:

修剪只意味着移除不再需要存储的旧数据。大多数的以太坊节点已经都是修剪节点了,这辅助我们乐成渡过泛起过的 gas limit 提升。无状态允许客户端完全不需要存储数据,状态休眠机制允许最近没有被接见过的状态数据也被修剪。

14

LightningShark 提问:

在使用像维克尔树这样的新看法时,你是若何治理风险的?你是否曾经忧郁过使用这个方式会有风险?

Vitalik 回覆:

维克尔树依赖的是现在已经相当成熟的密码学,即若是它出问题了,Monero 也运行不下去了。

15

Liberosist 提问:

你预计 rollup 会实现状态休眠机制吗?会有什么差异?照样说像 regenesis 这样的方案在 rollup 里会更常见?

Vitalik 回覆:

Regenesis 并不是状态休眠机制的真正竞争者;Regenesis 是同时实现状态休眠和历史数据休眠 (这就是以太坊现在在走的路) 的看法的品牌名。我一定期望 rollup 也会网这个偏向走,只是由于靠近主线 EVM 是相符它们的利益的。

16

temple22 提问:

对条约设计增添的庞大性可能会给开发职员带来更高的准入门槛,你以为这可能是一个需要思量的问题吗?

只管我明白状态问题是必须要解决的。

Vitalik 回覆:

这一定会给开发职员增添一些庞大性,只管现在的设计已经是多年思索与研究若何只管削减这种情形的效果;这一直是阻止我们在 2018 年开启这个设计的主要缘故原由。因此,我以为我们到了一个境界,是这个提议在给开发者增添庞大性与给客户端或用户大大削减庞大性之间取得一个合理平衡。其他以太坊功效 (例如账户抽象和更好的历史接见工具) 也会同时使开发者的事情更容易开展。

17

fipasi 提问:

状态休眠机制对维持网络运行是必须的吗?

Vitalik 回覆:

理论上,若是我们以为构建区块和运行一个通俗节点需要更多存储是没问题的话,使用无状态就可以维持它运行。但这个路径有中央化风险。

18

lucadonnoh 提问:

对学习盘算机科学的学生来说,有没有什么学习答应、默克尔树、维克尔树这些器械的好资源?

Vitalik 回覆:

可以从阅读我关于维克尔树的文章最先:https://vitalik.ca/general/2021/06/18/verkle.html

19

lectorlector 提问:

有没有可能用现在的以太坊默克尔树天生一个维克尔树结构,然后天生答应和证实?这样就可以维持当前以太坊默克尔树的哈希函数了?

例如,天生一个维克尔树证实,它是现在以太坊默克尔树某个根上的一个叶子,照样说在把原来的哈希函数用在 KZG 答应和维克尔树上有某些限制,以是需要天生一个用一个差异哈希函数的、新的树结构?(就像在 zkSNARK 中使用 Keccak256 就太贵了,人们由于 SNARK 线路巨细限制而使用Mimc或Poseidon等'snark friendly'哈希函数)

Vitalik 回覆:

我们需要使用新的答应的新的树结构,以天生维克尔树证实;证实巨细的增添与维克尔树使用代数同态的答应而不像 SHA256 那样的黑箱哈希值亲热相关。

20

saddit42 提问:

你会忧郁实行无状态会对现有的和未来潜在的应用造成太大的损坏?你以为是否有损坏性较小的可行路径?

Vitalik 回覆:

我不以为无状态会损坏任何应用!状态休眠机制确实会有 (看我上面的回覆),但纵然云云,影响也不是那么糟糕 (现有的应用还会继续运作,只是会随着时间推移变得没那么高效),且应用会有很长的时间来顺应。

21

UkoeHB  提问:

维克尔树需要可信设置 (trusted setup) 吗?若是需要,我很惊讶这点没有在你的博客文章里提到,而尽在延伸阅读里找到。

Vitalik 回覆:

若是你使用 Kate 答应的话,需要 (然则是小型的,因此制作一个就可以有数千个介入者是异常容易的)。若是你使用 bulletproof 类型的答应,就不用。

  • 皇冠管理端登3手机 @回复Ta

    2021-07-22 00:02:05 

    USDT交易平台www.usdt8.vip)是使用TRC-20协议的Usdt官方交易所,开放USDT帐号注册、usdt小额交易、usdt线下现金交易、usdt实名不实名交易、usdt场外担保交易的平台。免费提供场外usdt承兑、低价usdt渠道、Usdt提币免手续费、Usdt交易免手续费。U交所开放usdt otc API接口、支付回调等接口。

    一般人写不出这水平

发布评论