作者 madengji
前言:
跨链基础需求:资产兑换和资产转移
资产兑换:A想用X链的币(Token)兑换Y链的币(token),B想用Y链的币兑换X链的币,经系统撮合,两者互相兑换成功
资产转移:A想把X链的资产(币token)转移到其他区块链上,在x链上锁定,在新的链上重新铸造等量等值的币。
目前主流的跨链技术包括:
1、公证人机制(Notary schemes)/去中心化交易所协议
2、哈希锁定(Hash-locking)
3、侧链/中继(Sidechains/relays)
4、分布式私钥控制(Distributed priate key control)
一、公证人机制(Notaryschemes):
1、公证技术:瑞波Interledger协议
中心化或多重签名的见证人模式,见证人是链A的合法用户,负责监听链B的事件和状态,进而操作链A。本质特点是完全不用关注所跨链的结构和共识特性等。假设A和B是不能进行互相信任的,那就引入A和B都能够共同信任的第三方充当公证人作为中介。这样的话,A和B就间接可以互相信任。具有代表性的方案是Interledger,它本身不是一个账本,不寻求任何的共识。相反它提供了一个顶层加密托管系统称之为“连接者”,在这个中介机构的帮助下,不同的记账系统可以通过第三方“连接器”或“验证器”互相自由地传输货币。记账系统无需信任“连接器”,因为该协议采用密码算法用连接器为这两个记账系统创建资金托管,当所有参与方对交易达成共识时,便可相互交易。该协议移除了交易参与者所需的信任,连接器不会丢失或窃取资金,这意味着,这种交易无需得到法律合同的保护和过多的审核,大大降低了门槛。同时,只有参与其中的记账系统才可以跟踪交易,交易的详情可隐藏起来,“验证器”是通过加密算法来运行,因此不会直接看到交易的详情。理论上,该协议可以兼容任何在线记账系统,而银行现有的记账系统只需小小的改变就能使用该协议。从而使银行之间可以无需中央对手方或**银行就可直接交易。
2、去中心化交易所协议 0x, loopring,kyber
0x协议
0x的技术实现中,引入了Relayer的概念。Relayer可以理解是任何实现了0x协议和提供了链下订单簿服务的做市商、交易所、Dapp等等。Relayer的订单簿技术实现可以是中心化的也可以是非中心化的。Relayer从成交交易中收取手续费获利。交易过程大略如下:
1. Relayer设置自身的交易服务费用规则,并对外提供订单簿服务;
2. Maker选定一个Relayer进行挂单创建和填充必要的订单,手续费信息,并用私钥签名;
3. Maker将签名后的订单提交给Relayer;
4. Relayer对订单做必要的检查,并将其更新到自身的订单簿;
5. Takers监看到订单簿的更新,并选中成交订单;
6. Takers对选中的订单进行填充,并广播至区块链完成**的成交。
注:Looping是0x的加强版,可以自动完成多环路撮合交易。
3、Kyber网络
Kyber引入了储备贡献者的角色为代币储备库提供代币,引入了储备库管理者来管理运营储备库。储备管理者负责周期性设置储备库兑换率,并利用储备库对普通用户提供的兑换折价来获取利益,储备库与储备库之间是互相竞争关系,以保障给用户提供**的兑换价格。
二、哈希锁定(Hash-locking)—— Lighting network –同步性
哈希锁定起源于闪电网络的HTLC(Hashed TimeLock Contract),如今也使用较为广泛。它实现的过程如下:
例如使用Hash-locking来实现20ETH和1BTC的原子交换过程:
1.A生成随机数s,并计算h = hash(s),将h发送给B;
2.A生成HTLC,超过时间设置为:2小时,如果2小时内B猜出随机数s,则取走1BTC,否则A取回1BTC;这里A用h锁住BTC合约,同时B也有相同的h。这样A和B都有相同的锁h,但A有钥匙s
3.B在以太坊里部署智能合约,如果有谁能在1小时内提供一个随机数s,让其hash值等于h则可以取走智能合约中20ETH;
4.A调用B部署的智能合约提供正确的s,取走20ETH;
5.B得知s,还有1小时时间,B可以从容兑现A的HTLC的1BTC。
一旦超时,交易失败,符合原子性。
注意:这里引入时间的参数主要是为了,一旦时间超时,当前用户可以收回自己的币。不然自己的币可能被恶意无限制锁定。
三、侧链/中继(Sidechains / Relays):RSK,BTC Relay,Polkadot,Coos –异步性,资产转移
侧链系统可以读取主链的事件和状态,即支持SPV(Simple Payment Verificaiton),能够验证块上Header、merkle tree的信息。本质特点是必须关注所跨链的结构和共识特性等。一般来说,主链不知道侧链的存在,而侧链必须要知道主链的存在;双链也不知道中继的存在,而中继必须要知道两条链。
侧链详细介绍:https://mp.weixin.qq.com/s/n4rcc_KpxVwyAKB4fziKQ
1、侧链Sidechains—— RSK
侧链是以锚定某种原链上的代币为基础的区块链,如法币对黄金的锚定一样。该技术最初是为了解决主链扩展性问题而想出来的扩容技术,每个区块链可以通过协议来实现强制执行的共识。一个区块链系统性能能够理解其它区块链的共识系统,能够实现在获得其它区块链系统提供的锁定交易证明之后,自动释放比特币。可以用下图来描述:
2、中继(Relays)—— BTC Relay
BTCRelay是把以太坊当作比特币的侧链,与比特币通过以太坊的智能合约连接起来,可以使用户在以太坊上验证比特币交易。
主要原理是BTC Relay利用BTC区块头在ETHerum上储存比特币区块头构建精简BTC区块链,类似SPV钱包,以太坊DApp开发者可以从智能合约向BTC Relay进行API调用来验证比特币网络活动。
其使用场景如下:
1.Alice和Bob同意使用BTCSwap合约来进行交易,Alice要买Bob的ETH,Bob把他的 ETH发送到BTCSwap合约
2.Alice向Bob发送bitcoin,她希望BTCSwap这个合约能知道这件事以便BTCSwap合约可以释放Bob之前的ETH
3.Alice通过bitcoin的交易信息以及BTCSwap合约地址来调用btcrelay.relayTx(),btcrelay验证这笔交易通过后就触发BTCSwap合约里面的processTransaction方法
4.BTCSwap合约在被触发后确认这个btcrelay地址是一个合法地址,然后释放之前Bob的ETH,交易完成。
3、中继(Relays)—— Coos
Coos是tendermint团队推出的一个支持跨链交互的异构网络。coos hub作为relay。Zone分区承担relayer角色,coos hub 承担erifier和relay的角色, 只传递消息,本身不作为一个链维护。
IBC协议定义了最主要的两个交易类的数据包。一个就是IBCBlockCommitTx。它做的事情实际上就是把发起的这条链的当前**的区块的头部信息传到目标区块链。这样的目标区块链就获得了当前**的这个链里面Merkle Root。另外一个包的类就是IBCPacketTx。这个就是传递了跨链转代币的交易信息,这个交易信息实际上是在消息体里面实际包含的payload信息。这个消息在原链上的一个Merkle Proof。
详细参考:http://mp.weixin.qq.com/s/oHAIgFzANWOns9nBoKg
4、中继(Relays)—— Polkadot,relay作为一个链且提供一致性。
Polkadot技术是Gain Wood 由以太坊核心开发ETHcore(Parity公司)开发的公有链,Polkadot计划将私有链/联盟链融入到公有链的共识网络中,同时又能保有私有链/联盟链的原有的数据隐私和许可使用的特性。
Polkadot基于Notary、侧链和中继技术,采用多链融合的设计模式parachains+relay-chain,兼具拜占庭和POS的共识协议来建立自己的技术路线。它将所有其它区块链都视为平行链,Polkadot为通过中继链(relay-chain)技术能够将原有链上的代币转入类似多重签名控制的原链地址中,对其进行暂时锁定,在中继链上的交易结果将由这些签名人投票决定其是否生效。
平行链(可并行化的链)是更简单的区块链形式,它附着在由“中继链”提供的安全性上,而不是由自己提供安全。之所以称之为中继链,是因为它不仅可以为平行链提供安全性,而且可以保证它们之间可以安全地传递消息。
Polkadot畅想了一种新的区块链形态,由单独的中继链去统一管理共识安全和数据交互,用百花齐放的平行链技术去满足各种应用需求,进一步分离共识和状态转换。
四、分布式私钥控制(Distributed priate key control)-wanchain,FUSION
各种加密资产可以通过分布式私钥生成与控制技术被映射到FUSION公有链上。多种被映射的加密资产可以在其公有链上进行自由交互。实现和解除分布式控制权管理的操作称为:锁入(Lock-in)和解锁(Lock-out)。锁入是对所有通过密钥控制的数字资产实现分布式控制权管理和资产映射的过程。解锁是锁入的逆向操作,将数字资产的控制权交还给所有者。
总结:
早期跨链技术包括以瑞波和BTC Relay为代表,它们更多关注的是资产转移;现有跨链技术以Polkadot和Coos为代表更多关注的是跨链基础设施;新出现的FUSION实现了多币种智能合约,在其上可以产生丰富的的跨链金融应用。