当前位置:首页区块链从“国家”的角度理解以太坊及其未来

从“国家”的角度理解以太坊及其未来

各种发展方向如何利用和改变以太坊范式?

介绍

以太坊区块链自2015年创建以来,经历了五个冷热时期。五年的时间不仅使以太坊协议作为一个概念成为现实,使其更加成熟和具体,也暴露了这样一种设计的特点和利弊。这些权衡,作为设计挑战,自然会吸引并继续吸引无数的人才来尝试提高以太坊的可用性。其中,一系列提高“可伸缩性”的解决方案是最中心化精力和想象力的。

我们想在本文中指出的是,正如以太坊范式面临设计权衡一样,所有这些可伸缩性解决方案也面临权衡。为了评估这些权衡是否值得,我们需要回到以太坊本身,即以太坊节点和用户的真正问题和真正需求。“国家”视角作为理解以太坊本身的视角,可以帮助我们厘清这些方案的设计,揭示我们的得失。

本文将从解释“状态”的含义入手,揭示以太坊的**长矛和致命弱点,进而探讨各种改进方向“富态”是以太坊智能合约“可组合性”的源泉,但也是以太坊网络的**弱点。由此,我们可以看出哪些经常提到的解决方案会影响“可组合性”,哪些“可伸缩性”具有更明显的意义。

以太坊作为范例

丰富的状态和可组合性

什么是“国家”?状态是一个系统在某一时刻的具体情况。以实现加密货币的区块链为例。区块链在某一时刻的状态是区块链上所有地址的资产分布(地址a有10个硬币,地址B有100个硬币等)(其实我们所拥有的只是一些状态,这是我们的思想和社会共识,这些状态被解释为“资产”)。

从这个角度来看,每一套区块链协议大致可以分为两部分,一部分是共识机制,另一部分是状态转移规则(有时称为“共识规则”)。前者定义了块外规则,表示所有参与区块链的节点何时需要在本地更新区块链数据库的状态(例如,例如)以太坊区块链节点在收到满足难度要求的工作量证明的区块时,更新本地区块链数据库的**状态;状态转换规则定义了什么交易是有效的(“账户的支出不能超过自己的余额”),还定义了节点在处理事务时应如何更新状态“此事务意味着帐户a已将5个硬币转移到帐户B,然后帐户a将从余额中减去5,帐户B将向余额中添加5”)。

对于比特币,其一致性机制是“POW+Nakamoto一致性”,其状态转移规则是基于utxo的。对于以太坊,其阻塞机制是“POW+ghost规则”,其状态转移规则是基于帐户的。

那么,是什么让以太坊成为突破性创新呢?

我们经常听说以太坊之所以特别是因为它“引入了图灵的完整编程语言并支持可编程性”等等。事实上,这种说法并不准确。因为允许更复杂的编程语言并不意味着什么,比特币也可以编程;允许比特币使用实体编程语言并不能得到以太坊。以太坊真正特别的是“富状态性”3:它允许一个合同调用另一个合同,并且除了块容量本身之外,它对此类调用的级别数没有任何限制。

合同B可以调用合同a并根据合同a的打开代码更改合同a的状态。合同C调用合同B也可以间接调用合同a并更改合同a的状态。因此,虽然a的状态存储在合同中,但其控制逻辑可以如此重叠并不断累积;如果我们把国家理解为一种资产,就意味着可以对资产的使用权(使用条件)进行更严格、更复杂的持续控制;这就意味着,从理论上讲,一个国家的更新逻辑可以无限接近现实生活中的金融合同(因为所有的金融合同)关于一切都可以通过简单的逻辑叠加,组合。最重要的是允许任何多层控件的积累,但是如何编程这个控件是次要的。

此外,以太坊还允许用户向区块链写入状态,使这些状态成为全局状态的一部分,并要求节点根据合约定义的逻辑更新状态。因此,合同可以向以太坊上的所有其他帐户披露其状态,而前面提到的富状态非常有用。

这是正确的。现在我们已经收集了三个属性像龙珠

(1) 链上计算范式:契约可以要求节点根据自己定义的逻辑进行计算;

(2) 全局状态:合同的状态可以成为全局状态的一部分并向所有其他帐户披露;

(3) 富态:契约可以互相调用,栈层数没有限制,控制逻辑可以层层累加;

现在我们可以召唤以太坊最强的长矛:“可组合性”(货币乐高)!

链计算允许我们拥有各种契约;全局状态允许这些契约访问彼此的状态;富状态允许契约的组合具有无限多样性。因此,我们不仅可以有一个稳定的Dai,还可以有一个贷款市场,一个彩票申请,一个自动捐赠彩票收益的申请,一个自动平衡不同贷款市场之间储蓄比例的申请

状态数据爆炸

“冷静”是真的吗?是的,以上三个属性的三位一体实际上是一把双刃剑。

以太坊的状态转换过程可以抽象为:状态转换函数以旧状态和事务列表为输入,输出新状态。这意味着以太坊的全验证节点必须在本地维护以太坊区块链的**状态,以便执行状态函数,并用结果验证某个区块的有效性(同时与其他以太坊节点达成共识)。

矛盾在于:对于合同和开发人员来说,合同状态作为以太坊全局状态的一部分存储在以太坊的节点上,合同状态更新由以太坊的节点计算(并由发起计算请求的用户支付),这些状态将**存储在以太坊的完整验证节点中,只要支付一次。虽然每次更新都需要付费,但不能避免存储在本地节点的状态数据会不断积累和扩展。

状态数据的扩展之所以成为一个问题,是因为它会给完全验证节点带来越来越多的硬盘(随机)读写负担。与块数据不同,块数据是静态的,在持久存储之后不需要频繁地读写。但是,每个额外的状态数据块都需要多次读写。随着状态数据量的增加,读写负担将越来越重。在过去的几年中,我们经常听到人们说以太坊的整个节点很难部署,其中一个主要原因就是。不久前,infra 4的免费以太坊节点服务崩溃,导致许多依赖infra的服务崩溃。这给大家敲响了警钟。原始以太坊节点的维护非常困难,人们更愿意信任其他节点。

这个问题不容易解决。在过去几年中,以太坊的许多硬分叉升级都增加了访问状态操作码的耗电量,这恰恰是为了防止合同以经济成本创建新的状态。但这显然只是暂时的解决办法,因为逻辑没有根本改变。状态数据应该保存在以太坊节点,但是创建状态数据的用户只需要支付一次。也有人建议,为了改变这一点,我们需要引入某种“国租”机制,要求保留国的合同连续支付租金,否则合同的有效性就会终止。然而,这种机制具有难以想象的复杂性。一方面难以确定合理的收租方式,另一方面也难以确定合理的支付对象。因此,关于租金机制的研究在2019年停滞不前。一些项目(如nervos)试图通过持有货币的数量来定义可用状态空间的大小,因此状态数据的大小总是有一个上限,这避免了状态通货膨胀的问题,但它也改变了原始资产的经济属性。

到目前为止,除了“无国籍”问题,我还没有看到一个令人满意的办法从根本上解决这个问题,“无国籍”现实地说,也面临许多挑战。我们稍后再谈。

总之,全局状态、链上计算和富足状态使得以太坊上的契约具有可组合性,以太坊上的网络存在中心化的危险。就像小说《指环王》中的指环王一样,它不仅可以召唤强大的力量,还可以吞噬用户自己。我担心以太坊会长期承受如此沉重的负担。

接下来,我们使用“状态”视角来理解各种可伸缩性解决方案的设计和权衡。

以太坊的发展方向

在本章中,我们将分析以太坊的四个发展方向:Layer2方案、切片方案、无状态方案和汇总方案。这种分类是完全不合理的,因为rollup是layer-2方案的子集,而无状态是切片的前置技术。即使将它们并置也是不合理的,因为layer-2方案几乎不需要改变以太坊的底层,而切片和无状态则有这样的要求。这只是为了便于叙述和理解。

二层方案

Layer2解决方案背后的想法来自一个简单但非常准确的直觉:以太坊面临吞吐量瓶颈的原因是它由以太坊组成,网络中节点的带宽、算力和维护状态数据的能力都是有限的,很难提高。简单地要求整个网络中的节点每单位时间处理更多的事务,节点的操作需求必然会上升,这将破坏去中心化。但是,从使用的角度来看,没有必要把所有的状态都放在以太坊中,我们可以把合同的中间状态(或所有状态)保存在其他地方,用户的交互(即状态更新)不会发生在以太坊区块链中。只有当用户认为需要解决某个状态时,我们才可以将该状态发送给以太坊,以太坊会发送给用户确认。

一句话:如果不能使网络在单位时间内达成更多交易的共识,就应该提高单笔交易的内涵。

经典的Layer2方案“状态通道”就是这一思想的最透彻的体现:当参与一个通道的两个用户将自己的资金锁定在合同中时,他们之间的交易不会被发送到链上,他们使用其他通信工具相互交换签名消息,以便就渠道的状态达成共识(因此,无论他们发送或接收多少信息,形成多少状态数据,他们都无法相互沟通,直到两个人认为他们不再需要互动(或者需要暂时解决一次),他们将互认状态和签名发送给以太坊。然后以太坊更新合同状态,并根据此状态为两个人结算资金。

如果您将layer-2解决方案作为契约的设计模式,您将更清楚地看到layer-2解决方案选择不使用全局状态。另一个合同不能实时知道Layer2合同的内部状态是什么(每个用户a/B/C有多少),因为这些状态不在链上。因此,Layer2合同不能与其他合同合并。

尽管如此,layer-2方案也带来了一些重要的价值:更快的事务速度(尽管确认的中间状态不如主链状态安全)、更低的处理费用和主链节点更少的负担。

但为什么Layer2在过去几年里没有成功呢?在汇总计划出现之前,其他计划,包括国家通道和等离子,无法证明锁定在自己合同中的资金与锁定在与国家合同中的资金一样安全(既没有冻结也没有被盗)。在状态通道方案中,如果你不总是监控区块链,你的交易对手可以通过向主链提交旧状态来“窃取”你的资金;在plaa方案中,你往往需要依赖运营商为你提供自己状态的证明,因此很难为运营商自己辩护。

这与以太坊主网带状态合同的使用经验完全不同。除了合同的代码风险外,除非有人发起51%的攻击来取消你的收入交易,否则你在合同中存入的钱不会被盗;除非有人一直通过51%的攻击来审核你的交易,你当然可以提取自己的资金。(稍后,我们将看到汇总解决方案如何解决此问题。)

切片

如果每个节点分别处理以太坊个不同的事务组,则只能分别处理以太坊个不同的事务组,那么单位时间内整个系统的吞吐量等于这些节点组的单组处理能力之和,即单个节点的负担不增加,但整个系统的吞吐量有所提高(包越小,吞吐量乘数越大)。这被称为“碎片化”。

关于碎片体系结构的一个有趣的问题是它的确切定义。在经典的非碎片区块链架构中,所有节点必须(1)重复所有计算;(2)维持所有状态;(3)传播所有块/事务。有人认为,如果只有一个被打破,它将是支离破碎的;但从更严格的角度来看,这三个都必须被打破,以实现从理论6得出的吞吐量改进效果。不同的定义带来不同的效果。在这里,我的定义是一个节点至少不需要维护整个系统的所有状态。

但另一个更有趣的问题是,如果可以实现分区体系结构所需的前端技术,那么该体系结构的重要性有多大。

在以太坊基金会的研究小组构想的体系结构中,将整个系统的状态划分为多个部分,每个部分并行更新,也就是说,一个分区不能实时地理解另一个分区的内部状态。当片段a上的协定a#39;尝试调用片段B上的协定B#39;时,不能假定处理器具有片段B的状态。因此,处理结果必须等待片段B完成状态更新后才能返回。因此,跨片段事务必须承受事务处理中最难以忍受的成本:延迟。关键是这种延迟不能用货币成本来抽象。因为片段B不知道片段a上有一个事务需要自己调用,所以它只能等待可信通信层为自己广播该事务。

单位时间内可以创建的值越高,延迟就越难以忍受。这意味着,如果某一组WiFi应用中存在补丁,这些应用根本不会通过跨片事务来调度其他补丁的处理能力,因为这毫无意义,无法满足WiFi应用的延迟要求。类似地,这也意味着DeFi应用的中心化片段的单个片段的处理能力是其处理能力的上限(与单个区块链没有区别)。在深山老林中修建房屋和道路,并不能解决大都市居民的居住空间问题。

(有些人认为这些“空闲”的片吞吐量可以被较少的应用程序使用。在我看来,Layer2和Layer2的安全性可以达到相同的效果。)

无国籍状态

无状态是直接面对状态数据膨胀问题的唯一升级方向7。

在当前的以太坊协议中,事务本身并不携带它所访问的状态的信息。因此,处理事务的节点必须维护状态数据,作为执行状态转换函数的前提。因此,状态数据的扩展是一个问题。

无状态的关键是使事务/块本身附加访问状态的信息。因此,一个块只能由它自己验证,而不需要处理事务的节点具有状态。

实际上,无状态就是改变以太坊块的结构和以太坊块的验证方法。无需维护状态数据,无需读写硬盘,块验证速度更快。在每个节点上维护自己的数据状态时,也可以根据自己的需要而不是所有的数据状态。

然而,老实说,无状态仍然面临许多设计挑战。具体来说:(1)无状态要求块/事务附加访问状态的见证。这部分数据的大小可能非常大。以太坊当前的块数据大小约为20-40KB,但见证数据大小可能以MB为单位(2)只有维护所有状态的节点才能组装见证,那么谁能为普通用户提供状态呢?(事实上,这可以看作是以太坊操作假设的变化:所有节点都可以参与挖矿,但无状态实现后不能参与);(3)交易的用气量如何定价?特别是由于witness具有实时性,无法根据操作码确定组装witness所需的计算量。

由于这些困难,以太坊的整个节点可能需要在这种保持所有状态的模式下运行很长时间。然而,在当前以太坊协议的改进中,无状态无疑是最令人兴奋的方向。因为它直接面对以太坊的核心问题,并试图以激烈的方式解决它。此外,对以太坊协议中状态数据使用的研究也滋养了其他研究方向,如同步方法8。

我有一种偏见,认为以太坊的未来,即使它不是无国籍的,也是某种受无国籍启发的解决方案。

汇总方案

汇总方案是Layer2方案。它的特点是,它将在以太坊区块链上发布每个状态更新中使用的事务。

与其他Layer2方案一样,rollup方案也存储链下的状态,不需要以太坊的节点计算新的契约状态,而是将改变契约状态的事务作为数据发布,这意味着任何第三方都可以根据这些公共数据和公共规则计算合同的状态(尽管交易),以太坊上的合同不能利用这些状态)。

当涉及到用户对合约状态的选择时,ae2-6012-layer不知道合约的运营商是否会向区块链发送一个无效状态并让区块链决定。如果运营商能做到这一点,就等于直接窃取了用户的资金。此外,用户不知道Layer2合同的运营商是否会审查自己的交易并冻结自己的资金。

解决资金被盗问题有两种方法。一是确保每一次国家过渡都是有效的。也就是说,每次更新契约的状态根时,以太坊就可以执行一个验证程序来验证计算的完整性。只有验证通过后,才能更新合同的状态根。这称为ZK rollup。另一个想法是,当人们请求更新合同的根状态时,需要附加一个押金。如果提交的状态根无效,则报告状态根的人可以从原始提交方获得押金,这称为**滚动。但后一种理念有一个前提:检察官在国家过渡前必须有一个获得国家的途径,否则就没有过渡的错误证明。

解决资金锁定问题的方法只有一个:尽量弱化“经营者”的概念,让任何人都可以向以太坊提交交易,更新二层合约的状态。但这又引出了一个问题:如果提交人不具备合同的身份,他如何证明自己的状态访问的有效性并让合同通过?

**,rollup解决方案通过“在每个状态转换时发布匹配的事务数据”来解决这个问题。因此,尽管rollup契约不公开链上的状态,但是任何人(包括rollup契约的用户)都可以基于这些公共事务包重构rollup契约的内部状态。这意味着,如果设计得当,汇总合同中的资金可以像以太坊区块链上保存的与国家的合同(即我们现在使用的合同)一样安全!

以ZK rollup为例,链上的验证程序确保了rollup契约不能更新不正确的状态根,就像maker Dao不能在没有您允许的情况下没收您的Dai一样。同时,假设它还公开了计算完整性的构造方法,您可以随时直接启动链上契约的状态转换来取款。这与状态为的普通合约完全相同:如果没有51%的攻击,则无法回滚汇总合约的状态;如果没有持续的51%攻击,则无法阻止您取回资金。

**rollup依赖于一些密码经济假设,因此它稍微弱一些:除了51%攻击回滚状态外,攻击者还可以通过持续一段时间的51%复查攻击将错误的状态根注入到契约中;或者他可以打赌,所有计算过合同**状态的人都不会观察到错误(概率很小)。但**的汇总也可以提供一个强大的免费托管,你可以在任何时候拿回你的钱。

换言之,如果用户愿意将钱存入有状态契约(例如compound、maker Dao、Uniswap),那么他们没有理由不愿意存入汇总契约(如果不需要添加限定符,则是ZK汇总契约)。通过ZK rollup,layer-2解决方案能够为用户提供以太坊区块链上的合同所能提供的****的金融安全。显然,只有这样才能大规模采用。

当10-2层的内部契约状态为不可访问时,它的内部契约状态将被视为不可访问;当10-2层的内部契约状态为不可访问时,它的内部契约状态将被视为不可访问;当10-2层的内部契约状态为不可访问时,它的内部契约状态将被视为不可访问,以太坊节点不会受到影响其作用更多的是验证,即验证状态根更新是否有效,而不是计算状态根本身。然而,在rollup时代,layer-2方案证明了它可以像与状态的契约一样安全,并且它的承诺可以实现。

后记

本文将对sabi的各种可伸缩性和sabi的可伸缩性进行总结。读者可能会注意到,在我的推理和评价中,我非常重视“我们取得了什么”,“人们的行为表明他们需要什么”。是的,正是从这个角度我解释了rollup的魅力(事实上,这可能是我写这篇文章的核心动机之一)。在我看来,这样的思维倾向可以使我们的思维起点更加可靠,不必猜测用户的需求,不必空中楼阁。

在历史的进程中,我看到人们选择了一些他们可以选择的东西,这让我觉得这些东西很重要。如果有些技术没有增加他们可以选择的东西,而是牺牲了他们实际选择的东西,那么就没有理由对这些技术有信心。

笔记

注以太坊:白皮书,https://ETHfans.org/posts/ETHereum-白皮书

注2:vitaik的Twitter,https://twitter.com/vitalikbuterin/status/854271590804140033?语言=英语

注3:vitalik:基层和功能的逃逸速度,https://ETHfans.org/posts/vitalik-base-layers-and-funatiality-escape-velocity

注4:如何查看基础设施服务细分,https://ETHfans.org/posts/38028

注5:关于国家租金和无国籍以太坊,https://ETHfans.org/posts/on-the-state-rent-and-pivot-to-stateless-ETHereum

在基于区块6的安全链委员会中,https://ETHfans.org/posts/security-and-scalability-in-committee-based-blockchain-sharding

注7:以太坊无状态客户端,https://ETHfans.org/posts/data-from-the-ETHereum-stateless-prototype

注8:波束同步:同步以太坊节点的新方法,https://ETHfans.org/posts/intro-to-beam-sync简介

温馨提示:

文章标题:从“国家”的角度理解以太坊及其未来

文章链接:https://www.btchangqing.cn/171906.html

更新时间:2021年01月01日

本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。

区块链行情

团队负责人:12.31比特币以太坊年线结束利润率超过1000点迎接元旦

2021-1-1 9:40:40

区块链行情

请注意,OKEx比特币的季度合约增至7.2亿美元

2021-1-1 9:48:30

4 条回复 A文章作者 M管理员
  1. 凤雏悟币689

    如果不对坚定持有okb 并不断入金的忠实用户加大补偿。 以后绝不再用。 想笼络人心不能伤了相信ok的人吧。 那些墙头草以后闻风而动,更不会只押注在okex上。 欺负老实人呗,除了okex,我们忠实用户不会用别的平台呗

  2. Polaris

    意味着什么呢

  3. tastebites

    你以为比特币是实体的非要一个?

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索