本文引自《行业研究报告丨跨链篇》
跨链的实现形态
目前的区块链公链是一个自适应分布式系统,也是一个相对封闭的自循环系统,虽然可以允许新节点加入、旧节点退出,也可容忍一小部分错误,但却难以兼容外部其它系统。链和链之间的信息交互,尤其是以通证为载体的价值交互,可谓困难重重,这对区块链网络来说是一大发展瓶颈。
总体来说,链和链之间的价值/数据交互主要有以下两种实现形式:
1)链间资产互换:通常指两条链上的不同用户之间进行资产互换,但每条链上的资产总量并无增减,只是资产所有权发生了变化,且这个所有权改变的过程需在两条链同步发生。如Alice想用比特币上的10个BTC换Bob在以太坊的100个ETH,最终交易成功的结果是Bob 在以太坊的100个ETH转移到了Alice在以太坊的地址,而Alice在比特币上的10个BTC转移到了Bob在比特币的地址。比特币和以太坊资产总数并无增加或者减少。
2)链间资产转移(单向/双向):资产转移和资产互换虽看起来相似,却有本质的不同。上文所述资产互换中各链的资产总数是不变的,但资产转移,是资产价值的转移,各链中可用的资产总量将相应增加或者减少。如Alice想将链A的资产转移100枚到链B,最终交易成功的结果是链A的可用资产将减少100枚(减少的100枚被冻结在链A的特定地址),B链上将新生成相应的等价资产。
目前对跨链的研究和应用落地主要是集中在资产互换和资产转移这两种方式。有些项目提出了跨链智能合约的概念,多指一条链上的智能合约能确认原链跨链交易的场景,这从技术实现上来说和实现跨链资产转移是相似的,都需要对原链交易进行确认和验证,因此本文不再做单独讨论,而主要针对资产互换和资产转移这两类问题进行技术方案分析。
实现跨链要解决的问题
1)如何保障跨链交易的原子性。即跨链交易要么发生,要么不发生,否则两条链的不一致和不同步状态将成为跨链交易最大的系统漏洞,两个系统的安全性都将受到威胁。这一点是实现跨链交易的基本要求,也是跨链交易必须要解决的难点。
2)如何完成对另一条链的交易确认。对交易的确认,包含了两个层次的问题,一是确认交易已经发生并且上链,写入了区块账本;二是该交易已经获得了系统足够多区块的确认,这样由于系统发生重构而导致交易无效的概率将非常低。区块链系统本身是较为封闭的系统,缺乏主动获取外部信息的机制,因此要确认另外一条链的交易状态并非一件容易的事,可以说是跨链交易的核心难点之一。
3)如何保障两条链的资产总量不变。在资产互换的场景下,两条链的资产并未发生实质性的交换,因此该类情况不会改变各链的资产总量。但是在资产转移的场景下,每条链的可用资产数量是变化的,只有保障跨链交易精确记账,且两条链的账本记账完全同步,才可实现,换种说法就是两条链的记账必须是原子性的,要么都同时记,要么都不记。除此之外,问题的关键是当某条链发生重构时,是否依然能保持两条链的资产总量不变。
4)如何保障两条链的独立安全性。当两个系统发生交互时,难免会对彼此系统产生影响,如何在跨链交易的过程中保障自己系统和对方系统的安全性是个值得考虑的问题。若是安全性问题无法隔离,那一条链受到攻击,将影响整个跨链网络。
5)如何实现多条链之间的跨链互联。参照计算机网络的发展历程,独立的区块链网络终究要走上互联互通的未来,那如何将这些已有的和未来将要开发的区块链网络都联系起来成为统一的整体将是未来跨链网络最重要的问题之一。