吕旭军:跨链是区块链发展和融合的驱动力
遇见未来的大脑
吕旭军|Wanchain创始人、CEO
2012年,在一个奥斯汀的开发者聚会上,我听说了“中本聪”这个名字。然后上网搜出中本聪的比特币白皮书,看完后被那个精巧构建的世界深深打动了。我意识到,去中心化的区块链世界,交易和协作模式,将有天翻地覆的变化。
非常巧合的是,在2014年初,美国德克萨斯州奥斯汀的一家分布式基金,请我帮忙考察一个项目。它叫以太坊,创始人是Vitalik Buterin,这个20岁的年轻人,刚刚在Bitcoin Magazine上发表了一篇文章:《以太坊:一个下一代加密货币和去中心化应用平台》。
比特币的扩展性有限,而以太坊是内置了编程语言的区块链协议,可以进行智能合约开发和应用。如果说比特币属于区块链1.0时代,以太坊就属于区块链2.0时代。
-
Wanchain创始的前前后后
2014年,我与几个奥斯汀的朋友一起,创建了公证通(Factom)。
这是一家专注于数据存证的区块链公司,我是CTO。公司名字来自拉丁文Factum,意为“确定的事实”。
我还请Vitalik Buterin担任顾问,围绕公证通的整体设计、技术和白皮书,进行过多次交流。最后,公证通的白皮书是这样写的:“提供世界上首个准确的、可核查的和不可更改的审计公证流程和方法。”
在当时,全世界几乎没有这样的公司。这就注定,它会走得异常艰难。市场处于极早期,教育客户的过程非常漫长。很多人不明白区块链是什么,能做什么。
2015年10月,公证通开始走进大众视野:《经济学人》杂志发表了名为《区块链,信任的机器》的报道,对公证通进行了专门介绍。这或许是第一个把区块链带到大众面前的报道。
到2016年,我决定回国,并与联合创办公证通的好友汪波一起,在中关村创办了网录科技,并获得千万级天使融资。当时的想法是,利用跨链协议,打造一条基于以太坊技术的公链。
它叫万维链(Wanchain),能结合智能合约和隐私保护,打通其他公有链和联盟链,完成不同资产之间的跨链交易。
但跨链的技术难度极高。因为每条链的共识机制和底层技术,都不一样,互通极难。此外,做资产转移时,还必须格外谨慎,避免双花。
使用中继模式的BTC-Relay是一个部署在以太坊的Relay合约,为以太坊的跨链提供可信的数据源,但是其问题是需要消耗大量的Gas,对于使用者来说成本非常高。
区块链技术发展至今,诞生了无数条不同的链,众多链的信息隔离不可避免的形成了区块链的价值孤岛效应。跨链从字面上的理解就是把不同的区块链连接起来,就像两岛之间建桥相连一样。建桥的方案是一方面,但至少要搞清楚这座桥要通行的是什么,行人、行车、行火车?
众多区块链项目都提到了跨链,跨链的本质到底是什么,跨链需要解决的是什么问题却鲜有探讨。
2.到底什么在跨链?跨链的本质是什么?
区块链的发展,创造了无数的Token,不同的Token本质上是一种记账符号,某种价值的符号表现。这一符号可以是作为价值尺度的“货币”符号(如比特币),或者是某种“内在价值”的虚拟化符号。
今天,实际资产被以货币为度量的金融虚拟资产(如股票、金融衍生品等)所表征,社会实际资产的积累也表现为虚拟资产的积累。区块链为某种“内在价值”提供了更加便捷、透明和公平的记账方式,区块链上的Token可以让更大范围的“内在价值”被体现。
简单来看,跨链就是解决如何让一条链上的Token转移到另一条链上,从技术层面来看Token是一段数字信息。但如果Token的传递只是简单信息传递的过程,那在分布式的系统中,中本聪也没有必要设计精巧的POW机制来解决双重支付问题。
Token代表的是某种价值,价值就需要有精确的记账作为保证,否则价值将烟消云散。在传统世界中,中心化的记账体系下,无论是出于责任、义务还是商业利益,央行、商业银行、支付机构、证券交易所、证券登记机构、房产登记机构在确保各类价值记账的精确性。而在区块链世界中,记账的精确性就由一个个分布式的区块链账本保障,所以说跨链的不只是信息流,更是信息流背后的需要被精确记账的价值。
区块链记录的是价值,跨链的也是价值,如果从记账的角度,单一区块链解决的是分布式情况下如何精确记账的问题,跨链解决的是两个分布式账本针对同一用户或不同用户控制的账户发生Token转移时,如何在两个账本中精确记账的问题。
很多白皮书或者技术文章中把跨链称为协议,但这个协议不完全等同于互联网的TCP/IP那样的信息传输协议。因为信息传输协议只需要确保接收方收到完整信息,发送方得到相应的反馈,在这个过程中如果出现传输障碍是可以多次反复的发送,而不用考虑信息重复发送的问题。
但是在账本之间同步数据,就需要确保两个账本的变动是一致的,否则就会出现双重支付或者价值丢失的问题。在这过程中信息传递只是两个账本同步数据的过程,而不是最终的目的和结果。跨链本质是在价值守恒定律前提下,价值在不同区块链之间流动的过程。
由于区块链技术快速发展,每一条链的记账机制、共识机制都有区别,建立通用的跨链协议就变的更加复杂。这完全不同于互联网中所说的“协议”(protocol),而更像是“协定”(agreement)。
如果用现实世界举例,“协议”(protocol)类似于传真机和集装箱,这类协议相对容易达成,而且一旦达成,将被更大范围内使用,规模效应明显。而跨链“协定”(agreement)更像是双边和多边的贸易协定,在达成和实现过程中个性化更加明显,大范围统一更加困难。如果把每一个区块链生态看成一个经济体,“协定”就更加贴切了。
现实世界中的“协定”(agreement)不只是一个技术问题,协定的达成是需要参与方协商一致的,但是在区块链的世界中,“协定”(agreement)的对象不是一个主体,而是一个分布式的网络,希望通过传统的主体谈判模式达成“协定”基本不可能——因为没有主体,比特币生态内部调整内部协议(如扩容)都无法达成共识,与其他区块链网络达成跨链协定更加不可行。
区块链世界的跨链“协定”(agreement)变成了一个技术问题,需要通过技术的方法实现两个账本的跨账本精确记账问题。
分析到此,跨链称为协定(agreement)和协议(protocol)都是不准确的,而是一种机制(mechanism)。跨链本质上是一套链和链之间的清算机制,而清算的本质就是精确记账。
3.跨链有哪些典型的应用场景?
在最初只有比特币的时代,法币与比特币的交易机制让比特币这个极客圈子的“玩具”有机会与现实世界接轨,让更多人有机会持有比特币。随着更多Token的诞生,法币交易通道的减少,币币交易让区块链世界快速发展成为了一个相对独立的经济体系,比特币成为了区块链世界中的硬通货和价值度量尺度。
在整个过程中,中心化交易所不但是现实世界与区块链世界的出入口,还是不同区块链网络的连接器。简单来说,交易所决定了一个新的Token是否有资格接入其他Token以及法币共同构成的清算网络。很多区块链项目的发展在被扭曲为满足交易所需求的方向上越走越远。区块链经济网络急需分布式的清算机制加入,其意义不在于要迅速替代中心化的交易所,而是带来一种新的选择与制衡,让区块链的真正价值被再次发掘,让用分布式的方式解决分布式的问题成为可能。
跨链能力实现后最重要的应用场景是分布式交易,这里包括分布式交易所、分布式场外交易、中心化竞价撮合与分布式清结算混合模式的交易所等多种实现模式。
在以太坊的白皮书中,Vitalik提到的最重要的应用场景之一就是金融衍生品或者类金融合约应用,这也是智能合约似乎可以发挥最大价值的应用场景之一。我们依然相信Vitalik的判断和理想,只是现实发展情况出现了一些变化。
大量的竞争链(无论是公链还是联盟链)的出现,让无论是数字资产,传统上链金融资产存在于很多条不同的链上,也就是记账的基础账本不同。在此情况下,要实现数字金融创新的前提条件除了智能合约之外,还需加上分布式的清算能力(跨链能力)。否则基于智能合约的应用场景将十分有限。
举个例子,如果一个传统的金融资产在某个银行联盟链中,一个数字资产在以太坊网络,一个稳定货币在Wanchain网络,要基于这两个基础资产创设一个以稳定货币作为对价的金融合约(以智能合约的方式而非中心化的方式),在没有跨链能力的时候是完全不可行的。因为要创建这样一个智能合约,需要首先将上述三个资产转移到一个区块链网络中,然后在该网络中部署智能合约,才能实现通过合约控制三个资产的相互关系。简单解释就是先把三个资产放到一个账本中,再通过智能合约统一控制这个账本。
Wanchain在白皮书中就提到过,区块链技术在传统资产上链和数字资产两个领域的发展如同两个平行的世界。从长远来看,区块链带来的社会经济变革总会让这两条平行线交汇在一起。
从技术上来看,无论是已经出现的以传统资产上链为代表的商业联盟链,还是以稳定币、虚拟资产上链为代表的公链项目,甚至是国家数字货币为代表的主权公链,最终要发挥更大的商业价值和产生更多的创新应用,都需要跨链能力作为支撑。
4.当前跨链的不同模式
繁杂的跨链技术分析文章都试图对跨链技术进行分类,经常被提到的如中继模式(Relay),侧链模式(Sidechain)等,这些分类文章往往没有弄清楚不同模式解决的是跨链中的什么难题,不同的模式往往只是解决了跨链中的某一难题而存在的,放在一起分类不够严谨和科学。下文中我们将详细介绍和分析目前跨链中常用的模式,而不是简单、粗暴的去做分类。
Relay中继
BTC-Relay是一个在以太坊上部署的Relay合约,其目标是通过第三方提交BTC的区块头,为以太坊上的跨链等其他应用提供一个可信的BTC数据源。在Relay合约会校验区块头的合法性,由于BTC强大的算力保证,第三方伪造合法区块头几乎不可能,因此理论上BTC-Relay能够提供一个客观的比特币链上的数据。但是BTC-Relay的问题在于,由于存储区块头和验证合法性需要大量的Gas,第三方提交区块头将花费大量的手续费,而调用Relay的交易较少无法覆盖提交区块头花费的手续费,如果提交方将调用手续费提高,则调用Relay的交易会变少,最终仍然无法覆盖手续费,对于数据的提交者是不经济的。
BTC-Relay是平均10分钟提交一次(比特币出块速度),如果是提交出块速度很快的链的区块头,提交所有区块头本身将是一笔巨大的开销。
Relay本身并不是一个完整的跨链方案,而是为解决跨链中的原链数据的客观性问题(难点Alpha),该机制不涉及交易的处理。
侧链
跨链概念的鼻祖毫无疑问是Sidechain的提出者,Blockstream团队。其论文中对于跨链涉及到的难题,提出使用双向锚定(two-way peg)的方法:为了将父链币转移为侧链币,父链币被发送到父链上的一个特殊输出中,该输出只能由侧链上拥有的一个SPV证明来解锁。SPV是一个包含了交易所在的区块头和交易本身的密码信息。
这种方法存在两个问题,一个是SPV证明的大小和验证过程的复杂性都要远大于普通交易的验证。另一个是,现有区块链的协议中是不包含SPV验证的,两条链都需要更改协议才能实现跨链,也就是说需要通过协议的更改让一条链能够读懂另一条链,甚至进行联合挖矿。对于后者,前文中我们已经论述过,这几乎是不可能完成的任务。
无论如何Sidechain是第一个将跨链的定义清晰描述的,其提出的方案中包含了如何保证交易的原子性(难点Beta),以及如何通过SPV去验证另一条链上的交易状态(难点Alpha),整个方案是完整的而且在理论上也十分合理。
Sidechain还提到了另一种更为简易的方案:原子交换(Atomic Swap),利用时间锁及一个密数,直接在需要跨链的两人之间完成交易。这种模式在闪电网络和ripple的机制中也被应用到,原子交换是一种非常巧妙的跨链设计。当然可以说闪电网络和ripple本身也是一种跨链的机制。Wanchain在2.0版本实现跨链的过程中也应用了该机制,后文中我们将详细描述。
Polkadot
Polkadot拥有一个比任何跨链方案更加宏伟的设想,他提出的机制不只是要解决跨链的问题,还是要创造一种异构的,具有可扩展性(Scalability)的架构。相比于Sidechain方案只是解决了比特币与其侧链的跨链问题,Polkadot的提出者Gavin Wood希望用一条中继链(Relay-chain)来实现其他所有链的交易的验证工作(难点Alpha),在通过平行链的创建实现与原链的交易与通信(难点Beta)。
对于中继链,通过多种角色的划分与分组来实现去信任的验证机制。而其验证过程本身并没有超出Sidechain提出的基本的验证理论。Polkadot白皮书展示了一个宏伟的框架,但其也承认只是一个框架性的描述,对于细节性的实现逻辑还未展开和进行可行性的验证。
Cosmos
Cosmos在某些理念上与Polkadot相似,也是希望创造一个异构的系统解决跨链问题。其引入了Hub与Zone的概念,但同样的问题是跨链要面临的两个难题并不会因为是一个异构设计而变得容易解决。根据Cosmos目前最新的进展,我们并未看到解决如上问题的细节方案。
由于篇幅原因,更多的跨链项目在此不详细展开。无论是架构上的新思路还是引入很多新的概念,跨链都无法绕开我们提到的两个难点。读者在剖析跨链时,可以更好的从如上两个点去分析,更容易理解到本质并且不被一些新的名词或概念所迷惑。
5.Wanchain跨链的实现模式
Wanchain在进行跨链设计及实现的过程中,无疑借鉴和参考了众多前人的经验并在此基础上以可用性为目标,进行了理论和工程上的创新。如果说每一篇关于跨链的论文都在为跨链理论做出贡献,Wanchain希望基于理论创新在工程上为区块链的跨链做出贡献,并推动跨链技术的落地。
Wanchain的跨链机制遵循如下设计原则:基于密码学原理的安全保障,到跨链的本质是价值的转移,因此安全性是考虑的重中之重。Wanchain的跨链机制通过巧妙设计和使用密码学机制解决难点Alpha和Beta,整个跨链流程的安全性基于密码学原理,这样从根本上给予了万维链跨链机制安全支撑。
异构性与延展性:
从架构上来看,Wanchain是一个异构跨链框架,也就是说Wanchain跨链的机制不只针对某一条具体的链,而是希望搭建一个可以不断延伸拓展的通用机制。这个通用机制确保未来通过社区的开发力量,可以不断与更多的链和链上的多种Token实现跨链交易。
可用性:
Wanchain的跨链机制不单纯的追求纯粹的理论创新和概念设计,而是让理论设计能够与工程实现有机结合,在开发过程的每个阶段体现出工程上的开发成果以及对于最终用户或者开发人员的可用性。
迭代开发:
考虑到跨链机制的复杂性,在跨链实现上Wanchain进行迭代开发,一方面在确保最小可用功能的情况下完成每一个版本的升级直到最终实现较为完美的解决方案,另一方面确保代码的可拓展性,保证每一次迭代的平滑进行。
6.跨链的难点及我们的解决之道
第一个难点是如何通过分布式的方式验证原链上的交易状态。
原链上的交易信息对于另一条链来说是一个外部信息(Oracle),如何保证这个外部信息进入另一条链时是正确的就是整个跨链机制的重要环节。如果要考虑到使用POW机制的区块链上没有终局状态(始终存在分叉的情况,只是随着确认块的增加,概率逐渐变小),这个问题的复杂度会更高。
我们把这个难点定义为难点Alpha。如何去信任的验证另一条链上的交易,Wanchain在白皮书中提出了一个角色Voucher,Voucher不是单一的个体,而是一个共识组,通过共识去验证另一条链的交易合法性和终局性。
Voucher共识的模式目前正在理论验证和工程验证的阶段,Voucher面临的主要障碍在于工程上和经济上。工程上Voucher信息的提交和验证如果上链,需要耗费较高的链上资源,会严重限制交易的吞吐量;经济上,如何通过更合理的激励机制让Voucher成员积极参与并消极作恶。
在Voucher机制没有完美实现之前,基于可用性与迭代开发原则,我们在即将上线的2.0方案中引入了原子互换完成跨链的过程。
原子互换的基本原则是不需要第三方公证人,而是让交易的参与双方自行判定对方的交易是否完成,通过哈希时间锁(hash time lock)和密数(Secret)控制,实现交易双方“一手交钱一手交货”,也就是两种不同token的互换。这种方式能够有效的规避第三方公证人不完美的问题。
在Wanchain的跨链过程中,两种互换的token分别是指原链token与Wanchain上的映射token. 当原链上的某个用户需要发送一笔跨链交易使原链token能够转移到Wanchain上时,用户的钱包会构造一笔原链交易,这笔原链交易被哈希时间锁锁定,Wanchain上负责处理跨链交易的Storeman在检测到这笔跨链交易后,会在Wanchain上发起一笔跨链的合约交易,该笔交易负责产生映射token并转移到用户指定的跨链接收账户,此时该笔交易被跨链合约锁定。
当用户的钱包检测到被跨链合约锁定的交易后,主动释放密数到跨链合约中,Storeman通过该密数获得锁定账户中对应的原链token的控制权,用户获得Wanchain上映射token的控制权。如果这个过程中,用户在哈希时间锁的时间范围内没有释放密数,则哈希时间锁到期后,用户重新获得原链token的控制权,跨链合约中的交易自动失效。
以上跨链过程看似复杂,但多数功能都由钱包和合约完成,用户只需要在发起交易、释放密数、撤销交易的环节进行操作。对于参与跨链的Storeman,Wanchain会提供专门的客户端,客户端根据协议进行无需值守的自动化运行。
另一个难点是跨链交易要确保原链上的token总量不会因为跨链而减少或增多(即价值守恒定律定义为难点Beta)。
原链上Token总量减少的后果是当Token需要跨回原链时,原链无法产生新的Token,也就是只能单向跨链。原链Token增多是名义上的增多,实际上是本来已经跨到另一个账本的Token在原链上被双重支付了,这种情况违背了精确记账的原则,是在任何时候都无法接受的。因此当Token跨出原链时,原链上的Token必然需要进入“锁定”的状态,当Token跨回原链时,这些Token需要被解锁。
如何通过去信任的管理机制完成“锁定”“解锁“的过程就成为了跨链的关键。
对于原链锁定账号的去信任管理机制,Wanchain采用了首创的安全多方计算+门限秘钥的方式,锁定账号的管理者命名为Storeman。
简单描述,对于锁定账号的生成到转账操作,我们通过密码学安全多方计算和门限的方法实现了一种小型的共识,参与方必须共同参与计算才能生成锁定账号的公私钥,而锁定账户的私钥严格来说只是理论存在,从没有实际出现在网络中,而是以碎片的方式分散在各Storeman手中,通过多方计算的方式参与账户控制,当需要进行交易时,参与方要再次合力才能共同构造签名,为了保证可用性,构造签名的参与方并不需要完全参与,而只需要达到一个门限值即可(N个参与者中的M个,M<=N)。
理论上N与M的数量越大,安全性越高,计算代价越大。经过我们理论和工程上的验证,我们在2.0版本中暂时选取N=21,M=16的参数运行(与EOS的21个超级节点数量相同完全是巧合)。经过测试,以如上参数进行交易签名的吞吐量远远大于所需要连接的主流的区块链,也就是说安全多方计算和门限秘钥方法不会是跨链的吞吐量瓶颈。
根据如上机制,16个以上的Storeman成员合谋会造成原链Token丢失。为了避免这一问题,类似POW或者POS的设计,任何参与者都需要付出参与的代价并获得参与的回报,如果发生合谋行为,不但整个网络受害,其自身的投资和未来的收益都将损失。在POW中这个代价是购买矿机,在POS中这个代价是锁定一定数量的Token。我们在Storeman机制中引入了类似机制,任何Storeman的参与者(Storeman menbers)都必须缴纳一定数量的WAN到管理Storeman的智能合约中锁定,Storeman能够处理的跨链token数量与缴纳的锁定金相关。同时Storeman作为保证跨链机制运行的参与者,会同时获得系统奖励和跨链手续费。
必须指出的是,当Storeman缴纳的锁定金WAN相对原链token的市场价值出现长期的巨大的贬值时,Storeman依然有合谋的动机。最大限度的避免这一情况,我们引入了两个机制,一个机制是Storeman从申请退出到完全退出,有一个较长的时间周期。在这个周期内,Storeman无法准确预测市场的波动,也就无法准确判断是作恶还是按规则游戏获得的收益(或者遭受的损失)更大,短时的市场波动就不会造成影响。另一个机制是,通过Oracle输入调整锁定金的比例。这个Oracle输入在2.0版本中会通过基金会完成,之后的版本会通过节点投票的形式完成。
对于保证交易的原子性,我们通过智能合约控制Storeman的交易行为,Storeman在Wanchain上有一个跨链的额度(Credit),当从原链跨出时,相应额度被冻结,交易完成时,额度转换为等量的Wanchain上的映射token(以太坊的映射token用WETH表示),如果交易撤销,额度解锁。当映射token返回原链时,映射token销毁后解锁Storeman额度。在这个过程中,严格遵循原链token与Storeman额度保持同方向记账,Storeman额度与映射token保持反方向记账的逻辑,以确保整个交易过程中任何一个环节的原子性。
在2.0中我们会实现的功能及应用场景
2.0是Wanchain跨链功能的第一个版本,这个版本的意义在于从工程上验证我们理论设计的可行性以及瓶颈障碍,便于后期的迭代。2.0跨链功能并非一个相对完美的跨链版本,但肯定是一个可用的跨链版本。为了保证安全性,我们会谨慎的推进,包括在初期限制Storeman的数量,限制跨链的金额等。
2.0实现与Ethereum的跨链,基于此我们会推出:1、Storeman客户端(Command Line模式);2、同时支持Ethereum和Wanchain的双币种钱包,能够进行两条链的链内转账和跨链转账Storeman调用的RPC接口;3、与Ethereum网络和Wanchain网络交互的节点API接口(供轻钱包等发送和查询交易);4、能够查询Ethereum与Wanchain跨链交易的官方浏览器;5、针对开发者的开发文档及针对普通用户的操作文档。
2.0实现后可以使用的应用场景:部署WAN,ETH与Wanchain上其他token的分布式交易合约;部署能够同时支持WAN与ETH 的投资;部署WAN,ETH与Wanchain上其他token的借贷合约。
7.Wanchain跨链的发展路径
跨链是推动基于区块链的数字经济全面发展和融合的技术驱动力。我们无法预知未来基于区块链的金融是怎样的一番景象,但是回看历史,互联网技术催生的第三方支付、科技金融创新正在以巨大的力量重新雕刻着传统金融的轮廓,深刻的影响着人类金融的进程。
2018年
Wanchain将在即将发布的2.0版本中支持Ethereum到Wanchain的跨链。在之后的2.x版本中,随着跨链功能的稳定,我们将逐步开放Storeman的注册机制。最终形成分布式的、大规模的Storeman参与跨链生态。
在Storeman注册机制开放之后,我们将预留给节点奖励的WAN中预置10%作为Storeman的系统奖励。奖励每10,000个区块结算一次。经过更严格的测算和测试后,我们将公布奖励的具体规则。
Wanchain将在今年年底前支持BTC的跨链,并争取完成一到两种以太坊ERC20token的跨链。
Wanchain将在今年继续完善Storeman的共识机制,包括完善对于Storeman的作恶,不作为等恶意行为的惩罚机制。
2019年
在2.0版本稳定之后,我们将鼓励更多的开发者,利用Wanchain的跨链机制,开发更多的其他链上的Token的跨链,并对于开发者给予奖励,以加快Wanchain与更多的公链实现跨链的进展。
明年的重点研发方向将在Wanchain的POS机制及普通交易性能及跨链交易性能的提升上。与此同时,我也与全世界研究跨链协议的公司组建联盟,希望构建未来区块链的互联网基础协议标准。
在打破区块链世界的壁垒之外,我还希望打破传统资产与数字资产之间的壁垒,让它们融通无碍。我希望万物都能转化成资产上链,而所有资产,都可以自由流通,从而打通传统世界与区块链世界。
在我的脑海中,存在一个美好的未来世界:人人都有数字钱包,里面有无数的资产。大家能用数字资产抵押获得数字法币,用数字货币购买服务和理财产品,甚至能用它们交水电费……到那时,互相隔绝的区块链,将会走进一个新的时代:万物可上链,万物可流通。
本文内容源自吕旭军先生的分享,部分资料来自网络,由“未来大脑”采编,Mr.DAO主编,未经分享人最终审核。