当前位置: 资讯 > 正文

引介 | Eth2 研究团队 AMA:分片、可扩展性、可组合性

币圈APP下载

欧易APP下载

注册欧意(okx)交易所,即可领取价值6万元盲盒奖励!

APP下载  欧易注册

编者注:以太坊 2.0 研究团队于 2019 年 7 月 15 日在 Reddit 上做了一个持续时间长达 12 小时的 AMA (有问必答)活动,本文即是对该场问答活动的节选。 问:在现有设计中,Ether token 怎么从 Eth1 移到 Eth2 上?

Carl:这要看你说的 “Ether token” 是什么意思。

验证者可以发送 32 eth 到保证金合约,这些 ETH 就会转移到信标链上,他们也因此具备验证者资格; 至于只是单纯想把 ETH 从 Eth1 移到 Eth2 上的用户,现在还没有确定要怎么做,不过,可能会有一个专用的链桥(不然的话就还是要通过保证金合约来做);

至于 ERC20/721 代币,讨论这个问题就太早了。如果 Eth2 能够有 Eth1 执行引擎,那就很完美,没有任何不便;但即便没有,ERC20 代币还是可以通过复制其状态根来转移。

问:现在 Eth1 到 Eth2 的迁移计划是怎么样的?

Vitalik:现在的计划是将 Eth1 折叠到 Eth2 中作为一个执行环境。实践上来说,这就意味着我们需要在 eth1 上做一次硬分叉,重新调整一些操作的 gas 消耗(比如读取存储或读取账户的操作码所用的 gas 耗费要上升到 2000~10000),然后从某个时间点(“flag block height”)开始,Eth1 的状态根就会移到 Eth2 系统中(或者可能在 Eth1 状态上做一些一次性的处理,以实现最优化,比如用二叉树来替换十六进制的帕特里夏树);再然后,Eth1 就会变成 Eth2 的一部分,各应用都可以运行如旧。

我确实认为,存储读取/账户读取 操作码的 gas 消耗量上升是合约开发者应该警惕或作好计划的事情(受影响的操作码基本上就是那些 gas 消耗量已经在 Tangerine Whistle 中提高过的那些;gas 消耗至少要再上升一个数量级)。

这一变更有其必要的原因是这些操作码大幅提高了无状态验证区块所需的默克尔证明的大小,在最糟糕的情况下,当前的默克尔证明方案会大于 100 MB,给 Gas 重新定价、加上前缀树的优化,再加上向被读取的合约按数据量收费,我们就可以让默克尔证明的大小降低到可接受的级别。

问:Phase 0 会带来可扩展性提升吗?有了 Sharding 之后,以太坊每秒能处理多少交易?

Vitalik:Phase 0 让一个轻客户端可以用非常轻量的方式给你传递 eth1 链的哈希值(当然也还有瑕疵,因为你每 6 分钟就要付出约 200kb 来跟踪委员会,到了 Phase 1 的时候可以下降为每几天 200kb)。这一功能可以用来,比如,让内置在浏览器中的轻客户端更高效地工作。这也是一种类型的可扩展性提升,而且在我看来是没有被充分讨论过的。

Carl:Phase 0 的目标是跟踪验证者的状态并产生随机性,追问其可扩展性是没什么很大意义的。至于 TPS,答案还未明了。粗略计算一下的话,如果每个分片都拥有与 Eth1.x 同等的吞吐量,那么 TPS 可以推到 16*1024 = 16,384(假设没有跨分片交易)。

此外,上面这个数字仍有些不可靠,因为 Eth2 被设计为可以与 Layer-2 方案比如 Rollup 和 OVM 相互配合,后者可以提供更高的吞吐量。

问:实现 Sharding 之后,是突然出现 1024 个分片,还是说一开始只有几个分片,但分片数量会随着使用量增长而增加?因为一开始就放出这么多分片显然会造成空间上的浪费

答:所有 1024 个分片会一次性放出。逐步增长的分片模式(可能会)带来不必要的复杂性。有大量未使用空间的分片上 Gas Price 会更低,如此便可吸引来更多用户。

问:1024 个分片,13 万个以上的验证者……那么如果在分片链启动前攒不出足够多的验证者,该怎么办呢?

Carl:分片是 1024 个,每个委员会 128 个验证者,那么每个时隙(slot)都需要至少 131,072 个验证者提供 crosslink。如果验证者数量少于这个数字,那某些分片就会被跳过,保证每个委员会都有 128 个验证者。

Danny:系统可以自然处理低至 64 个验证者这样的情况;此时安全性显然会大幅降低,不过协议在技术上还是能正常运作。

Vitalik:从技术上来说哪怕只有一个验证者,系统也还是 “能运作”。只不过,当低于 131,072 个验证者的时候,系统的属性就会随着验证者数量的降低而逐渐退化。

问:我最大的担忧是 ETH2.0 会打破可组合性(composability)。难道不会出现大多数 dApp 都在同一个分片(比如 MakerDAO 合约所在的分片)上开发的情形吗(这样他们就可以使用 Dai 了呀)?

Justin:分片间的可组合性无疑尚属未定领域,不过我们有理由保持乐观:

分片被设计为同构的(homogeneity)(不像比如说 Polkadot 或 Cosmos)以促进跨分片通信。

有一些设计模式可以把分片间的边界抽象掉。比如说,我们可以将 分片 0 与 分片 1 看作是结合在一起的数据可用性底层,给一个执行引擎提供数据,只不过这个引擎要求更大的带宽。这些设计模式在可编程执行引擎中会更容易得到利用。

分片在设计上是对 “快速理想确定性” 友好的,因为分片 attestation 某种程度上可以类比为 Eth1 中的区块确认。也就是说,实际上,由于单片的快速概率确定性,分片系统可以表现为一个逻辑意义上的区块链。

在 UI 层上也可以找到机会抽象掉分片边界。

 

原文链接:

https://docs.ethhub.io/other/ethereum-2.0-ama/?from=singlemessage&isappinstalled=0#part-2

作者: Eth2 Research Team

翻译: 阿剑

(本文来源于以太坊爱好者 EthFans,未经作者许可严禁转载,违者法律必究)

币圈APP下载

欧易APP下载

注册欧意(okx)交易所,即可领取价值6万元盲盒奖励!

APP下载  欧易注册
免责声明:文章不代表币圈财经网观点及立场,不构成本平台任何投资建议。投资决策需建立在独立思考之上,本文内容仅供参考,风险自担!
本文链接:http://www.bqcjw.com/read/178.html
币圈APP下载

欧易APP下载

注册欧意(okx)交易所,即可领取价值6万元盲盒奖励!

APP下载  欧易注册