【Cross-Chain】跨链桥架构

在区块链中,通常利用跨链桥技术来帮助用户实现跨链交易。所谓跨链桥应用一般使用托管者-发债者架构(custodian-debt issuer architecture)进行设计,在这种架构下,跨链桥主要由三个部分组成,分别是CustodianDebt IssuerCommunicator(如下图所示,这里源链以以太坊为例,目标链是任何支持智能合约的区块链)。

一、跨链桥组成

在跨链桥的组成部分中,三种角色所对应的含义为:

  • Custodian:资产托管者,用于锁定用户存入资产的智能合约,存在于源链中
  • Debt Issuer:债务发行者,铸造代币的智能合约,存在于目标链中
  • Communicator:通信器,负责两条链之间的信息传递,存在于链下

由于每个区块链都是一个封闭的生态系统,且智能合约不能主动(或定期)读取非交易数据,包括仅存在于其他区块链上的数据,因此,需要通过通信器读取以太坊上的触发事件,并在目的区块链上发出发债信号,以此实现跨链的数据传递。

二、跨链工作流

在托管者-发债者架构下,首先,用户通过函数调用将其 ETH 发送给以太坊上的资产托管者(即向对应智能合约中存储 ETH),接着,资产托管者发出信号以此表明已收到来自用户的 ETH,而通信器通过持续监听获取资产托管者发出的信号,并在检测到事件时向目标链上的债务发行者发送信号,最后债务发行者铸造债务代币 acETH 并发送到指定的用户地址,以此完成跨链的资金转移。

当需要逆转这一过程时,用户可通过债务发行者销毁目的地链上的债务代币 acETH,在销毁完成后,债务发行者发出完成信号,通信器通过监听目标链获取信号,并向资产托管方发出信号,表示该资产现在可以在源区块链上释放,最终,资产托管方将对应 ETH 发放至对应的用户地址上,该逆转过程如下图所示。

三、Oracle 结构

在上述跨链工作流中,通信器在获取和确认资产托管者发来的信号后,需要向目标链的债务发行者发送信号,在这个过程中,由于通信器处于链下,因此,涉及到将外部来源的数据写入区块链的过程,这里需要用到区块链系统中的一个称为 Oracle 的结构(如下图所示)。

Oracle 是将外部信息获取到区块链生态系统中的代理。在跨链桥的通信器向另一个区块链写入信号的过程中,主要利用了 Oracle Nodes 组件。这些 Oracle Nodes 用于向链上对应的 Oracle 智能合约写入一个特殊的信号,表明一个交易已经在另一个区块链上执行,以此实现链上链下的通信交互。

四、补充事项

(1)支付费用

首先,可能需要支付交易费用才能在源或目标区块链(或两者)上提交交易,例如,以太坊交易需要支付的 Gas 费用。其次,需要支付通信器软件的运行成本,例如,要调用以太坊进行接口,需要一个 RPC 端点,这个端点可以是付费服务,也可以是完整的以太坊节点。前者可能花费每次读或写到区块链的成本,而后者可能是昂贵的保持在线和最新。

(2)有效性验证

为了确保交易的有效性,在源链上执行完成相关交易操作后,通信器需要等待源链上的交易确认(确保交易在最长合法区块链上),之后才向目标链发起信号。

参考文献

猜你喜欢

转载自blog.csdn.net/zzy_NIC/article/details/129899747