至少一个合约来达到跨链互操作性。如果是比特币这样的非智能合约平台就无法使用。另一个,应用状态和逻辑以分布式的方式分散在所有这些应用合约中。在不同链之间同步状态和通信变得昂贵、缓慢,并且复杂化了回滚处理。为了解决上述问题,Zetachain 引入了 Omnichain 智能合约机制。 Omnichain 智能合约机制 Omnichain 智能合约是 ZetaChain 提出的一种简化跨链互操作性处理的方法。它主要通过以下步骤来处理跨链消息和实现跨链互操作: **1. 资产的接收:** 用户将本地资产(如 ERC20 代币)发送到链 A 的 TSS 地址,同时附上一条消息指定 [zEVMContractAddress, message]。这里的 TSS 地址可能是一个专门为了托管 ERC20 代币而设的合约。 **2. 观察和报告:**ZetaChain 的观察者(zetaclients)监测到这笔即将进行的跨链调用,并向 zetacore 报告。 **3. 调用和执行:**zetacore 调用 SystemContract 的 depositAndCall() 函数,该函数再调用指定的 zEVMContractAddress 的 onCrossChainCall() 函数。这个调用过程中: - zrc20 参数将被填充为管理用户在第一步中发送的外来代币的 ZRC20 合约地址。 - amount 参数将被填充为用户发送的代币数量。 - message 参数将是用户在交易备忘录中发送的消息。 **4. 合约逻辑的执行:**omnichain 智能合约通过 zContract(zEVMContractAddress).onCrossChainCall(zrc20, amount, message) 的方式被调用。应用合约应在 onCrossChainCall() 函数中实现其业务逻辑。 5. 处理合约执行结果: - 如果合约执行成功且没有外部资产输出,此次 omnichain 智能合约互动完成。 - 如果 zEVM 合约执行失败(发生回滚),则会创建一个 CCTX 以撤销入站交易,即将相同数量的外来代币退回给用户(扣除可能的费用)。 - 如果 onCrossChainCall() 有输出(例如,它触发了一些 ZRC20 的提款操作),则会创建另一个 CCTX 来指导和跟踪将外来资产转移到外部链上用户指定的地址。这些提款通常是简单的代币转移。 Omnichain 智能合约的显著特点是: 它只部署在 zEVM 上,所有逻辑和状态集中在一个地方,使得应用的开发和维护更为简单。 它不需要在外部链上部署应用智能合约,因此能够支持如比特币这样的非智能合约链。 由于所有的撤销操作都由 ZetaChain 协议处理,应用合约无需处理撤销逻辑。 一句话来描述的话,就是除了少量必要信息是 ZetaCore 和 ZetaClient 之间的内部通信外,其他跨链信息的处理规则都写入了 Zetachain 本身的智能合约里面。只要用户向目标链的指定地址发送一笔带有附加消息的转账,即可触发 Zetachain 本身智能合约里面的跨链操作。 更复杂的 dApp 可能更喜欢 Omnichain 智能合约,因为逻辑和状态在一个地方,而在传统消息传递中,则必须在不同链上广播消息和状态同步,这可能会导致更多的攻击面和更多的 Gas 费用(每个消息都需要支付额外的 Gas,需要发送的消息数量会增加以保持完全状态同步)。换句话说,对于开发人员来说,Omnichain 智能合约的行为就好像所有资产都在一个 链上(见下图)。 Zetachain 的签名授权机制 ZetaChain 的签名授权机制依赖于先进的多方门限签名方案(Threshold Signature Scheme, TSS),这种方案能有效地解决单点故障问题,增强整个系统的安全性。 **1. 门限签名方案:**ZetaChain 使用基于多方计算(Multi-Party Computation, MPC)的 TSS,这种方案允许多个验证者(validators)共同管理一个单一的 ECDSA/EdDSA 私钥,但又不会让任何单一实体或少数验证者完全掌握私钥。这种方式可以提供热钱包的便捷性和冷钱包级别的安全性。 **2. 密钥生成与分发:** 在 ZetaChain 中,私钥是通过无需信任中介的方式生成的,并在所有验证者之间分发。这意味着没有任何单个验证者或外部行为者在任何时候都能访问完整的私钥,从而确保了系统的安全性。 **3. 签名过程:**ZetaChain 采用的 TSS 是无领导的,即它通过分布式方式进行密钥生成和签名,这样可以保证在密钥生成或签名过程中不泄露任何私密信息。为了提高效率,ZetaChain 还采用了批量签名和并行签名技术,以提高签名者的吞吐量。 **4. 智能合约与资产管理:** 由于拥有 TSS 密钥和地址,ZetaChain 能够在连接的链上管理本地金库 / 资金池,包括比特币等非智能合约链。这实际上为比特币网络等添加了智能合约功能,使得用户可以把资产汇集在一起,让智能合约根据预设规则管理这些资产,如自动化市场做市商(AMM)池或借贷池等。 **5. 支持非智能合约链:**TSS 使得 ZetaChain 能够支持如比特币、狗狗币这样的非智能合约链,以及验证多重签名成本高昂的智能合约平台。 通过这种签名授权机制,ZetaChain 不仅能提供强大的跨链功能,还能确保交易的安全性和验证的去中心化,使其成为支持广泛数字资产管理和操作的强有力平台。 来源:金色财经lg...