链资讯 链资讯
Ctrl+D收藏链资讯
首页 > 酷币 > 正文

区块链:观点:以 “状态” 视角理解以太坊及其未来_DEFI

作者:

时间:

一.引言

自2015年创世以来,以太坊区块链已历经五个寒暑。五年的时间不仅把作为一种理念的以太坊协议?1?变成现实、使这套协议变得更加成熟、更加具体,也使这样一套设计的特性和权衡关系暴露出来。这些权衡关系,作为设计上的挑战,自然也吸引了并持续吸引着无数聪明才智,尝试提升以太坊的可用性;其中汇聚了最多努力和想象力的,当属为提高“可扩展性”而提出的一系列方案。

本文想指出的是,就像以太坊范式面临着设计上的取舍,所有这些可扩展性方案也面临着取舍;而评价这些取舍的值得与不值得,需要我们回到以太坊本身,回到以太坊节点和以太坊用户的真实问题和真实需要。而“状态”视角,作为理解以太坊本身的视角,正好能帮助我们廓清这些方案的设计,并揭示我们的所得和所失。

本文将从解释“状态”的含义开始,揭示以太坊的终极之矛和阿喀琉斯之踵,然后探讨各种改进方向。“富状态性”是以太坊智能合约“可组合性”的来源,但也是以太坊网络最大的弱点。由此,我们可以见出现在常被人提起的哪些方案会影响“可组合性”,哪些“可扩展性”的意义更明显。

二.以太坊作为一种范式

富状态性与可组合性

什么是“状态”?状态就是一个系统在某一个时刻的具体情形。以实现密码学货币的区块链为例,一个区块链在某一个时刻的状态就是该时刻,该区块链上所有地址的资产分布。

在此视角下,每一套区块链协议都可以粗略地分成两个部分,一部分是共识机制,另一部分是状态转换规则;前者定义了出块规则,它指明了所有参与该区块链的节点在什么时候需要在本地更新区块链数据库的状态;而状态转换规则,则定义了什么交易是有效的,也定义了节点在处理交易时,应当如何更新状态。

对比特币来说,其共识机制是“PoW+中本聪共识”,而其状态转换规则基于UTXO。对以太坊来说,其出块机制是“PoW+Ghost规则”,其状态转换规则基于账户。

那么,到底是什么东西让以太坊变成一个有突破性的创新呢?

我们时常听说,以太坊之所以特别,在于其“引入了图灵完备的编程语言,支持可编程性”等等。实际上这种说法并不准确?2。因为允许使用更复杂的编程语言并不意味着什么,其实比特币也可以编程;允许比特币使用solidity编程语言并不能得到一个以太坊。以太坊真正特殊的地方在于“富状态性”3?:它允许一个合约调用另一个合约,并且,除了区块容量本身,不对这种调用的层级数量施加任何的限制。

观点:比特币和科技股仍然具有相关性的潜力:金色财经报道,Chia Network的Gene Hoffman在接受采访时表示,尽管今年股票和科技股之间脱钩,但由于比特币和科技股的持续大规模采用,比特币和科技股仍然具有相关性的潜力。这种代币通常倾向于像科技股一样进行交易。由于全球度假旺季的到来,预计8月份市场将横盘整理,但由于就业支撑、IPO市场开盘以及美国最终加息后利率可能下降,预计9月份所有市场都将温和上行。[2023/7/31 16:08:27]

B合约可以根据A合约公开的代码来调用A合约、改变A合约的状态;调用B合约的C合约也可以间接地调用A合约、改变A合约的状态……由此,一个状态,虽然保存在A合约里,但其控制逻辑,可以如此重重叠叠不断累加;如果把状态理解为资产,这等于是让资产的使用权可以不断得到更严格、更复杂的控制;这意味着,从理论上来说,一个状态的更新逻辑能够无限接近于现实生活中的金融合约。这种允许累加任意多层的控制的属性,才是最关键的,而怎么编程这种控制,反而是次要的。

此外,以太坊还允许用户给区块链写入状态,使这些状态成为全局状态的一部分,并要求节点按照合约自定义的逻辑来更新状态。由此,一个合约能够把自身的状态向以太坊上的所有其它账户公开,前述的富状态性真正有了用武之地。

没错,现在我们已经像收集龙珠那样集齐了三种属性:

链上计算范式:合约可以要求节点按自己定义的逻辑来执行计算;

全局状态:合约的状态可以成为全局状态的一部分,向所有其他账户公开;

富状态性:合约之间可以相互调用,且栈层数量没有限制,因此控制逻辑可以层层累加;

现在我们可以召唤出以太坊的最强之矛了:“可组合性”!

链上计算方式使我们可以拥有各式各样的合约;全局状态让这些合约可以相互访问彼此的状态;富状态性让合约的组合方式可以无限多样。所以我们不仅可以拥有稳定币DAI,还可以拥有借贷市场,还可以拥有彩票应用,还可以拥有把彩票的收益自动捐献的应用,还可以拥有在不同的借贷市场间自动再平衡储蓄比例的应用……

状态数据爆炸问题

“可组合性”太美好了,以至于不像是真的,对吗?没错,上述三种属性的三位一体,实际上是一把双刃剑。

观点:以太坊上海升级不会显著影响ETH的价格:金色财经报道,科技公司Ether Capital首席执行官Brian Mosoff表示,以太坊即将到来的上海硬分叉可能不会显著影响ETH的价格。根据Mosoff的说法,该网络的升级可能会吸引一批新的投资者,Mosoff称:“我预计会看到更多的ETH被锁定在质押协议中,要么来自单独的质押者,要么你会再次看到更多的结构化产品进入市场,通过让新投资者能够从他们投入的ETH中赚取一些收益,你将开始看到传统金融开始更有信心地进入这个领域”。[2023/4/11 13:55:40]

以太坊的状态转换过程可以抽象为:状态转换函数以旧的状态和事务列表为输入,输出新的状态。这意味着,以太坊的全验证节点必须在本地维护着以太坊区块链的最新状态,以便能执行状态函数并以结果来验证一个区块的有效性。

矛盾之处在于:对于合约及开发者来说,合约的状态作为以太坊全局状态的一部分,保存在以太坊的节点上,合约的状态更新由以太坊节点来计算,这种“无服务器”的架构非常舒服;但是,这些状态只要一次付费就会永久保存在以太坊的全验证节点中,虽然每次更新都需要付费,但无法避免节点本地保存的状态数据会不断累积、膨胀。

状态数据的膨胀之所以是一个问题,在于它会为全验证节点带来越来越高的硬盘读写负担。状态数据不像区块数据,区块数据是静态的,持久化保存后并不需要频繁读写;但状态数据每多一个区块就要读写许多次;而随着状态数据量的增大,读写的负担也会越来越重。在过去几年中,我们时常听到有人说以太坊的全节点难以部署,一大原因即在于此。前一段时间Infura的免费以太坊节点服务崩溃?4,导致许多依赖Infura的服务崩溃,算是给大家鸣响了一个警钟——原来以太坊的节点维护如此不易,让大家宁愿选择信任他人。

这个问题也并不容易解决。在过去几年中,以太坊的多次硬分叉升级都提高了访问状态的操作码的Gas消耗量,正是为了以经济代价遏制合约创建新的状态。但这显然只是治标的办法,因为根本上逻辑并没有变,状态数据要持续存留在以太坊节点处,但创造状态数据的用户只需付一次费。也有人提出,为改变这一点,需要引入某种“状态租金”机制,要求保存了状态的合约不断支付租金,否则就终止该合约的可用性。但是,这种机制存在难以想象的复杂度,一方面,难以确定合理的收取租金的方法,另一方面,也难以确定合理的支付对象。所以状态租金机制的研究在2019年也停滞了?5。还有项目尝试以持币量的多少来界定可用的状态空间大小,因此状态数据的大小将总是有上限的,这就避免了状态膨胀问题,但这也改变了原生资产的经济属性。

观点:调查显示政府禁令和法规是比特币最大风险:加密货币分析师PlanB发推表示,最新的民意测验结果显示大多数人(34 %)将政府禁令或法规投票为最大风险,其次是量子计算和中国的集中采矿。[2020/12/10 14:50:11]

到目前为止,除了“无状态性”,我没有看到令人满意的、从根本上解决这个问题的方法,而“无状态性”,我们现实地说,也面临许多挑战。这个我们后文再说。

总而言之,全局状态、链上计算和富状态性,既使以太坊上的合约获得了可组合性,也使以太坊的网络有陷于中心化的危险;就像小说《指环王》中的魔戒,既能召唤强大的力量,也可能吞噬使用者自己。我担心以太坊还要承受这样的重负很久。

接下来,我们以“状态”视角,来理解诸种可扩展性方案的设计和权衡。

三.以太坊的发展方向

在此章节中,我们会分析四种以太坊的发展方向:Layer-2方案、分片、无状态性和Rollup方案。这个分类是完全不合理的,因为rollup是Layer-2方案的子集;而无状态性是分片的前置技术;甚至于,将它们并列也是不合理的,因为Layer-2方案几乎不需要改动以太坊的底层,而分片和无状态性则有这样的要求。这样做只是为了叙述和认识的方便。

Layer-2方案

Layer-2方案背后的理念来源于一种简单但非常精准的直觉:以太坊之所以会面临吞吐量的瓶颈,是因为组成以太坊网络的节点的带宽、计算能力和维护状态数据的能力都是有限的,而且很难提高;单纯要求整个网络的节点在单位时间内处理更多的交易,节点的运行要求必然上升,这就损及了去中心化;但是,从使用的角度看,并不需要让所有的状态都放在以太坊上,也不需要让所有的状态计算都在以太坊上发生;我们可以把一个合约的中间状态都保存在别的地方,用户的交互也不在以太坊区块链上发生;仅当用户认为有必要结算某个状态时,再将该状态发送到以太坊上,由以太坊来加以确认。

一句话:如果我们没法让网络在单位时间内对更多的事务达成共识,那就提高单笔事务的内涵。

经典的Layer-2方案“状态通道”最彻底地体现了这种思想:当参与一个通道的两个用户将资金锁入合约后,此后两人之间的交易都不会发到链上,他们彼此之间使用其他通讯工具来交流签名消息,并以此达成彼此对通道内状态的共识;直到两人认为不再需要交互了,就把共同认可的状态及两人的签名发送到以太坊上,以太坊这才更新该合约的状态,并根据此状态为两人结算资金。

观点:比特币在新冠肺炎流行期间跟随股票下跌并不意味其为相关资产:Blockstream首席战略官Samson Mow发推表示,比特币在出现一种流行病(新冠肺炎)时跟随股票下跌并不意味着它是相关资产。这是一个极端的异常值,被BTSE联合创始人Brian称为“10西格玛(sigma)事件”。那些理解并投资BTC的人将是明天的赢家。比特币将会反弹,并且一如既往地做自己的事。注:在统计学随机事件计算中,10西格玛事件意味着10个标准差,发生的几率极其低。[2020/3/19]

如果你把Layer-2方案当成合约的一种设计模式,你会更清楚地看到——?Layer-2方案选择了不去利用全局状态。另一个合约并不能实时地知道某个Layer-2合约内部到底是什么状态,因为这些状态并不在链上,也因此,一个Layer-2合约就无法与其它合约相组合了。

虽然如此,Layer-2方案也换来了极有价值的东西:更快的交易速度、更低的手续费、更小的主链节点负担。

但Layer-2方案为什么在过去几年中都没有结出果实呢?因为在Rollup方案出现以前,其他方案,包括状态通道和Plasma,都没法证明锁入自己合约的资金与锁入带状态合约中的同样安全。在状态通道方案中,如果你没有时刻监控区块链,你的交易对手可以通过向主链提交旧的状态,来“盗”走你的钱;在Plasma方案中,往往你需要依赖于运营者来为你提供自己状态的证明,因此它对运营者本身是很难设防的。

这跟以太坊主网带状态合约的使用体验完全不同。除去合约的代码风险,你存入合约的钱,如非有人发动51%攻击取消你的所得交易,否则不会被盗;除非有人一直通过51%攻击来审查你的交易,否则你必定可以将自己的资金取出。

分片

另一种改进以太坊、提高以太坊吞吐量的直觉是:以太坊的吞吐量有限,源于每个全节点都必须处理所有链上交易;如果我们可以让每个节点只处理一部分交易,不同组的节点分别处理不同的交易,那么整个系统在单位时间内的吞吐量就等于这几组节点的单组处理量的总和;即,单个节点的负担并没有增加,但整个系统的吞吐量提高了。这就是所谓的“分片”。

关于分片化架构,一个有趣的问题是其确切定义。在经典的、非分片化的区块链架构中,全节点必须重复所有计算;维护所有状态;传播所有区块/交易。有人认为,只需打破一者,就算是分片化的了;但从更严格的视角看,必须打破所有三者,才能达到理论所推导的吞吐量提升效果?6。取不同的定义,带来的效果也很不同。此处,我所采取的定义是,一个节点至少无需维护整个系统所有的状态。

声音 | 观点:阿里影业利用区块链平台发片是很好的尝试:微博大V“区块链威廉”今日发文称,阿里巴巴影业与纽约去中心化娱乐平台Breaker签署协议,利用其区块链平台在海外发行新片 “Striding into the Wind”,这是区块链在电影行业的一次不错的尝试,例如电影所有权的Token化,可能会从根本上改变电影融资。就目前的情况来看,电影融资通常局限于少数高财富投资者,但通过Token化,小投资者或许也可以从电影的成功中受益。[2019/11/23]

但另一个更有趣的问题是,假使分片架构所要求的前置技术都能实现,这一架构能有多大的意义。

在以太坊基金会的研究团队所构想的分片架构中,整个系统的状态被分割成了几个部分,各部分是并行更新的,也就是说,一个分片并不能实时地了解另一个分片的内部状态。当位于分片A的合约A'尝试调用分片B上的合约B'时,并不能假设处理者拥有分片B的状态,也因此,处理的结果必须等待分片B完成状态更新后才能返回。由此,跨分片的交易必须忍受事务处理中最难以忍受的代价:时延。关键在于,此种时延是不能用货币代价来加以抽象的。因为分片B也并不知道分片A上发生了一笔需要调用自身的交易,因此只能等待一个可信的通信层为自己播报这条交易。

单位时间内能够创造的价值越高,时延越不可忍受;而这意味着,假设有某个DeFi应用集中的分片,这些应用根本不会通过跨分片的交易来调度其它分片上的处理能力,因为这根本没有意义,满足不了DeFi应用对时延的要求。同样,这也意味着,这个DeFi应用集聚的分片,其单分片处理能力就是其处理能力上限。在深山老林里造房子和修路,解决不了大都市里人们的生活空间问题。

无状态性

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

在当前的以太坊协议中,交易自身并不携带自身所访问的状态的信息,正是因此,处理交易的节点才必须维护状态数据,作为执行状态转换函数的前置条件。也正因此,状态数据的膨胀才是一个问题。

而无状态性的关键,正是让交易/区块自身附带所访问状态的信息,因此,一个区块仅凭自身就是可验证的,无需处理交易的节点具有状态。

实际上,无状态性是通过改变以太坊区块的结构,改变以太坊区块的验证方式。无需维护状态数据,也就免去了读写硬盘的需要,区块验证的速度也可以更快。此外,各节点既可以完全不维护状态数据,也可以根据自己的需要,维护某些合约的状态数据。

但是,诚实地说,无状态性目前还面临许许多多的设计挑战。具体来说:无状态性要求为区块/交易附加所访问状态的证明,这部分数据的规模可能非常大,以太坊当前的区块数据大小大概是20~40KB,但witness数据的大小可能在MB级别;只有维护了所有状态的节点才能组装出witness,那么谁来为普通用户提供状态呢?;如何为交易的gas消耗量定价?尤其因为witness有时效性,并不能根据操作码来确定组装witness耗费了多少计算量。

正是因为这些困难,以太坊的全节点可能还必须在这种维护所有状态的模式中运行很久。但是,无状态性绝对是当前对以太坊协议的改进中,最激动人心的方向。因为它直面了以太坊的核心问题,并尝试釜底抽薪地解决这个问题。另外,对状态数据在以太坊协议中的使用的研究,也滋养着其他的研究方向,如同步方法?8。

我有偏见地相信,以太坊的未来即使不是无状态性,也是得到无状态性启发的某种方案。

Rollup方案

Rollup方案是一种Layer-2方案,其特殊之处在于,它会将每一次状态更新所用到的交易,都在以太坊区块链上发布出来。

与其他Layer-2方案一样,Rollup方案也把状态存在链下,也不要求以太坊的节点来计算合约的新状态;但是,把会更改这个合约状态的交易,都作为数据发布出来,这意味着,任意第三方,都可以凭借这些公开的数据和公开的规则,计算出该合约的状态。

前面说到,当Lyaer-2合约选择了把状态计算移到以太坊链外,并遮蔽了自己的合约状态,它就给用户引入了风险:用户并不知道,Layer-2合约的运营者会不会把一个无效的状态发到链上交由区块链来敲定,如果运营者能够这样做,那就等于是能直接盗取用户的资金;此外,用户也不知道Layer-2合约的运营者会不是审查自己的交易,从而冻结自己的资金。

资金被盗问题有两种解决思路,一是保证每一次状态转换都是有效的,也即是每一次要更新合约的状态根时,都让以太坊来执行一次对计算完整性的验证程序,只有验证通过了,才允许合约更新状态根,这就是zk-rollup的思路;另一种思路是,要求人们在请求更新合约状态根时,都附带押金,如果所提交的状态根是无效的,检举此状态根的人可以获得原提交者的押金,这就是optimistic-rollup。但后面这种思路有个前提条件:检举人必须有办法获得该次状态转换前的状态,否则无以生成该次转换的错误性证明。

资金被锁问题的解决思路只有一种:尽可能弱化“运营者”的概念,使得谁都能向以太坊提交交易来更新该Layer-2合约的状态。但这又回到了那个问题:如果提交者没有该合约的状态,怎么证明自己的状态访问的有效性,让合约放行呢?

终于,Rollup方案用“在每一次状态转换时都发表匹配的交易数据”解决了这个问题。由此,Rollup合约虽然没有把状态公开在链上,但是任何人——也包括rollup合约的用户——都能根据这些公开的交易包重建出一个rollup合约的内部状态。这意味着,假使设计得当,rollup合约内的资金,与以太坊区块链上保存了状态的合约,可以是同样安全的!

以zk-rollup为例,链上验证程序保证了一个rollup合约不可能更新一个错误的状态根,就像如果没有你的允许,MakerDAO也不能没收你的DAI;同时,假设它也公开了计算完整性的构造方法,则你随时可以在链上直接向合约发起状态转换,来取出自己的钱。这就跟普通的、带状态的合约完全一样了:如果没有51%攻击,就无法回滚rollup合约的状态;如果没有持续的51%攻击,就无法阻止你取回自己的钱。

Optimistic-rollup依赖于一些密码经济学的假设,因此稍弱一些:除了51%攻击回滚状态以外,攻击者还可以通过持续一段时间的51%审查攻击来给合约注入错误状态根;或者可以一把,所有计算出了该合约最新状态的人都不会观察到错误。但Optimistic-rollup同样能提供很强的免托管性,你也能随时取回自己的钱。

换言之,如果用户愿意把钱存进一个有状态的合约,那就没有理由不愿意存进rollup合约。有了zk-rollup,layer-2方案已经能为用户提供以太坊区块链上合约所能提供的最大程度的资金安全了。显然,也只有做到这份上,才有可能获得大规模采用。

所有的Layer-2方案都可以视为一种趋向无状态性的折衷:Layer-2方案本身是无状态的,其内部状态再复杂,都不会增加以太坊节点的负担;同时,更新Layer-2合约时,以太坊扮演的角色更多是验证,即验证状态根更新是有效的,而不是自己去计算出这个状态根。但是,到了rollup时代,Layer-2方案才证明了自己可以和带状态的合约一样安全,其承诺这才有可能化为现实。

四.结语

综上,在本文中,我解释了以太坊的“可组合性”的来源,以及各种受到热议的可扩展性方案是否牺牲了这种可组合性,又换来了什么。读者可能会注意到,我在推理和评价的时候,相当重视“我们已经实现了什么/得到了什么”“人们的行为表明他们需要什么”。不错,我正是从这个角度出发,来解释rollup方案的魅力的。在我看来,这样一种思维倾向,能使我们的思考的起点更加可靠,免于臆测用户的需要,亦免于投入建设空中楼阁。

在历史的流转中,我看到人们在可选的东西中选了某些东西,这就使我不得不认为,这些东西是重要的;而如果某些技术,既没有增加人们可选的东西,又牺牲了人们实际上选择了的东西,那就没有理由对这些技术怀有信心。

标签:区块链EFIDEFIDEF区块链通俗易懂的例子COREFI币WDEFIDEFI S

酷币热门资讯
比特币:“末日博士”鲁比尼:比特币巨型泡沫即将破裂_DALI

来源:财联社 作者:周玲 财联社讯,随着比特币价格持续刷新历史纪录,美东时间周四,曾准确预测2008年金融海啸、被称为“末日博士”的知名经济学家鲁比尼称.

区块链:2021年区块链9大展望:比特币成为机构大类资产配置工具、以太坊2.0进度或不及预期_DEF

前言 2020年我们见证了太多历史,同时我们也感受到太多的不确定性,而不确定性正是焦虑的来源之一.

EFI:从 AC 的 DeFi 生态版图扩张看 DEX 的进击之路_区块链上班都是干什么的

世界上从未有一个行业的发展速度能达到DeFi的水平。DeFi的创新之所以能以最快的速度发展,主要得益于DeFi的可组合性、可扩展性,这意味着任何人都可以借鉴他人的创新,然后像搭乐高一样,将两组甚.

以太坊:未来5年区块链将进入商业创新阶段 | 网易未来大会_区块链

12月18日-20日,2020网易未来大会在杭州盛大举行。在今日“2020网易未来大会·区块链与人工智能”现场,网易集团副总裁胡志鹏、中国万向控股有限公司副董事长肖风、中国工程院院士陈晓红、网易.

以太坊:李礼辉:新数字金融时代下数字货币生态与发展_WIT

12月31日,由清华大学经济管理学院数字金融资产研究中心举办的“数字金融:创新、发展与监管”高端研讨会于清华大学顺利召开。清华经管数字金融资产研究中心主任罗玫教授主持了本次研讨会.

比特币:追加6.5亿美元投资后,MicroStrategy成为第五大比特币持有机构_MICRO价格

KevinRooke网站数据显示,MicroStrategy在对市值最大的加密货币追加投资6.5亿美元后,目前已成为第五大比特币持有机构,拥有70,470枚比特币,当前价值超16亿美元.