跨链原子互换协议
笔记
一、协议背景
目前资产在区块链内部的可靠流转已经不是问题,需要考虑的是,如何用一种简单的方法进一步促进不同链上资产的互相交换、发掘更多的商业机会?比如Alice在一个区块链A上拥有股权,Bob在区块链B上拥有债权,如何让Alice用区块链A上的股权换取Bob在区块链B上的债权?怎么用尽可能简单的方法,既不采用侧链锚定机制在链和链之间增加复杂的通信机制,却又保证这种交换是原子的、可信的,不会出现股权发生了转移但债权没有发生转移的情况?今天介绍一种可以简单实现跨链原子互换的方式。
这种方式本身并不新,比特币社区早就提出了这个方案,以太坊大神VitlikButerin也提到过这种方式。这种方式在中心化与去中心化中都有很好的借鉴意义。
二、协议阐述
- 在链之间架一座“桥”,链A得出结果后把信息通过桥传送到链B,链B再对信息在本地做共识。
- 建立一个通用的协议标准,让所有愿意互联互通的链都去支持和实现这个标准。典型的“车同轨,书同文”的思路。
- 将其他链上的价值映射和整合到某条公链。
- 资产转移(Portable Assets):数字加密货币和资产可以在不同链中转移,抵押和使用。
- 货银对付(Payment-versus-Delivery):即一手交钱一手交货。这里强调是一个原子性互换(Atomic Swap)原则,要么两清,要么交易失败。外汇货币间的同步交收(payment-versus-payment)也是同一个意思。这个场景应该是呼声最高的,比如去中心化交易所。但凡是个跨链项目的白皮书里都会标榜他们能做出来一个去中心化交易所,其实是个再自然不过的事。
- 跨链预言机(Cross-chain Oracle):链A的智能合约的触发和执行依赖于来自于链B的预言机的信息。链A需要能读取链B的事件、状态等数据。
- 资产留置(Asset Encumbrances):链A上的资产被锁定,并且解锁条件依赖于链B上的行为。类似于金融中的产权抵押,侧链中的双向锚定也有这个意思。
- 通用跨链合约(General Cross-chain Contract):比如根据链A上的资产证明来在链B上用B的货币来分配发放红利。
- 中心化公证人机制(Centralized Notary schemes)
- 多重签名的公证人机制( Multi-sig Notary schemes)
- 侧链/驱动链(Side-chain)
- 中继(Relays)
- 哈希锁定(Hash-locking)
哈希锁定
- 条件1:如果任何人能在H小时内提供一个随机数值s'给智能合约,一旦合约验证了hash(s') == h(当s'等于原始密码s),那么Bob的BTC就自动转给Alice,否则超时后发还给Bob。
- 条件2:如果任何人在2H小时内将原始密码s发给智能合约,则Alice的ADA将被自动转给Bob,否则转还给Alice。
状态通道
HTLC
目前用的最多的就是HTLC(哈希锁合同),即在预设锁定时间前呈现初始秘密可以花费资金。在闪电网络的事务流程中,首先是接收方节点生成秘密并计算哈希值。之后,将该哈希值发送到发送方节点作为HTLC生成的基础。发送方生成合约并将其发送到节点1,即路径上下一个节点,该节点用递减的时间锁创建新合同(使用相同的哈希值)。这个新生成的合同由节点1沿着路径发送到节点2,然后节点2重复相同操作并继续缩短时间锁。合约一路前进到接收方,由接收方通过自己一开始就生成的秘密签名释放资金(解锁支付),然后从发出合约的节点处获得资金。反过来,这一动作向最靠近发送方的节点展示秘密,并授权解锁支付并接收资金,然后再向前一节点展示秘密。整个路径重复这一过程后,每个节点都收到了付款,至此支付完成。
HTLA
Ripple的Interledger协议是一个开放协议套件,用于各类账本间转账(跨链交易)。该项目白皮书中提出了“公证人”这一概念。为了实现原子性,最初建议使用通用模式(Universal Mode)和原子模式。
PM
Sprite通道的目标是开发新的支付通道,解决闪电网络原子性、部分存款与通道资金注销等问题。通过添加原值管理器(PM),HTLC得到了显著升级。
HTLR
Celer Network是针对公链可扩展性并通过离线技术实现性能最大化的解决方案。 在这个体系中,PM(原值管理器)变成了一个哈希时间锁注册表(HTLR),但大部分功能仍旧保留。HTLR有两个依赖端点,即IsFinalized和QueryResult。前者返回的结果是原值是否先于区块数字完成注册;而后者返回的是原值是否已注册。这两个功能最终可以实现合并。需要注意的是,HTLR始终是链上的。
Notaries
Interledger的原子模式应该就用到了“公证人”这个角色。通过公证人完成的支付和通过闪电网络HTLC进行的支付很相似,两者唯一的区别是,在展示秘密之前,接收方节点会将合约转交给公证人,即从其通用登记册中随机选择的特殊实体。
Observers
这一角色在Geo协议中出现,该概念为原子性问题提供了独特的解决方案。目前项目团队在创建一个去中心化的点对点链下网络来进行资产交换。
在去中心化网络中,原子性的开发受到了很多新概念的影响。
哈希时间锁合同(HTLC)最先面世,其优势在于节点掉线时减少损失并且保障发送方和接收方的安全。而其问题在于资金必须冻结在通道中,参与者必须保持在线以避免损失。
然后是在HTLC基础上改良后的HTLA和HTLR。前者可以实现在各种注册表中使用HTLC,甚至是那些不支持相应合同的注册表。后者则解决了节点脱机的问题。