Zircuit 是一款兼容 EVM 的零知识汇总协议,旨在为 Web3 的无限潜力提供动力。通过开创性的 Layer 2 研究支持,Zircuit 独特的混合架构将久经考验的基础设施与零知识证明技术相结合,为开发者提供了兼具高性能和安全性的解决方案。本文将详细介绍 Zircuit 的核心优势、技术架构、交易流程以及安全性保障。
选择 Zircuit 的理由
先驱研究
过去一年半以来,Zircuit 团队一直处在 L2 研究的前沿,涉及 Rollup 安全工具、Rollup 压缩和可扩展加密技术等多个领域。这些研究成果不仅为项目赢得了以太坊基金会的多项 L2 研究资助,也为 Zircuit 的技术优势奠定了坚实基础。
序列器级别安全
Zircuit 通过在序列器级别监控内存池中的恶意交易,防止其被纳入区块,从而保护用户的安全。这种方法超越了传统的应用程序和智能合约级别的安全措施,直接作用于底层序列器级别,称为“序列器级别安全”(SLS)。这种创新的安全模式确保了用户在享受高速交易的同时,也能享有高度的安全保障。
安全原生桥
Zircuit 的桥接基础设施采用了顶级的安全架构和最佳实践,既简单易用又最大程度地保障了用户资产的安全。规范桥接机制使得用户可以轻松地在不同链之间转移资产,而无需担心安全问题。
尖端性能
Zircuit 通过将电路分解为专用部分并汇总证明,实现了更高的效率和更低的运营成本。结合更大的交易批次和加速的证明处理,用户可以享受到更快、更便宜的交易体验。
以太坊应用程序兼容性
Zircuit 完全兼容以太坊应用程序,支持所有主流钱包(如 MetaMask)以及开发工具(如 Hardhat)。用户无需学习新的编程语言或框架,即可无缝部署以太坊 dApp。
架构与概念
Zircuit 基于一种创新的混合架构,结合了久经考验的汇总基础设施与零知识证明技术。以下是 Zircuit 架构中的几个核心概念:
桥接交易
桥接交易是指需要桥接组件管理的跨链交易。通常情况下,桥接交易会将资产锁定在一条链上,并在另一条链上铸造相应的资产。例如,存款交易是指从以太坊到 Zircuit 的资产转移,而取款交易则是相反方向的转移。
跨域消息
跨域消息是指在不同链之间传递的数据。这些消息通常包含对另一条链上合约的函数调用信息,例如 ERC-20 代币转移。
发送跨域消息
发送跨域消息是指将消息放置在源链上相应智能合约的状态下,以便进一步处理。例如,可以从以太坊向 Zircuit 发送跨域消息。
传递跨域消息
传递跨域消息是指将已经在源链上发送的消息以交易的形式应用到目标链上。这是跨域消息传递的最终步骤。
重放跨域消息
重放跨域消息是指将现有的以太坊到 Zircuit 的消息以不同的 gas 限制重新发送到以太坊上的跨域消息传递合约。值得注意的是,重放不适用于 Zircuit 到以太坊的方向。
序列器
序列器是为 L2 执行引擎提供交易的链下组件。它根据先前发布的批次和状态根派生出 L2 的状态,并观察存款交易。作为主汇总节点的一部分,序列器还监视以太坊,以更新 L2 上的相关值。
批量提交器
批量提交器是一个链下组件,负责将由序列器确定的交易批次写入以太坊。批量提交器为 Zircuit 提供以太坊上的完整数据可用性,确保用户交易的软承诺。
验证者智能合约
部署在以太坊上的智能合约,负责接受或拒绝为 L2 区块批次构建的零知识证明。
证明器
证明器是负责生成状态转换或部分状态转换的零知识证明的链下组件。证明器可以非常具体,也可以非常通用。特定证明器可能证明 Keccak 操作,而更通用的证明器可能证明区块构造正确。
证明聚合
证明聚合是指收集多个证明(可能来自多个不同的电路)并为所有这些证明创建单个证明的过程。Zircuit 的证明器可以将其他证明作为输入,并聚合其他证明以创建单个输出。
提议者
提议者是一个链下组件,负责将经过验证的更新写入 L1 上的 Zircuit 状态。在证明者为一批区块生成有效性证明后,提议者为 L2 写入新的状态根。它通过将批次内的状态转换计算出的状态根和有效性证明提供给以太坊上的 Zircuit 合约来实现这一点。
区块状态
L2 区块可以具有以下状态之一:
等待证明:表示排序器已生成该区块,但证明者尚未为包含该区块的批次提交状态根。
已证明:表示排序器已创建该区块,并且包含在已提交给验证者合约的区块批次中,并附带有效性证明。
交易状态
L2 交易可以具有以下状态之一:
成功:如果顶级调用成功。
待处理:如果交易在 L2 的内存池中。
失败:其他情况。
建筑学
Zircuit 基于一种新颖的混合架构,将久经考验的汇总基础架构与零知识证明技术相结合。其架构包括:
排序器:处理交易以构建 L2 区块。
证明器:为这些区块生成有效性证明。
智能合约:与 L1 上的系统交互。
这种设计使得 Zircuit 成为一种具有快速终结性的 zkEVM 汇总,无需对提款交易进行挑战期。
交易流程
Rollup 上的交易来源
Rollup 上的交易可能源自 L1,也可能直接源自 L2。
源自 L1 的交易:可能是存款交易,将 ETH 或其他资产桥接到 L2 上,或跨域函数调用。
源自 L2 的交易:可能是 L2 账户之间的资产转移,或从 L2 上有资金的账户调用部署在 L2 上的合约。
无论是哪种情况,交易都由 rollup 节点处理,该节点由排序器、执行引擎和批处理器组成。
序列器功能
序列器通过添加 L1 上的智能合约事件生成的存款交易来指导执行引擎哪些交易应该放在一个区块中。排序器选择交易并对其进行排序,以准备构建区块。
批处理程序
批处理程序将 L2 交易批次提交给 L1,以提供用户完整的数据可用性。用户可以使用这些数据,因为这是所谓的软承诺,即他们的交易已完成,但尚未被视为最终承诺。
执行引擎
执行引擎按批处理交易并生成新的 L2 状态。执行引擎通过将这些交易放入 L2 区块中来处理这些交易。
证明器处理
L2 区块由 Zircuit 证明器处理,每个证明器都有特定的角色。例如,一个证明器可以证明交易已正确执行,而另一个证明器可以证明相关的 Keccak 操作已正确执行。Zircuit 利用并行证明生成来快速生成证明,并通过证明聚合生成可在链上验证的单一证明。
证明验证
通过智能合约在以太坊上验证 L2 区块批次的证明。验证成功后,相关合约会更新 L2 状态根,记录刚刚验证证明的批次中包含的 L2 区块所包含的更改。此时,这些 L2 区块被视为最终区块,可以从 L2 提款,无需额外延迟。
存款与 L2 交易
存款交易
存款交易将 Ether 或 ERC-20 代币等资产从以太坊转移到 Zircuit。存款交易是通过调用 L1 上的智能合约来发起的。可以使用 L1StandardBridge 合约或 OptimismPortal 合约来存入 ETH。L1StandardBridge 合约通过调用适当的函数来存入 Ether,OptimismPortal 合约通过实现 receive 函数来桥接 Ether。
只有 L1StandardBridge 合约可以用来桥接 ERC-20 代币,ERC-721 代币可以通过 L1ERC721Bridge 合约桥接。
L2 交易
L2 交易是源自 Zircuit 本身的交易,例如账户之间的 Ether 转移,或 Zircuit 上的智能合约调用。这些交易通过 RPC 调用或钱包发送到链上,并直接由 rollup 节点处理。
一旦 rollup 节点观察到存款或收到 L2 交易,它就会通过其序列器功能构建包含这些交易的区块。
提款
提款交易
提款交易将 ETH 等资产从 Zircuit 中取出并返回到 L1。提款交易首先通过向合约发送 L2 交易 L2StandardBridge 并调用相应函数来启动。
当包含 L2 提款交易的状态根与相应的证明一起包含在 L1 中时,提款即可完成。证明对于完成提款功能是必要的,因为它确保提取资金的账户首先拥有资金。
序列级安全性 (SLS)
序列级安全性
Zircuit 通过在序列器级别监控内存池中的恶意交易并阻止其被纳入区块,保护用户的安全。与传统的应用程序和智能合约级别的安全措施相比,Zircuit 的 SLS 方法直接作用于底层序列器级别。
SLS 工作原理
SLS 方法通过以下步骤实现:
交易选择:排序器选择可能包含在即将生成的区块中的交易列表。
链端并行模拟:使用区块链末端的当前状态对每笔交易进行独立模拟。
交易依赖性分析:确定所有交易之间的依赖关系。
独立交易并行检测:对于不依赖其他交易的交易,排序器可以对其模拟结果进行并行检测。
交易纳入:排序器通过纳入所有被识别为良性的交易来最终确定区块。
恶意检测
恶意检测通过以下步骤完成:
排序器选择交易:排序器选择可能包含在即将生成的区块中的交易列表。
链端并行模拟:使用区块链末端的当前状态对每笔交易进行独立模拟。
交易依赖性分析:确定所有交易之间的依赖关系。
独立交易并行检测:对于不依赖其他交易的交易,排序器可以对其模拟结果进行并行检测。
交易纳入:排序器通过纳入所有被识别为良性的交易来最终确定区块。
恶意检测算法
Zircuit 使用程序分析、机器学习和基于规则的方法来识别恶意交易。
隔离释放标准
在隔离期间,交易不会被执行,也不能被纳入区块。一旦交易满足退出条件,就会从内存池中删除;如果交易满足释放条件,就会从隔离中释放。
具体的退役标准和释放标准由排序器定义。例如,时间标准表示排序器为用户提供的对恶意交易做出反应的时间。
交易执行
从隔离中释放后,排序器可以考虑在形成下一个块时包含该交易。对于由于最初对当前链状态定价过低而重新提交的交易,不应再次隔离该交易。
对建造者的要求
SLS 协议
SLS 协议在 Zircuit 中原生实现。然而,SLS 是一种由 AI 驱动的尽力而为的服务,可能会出错。因此,鼓励开发人员遵循最佳工程实践并仔细检查其代码的安全性。
定价信息
SLS 需要定价信息来检测恶意行为并保护资产。Zircuit 上原生部署的代币应在 CoinGecko 上列出。建议部署在其他网络并桥接到 Zircuit 的代币通过 Discord 联系 Zircuit 团队,以确保快速纳入预言机的定价系统。
Gas 定价与交易费
执行 Gas 费
Zircuit 交易费用由执行 Gas 费用和 L1 数据费用组成。交易的总成本是这两项费用的总和。
执行 Gas 费:交易的执行 gas 费用与以太坊上相同交易的费用相同。
基本费用:交易必须支付的每单位 gas 的最低价格,才能将其纳入区块。
优先收费:在基本费用之上支付的每单位 gas 价格,可以设置为 0。
L1 数据费:源于所有 Zircuit 交易的交易数据都发布到以太坊。
L1 数据费
L1 数据费是 Zircuit 交易费中唯一与以太坊交易费不同的部分。此费用源于所有 Zircuit 交易的交易数据都发布到以太坊,以确保交易数据可供节点下载和执行。
交易状态
待办的
当交易被发送到排序器时,它首先显示为 pending。在此阶段,交易已被排序器接受,但尚未添加到区块中。此状态意味着交易正在等待纳入最终将提交给第一层的一批交易中。
隔离
Zircuit 通过监控内存池中的恶意交易并阻止其被纳入区块,在序列器级别保护用户。这种新颖的方法意味着我们的序列器会在交易在第二层完成之前仔细检查交易是否存在潜在的恶意意图。
序列器已确认/不安全
当排序器将交易添加到区块中,但该区块尚未发布到第一层时,交易将变为“排序器确认”或“不安全”。此状态意味着交易包含在第二层链上的临时区块中,但尚未通过锚定到底层第一层而得到完全保护。
发布至以太坊/安全
一旦交易被排序器纳入区块,且该区块已发布到底层第一层,但尚未最终确定,则该交易被视为“安全”。
支持的交易类型
EIP-155
Zircuit 确实支持符合 EIP-155(包括链 ID)的标准旧式交易。目前,Zircuit 不支持 EIP-155 之前的交易(没有链 ID)。
EIP-2930
Zircuit 支持 EIP-2930 交易,通过引入“访问列表”交易进一步优化 gas 费用并提高交易成本的可预测性。
EIP-1559
Zircuit 支持 EIP-1559 交易,引入了一种新的交易定价机制,旨在提高费用市场效率。
桥接节流
桥接节流
为了最大限度地保障用户安全,Zircuit 在标准桥上启用了桥接节流功能。桥接节流意味着有意限制资产在不同网络间流动的速率。控制此速率是桥接的一项关键安全措施,因为大量提款可能是潜在漏洞或黑客攻击的结果。
节流机制
节流机制以流式方式实现,限制资产随时间推移的吞吐量。例如,每小时提款限额为 100 ETH。提现后,将无法立即提取更多资金。每 10 分钟,限额的 1/6(约 16.67 ETH)就会变为可用。
结语
Zircuit 通过其独特的混合架构和先进的技术方案,为 Web3 生态系统带来了全新的可能性。无论是从性能、安全性还是易用性方面来看,Zircuit 都是一个值得信赖的 Layer 2 解决方案。随着 Zircuit 的不断发展和完善,我们期待它在未来为比特币和以太坊生态系统的繁荣贡献力量。
声明:本网站所有相关资料如有侵权请联系站长删除,资料仅供用户学习及研究之用,不构成任何投资建议!