跨链的四种方法

在上周的文章中,我讨论了「理论上的跨链」、「现实中的跨链」和「资产跨链」本期文章,我将继续给大家介绍「跨链的四种方法」——

04 跨链的四种方法

A星大佬看完了C公司的做法之后,立刻召集下属开电话会议——

什么是跨链(下)

“C公司看起来也就那么回事嘛……这个跨链服务看起来很有前途,我们也要做!你们尽快调研调研,一周后把计划给我。”

于是,过了一周,四份方案放在了A星大佬面前。

第一份,叫“基于哈希时间锁的资产互换”。

01 基于哈希时间锁的资产互换

这份方案是公司里某位精通密码学的技术专家在很久之前就提出的,和其他所有跨链方案都大相径庭,仅仅针对资产跨链——

基本原理是这样的:

比如A星大佬某天开会的时候和某位B星大佬说好了,用一个A币换10个B币。

什么是跨链(下)

A星大佬先随便选一个数x,然后做哈希,算出H(x)。这样,他可以把H(x)作为谜题,而x作为谜底。

然后,A星大佬在A链上发了一笔交易给B星大佬提供的收款地址,但是这笔交易设置了一个谜题H(x),要求收款时提供x。当然,为了防止B星精英反悔,这笔交易将在某个时间之后失效,失效之后钱会原路退还给A星大佬。

当B星大佬看到这笔交易,并且相信这笔交易已经确认,就在B链上也发一笔交易给A星大佬提供的收款地址,同样用H(x)设置了谜题,需要A星大佬提供x才能完成交易。

这样,如果A星大佬看到这笔交易并且相信这笔交易已经确认,如果他想要10个B币,那么他就得提供x。而如果他提供了x之后,B星大佬就能够拿到属于自己的1个A币。

从原理上,这种资产跨链方案十分精巧——它甚至不需要依赖于信息跨链,整个过程中,没有任何信息被从A链上跨到了B链上。这是怎么实现的呢?实际上仰赖了双方的理性——B星大佬在不能确信A星大佬的交易已经在A链确认之前,是不会提交自己的交易的;而另一方面,A星大佬在不能确信B星大佬的交易已经在B链确认之前,也是不会公开x的。而当双方都确认并且公开x之后,交易就自动完成了。

这种方案巧妙地规避了“信息跨链”这件最麻烦的事情——双方都不需要说服对方的链上的共识节点“自己的某笔交易已经确认”,因为双方其实只要让彼此相信就够了。而因为涉及到自己的利益,双方也自然会尽最大的能力去验证,即便它们验证出了问题,也最多只是造成自己的财产损失——而这个风险是它们自担的。

这个方案其实从原理上类似比特币的闪电网络,也正是因此,闪电网络的所有问题它也有:

1.它不是个通用方案,仅限于双方有自身利益的资产跨链,而做其他用途的时候就可能需要更复杂的机制,甚至无法实现。

2.乍看上去,理性的双方在这个交易中是各取所需的;但实际上,主动发起交易的一方,也就是A星大佬,是吃亏的一方——因为如果在交易过程中币价发生波动,那么如果B币价格涨了,B完全可以不进行交易。也就是说,当A星大佬把交易上链了,B星大佬就可以一直观望——如果价格涨了就不交易,跌了再发布交易。而这个时候A只能吃哑巴亏,因为他的钱已经被锁定在交易里了——如果交易不进行,A星大佬的钱得要等很长一段时间才会退回来。因此,B币价格就算是跌了,可能A也之后按照约定价格卖掉。

而因为有了这个问题,实际上B星大佬要是理性的话,他最优的策略就是观望,等到价格对自己有利的时候再完成交易,否则就退出交易。于是导致的结果就是——一方面A想要买B币需要出高价,这点可能还能接受;但另一方面,如果B币一直上涨的话,A甚至在交易之初没法确认能否顺利成交。

因此,一方面,这种方案精巧地构筑在了“节点的理性”之上;但另一方面,这种理性又反过来导致了这种方案几乎不现实,尤其是,当我们有了可替代跨链方案的时候,这份基于哈希锁的资产互换方案,就立刻被弃置一旁了。

02 验证者跨链

第二个方案,就是验证者跨链,这次换做下属来给A星大佬讲。

“验证者跨链基本上和你遇到的C公司的方案类似——我们找个可信的节点,比如我们自己,作为验证者。这个验证人的工作很简单,他就正常地跑两条链的客户端就行了。然后,当A链上有跨链消息的时候,他负责在这条消息在A链上确认了之后,对这个消息签名,然后转发到B链完成消息跨链。当然,如果是资产跨链的话,那么这个消息就代表A链上资产被锁定,而转发的消息就可以在B链上解锁同样数量的镜像资产。”

“这我都知道了,那咱们的方案能不能做点改进呢?”

什么是跨链(下)

“我们可以采用‘门限签名’的方案——就是相比于C公司,我们可以在我们公司之外,在拉来几个大公司,比如H公司和Z银行,然后,让他们也来做验证者。然后,在跨链的时候,跨链信息需要携带的不是1个签名,也不是3个签名,而是一个3选2的门限签名——也就是说,这个签名需要三个人中至少两个人认可才有效。这样的话,即避免了单点故障的情况,又增加了这个签名的可靠性。”

验证者跨链,也就是C公司采用的方法,实际上是当下大多数跨链方案使用的方法。一个很现实的原因是——因为目前大部分跨链的需求都是发生在某条(类

而按照这个思路延伸一下,其实中继者跨链甚至不需要某个特定的“中继者”,只需要一个通信协议——比如说,所有有最终性的

第一个方案看似是用户体验更好的,但如果C公司认证通过之后B链正好堵塞,那么如果C公司仍旧按照之前的交易费来提交跨链证据,那么就可能出现长时间无法上链的情况,而这对于有时间需求的用户是无法接受的。但另一方面,如果C公司收用户更高的服务费来保证上链时间,那么一方面不急用的用户并没有这种需求,另一方面如果遇到极端情况交易费涨上天,C公司还是需要冒风险。

因此,其实看似用户体验不好,但是实际上最合逻辑的方法,还是C公司只负责验证,然后把证据和负责上链的责任发回给用户,让用户根据自己的需求,决定愿意花多少交易费上链。

06 跨链与侧链的区别

在文中我们多次类比了跨链和二层网络方案,比如闪电网络和Rollup。那么跨链和侧链的区别在哪呢?实际上,两者在很多地方都有相似性,但核心逻辑上——跨链中两条链的地位是平等的而侧链不是。

跨链中双方链的节点都默认不知道对方的链,因此信息互通需要能够验证对方链上的真实性,或者由同时运行两条链的节点背书,而这里,背书节点理论上需要在两条链上都有经济抵押。而侧链中,所有侧链的节点默认是同时运行主链的。所以,验证信息是单方面的——只有侧链的信息提交到主链上需要验证,而经济抵押也只需要在主链上即可。

而以上的这种差别,也可以用来从逻辑上区分跨链和侧链。如果某个跨链方法只有单向信息通信,或者单向抵押,那么实际上这就是一个侧链方案而非跨链方案。

05 关于跨链的一点看法

以上,就是一个有点啰嗦的关于跨链的介绍了,但啰嗦也是有原因的——我可以像很多科普文章一样上来就丢出来四种跨链方案而不介绍跨链这个概念的来龙去脉,但我并没有这么做,因为我更想介绍的是“跨链应该是什么样子的”,而不仅仅是“跨链现在是什么样子的”。

实际上,正如A星大佬第一次遇到的杠精B星海关一样,人们最早对于“跨链”这个概念是很较真的,正如人们对于“去中心”“预言机”等等概念都很较真一般,毕竟,如果中本聪和密码朋克们不较真,那么中心化的系统就够用了,用

实际上,如果仔细看现在跨链和预言机实现的方案,两者基本是一致的——从一个可信任的机构,到多个可信任的机构的聚合签名,再到一条链,比如Chainlink(预言机)和Wanchain(跨链)。两者一致的原因很简单,因为从被跨的那条链,比如B链看过去,两者是一样的——不管信息来自一条链也好,还是一个网站也好,总之是个不可靠的消息源,于是,我需要一个机构给这条消息的可靠性做担保之后,我才愿意相信这条消息把它放在我的链上。

这看起来似乎很合理不是吗?

但两者的可信程度真的是一样的吗?作为

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注