zl程序教程

您现在的位置是:首页 >  Java

当前栏目

泰山众筹智能合约开发系统模式

2023-02-18 16:39:14 时间

  多链生态虽然能为用户和开发者带来诸多好处,但将同一个智能合约的代码部署到多条区块链上还是会存在一系列特殊的挑战和利弊权衡。

  首先,多链智能合约的代码每部署到一个新的区块链上,都需要创建一份原应用的副本,这就意味着应用不再具有唯一性。相反,部署在每条链上的智能合约都管理着自己的内部状态(比如追踪账户余额),而不同区块链上的合约几乎或甚至完全不能直接交互。虽然用户可以访问任何一条链上的应用副本,但不同链上的用户体验不能保证完全一样。

 

多链智能合约本质上是不同链上互相孤立的dApp副本

  这种现象在去中心化交易平台上尤为突出,特别是多链自动做市商(AMM)。由于用户资产只能同时存在于一条区块链上,因此应用的流动性会分散在不同的区块链上。结果就是,每条链上应用的锁仓量都会降低,这会导致交易滑点增大并且交易费收入下降。另外,AMM应用每部署到一个新的区块链上,都需要从零开始创造流动性。如果新链上也采用yield farming来冷启动,那么这会导致协议的原生通证不断被稀释。

  如果应用需要对其状态维持单一事实来源,比如统一注册的链上域名系统,那就很难做到多链部署。如果在每条链上都分别部署注册表,那么不同人可能会在不同链上注册同一个域名,这将会引起混乱。因此,如果应用要保证全局状态的一致性,通常只会部署在一个区块链网络中。

  除了应用层面的挑战以外,多链系统还会为终端用户带来麻烦。用户可能需要学习如何与其他区块链进行交互。由于某一条区块链上的资产只能在这条链上的dApp中使用,因此,用户必须手动使用通证桥,将通证发送到其他区块链上的dApp中使用。用户不仅需要重新配置钱包,熟悉新链上的操作流程,并持有底层区块链通证以支付gas费;还不得不在一定程度上牺牲安全性,因为目前许多跨链通证桥都存在安全问题。

  总而言之,多链智能合约最大的瓶颈是:在不同区块链、侧链和layer 2上部署的智能合约之间几乎或甚至完全无法实现互操作性。虽然现在可以使用通证桥来实现多链部署,但要安全地跨链传输数据则需要采用一种全新的思路来设计智能合约的基础架构。

  跨链智能合约

  安全的跨链通信(即:在各个链上环境之间传输任意数据、通证和指令)是实现跨链智能合约的关键要素。跨链智能合约是去中心化的应用,由多个部署在不同区块链网络的智能合约组成。这些智能合约之间可以互相通信,并共同构成一个完整的应用。

  

跨链智能合约其实是一个完整的dApp将逻辑分别部署在不同的区块链上

  尽管可以用各种方式实现这一部署,但在最底层需要设计跨链智能合约,让开发者可以将应用分割成不同的模块。也就是说,不同链上的智能合约可以分别执行不同的任务,而所有智能合约又都保持同步,并共同实现同一个应用场景。这样,开发者就可以利用不同区块链的优势,实现独特的价值。比如:去中心化的应用可以利用第一条区块链的抗操纵性来追踪资产所有权;利用第二条区块链的高吞吐量来实现低延时交易;利用第三条区块链的隐私性来识别用户身份;并利用第四条区块链的去中心化存储功能来储存元数据。

  另外,这种跨链智能合约的设计范式还可以使部署在多个区块链上的同一智能合约副本之间更加流畅地交互。这将有助于统一多链应用在不同区块链上的用户体验。因此,跨链智能合约可以解决现有多链智能合约面临的诸多瓶颈,并打造出全新的应用场景。