多年来,跨链技术一直是区块链技术的重点攻关方向。目前并没有被普遍认可的跨链机制,原因除了在此之前需求的强烈程度没有那么高之外,技术上的难点也是一大障碍。
跨链需要解决的难点问题是如何通过分布式的方式验证原链上的交易状态。原链上的交易信息对于另一条链来说是一个外部信息(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 需要被解锁。如何通过去信任的管理机制完成「锁定」「解锁」的过程就成为了跨链的关键。
BOHR就完美的解决了跨链技术壁垒,可以实现多链互通互联,改变了单个技术平台的孤岛效应,极大的推进了区块链技术的推广和落地应用。它允许任何人在平台中建立和使用通过区块链技术运行的去中心化应用。允许用户按照自己的意愿创建复杂的操作,可以作为多种类型去中心化区块链应用的平台。