连接 Corda 到 Solana 的无权限世界





5.00/5 (1投票)
本博客讨论了将 Corda 等私有许可网络连接到 Solana 等公共区块链系统的可能性。
随着 SDX 在 R3 的 Corda 区块链上发行其首个面值为 1.5 亿瑞士法郎(1.62 亿美元)的数字债券,我们的客户对理解实现 T+0 交易结算的整个架构的需求日益增长。
在与我们的 Corda 社区首次讨论此数字债券时,我们被问到一个问题——如何在 Corda 区块链上以合规的方式结算我的交易,但同时,一旦您在 Corda 网络上拥有某个资产,您可能希望在其他网络上进行交易或将其用作抵押品。您该如何做到这一点?本博客讨论了将 Corda 等私有许可网络连接到 Solana 等公共区块链系统的可能性。
互操作性根据用户的需求可以有很多含义。在这种情况下,它定义了共享两个网络数据的需求——这涉及到查询其他网络上的某些信息、执行原子互换以及在网络之间(使用桥接器)转移资产等操作,仅举几个用例。本博客将通过包装资产和桥接器来介绍将资产从 Corda 转移到 Solana(反之亦然)的过程。
信任桥接架构
在深入解释我们的信任桥接架构之前,让我们先来了解包装资产。
包装资产

我们将使用代币化来包装资产。资产代币化是指在区块链平台上表示该资产,并由智能合约进行管理。包装资产是在一个区块链平台上发行的代币,代表着另一个平台上的资产。发行的包装资产具有与其基础资产等同的价值。在区块链上发行其包装资产之前,真实世界的资产将被锁定,从而防止双重花费。
桥梁

通常,托管方是在进行交易之前接收代币的实体。托管方将持有的代币保管,直到满足特定条件。在托管方一侧锁定代币由部署在托管方节点上的智能合约自动处理。
桥接器也是此提议架构中的一个实体。桥接器既是技术组件,也是系统中的参与者(验证者)。它是在 Solana 网络上验证资产的发行,或通过向交易提供签名来在 Solana 网络上赎回资产的实体。从技术上讲,桥接器和托管方可以是同一个实体。这取决于托管方是双方的同一实体还是不同实体。
对于此提议的架构,我们假设桥接器和托管方是不同的实体。此外,为简化起见,我们假设在 Solana 端,托管方和发行方将由同一方代表,但在 Corda 端则为不同的实体。Solana 端托管方执行上述常规托管任务,因此在转移时,资产由托管方负责。
通过此提议的架构,我们改进了从 Corda 向 Solana 发行资产的桥接架构。在 Corda 中,我们利用了一个称为“抵押”的功能,它将资产锁定在持有者一方,并且直到托管方一侧满足特定条件才会转移到托管方,从而降低了持有者面临托管方破产的风险。
让我们来看看提议的从 Solana 到 Corda 以及从 Corda 到 Solana 的资产转移过程
从 Corda 到 Solana 的资产转移
步骤 1:转移初始化

当 Alice 希望将她的代币从 Corda 转移到 Solana 时,她会创建一个锁定状态并向托管方提交转移请求。她将她的代币抵押以转移相对于此锁定状态。此锁定状态的合同定义了允许解锁代币的条件,例如,验证者(桥接器)提供的等效 Solana 代币发行证明。由于代币是通过抵押锁定的,因此 Alice 不会面临双重花费的风险。
步骤 2:Solana 代币发行

Corda 的托管方节点通过查看其金库检测到此请求,相应的 Solana 托管方将在 Solana 网络上向 Alice 发行等效代币。
步骤 3:发行证明

一旦在 Solana 上发行了代币,桥接器就会生成一个交易发行证明并对其进行签名。
众所周知,无许可区块链的最终性不是即时的,我们需要等待 x 次确认才能认为交易是最终的。在本例中,我们将等待 32 个区块,然后桥接器才签署最终确认。
步骤 4:转移最终确定

最后,一旦桥接器在 Solana 网络上确认了代币发行,Corda 托管方就可以释放锁定的代币,这些代币将从账本中移除。
从 Solana 到 Corda 的资产转移
步骤 1:转移初始化

当 Alice 希望将她的资产从 Solana 转移到 Corda 时,她会创建一个临时账户,将她想要转移的代币移到此临时账户,并将此账户的所有权分配给托管程序(使用 PDA)。
她通过一条指令告知托管方她的意图。该指令包含是否已初始化临时账户、代币数量、临时账户公钥、初始化者公钥以及 Corda 上的目标公钥等详细信息。
步骤 2:代币退出

当托管方注意到此指令时,代币将被兑回。
步骤 3:退出证明

一旦在 Solana 上兑回了代币,验证者(桥接器)就会创建退出交易的证明。
步骤 4:转移最终确定

在桥接器验证了 Solana 上的资产兑回后,它会将此信息以及附加的资产溯源信息传达给 Corda 托管方节点。托管方现在将发行包含溯源信息的等效包装 Corda 代币,该溯源信息类似于交易的回溯/历史。
资产溯源信息包含 Alice 在 Solana 网络上的公钥、验证了 Solana 上资产退出的桥接器公钥、Solana 代币退出交易证明等信息。
结论
互操作性可以消除私有和公共区块链面临的障碍(可扩展性、成本、最终性、匿名性),使它们能够跨平台进行交互和交换价值。
如有任何疑问,请加入我们的 #cordaledger Slack 频道
通过访问我们的 开发者门户加入我们的开发者计划。
如需了解更多关于 Corda 的信息,请访问我们的 文档和我们的 社区论坛。
注意:桥接架构是 R3 CTO (Office of CTO) 团队作为研究原型开发的。有兴趣的读者可以联系我获取桥接代码。您可以在 CordaCon 的视频中了解更多信息,其中 Agnieszka 和 Sotiria 对此桥接原型进行了演示。
感谢 Aga、Richard、Sotiria 对本博客的帮助。