区块链网站|NFTS Zcash(ZEC) 听听神五的故事 以太坊没有走的那些路

听听神五的故事 以太坊没有走的那些路

广告位

听V神讲述,那些以太坊没有走的路

声明:本文旨在传递更多市场信息,不构成任何投资建议。文章仅代表作者观点,不代表火星财经官方立场。

边肖:记得要集中注意力。

来源:有节奏的街区节奏

原标题:《The roads not taken》

原作者:维塔利克布特林

原文来源:Vitalik Buterin官网

原编译:Kxp,有节奏的BlockBeats

以太坊协议开发社区在以太坊前期做了很多决策,对项目的发展轨迹产生了很大的影响。在某些情况下,以太坊开发者做出了理性的决策,解决了比特币遇到的一些问题。在其他情况下,我们也在创造全新的事物,用许多选择来填补过去的空白。有时候,我们需要在复杂和简单之间取得平衡,因为它们适用于不同的情况。

在本文中,我将介绍一些fork函数,其中很多函数在核心开发人员的圈子中已经有过认真的讨论;但剩下没讨论的功能,此刻也应该提上日程了。同时,我们也期待看到一个不一样的以太坊,从中学习新的东西。

是否应该采用简化版的产权证?以太坊即将并入的Gasper产权证书系统虽然复杂,但功能强大,具有以下特点:

强大的单块确认——一旦一个事务被包含在一个块中,这个块通常会在几秒钟内固化。除非大量节点完整性低或者网络延迟极端,否则无法逆转。

经济确定性——一旦区块最终确定,在攻击者没有损失数百万ETH的情况下,它是不可逆的。

可预测回报——验证者在每个周期(6.4分钟)都能获得可靠的奖励,降低了对现金池的激励。

支持大量验证器——与其他大多数具有上述特征的链不同,以太坊信标链支持数十万个验证器(例如,Tendermint提供比以太坊更快的确定性,但它只支持数百个验证器)。

但是要做出一个具备这些特性的系统是相当困难的,需要多年的研究,无数次的失败,以及大量的精力,最后的结果会非常复杂。

如果我们的研究人员不需要考虑太多共识,有足够的精力,那么也许rollup早在2016年就发明出来了。这让我们不禁想:我们的权益证明真的应该有这么高的标准吗,因为哪怕是一个简单弱化版的权益证明,也会比我们现在的工作证明好很多。

很多人有一个误区,认为权益证明本身就挺复杂的,但其实有很多权益证明的算法几乎和中本聪PoW一样简单。NXT的股权证书出现在2013年,是很自然的人选;虽然它也有问题,但这些问题可以很容易地修复,我们本来可以从2017年甚至从一开始就有一个运行良好的股权证书。Gasper比这些算法更复杂,只是因为它试图完成比它们多得多的任务。然而,如果我们从一开始就小心谨慎,我们可以先集中精力实现一些更有可能的目标。

在我看来,一开始就采用股权证明并不是一个正确的做法;PoW有助于扩大初次发行,提高以太坊的可及性,促进业余社团的发展。但在2017年,甚至2020年,改用更简单的权益证书可以更好地保护环境(以及环境破坏引发的反密码思潮),同时也可以让研究者更好地专注于扩张问题。我们还需要花费大量的资源来做一个更好的权益证明,这是从目前情况来看的必然结果。

碎片去复杂化从2014年我们开始研究以太坊碎片开始,就一直致力于去复杂化的问题。以前复杂的碎片内置了执行和跨碎片交易功能,但之后我们简化了协议,把更多的责任转移给了用户(比如跨碎片交易,用户要分别为两个碎片交气费)。然后,我们转向以rollup为中心的路线图。从协议的角度来看,碎片只是数据的集合。最后,通过danksharding,我们可以将碎片化的充电市场合二为一。这样,虽然最终的设计看起来是一个不分段的链,但背后的数据可用性采样可以让分段验证成为现实。

但是如果我们选择了相反的道路呢?事实上,以太坊的研究人员已经花了很多时间探索更复杂的碎片系统:碎片将成为一个链,子链将在分叉选择规则中依赖于主链,跨碎片消息将由协议路由,验证器将在碎片之间轮换,甚至应用程序将自动完成碎片之间的负载平衡。

这种方法的问题在于,这种碎片化基本上只是一些想法和数学模型,而Danksharding是一个完整的、可实现的规范。所以,鉴于以太坊的局限性,在我看来,切分的简化和消歧是绝对正确的。尽管如此,我们还是应该投入更多的精力在研究上,因为这可以帮助我们确定有前途的研究方向。总的来说,即使是非常复杂的想法,也是一个简单的版本,仍然可以给我们带来很多帮助,也很有可能影响以太坊协议(甚至Layer2协议)未来几年的发展方向。

我们应该增加还是减少EVM的功能?除安全审计功能外,EVM的规范可在2014年年中前推出。然而,在接下来的几个月里,我们一直在积极探索有助于分散应用区块链的新功能,具体如下:

1.之前我们想加一个POST操作码,后来决定放弃。POST操作码进行异步调用,该调用在事务完成之前不会执行。

2.之前想加一个ALARM操作码,后来放弃了。ALARM的功能类似于POST,只不过它可以在一个未来的块中执行异步调用,这样契约就可以提前计划操作。

3.我们添加了一个日志,它允许契约输出与状态无关但可以被DApp界面和wallet读取的记录。然而,我们也考虑过让ETH转移一个日志,但我们放弃了,因为我们认为“反正人们很快就会改用智能合约钱包”。

4.我们考虑过扩展SSTORE来支持字节数组,但后来我们选择放弃,因为我们担心它的高复杂性和安全性不足。

5.我们添加了预编译的合同,可以以本地方式执行特定的加密操作,比EVM的汽油费更低。

6.在发布后的几个月里,我们反复考虑了国家租赁的问题,但由于其复杂性,我们没有将其包括在内。如今,人们正在积极探索更好的状态到期方案,尽管无状态验证和提议者/构建者分离比它重要得多。

今天我们基本上已经做出了正确的决定,确实不需要增加POST操作代码,而且报警操作代码的安全性也很难保证(如果每个人都在1到99999个块中设置一个报警,那么如果在第100000个块中执行很多代码会怎么样?那个程序块会花几个小时处理这些代码吗?一些预定的操作会被推到后块吗?如果出现这种情况,报警能保持什么安全保障?字节数组SSTORE的安全性也很难实现,最坏的情况下会扩大见证规模。

状态租赁的问题更具挑战性:如果我们真的从第一天就实现了某种状态租赁,那么我们将拥有任何一个智能契约生态系统,它可以围绕持久状态的标准化假设而进化。以太坊将变得更加难以建造,尽管它可能更具可扩展性和可持续性。同时,我们当时的状态到期计划确实比现在差很多。有时候,一个好的想法需要几年才能实现,没有捷径可走。

可以通过两种不同的方式完成日志的替代路径日志:

1.我们可以让ETH传送自动发出日志。这将为交易所和许多其他用户节省大量时间,并减少软件错误的发生。人们将更加依赖日志,智能合约钱包将在更大范围内使用。

2.我们完全可以在不使用日志操作码的情况下,把它变成一个ERC:会有一个配置submitLog函数的标准契约,可以使用以太坊存款契约技术,计算这个块中所有日志的Merkle根。无论是EIP-2929还是块上的存储(相当于TSTORE,不过后面会清空)都会降低它的成本。

第一种方法我们认真考虑过,但最后没有采用。主要原因是不够简单:直接用日志操作码生成日志更方便。我们还做出了一个错误的估计,即大多数用户会迅速迁移到智能合约钱包,并使用操作码来记录转账。

第二种方法我们之前没想过,但现在回想起来,其实挺好的。它的主要缺点是缺乏快速扫描日志的Bloom filter机制。但事实证明,Bloom filter机制太慢,对DApp不友好,所以现在越来越多的人开始使用Graph来查询。

一般来说,采取任何方法都会使情况好转。将日志保存在协议之外会让事情变得简单一些,但是如果是在协议之内,它自动记录所有ETH传输的功能也是非常实用的。

今天,我将同意取消EVM的日志操作代码。

如果EVM完全不同呢?EVM可以选择两条完全不同的道路:

1.让EVM成为内置变量、if语句、循环等结构的高级语言。

2.使EVM成为一些现有虚拟机(LLVM、WASM等)的副本。).

第一条路我们从来没有仔细考虑过,但是它的好处是可以简化编译器,让更多的开发者直接在EVM编码。同时,它可以使ZK-EVM的结构更简单。但是,这种路径的弱点在于,它会使EVM码的结构更加复杂:它不再是简单的操作码列表,而是更加复杂的数据结构,必须以一定的方式存储。也就是说,我们错过了一个一举两得的机会:在保持EVM基本结构不变的情况下,做一些改变可以给我们带来很多好处,包括禁用动态跳转、添加一些支持子程序的操作码(也可参见EIP-2315)、只允许在32字节的词汇边界上访问内存等等。

第二条道路是混合的。支持它的人认为它可以从现有语言(C,Rust等)编译程序。)进入EVM,而反对它的人则认为,由于以太坊的特殊限制,它实际上不会提供任何好处:

1.现有的高级语言编译器往往不关心总的代码大小,区块链代码必须经过极大的优化,以减少每个字节的代码大小。

2.我们需要实现虚拟机的多个功能,严格要求两个功能不能以不同的方式处理同一个代码,但这样也会造成对不是我们写的代码进行安全审计和验证的困难。

3.如果虚拟机规范发生变化,以太坊就要一直跟着更新,否则很难同步。

因此,尽管一些细节在开始时可能会产生更好的结果,但与目前的情况不同,EVM可能永远不会有一条可行的道路。

ETH供应量是否应该以不同的方式分配,我们可以从Etherscan的下图中看到当前的ETH供应量:

如今,以太坊的公开销售中,约有一半的ETH被售出。任何人都可以将BTC发送到一个标准化的比特币地址,初始的ETH供应分布由一个开源脚本计算,该脚本通过扫描比特币区块链上的交易来获得地址。剩下的ETH基本都是通过挖矿获得的,其中1200万ETH标注“其他”是“预挖矿”——的部分,分布在以太坊基金会和以太坊协议的早期贡献者约100家之间。

人们对这一过程提出了两种批评:

1.预采矿和以太坊基金会收到销售资金的事实是不可信的中立。有些收款人的地址是闭环手动选择的,要相信以太坊基金不会通过贷款的方式,把销售收到的资金重新投入到销售过程中,从而为自己提供更多的ETH。

2.前期挖掘过度奖励前期贡献者,使得后期贡献者获得的奖励较少。前期挖掘的75%用于奖励开始前贡献者的工作,但开始后以太坊基金会只剩下300万ETH。在随后的六个月中,由于财政需要,这一数字下降到大约100万ETH。

在某种程度上,这些问题是相互关联的:为了尽量减少集权,人们减少了预挖掘的规模,这也会使它更快地耗尽。

Zcash另辟蹊径:协议中一组硬编码的接收地址将获得恒定的20%块奖励,这个列表每四年重新协商一次(目前已经调整过一次)。虽然这种方式更具可持续性,但也会因为中心化而受到更多的批评(Zcash社区似乎比以太坊社区更愿意接受技术专家的领导)。

我们可以采用一些defi项目中流行的“DAO from day 1”作为替代路线,方案草案如下:

1.我们同意在两年内将每个区块的两个ETH奖项投入发展基金。

2.任何人在以太坊的销售中购买ETH,都可以指定自己喜欢投的发展基金,以此来分配ETH(例如“1ETH给以太坊基金会,0.4ETH给Consensys研究团队,0.2ETH给Vlad Zamfir等。”).

3.从发展基金中获得投票的接受者的份额将等于每个人投票的中位数,并将按比例计算,以确保总数等于每个区块的2 ETH(中位数的设置是为了防止自我交易:除非你让至少一半的其他买家投票给你,否则投票给自己是没有用的)。

这种出售可以由一个法律实体完成,该实体承诺按照与ETH发展基金相同的比例分配(或销毁,如果我们想让比特币玩家高兴的话)出售期间收到的比特币。这可能会导致以太坊基金会等团体在不破坏公信力和中立性的情况下获得大量资金,加速生态系统去中心化的进程。当然,这种做法的缺点是投币式投票确实不好,但务实地说,2014年还是一个早期的、理想化的阶段,投币式投票最严重的缺点要在发售结束后很久才开始显现。

这可能是一个更好的想法,并开创了一个更好的先例。虽然从现实的角度来看,即使发展基金是完全可信和中立的,但今天对以太坊矿工不满的人,很可能会把矛头指向道岔。

启蒙一般来说,有时候我觉得以太坊最大的挑战就是保持两种愿景的平衡。——重视安全性和简单性的简单区块链,以及用于构建高级应用程序的高性能平台。上面的例子只是这个问题的一个方面:我们是减少函数的数量来更像比特币,还是为了方便开发者而创造更多的函数?我们是应该担心让开发资金变得更加可信和中立会让它变得更像比特币,还是应该首先关心如何确保开发者获得足够的回报,让以太坊变得更好?

个人认为可以同时实现这两个愿景:——,一个规格逐渐缩小的基础层,一个强大的以Layer2协议为核心的开发者友好的高级应用生态系统。即便如此,也需要很长时间才能达到这样的理想状态。所以,只有一步一步考虑怎么做路线图,才能取得一定的效果。

虽然我们现在不能改变很多东西,但这不是全部,我们仍然可以开始改善功能性和简洁性。但是,在这个过程中我们有时会遇到一些困难:为了提高Layer2在切片上的可扩展性,我们需要先增加一些复杂度来实现切片。但即便如此,降低复杂性还是有可能的,以太坊的历史已经证明了这一点:

1.EIP-150使得调用栈深度限制不再适用,从而减少了合同开发者的安全顾虑。

2.EIP-161使得“空账户”不再与字段为零的账户区分开来。

3.EIP-3529号法案删除了部分退款机制,使得汽油代币不再可行。

有了Verkle Tree等仍在酝酿中的想法,我们甚至可以进一步降低复杂性。但未来如何更好地平衡这两种愿景,是我们应该开始思考的问题。

广告位
本文来自网络,不代表区块链网站|NFTS立场,转载请注明出处:https://www.qklwz.com/jzb/zec/53615.html
上一篇
下一篇

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

返回顶部