在阅读本译文之前,您可以先了解国家通货膨胀和无国籍状态的背景知识,并推荐一篇文章:“观点|国家通货膨胀和无国籍状态”;
当前以太坊 1.0链的**问题是它的状态大小。大约为10-100 GB(取决于存储模式)。对于许多节点,将其保存在工作内存中是不切实际的,因此将选择较慢的固定存储。但是,硬盘太慢,无法与以太坊块(或genesis块)同步,因此必须使用更昂贵的ssd。可以说,目前国家的规模不是知名的问题,但国家的增长成本相对较低,而且还会继续增长。即使增加了国家增长的成本,也不能让国家占用者为网络的实际影响买单,而且这种影响是**性的。
目前解决方案主要中心化在两个方向:
➤状态租金:为了将状态保存在活动内存中,连续支付
➤无国籍:街区保留所有证人,如默克尔的证据,因此不再需要国家核实街区的有效性
在“无国籍”的方向上,有不同的概念值得探讨
➤部分无状态:只需要见证一些(过时的)状态,以减少验证块所需的状态数
➤弱无状态:验证块不需要状态,但建议的块需要完整状态
维塔利克在本文中提出了如何将这些概念组织成一个总体框架,并指出部分无国籍状态和国家租金非常相似,因为它们在修改现行状态时都需要某种形式的支付,以及重新激活旧状态的证明。
如果您是ETH1的用户,您可能会认为保持1gb甚至100mb的活动状态部分无状态是一个巨大的成就。为什么你要如此努力才能实现完全无国籍?我认为完全(弱)无国籍状态释放出巨大的潜力,这是部分无国籍状态无法实现的,因此我们应该尽**努力实现完全无国籍状态。
了解ETH2验证器
ETH1过去因对硬件的高要求而受到批评。尽管这些批评并不都是公平的(选定的中等消费硬件也可以运行ETH1节点),但我们需要注意这些事实,特别是在不破坏去中心化的情况下扩展以太坊。对于ETH2,我们设定了一个非常雄心勃勃的目标:能够在低成本硬件上运行ETH2节点和验证器,甚至是树莓派或智能手机。
这条通往可伸缩性的道路并不容易。其他项目,如EOS和Solana,需要更高性能的硬件和网络连接。但我认为有必要降低共识节点和P2P节点的阈值,以确保去中心化。
在ETH2中,一致性节点是验证器。ETH1和ETH2的共识节点之间有非常重要的区别
ETH1的共识节点是miner。要为区块链“投票”,你必须产生区块。换句话说,共识节点和块生产者是不可分割的。
➤ETH2或在第一阶段(信标链),提出区块和形成共识是两种不同的机制:随机选择的验证者每12秒提出一次区块,共识通过附件形成,每个验证者在每个历元(每6.4分钟)对区块链进行投票。现在每几分钟就有超过10万名核查人员投票以达成共识。区块制作者对共识没有影响(几乎是[1]),他们只能选择区块中包含的内容[2]。
消除块的支持者和共识之间的联系打开了一个重要的设计空间。信标链从验证器集合中随机选择块提议者,但是对于分段链来说这不是必需的
➤分段(尤其是ETH1执行分段)的一个有趣的可能性是,验证器可以输入生产块列表。这种验证器可能需要更高性能的硬件,还可能需要具有“完整”状态。
➤我们目前正在为数据分段实施的另一种可能性是,任何人都可以被选择来提出一个块,但块的具体内容不是由提议者决定的,不同的参与者可以投标以提出他们的打包块。
在这两种情况下,弱状态验证意味着所有其他验证器(那些不产生块或确定块内容的验证器)不需要状态。这与ETH1非常不同:在ETH1中,对共识形成节点(即矿工)的要求非常高,因此保持其完整状态似乎没有问题。但在ETH2中,我们可能会大大降低参与门槛,我们应该利用这一点来确保去中心化和安全。
投标人的费用高是可以理解的
另一个重要的反对意见可能是,如果块建议的成本太高,即使我们降低验证器和P2P节点的阈值,去中心化也会受到损害。但事实并非如此。“提议者”和“核查者”之间有重要区别:
➤对于验证者,我们需要绝大多数诚实,也就是说,超过2/3的承诺。P2P节点的情况可能类似,但据我所知,没有必要一定比例的P2P节点是诚实的。然而,为了确保一个有效的链总是可以被接收,每个人都需要连接到至少一个诚实的P2P节点。这一比例约为5%,实际可能更高。
➤对于支持者,我们对他们的诚实度要求要低得多。与ETH1不同,ETH2的支持者不回顾过去的区块(因为他们不投票),他们只能决定他们提议的区块的内容。假设你的交易不是特别紧急,如果95%的提议者试图审查,那么第20个提议者仍然可以安全地打包(但低延迟反审查制度是另一回事,在实践中更难实现)。
这就是为什么我不太担心提高硬件需求的支持者比验证者。如果我们保持正常验证器的要求较低,那么提议者需要128gbrampc来存储大的状态。我担心的是,如果一台能满足这些要求的PC的价格是10万美元,但如果我们把它控制在5000美元以下,一旦审查被发现,如果社会上不迅速引入更多的支持者作出回应,那就是不合理的。
**,还有其他原因,块的支持者可能需要更好的硬件,并有更多的优势,在收购电动汽车。
这里我用“提议人”来指的是包装块的作用,这不一定与正式签名和验证的作用一致。在汇总中,它们可能是“序列器”。为了简单起见,我在这里称之为proposer,因为如果只在系统中引入一个负责提议块的新角色,我认为系统不会受到根本性的破坏。
实现无国籍的好处
到目前为止,我还没有证明为什么无国籍状态如此强大。在可执行信标链的方案中,将状态从10gb减少到1gb或100mb似乎可以为验证器节省大量的开销。那为什么我们需要无国籍?
如果我们遵循这个趋势,可执行的ETH1块可能会变成一个片段。在可执行信标链方案中,所有验证器必须保持ETH1的完整执行(否则将面临签名无效块的风险)。但是,碎片不应具有此属性。只需要一个委员会来签署一个不完整的区块(因此,它是验证人的1/1024),其他人不需要相信委员会的大多数验证人是诚实的[3],只要有一个诚实的验证人在委员会试图作恶时吹口哨。这只有在ETH1是无状态的情况下才可能
➤我们希望所有验证器的负载大致相等,并且没有极端峰值。因此,长时间(例如,一小时或一天)向ETH1委员会发送验证器是非常糟糕的:这意味着在带宽要求方面,验证器的大小仍然必须与完整的ETH1链保持一致。此外,如果同一个委员会被长期使用(例如,通过贿赂攻击),该委员会会变得更加激进
➤我们希望能够简单地证明ETH1区块中的欺诈行为,因为其他核查人员将无法确定委员会是否正确地完成了工作。最简单的方法是让区块成为自己的欺诈证明:如果区块无效,广播区块本身就可以证明欺诈。
因此,在ETH1是完整的和无状态的前提下,ETH1可以是一个片段(例如,维护1/100所需的资源更少)。同时,只有这样才能在数据碎片化的基础上引入更多的执行碎片化。
缓存不总是好的吗?
那么,如果我们完全无状态,引入一个10MB的缓存呢?还是1MB?即使您只想检查一个块,您也可以轻松下载它,因为您已被分配到一个委员会,或者您已收到缓存作为欺诈的证据?
您可以这样做,但我们可以清楚地看到,如果大多数验证器只验证单个块,那么它不太可能是**的。假设我们的目标是1 MB的块,我们还有1 MB的缓存,这意味着每次验证器要验证一个块时,他们必须下载2 MB的数据(包括块和缓存)。他们每次都必须下载缓存,除非他们下载所有的块以保持缓存新,这正是我们想要避免的。
这意味着,在1 MB块和1 MB缓存的成本相同的情况下,我们可以将缓存设置为0,并允许块大小增加到2 MB。
显然,2MB块至少和1MB块+1MB缓存一样有效。原因是,如果这是我们的**选择,2 Mb的块可能只包含1 Mb的缓存。我们只需要提交每个块上的缓存,然后在下一个块中重新引入完整的缓存。这可能不是块中1MB的**使用,但您可以做到。可以更好地利用额外的1 MB来引入更多的见证。
二叉树还是verkle trie?
我认为,总的来说,争取完全(弱)无国籍状态的呼声超过了部分无国籍状态或有状态租金计划的呼声。这对用户的影响较小:他们根本不必考虑状态。他们唯一要做的就是添加见证(这样P2P网络就可以验证有效的事务)。创建证人的成本非常低,可以想象会有许多相关服务。事实上,大多数钱包已经依赖外部服务,不需要用户运行自己的节点。作证只是一个很小的功能。[4]
部分无国籍或国家租金在完全无力的无国籍道路上给用户体验增加了很大障碍。但是考虑到仅仅用二叉Merkel树来尝试实现无状态是非常困难的,并且要让Merkel树来证明gas需要改变,这将损害用户体验。
所以在我看来,我们现在应该朝着verkle的方向努力。这使我们能够拥有小于1MB的可管理证明,并且只有eip-2929建议的中等气体费用,以及代码块费用。其缺点是易于控制,对用户实际影响不大
➤开发人员需要学习新的加密原语
➤添加更多非反后量子密码。第二点听起来很糟糕,但是我们在ETH2中引入了kzg承诺,用于数据可用性采样,而且我们仍然使用基于椭圆曲线的签名。我们需要对组合的ETH1和ETH2链进行一些量子后升级。没有切实可行的后量子选择,所以我们不能停止前进。就收养而言,未来五年极为重要。未来的道路是尽力而为,5-10年后,当斯塔克足够强大时,我们将彻底升级所有原语。
总的来说,弗克尔的努力可以在未来五年内解决国家问题。现在,我们将能够实现完全(弱)无状态,对用户和智能合约开发人员的影响很小。我们将能够提高气体上限(因为验证变得更快)并执行更多的碎片化,所有这些都不会对安全和去中心化产生什么影响。
最难的是让每个人都明白kzg的承诺和verkle的工作方式。由于ETH2将使用kzg承诺来确保数据可用性,大多数以太坊开发人员需要做相关的工作。
[1] 影响很小,因为现在有一些微妙的优化来提高对某些平衡攻击的恢复能力,这确实使支持者能够对分歧选择产生短期影响。
[2] 确切地说,如果区块生产者开始串通和审查大量证据,可能会产生影响,但单个区块生产者对共识的影响可以忽略不计。
[3] 不诚实的委员会行为会影响整个网络并造成严重的延迟,但不会引入无效/不可用的块
[4] 想要运行自己节点的用户仍然可以在外部服务的帮助下获得见证。这种操作是不可信的,因为证人是在知道最近状态根的前提下自己证明的
文章标题:以太坊2.0:无国籍的重要性
文章链接:https://www.btchangqing.cn/220276.html
更新时间:2021年03月27日
本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。