完整的EVM:Layer2虚拟机
为了使Layer2智能合约计算保持无需信任,必须有一个备用方案,即以某种形式在Layer1执行这种计算。由此可见,ORU支持完整的EVM,Layer2需要自己的虚拟机,该虚拟机可在EVM基本层中执行,为此高性能的创建实现并非易事。简而言之,EVM的设计初衷并非旨在自身运行。您可以从EIP中了解到其中的一些挑战,它也讨论了修改EVM以直接合并此功能的可能性,以及KelvinFitcher在Plamsa中对这一问题的概述。因此,所有五个完整的EVM项目都为Layer2执行创建了自己的EVM修正版本。为了确保欺诈证明的可靠性和可预测性,VMs的执行必须是确定性的;即,在证明时必须能够准确再现最初发现欺诈的情况。因此,非确定性操作必须完全修改或删除,例如,检查区块高度,难度和时间戳。同样,用于合约创建或销毁的操作码也需要删除,因为这种逻辑是特殊的。因此,在部署到ORU链之前,ORU上Layer1的合约可能需要对Solidity代码进行一些小的修改。欺诈证明
所有完整的EVMORUs在如何促进欺诈证明方面都具有一些基本的共性:定期排序并提交ORU链的状态,计算操作的哈希值也是如此,包括执行状态转换。。欺诈证明在某种程度上使用了这些数据来表明,所提交的步骤实际上并未正确地将初始状态转换为最终状态。完整的EVM实践中主要区别在于它们处理这些欺诈证明的交互程度。ORU本质上必须包含足够的呼叫数据,这样可以立刻发现欺诈行为,并最终得到主链的共识。但是,执行此欺诈证明的过程因构造而异。在单轮欺诈证明方案中,欺诈总是可以在单笔交易中证明,也可以在单方的多笔交易中证明。这样做的好处是可以立即“解决争议”,没有麻烦的载体,因此不需要欺诈证明人的保证金,而且操作简单。在多轮欺诈证明中,欺诈是显而易见的,但是欺诈证明者和区块生产者之间需要几个交互步骤。这样做的好处是Gas成本更低,链上数据成本也可能更低。单轮欺诈证明
Nutberry,Optimism和Celer的ORU都支持单轮欺诈证明。这就要求每笔交易都必须提交到序列化的后状态根。在Optimism的模型中,Celer也直接受到影响,如果检测到欺诈,欺诈证明者会发布交易的初始状态和最终状态的时间,并让主链完全执行交易。。理想情况下,交易只需要最少的状态时间即可证明欺诈。但是原则上,交易可能需要读取大量状态数据。如果欺诈证明需要大量数据和/或计算,很难将其放在主链区块上,那么Optimism可将证明拆分为多个交易Nutberry的方法与此类似,但使用“门控计算”模型执行合约。智能合约被修补以包含检查点。在此模型中,交易会提交多个更细化的中间状态根,可能需要更多数据,但在较小的数据块中执行欺诈证明。多轮欺诈证明
证明者需要与欺诈证明者之间进行多个步骤的交互才能决定多轮欺诈证明是否属实。按照ORU的定义,关键是要发布足够的数据,让任何一个诚实的参与者或观察者都可以从一开始就确定哪一方在说真话,从而预测了质疑期的结果。在InterstateOne的例子中,交易包含状态根,且发布时提交Merkle根至对应执行的步骤,而不是提交至步骤本身。从某种意义上说,这种提交是一种二级“optimistic”的假设。只有验证者提出问题时,操作员才会将EVM消息栈张贴在呼叫数据中,验证者可以使用该信息简要证明欺诈。在最坏的情况下,此过程总共进行3轮,并且要求呼叫数据与所涉及的交易中的步骤数量成线性关系。在互动性增强方面最先进的是OffchainLabs的ArbitrumRollup,可以最大程度地减少链上的足迹。使用Arbitrum,只有区块,而非交易,需要提交状态根。与Interstate一样,这些也包括了提交哈希值的计算。如果双方提出了相互矛盾的主张,则他们将进入争端;在该争端中,他们会交互式地找出无效执行的单个计算步骤。他们通过在栈中进行有效的二进制搜索直到欺诈已隔离:即,欺诈证明者通过栈,在中途的一个点请求状态哈希,然后将栈二等分并重复已知无效的一半。此过程将不断重复,直到只剩下一个无效的操作,然后在链上执行该操作。因此,在最坏的情况下,此过程需要个日志步骤,并且需要最少的Layer1计算。这种方法的一个令人惊讶的特性是,尽管争议正在进行,但无需暂停系统的其余部分。用户和区块生产者可以继续照常进行交易。可以将“争议”视为可能性树中的分枝。诚实的用户可以验证且确定哪一方是诚实的,并在此基础上继续发展,了解争端最终将以何种方式解决。因此,争议的持续时间不会让系统的其余部分延迟。有关更多信息,请参见HowArbitrumRollupWorks。应用特定的Rollups
ORU项目支持更受限制的功能,同时寻求围绕更特定的案例进行优化:通证支付、去中心化交易、私人支付和大规模迁移。这四个协议都各不相同,也将分别进行探讨。Fuel
Fuel正在实施以支付为中心的、基于UTXO的ORU侧链,其数据模型类似于比特币。这种设计需要平衡智能合约的一些功能,以利于实现简便性以及更便宜的验证和欺诈证明。实际上,关于Fuel与完整EVMORU的权衡,许多想法与比特币与和以太坊的权衡相似。与比特币一样,Fuel链的状态被隐式定义为所有未花费的交易输出的集合;不需要状态根序列化。支持简洁欺诈证明的模型与GregMaxwell在2014年GregMaxwellin2014最初为比特币提出的模型相似;交易与比特币交易非常相似,但是包含一个额外的数据区,用于指定每个输入的处理位置。有了这个数据区,就可以在一个回合中用一个或两个包含证明来证明所有欺诈案件。除了低成本的欺诈证明之外,UTXO模型还有望实现更高性能的验证-更好的状态访问模式和并行空间。Fuel将使用一种模型来支持ERC20和ERC721传输,该模型可以反映比特币彩色硬币提案。它还支持某些特殊的交易类型,包括HTLCs的原子互换。该计划最终支持一种更强大的无状态谓语脚本语言,其功能类似于比特币脚本。。ANON的ZK-Optimistic-Rollup
另一个独特的ORU项目是ANON的ZK-Optistic-Rollup,它支持ERC-20和ERC-721支付交易,并具有与ZCash隐私地址相同的隐私保证。该设计与ZCash本身有很多共同点;资金索赔采用UTXO式的“签发”形式;支付产生的新签发和创建的“废止通知”,记录该签发是用于防止未来重复支出。交易也包括ZK-SNARK,可证明其满足所有有效性条件,且没有向观察者实际透露任何细节。为了维护简洁的欺诈证明,ZK-ORU拥有ZCash中没有的功能:废止通知存储在SparseMerkle树中,并随每个新的ORU块进行更新。这样可以轻松证明成员资格和非成员资格。与所有其他ORU一样,计算被乐观地延迟了,包括SNARKS本身的验证。所有的欺诈情况,包括无效的SNARK,只需一步就能证明。注意,生成SNARK的重任落在用户身上;ANON预计一个客户会花费10-30秒生成SNARK。WCL的ORUHub
该ORU操作旨在成为rollup链之间的批交易标准,是让用户自愿将其资金迁移到升级合约的一种手段。该操作本身是一条简单的,仅基于帐户支付的链,与Fuel一样,它提供廉价的欺诈证明和数据验证。这种构造的主要目的是建立一种标准架构,以便能够直接在不同链之间进行转移,即,不必从一条链中取出款后再重新存到到另一条链上。这可以通过支持批量存款和建立单向链间的交叉连接实现。只要目的链上的验证者发现出发链上的欺诈行为,就可以将付款视为最终付款,而不会产生任何额外的延迟。这与围绕ETH2.0交叉分片通信的研究ETH2.0crossshardcommunication逻辑相类似。虽然主要的计划用例是可升级性,但此机制潜在的其他用例是在单独的、不同的、实时rollup链之间迁移,我们需要对此进行更多研究。关于rollup链间迁移的精确协议,以及需要确认的规范链,更多详细信息尚未公开,日后会在此处附上链接。IDEX2.0
IDEX的独特之处在于,他们将ORU作为已经投入生产的项目的最佳扩容版本,IDEX合约当前已在主网运行,IDEX合约使用的状态模块比任何以太坊其他应用程序都要多。IDEX2.0的rollup链支持登记订单式去中心化交易功能,并且围绕此特定用例构建而成。该链负责执行订单,维护用户余额,允许设置发生其他功能,例如更高级的订单类型,自动交易引擎等。IDEX的ORU中的验证者必须有IDEX通证。验证者提交收据证明已发布的区块,并根据他们在有效区块上的签名和有效欺诈证明的签发而受到奖励和/或惩罚。奖励是使用一部分的交易费用和自己的通证支付的。在协议中,区块生产者仅上传区块的Merkle根作为初始投入,仅在质疑时将区块内容发布到呼叫数据中。由于无法在链上保证rollup区块数据的可用性,因此,这并不完全符合上述“OptimisticRollup”的定义;实际上,他们将其称为“优化的OptimiziedRollupOptimizedOptimisticRollup”。一旦发布呼叫数据后,就可以通过一两个附加步骤来证明欺诈行为。下面将讨论此方法对信任/安全的影响。作者:DanielGoldman自由软件工程师、技术顾问、作家译者:Emma、SnowLu校对:Samuel
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。