雷锋网AI金融评论按:本文作者为中国信息通信研究院(工信部电信研究院)专家敖萌博士,雷锋网独家特约文章,雷锋网与信通院子公司泰尔英福联合发布。未来,敖萌博士原创的区块链系列文章还将继续刊出,敬请关注!
随着区块链技术的火热,出现了大量的区块链企业,也出现了大量不同的链。随之而来的是一个新技术的诞生——跨链技术。
跨链,顾名思义,就是通过一个技术,能让价值跨过链和链之间的障碍,进行直接的流通。那么怎样理解跨链呢?
区块链是分布式总账的一种。一条区块链就是一个独立的账本,两条不同的链,就是两个不同的独立的账本,两个账本没有关联。本质上价值没有办法在账本间转移,但是对于具体的某个用户,用户在一条区块链上存储的价值,能够变成另一条链上的价值,这就是价值的流通。
这样说比较晦涩,我们用换汇来理解就方便了。人民币是一个独立的货币,美元是另一个独立的货币。人民币无法直接变成美元,美元也无法直接变成人民币。因此,美元无法直接进入人民币账本,人民币也无法直接进入美元账本。需要有人愿意买入人民币/美元,卖出美元/人民币,才能完成货币的兑换,实现价值的跨账本流动。
Alice有100美元,她来到了中国,需要使用人民币进行交易。于是她必须找到愿意和她兑换外币的人,例如Bob,Alice将100美元卖给Bob,Bob收到了Alice给他的100美元,按照当时的汇率,给了Alice 657人民币。
从账本上看,整个外币兑换的过程是这样子的。
首先Alice在美元的账本上有100美元,Bob在美元的账本上有0美元;
Alice在人民币账本上有0元,Bob在人民币账本上有657元。
然后Alice在美元的账本上转账给Bob 100美元,
Bob在人民币的账本上转账给Alice 657元人民币。
于是,Alice原本在美元账本上的账户中的100美元的价值就转移到了Alice在人民币账本上的账户中,体现为657元人民币。
在这个过程中,Bob在人民币账本上的的657元人民币的价值就转移到了Bob在美元账本上的账户中,体现为了100美元。
整个兑换过程中,在两个账本上同时发生了转账交易。
在整个兑换的过程中,人民币账本上的人民币总数没有变化,仍是657元;美元账本上的美元总数也没有变化,仍是100美元。变化的是两个账本上货币的持有人。
Alice | Bob | 账本总额 | |
人民币账本 | 0 | 657 | 657 |
美元账本 | 100 | 0 | 100 |
Alice | Bob | 账本总额 | |
人民币账本 | 657 | 0 | 657 |
美元账本 | 0 | 100 | 100 |
跨链本质上和货币兑换是一样的。跨链并没有改变每个区块链上的价值总额,只是不同的持有人之间进行了一个兑换而已。
综上,跨链技术的核心要素之一是:帮助一条链上的用户Alice找到另一条链上的愿意进行兑换的用户Bob。从业务角度看,跨链技术就是一个交易所,让用户能够到交易所里进行跨链交易。
进行数字货币的交易所很早就出现了,最早交易所进行的是法币(国家发行的货币)与比特币之间的兑换。后来随着数字货币的种类越来越多,很多交易所也开始进行不同类型数字货币之间的兑换。交易所开展的不同类型数字货币之间的兑换,就是一种跨链价值转移的实现。严格来说,币币交易所就是一个跨链技术的实现。
由于不同的币种在不同的区块链上。而区块链本身又是为了解决信任问题而产生的,那么不同的区块链间的用户如何确保自己的权益不被损害?
Alice要找Bob把比特币兑换为以太币,如果Alice把比特币转给了Bob,而Bob没有把以太币转给Alice,该怎么办?
这时,交易所的另一个作用就显现出来了:利用自身的信用来提供兑换交易时信任的传递。具体操作方法来说,通常就是Alice把比特币转给交易所,Bob把以太币转给交易所,然后交易所再把以太币转给Alice,比特币转给Bob。通过交易所中间代持一次数字货币,实现信任的传递,使得Alice和Bob之间的交易能够进行下去。整个信任的传递就是Alice信任交易所,Bob信任交易所,于是Alice和Bob之间建立了信任。
但是,这里又诞生了一个新的问题。交易所也是由某个人或者机构运行的,他的信用足够吗?
交易所会不会带着Alice和Bob的比特币和以太币直接跑路?
答案是:真的有可能耶!
单个人或者机构的信用都不足以支撑大额交易。因此,出现了无中心交易所技术——用区块链技术解决跨链时的信用难题。
当交易所由多个主体共同运行,或者干脆是一个公有链,任何人都能参与到这个交易所的运行中,那么,跑路的风险就大大降低了。
于是,引出了无中心跨链技术的一个难题:怎么让多个主体来共同控制一个账户?
针对不同的区块链,存在不同的解决方案。绝大部分区块链都支持多签名的钱包,利用多签名钱包可以实现这个任务。另外,还可以通过密码学办法,利用分组计算,实现私钥的拆分,进而实现多个主体通过投票方式来控制一个账户。这个问题已经属于技术上非常复杂的问题了,感兴趣的同学,可以去看相关跨链技术的源码。