http://broadvi.com/

煜星注册:干货| Eth2.0的中继者网络与手续费机制

煜星平台,煜星代理Q554258,煜星登录

 
本文将总结现有围绕着以太坊2.0阶段2的研究成果,重点关注中继网络以及手续费机制。每种提案都有其不同的权衡取舍,而且被不同的平台所采用,因此做一次合理且全面的汇,总能让新入门的研究者更快上手。
 
背景
 
在深入讨论中继网络之前,我们先回顾一下以太坊的主要瓶颈之一(或没有之一):状态。以太坊和比特币等区块链技术在过去几年中迅速增长。通常,每个煜星注册步骤都可以看作是区块链技术发展中的一个独立步骤。奠定了区块链技术基础的比特币可以看作是区块链1.0。煜星登录原始的区块链支持系统促进了更多加密货币的发展。
 
在以太坊中,状态指的是账户余额,合约代码,合约存储内容的集合(在比特币中,状态指的是UTXO的集合)。不论什么时候执行交易,都要对状态(约45个GB的不可压缩数据)进行读写操作。早些时候,人们曾对以太坊计算模型原生的不可扩展性提出过质疑;但时至今日,反而是状态的读写成为执行交易的成本瓶颈,磁盘的I / O性能成了运行以太坊全节点的制约因素。
 
请注意,为了能够按照富状态范式(有状态的范式)执行任何的交易,全节点必须保证所有状态始终放在可访问的位置(比如内存,交换空间)。如果应用在单一区块链的场景,或许这还能勉强接受,但是一旦面临分片,面临分片上委员会的重组,这种要求是非常不合理的。设想一下,每当验证者被指定到一条分片链,他就得同步该分片上的所有状态,则这种系统就等价于单一区块链,只是此时的区块大小等于分片区块大小*分片数量。
 
这就是为什么我们需要无状态客户端。
 
分片及无状态客户端
 
在无状态客户端范式中(原名“storageless”),验证者只需要存储一个经过压缩的区块链状态表(通常称之为累加器、蓄电池),大幅降低了执行交易的负担。一般来说累加器的大小是常量(例如:状态的Merkle树根值),不过也有可能是对数大小。
 
无状态客户端的本质是,每笔交易都附带当前累加器的见证数据(见证),见证数据中包含了所有执行该交易所需的信息。在以太坊中,使用稀疏Merkle树(SMT、稀疏Merkle树)作为累加器,一笔交易所涉及的所有状态元素都可以被包含进默克尔树分支中。
 
在其他应用上,无状态客户端可以缩短以太坊节点的初次同步时间,这就是梁同步的原理。煜星代理数据处理和共享是区块链的一个有趣方面,尤其是在应用于太空时。漫长的旅程,例如计划中的载人火星任务,将产生并使用大型数据集。目前,火星上的卫星覆盖很少或没有,但是煜星代理表明,未来由区块链驱动的网络可以提供基本的导航信息。
 
备注:有一些密码学累加器(如RSA累加器)比Merkle累加器性能更好,但是这种累加器需要受信任初始化,或是使用未验证的前沿密码技术,所以安全部署到生产系统上还需要点时间。
 
但无状态客户端也有自己的挑战:一旦使用Merkle累加器,每当结束一次完整的执行后,见证就过期了。如果模型要求每笔交易都包含单独的见证,然后顺序执行这些交易,则排在后头的交易的见证数据就会过期,必须能够随着前面每一笔交易结束而更新自己的见证。幸亏更新这些Merkle累加器的见证涉及零哈希开销方法,如果见证数据可以作为附加物添加到“一大”包交易上的话,就不需要更新属于每笔交易的单独见证,或是说可以整合为多重证明(multiproof)。
 
假如所有用户都维护着全节点,并实时更新见证的状态,那么无状态客户端系统是能够马上被采用的。可惜在分片环境下,这意味着要求所有用户维护自己所在分片上的所有状态,这样做不仅不切实际,而且就如我们上面提到的,这就相当于只是建立一条区块体量更大的单一区块链。
 
为了解决问题,这里引入了中继者(也称为状态提供者)的概念。中继者负责提供用户所需的见证,并以此向用户收取服务费。和用户不一样,中继者可以将服务聚焦在单一分片上;但中继者无法预知用户什么时候需要状态,因此必须保证见证的及时更新,也就是实时存储状态(所以被称为状态提供者),以供用户获取。
 
中继者的引入也会引来一大堆复杂的问题,也是以太坊2.0的全面部署所面临的最重要的开放问题之一。第一点,如果不能很好地平衡中继者和区块提议者(即。验证者)所得到的利益,验证者就会被激励成为中继者,则相关服务的获取成本可能会让一般使用者望而却步。第二点,要让中继者能够从用户和验证者处收取费用(即:手续费机制(市场费用),同时不至于引入太大的开销,显然不是件简单的事,换言之,验证无状态交易很容易,但是提供必要的见证很困难。
 
中继网路及费用市场提案
 
2.0第二阶段以太坊的设计空间很大,也出现了很多对执行模式的提议。每种提议都各自表述了如何通过付费,结合中继网路的机制,将交易更好地在用户和区块提议者之间进行传递。本章节会尽可能简洁而全面地总结不同的协议,并着重分析它们在中继网路及手续费机制上的异同。
 
校勘者(校对机)提案(已弃用)
 
这是第二阶段的阶段的早期提议,将分片链的建块分为三个部分:提议者(申请人),校勘者(校对机),执行者(执行者)。一些提议者负责收集交易,打包成区块(也叫排序),一些提议者负责提交排序到链上(变成区块),最终,执行者根据被提议的排序给出一个新的状态根。
 
该提案从未得到完全的研究,因此,也没有对手续费支付机制的研究。除去别的因素,这项提案被弃用还因为,它的激励机制鼓励用户同时成为提议者,校勘者,执行者,以得到利益最大化。
 
第一阶段完成
 
凯西Detrio在其开创先河的博文《第一阶段完成:数据可用性引擎——以太坊2.0》中强调:在阶段1阶段,可以添加尽可能少的执行分片来桥接数据,而不需要做状态分片。在此方案中,分片可以做到两件事:1)对数据进行认证(即。将一系列交易插入如Merkle树等受认可的数据结构中);2)执行简单的无状态操作,例如验证受认可数据的零知识证明。
 
可以通过上传合约到信标链(信标链)来定义一个数据块处理程序(合约未来会转为“预编译(预编译),然后成为“执行环境(执行环境)”),合约的形式可能是客户端可解析的字节码,具体怎么选择要从视整个协议的内容而定。
 
“第一阶段和完成”回避了大部分关于费用支付机制的问题,因为支付机制问题在以往的提案中都存在,而且也将继续存在,所以该提案转而试图定义为使Eth2.0长期可用而需作出的最小变更,并且希望能尽快找出答案。还有个建议是通过以太坊1。x上的合约来支付费用(区块提议者在以太坊2.0上提供经过处理的可用数据块,然后我们通过一个汇总合约在以太坊1。x上付费给提议者),不过这个可行性令人怀疑,因为这会使得以太坊2.0的可用性强烈依赖以太坊1。x。
 
第二阶段建议1
 
紧接着Detrio的研究,Vitalik Buterin对阶段2阶段提出了具体的新提案:第二阶段建议1。在此提案中,执行脚本(执行脚本,最初叫做“信标链合约”)存放在信标链上,以太币可以被存入执行脚本(为了支付费用),而且绝对不会脱离信标链;每个分片的状态和执行都是完全独立的。煜星平台注册:Knabu最出名的是一家拥有智能存款产品的支付公司,该产品旨在帮助公司减轻区块链上托管资产的风险。煜星娱乐代理同时在申请英国银行牌照,旨在将自己打造成能够为通常被排除在传统银行服务之外的加密和区块链公司提供服务的银行。
 
请注意,它们的名字可能会有误导性——执行脚本乃是定义执行交易的虚拟机的规则,而非我们今天在以太坊看到的智能合约。执行脚本必须以客户端可解析,计量,编码的方式(例如ewasm代码)定义数据模型及操作码。
 
为了支付费用,每个执行脚本本质上都是个层2系统,验证者无法“得”知其内部的付费机制。这不是设计缺陷,而是故意为之的,如果要求分片验证者去解析和计算不同的费用机制(可能涉及不同货币),这无疑会导致实施难度及经济机制复杂性大幅增加,引入更多可能被攻击的弱点,甚至变得完全不可用。很大程度上,反对“经济抽象化”的理由也可以用于反对这种依脚本定义手续费种类的执行模式(译者注:“经济抽象化”也被称为“费用泛化”,在协议层支持用户及验证者自定义用何种代币来支付手续费。有人认为这会使原生代币失去价值根基)。
 
因为验证者无法直接从执行脚本中收取费用,他们必须通过其他方式拿到服务费。这里通过一个特殊的(即体现类型的)执行脚本完成,任何人都可以发送包含以下逻辑的交易:“如果在某分片中的某时隙打包了这个使用了某执行脚本的数据,则我要向记录这个数据块的人支付这笔费用”;这里的操作都是由中继者(也被称为操作者)完成:中继者负责收集用户的交易,根据非供奉普通执行脚本指定的规则收取费用,然后再向分片中的区块提议者(建块人)根据供奉执行脚本支付打包交易的费用。
 
威廉·维兰纽瓦的博客之旅第二阶段Ethereum 2.0对到这里为止的第二阶段提案给出了完美的总结。
 
第二阶段建议2
 
受到Detrio前期工作的启发,V神再次提出第二阶段方案2,针对对提案1进行简化,移除了分片链上状态,改用信标链追踪随分片各异,随执行环境(执行环境,情感表达,原先叫执行脚本)各异的状态根。
 
这种设计的好处是,不同的执行环境能选择自己的累加器(例如:稀疏Merkle树,红黑树,密码学累加器,等等),而不像之前的提案,必须尊奉(珍藏)一种累加器形式。
 
现在,一般交易流程如下:用户创建交易并将其发送给中继者,中继者随用户需要添加见证(如果使用Merkle累加器,则以Merkle分支的形式添加)以获得用户支付的费用。接着中继者将多个交易进行打包,一起发送给区块提议者,并通过协议内置的机制向他们支付费用,让提议者将该批交易打包到下一个(分片)区块中。与提案1一样,这里的“协议内置的机制”是指一个更高等的EE(一个供奉EE),所有验证者都能识别的情感表达。
 
对于验证者来说,此方案一定程度上减轻了他们的负担,但是由于以上操作仍需要一些分片状态,而该提案又没有设计用户与中继者的协议内费用支付机制,所以还没有解决中继网络的全部问题。首先,使用协议外手段进行支付会削弱用户的隐私保护;其次,我们不清楚要如何创建一个完全脱链的系统(不依赖于另一个外部的区块链)来保证用户和中继者一手交钱一手交货(即交易原子性);第三,使用协议外手段进行支付的潜在高风险,以及成为中继者的高算力要求(因为中继者如果想服务某个EE或分片,就必须存有他们的所有状态,才能能够生成见证),可能会导致中心化问题,在最糟的情况下,用户和以太坊2.0网络之间可能只剩下几个“把关的“中继者。煜星平台:区块链技术已经在地球上证明了其可行性。它最初是为加密货币开发提供动力的引擎,后来演变为功能更广泛的东西。煜星娱乐,供应链,医疗,航空,银行等许多行业已经看到了区块链平台可以承受的优势。
 
回归交易缓存池模式
 
Vitalik在新的提案中提到,让中继者有条件地向区块提议者付费,需要繁重的双重承诺方法来保证支付的原子性,因此,不如用一个手续费市场EE来解决所有问题。在该提案中,EE将具有自己的余额.EE执行一批交易后会输出一个收据,负责支付费用的高等EE(供奉EE)会根据这个数据,将以太币从该EE账户转给区块提议者,因此,支付费用的高情感表达等能够“回看”之前的收据并处理转账。而充值EE账户可能就是中继者(或是其他利益相关方)的责任了。
 
这个提案的好处是,不需要通过什么复杂的方法来协调中继者和区块提议者之间的支付往来,但没有指明用户该怎么和中继者进行交互,只是建议使用支付通道。
 
基于最初的提案,维拉纽瓦建议回归交易缓存池模式。在这种情况下,中继者只需作为状态提供者,仅提供见证而不需要打包交易,区块提议者(或更普适地说,分片验证者)维护一个缓存池,合并所需的见证数据来打包交易。

郑重声明:本文版权归本站 http://www.broadvi.com/ 所有,未经授权请勿转载。