Menu

干货 | Eth2.0 的中继者网络与手续费机制 | BTC

Source:adminAuthor:admin Addtime:2020/09/10 Click:171

本文将总结现有围绕着以太坊 2.0 Phase 2 的钻研收获,重点关注中继网络以及手续费机制。每栽挑案都有其分歧的权衡取舍,而且被分歧的平台所采用,因此做一次相符理且周详的汇总,能让新入门的钻研者更快上手。

  背景  

在深入商议中继网络之前,吾们先回顾一下以太坊的主要瓶颈之一(or 异国之一):状态。

在以太坊中,状态指的是账户余额、相符约代码、相符约存储内容的荟萃(在比特币中,状态指的是 UTXO 的荟萃)。无论什么时候实走营业,都要对状态(约 45 GB 的不走压缩数据)进走读写操作。早些时候,人们曾对以太坊计算模型原生的不走扩展性挑出过质疑;但时至今日,逆而是状态的读写成为实走营业的成本瓶颈,磁盘的 I/O 性能成了运走以太坊全节点的制约因素。

请仔细,为了能够遵命 富状态范式(stateful paradigm)实走任何的营业,全节点必须保证一切状态首终放在可访问的位置(比如内存、交换空间)。倘若行使在单一区块链的场景,也许这还能勉强批准,但是一旦面临分片、面临分片上委员会的重组,这栽请求是专门分歧理的。设想一下,每当验证者被指定到一条分片链,他就得同步该分片上的一切状态;则这栽体系就等价于单一区块链,只是此时的区块大幼等于分片区块大幼 * 分片数目。

这就是为什么吾们必要无状态客户端。

  分片及无状态客户端  

在无状态客户端范式中(原名“storageless”),验证者只必要存储一个经过压缩的区块链状态外(清淡称之为累添器 ,accumulator),大幅降矮了实走营业的义务。清淡来说累添器的大幼是常量(例如:状态的 Merkle 树根值),不过也有能够是对数大幼。

无状态客户端的内心是,每笔营业都附带现在累添器的 见证数据(witness),见证数据中包含了一切实走该营业所需的新闻。在以太坊中,操纵稀奇 Merkle 树( SMT,Sparse Merkle Tree )行为累添器,一笔营业所涉及的一切状态元素都能够被包含进默克尔树分支中。

在其他行使上,无状态客户端能够缩幼以太坊节点的初次同步时间,这就是 Beam Sync 的原理。

备注:有一些暗号学累添器(如 RSA 累添器)比 Merkle 累添器性能更益,但是这栽累添器必要受信任初首化,或是操纵未验证的前沿暗号技术,于是坦然安放到生产体系上还必要点时间。

但无状态客户端也有本身的挑衅:一旦操纵 Merkle 累添器,每当终结一次完善的实走后,见证就过期了。倘若模型请求每笔营业都包含单独的见证,然后挨次实走这些营业,则排在后头的营业的见证数据就会过期,必须能够随着前线每一笔营业终结而更新本身的见证。幸亏更新这些 Merkle 累添器的见证涉及零哈希支付方法——倘若见证数据能够行为附添物增补到“一大包”营业上的话,就不必要更新属于每笔营业的单独见证,或是说能够整相符为众重表明(multiproof)。

倘若一切用户都维护着全节点,并实时更新见证的状态,那么无状态客户端体系是能够马上被采用的。怅然在分片环境下,这意味着请求一切用户维护本身所在分片上的一切状态;云云做不光不的确际,而且就如吾们上面挑到的,这就相等于只是竖立一条区块体量更大的单一区块链。

为晓畅决题目,这边引入了 中继者(也称为状态挑供者) 的概念。中继者负责挑供用户所需的见证,并以此向用户收取服务费。和用户纷歧样,中继者能够将服务聚焦在单一分片上;但中继者无法预知用户什么时候必要状态,因此必须保证见证的及时更新,也就是实时存储状态(于是被称为状态挑供者),以供用户获取。

中继者的引入也会引来一大堆复杂的题目,也是以太坊 2.0 的周详安放所面临的最主要的盛开题目之一。第一点,倘若不及很益地均衡中继者和区块挑议者(i.e. 验证者)所得到的益处,验证者就会被激励成为中继者,则有关服务的获取成本能够会让清淡操纵者看而却步。第二点,要让中继者能够从用户和验证者处收取费用(即:手续费机制(fee market)),同时不至于引入太大的支付,隐微不是件浅易的事;换言之,验证无状态营业很容易,但是挑供必要的见证很难得。

  中继网路及费用市场挑案  

以太坊 2.0 Phase 2 的设计空间很大,也展现了许众对实走模式的挑议。每栽挑议都各自外述了如何经历付费,结相符中继网路的机制,将营业更益地在用户和区块挑议者之间进走传递。本章节会尽能够简洁而周详地总结分歧的制定,并偏重分析它们在中继网路及手续费机制上的异同。 校勘者(Collator)挑案(已舍用) 这是 Phase 2 阶段的早期挑议,将分片链的建块分为三个片面:挑议者(proposer)、校勘者(collator)、实走者(executor)。一些挑议者负责搜集营业,打包成区块(也叫 collation),一些挑议者负责挑交 collation 到链上(变成区块),最后,实走者根据被挑议的 collation 给出一个新的状态根。

该挑案从未得到十足的钻研;因此,也异国对手续费支付机制的钻研。除去别的因素,这项挑案被舍用还由于,它的激励机制鼓励用户同时成为挑议者、校勘者、实走者,以得到益处最大化 Phase 1 and Done Casey Detrio 在其开创先河的博文经历以太坊 1.x 上的相符约来支付费用(区块挑议者在以太坊 2.0 上挑供经过处理的可用数据块,然后吾们经历一个 rollup 相符约在以太坊1.x上付费给挑议者);不过这个可走性令人疑心,由于这会使得以太坊 2.0 的可用性剧烈倚赖以太坊 1.x 。 Phase 2 Proposal 1 紧接着 Detrio 的钻研,Vitalik Buterin 对 Phase 2 阶段挑出了详细的新挑案:phase 2 proposal 1。在此挑案中,实走脚本(execution script,最初叫做“信标连相符约”)存放在信标链上,以太币能够被存入实走脚本(为了支付费用),而且绝对不会脱离信标链;每个分片的状态和实走都是十足自力的。

请仔细,它们的名字能够会有误导性——实走脚本乃是定义实走营业的虚拟机 的规则,而非吾们今天在以太坊看到的智能相符约。实走脚本必须以客户端可解析、计量、编码的方式(例如 ewasm 代码)定义数据模型及操作码。

为了支付费用,每个实走脚本内心上都是个 layer-2 体系,验证者无法 “得知” 其内部的付费机制。这不是设计缺陷,而是有意为之的;倘若请求分片验证者去解析和计算分歧的费用机制(能够涉及分歧货币),这无疑会导致实走难度及经济机制复杂性大幅增补,引入更众能够被抨击的弊端,甚至变得十足不走用。很大程度上,指斥“经济抽象化”的理由也能够用于指斥这栽依脚本定义手续费栽类的实走模式(译者注:“经济抽象化” 也被称为 “费用泛化”,在制定层声援用户及验证者自定义用何栽代币来支付手续费。有人认为这会使原生代币失踪价值根基)。

由于验证者无法直接从实走脚本中收取费用,他们必须经历其他方式拿到服务费。这边经历一个稀奇的(即 enshrined 类型的)实走脚本完善;任何人都能够发送包含以下逻辑的营业:“倘若在某分片中的某时隙打包了这个操纵了某实走脚本的数据,则吾要向记录这个数据块的人支付这笔费用”;这边的操作都是由中继者(也被称为操作者)完善:中继者负责搜集用户的营业,根据非-enshrined 清淡实走脚本指定的规则收取费用,然后再向分片中的区块挑议者(建块人)根据 enshrined 实走脚本支付打包营业的费用。

William Villanueva 的博客 A Journey Through Phase 2 of Ethereum 2.0 对到这边为止的 Phase 2 挑案给出了完善的总结。 Phase 2 Proposal 2 受到 Detrio 前期做事的启发,V 神再次挑出 Phase 2 Proposal 2,针对对挑案1进走简化,移除了分片链上状态,改用信标链追踪随分片各异、随实走环境(Execution Environment ,EE,原先叫实走脚本)各异的状态根。

这栽设计的益处是,分歧的实走环境能选择本身的累添器(例如:稀奇 Merkle 树、红暗树、暗号学累添器,等等),而不像之前的挑案,必须尊奉(enshrine)一栽累添器式样。

现在,清淡营业流程如下:用户创建营业并将其发送给中继者,中继者随用户必要增补见证(倘若操纵 Merkle 累添器,则以 Merkle 分支的式样增补)以获得用户支付的费用。接着中继者将众个营业进走打包,一首发送给区块挑议者,并经历制定内置的机制向他们支付费用,让挑议者将该营业堆打包到下一个(分片)区块中。与挑案 1 相通,这边的“制定内置的机制”是指一个更高等的 EE(an enshrined EE),一切验证者都能识别的 EE。

对于验证者来说,此方案肯定程度上减轻了他们的义务,但是由于以上操作仍必要一些分片状态,而该挑案又异国设计用户与中继者的制定内费用支付机制,于是还异国解决中继网络的通盘题目。最先,操纵制定外手腕进走支付会减弱用户的隐私珍惜;其次,吾们不明了要如何创建一个十足脱链的体系(不倚赖于另一个外部的区块链)来保证用户和中继者一手交钱一手交货(即营业原子性);第三,操纵制定外手腕进走支付的湮没高风险,以及成为中继者的高算力请求(由于中继者倘若想服务某个EE或分片,就必须存有他们的一切状态,才能能够生偏见证),能够会导致中央化题目——在最糟的情况下,用户和以太坊 2.0 网络之间能够只剩下几个 “把关的” 中继者。 回归营业缓存池模式 Vitalik 在新的挑案中挑到,让中继者有条件地向区块挑议者付费,必要繁重的双重准许方法来保证支付的原子性,因此,不如用一个手续费市场 EE 来解决一切题目。在该挑案中,EE 将具有本身的余额。EE 实走一批营业后会输出一个收据,负责支付费用的高等 EE(enshrined EE)会根据这个数据,将以太币从 该 EE 账户 转给区块挑议者。因此,支付费用的高等 EE 能够“回看”之前的收据并处理转账。而充值 EE 账户能够就是中继者(或是其他益处有关方)的义务了。

这个挑案的益处是,不必要经历什么复杂的方法来调和中继者和区块挑议者之间的支付去来,但异国指明用户该怎么和中继者进走交互,只是提出操纵支付通道。

基于最初的挑案,Villanueva 提出回归营业缓存池模式。在这栽情况下,中继者只需行为 状态挑供者,仅挑供见证而不必要打包营业;区块挑议者(或更普适地说,分片验证者)维护一个缓存池,相符并 所需的见证数据来打包营业。有鉴于每个 EE 能够选择分歧的累添器,因此 EE 必须事先声明一个固定的相符并见证的方法,让区块挑议者能够整相符两个及以上的见证,例如将众个 Merkle 分支整相符成一个 Merkle 众重表明。

由于状态挑供者只必要挑供见证(清淡以 Merkle 分支的式样),现在已有的许众角色都能够胜任这个义务:如,轻客户端服务器。能够操纵更方便的工具和更矮的成正本激励更众轻客户端服务器挑供见证,这对于高郑重性大有协助。不过对于用户来说,不得不操纵高摩擦力的支付渠道付费给状态挑供者,照样很令人头疼。 Phase 2 另类架构 就在不久之前,V 神挑出了 Phase 2 另类架构,打算十足去失踪分片的状态。关键之处在于,在信标链中添入了完善的、有状态的、可外达的状态转换引擎(例如 EVM)。这个引擎行为“调度员”,不息追踪 EE 的状态根。调度员设计也让众分片事务实走成为能够:遵命既定的挨次检查分片和时隙,以确保正实在走了跨分片到联相符个 EE 的众个营业(经历对实走前状态和实走和状态的状态根进走排列、无视失踪任何无效或乱序的分片区块)。

这个挑案的费用支付机制与前一个挑案相比异国什么转折,不过由于调度员具有有余的能力来处理 EE 余额管理和收据消耗,因此不再必要特定的支付费用 EE 存在。 分片链简化挑案 在 DevCon 5 大会上,V 神发布了关于以太坊 2.0 架构的宏大重构新闻,这是启发自 Near 制定的分片块——夜影(Nightshade)的设计。在新的挑案中,不请求每个分片链都运走相互自力的分叉选择规则,而是交错着以更快的速度生成区块和交联(crosslink);分片中的区块紧随着信标链的区块一首生成,而且所每个分片都与每个信标链区块交叉连接(在平常情况下)。该体系组织增补了分片交叉链接的数目,为答对交联数目的增补,分片的数目从1024 削减到 64 个;与此同时每个分片的吞吐量也有所增补,使整个体系的吞吐量保持正本程度。

上述思想模式的根本转折,使得费用市场变得更更添浅易:由于分片数目大大削减,跨分片通信更为简化,用户大可直接在每一个分片上都存有 Ether,直接给区块挑议者支付(又能够经历前线挑到的经历 EE 输出收据的挑案)。

消释了大半的费用市场题目,现在只剩下中继网络(状态挑供者)的挑衅还照样存在。

  挑醒  

以上关于以太坊 2.0 的中继网路/费用市场的商议,并非十足详细的: 对于用户、中继者、区块挑议者来说,行家都必要正当的付费激励及服务。用户能够经历付费得到所需的见证,中继者收取费用挑供见证,而区块挑议者收费打包营业。关于中继者向区块挑议者付费(或间接的经历 EE 付费)的方式,能够在制定内声明;但是用户期待一面要取得见证数据,一面要保证营业被打包,其付费的方式就异国那么单纯了。 对于用户来说,益的支付方法答该是矮阻力的,方便其转换分歧的中继者。但是倚赖外部区块链的支付通道,存在预先支付押金及对外部链活性(liveness)的请求;理想的情况照样能在制定内解决用户支付的题目。 续上一点,答该让中继者难以审阅用户。怅然的是,见证取自于内嵌的访问列外,因此异国办法不准中继者竖立暗名单。 验证者不消“理解”每个 EE 内部的支付方式,由于这会极为复杂,对安放及竖立有效的市场带来庞大的阻力。 用户不是非维护全节点不走(例如,不必要为了维护本身所需的见证而去维护)。吾们期待这个挑案对于轻客户端专门友益。 末了一点同样很关键:招架 DoS 抨击专门主要。遵命见证的相符并/刷新方式,很有能够会有向验证者发首的 DoS 抨击。务必要当心有人行使这栽漏洞。   总结  

回顾以前的一整年,围绕着中继网络及费用市场的钻研进走了众次迭代,致力于给用户和轻节点带来良益的操纵体验的同时,降矮验证者义务,尽能够保证免准入性。展看异日,吾们期待看到更众关于 Phase 2 的挑案,进一步改进和完善以太坊 2.0 的各个层面!

原文链接: https://medium.com/@adlerjohn/relay-networks-and-fee-markets-in-eth-2-0-878e576f980b 作者: John Adler 翻译&校对: IAN LIU & 阿剑