除了验证区块外,还有其他三个关键用例需要更高效的无状态验证:
内存池:当交易被广播时,P2P网络中的节点需要在重新广播之前验证交易是否有效。如今验证包括验证签名,还包括检查余额是否充足和前缀是否正确。在未来(例如,使用原生账户抽象,如EIP-7701,这可能会涉及运行一些EVM代码,这些代码会进行一些状态访问。如果节点是无状态的,则交易需要附带证明状态对象的证明。
包含列表:这是一个提议的功能,允许(可能规模较小且不复杂的)权益证明验证者强制下一个区块包含交易,而不管(可能规模较大且复杂的)区块构建者的意愿。这将削弱有权势者通过延迟交易来操纵区块链的能力。不过,这需要验证者有办法验证包含列表中交易的有效性。
轻客户端:如果我们希望用户通过钱包访问链(如Metamask、Rainbow、Rabby等),要做到这一点,他们需要运行轻型客户端(如Helios).Helios核心模块为用户提供经过验证的状态根。而为了获得完全无信任的体验,用户需要为他们所做的每个RPC调用提供证明(例如,对于以太网调用请求(用户需要证明在调用过程中访问的所有状态)。
所有这些用例都有一个共同点,那就是它们需要相当多的证明,但每个证明都很小。因此,STARK证明对它们并没有实际意义;相反,最现实的做法是直接使用Merkle分支。Merkle分支的另一个优点是可更新:给定一个以区块B为根的状态对象X的证明,如果收到一个子区块B2及其见证,就可以更新证明,使其以区块B2为根。Verkle证明也是原生可更新的。
Verkletrees
JohnKuszmaul关于Verkletree的原始论文
Starkware
Poseidon2paper
Ajtai(基于晶格硬度的替代快速哈希函数)
Verkle.info
剩下的主要工作是
1.关于EIP-4762后果的更多分析(无状态gas成本变化)
2.完成和测试过渡程序的更多工作,这是任何无国籍环境实施方案复杂性的主要部分
3.对Poseidon、Ajtai和其他STARK-friendly哈希函数的更多安全分析
4.为保守(或传统)哈希进一步开发超高效STARK协议功能,例如基于Binius或GKR的观点。
此外,我们很快就会决定从以下三个选项中选择一个:(i)Verkle树,(ii)STARK友好哈希函数以及(iii)保守哈希函数。它们的特性可大致归纳在下表中:
除了这些标题数字,还有其他一些重要的考虑因素:
如今,Verkle树代码已经相当成熟。除了Verkle之外,使用其他任何代码都会推迟部署,很可能会推迟一个硬分叉。这也没有关系,尤其是如果我们需要额外的时间来进行哈希函数分析或验证器实现,或者我们有其他重要的功能想要更早地纳入以太坊。
使用哈希值更新状态根比使用Verkle树更快。这意味着基于哈希值的方法可以降低全节点的同步时间。
Verkle树具有有趣的见证更新属性Verkle树见证是可更新的。这个属性对mempool、包含列表和其他用例都很有用,而且还可能有助于提高实现效率:如果更新了状态对象,就可以更新倒数第二层的见证,而无需读取最后一层的内容。
Verkle树更难进行SNARK证明。如果我们想把证明大小一直减小到几千字节,Verkle证明就会带来一些困难。这是因为Verkle证明的验证引入了大量256位操作,这就要求证明系统要么有大量开销,要么本身有一个定制的内部结构,其中包含256位的Verkle证明部分。这对无状态本身不是问题,但会带来更多困难。
如果我们想以量子安全且合理高效的方式获得Verkle见证可更新性,另一种可能的途径是基于lattice的Merkle树。
如果在最坏的情况下,证明系统的效率不够高,那么我们还可以利用多维gas这意料之外的工具来弥补这种不足:为(i)calldata;(ii)计算;(iii)状态访问以及可能的其他不同资源设定单独的gas限制。多维gas增加了复杂性,但作为交换,它更严格地限制了平均情况和最坏情况之间的比率。有了多维gas,理论上需要证明的最大分支数可能会从12500减少到例如3000。这将使BLAKE3即使在今天也(勉强)够用。
多维gas允许区块的资源限制更接近于底层硬件的资源限制
另一个意料之外的工具是将状态根计算延迟到区块之后的时隙。这样,我们就有整整12秒的时间来计算状态根,这意味着即使在最极端的情况下,每秒也只有60000哈希数的证明时间是足够的,这再次让我们认为BLAKE3只能勉强满足要求。
这种方法的缺点是会增加一个时隙的轻客户端延迟,不过也有更巧妙的技术可以将这种延迟减少到仅为证明生成延迟。例如,证明可以在任何节点生成后立即在网络上广播,而不是等待下一个区块。
解决无状态问题大大提高了单人定点的难度。如果有技术能降低单人定点的最低平衡,如OrbitSSF或应用层策略,如小队定点,这将变得更可行。
如果同时引入EOF,多维gas分析就会变得更加容易。这是因为多维gas最主要的执行复杂度来源于处理不传递父调用全部gas的子调用,而EOF只需将此类子调用设为非法,就可将这一问题变得微不足道(和本机帐户抽象将为部分gas的当前主要使用情况提供一个协议内替代方案。
无状态验证和历史过期之间还有一个重要的协同作用。如今,客户端必须存储近1TB的历史数据;这些数据是状态数据的数倍。即使客户机是无状态的,除非我们能解除客户机存储历史数据的责任,否则几乎无存储客户机的梦想将无法实现。这方面的第一步是EIP-4444,这也意味着将历史数据存储在torrents或门户网站PortalNetwork中。
以太坊区块验证的长期目标很明确应该能够通过以下方式验证以太坊区块:(i)下载区块,或者甚至只下载区块中数据可用性采样的一小部分;(ii)验证区块有效的一个小证明。这将是一个资源占用极低的操作,可以在移动客户端、浏览器钱包中完成,甚至可以在另一个链中完成(没有数据可用性部分)。
要达到这一点,需要对(i)共识层(即股权证明)和(ii)执行层(即EVM)进行SNARK或STARK证明。前者本身就是一个挑战,应该在进一步不断改进共识层的过程中加以解决(例如,针对单槽终局性)。后者需要EVM执行证明。
以上就是The Verge是什么?以太坊可能的未来The Verge的全部内容,望能这篇The Verge是什么?以太坊可能的未来The Verge可以帮助您解决问题,能够解决大家的实际问题是非常好学习网一直努力的方向和目标。