跨链从Blockstream提出侧链概念以来,一直是
区块链技术的重点攻关方向。目前并没有被普遍认可的跨链机制,原因除了在此之前需求的强烈程度没有那么高之外,技术上的难点也是一大障碍。
跨链需要解决的两个难点问题。一个是如何通过分布式的方式验证原链上的交易状态。原链上的交易信息对于另一条链来说是一个外部信息(Oracle),如何保证这个外部信息进入另一条链时是正确的就是整个跨链机制的重要环节。如果要考虑到使用POW机制的区块链上没有终局状态(始终存在分叉的情况,只是随着确认块的增加,概率逐渐变小),这个问题的复杂度会更高。为了后文描述的便利性,本文把这个难点定义为难点Alpha。
可能对区块链分布式机制不熟悉的读者会难以理解这个难点,因为在中心化机制下,这个难题简单很多。举个例子,如果Alice用A银行的信用卡在B银行的POS机上进行消费,POS机上的指令会通过Visa这样的组织将刷卡信息传递到A银行确认,当Visa收到A银行确认信息后,跨行支付就完成了。A银行确认的就是Alice的交易合法,这时候B银行或者Visa不用考虑这笔交易是否真的合法,因为这时候A银行已经承担了付款的责任,无论Alice是否真有足够的余额还是A银行的系统错误,都是A银行与Alice的事情了。而在区块链分布式记账的情况下,没有一个中心化A银行来确认并承诺付款。如果将A、B银行替换为A、B链,确认A链上Alice的与跨链有关的付款交易是否完成就变成了一个难题。
如果验证跨链交易的是分布式的节点,这个难题会衍生为如何确保处理跨链的节点不作恶。节点作恶就会导致链之间信息验证的错误,进而产生双重支付而给跨链用户造成损失,这与在单一账本中记账的节点作恶面临的情况类似,但是当这个问题放在两条互不识别的链上时,问题的复杂性就变高了。
另一个难点是跨链交易要确保原链上的
token总量不会因为跨链而减少或增多(即价值守恒定律定义为难点Beta)。原链上Token总量减少的后果是当token需要跨回原链时,原链无法产生新的token,也就是只能单向跨链。原链token增多是名义上的增多,实际上是本来已经跨到另一个账本的token在原链上被双重支付了,这种情况违背了精确记账的原则,是在任何时候都无法接受的。因此当token跨出原链时,原链上的token必然需要进入“锁定”的状态,当token跨回原链时,这些token需要被解锁。如何通过去信任的管理机制完成“锁定”“解锁“的过程就成为了跨链的关键。
确保难点Beta实现的的另一个关键是保证交易的原子性。交易的原子性,简单来说是指交易处理的某个环节停止,整个交易能够撤销,而不会存在部分成功,部分失败的情况。无法保证原子性会造成双重支付。
以上问题将在后文描述Wanchain跨链的实现模式时进一步论述。
版权申明:本内容来自于互联网,属第三方汇集推荐平台。本文的版权归原作者所有,文章言论不代表链门户的观点,链门户不承担任何法律责任。如有侵权请联系QQ:3341927519进行反馈。