译者注:
-
原文中 Rollup 一起以单复数形式出现多次,在译文中统一承认为首字母大写的 Rollup。
Rollup 在当时的以太坊社区现已十分闻名。在可预见的未来,Rollup 是以太坊完结扩容的要害处理计划 。但 Rollup 终究是什么?你能从这项技能身上得到什么,又该怎么运用它?这篇文章将测验答复一些要害问题。
背景常识:什么是一层扩容,什么是二层扩容?
完结区块链生态体系扩容有两种办法。第一种扩容的办法是让区块链本身拥有更高的业务处理容量。比方让区块变得 “更大”,但 “大区块” 会让区块链的验证进程变得更为困难,而且或许会使节点愈加中心化。为了避免这样的风险,开发者能够进步客户端软件的功率。愈加具有可持续性的扩容办法是,运用分片等技能,让构建和验证区块链的作业分摊到许多不同的节点上—— “ eth2 ” 就在测验运用这种办法晋级以太坊。第二种扩容的办法是改动运用区块链的办法。用户不需求直接把全部的活动都直接放在区块链主链上,而是在主链外的 “二层” 协议中履行大部分活动,并生成一个证明,证明链外发生的这全部活动都遵从规则。主链上布置一个智能合约,它只有两个任务:处理存取款,以及对上述证明进行验证。有多种办法完结证明和验证,但它们都有一个一起的特性,那便是在链上验证证明比在链下做原始核算的开支要小得多。
状况通道 vs plasma vs rollup
二层扩容主要有三种计划:状况通道,Plasma 和 rollup。三种计划代表了三种不同的范式,每种计划有自己的优缺陷。全部的二层扩容大致都属于这三类(关于一些折衷的计划怎么分类存在争议,例如 “ validium ”)(编者注:中文译本)。
状况通道怎么作业?
另请参看 https://www.jeffcoleman.ca/state-channels ,statechannels.org幻想一下,Alice 向 Bob 供给了网络连接服务。作为交流,Bob 为上网发生的流量付出 0.001 美元/MB 的费用给 Alice。Bob 不需求在一层主链付出每笔费用,两边运用如下二层计划。首要,Bob 将 1 美元(安稳币,或是等值的 ETH)存入一个智能合约中。为了向 Alice 付出第一笔金钱,Bob签署了一张 "收据"(一条链外音讯),“收据”上写着 “0.001 美元”,并将其发送给Alice。为了付出第二笔金钱,Bob 签署另一张写着 “$0.002” 的收据,并将其发送给 Alice。以此类推,每次付款都重复这个进程(译者注:状况通道参与方只需保留一个最新的状况改动,因而新的收据签署后,前一张收据报废)。当 Alice 和 Bob 完结买卖后,Alice 能够将价值最高的收据包裹上自己的签名后,发布到主链上(关闭通道)。智能合约会验证 Alice 和 Bob 的签名,验证通往后,将 Bob 的收据上标示的金额付出给 Alice,剩余的金额(译者注:1 美元减去前者)返还给 Bob。假如 Alice (出于歹意或技能故障)不愿意关闭通道,Bob能够建议一个提现应战期(例如7天)——假如 Alice 在这段时刻内无法供给 Bob 付出的收据,那么 Bob 就能够拿回之前存在智能合约里的全部钱。状况通道技能很强壮:广义的状况通道能够支持双向付出、完结智能合约(例如 Alice 和 Bob 在通道中签订金融合约),并具有可组合性(假如 Alice 和 Bob 之间有一个敞开的通道,Bob 和 Charlie 之间也有一个敞开的通道,那么 Alice 就能够和 Charlie 进行免信任的交互)。可是通道的作用是有约束的:不能向还没有加入通道的用户在链下发送资金;不能用于没有清晰逻辑全部者的对象(比方 Uniswap 智能合约)。此外,假如运用通道处理的业务比小额付出场景更杂乱,需求承认许多的资金在通道中。
Plasma 怎么作业
另请参看 Plasma原始白皮书,Plasma Cash要将财物从主链存入 Plasma 链,用户需求在主链将财物发送至办理 Plasma 链的智能合约。Plasma 链会给该财物分配一个新的唯一 ID(例如 537)。每条 Plasma 链都有一个操作者(这或许是一个中心化的人物,或许由多签控制,也能够是更杂乱的东西,例如一条 PoS 链或 DPoS 链)。每隔一段时刻(能够是 15 秒,也能够是一小时,或许介于两者之间的任何时长),操作者就会生成一个 “批处理”(batch),包括这段时刻内所收到的全部 Plasma 链的买卖。操作者生成一棵 Merkle 树,在索引为 X
的叶子节点处,假如财物 ID 为 X
的财物在这一批次中发生了买卖,则叶子节点上存有对应买卖,否则该叶子节点为零。操作者将这棵树的 Merkle 根发布到主链上。操作者还需求将每个索引 X
的 Merkle 分支发送给该财物的当时全部者。假如需求将财物从 Plasma 链提取至主链上,用户需求给主链的智能合约发送该财物最近一次买卖对应的 Merkle 分支。智能合约随即开端了一个应战期(例如7天),在此期间,任何人都能够测验运用其他 Merkle 分支来证明:(i)用户在提取财物时并不拥有该财物,或许(ii)用户在某个时刻点将财物发送给了其他人,然后使退出恳求无效。假如在 7 天内没有人证明退出是诈骗性的,用户便能够成功取回财物。Plasma 供给了比状况通道更强的功用:你能够将财物发送给从未加入二层的用户,承认的资金也低得多。但这是有代价的:状况通道在 “正常运转” 时不需求将任何数据存入主链,但 Plasma 要求每条链每隔一段时刻在主链发布一次哈希值。此外,Plasma 链中的买卖没有即时性,即有必要等候一批买卖(也可称为 Plasma 区块)的证据(即那个 Merkle 根值)发到主链上。此外,Plasma 和状况通道都有一个重要缺陷:其安全模型所对应的博弈论依托于这样的主意:两个体系所控制的财物在逻辑层面都要有 "全部者"。只要财物全部者在乎自己的财物,那么当触及该财物的状况改动 “无效” 时,财物全部者就会想办法出示改动 “无效” 的证明。这对一些运用来说无关紧要,但对不少其他运用来说这是个问题(例如 Uniswap)(译者注:关于 Uniswap 这样的 DEX 买卖运用来说,其智能合约不属于任何人,与上述安全假设依托的主意对立)。即便体系中一个对象的状况能够在未经体系全部者同意的情况下被改动(例如在基于账户的体系中,能够在未经全部者同意的情况下 增加 其余额),也不能很好地与 Plasma 兼容。这意味着,在实际中布置 plasma 或状况通道时,都需求推演 “特定运用” 的潜在逻辑规划定制化计划,不太或许做出一个能完好模仿以太坊运转环境(即 “EVM”)的 plasma 或状况通道体系。接下来让咱们看看 rollup 是怎么处理这个问题的。
Rollup
另请参看:EthHub 关于 optimistic rollup 的介绍,EthHub 关于 ZK rollup 的介绍Plasma 和状况通道计划都是 “彻底的” layer 2 计划,由于它们将数据和核算都搬运到链下(即自己的二层体系中)。可是,数据可得性的根本博弈论原理意味着这样的体系不或许安全地完结全部运用。Plasma 和状况通道经过清晰财物对象和全部者之间的联系来处理这个问题,但这使它们无法彻底通用。Rollup 则与前两者不同,是一种具有 “混合性质” 的二层计划。Rollup 将核算(和完好的状况存储)搬运到链下,但在链上保存了每笔买卖的部分数据信息。为了进步功率,Rollup 运用了一系列花哨的紧缩技巧,并尽或许地用核算替代数据。其结果是,这个体系的可扩展性依然受限于底层区块链的数据带宽,但在此基础上完结的扩容倍数十分可观:在以太坊主链履行一笔 ERC-20 代币的转账大约消耗 45000 gas,但在 Rollup 中,每笔买卖仅需求在主链上存储 16 字节数据,消耗的 gas 小于 300。数据存储在主链是 Rollup 的要害要素(请注意:这同将数据存储在 “IPFS” 上不同,由于 IPFS 不会对存储的数据进行共识,Rollup 的数据则 有必要 存储在区块链上)。将数据存储在主链并进行共识,使得任何人能够在本地处理 Rollup 中的全部操作,包括诈骗检测,建议提款,生成批处理等。由于不存在数据可得性问题,所以运营者假如作恶或许离线所形成的丢失相对更少(比方他们无法形成长达 1 周的退出推迟),也在谁有权发布批处理这个问题上供给了更多的或许性,一起也使 Rollup 更易于理解。更为重要的是,不存在数据可得性问题意味着,财物无需和全部者有清晰的逻辑映射联系。相比其他二层扩容计划,这是以太坊社区对 Rollup 感到愈加激动的重要要素:Rollup 是具有通用性的,比方能够在 Rollup 中运转 EVM,然后使现有的以太坊运用能够在不写新代码的情况下迁移至 Rollup。
Rollup 终究怎么作业?
在主链上有一个智能合约,存有一个状况根 —— 表征 Rollup 状况的 Merkle 根。(状况内容包括 Rollup 中的账户余额,合约代码等)任何人都能够在主链上对该智能合约建议一个批处理业务(transaction),这个批处理是对一批 Rollup 内部业务的高度紧缩,还包括旧的状况根和新的状况根(在旧状况根基础上履行批处理买卖之后生成的新状况根)。主链合约会查验旧的状况根与新的状况根是否匹配(译者注:即新的状况根是否能够由这一批买卖集触发状况转化生成)。假如查验经过,主链上的旧状况根会更新为新状况根。为了支持存款(译者注:将财物从主链的其他地方存入 Rollup 合约)和取款(译者注:免除 Rollup 合约对自己财物的控制,使之返回到链上其他地方),批处理中的业务的输入或输出能够是 Rollup “外部”(译者注:即主链其他地方)的状况。假如批处理中有买卖的输入来自 Rollup 之外,那么这个批处理操作会将主链其他地方的财物搬运至 Rollup 合约中。假如批处理中有买卖的输出来自 Rollup 之外,那么这个批处理会触发智能合约中的取款操作,将财物从 Rollup 取回主链。整个进程就这么简略!不过还有一个细节。怎么知道批处理履行完结之后的状况根是正确的? 假如有人能够提交一个伪造的状况根,而不发生任何后果,他们就能够把全部的财物搬运给自己。这个问题很要害,由于这个问题有两种天壤之别的处理办法,然后形成了两种类型的 Rollup。
Optimistic rollups vs ZK rollups
Rollup 的两种类型包括:
-
Optimistic Rollup,运用 诈骗证明处理上述问题:主链的 Rollup 合约记载了该 Rollup 内部状况根改动的完好记载,以及每个(触发状况根改动的)批处理的哈希值。假如有人发现某个批处理对应的新状况根是过错的,他们能够在主链上发布一个证明,证明该批处理生成的新状况根是过错的。合约校验该证明,假如校验经过则对该批处理之后的全部批处理买卖全部回滚。
-
ZK Rollup, 运用有效性证明处理上述问题: 每个批处理中包括一个称为 ZK-SNARK 的密码学证明(例如运用PLONK协议, 证明新状况能够由旧状况经此批处理操作后转化而来(译者注:在 ZK Rollup 中,提交的密码学证明只需求具有尺寸小,验证快的特性即可,无需具有零常识性,所以只需求 SNARK 即可完结 ZK Rollup,不是必定需求 ZK-SNARK。事实上,在 ZK Rollup 中,由于批处理买卖信息存储在主链上,而这些信息恰是密码学证明体系中所证明的内容,因而 ZK Rollup 本身并不具有零常识性,具有零常识性的 ZK Rollup 被称为 ZK ZK Rollup)。无论批处理的核算量多大,都能够在主链上高效对证明进行验证。
这两种 Rollup 之间的规划权衡比较杂乱
性质 | Optimistic Rollup | ZK Rollup |
---|---|---|
每个批处理在主链上的固定 gas 开支 | 约 40,000 (开支相对轻量,主要操作是改动状况根的值) | 约 500,000(关于 ZK-SNARK 的验证开支相对较大) |
提现周期 | 约 1 周 (需求留出时刻,看是否有人提出诈骗证明,然后取消无效提现恳求) | 十分快 (在提交提现恳求后的下个批处理即可完结) |
技能杂乱度 | 低 | 高 (ZK-SNARKs 技能较新,在数学层面相对更杂乱) |
完结通用性的难度 | 相对更容易 (很快就能够将完结通用性 EVM 的 Rollup 布置在主网中) | 相对更难(运用 ZK-SNARK 证明具有通用性的 EVM 履行操作比证明简略的核算操作难得多,当然(例如 Cairo)等作业正在尽力简化该进程) |
Rollup 中每笔业务的本钱 | 相对更高 | 相对更低 (假如业务数据中的某些部分只用来验证该业务的有效性,而不触及状况改动,这部分数据就能够不存储在主链上,而在 Optimisitc Rollup 中需求存储全部数据,用于后续诈骗证明的生成和校验) |
链下核算的开支 | 相对更低(虽然需求更多的全节点进行重核算) | 相对更高 (生成 ZK-SNARK 证明,特别是生成通用核算的证明开支或许很大,比直接核算要大好几千倍) |
总的来说我自己的观点是,短期内 Optimisitc Rollup 很或许在完结具有通用性的 EVM 中胜出,ZK Rollup 很或许在简略的付出、转账和其他特定运用中胜出。但从中长期来看,随着 ZK-SNARK 技能的改善,ZK Rollup 将在全部运用场景中胜出。
剖析诈骗证明
Optimistic Rollup 的安全性取决于这样的主意:假如有人将一个无效的批处理发布到 Rollup 中,任何 同步了该链的人只要发现诈骗行为便能够向主链上的合约发布诈骗证明,证明该批处理是无效的,应该被回滚(译者注:不清楚作者这儿的 “该链(the chain)” 终究是指主链,仍是指 Rollup,虽然都是对的)。一个断言某个批处理无效的诈骗证明需求包括上图中以绿色标识的数据:该批处理本身(可与存储在链上的哈希值进行核对)以及证明该批处理读取或修改了特定账户的默克尔树途径。黄色的节点能够经过绿色的节点重建,所以无需包括在证明中。这些数据足以履行批处理并核算新的状况根(请注意,这与无状况客户端验证单个区块的办法彻底相同)。假如核算出的新状况根和批处理中供给的新状况根不一样,那么就证明了该批处理是诈骗的。能够保证的是,假如一个批处理中存在过错,而在此之前的全部批处理都是正确的,那么就能够创立一个诈骗证明,证明该批处理的构造是过错的。注意假如在 Rollup 中有多个无效的批处理,那么最好尽量证明最早的那个批处理无效。当然能够保证的是,假如一个批处理是正确的,那么永远不或许创立一个诈骗证明,证明该批处理是无效的。
紧缩是怎么完结的?
一笔最简略的以太坊转账(发送 ETH)大约需求 110 字节,可是在 Rollup 中完结 ETH 转账只需求大约 12 字节:
参数(单位:字节数) | 以太坊主链 | Rollup 合约 |
---|---|---|
Nonce (流水号) | ~3 | 0 |
Gasprice | ~8 | 0-0.5 |
Gas | 3 | 0-0.5 |
To (方针地址) | 21 | 4 |
Value (搬运价值) | ~9 | ~3 |
Signature (签名) | ~68(2 + 33 + 33) | ~0.5 |
From (建议地址) | 0(从签名中还原) | 4 |
总计 | ~112 | ~12 |
这其间的部分原因是 Rollup 能够选用更简略的高级编码技巧,而现在以太坊的 RLP 在每个值的长度上糟蹋了1个字节。一起 Rollup 还运用了一些十分聪明的紧缩技巧。
-
Nonce:这个参数的目的是为了避免重放。假如一个账户状况当时的 nonce 是 5,那么该账户的下一笔买卖的 nonce 参数有必要是5,可是一旦买卖被处理,账户状况中的 nonce 就会被递增为 6,这样 nonce 为 5 的买卖就不会再被打包。在 Rollup 中,咱们能够彻底省掉 nonce,由于咱们只需求从更新前状况中康复 nonce;假如有人试图用较早的 nonce 重放买卖,签名将无法经过验证,由于签名校验将运用 nonce 更大的数据。
-
Gas Price:咱们能够答运用户运用固定规模的 Gas 价格进行付出,例如规模是 0 - 2 的 16 次幂。另外,咱们也能够只为每个批处理收取固定的费用,甚至能够将 gas 付出彻底移到 Rollup 之外,让买卖者经过特定途径向批处理创立者付出费用。
-
Gas:咱们同样能够仅仅将 Gas 总量规模挑选为 2 的幂。另外,咱们也能够只在批处理层面设置 Gas 约束。(译者注:这儿的 Gas Price 和 Gas,都是为了比较经过 rollup 合约和以太坊网络来转账所发生的数据量。并不代表一个 rollup 协议必定要包括这些概念。比方 Fuel 作为一种 Optimistic Rollup 协议,便是基于 UTXO 的,彻底不包括这些概念。)
-
To:咱们能够用 索引 替代 20 字节的地址(例如,假如一个地址是增加到树上的第 4527 个地址,咱们就用索引 4527 来表明。咱们会在状况中增加一个子树来存储索引到地址的映射)。
-
Value:咱们能够用科学计数法来存储 Value。在大多数情况下,转账只需求 1-3 个有效位。
-
Signature:咱们能够运用 BLS 聚合签名,使许多签名聚组成一个约 32 - 96 字节(详细大小取决于所运用的协议)的签名。然后,这个签名能够一次性对整个音讯集和发送者进行批处理的签名校验。表中的 ~0.5 表明在一个主链区块中能够验证的聚合签名数量是有限的,因而假如批处理中的买卖较多,需求约每 100 笔买卖生成一次聚合签名。(译者注:大意是,验证聚合签名的核算量会随被聚合的原始签名的数量增加而增加,而以太坊主链区块能够运用的 Gas 数量是有上限的,因而聚合签名不能一次性聚合太多原始签名。)
ZK Rollup 有一个特别的重要紧缩技巧:假如买卖的一部分只用于验证,与核算状况更新无关,那么这部分数据能够不存储在主链上。这在 Optimisitc Rollup 中是做不到的,由于该数据依然需求存储在链上,以备后续诈骗证明校验的不时之需,而在ZK Rollup 中,证明某批处理数据正确性的 SNARK 证明,现已证明了相关方供给了全部验证所需的数据。一个重要的比如是完结具有隐私维护性质的 Rollup:在 Optimisitc Rollup 中完结隐私维护,每笔买卖中用于维护隐私的约 500 字节的 ZK-SNARK 需求上链,而在 ZK Rollup 中完结隐私维护,掩盖整个批处理的 ZK-SNARK 现已能够证明 "内部 "的 ZK-SNARK 是有效的。(译者注:由于 SNARK 能够嵌套,故在 ZK Rollup 中完结隐私维护,只需将最终生成的最外层的 SNARK 提交上链即可,在验证外层 SNARK 时,内层的 SNARK 的有效性一起能够得到验证。)这些紧缩技巧是 Rollup 完结扩容的要害,假如没有这些技巧,Rollup 或许只能在主链的扩容基础上完结大约 10 倍的扩容(虽然在一些特定的大核算量的运用中,简略的 Rollup 完结的扩容现已很强壮),但在运用了紧缩技巧之后,简直全部运用的扩容系数都能够超过 100 倍。
谁能够提交批处理?
关于哪些人能够在 Optimistic Rollup 或 ZK Rollup 中提交批处理这个问题,现已存在许多流派。一般来说,咱们都认为提交批处理的用户有必要质押一大笔押金,假如某用户曾经提交过一个具有诈骗性的批处理(例如提交一个无效的状况根),那么这笔押金的一部分将被焚烧销毁,另一部分奖赏给提交诈骗证明的用户。但除此之外,还存在许多或许:(译者注,能够将批处理发布到主链上的用户称为 sequencer(排序者),该术语得名原因是该人物需求对批处理中的买卖进行排序)
-
彻底无许可的排序者:任何人都能够在任何时候提交批处理。这个办法最简略,但有一些严重的缺陷,比方存在这样的问题:多个参与者一起生成并试图提交批处理,而其间仅有一个批处理能够成功被收录。这将导致在生成证明的核算开支或提交证明时的 Gas 开支有许多被糟蹋。
-
中心化的排序者:经过排序者这样的人物提交批处理(提现操作在外:在提现操作中,首要由用户自己提交提现恳求,假如排序者鄙人一个批处理中没有处理该笔提现买卖,那么用户能够亲身提交一个仅包括一笔提现买卖的批处理恳求)。这种办法“功率”最高,但需求依托一个中心化的人物。
-
排序者拍卖:经过拍卖(比方每天)来决议谁有权利成为第二天的排序者。这种计划的长处是能够筹集资金,而这些资金能够经过 Rollup 的 DAO 来分配(参阅MEV 拍卖)。
-
从 PoS 集合中随机挑选:任何人都能够将 ETH(或许 Rollup 协议设定的代币)存入 Rollup 合约中,每一个批处理的排序者都会在这些存款人中随机选取,被选中的概率与存款金额成正比。这种计划的主要缺陷是需求承认许多财物。
-
DPoS 投票:某些排序者经过拍卖选取后履行批处理,但假如他们体现欠安,那么代币持有者能够投票将其踢出,并举办新的拍卖来替代他们。
将批处理和状况根提交分开
现在正在开发的一些 Rollup 选用的是 “分割-批处理”("split batch")形式,即提交一批二层买卖批处理的行为和提交一个状况根的行为是分开进行的。这其间有一些要害的优势。
-
你能够答应许多排序者并行发布批次,以进步抗审查才能,减轻关于某些批处理会由于其他一些批处理提早打包而无效的担心。
-
假如一个状况根存在诈骗,无需回滚整个批处理,能够只回滚状况根,并等候有人为同一批处理供给新的状况根。这样能够更好地保证买卖发送者的买卖不会被还回滚。
总的来说,这是一个适当杂乱的技能组合,还在触及功率,简略性,抗审查性和其他方针的杂乱权衡中找到平衡。现在说这哪种组合最有效还为时过早,时刻会证明全部。
Rollup 会带来多大的扩容?
在现有的以太坊主链上,每个区块的 Gas 上线是 1250 万,而买卖的每个字节存储在链上花费 16 Gas。这意味着,假如一个区块中只包括一个批处理(这儿假设运用 ZK Rollup,校验证明花费 50 万 Gas),那么这个批处理能够包括 1200 万 / 16 = 75 万字节的数据。而如上文所述,Rollup 中的每一笔 ETH 转账只需求 12 字节的存储空间,这意味着每个批处理中能够包括 62500 笔买卖。现在以太坊主链的区块间隔是 13 秒,也便是说完结的 TPS 约为 4807(相比之下,以太坊主链上完结 ETH 转账的 TPS 约为 1250000 / 21000 / 13 = 45)。下表中包括了其他一些运用场景的扩容功率。
运用场景 | Rollup 内单笔对应操作需上链的字节数 | 以太坊主链对应操作的 Gas 消耗 | 最大扩容倍数 |
---|---|---|---|
ETH 转账 | 12 | 21,000 | 105x |
ERC20 转账 | 16 (多出的 4 个字节用于表明 token) | ~50,000 | 187x |
Uniswap 买卖 | ~14(发送者 4 个字节 + 接收者 4 个字节 + 买卖金额 3 个字节 + 最大价格 1 个字节 + 1 个字节杂项) | ~100,000 | 428x |
具有隐私维护性的提现操作(Optimisic Rollup) | 296(根索引 4 个字节 + nullifier 4 个字节 + 接收者 4 个字节 + ZK-SNARK 证明 256 个字节) | ~380,000 | 77x |
具有隐私维护性的提现操作(ZK Rollup) | 40 (根索引 4 个字节+ nullifier 32 个字节 + 接收者 4 个字节) | ~380,000 | 570x |
最大扩容倍数核算办法:以太坊主链对应操作的 Gas 消耗 / (Rollup 中对应操作需上链的字节数 * 16) * 1200万 / 1250 万需求说明的是,出于某些原因,这些数字其实是过于乐观的。最重要的原因是,一个区块中简直不或许只包括一个批处理,由于到时会有多个不同的 Rollup 体系。第二个原因是,存款和提现操作始终将会存在。第三个原因是,短期内 Rollup 的运用量或许较低,因而固定本钱的收费形式会占有主导。不过即便考虑了这些要素,超过 100 倍的扩容应该不难完结。那假如咱们想要完结 1000-4000 TPS(取决于详细的运用场景)呢?这就需求 eth2 数据分片了。在这个提案中,每 12 秒开辟一个 16MB 的存储空间,这个存储空间能够被任何数据填满,体系将保证对这些数据的可用性达成共识。这个数据空间能够被 Rollup 运用。这个约 1398kB/秒的数据吞吐量比当时以太坊主链的约 60 kB/秒进步了 23 倍,从长远来看,数据容量有望进一步增长。因而,运用 eth2 数据分片完结的 Rollup 的 TPS 能够高达 10万,在未来甚至会更大。
还有哪些没有处理的应战?
虽然现在 Rollup 的根本概念现已被人们所熟知,咱们也很承认 Rollup 从本质上说上是可行的、安全的,而且现已有多个 Rollup 在以太坊主网布置,但 Rollup 在规划层面仍有许多地方没有被很好地探究,假如要将以太坊生态体系的大部分都彻底引入 Rollup 然后使用其扩容性,这方面仍存在不少应战。一些要害的应战包括:
-
用户和生态体系的入驻:现在运用 Rollup 的运用不多,用户对 Rollup 不熟悉,很少有钱包开端整合 Rollup。商家和慈善机构还不接受它们用于付出。
-
跨 Rollup 买卖:有效地将财物和数据(如预言机输出)从一个 Rollup 搬运到另一个 Rollup 中,而不需求经过主链中转并发生相应费用。
-
审计鼓励:怎么最大极限地进步至少有一个诚实节点会彻底验证 Optimistic Rollup 的概率,然后保证在出现问题时有人发布诈骗证明?关于小规模的 Rollup(TPS 几百以下)来说,这不是一个重要的问题,能够简略地依托利他主义完结,但关于更大规模的 Rollup 来说,需求把鼓励问题研究清楚。
-
探究在 Plasma 和 Rollup 两者之间规划的或许性:是否有技能能够把 部分 与状况更新相关的数据放在链上,但不把 全部 数据放在链上?经过这种技能是否会诞生出新的有用的工具?
-
最大极限地进步预承认的安全性:许多 Rollup 为了让用户体会更好,供给了一个 “预承认” 的概念,即在买卖完结后,排序者即刻供给一个许诺:某笔买卖将被包括鄙人一批处理中,假如排序者食言,他们的押金将被销毁。可是这种计划在经济层面的安全性是有限的,由于排序者或许一起向十分多的用户做出许多许诺。这个机制是否能够改善?
-
进步对缺席排序器的响应速度:假如一个 Rollup 的排序者突然离线,那么怎么最大极限地快速以及低本钱地从这种情况中康复,要么快速和低本钱地大规模退出到另一个 Rollup,要么更换排序者。快速响应这是十分有价值的。
-
高效的 ZK-VM:生成一个ZK-SNARK证明,证明具有通用性的 EVM 代码(或现有合约能够编译到的另一种 VM)现已正确履行,并有一个承认的结果。
总结
Rollup 是一种新的强壮的二层扩容范式,预计将成为以太坊未来短期和中期(也或许是长期)完结扩容的基石。以太坊社区关于 Rollup 十分振奋,由于与之前的二层扩容测验不同,Rollup 能够支持通用的 EVM 代码,答应现有的运用程序轻松迁移过来。Rollup 经过做出一个要害的退让来完结这一方针:不试图彻底搬到链下,而是将每笔买卖的少数数据保留在链上。(译者注:即上文所说的没有数据可得性问题)Rollup 有许多种,规划上也有许多挑选:运用诈骗证明的 Optimisitc Rollup,运用有效性证明的ZK Rollup。排序者能够是一个中心化的人物,也能够是一个去中心化的自在人物,或许是介于两者之间的许多其他挑选。Rollup 依然是一项早期阶段的技能,开发正在快速地持续,但它们是有效的,一些(特别是 Loopring、ZKSync 和 DeversiFi)现已运转了几个月。期待在未来的几年里,Rollup 范畴会有更多令人振奋的成果出现。
视野开拓
斯洛维克想摆脱专家对风险判断的绝对控制,因此他对专家的理论依据——风险是客观的——发起了挑战。 “风险界定是一种权力运作。”-《思考,快与慢》