弹性网络原生互操作性层, 允许弹性网络内的 ZK 链在协议层面直接进行交易和通信, 提供顺畅的原生跨链体验
- 原文链接:zksync.mirror.xyz/gtooCgtbTAmp...
- 译者:AI翻译官,校对:翻译小组
- 本文链接:learnblockchain.cn/article…
今年早些时候,我们介绍了我们对 弹性网络 的愿景——一个不断扩展的 ZK 链生态系统,由数学保障安全。其核心是一个原生互操作性层,使整个网络感觉像一个统一的链。
当今的区块链生态系统是分散的。用户、应用和流动性分散在众多链上,常常导致:
有限的可扩展性
分散的流动性
较差的用户体验
我们行业的解决方案是依赖第三方桥接,这在最好的情况下强迫信任假设,而在最坏的情况下被黑客攻击 。即使有额外的安全风险,资本仍然是分散的,用户体验也很差。
ZKSync 的互操作性通过允许弹性网络内的 ZK 链在协议层面直接进行交易和通信,改变了游戏规则——无需第三方桥接,无需复杂的用户体验——只有顺畅的原生跨链体验。与其他跨链社区方法相比,这降低了安全风险,提高了透明度,并且成本更低。
ZKsync 上的原生互操作性之所以有效,是因为共享桥接和 ZK 网关 。共享桥接将以太坊连接到 ZK 链,并持有弹性网络中的所有资金。ZK 网关是不同 ZK 链可以有效相互通信的地方。通过充当共享的会议点,网关在链之间提供快速且成本高效的消息,同时保持强大的安全措施。
有几种类型的跨链交易,复杂性各不相同。要理解 ZKsync 的原生互操作性如何工作,我们需要从四个层级进行探讨。
InteropMessage
是互操作性栈的最低层级——所有其他互操作性层的基础接口。它提供了链之间最简单的通信形式,使一个 L2 能够向另一个发送消息(有效载荷)。可以将其视为广播数据的一种方式,就像在说“嘿,这里发生了某事!”
工作原理:
当你创建一个互操作消息时,系统会添加重要的细节,例如:
你的 L2 地址
源链的 ID
一个唯一的消息编号以保持其独特性
结果是一个唯一的“消息哈希”,作为此消息的 ID。
使用默克尔证明来确认消息已发送和接收。该证明来自网关。网关是以太坊和 ZK 链之间的中间件,通过收集来自所有链的消息并将其组织成一个加密树(默克尔树),以确保每条链与相同的数据保持同步,从而促进 ZK 链之间的完全互操作性。
ZK 链不需要使用 ZK 网关;它们可以随时在使用 ZK 网关和直接结算到以太坊之间切换,而不会影响其链的安全性。但使用 ZK 网关更具成本效益和性能。
互操作调用超越了简单的消息传递。它们允许你在其他链上调用合约并触发操作,使跨链操作像在自己链上调用函数一样简单。
如何工作?
当进行调用时,它包括重放保护。重放保护确保每个调用都是唯一的,不能被执行多次。这防止了重复操作,并确保系统保持安全。
在目标链上,调用看起来像是来自本地账户。系统将发送者的地址和源链 ID 映射到一个别名账户,以简化权限管理,保持交互的安全性。
捆绑将多个调用组合成一个原子交易。这些指令(调用)必须按特定顺序执行,并且都共享相同的命运——要么全部成功,要么全部失败。这使得捆绑在复杂的跨链任务中强大且可靠。
它们如何工作?
捆绑中的每一步都与其他步骤相关联并按顺序执行。捆绑中的操作不能独立运行,确保一切按计划进行。
如果捆绑失败(例如,耗尽 gas),你可以重试或取消。请注意,失败不会立即通知源链。捆绑仍然可以在目标链上进行重试或取消。调用者可以通过查询网关来确定其捆绑的状态。网关跟踪所有捆绑的状态,记录它们是成功、失败还是未处理。
重试或取消可以直接在目标链上处理:
重试: 调用者或授权实体可以使用更新的参数(例如更高的 gas 限制或价格)重新运行捆绑。
取消: 捆绑中指定的 cancellationAddress
可以将捆绑标记为已取消,以防止进一步的执行尝试。
在互操作性栈的顶层是互操作交易,它们作为互操作捆绑的交付机制。它们处理捆绑的选择、管理 gas,并在目标链上运行,所有这些都来自源链。
工作原理
一个 InteropTransaction
包含两个指向捆绑的指针:
执行捆绑(你想要做的事情)
费用捆绑(如何支付 gas)
如果交易失败,你可以在不重新开始的情况下重试。
这简化了跨链的复杂工作流程,如代币交换,并消除了手动执行、gas 管理或切换 RPC 的需要。
共享流动性: 网络内的 ZK 链可以在不引入额外信任假设的情况下访问跨链流动性。
可组合应用: 一条链上的智能合约可以与另一条链上的合约进行交互,为去中心化应用解锁新的可能性。
统一用户体验: 用户可以通过单一的钱包确认在链之间进行交易,享受快速、低成本和简化的流程。
我们正在发布第一个公共原生互操作性演示,使用 ZKsync SSO 提供友好的钱包体验。该演示展示了在链 A 上将 \$AA 交换为 \$BB 的跨链交换,该交换通过链 B 路由。交换可能通过链 B 路由,因为链 B 具有更深的流动性、更快的结算或更低的成本。
自己试试。
你可以从 ZKsync 核心书籍中的 互操作文档 中了解更多信息。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!