首页 / 以太坊2 / 什么是以太坊2.0? Buterin 表示 最好的解释就是这篇文章

什么是以太坊2.0? Buterin 表示 最好的解释就是这篇文章

标题:什么是以太坊2.0?V神说,解释最好的文章就是这篇

免责声明:本文不构成任何投资建议。

小编:记得关注哦!

文章来源:区块链大本营

译者:王国熙;编辑:波波

在一篇文章中了解以太坊2.0。

今天,Buterin 在Twitter 上表示,君士坦丁堡升级的进一步推迟不会影响以太坊2.0 的Casper/Sharding/Tranquility 的研发团队和开发进度:

Buterin 在转发以太坊核心开发人员Afri Schoedon 在以太坊Reddit 论坛上发布的声明时强调了这些话。后者在Reddit 上的一份声明中表示,以太坊2.0 的Tranquility/PoS/Sharding 与以太坊1.0 完全无关,负责君士坦丁堡升级的团队完全独立于开发以太坊2.0 的团队。

说到以太坊2.0,前两天V神刚刚推荐了一篇文章,解释了以太坊2.0路线图最好的文章:

本文详细阐述了以太坊2.0各个阶段的技术发展现状,并详细讲解了Beacon链、EVM2、分片、分片后智能合约和DApp开发技术如何组装新一代以太坊。介绍。

那么,以太坊2.0和以太坊1.0有什么区别呢?请参阅Blockchain Basecamp对这篇长文的完整翻译:

什么是以太坊2.0?

以太坊2.0 是以太坊的完全计划替代品。按照时间表,在未来几年内,以太坊2.0的设计者将把目前以太坊所有的共识系统和区块链状态打包并添加到以太坊中。广场2.0。

这是一个如此庞大的项目,我们无法准确预测以太坊2.0 中将包含哪些内容以及将删除哪些内容。根据目前掌握的信息,部分团队已经开始了早期开发。按照目前的计划,以太坊2.0的设计者将会加入一些当前先进的技术,比如分片技术、Casper协议、状态租金等。向用户存储数据收费的机制)和以太坊新一代虚拟机项目eWASM。客户端的开发也被提上日程,前期的开发和测试工作正在有序进行。强大的以太坊2.0测试网络预计将在三个月内(2019年第一季度)与我们见面。

届时,以太坊2.0中的所有以太币都将来自当前的以太坊主链,但设计者计划通过不断的更新和迭代来改变两条区块链之间的关系。以太坊2.0将逐渐成为主链,目前以太坊1.X区块链将成为其管理下的分片链。

以太坊2.0 对开发者意味着什么?

如果您是Solidity 智能合约开发人员或Dapp 开发人员,希望在以太坊2.0 上取得领先,您将不得不应对很多变化。以太坊2.0 是以太坊的完全替代品,我们今天在编写智能合约时所做的许多假设都不再成立。通过以太坊2.0的时间线,你会发现团队计划在未来几年内分阶段完成。从这一点来看,以太坊2.0更像是一个新产品的发布,而不是修修补补的产品升级,所以现在的情况也不难想象。我们为以太坊1.X 编写的工具和智能合约可能需要针对以太坊2.0 进行完全重新设计和重新编码。但不用担心,幸运的是,我们有几年的时间来为这个新的生态系统做好充分准备。为了帮助您推进这项工作,我们将帮助您分析以太坊2.0项目当前的路线图并介绍一些工程影响。

分阶段推出

目前,分片技术路线图(以太坊2.0路线图的两倍)总共规划了七个阶段。只有零阶段制定了详细且具体的计划,并定期更新。第一阶段的计划不太详细,似乎尚未进入开发阶段。在第一阶段之后,路线图逐渐变成了期望目标的列表,而不是技术文档。例如,在第二阶段,路线图链接到以太坊研究网站https://ethresear.ch/的频率是github 的三倍。因为前进的每一步看起来更像是一个愿景,而不是工程实现,所以在本文中,我们将重点关注路线图的零、一和二阶段,但重点关注后面的阶段。现阶段我们也会简单分析一下可能的发展方向。

分阶段启动

零阶段:信标链

零阶段的核心任务是“信标链”。以太坊2.0的设计者希望Beacon链成为以太坊2.0生态系统的核心,是所有其他分片链的安全性和终结性的源泉。部署后,信标链将使用Casper the Friendship Finality Gadget (Casper FFG),这是一种权益证明机制。 Beacon链的早期迭代被设计得尽可能简单,这就是为什么零阶段不支持智能合约、账户、资产转移,也不包含任何分片链的原因。信标链上的以太币不可在区块链上转移,这意味着用户无法将其存入加密货币交易所。

BETH:新的以太坊

Beacon以太坊(BETH)是Beacon链上仅由权益所有者(验证者)持有的新型加密资产。它可以通过两种方式生成:

1)作为为Beacon链提供验证服务的奖励(以及第一阶段完成后在分片链上提供验证服务)

2)任何以太坊1.X版本的用户都可以使用以太坊1.X版本的智能合约

使用1 个以太坊购买1 个BETH。这是一个称为“存款”的智能合约。如果你仔细研究,你可能会注意到这个智能合约没有撤销交易的能力。这是因为BETH 在零阶段无法从Beacon 链中提取。也就是说,一旦在以太坊1.X 版本的验证人注册智能合约中进行了充值操作,以太坊1.X 版本中的以太坊就会被有效销毁。

Beacon链中的验证者看到这个智能合约的执行后,会将存款信息提交给Beacon链,Beacon链将向存款人发行新的BETH。因此,你可以认为在将Ether 发送给验证者注册智能合约后不久,你就会在Beacon 链上收到新的BETH,也可以对押金进行临时审核,但根据Casper 协议的规定,您无法永久查看。

在第二阶段之前,信标链上不允许进行以太币传输。我认为除非以太坊1.X版本已经完全融入以太坊2.0分片链生态系统,否则没有办法将BETH转回以太坊。在1.X 版本中。当前路线图的第0 阶段尚未完成,第1 阶段的规范尚不可靠。鉴于此,似乎可以合理地假设BETH 在未来两年内将作为一种独立且不可转让的加密资产存在,但只要第一阶段第二阶段成功完成,BETH 将能够在分片链和信标链,但以太坊不会。

现阶段交易的不便不应该给加密经济生态带来任何无法解决的问题,因为在过去,像BETH这样预发行或功能不完整的代币已经通过IOU(类似于债券,区块链上的代币)向个人或机构发行基于区块链的小规模代币。它与ICO等众筹不同。它仅代表了交易所交易的真实或其他代币的链上映射的先例。

例如,XTZ 代币期货在Tezos 众筹期间在两家加密货币交易所HitBit 和BitMEX 上推出。如果加密货币市场对BETH有需求,加密货币交易所将开始为BETH交易和质押提供托管服务。然而,加密货币市场对BETH 的需求谁也说不准。 BETH 不适合投资,因为从以太坊到BETH 的单向挂钩人为地施加了1 个以太坊的价格上限。换句话说,BETH永远不会比以太坊更值钱,只会更便宜。

第0+ 阶段:抵押贷款

用户可以在Beacon 链上质押32 BETH 来成为验证者。在第0 阶段,验证者仅管理Beacon 链,但从第1 阶段开始,验证者还将管理1024 个分片链。 Beacon 链(以及每个分片链)将使用Casper Ultimate Gadget (Casper FFG) 权益证明机制生成区块,该机制将在出现不良行为(例如区块链被停止或审查)时削减验证者。权益,精明的读者会注意到,Casper FFG 的表弟Casper CBC(Construction Correction Casper)出现在分片路线图的“以太坊3.0”部分。对该协议的全面讨论超出了本文的范围,但我强烈建议阅读Vitalik 关于混合PoW/FFG 的说明,以及他关于最小斜线条件的帖子和FFG 的论文。

https://vitalik.ca/files/casper_note.htmlhttps://medium.com/@VitalikButerin/minimal-slashing-conditions-20f0b500fc6chttps://arxiv.org/abs/1710.09437这些验证器需要做什么?

分片技术旨在跨节点分割(分片)区块链状态信息,从而消除任何节点保存有关区块链网络的完整信息的需要。因此,没有一个验证器可以验证所有分片。相反,Beacon 链将协调所有其他分片链的验证者进行验证,所有验证者将验证Beacon 链。每个定义的时间段(64 个区块时间,大约6.4 分钟),Beacon 链都会对验证者进行洗牌并将其分配给分片链。分配给分片链的一组验证者称为该分片链的验证者委员会。验证人委员会需要有128 名成员。在零阶段,这意味着信标链每6 分钟需要选择验证者来组成接下来6 分钟的验证者委员会。在第一阶段,Beacon 链需要为1024 个分片中的每个分片分配一个验证者委员会。分配算法的实际实现非常复杂,涉及多阶段随机数生成过程和可验证的延迟函数,以消除某些利益相关方操纵生成的验证人委员会的可能性。

由于工作的重要性,以太坊2.0随机选择验证人委员会,并频繁轮换验证人委员会。验证人委员会负责保护其分片链的安全、生存和完整性,并向Beacon链报告分片的状态。分片链验证者委员会是Beacon链了解分片链状态的唯一途径,反之亦然。从整个验证者池中随机选择验证者可以最大限度地降低验证者委员会作为一个整体撒谎或作弊的可能性,而频繁轮换验证者也旨在减轻恶意验证者委员会可能造成的损害。换句话说,有了这样的机制,恶意或利润最大化的验证者就很难利用验证者委员会来攻击区块链网络的任何部分。此外,如果他们偶然获得了验证者委员会的控制权,他们将无法控制超过64 个区块。

开发者眼中的权益证明

比较以太坊中工作量证明的区别1. 以开发者为例,虽然工作量证明区块链支持无状态SPV(Simplified Payment Verification,简单支付验证)证明和NiPoPow(Non-interactive Proofs of Proof of Work,非交互式)远程状态追踪机制,但权益证明禁止任何低状态通信,主观性阻碍了轻状态验证的可能性。换句话说,股权证明的远程状态证明将包含与工作量证明无状态SPV 证明大致相同的数据量,但需要事先验证整个股权证明历史。相比之下,无状态SPV 证明不需要额外的信息进行验证。这意味着在这种主观的权益证明环境中,跨分片或跨链应用程序的功能要少得多,但开销要大得多。

第一阶段:分片

第一阶段旨在就分片链的内容达成共识,但不是就其含义达成共识。换句话说,这是区块链分片架构的一次实验,而不是利用分片技术进行扩容的尝试。 Beacon 链将分片链上的区块视为简单的数据集合,没有结构或意义,因为分片链还没有账户、资产和智能合约。此时,Beacon 链为每个分片提供由链随机选出的分片链验证人委员会,仅对每个分片的内容达成一致。也就是说,只要所有验证人委员会达成共识,定期更新分片链区块数据,哪些信息出现在分片链区块中并不重要。

分片链验证者委员会通过称为交联的操作来验证分片链的内容和状态。简而言之,验证人委员会必须提交Beacon链中分片的可验证信息(例如Merkle树根节点的哈希值)。在第二阶段及以后,跨链操作将支持跨分片的通信。

一旦信标链从多个验证者委员会收到给定交叉链接准确性的证据,信标链就可以相信该交叉链接是分片链的真实表示,而不再验证整个分片链。如果验证者委员会不同意交叉链接的有效性,那么很明显,至少有一个验证者委员会是错误的,并且应该受到减少权益的惩罚。这是所有分片链安全的根源:验证者的不当行为最终会被信标链发现并受到惩罚。

第一阶段没有什么特别有趣的。本质上是对分片链和Beacon链之间的交叉链接和数据同步机制的开发测试。设计师似乎对这些机制充满信心。当前主要问题来自监管和实施策略。鉴于零阶段大约需要一年多一点的时间才能达到合理的可指定水平,我认为第一阶段至少需要相同的时间。有趣的是,Phase 0 的实现和规范是同时推进的。

即使在今天,测试网启动后不到三个月,第0 阶段的规范仍在定期更改。这意味着以太坊2.0在未来的发展过程中可能会发生重大变化。虽然乐观者告诉我开发将需要大约六个月的时间,但我认为不然,在第0 阶段开发完成并进入测试后,第1 阶段可能还需要12-18 个月的开发时间。

分片机制

第二阶段:智能合约

第二阶段,以太坊2.0和我们熟悉的以太坊有些类似。随着第二阶段成果的不断发布,分片链将逐渐从简单的数据容器转变为结构化的区块链状态。此时BETH将可以自由转让,并且智能合约将被重新引入系统中。每个分片链将通过基于eWASM 的以太坊虚拟机(我们称之为“EVM2”)进行管理。我们希望EVM2 将支持账户、智能合约、状态以及我们今天熟悉的Solidity 中的其他抽象概念。然而,幕后的大规模变化使得这种一厢情愿的想法成为可能,并且大多数现有工具不再适用于以太坊2.0。

幸运的是,eWASM 团队已经为以太坊智能合约命令行编译工具Solc、开发框架Truffle 以及测试环境Ganache 做了一些底层工作,所以在第二期测试网发布之前的最新发布期间,我们可以看到一些最常用的工具开始支持EVM2虚拟机。

第二阶段可能会增加状态租金,这给当今的Solidity 开发人员带来了一些有趣的挑战。在状态租金机制下,区块链并不是无限期地存储代码和数据,而是需要智能合约开发者和用户随着时间的推移支付EVM2 虚拟机的存储费用。这样做是为了确保未使用的信息始终可用。随着时间的推移,它逐渐脱离国家,以防止国家规模的扩大。它的目标是让用户而不是全节点来支付国家的成本。业界提出了多种不同的状态租金模式,但目前尚不清楚哪种模式最终会成功。

https://ethresear.ch/t/improving-the-ux-of-rent-with-a-sleeping-waking-mechanism/1480 有趣的是,根据一些以太坊升级计划和著名以太坊核心开发人员的建议,状态租金可能是两者之间唯一的相似之处不同的路线图。因此,我强烈建议在当前部署的智能合约中支付状态租金,并设计模型将状态租金转移给未来的用户。虽然我们不知道国租机制的具体设计,但我们应该做好支付国租的准备。

除此之外,我认为第二阶段没有什么值得期待的,因为它还处于研究的早期阶段,还有几个核心问题需要解决。考虑到目前的非正式规范和开发流程,以及Phase 2对Phase 1的升级范围,在2020年之前推出Phase 2的建议似乎并不合理,也就是说,虽然以太坊2.0可能会在今年推出,但预计以太坊2.0至少要到2020年才能支持资产转移和智能合约。

第三阶段:链下状态存储

为了更多地讨论大家关心的智能合约,我们将几乎完全跳过第三阶段。第三阶段通过在链外存储尽可能多的状态来最小化区块链上的状态。以太坊2.0区块链只会存储一些状态信息和聚合器(聚合器是代表长数据列表的短数据字节,Merkle树是一种聚合器),而不是像以太坊那样存储所有状态。用户将负责在链外存储完整的状态信息,当用户想要与状态交互时,他们需要在交易中包含当前状态的证明。这大大减少了运行验证器节点的资源需求。

有几种具有不同特性和功能的聚合器设计,但设计人员尚未选择任何一种。因为我们无法使用链上通信来协调各个用户,所以我们必须通过其他系统来同步状态。在这种设计下,区块链不再保证数据的可用性,这里发生的事件对于开发者来说没有多大意义。在第三阶段,维护和检索链下状态将成为Dapp 的关键设计元素。

第四阶段:智能合约分片

经过这么多工作,仍然有一个难以克服的核心问题:以太坊2.0智能合约,虽然会像以太坊智能合约一样强大,但它们不可避免地会被绑定在分片链上,永远无法与分片链上的智能合约直接交互。另一个分片链。这是分片技术的直接后果。分片技术的目标是分割分片链之间的状态。每个分片链不需要直接了解其他分片。通过分割状态并最小化验证者的负载,可以提高区块链的可扩展性。不同分片链上的智能合约直接交互需要了解彼此的状态。

根据设计,分片链不具有其他分片链的状态。他们只能通过与信标链的交叉链接来了解其他分片链。因此,每当我们想要跨分片访问状态时,我们都必须等待Beacon 链为其提供服务。具体来说,这意味着如果在分片A 上部署了SafeMath 库函数,分片B 上的用户将需要等待Beacon 链提供服务来访问SafeMath 库函数,或者在分片B 上部署新的SafeMath 库函数。

这意味着每个分片链上都需要部署像SafeMath库函数这样的通用底层库函数。这意味着1024条分片链上将有1024个SafeMath库函数。那么像Maker或Compound这样的市场又如何呢?该怎么办?如何跨越分片的边界,成为去中心化金融的一大考验。开立抵押债务头寸(CDP) 和获得贷款(DAI) 之间的长时间延迟可能会导致不可接受的财务损失。

如果市场环境发生变化,抵押贷款债务头寸在用户收到贷款之前被清算,会发生什么情况?在实践中,这可能意味着用户需要在每个包含必要智能合约的分片链上开设一个账户,而跨分片组合则完全丢失。创建订单的人(Maker)和去中心化交易所中的用户只有都部署在同一条分片链上才能进行交互,并且分片链上的用户账户需要拥有资产。

基本的权衡:同步性或可扩展性

即使是以太坊2.0 的设计者也不知道跨分片通信系统会是什么样子。从阅读许多提案来看,即时反馈和可预测性之间似乎存在根本性的权衡,但分片的本质并没有改变:无论跨分片通信用户都必须等待。只是我们可以选择交易的本地和远程执行阶段在每个分片链上的耦合程度。

紧密耦合使得等待优先。我们可以通过现在执行部分并稍后执行其余部分来松散耦合事务,而不是在分片链之间进行通信之前不执行任何事务。交易首先在本地分片链上执行,跨分片通信后,再在远程分片上执行。松耦合为用户提供了更好的用户体验,他们会立即看到自己的事务在本地执行,并知道在未来的某个时刻事务将继续远程执行,但不幸的是他们不能,除非他们等待了解远程执行阶段松耦合的事务。紧密耦合的事务更可预测,用户更清楚执行的结果,因为事务的远程状态在本地和远程执行阶段之间不会改变。然而,在紧耦合中用户还需要等待才能看到结果。

我们对以太坊2.0 通信模型知之甚少。我们所知道的是,它无法在不牺牲几乎所有可扩展性优势的情况下提供跨分片智能合约调用。设计师只给出了第四阶段的思维导图和一些模糊的链接。这种情况的一个不明显的后果是,以太坊2.0 在第4 阶段之前不会为复杂的智能合约系统提供重要的可扩展性支持。

在此之前,需要与其他智能合约交互的智能合约必须存在于同一条分片链上,并且也会受到分片链的速度和规模的限制。因此,我们预计,引入分片技术后,以太坊2.0 与以太坊1.X 版本相比,速度仅快几倍,不会出现翻天覆地的变化。这意味着在第4 阶段发布之前(可能在2020 年代中期),无需将智能合约代码以及用户迁移到以太坊2.0,因为迁移的好处微乎其微。同时,为了更好地理解开发者和Dapp 用户之间的权衡,我查看了一些模型并进行了简要描述。我不认为这些最终会被采用,但我相信它们有助于理解所涉及的权衡。请注意:这里所说的一切都是推测性的。

基本模式:收据和凭证

所有形式的跨链通信都使用信标链。由于Beacon链管理所有分片链的状态,并且每个分片链都向Beacon链提交状态,因此我们可以将Beacon链视为分片链生态系统的核心。从某种意义上说,从一个分片链到另一个分片链的消息必须通过信标链传输。我们不想发送完整的消息,因为如果需要信标链来处理每笔交易,那么分片就没有意义。

相反,每当分片A 上的用户或智能合约想要与分片B 交互时,分片A 都会生成包含该消息的“收据”。分片A 在其块头中提交所有收据。 Beacon链等待A的最终确认,然后提交到A的块头(包括对收据的承诺)。分片B必须等待Beacon链的最终确认,然后提交到Beacon链的区块头。此过程完成后,分片A 可以直接向分片B 提交包含收据和证明的新交易。证明显示收据包含在分片A 中,分片A 包含在信标链中,信标链包含在这样,分片B 中的智能合约就可以信任分片A 发送的消息。如果分片B 中的智能合约想要回复信息(可能是返回值或错误),我们需要重复整个过程过程相反:分片B 发出收据,最终传递给分片A。

不难看出这个过程是浪费时间。四个沟通步骤中的每一个都需要等待几分钟才能最终确认!不幸的是,我们无法完全避免等待。如果我们想要确定远程的状态,那么我们必须关注执行的每一步才能得到最终的结果。在最理想的情况下,两方需要等待四个最终确认时间才能相互通信。也就是说,用户经过三次最终确认后就可以确定交易成功,因为用户可以看到分片A在收到分片B之前就已经正式收到。考虑到以太坊2.0的6.4分钟时间段,用户必须等待19 分钟才能看到交易结果,26 分钟才能看到添加到区块链的交易结果。

跨链通信

具体接收:分片链之间的代币转移

ERC-20 代币的强大功能使其在当今的以太坊生态系统中无处不在。然而,以太坊2.0给代币的运行逻辑带来了一些问题。由于智能合约管理所有代币余额,并且智能合约仅存在于单个分片链上,因此分片A 中的代币不存在于分片B 中。但是,通过一些巧妙的跨分片通信机制,我们可以部署相同的代币在多个分片链上允许代币在分片链之间转移,即在代币智能合约之间建立有效的双向锚定链接(双向挂钩)。

解决方案非常简单:在部署我们的代币(我们称之为“酷跨分片代币”或“CCT”)时,我们在ERC-20 中添加两个小的附加函数:migrateSend(转账发送函数)函数和migrateReceive(转账接收函数)函数)函数。函数migrateSend 用于销毁令牌并生成收据。收据将包含已销毁的代币数量以及接收该信息的分片链。函数migrateReceive 验证收据并生成相同数量的令牌。我们将在每个分片链上部署相同的代币智能合约,以便我们可以通过调用migrateSend 函数销毁一个分片链上的代币,然后在另一条分片链上销毁它。在分片链上调用migrateReceive 函数来重新生成令牌。尽管这需要在每个分片上重新部署代币智能合约,但这似乎是值得的。这种传输是单向的,需要至少两个跨分片通信的最终确认周期。因此,在我们调用migrateSend 函数后,大约需要10 分钟才能在接收分片上使用令牌。

跨链通证转账

扬金

收据是跨分片传输信息的常见方式。我们可以将任何链上信息添加到收据中,甚至整个智能合约中。拖放是一项通过将智能合约的代码和存储包含在收据中来跨分片移动智能合约的提议。在拖放机制中,智能合约将被分片A 添加到收据并删除(拖放),并在收据到达分片B 后重新部署到分片B。一旦到达分片B,可以直接与分片B中的智能合约通信,与分片B的状态交互,甚至可以被拖回分片A。

小时

ttps://ethresear.ch/t/cross-shard-contract-yanking/1450拖拽机制将允许智能合约与任何其他智能合约进行通信(在等待跨分片时间之后)。不幸的是,由于收据包括完整的智能合约及其所有的存储,因此转移大型智能合约的成本会很高。收据在转移过程中,智能合约将无法使用,因为分片A已把它删除,而它还尚未到达分片 B,这意味着在它到达分片 B 之前,所有相关用户都被锁定在该智能合约之中,而且只有已经在分片 B 上拥有账户的用户才能与之交互。因此,拖拽最适合用户很少的小型智能合约。它使紧密耦合的执行成为可能,但并非通用的解决方案。
分片配对(Shard Pairings)
收据旨在使异步(松散耦合)通信成为可能。但在某些场合下,我们还可能需要同步通信。为此,我们必须加入一点创新。分片配对是一个简单的设计,让我们以最少的麻烦进行紧密耦合的状态更新。
分片配对是一个简单的方案,其原理是,我们在每个高度将分片混合成同步对。每次分片与另一个分片配对时,任一分片的用户都可以跨分片执行紧密耦合的状态更新。这意味着如果分片 A 和分片 B 在高度 7 处配对,则分片 A 和分片 B 的所有验证者都会知道分片 A 和分片 B 的所有状态,并且分片必须一起执行或根本不执行。在这个模型中,如果你需要在分片 A 和分片 B 之间执行跨分片交易,你需要等待分片 A 和分片 B 随机配对。Vitalik 分析了 100 个分片的案例,对于 1024 个分片,我们预计它需要经历 512 个区块,大约需要一个小时,但由于分片配对是随机的,时间可能需要更长或更短。正如 Vitalik 所说,当你想要与多个分片交互时,这时可扩展性很差。
△四个分片的分片配对
分片区域(Shard Zones)
分片区域是更广义版本的分片配对。其原理是,每个时间段内我们将分片分成几个由多个分片组成的“区域”。区域必须同步执行,这意味着区域中的所有分片一起更新其本地状态。通过同步执行,区域提供内部分片之间的自由转移,并可与区域中的其他智能合约直接交互,但是这种机制在与区域外的其他分片进行通信时没有任何优势。此外,由于分片区域机制需要验证者了解区域中所有分片的状态,因此分片区域的存在大大降低了分片带来的可拓展性优势。如果一个区域由 16 个分片组成,那么这个区域牺牲了大约 15/16(= 94%)的可拓展性优势,以换取总网络 15 / 1024(= 1%)紧密耦合的执行。
产权负担(Encumbrances)
跨分片(以及跨链)通信的一个不明显的特性就是,用户可以在区块链正式接收之前更快地获得交易的信息。就比如说,爱丽丝从分片 A 向分片 B 发送 5 BETH,知道它会在发送后立即到达分片 B。鲍勃看到了爱丽丝在发送,他知道一旦发送在分片 A 上最终确认,BETH 将到达分片 B。然而,分片 B 及其上的智能合约必须等待几分钟,等 Beacon 链最终确认分片 A 的最终确认。这意味着资金在分片 A 上花费之后,我们可以很快在分片 B 接收并花费这笔资金。
换句话说,鲍勃将从分片 B 上爱丽丝的钱包中获得可执行的 IOU(债券),因为鲍勃相信爱丽丝已经发送了足够多的以太币。如果分片 B 的大部分用户都愿意留意分片 A 上的交易并接受标准化的 IOU,那么分片 A 上的以太币可能在发送后很快在分片 B 上花费。然而,当应用于智能合约时,这种方案变得异常复杂,因为状态是不可替代的,状态的债券是不可能的,因此它不适用于一般的交互。这意味着我们应该将产权负担视为松散耦合中的用户体验改进,它允许用松耦合模拟紧密耦合以快速执行某些交易。
共识和状态分离
一个更复杂也更为烧脑的可能是共识过程将脱离状态更新过程。当下,以太坊矿工和完整节点只有在执行了区块中包含的所有状态更新后才接受该区块,其实没有必要,因为在接受区块之后再更新状态也不迟,只是在这种情况下,矿工不会像当下在以太坊中那样就区块链系统状态达成共识,而是会对所有分片链中所有交易的全部历史(或“全部顺序”)达成共识。
这样做意味着每个分片链都可以在无需知道其他分片链状态的前提下快速添加区块,这就是分片机制带来可拓展性优势的原因。但是,在所有分片最终确认之前,交易对分片链状态和整个区块链网络的影响将不得而知。换句话说,在所有分片内容的最终确认之后才能完成状态的最终确认。
从用户的角度来看:我们提交交易后就知道交易已被包含在区块链中,但我们必须等待一段时间来确定该交易执行的结果。随着分片的最终确定,我们逐渐获得有关区块链状态的更多信息,但在所有分片链都最终确定之前还无法完全肯定。与产权负担相似,在某些情况下,用户可以在区块链之前确定交易的结果并采取相应的行动。
结论 & 开发人员的前进方向
以太坊 2.0 将会是与以太坊完全不同的区块链系统,在未来的几年里,它们将本着不同的特征共同存在,不过在不久的将来,预计将会出现从以太币到 BETH 的单向挂钩。如果你经营加密货币交易所或托管服务,那么你就要思考如何在官方支持链上转移之前为你的用户提供 BETH 托管交易和抵押服务,从长远来看,你还需要考虑智能合约如何在有和没有跨分片通信的情况下适配分片技术。
当然了,最重要的是你需要密切关注以太坊 2.0 项目的研究和开发进程。以太坊 2.0 是一个复杂且不断发展的系统,为了更好地抢占先机,所有 Dapp 开发人员都需要清楚地了解以太坊 2.0 的计划和进度。
参考链接:
https://hackernoon.com/what-to-expect-when-eths-expecting-80cb4951afcd
https://www.reddit.com/r/ethereum/comments/agcrcb/what_to_expect_when_eths_expecting_hacker_noon/ee64r3n/
https://www.reddit.com/r/ethereum/comments/ahqmmx/serenity_proofofstake_sharding_all_that_is/
https://medium.com/rocket-pool/ethereum-2-0-whos-building-it-54a735442e
https://medium.com/rocket-pool/ethereum-2-0-76d0c8a76605

上一篇
下一篇

为您推荐

手机访问
手机扫一扫打开网站

手机扫一扫打开网站

返回顶部