跨链技术被认为是区块链领域发展的圣杯,是实现万链互通的关键技术。现在的跨链技术形态,有些是在实现资产互通,有些是提出了一套通信协议,实现区块链间的通信,还有些是提出了新的系统架构和运行模式,支持更多区块链的接入。
跨链一开始的目标在于让资产能从一条链转移到另一条链,又可以安全的返回,后来扩展到解决两个或多个不同链上资产及状态的互相传递、转移、交换的问题。随着现在跨链基础设施的日趋成熟,对于跨链概念的炒作已经冷却。在这样一个时刻,我们来对现有的跨链技术形态,做一个冷峻的观察。
根据跨链技术的演进和实现方式,以太坊的创始人 Vitalik 曾经总结了 3 类跨链技术,分别是哈希时间锁(HTLC),公证人,侧链/中继。我们将把公证人,和侧链/中继进一步分类,各自分成两个小类,这样,我们将分别介绍五种跨链方案。
哈希时间锁合约是通过一套密码学方法,来实现跨链的去信任资产交易,比如我的 BTC 和你的 ETH 交易,就可以通过哈希锁来实现交易的原子性。
其原理大致如下:用户 A 生成随机数 s,并计算出该随机数的哈希值 h=hash(s) 发送给用户 B,A 和 B 通过智能合约先后锁定各自的资产。A 公开出示 s 可获得 B 锁定的资产,同时 B 也获得了 s,可获得 A 的锁定资产,若超过设定的时间,A 没有出示 s,智能合约中锁定的资产会自动回退给双方。
公证人机制是指由公证人建立一个中间账户,用户将资产转入中间账户,由公证人跨链发行一种映射原 Token 的影子 Token 给到用户。当用户需要赎回的时候,将影子 Token 销毁,并向公证人提供证明,公证人将中间账户中的原始 Token 转到该用户的地址。
公证人必须是可信的。公证人可以凭借自身信用,也可以通过智能合约做超额抵押来获得信任。公证人可以是单个主体,也可以是多个主体通过某种规则组合形成的联盟。
根据公证人的单主体还是多主体,以及公证人的信誉来源是超额抵押还是自身信用,我们可以把公证人方案划分为 4 个子类:
其中,HBTC,BTTC,imBTC 均属于 ② 方案,tBTC 属于 ③ 方案,X-BTC,WBTC 属于 ④ 方案,采用方案 ① 的项目暂未发现。你可能发现,全是比特币跨链项目,为什么如此,我们后文在对比分析中会有详述。我们并不需要关注公证人的数量,因此,我们将公证人方案,仅按信任来源,分为两个子类。
OKEx将于9月29日14:00上线FLM杠杆交易、余币宝及永续合约:OKEx官方刚刚发布公告称,将于9月29日14:00在网页端、APP端及API正式上线FLM杠杆交易、余币宝及FLMUSDT永续合约。[2020/9/29]
公证人通过超额抵押建立信用,这意味着,公证人抵押的资产 v2,必须大于中间账户中的资产价值 v1。当公证人出现作恶行为或者过失行为,导致中间账户里的资产遭受损失,那么抵押的资产将可以用来赔付给受损失的用户。然而,超额抵押会给公证人带来资金成本,这些成本,会转化为高额的跨链的手续费,而高额的跨链手续费会让用户望而却步。
公证人也可以通过自身信用来背书,让用户信任。但这种信任是中心化的,和区块链的基本精神是背离的。但由于这种方式手续费低廉,甚至免费,因此还是吸引了大批用户。这种由中心化机构担保的跨链方式,对于跨链资金体量小,安全诉求低的用户而言,也是很好的选择。
第三种是侧链/中继的方案。侧链和中继其实是同一个概念,中继链就相当于多条链共同的侧链,为了简化表述,我们后文统一称为桥接链方案。
桥接链方案我们分两类来说,分别是通用方案和同构跨链专用方案。
桥接链通用方案和公证人方案一样,仍然存在一个中间账户,但中间账户的安全,不靠公证人来保护,而是靠智能合约来规范,这意味着中间账户将是一个合约账户,其资产管理规则被智能合约的代码约束,而不是由公证人约束。如果代码本身没有问题,只要部署该合约的链是安全的,那么合约中的资产就是安全的。
当然,如果桥接链本身有问题,也会影响合约账户里的资产安全。因此,验证人们必须 Stake 一定价值的 Work Token 来保障桥接链的安全运行。假设这个价值是 v3,那么这个 v3 是可以远远小于合约账户里的资产价值 v1 的。
为什么 v3 可以小于 v1 呢?因为现在较为通行的 BFT-PoS 类共识,几乎杜绝了能够篡改账本的“双花”攻击(如果桥接链账本被篡改,则有可能间接威胁到合约账户中的资产安全),实现了更强的共识安全。BFT-PoS 可以做到即时确定性,而非概率确定性,攻击者即便掌握了半数以上的 Staking Work Token,最多只能做到拒绝签名区块,让封块速度减慢,让网络无法处理交易,已经形成最终确定性的区块中的交易是无法被逆转的。我们可以认为,只要 BFT-PoS 链没有代码故障,无论 Token 市值多小,都是安全的。
虽然恶意的验证人,无法动摇中间账户内的资产安全,但网络瘫痪,停止验证新交易,也不是我们希望看到的状况。因此,v3 最好也不要太小,我们还是希望桥接链的 Token 市值越大,Staking 比例越高,去中心化程度越高越好。
v3 可以小于 v1,因此不会有超额抵押带来的高额跨链手续费,使用跨链桥将可以做到很廉价。那么有没有方法进一步降低跨链成本呢?可能有的朋友会想到让多条链复用同一座桥,这便是 Poly Network 的思路。
桥接链通用方案,看起来已经很完美了!但我们对于跨链,还有更高的追求。其一,多链复用的资产桥,可以尽可能多的兼容现有的链,但新的链不断涌现,要再去扩充兼容太麻烦了,能否有一个通用的链框架,让新链遵循框架,能够一劳永逸的实现跨链呢?其二,我们对于跨链的追求,并不只是想实现资产桥,我们还希望链间能传递更丰富的信息,有强大的互操作性,例如可以跨链调用合约,让多个链真正连接起来,形成有机整体。
基于对以上两者的追求,区块链世界里有了波卡和 Cosmos 这样的同构跨链项目。两者都采用了“1 母链 + N 子链”的架构,其中母链是所有子链的公共桥接链,任何开发者都可以按照规定的框架开发子链,并申请接入母链。
Cosmos 母链名为 Hub,子链名为 Zone,通过内置的 IBC 协议,Zone 之间可以实现跨链通讯,既能传递资产,也能传递其他格式的信息,实现跨链互操作性。波卡母链名为中继链,子链名为平行链,平行链之间通过 XCMP 协议来通讯,以实现跨链互操作。事实上,波卡的中继链不光起到桥接作用,还可以让接入的平行链共享其共识层的安全性,而对于 Cosmos 的 Zone 而言,链的安全是需要自己负责的。
哈希时间锁虽然能实现跨链交易的原子性,但无法实现资产的跨链流通。这意味着,通过哈希时间锁,我的 BTC 和你的 ETH 进行安全的交易,但并不能让 BTC 流通到 ETH 上,也无法让 ETH 流通到比特币链上。但哈希时间锁的通用性最强,对链的属性没有任何限制。
公证人方案,可以在一条图灵完备的链和一条非图灵完备的链之间实现资产跨链。当然,这种资产跨链是单向的,只能由非图灵完备的链上跨到图灵完备的链上。例如把 BTC 引入 ETH,反之把 ETH 引入比特币链则不行。这并不是公证人方案的限制。事实上,公证人方案也可以实现两条图灵完备的链间的资产双向跨链流通,但由于其要么费率较高(超额抵押方案),要么倾向于中心化(自身信誉方案),人们更多的会采用桥接链方案。
前文提到一个问题,为什么比特币的跨链更多采用了公证人方案,而非桥接链方案呢?这是因为比特币链不是图灵完备的。在这里解释一下,为什么桥接链只能在双图灵完备的链间跨链呢,是因为桥接链不是一个独立的存在,而需要部署在两端链上的合约配合,就像一座桥不能悬空存在,必须在两岸有桥墩作为依托。
在双图灵完备链间跨链,桥接链方案更有优势,主要体现在无需超额抵押,且可以多链复用,可以更低的成本实现资产跨链。像波卡,Cosmos 这样的跨链项目则直接搭建了一个全新的多链架构,超越了资产桥,在同构链之间实现了丰富的互操作性。
我们阐述了三大类(五小类)的跨链方案,我们将各方案的特性对比做成表格。
以上我们对各跨链方案的阐述顺序,其实有一条清晰的时间脉络。最早的主流链有比特币和以太坊,人们想要实现 BTC 和 ETH 之间的交易,最先能想到的便是哈希时间锁这样的,不需要借助任何外力的纯密码学方法。2013年5月, Nolan 在 BitcoinTalk 论坛提出了原子转移(atomic transfers)思路。后来,人们开始建设基础设施,建立资产桥,让链间的资产能够互通,在这当中,比特币作为市值最大的加密资产,吸引了很多人想把比特币资产导入到其他链,但由于比特币不支持智能合约,人们只好使用公证人机制。
由于理念的不同,有的项目采用了去中心化的,成本较大的超额抵押方案,有的项目则采用了简单直接的中心化托管方案。为了降低跨链成本,人们想到了,让多链共用一座链桥的方式。为了一劳永逸,实现对新链的兼容性,人们制定了新链开发的框架和标准,如 Substrate 和 Tendermint,为了实现更多维度的互操作性,人们创造了同构多链架构,如 Polkadot,Cosmos。现如今,区块链跨链基础设施日趋成熟,以至于人们已经不再常常讨论跨链,就像我们看到灯亮起时,不再谈论“电”的原理一样。
区块链的从业者们从未停止思考,从未停止追求更优方案,在他们的推动下,区块链世界像生物一样向着更复杂,也更简单的方向不断演化着。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。