对于公证人模式的跨链,如何让链能够带来一些突出的特点

Posted 跨链技术践行者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对于公证人模式的跨链,如何让链能够带来一些突出的特点相关的知识,希望对你有一定的参考价值。

当前一些主流的跨链模式有:公证人、哈希锁定、中继、侧链等技术,比如Cosmos和波卡链采用是中继模式、瑞波(ILP)采用了公正人模式。各种跨链模式都有自己的一些优缺点和实用场景,无论跨链模式怎么变换,最终都会解决如下问题:

1、链与链之间如何建立一个信任机制,验证跨链之间的交易数据?

      为了解决资产的自由流通,链与链之间的互通互联, 首要任务是链之间怎样建立一种信任机制, 使得一条链能够验证链的交易。比如以太坊上发生的一笔交易,X Chain上怎么知道以太坊上发生的交易是否有效呢?同样,X Chain上发生的交易,以太坊怎么知道X Chain上的交易真实发生有效呢?

     针对上述疑问,其实是如何去验证问题跨链交易,对于X Chain来说以太坊交易来源外部的以太坊,X Chain不会知道以太坊交易的状态,所以必须借助一种机制来验证交易的有效性,目前X Core团队针对不同场景提供了两种解决方案:公正人机制验证区块头+ SPV简易验证

2、交易怎样才算最终确认?

对于交易确认性问题大家都知道与共识算法关系很大,目前来说有两种情况确定性共识和非确定性共识交易的最终确认方式。

在确定性共识下,共识完成后都是一个最终状态,不可能有其它转态,X Chain现在采用的是BFT共识方式,共识完成后就是最终状态。

在非确定性共识下,交易没有最终确认下去实现跨链会出现什么状况呢?比如以太坊采用的是POW共识算法,没有等待最终确认,把交易的状态和结果,发送给X Chain进行验证,X Chain通过区块头和SPV进行验证,X Chain上验证通过,然后在X Chain上的以太坊资产转给相应的人,结果以太坊上的这笔交易没有经过最终确认而且只是发生在最短的一条链上,导致交易最终回滚,持有以太坊资产的用户显然不能接受。这只是一个很容易出现的现象,针对在非确定性共识下,X Chain提出了不同的的解决方案:等待足够多确认区块纠缠DPoS/xBFT

3、如何实现跨链交易原子性互换?

原子性问题在数据库中经常用到,比如数据库的事务操作。在跨链场景下不保证跨链交易的原子性会造成什么呢?比如以太坊和X Chain进行跨链,以太坊上已经进行转移了资产,由于中间环节出了问题,导致X Chain上没法收到资产,这样显然不具有原子性操作。X Core团队分别针对不同场景下采用最终一致性哈希时间锁定两种解决方案。

X Chain在多链(同构链)和分片这种同一套系统内部交互场景下采用最终一致性方案。虽然在账本上拆分成不同的链式结构,但本质上还是同一套系统,安全性和可验证性都能够有效的解决,这样不需要资产的锁定机制,有效提升了跨链交易的效率,X Chain在的多链体系下做了同构方面的跨链尝试,跨链交易实际的吞吐量只是在单链情况下降到一半。对于异构链的场景下X Chain对于原子性问题最终采用的是哈希时间锁定技术,详细流程和原理如下图所示:

4、在异构链场景下资产如何去锚定?

对于跨链资产转移,比如以太坊和X Chain进行跨链,ETH真的流通到X Chain了吗?其实不是,对于ETH和X Chain跨链来说,双方采用的是一种锚定协议,双向锚定是ETH链与X Chain资产按照1: 1兑换比例双向转移的过程,比如ETH可以转移成X Chain上的等量的BETH,反之X Chain上的BETH也可以转成ETH。因为以太坊上的ETH不能被销毁。 所以实际上,当用户把ETH转换成BETH的时候, ETH资产不是被销毁了,而是被转移到一个锁定地址上,同时在X Chain上释放等量的BETH。反之,当BETH需要换回ETH时,把BETH发送到X Chain上的锁定地址,同时在以太坊的锁定地址上释放等量的ETH。

5、跨链资产如何去锁定?

在不同体系的场景下资产不进行锁定会发生什么情况,很显然不锁定,账户有自由的支配权,可以直接把钱转走,那么锁定账户由谁来管理,执行锁定和解锁等操作,如何保证锁定资产被安全的释放,不会造成双花。单一托管人可以实现锁定吗?对于单一托管选取一般会找有信用背书的机构来充当锁定就像你的钱放在银行不用担心银行跑路一样 。联盟托管人方式会怎么样呢?单一托管机制虽然简单易行,但是过于依赖中心化的托管人。更加去中心化的实现方式是联盟托管模式。比如议会,总共有N个议员,其中每位议员都有一份投票权,当接收到跨链的解锁请求时,每位议员独立的验证交易并投票,当投票数达到M时,就能处置锁定的资产。这种投票验证操作可以是手动执行,也可以是自动执行。 相比单一托管人、联盟托管人来说智能合约托管更去中心化。X Chain是一个天然支持智能合约并且验证节点是通过投票选举出来,X Chain采用的是智能合约托管的方式。

6、对于多条链跨链协议适配是N:N还是1:N呢?

以上讲的跨链问题都是以太坊和X Chain这种1:1的对应关系,设计跨链的目的是为了资产能够自由流动和链能够互联互通,N条链之间实现跨链通信,如何简化跨链协议的适配呢,对于N:N,下图所示,每两条区块链之间需要一个跨链协议,所以需要设计C(N, 2)个跨链协议,每一个跨链协议要适配两个区块链系统。当N变得很大的时候,协议适配的工作量会变得非常大。

针对上述复杂的问题,X Chain采用的是将主链作为中继链,它的角色是获得其它链的区块头信息,作为枢纽和其它链系统交互,充当路由,然后转发各链之间的跨链交易。采用中继的模式,只需要考虑N对适配协议,每新加一条链只需要适配X Chain的跨链协议接口,大幅度降低了跨链开发的复杂度。

7、如何激励跨链服务提供者呢?

链本身有交易费作为激励,但是验证可能不是链双方的记账节点。如果这些服务没有手续费会怎么样呢?这样会造成流动性匮乏攻击攻击者可以尝试暂时性阻碍所有流动性的中继或验证人,导致跨链交易失败。整个跨链交易可能处于阻塞状态,也有可能反馈一些无效状态,从而导致跨链网络无法运行。X Chain设计了一种押金审核机制,要成为服务提供者必须缴纳一定质押金,入网还需要多方审核。在整个跨链提供服务的过程中会得到一笔丰富的奖励。并且还设置了举报机制,若服务提供商作恶,验证举报信息有效,作恶者的质押金归举报者所有。X Chain通过一些经济学的手段有效激励服务提供者从而保证了X Chain的有效运行。

总结:

       以比特币、以太坊为代表的公链项目已经向我们展示了区块链的巨大发展前景。但是由于区块链本身技术特点,单链情况下会受到去中心化,安全性,可扩展性的不可能三角的问题,在可扩展性上一直缺少革命性的突破。X Chain秉持着资产自由流通和链能够互联互通的原则,设计了X跨链方案Canal技术,对跨链一些问题的解决带来了新的思路:针对不同链的需求和场景下适配不同的方案,通过不同链之间资产双向锚定、资产在链间能够自由流通。X Chain在Orbits多链技术基础之上,增加了Canal的设计,可以大大扩展原有资产的技术特性和应用场景。不但可以分担X主链上的交易,节约X主链的存储,计算,网络等资源,避免了X主链上的交易拥堵。X Chain Canal技术并不是一个现成的实现技术方案,它是一个成体系的多场景化的解决方案,最近我们在供应链金融方面做了一个X Canal技术的POC尝试,让资产能够自由流通能够成为可能。

以上是关于对于公证人模式的跨链,如何让链能够带来一些突出的特点的主要内容,如果未能解决你的问题,请参考以下文章

区块链BaaS云服务(18)华为 BCS“跨链”

单公证人模式实现测试链间跨链入门教程(架构模块篇)

区块链BaaS云服务(17)纸贵科技Z-BaaS平台“跨链”

互联互通,区块链的跨链方式

主流区块链跨链技术

Moonbeam引入XCM SDK,简化Kusama和波卡的跨链转移