区块链跨链技术
背景
近年来,随着区块链技术的不断发展,区块链的应用场景逐渐从最初的加密货币领域扩展到金融、物流、医疗、公共服务等各个领域。随着区块链的应用场景不断增多,区块链的“数据孤岛”问题日益突出,不同场景下的区块链之间相互隔绝,无法实现信息交互,极大地阻碍了区块链技术的进一步发展。为了解决区块链之间的扩展性问题,区块链跨链技术应运而生。
关键技术问题
- 保证跨链交易的原子性和最终确定性
- 保证跨链双方可以验证另一条链上的交易状态
- 保证两条链上的资产总量不变
- 保证跨链系统安全运行
- 多链协议适配
主要跨链技术
- 哈希锁定
- 公证人机制
- 侧链/中继
- 分布式私钥控制
其中采用中继链的跨链方法扩展性最好但是实现相对复杂,是目前最主要的研究方向
哈希锁定
哈希锁定最初起源于闪电网络。从原理上看,哈希锁定是基于哈希函数的单向性来保证资产的安全交换,它包括哈希锁和时间锁,哈希锁是指用户只有知道哈希原像才可以解锁资产,时间锁是指用户如果超过时间仍未解锁资产,则资产会退回原账户。
该模式的实现流程如下图所示,(用户A与用户B进行跨链资产交换)
- 用户A生成一个随机数x并计算其哈希值H(x)发送给用户B。
- 用户A使用H(x)和时间t1在链A上锁定资产a,若超过时间t1仍未解锁,则将资产退回给A。
- 用户B使用H(x)和时间t2(t2<t1)在链B上锁定资产b,若超过时间t2仍未解锁,则将资产退回B。
- 用户A将随机数x发送给用户B解锁得到用户B锁定的资产,此时用户B也获得了随机数x。
- 用户B再用随机数x解锁用户A锁定的资产,由此实现了资产的跨链交换。
这里时间锁t1和t2是为了防止用户A在解锁获得B的资产后退回自己锁定的资产导致用户B的资产损失。因为用户A必须要在t2之前解锁用户B的资产,而用户A的锁定时间t1大于t2,所以用户A在解锁B的资产时自己的资产一定是锁定状态的,可以保证用户B在拿到随机数x后有充足的时间解锁用户A的资产。
公证人机制
公证人机制是一种中心化的跨链方式,该方式通过引入一方或多方可信实体对跨链交易进行信用背书来保证跨链系统的可靠运行。在公证人机制中,公证人是跨链交易的核心角色。它们通常是一组专门的节点,用于协调不同区块链之间的交易。当交易发生时,公证人将执行一系列操作来验证交易的有效性,例如检查交易的签名,检查转移资产的数量是否正确等。这种方式的实现较为简单,代表方案有ripple提出的Interledger。
侧链/中继技术
侧链的概念于2014年首次提出。侧链通过双向锚定技术将一种加密货币资产锁定在一个区块链上,然后在另一个区块链上创建一个代表该资产的代币,从而实现在两个不同的区块链之间传输资产的功能。
通过这种方式可以将主链的货币发送到侧链上,在侧链上分担主链的交易,从而减轻主链的压力,扩展主链性能。
双向锚定技术的实现方式包括单一托管模式、联合锚定模式、SPV模式和驱动链模式,其中SPV模式是侧链白皮书中对去中心化双向锚定技术的最初设想,该模式的工作流程如下图所示。
- 用户在主链上将资产发送到一个特殊的地址进行锁定,在等待一段时间确保交易不会被回滚之后,主链会为用户生成一个SPV证明,证明用户已经在主链上锁定了部分资产。
- 用户可以将该SPV证明发送到侧链上,侧链在接收并验证SPV证明之后会等待一段竞争期确保用户的资产成功锁定,然后就在侧链上为用户释放相应数量的资产,由此实现用户资产的跨链转移。
中继可以看作是侧链和公证人机制的融合扩展,通过在相互通信的两个区块链之间添加一条中继链对跨链的请求进行验证和转发。中继技术弥补了公证人机制中存在的中心化问题,具有较高的安全性和可扩展性,可以适应大部分的应用场景。但是基于中继链的跨链系统实现起来比较复杂,需要较高的技术成本。
分布式密钥控制
分布式密钥控制是基于密码学中的多方计算和门限密钥的一种技术,在分布式密钥控制中会将控制资产的私钥分成多份并分别由多个用户持有,在进行资产转移时需要多个用户共同参与,即使其中某些用户被攻击或私钥被窃取,攻击者也无法获取完整的私钥,保证了资产的安全性。以分布式密钥控制的代表项目Fusion为例,跨链资产转移流程如下图所示。
- 用户A发起跨链请求,首先在分布式网络中会生成一对公私钥,公钥是一个新用户B的地址,私钥分成多份由网络中的多个用户持有。
- 用户A将资产转移到新地址B中锁定。
- 目标链上的用户C使用相同的方法将资产转移到一个新地址D中锁定。
- 在两个用户都锁定资产后,分布式节点再使用私钥分别解锁B和D锁定的资产,将D的私钥发放给A,将B的私钥发放给C,从而实现跨链的资产交换。