链抽象技术简介
Web3 和 Web2 应用程序的一大区别在于程序使用的简易性。大多数用户不了解 Web2 应用程序背后复杂的运转机制。比如,用户发邮件时,只要简单输入内容后点击发送即可。系统会随即处理服务器间的通信、数据加密以及垃圾邮件等工作,用户全程无参与。同样,使用 UberEats 叫外卖时,背后也涉及餐馆菜谱梳理、支付通道以及配送追踪等十分流畅却复杂的流程。支付系统、消息收发服务和其他等应用程序均如此。所有这些背后的复杂技术都被抽象化处理,用户无法感知。
不仅如此,应用程序还在此基础之上增加了自动化的流程。奈飞(Netflix)不仅把底层的技术抽象化处理,还可以自动播放剧集下一集,观众连按钮都不用点了。这些功能都是为了尽可能地延长用户的使用时间,界面如果拖后腿,相当于把用户拱手于人。
Web2 应用程序已经笼络了数十亿规模的用户。Web3 的应用程序想要发展得好,必须要比前者更容易使用。但就目前的情况来看,Web3 好像只有像王昱珩(网友戏称水哥)这样高智商的人才能用一样。对于普通的用户来说,选择 Web3 应用程序十分困难,使用步骤更加复杂。用户面前摆着数不清地区块链、跨链桥以及其他连接各个链的基础设施。各种钱包、保护助记词等管理起来更是复杂至极。想要打造出搭载下一代消费者应用程序的平台,就要改变以上提到的种种现状。
链抽象技术
账户抽象技术受到关注有很多原因。它为简化 Web3 用户体验迈出了重要的一步。像通行密钥(Passkey)、账户恢复以及 Gas 费抽象化这些功能都是非常有价值的改进对象。但相较于整体的用户体验来说,这些改进也不过是杯水车薪。
最难的挑战在于用户不仅要面对账户问题,还要在琳琅满目的 Rollup、L1、跨链桥和 dApp 中做出选择,才能执行操作。碎片化的现状让用户使用应用的环境过于复杂且混乱。区块链抽象技术解决了这些问题,用户体验在最大范围内得到解决。目的在于设想出一个理想的交互状态,让用户使用 Web3 的体验就像 Web2 一样,不需要理解背后的区块链或者跨链桥的技术。
在理想环境里,Web3 应用程序的使用体验就应该像发一封邮件、点一个外卖那样简单。用户无需知道处理交易的区块链具体是哪个,也不用自己去选择正确的跨链桥,更不需要管理多个钱包,记下各种助记词。上述这些流程都应该放在后台,保证使用的顺畅即可。如此一来,用户就不用受到底层技术细节的困扰,可以专注于想做的活动。
为此,各大项目方提出了各自的解决方法。CAKE 框架、Near 协议、Particle 网络把这个问题分成了多个 Layer,每个 Layer 上只能解决一个问题。几乎无任何项目能打穿全部 Layer,只能专注在一个 Layer 上。问题总结起来包括账户统筹问题、路由问题、求解器问题以及桥的选择等。
Frontier 团队开发了CAKE 框架——这是一个三层架构,系统性地解决了上述各类问题。
权限层:该层负责管理账户和权限。包括智能合约钱包和代理服务,其目的是抽象化用户的交互,在使用便利性和用户控制之间保持平衡。
求解层:这一层主要关注求解器市场以及竞争。根据用户有关速度、成本和效率的偏好,找出最优解决方案,从而解决路由问题。求解器市场在竞争中不断优化,努力找出最佳的交易旅程。这些技术把整个决策过程自动化处理,减少了用户做决定时的认知负担,提升了整体的用户体验。
结算层:最后一层主要解决结算交互。该层利用跨链桥、预言机以及其他跨链解决方案,保证准确、有效地完成各种交易。这一层抽象化的对象是跨链交互的复杂度。
我们会在下述内容里具体比较不同的解决方案。ZetaChain 解决了不止一个问题。
宏观角度来看,ZetaChain 是一个基于 Cosmos SDK 的第一层区块链(L1),使用 CometBFT 作为共识机制。ZetaChain 上可以部署全链智能合约,让应用程序实现统一的使用体验。这是其核心价值主张。开发者只要部署单个合约,ZetaChain 就会安排好跨链的交互。在接下来的几个章节里,我们将介绍 ZetaChain 的运作原理,进一步理解其机制。随后,我们将介绍 2.0 版本的改进,重点介绍新的功能和优化内容。
ZetaChain 架构
ZetaChain 的组成部分及功能:
通用 EVM:改进版以太坊虚拟机(EVM)可用于构建全链应用程序。
通信机制:
全链:一种互操作性层,开发者可以构建全链 App,可从所连接的链中调用。
连接器 API:点对点跨链消息传输,支持任意数据和价值的转移。
ZRC-20 :全链同质化代币的标准。可以将原生 Gas 和所支持的 ERC-20 代币从所连接的各个链中发送到全链应用上,作为 ZRC-20 代币使用。ZRC-20 代币可以提回到所连接的链上。
TSS 签名者:担有更多职责的验证者,包括签名和监控出链交易。
TSS 地址:用于存入代币和发起跨链交互的特定地址。
ZetaChain 和 Near 协议、Lit 一样使用门限签名。门限签名机制(TSS)是一种密码学手段,多名参与者共同生成一个签名。参与者数量达到最小门限(例如, 5 人中有 3 人)时才能生成一个有效签名,每个参与者持有部分私钥。把私钥分散给多个参与者,能够增强安全性,防止单点故障的同时保障容错性。
观察者-签名者验证者在 ZetaChain 上运行两款软件:
ZetaChain 节点:区块链节点,处理跨链交易、管理 ZRC-20 的铸造和全链 App 的调用等。
ZetaChain 客户端:观察者-签名者所运行的链下程序,用于监控所连接的区块链上的交易,代表 ZetaChain 签名并广播连接链上的各个交易。
这些 TSS 签名者持续地监控所有所支持的各个链上的存币地址,保证交易成功时能够将信息传递出去,出发 ZetaChain 上的活动。他们还负责对出链交易进行签名,将其发送到其它链上处理。
这样一来,部署在通用 EVM 上的合约能够向 ZetaChain 外部发展。这些合约也能从所连接的链中调用。
入链通信:
用户可以在任何一个外部链上与建立在 ZetaChain 上的 dApp 交互。TSS 观察者监控用于原生 Gas 代币的特殊存款地址,以及一个用于 ERC-20 资产的 ERC-20 托管合约。向该存币地址或 ERC-20 托管合约发出的交易中嵌入了函数调用信息。TSS 观察者验证这些信息并将其发送到系统合约,后者会调用相应合约中的 OnCrossChainCall 函数来执行它。
出链通信:
ZetaChain 上的合约可以使用连接器 API 向连接的链发起调用。合约调用连接器合约时,提供链 ID、合约地址和消息等信息。ZetaChain 随即进行处理,并将这些详细的信息发送到目标链。目标链上的接收合约的“onZetaMessage”函数被调用。
这些机制确保了 ZetaChain 上的合约能够有效地向其它链发起和响应请求,dApp 的开发者和用户操作大幅度简化。
用户仅在前端触发 ZetaChain 和其它链之间的出入链通信。也就是说用户可以直接在前端交互,无需了解底层机制。
以上是 ZetaChain 的基础架构。下面来介绍一下最新版本 ZetaChain 2.0 及其扩展功能。
ZetaChain 2.0
ZetaChain 2.0 是新版本,包含了许多新功能,完善了先前的用户体验。它支持更多的兼容比特币地址,替换了连接器 API,全链能力得到了加强,还给用户提供了全链账户,用户体验得到了简化。
通用应用程序能直接调用连接链上的合约,全链应用成为可能。App 如今可以处理涉及多种资产和多个跨链的复杂交易,用户只需一步操作。例如,比特币用户可以触发 ZetaChain 合约,后者可以十分流畅地执行以太坊、BNB 和其他链上的合约。”
通用应用程序
ZetaChain 2.0 最大的新增功能之一是通用应用程序。ZetaChain 1.0 提供两个独立的功能:跨链消息传输和全链应用程序。使用连接器 API 在链间传输消息时,用户可以把 ZetaChain 用作中继器,在连接的链之间发送任意消息。通用应用程序可以通过全链功能接受来自连接链的调用,从而管理连接链上的同质化代币。
ZetaChain 2.0 将连接器 API 替换成了升级版全链功能,允许通用应用程序调用连接链上的合约。例如,用户可以质押 BTC,把 LST 转到 BNB 上,交换 LST,然后在 Polygon 上借贷,整个流程只需要一次交互即可。应用程序突破全链,成为通用应用程序,能够进行多步骤流程。
机制方面,网关(Gateway)将通信模式转变为中心—辐射模型,减少了成本和执行步骤。早期的连接器 API 方法更多的是点对点的通信,步骤更多、成本也更高。网关作为用户的入口,简化了交互过程。
以下是更详细的解释:
扩展全链功能:通用程序可以通过 ZetaChain 2.0 提取 ZRC-20 代币的同时,通过 withdrawAndCall 函数调用连接链上的合约。还可以在不提取代币的情况下调用连接链上的合约。
停用连接器 API:旧版本取消了为实现全链和跨链传输消息的独立 API,新版本提供一套统一连贯的 API,方便开发者搭建通用应用程序。
网关合约:新版本引入网关合约,起到连接链上单一入口的作用,开发者可以由此与通用应用程序交互。在过去,开发者需要把原生 Gas 资产转到 TSS 地址,再将 ERC-20 资产转到托管合约上。在新的版本中,开发者只需和网关合约交互即可。
合约直接质押 ZETA 代币功能:智能合约可以直接在链上质押 ZETA 代币。通用应用程序的构建将更为简便,实现去中心化的 ZETA 代币质押,无需依赖链下程序。
模块化代码结构:早期的版本把状态的转换和消息的传送逻辑捆绑在了一起,代码十分复杂。新版本将其拆分开来,简化了代码库,易于开发者管理和维护。
全链账户
用户可以更加轻松地管理跨链资产。新版本引入了 withdrawAndCall 函数,用户提取资产、调用合约时,只需要跨链进行一次交易即可。函数首先锁定 Gas 费,然后销毁用户账户中的指定代币,随即在目标链上执行后续操作。
ZetaChain 的 withdrawAndCall 函数把多个步骤合并为一个,简化了交易流程。首先,函数计算两个链(ZetaChain 和交易链)所需的 Gas 费,并转移。然后安全地销毁用户账户中指定数量的代币。WithdrawalAndCall 事件被触发,它会记录提取操作,并提供目标链上调用智能合约时需要的数据。最后,目标链上的后续具体操作会被执行。
整个过程步骤减少,也无需来回切换网络,跨链操作变得简单轻松。下面举个例子。某用户在 ZetaChain 上使用收益聚合器。他在取出代币后,转到了另一个链上,利用该链的智能合约执行了投资。亮点在于,从用户角度来看,整个过程只发生一次交易。
完整的 BTC 体验
ZetaChain 1.0 仅支持使用特定地址类型的交易,极为限制交互范围。新版本拓展了兼容性,囊括了更多类型的比特币地址——P2P KH、P 2 SH、P 2 WSH 和 P 2 TR。各种交易类型都变得更容易操作,更为用户友好。此外,新版本引入 Taproot(P 2 TR)和继续支持基于 SegWit 的地址(P 2 WPKH 和 P 2 WSH)后,用户的隐私会得到更好的保护,交易费更加低廉,交易效率也会大大提升。
比特币的交易类型
主要有以下三个方面的更新:
地址处理
更强大的解码功能:新版本的解码能力更为强大,可以针对不同格式的比特币地址(如 P2P KH、P 2 SH、P 2 WSH 和 P 2 TR)进行解码。这些解码功能十分重要,因为它需要识别每种地址类型、提取公钥哈希或脚本哈希等关键组件,并进行全面验证以确保准确性和安全性。
支持 Taproot(P 2 TR):团队还在处理 JSON RPC 等相关问题。和 ZetaChain 最开始支持的功能不同的是,这些地址类型具有像 Schnorr 签名和高级脚本等功能。为支持 Taproot,ZetaChain 创建了一种新的地址类型,叫做 Address Taproot。这种地址遵循相同的结构和标准,能与先有的基础架构融合,能保证和当前系统兼容。
创建交易
ZetaChain 2.0 版本现在给每一个比特币地址类型设置了特定的脚本,保证交易符合P2P KH、P 2 SH、P 2 WSH 以及 P 2 TR 等地址的特殊要求。这些脚本对于定义交易处理起到了关键作用,特别是像 P 2 WSH 和 P 2 TR 这样的 SegWit 地址,它们都有见证数据这样的特殊要求。
交易解析
解析逻辑得到了改进,可以统一处理 P2P KH、P 2 SH、P 2 WSH 和 P 2 TR 地址类型的特殊特征。系统能正确识别、提取和验证每种地址类型所需要的组件。
链相关的新增支持功能
ZetaChain 在通过了谨慎的治理流程,更新了软件后,增加了多条新链,拓展了整体网络。每一条新链的整合过程都十分顺利。目前,ZetaChain 团队正在考虑增加 Polygon、Base、Solana 以及 IBC 等链。
每个链都有自己的签名机制,新增这些链时的难度也不同。像以太坊这类 EVM 链更容易增加,因为它们的签名机制支持比较广泛。其他的链会有些难度。像比较新的链,如 Solana、NEAR 和 TON 通常使用 EdDSA(Ed 25519 曲线),不用 ECDSA(scep 256 k 1 曲线)。这对 TSS 模块来说是个难题,因为在 GG 18 和 G G20 中,ECDSA TSS 技术较为成熟,且经过了实际的检验。EdDSA TSS 还不够成熟。幸运的是,这些新链通常都有智能合约功能,能高效支持 scep 256 k 1 操作。ZetaChain 就可以使用相对更为成熟的 ECDSA TSS 技术来连接这些链。
此外,ZetaChain 网络中的观察者验证者需要为所有所支持的链运行节点。这样就可以验证不同链伤的交易。
ZetaChain 目前使用 跨链消息协议(Cross-Chain Messaging Protocol)与 ZetaClient TSS 和其他区块链通信。目前有提议引入 IBC 模块来增强这些通信,拓展全链合约的覆盖面,囊括 Cosmos 生态圈里的应用链。
其他动态
RPC:Zetachain 目前在对 Ethermint 模块进行分叉,从而拓展其功能并解决这些问题。Ethermint 已经更新到最新版本,支持最新的功能以及安全性。团队还在处理 JSON RPC 等相关问题。Ethermint EVM 模块的定制化和 RPC 兼容性的增强能更有效地处理跨链交易和 zEVM 合约交互。
限流机制:为了避免网络遭受不必要或恶意活动的影响,ZetaChain 采用了一个可以调节的限流机制。该机制能够根据当前网络状况和预设的规则动态调整交易速率。它管理交易流量,增强了网络的稳定性和安全性,防范像垃圾交易或闪电贷攻击等潜在威胁。这一新增功能不仅能避免网络的滥用,还能为用户维持稳定性和安全性。
ZetaChain 上的一般应用
ZetaChain 2.0 允许外部链调用合约,也可以从外部链上调用合约。利用其开发的应用程序,从底层上也具有类似的通用功能。应用程序开发的第一部分是创建一个包含函数调用细节的交易,发送到全链合约。dApp 的前端负责这一操作。TSS 观察者发送该笔交易,并且转发到 ZetaChain 上相应的合约。随后,这些信息被传输到有把关功能的 systemContract 上。该合约能够保证只有已经获得了授权的函数(如,OnCrossChainCall)才能出发下一步,进一步增强了安全性。目标合约里的 OnCrossChainCall 函数处理传入的消息,识别、执行所需功能。
成功执行这一步之后,结果会被处理,随后发至目标链上。用户会直接在目标链上的钱包上收到最终结果。从用户角度来说,这样的交互过程只涉及在源链上发起交易的行为,然后在目标链上接受结果而已。ZetaChain 在幕后处理了所有复杂细节,包括创建交易、验证、执行,整个跨链交互流程表面看起来十分简易。用户体验到的是流畅、直接的流程,只需看到他们签名确认的交易和最终结果,而 ZetaChain 的基础设施高效地管理了所有的中间步骤。
具体应用
原生 Swap
开发者可以将应用程序的功能集成到 ZetaChain 的通用合约中,从而开发出跨链 Swap 应用。用户先把原生 Gas 或支持的 ERC-20 资产转到连接链上的网关合约,附带通用合约的地址和消息(包括目标代币和收款方)。观察—签名—验证者会监控并处理该比交易。同质化代币模块会铸造 ZRC-20 代币,映射用户存入网关合约的代币,然后系统合约调用通用合约的 onCrossChainCall 函数。该函数接受 ZRC-20 代币、调用信息(包含连接链的 ID 和调用者地址)以及消息。随后,通用合约使一个可用的流动性池(默认 Uniswap v2 池或任何其他去中心化交易所合约)把收到的 ZRC-20 代币转换为目标代币的 ZRC-20 版本和目标链上的 Gas 代币的 ZRC-20 版本。最后,合约调用 ZRC-20 提现方法,销毁 ZRC-20 Gas 代币(以支付目标链上的 Gas 费用),并将目标代币的 ZRC-20 版本提现到目标链上,转化为原生资产。
质押
智能合约可以质押 ZETA 代币,这就简化了 ZetaChain 上开发流动性质押和在质押应用的流程。
在过去,质押类的应用需要链下的程序来监控用户将 ZETA 代币存入智能合约,为用户执行 ZETA 的质押。这种链下方式埋下了中心化的种子,也使得开发者很难构建既具有灵活性又去中心化的质押协议。
加上了 ZETA 代币质押功能后,智能合约本身就可以接受用户和其他合约的 ZETA 代币,使用链上的原生质押机制(如 Cosmos SDK 的质押模块)来质押,还可以查看质押状态、领取奖励。
通用应用可以利用这一功能接受来自连接链的代币,提供 ZETA 代币并代表用户质押,在链接链上通过质押转移的代币来获得收益。
NFT 应用程序
ZetaChain 支持通用应用程序直接调用连接链上的智能合约。开发者可以利用该功能开发更加创新的 NFT 应用。这种应用可以接收来自连接链的代币和消息、铸造 NFT,用户也能在 ZetaChain 和连接链之间来回转移 NFT。
ZetaChain 开启的全新应用新篇章
DeFi 应用可以通过 ZetaChain 的全链基础设施在多条链上运营,突破了单一链的局限。Web3 的一个关键优势就在于可组合性(composability),智能合约可以互动且构建在彼此之上。目前,合约的互动局限在单一链上。ZetaChain 将这种可组合性拓展到了所有的链上,甚至包括没有原生智能合约的链(例如比特币和狗狗币)。受益于全链抽象化,开发者会得到更多的应用场景, dApp 的创新有了坚固的基石。
全链财务管理
在多个区块链上管理财务是一项复杂的工作。一个组织的资产分布在不同的链上,在每个链上又有单独的账号时,管理会十分困难,处理不当还可能损失掉资产。财产得不到统一管理,财务负责人就必须处理多个账户,协调各个链上的利益相关者来签名,人工追踪各个网络上的资产。这种碎片化的管理方式加深了操作风险,财务人员无法高效管理、部署资产,能力受到限制。
组织可以利用 ZetaChain 的基础设施集中管理财务,同时保持区块链资产去中心化的本质。最关键的创新点在于可编程的 TSS 以及智能合约。
财务负责人只需要在 ZetaChain 上部署单个智能合约,自行编辑管理的逻辑即可。这个合约将用做多个链上的所有财务操作的集中管理枢纽。初始设置时,利益相关方只需在 ZetaChain 上提供一次密钥,这大大简化了审批流程。
设置完成后,ZetaChain 的智能合约可以编排不同区块链上的复杂的财务工作。资产只需要经过一次审批流程,就可以在 ZetaChain 上转移、分配或使用,完全不需要反复地让每个原生链的利益相关者来签名。
这种方法不仅限于资产的传输。智能合约上还可以直接编程财务规则、支出限额和审批门槛等,这就保证了应用在所有的链上都是一致的。不仅如此,这种方案带来了更多的可能性,像跨链资产再调整、优化收益等更为复杂的财务管理策略也能实现了。由于需要分别管理多个链上的账号,过去的技术无法无法实现上述功能。
全链投资组合管理
管理多链上的加密资产投资组合十分困难,用户在不同的网络上调整资产、追踪投资表现极为费力。ZetaChain 打造的统一平台简化了现状,能实现全链投资组合管理。
一个全链智能合约可以起到中心控制塔的作用,服务于所有类型的用户加密资产。合约使用 TSS 技术在不同的链上直接和账户交互。用户可以在 ZetaChain 智能合约上编程投资策略与规则。合约随即使用 TSS 在不同的区块链上执行交易、移动财产和调整投资组合。
这样的智能合约可以在多链上监测市场环境,自动调整投资组合,并且执行复杂的交易,无需人工干预。TSS 生成签名,这就可以在多链上安全地控制资产。
这种方式不仅实现了跨链操作的自动化,还能全景展现投资组合的表现。像跨链套利、多链挖矿这样复杂的投资策略也成为可能,过去的技术是做不到的。
新的用户很难完全掌握各个链的各种操作步骤。对收益感兴趣的用户会被这样的功能吸引,越来越多的新用户就会加入进来。ZetaChain 对多链操作的复杂性进行了抽象化,让更多普通的用户能够接触到更为高级的加密资产投资组合的管理。
原生资产交换
我们在前文中已经介绍了类似于 ThorChain 这种资产交换的应用程序,用户可以使用原生代币来存入和接收资产。从用户的角度来说,这个过程好比在中心化交易所存取资金一样简单。存币和提币只是连接链上的简单资产转移,因此这种方式相比起基于消息的这种昂贵的方式(需要调用合约,如验证消息等),成本要低得多。逻辑执行不再是跨链分段式的逻辑,而是全都集中在一个全链合约中。
跨链借贷
ZetaChain 2.0 可以增强跨链借贷功能,直接调用外部链上的函数。跨链借贷协议成为可能,它能够接受来自任何链上的借出方的存入资金,无需用户自己进行额外的操作。资金可以来源于流动性池、流动性质押资产等等,所支持的链的范围极广。借入方则可以横跨多个链来抵押资产,可选资产种类繁多,借贷生态十分灵活。BTC 原生借贷市场十分局限。跨链借贷则给开发者带来了新的机遇、开辟了新的市场,能够通过比特币获取收益,还可以用其他资产来借贷。ZetaChain 比 ThorChain 有更多的选择,同种代币的存取可以构建出不同的应用程序架构。
跨链资产再质押
支持链上的资产可以给其他链提供再质押的安全性,有点类似于 Eigenlayer 的方式。用户可以用各种资产(例如 BTC、ETH 等)再质押,但在目标链或者应用的某些特定条件下触发罚没机制。这种资金池式的安全模型让不同的链和应用形成一个多元化的再质押资产组合,提升了整体的安全性,整个生态圈也得到了更强的保护。
这种应用程序和 Exocore 较为相似,ZetaChain 上的智能合约编排各个关键的功能。这些合约充当各个模块,管理全面,例如 AVS 注册、质押委托追踪、处理存提代币,还能执行罚没机制。
用户在和系统交互时——无论是存入代币质押还是将资产委托给他方——各类交易都会被相应的智能合约记录。这保证了所有的用户活动都能被记录在 ZetaChain 生态中,并得到管理。
TSS 签名者积极监控验证者,保证其可靠性。如果验证者存在恶意行为,或用户发起提币行为,罚没模块会在原生链上罚没该笔质押款。
跨链清算
假设有个用户想要在不同的链上用资产来借贷,他和现有的应用程序要面临的问题就是难以有效地监控和管理资产的清算。只有持续不断地监控各个链上的资产、保证资产相关的执行足够迅速,才能尽可能减少协议的损失。ZetaChain 可以将资产锁定在 TSS 地址中,在源链上利用自动做市商或者去中心化交易所来清算资产。源链上的流动性通常比其他链上的包装代币更大。清算和跨链桥的时间会减少,而更大的原生流动性还带来了更好的汇率。TSS 观察者会持续监控这些持仓,ZetaChain 上的通用应用则跟踪这些持仓的状态。一旦资产价格达到清算价格,智能合约就会触发清算功能,由 TSS 签名人中继交易,最后在原生链上清算。
比特币赛道应用程序
ZetaChain 还可以实现像 Ordinal 这样的铭文市场、BRC 20 这类比特币资产的交换和借贷等。这些应用不仅可以和 ZetaChain 上的其他应用组合,还可以和支持链上的应用组合使用。ZetaChain 支持的普通智能合约的应用,还配备了比特币全链功能。
BTC 和 ETH 资产之间的借贷可以使用 TSS 地址。ZetaChain 上的应用程序可以部署为拥有底层逻辑的通用程序。如果用户像抵押 BTC 来借入 ETH,只需在原生链上存入 BTC,再用钱包签名即可。BTC 会锁定在 TSS 地址中,等待后续操作(提取或清算)。TSS 观察者会记录该交易,在 ZetaChain 上铸造 ZRC-20 版本的 ETH,随后将代币转移到以太坊链并交换成 ETH,最后直接转入用户账户。用户只要用自己的钱包存入 BTC,即可在 ETH 钱包中收到 ETH。完全可以当做中心化的交易所来用。其它像 Ordinal 市场、交换 App 的运作原理也如此简单。
跨链编排
链抽象化技术解决了诸多领域的问题,包括账户聚合、算法解决、编排、结算以及清算等。下面我们来探讨几个解决编排问题的方法,并和 ZetaChain 进行比较。
Agoric
Agoric 是一个用 JavaScript 编写的智能合约平台,其开发使用了 Cosmos SDK 工具包和 Comet BFT 共识引擎,还使用了 IBC 和 Axelar 与其它 Cosmos 链通信。Agoric 旨在吸引数百万名 JavaScript 开发者加入 Web3 领域。Agoric Orchestration API 抽象处理了跨链合约复杂的编排流程,简化了开发过程。
Agoric 的一个非常突出的功能就是独特的异步模型(async/await model)。部署在 Agoric 上的智能合约可以使用该模型与其他链在多个模块上交互、等待响应或执行任务。Agoric 发送到其它链上的消息包含诸如创建账户、函数调用等的指令以及所需要的参数。目标链处理完这些指令,返回结果后,Agoric 智能合约会继续执行其逻辑中规定的下一步操作。
Everclear(曾用名:Connext)
Everclear 是一个跨链桥,前身为 Connext,能够处理跨链工作流程和多个 L2 的再质押。Everclear 集成了 Connext SDK,让 xApp 可以跨链发送被称为 xcall 的特殊消息。源链和目标链上的 Connext 合约以及一个适配器合约共同管理这些消息,实现了跨链函数的调用。
xApp 利用 Connext SDK 可以生成并发送 xcall 消息,包含所有执行细节,如函数调用、资金、Gas 信息和其他数据。这些消息首先由源链上的 Connext 合约处理,然后转发给目标链上对应的合约。适配器合约在目标链上起到非常重要的作用,它在收到这些消息后会按需转换资产,参照正确的参数执行指定的函数。Connext 的系统支持嵌套的 xCall,这种嵌套状态类似于链间的回调,主要作用是验证状态的变化,并执行异步的后续操作。
Connext 因此就像跨链桥一样有效,可以在多个链之间执行合约函数,支持复杂的跨链工作流程。该工作原理和 ZetaChain 颇有些相似之处,函数的调用中继到目标链后被执行。
xERC-20 和 ZRC-20 代币比较
ZetaChain 和 Connext 各自开发了代币标准,即 ZRC-20 和 xERC-20 ,来支持跨链应用程序。
ZRC-20 代币是以太坊 ERC-20 标准的扩展版本,专门为 ZetaChain 的跨链功能设计。ZRC-20 代币只有在对应的 ERC-20 代币存入 ZetaChain 管理的 TSS 地址后,才会在 ZetaChain 上铸造。每个链的 ERC-20 代币在 ZetaChain 上的标记都是唯一的。举例来说,来自以太坊的 USDT 会显示为来自以太坊链的 ZRC-20 USDT,如果是来自币安智能链,则会显示成来自 BSC 的 ZRC-20 USDT。虽然这些代币都是 ERC-20 代币,但是 ZetaChain 将它们定位为不同的资产,但仍然可以互换使用。
相反,xERC-20 代币在不同的链上都维持其同质化的特点。所有的 xERC-20 USDT 代币都被视为相同的代币,不考虑其源链是哪个。这有助于把流动性集中起来,避免了 ZRC-20 代币被稀释的情况。同质化代币的跨链管理更加高效,xERC-20 代币可以由 xcall 消息发送,同时调用函数以并附带其它交易的细节信息。
Particle Network
Particle Network 在项目初期的关注重点在钱包和账户抽象基础设施上,当时满足了用户的需求。项目后来进一步拓展了技术栈,在 Particle L1 上增加了链抽象的关键组件,如去中心化 Bundler、Paymaster 和 Keystore 等,来管理跨链账户。Keystore 的想法源自維塔利克·布特林(V 神)针对解决多链账户问题的概念。
Particle 的抽象技术栈包括三个方面:
通用账户:这些账户通过集成新的用户操作结构、Keystore 和用于签名验证的默克尔树,升级了传统的智能合约账户。Particle L1 的角色类似于智能账户的中心化存储库,处理设置和密钥相关数据,同时在默克尔树中存储用户私钥的绑定信息。用户在发起交易时,通过默克尔证明来验证密钥所有权。Scroll、Keybase 和 Stackr 也提出了类似的方法。我们将在统一账户管理部分详细讨论 Keystore。
通用流动性:Bundler 节点网络会执行用户交易时所需的操作,例如代币交换、与流动性提供者互动等。用户可以跨链使用代币,即使不持有这些链的代币,也能轻松与新链交互。只需要一个签名,用户就能和多个区块链交互。通用账户和 Bundler 会管理交易、签名和路由。
通用 Gas 代币:用户发起交易时,操作界面会提示用户选择一个 Gas 代币。该代币由 Particle 的 Paymaster 合约处理,支付给源链和目标链。其中一部分费用会转换为 Particle 的原生代币 $PARTI,存入 Particle L1上。
这三种解决方案共同为开发者和用户打造了十分强大的抽象体验。用户即使不用管理多个账号或支付多比 Gas 费用给目标链,也能够进行跨链交易。以上方式都是为了让用户体验更加流畅。
NEAR
NEAR 的目标是提供无跨链桥的跨链体验,可谓独树一帜。它的方式是引入链签名、多链中继器和多链 Gas Station 以及去中心化的前端。
账户聚合能简化用户体验,只需要使用一个账号就可以在任何区块链上签署交易。NEAR 开发了一种叫做“Chain Signatures”的 多方计算(MPC) 协议,利用了该协议和 Eigenlayer 的验证者。协议可以再外部链上生成、管理账户,无需额外的密钥或地址。这些地址来源于现成的 NEAR 账户。我们会在统一账户部分具体讨论相关工作原理。
NEAR 和 Particle Network 比较相似,其多链 Gas Station 和中继器能够对外链的 Gas 费用进行抽象处理,简化用户的体验。用户只需要在 dApp 的前端交互,后台会处理包括编排、签名、Gas 支付、中继等一系列操作。
NEAR 最大的特点在于能够跨链转移资产的所有权,而不实际转移资产。这个流程的第一步是使用 MPC 网络在其他链上创建一个和用户 NEAR 账户关联的账户。资产不会被打包或转移。这些账户的所有权密钥会被转化为 NEAR 上的 NFT。用户可以在 NEAR 上交易这些 NFT,这就能够在不转移资产本身的前提下,转移其所有权。
NEAR 的高吞吐量能力让原生资产的交换不在话下,因为只有控制密钥被交换,资产并未转移。
Neutron
Neutron 使用了 CosmosSDK 搭建而成,重点解决跨链交易,通过关键组件实现无缝体验。跨链账户(ICA)管理远程 Cosmos 链上的账户,使其能够持有资产并执行交易。数据包转发中间件(PFM)在链之间转发 IBC 数据包,简化了跨链的通信。IBC Hook 允许智能合约在接收到 IBC 数据包时执行自定义逻辑。
用户使用 Neutron 进行跨链交易时,跨链交易(ICTX)模块起到中央协调者的作用。Neutron 上的智能合约向 ICTX 模块发送请求,指定目标链、跨链账户和要执行的操作。然后,ICTX 创建一个包含交易信息的 IBC 数据包,并通过中继器将其发送到目标链。远程链处理交易,并发回确认信息。利用跨链桥发送函数调用的方法与 Connext 和 ZetaChain 类似。
与 ZetaChain 的比较
大部分的跨链编排方案都涉及跨链桥的使用,需要将资产连同相应的函数调用信息以及参数一同转移。这些资产和指令在目标链上展开,由合约执行。ZetaChain 2.0 也使用这种方式,TSS 签名者和观察者中继相关数据,保证交易的安全性和准确性。
ZetaChain 允许 dApp 的开发者创建智能合约,利用 TSS 在多个链上管理资产。TSS 是可编程的,通过 dApp 的逻辑来实现。开发者可以为跨链资产管理和跨链自动交易定义复杂的规则。这种方式给全新的应用程序和协议带来了可能性。
ZetaChain 允许开发者在单个链上创建统一的状态和逻辑,改进了跨链应用。这和传统的跨链桥有本质上的不同,后者在多链上的操作是碎片化的。
应用程序可以利用 ZetaChain 把其状态和逻辑维持在一个地方,实现同步又精细的执行。跨链桥点对点的通信系统依赖于各种碎片化状态中的异步、事件驱动的流程,ZetaChain 的解决方案大大改善了这样的境况。
统一性能带来极大的好处。它降低了跨链应用的复杂程度。举例来说,像 Curve 这种自动做市商的执行会变得更加简单。开发者无需在多条链上操作,只需要编写一个智能合约即可,所有的逻辑都集中了起来。另外一个核心优势是可靠性。碎片化系统中的每一步都有可能在跨链交易的过程中带来潜在故障点。交易有可能中途终止,资金被冻。ZetaChain 消除了这些风险。交易只可能存在两种情况,成功或失败。交易失败时,资金会返回到原始状态。
如果交易需要回滚,通常在主链上可以迅速、轻松地完成。这是因为大部分状态和逻辑都集中在了一起。如果外部调用流程复杂,面临失败,应用程序可以采用异步回滚的方式。这对某些具体环境下的操作至关重要,比如代币交换中控制滑点的范围。在 ZetaChain 上,如果滑点超出允许范围,并提供了回滚的回调函数,则整个交易会回滚。这就保护了用户免受执行过程中市场条件变化带来的意外损失。
统一账户管理
区块空间在过去是稀缺资源,但现在由于替代方案 L1、以太坊上的 Rollup 以及应用链的出现,区块空间已经变得充足。应用程序现在分布在各个层上,为用户提供了许多选择。有些账户管理解决方案,如 Magicspend 和 Keystore Rollup,直接解决了这些问题。想要深入探讨这些内容,一篇报告的长度不足以说明一切。因此,我们将重点介绍 Near、Particle 和 ZetaChain 等统一解决方案以及它们的不同之处。
Particle Network
Particle Network 开发了 BTC Connect,让比特币用户体验账户抽象化的好处。虽然并没有在比特币区块链 L1 上直接实现账户抽象,但通过 L2 实现。这些比特别 L2 的解决方案使用了 Particle 的账户抽象基础设施的组建,例如 Bundler 和 Paymaster 等,用户可以享受无 Gas 费的交易,还能恢复账号,使用 Passkey 功能等。
BTC Connect 已接入 UniSat、OKX 和 Bitget 等比特币钱包提供商。用户和某个应用程序交互时,可以通过个人钱包链接 BTC Connect。随后,比特币 L2 上会自动生成一个智能账户。用户可以选择在比特币 L1 上和 dApp 交互,也可以把 BTC 桥接到 L2 上,使用 AA 钱包。BTC Connect 抽象化了整个流程,用户体验十分友好、流畅。
Near
NEAR 让用户只需一个账户即可在任何区块链上交易签名。NEAR 的账户模型融合了账户抽象技术。账户的名称十分易读,并且给不同的应用程序配置了不同的密钥,解锁相应的特定访问权限。NEAR 通过“链签名”(Chain Signatures)技术扩展了这一模型,不仅支持多链交互,还能让 NEAR 账户在其他链上创建和管理远程账户,用户无需分别单独管理这些账户。
该流程使用了 NEAR 验证者支持运行的 TSS 协议。这是一个创新的协议,验证者可以在不更改公钥或密钥份额的情况下加入或退出网络,使得 TSS 在签名过程中保持稳定性和可靠性,无需频繁的调整。
用户可以在每个链上创建新账户,TSS 网络起到签名者的作用,用户不需要维护这些账号的私钥。TSS 网络可以通过 NearID 为同一个链派生多个账户,进一步加强安全性和易用性。用户最终体验到的流程十分简——只要一个 NEAR 账户就能管理所有连接链,并利用 TSS 来签名。用户享受到了账户抽象技术的全部优势。
NEAR 和 ZetaChain 在账户管理上有一个关键区别。NEAR 在交互过程中对自身网络的依赖性极高。用户必须使用 NEAR 账户作为所有交互的起点,才能在其他链上创建账户或签名交易。其他链上的账户都来自 Near 账户,由 MPC 网络管理。相比之下,用户在使用 ZetaChain 时,可以保留在其他链上的已有账户,维持过去完整的控制权。用户可以在任何源链上发起交互,就算没有 ZetaChain 的账户,也能使用开发和部署在 ZetaChain 上的通用应用程序。这样一来,用户就无需创建多个账户,只要继续使用其他链上原来的账户即可。还有一点十分重要,那就是用户仍持有个人私钥,因此保留了对账户的完全控制权。
两个协议解决方案各有利弊。NEAR 的方式是把用户锁定在一个账户中,让该账户成为和所有其它链交互的入口,一定程度上简化了账户管理。ZetaChain 则让用户有更多的控制权,增强了管理账户的灵活性,用户可以在任何链上交互。至于哪个协议在未来会占优势,最终取决于用户的个人偏好——NEAR 一体化的账户方案,还是 ZetaChain 灵活的“个人自带”账户方案。
比特币再质押
比特币是规模最大且最安全的数字资产,这主要归功于其 PoW 机制。但受到可编程性的限制,比特币只能用在基本的交易上,用例极受限制。我们在前面讨论了 ZetaChain 基础设施是如何支持再质押和全链质押功能的,包括对比特币的支持。ZetaChain 还为比特币资产提供其它的全链应用,如借贷、原生代币交换以及 Ordinal 市场。任何由智能合约驱动的应用程序都能通过 ZetaChain 部署在比特币生态圈中。
再质押应用为将比特币的安全性扩展到其他应用和 PoS 链提供了可能性。我们将在下一部分探讨、比较一些其他将比特币安全性扩展到各种应用的方案。我们还将比较 ZetaChain 作为一个平台与比特币 L2 的区别。
Babylon Chain
Babylon 是一个使用了 Cosmos 技术,特别是 CometBFT 引擎开发的区块链,通过质押比特币增强 POS 链的安全性。想要质押比特币,就必须锁定代币,让验证者来管理。比特币链不像以太坊那样可以直接质押代币。一般来说,BTC 需要被锁定在多签名或门限签名 (TSS) 账户中,才能质押。然而,Babylon 使用了一种无需信任的方法。它使用比特币脚本将 BTC 锁定一段时间,在此期间,用户可以解锁和取消质押 BTC。罚没则通过可提取的一次性签名(Extractable One-Time Signatures,EOTS)来执行。
组件
可提取的一次性签名(EOTS)
限制条款
时间戳
限制条款(Covenant)
限制条款把 BTC 锁在一个 Vault 中,只有满足了特定条件后才会被释放。锁币使用的脚本操作码(Scripting Op-Code)可以是 OP_CHECKTEMPLATEVERIFY (OP_CTV)。比特币 PoW 机制的安全性能保证达到这些条件之前 BTC 一直是安全的。
EOTS:
验证者使用 EOTS 给 PoS 链的区块签名。这些签名是一次性的。如果一个验证者在同一个高度签了两个区块,出现冲突,EOTS 就会暴露该验证者的私钥,协议就可以削减其质押的 BTC。这惩罚了不诚实的行为,也鼓励了诚实的验证行为。
时间戳:
时间戳可以产生不可篡改的数据和交易记录,预防对 PoS 链的长程攻击。它能同步比特币和 PoS 链,保证数据的完整性,加快质押 BTC 的解锁。时间戳缩短了代币锁定的时间,用户能够快速提取资产,同时避免长程攻击。
Babylon 使用这些组件,为用户提供了一个无信任的再质押服务。
Stroom Network
用户可以通过 Stroom network 质押比特币,并获取原生 BTC 收益,无需锁定资金。用户还能获取流动性质押代笔,用于以太坊的 DeFi 协议,增加投资收益。核心理念是在闪电网络上使用比特币来提供流动性,并把产生的费用分发给用户、DAO 和节点运营商。
Stroom 跨链桥:该跨链桥连接比特币和基于 EVM 的区块链。用户将 BTC 存入 Stroom DAO 的金库之后,会在以太坊上收到 st BTC 或 bst BTC。这些包装的代币可以用在以太坊的 DeFi 协议,让用户赚取额外的收益。
Stroom 支持的闪电网络节点:这些节点使用用户的比特币存款来管理闪电网络的支付通道。节点无法直接访问 BTC,通道状态的变更需要验证节点的确认。通道管理由一个联邦控制的多签名设置和 Schnorr 签名来保障。验证节点还具有“哨塔”的作用,监督闪电网络节点的各种活动。
Stroom 验证节点这些节点使用 FROST 算法实施 Schonorr 门限签名,来确认操作,保证协议的安全性。它们各自独立验证事件,保证去中心化的特点和安全性。它们还存储通道状态、撤销密钥,方便在需要时更新闪电网络状态。作为由 DAO 管理的哨塔,节点通过集成的比特币全节点来监控闪电网络的通道。
tBTC
tBTC 是一个去中心化的跨链桥协议,让 BTC 能在以太坊上使用。用户可以把 BTC 锁在由 Threshold Network 控制的账户中,从而铸造 tBTC。这是一种 ERC-20 代币,能用在 以太坊的 DeFi 生态圈,为比特币用户带来更多使用场景。
跨链桥在每个周期随机选择操作员,保障了安全性。为了保障比特币存款的安全,tBTC 需要大多数操作员(通常是 100 个门限-ESDSA 支持的钱包中的 51 个)的一致同意。这就取代了中心化的中介,保障了一个去中心化、加密的系统。
用户要存入比特币时,需要使用 pay-to-script-hash,(P 2 SH)或 pay-to-witness-script-hash(P 2 WSH)的方式转到其中一个钱包里。交易里包含了用户的以太坊地址。操作员验证交易,并在以太坊上铸造 tBTC,把比特币转换为以太坊兼容的代币。
想要把 tBTC 兑换回 BTC,用户需要提供一个比特币地址。系统会扣除用户 tBTC 的余额,然后在提供的钱包地址里释放相同的比特币数量。
在 tBTC 跨链桥上开发的产品包括:
Mezo:Mezo 通过 tBTC 创造了一个经济层。它是通过质押 Mezo 和 tBTC 保证安全性的 PoS 网络,用户可以用于 BTC DeFi 的投资以及其他用例。
Acre:Acre 提供了一个 BTC 存入和取出的 比特币质押流程。用户存入 BTC 并获得 stBTC,代表了在 Acre vault 中对 BTC 的部分所有权。用户可以持有 BTC 的同时,持有 stBTC 保证流动性。Acre 将用户的 BTC 质押到各种 L2 网络中,来提供经济安全性,验证者可以获得 L2 的代币或 BTC 的奖励。用户可以在 Acre 上赎回自己的 stBTC 后获得奖励,也可以转回 BTC。
虽然这些方式都可以再质押,但仅限于再质押的目的。在 ZetaChain 上,用户不仅可以再质押,还可以和应用结合起来,例如借贷、代币交换等,而这样的操作可以在一个环境中实时同步,从而提高了资本的效率。应用程序还能接触到生态圈内其他应用程序的用户群。
和比特币 L2 的比较
比特币 L2 网络使用 MPC 跨链桥和包装资产,增加了比特币的用例。ZetaChain 则使用 TSS 来管理比特币网络上的地址,在自己的链上映射 ZRC-20 代币。与比特币侧链的 MPC 技术相比,TSS 更去中心化,这是因为范围更广、分布更为去中心化的 TSS 集合具有更高的拜占庭容错性。
不仅如此,ZetaChain 的 TSS 技术支持全链应用程序,可以和其他链上的合约组合。也就是说,ZetaChain 上的比特币应用能无缝和不同链上的多个合约交互。比特币的 L2 解决方案只能在自身的平台内实现可组合性。
虽然 BitVM 和 CatVM 跨链桥能在理论上去信任或让信仁最小化,但目前还无法真正实现。
展望用户体验和 ZetaChain 角色的未来
ZetaChain 这样的基础设施会在未来大大推进区块链上的用户体体验。下面我们来展望一下 ZetaChain 在这个过程中起到的各个作用:
无缝交互:用户体验的目前的发展方向是无缝和直观的特点。用户无法具体感知复杂的底层技术。ZetaChain 的链抽象技术就是实现这一目标的重要一环,区块链上的交互能像 Web2 应用那样简易。
统一的用户界面: 从根本上赋予跨链交互能力之后,应用程序可以给用户提供统一的交互界面,在单一的平台上管理多个链上的资产、执行交易和其他链交互等。这就大大提升了用户的整体体验。
应用生态系统的拓展:ZetaChain 支持更为复杂的跨链功能,应用生态系统也会因此而进一步丰富、发展。这些系统提供的服务融合度更高、可操作性更强,可以为用户提供全面的工具和功能。
成为主流的技术:用户体验的简化是推动区块链技术走向主流人群的关键所在。ZetaChain 避免了为用户降低了复杂的技术门槛,大大加强了应用程序的可用性,在把不懂技术的用户引入区块链世界的过程中发挥重要的作用。
创新用例:在多个区块链上执行复杂的操作变为可能,更多的创新用例也会如雨后春笋般涌现。开发者如今可以利用这些工具,创造出过去无法实现的应用程序,进一步推进该领域的创新。