主页 > 老版本imtoken > 跨链浅析:从原理到技术

跨链浅析:从原理到技术

老版本imtoken 2023-01-17 14:44:06

1 摘要

跨链技术本质上是一种将A链上的数据D(或信息I,或消息M)安全可靠地传输到B链上并在B链上产生预期效果的技术。因为区块链系统本来就是一个特殊的分布式账本数据库系统,所以最常见的传输数据就是资产的数据,比如代币余额。

目前主流的区块链跨链技术方案主要有:公证人机制、哈希锁、侧链&中继链、分布式私钥控制等,根据其具体实现方式。

目前最著名的跨链项目是 Cosmos 和 Polkadot,它们都使用了基于中继链的多链多层架构。可见侧链&中继链技术将是未来跨链技术的主力军。

本文首先简单介绍一下跨链的技术原理。简要介绍公证人机制、哈希锁,详细介绍侧链&中继链技术。那么本文将介绍几个相关的跨链项目,包括基于ETH的Plasma、基于Polkadot的Darwin网络、基于Cosmos的IRIS。

2 公证机制和哈希锁

跨链交互根据区块链底层技术平台可分为同质链跨链和异质链跨链。同构链之间的安全机制、共识算法、网络拓扑、出块验证逻辑都是一致的,它们之间的跨链交互也比较简单。异构链的跨链交互相对复杂。例如,比特币使用 PoW 算法,Fabric 使用传统的确定性共识算法。区块的组成和确定性保证机制有很大不同,直接的跨链交互机制不易设计。

为了实现跨链的安全和可信,必须对跨链机制和步骤有一些要求,其中最重要的是跨链交易的原子性。对于普通的链上交易,交易需要支持原子性——如果交易失败,需要回滚。跨链交易也是如此。当它失败时,涉及该事务的两个或多个链的事务必须回滚。

2.1 公证人方案

公证人也称为见证机制,是一种中介方式。假设区块链 A 和 B 本身不能直接互操作,可以引入一个相互信任的第三方作为中介,这个相互信任的中介可以验证和转发跨链消息。很多时候,这个公证人/中介就是交易所。优点是支持异构区块链跨链,缺点是存在中心化风险,只能实现交易所,不能实现转账。

跨链交易示例:假设 Alice 想和 Bob 用 1 BTC 换 50 ETH

Alice 将她的 1 BTC 存入交易所的比特币地址;Bob 将她的 50 ETH 存入交易所的以太坊地址;Alice 在交易所下单:1 BTC 换 50 ETH;Bob通过与Alice的交易所交易完成,Alice得到50 ETH,Bob得到1 BTC

4. Alice 从交易中取出 50 ETH 到她的以太坊账户;Bob 从交易中取出 1 BTC 到她的比特币账户;

Alice 和 Bob 的 BTC 和 ETH 的交换是通过引入一个中介来完成的。从这个例子可以看出,兑换方式目前只能支持资产兑换,而资产兑换的原子性和安全性完全由中心化交易所保证,存在一定的中心化风险。

2.2 哈希锁定

哈希锁的一个典型实现是哈希时间锁合约HTLC(Hashed TimeLock Contract)。哈希时间锁最早出现在比特币的闪电网络上。哈希时间锁巧妙地采用了哈希锁和时间锁,迫使资产的接收方在期限内确定付款并生成付款证明给付款人,否则资产将退还给付款人。付款人可以使用收据证明在收款人的区块链上获取一定数量的等值资产或触发其他事件。哈希锁只能进行交换,不能进行资产或信息的转移,使用场景有限。

跨链交易示例(以上节交易需求为例):

Alice 随机构造一个字符串 s 并计算其哈希值 h;Alice 将 h 发送给 Bob;Alice 通过合约锁定自己的 1 个 BTC 资产,设置更长的锁定时间 T1,然后设置获取 BTC 的方法。条件:Bob 提供 h 的原始值 s;Bob 将 50ETH 锁定到自己的合约中,并设置一个相对较短的锁定时间 T2 (T2 < T1)。然后设置 50ETH 的获取条件:Alice 提供 hs 的原始值;Alice 将字符串 s 发送给 Bob 的合约获得 50 ETH;Bob 在步骤 5 中观察 Alice 的 s 值,并将其发送到 Alice 的合约中,成功获得 1 BTC;至此,资产兑换完成,如果超时,锁定的资产将恢复原状所有者。

从上面的过程可以看出,哈希时间锁合约有一些约束:

2.3 分布式私钥控制

什么技术作为比特币的基础技术

国内关于分布式私钥控制的博客真是让人窒息,治愈多部分计算和阈值密钥共享方案的技术。事实上,分布式私钥控制与跨链无关,也没有解决跨链的两个难点之一。它将中继链账户的私钥分成冗余副本,然后分发给验证人,可以防止验证人在跨链资产交换的解锁和锁定阶段单方面作恶,因为只有多个验证器集。只有私钥。

国内关于分布式私钥控制的博客真是让人窒息。如果您想了解更多关于分布式私钥控制的信息,请参阅 Wanchain 的白皮书。

3 侧链/中继链3.1 侧链的含义和意义

首先,什么是侧链?

据了解,一开始,主链特指比特币主网区块链。因此,所谓的侧链是指除比特币区块链之外的任何能够遵循侧链协议并与比特币通信的区块链。侧链让比特币拥有更好的流动性;在比特币主网上开发应用程序很困难。现在可以通过在侧链上开发应用程序,然后以互操作的方式与主链连接来解决这个问题——间接使用比特币,进一步巩固比特币的中心性。

但是,自然不可能说主链特指比特币。根据维基百科:“侧链是指与主区块链平行的区块链。来自主区块链的条目可以连接到侧链,也可以通过侧链连接;侧链可以独立于主区块链运行(例如,通过使用替代记录保存方法)。一种侧链模型是驱动链。

该声明包含三个要点:

侧链是相对的。我们不能简单的说某条链B是一条侧链,而必须说这条链B可以是一条链A的一条侧链。侧链独立于主链。链 B 可以有自己的功能,当它自己运行时不需要链 A 的支持。如果 B 链出现故障或被集中控制,不会直接影响 A 链本身的运行(但可以间接影响,例如 B 链被控制后,A 链仍然与其交互)。侧链和主链可以相互连接,即跨链。当要实现跨链功能时,B链和A链需要相互通信。因为侧链的互通机制是它的主要功能,侧链和主链之间的互通通常被称为侧链技术。至于侧链本身是否包含在侧链技术中,不同的项目有不同的看法。

二、侧链的意义是什么?

从主链和单链的角度来看,侧链可以横向和纵向虚拟化主链的性能。所谓横向,就是将多条侧链与主链互联,将大部分交易放在侧链上,然后通过与主链的互通实现,无形中可以提升主链的TPS。所谓垂直,就是侧链可以有主链没有的功能。通过侧链,主链似乎支持这些功能。所谓虚拟化,是指虽然有横向和纵向的改进,但主链本身并没有发生任何变化,而是通过很多侧链兄弟帮助它起到类似代理的作用,让它看起来性能有所提升.

从全球范围来看,侧链作为一种跨链技术,自然为万链互联做出了重要贡献。实现上千条链的互联有两种架构:1. 任何一条链都兼有主链的功能和侧链的功能(有的材料会有侧链的功能叫做跟随侧链)链协议),它就像一台计算机 网络上的任何一台计算机既是主机又是路由器。2. 只有少数特定链作为主链,其他所有链只支持侧链功能。类似于现在的计算机网络,有网络的核心部分——简单的路由器,也有网络的边缘部分——简单的主机。

3.2 侧链技术

侧链是通过双向锚定技术实现的。锁定主链中的临时数字货币,同时释放侧链中的等值数字资产。实现双向锚定的最大难点是协议改造需要与现有主链兼容,即不能影响现有主链的工作。根据声明,其具体实施方式有:单一托管模式、联盟模式、SPV模式、驱动链模式、混合模式。

单一托管模式类似于交易所作为中介完成币的锁定和释放,其实是一样的。联盟模式为公证人模式,使用多个公证人的多重签名来签署转移资产的交易,避免了中心化。

SPV 模式是将一笔交易发送到链上的一个特殊地址,该地址会自动创建一个 SPV 证明给侧链,并发起一笔交易来解锁侧链上的相应资产。驱动链模式以矿工作为资金托管人,向数字资产矿工发放资产监管权,由矿工投票决定何时解锁资产以及将资产发送至何处。混合模式就是将这些侧链机制有效地结合起来,使用最适合不同结构的链结构的模式,比如主链使用SPV,侧链使用驱动链。

这里SPV模式是最常用的,也是最有前途的。SPV 代表简化支付验证,它验证交易的存在。

BTC-Relay就是所谓的史上第一条侧链。它通过以太坊构建比特币侧链,并使用以太坊的智能合约让用户验证比特币交易。SPV交易示例(仍以之前的交易需求为例):

Bob 向 BTCSwap 合约发送 50ETH 冻结(合约确认 Bob 收到 Alice 的 1BTC 后会自动将 50ETH 转给 Alice);Alice 确认 Bob 的冻结信息后,将 1BTC 转入 Bob 的比特币账户;BTC-Relay 将比特币区块头推送到 BTCSwap 合约;Alice 将她将 BTC 转给 Bob 的交易 tx 发送到合约 BTCSwap 合约,请求 50ETH;BTCSwap 合约结合 tx 和比特币区块链进行 SPV 验证,如果验证通过,50ETH 将转移到合约 Alice 的以太坊地址。

与哈希锁相比,侧链的机制可以提供更多的跨链交互场景。侧链和类SPV验证的思路适用于所有跨链场景。

3.3 中继链

什么技术作为比特币的基础技术

中继链是公证人机制和侧链机制的整合和扩展。目前社区最活跃的两个跨链项目 Cosmos 和 Polkadot 均采用基于中继链的多链多层架构。其中,Cosmos 目前支持的是跨链资产交互;虽然 Polkadot 声称提供任何类型的跨链交互,但具体实现还有待观察。

3.3.1 Cosmos 中继链机制

为了支持平行链之间的跨链操作,Cosmos 提出了一种跨链通信协议(IBC)。

以链 A 向链 B 转移 10 个代币为例,说明使用 IBC 的跨链交互:

互相追踪。如果 A 想和 B 进行跨链交易,那么 A 和 B 链需要运行相当于对方区块链的轻节点,以便实时接收对方的区块头信息(方便后续的 SPV-比如验证);链 A、链 B 初始化 IBC 协议。A链冻结了10个代币,并生成相应的证明并发送给B链。B链收到相应的IBC消息,通过A链的区块头信息确认A链确实冻结了相应的资产,然后B链将生成相当于 10 个代币的资产。

以上就是使用IBC协议的两条平行链直接跨链的基本流程。如果有很多区块链,那么这种方式的成对跨链的复杂度会在组合层面上增加。因此,Cosmos 网络引入了 Hub 的中继链。所有平行链都通过 IBC 连接到 Hub 上,这样 Hub 可以辅助验证跨链交易和资产转移(所以,在 Cosmos 系统中,一条链可以与链连接。交互 = 一条链可以连接到集线器)。目前,Cosmos 已经实现了一个名为 Cosmos Hub 的官方 Hub(如图 3.1 所示)。

图3.1 Cosmos Hub

图3.2 Cosmos 详细架构

图3.2是Cosmos网络的详细架构图。在层次结构上,一条链分为网络层、公式层和应用层。为方便并行链开发,Cosmos 提供了tendermint 内核(简称tendermint)和Cosmos SDK(Go 语言)。Tendermint 是指对网络层和共识层的封装,而 Cosmos SDK 则是对应用层常用模块的封装:账户、治理、Staking、IBC 等。因此,如果你自己开发一条新链,你可以使用 Cosmos SDK+tendermint,开发的链可以直接连接到 Cosmos Hub(Cosmos Hub 本身也是使用 Cosmos SDK+tendermint 开发的)。

对于非 Cosmos SDK 开发的区块链(如现有的区块链),如果想与 Cosmos 系统中的链交互(即可以连接 Hub),需要使用 Peg Zone 进行桥接,所谓Peg Zone,是使用Cosmos SDK开发的链,不仅可以接入Hub,还可以与原链交互。如以太坊所示,如果要访问 Cosmos Hub,需要使用 Cosmos SDK 开发一条新链,作为 Peg Zone。

所谓 Cosmos 主网,是指 Cosmos 团队自己开发的第一个正式版 Hub,是不同链进行跨链操作时的第一个中心 Hub。以太坊将成为 Cosmos 连接的第一条非 Cosmos SDK 开发的公链。目前,有两个项目可以实现这种连接:由 Cosmos 开发团队领导的 Ethermint 项目和由 Loom Network 领导的 PlasmaChain。这两个项目实际上是在开发一条连接以太坊和 Cosmos Hub 的链,并起到 Peg Zone 的作用。

该协议应该是各方的共识。3.1、3.2小节中提到的“侧链协议”其实并不是真正的协议,因为侧链技术目前还不像计算机网络,有一些共识协议,所以实际上只能说是一种侧链机制。Cosmos 给跨链带来的最大贡献在于 IBC 协议的设计,它提供了一个通用的跨链协议标准。IBC 的设计使跨链交易能够在多个 Hub 之间安全地路由和转发,类似于当前的 Internet TCP/IP 协议。可惜目前的 Cosmos 设计只能支持资产的跨链,

这里只提到 Cosmos 的侧链技术。有关 Cosmos 的更多信息,请参阅其他参考资料。

3.3.2 Polkadot 的中继链机制

图3.3 Polkadot 架构

Polkadot 的扁平化架构如图 3.3 所示。它具有三个连锁角色和四种类型的当事人。

三链角色:

什么技术作为比特币的基础技术

三链角色与 Cosmos 系统中的角色类似。

四种类型的聚会:

这些参与方如图3.4 所示。整个过程是自动和分散的。

图3.4 Polkadot 的四种参与者

用户在平行链上发起交易,交易被收集者收集,打包成块,交给一组验证者进行验证。这组验证人并非来自平行链,而是来自中继链管理的验证人池,通过随机分组分配给平行链。

每个平行链都有一个消息输出队列和一个消息输入队列。如果用户发起跨链交易,该交易将被放入输出队列。然后它被目标平行链的收集器放入其输入队列。目标平行链的收集者执行交易并生成一个块,该块由验证者组完成。

被提名人是波卡基础代币DOT的持有者,希望通过质押DOT获得收益。但要么是因为 DOT 数量少,要么是缺乏运营和维护验证者节点的专业技能。因此,系统提供了另一种参与方式,即持币者选择自己信任的验证人,通过验证人质押自己的DOT,分享验证人的收益。

Fisherman 是一个软件进程,它监控网络上的非法行为,如果发现它,就会向区块链提交报告交易。报告的交易也经过一个共识过程。它们被超过 2/3 的验证者验证,打包成块,惩罚和奖励也是区块链交易。

在 Polkadot 中,如果 Parachain A 需要向 Parachain B 发送交易,流程如下:

以上是波卡跨链交易的主要步骤。Polkadot 为应用链提供的工具是 Substrate,目前支持 Rust 语言开发。

4 跨链相关项目4.1 ETH.Plasma

以太坊的 Plasma 是第 2 层扩展的解决方案。Plasma 的原理是将交易移至链下,并在二级链(Secondary Chain)中进行处理。想法来自侧链,但完全一样。但是,Plasma 还没有 State Channel 成熟。目前只用于支付,数量也很少。正在研究在支付以外的领域的使用。

4.2 Polkadot.Darwinia4.2.1 达尔文网络概述

Darwin Network 是一个使用 Polkadot 的 Substrate 技术构建的跨链游戏网络。达尔文网络的技术其实可以看成是在波卡的 Substrate 上的二次开发,改进后用于游戏资产的跨链交互和游戏运营。目前主要用于支持进化星球及相关业务系统(进化星球是建立在区块链上的游戏虚拟世界,也是一个DAO,类似于区块链上的《我的世界》)。主网代币是 RING。

达尔文网络的运行模式有 Solo 模式和 Polkadot 模式(值得注意的是,不同的运行模式下具体的激励方案会有所不同)。

1)单人模式。事实上,达尔文网络本身就是一个拥有自己中继链的网络。在这个网络中,各种游戏成为达尔文的子世界(sub-continents)。这个子世界可以是使用 Polkadot 的 Substrate 开发的平行链,也可以是 ETH 或 EOS 上的智能合约。这些子世界连接到达尔文网络的中继链,就像波卡平行链连接到波卡中继链一样。

2)Polkadot 模式。达尔文网络作为一个整体也可以看成是波卡的平行链,与波卡的中继链相连。从这个意义上说,达尔文网络可以看作是 Polkadot 的一个二阶中继链(2nd order Relay-chain)

图4.1 达尔文网络结构

什么技术作为比特币的基础技术

达尔文网络结构如图4.1 所示。图中我们看到有一个东西叫达尔文应用链什么技术作为比特币的基础技术,达尔文应用链到达尔文网络等于平行链到波卡网络。Darwin Application Chain是一套基于Substrate和Darwinia Kernel设计开发的应用区块链框架。

4.2.2 星际资产标准

对于跨链游戏资产,最重要的自然是资产的数据结构和操作的定义。达尔文网络官网的“NFT 可识别性”部分大致描述了其星际资产编码标准。它认为,在单一网络中,域中的 Token ID 可以识别域中唯一的项目,但在互联环境中却不能。因此,它设计了星际资产编码标准,使不同公链、不同游戏的资产在达尔文网络上能够被唯一标识,从而使游戏资产可以轻松跨链转移。星际资产编码标准各字段含义如下。

图4.2 星际资产编码标准字段含义

4.3 宇宙.IRIS

之前的 Darwin 网络是 Polkadot 生态系统中的一个项目(主网通证是 IRIS),而 IRIS 是 Cosmos 生态系统下的一个项目。它旨在解决两个主要挑战:

分布式账本上链下计算和资源的整合与协作

2. 跨异构链的服务互操作性

之前的达尔文网络主要面向游戏,而IRIS则面向商业应用(其团队有博士平台,曾任中科院计算所研究员)。IRIS 预设企业与 IRIS 以 Consumer(服务消费者)/Provider(服务提供者)的方式进行合作:IRIS 为企业和项目方提供了一个更易于使用的 SDK,帮助他们利用分布式账本的优势。

说完了IRIS的愿景,我们再来看看它的网络拓扑。

在拓扑上,IRIS 类似于达尔文网络。IRIS 是使用 Cosmos SDK+ Tendermint 开发的。它本身就是一个网络。它有一个 Hub,也可以作为它的 Zone 访问 Cosmos 生态系统。当然,IRIS 属于 Cosmos 生态,而达尔文网络属于 Polkadot 生态。

图4.3 IRIS网络结构

图4.3中明显的内容就不解释了。iService其实是IRIS Services的缩写,用来架起区块链世界和非链应用世界的桥梁。解决这个问题的方法是协调链下服务的完整生命周期(从定义、绑定(提供者注册)、调用到治理(分析和争议解决)什么技术作为比特币的基础技术,只是蓝表中的几件事)。通过增强 IBC 处理逻辑以支持服务语义,IRIS SDK 旨在允许分布式业务服务在区块链互联网上可用。

此外,它的网络包含三个角色:

4.4 其他项目

ChainX 和 Edgeware 是波卡生态中非常重要的两个项目,可以说是波卡生态的第一兄弟和第二兄弟。基于 Polkadot 生态系统的项目列在 Teams building on Polkadot 中。这里只作简要介绍。

ChainX 是一个基于波卡 Substrate 的资产跨链项目。ChainX 以去中心化的方式统一转换跨链资产。只要任何一条链与ChainX建立连接,就可以与所有链进行资产交换。Polkadot 旨在构建底层基础设施,实现任意消息跨链,而 ChainX 专注于资产跨链。ChainX 的主网代币为 PCX。

Edgeware 是一个智能合约平台。一旦 Polkadot 在主网上线,用户可以使用 Edgeware 在 Polkadot 上快速部署智能合约。支持 WebAssembly,用户可以使用 Rust 编写 Edgeware 智能合约,并且在 WASM 中执行合约比大多数虚拟机更快、更高效。

什么技术作为比特币的基础技术

开发经验 Cosmos

(待写)

波尔卡圆点

(待写)

个人想法

万链互联令人振奋,此举必将降低链开发成本。所以未来会有更多的区块链,难免鱼龙混杂。我猜这些链在当时可能大部分都不是去中心化的,节点都由一家公司控制。在这种情况下,多条中心化链的互联会导致去中心化,还是根本无法使用?

著名的比特币极端主义者 Jimmy Song 表示,比特币会成功,而法定货币和所有山寨币都会失败。原因是中心化的货币永远做不到去中心化的货币,去中心化的产品也永远做不到中心化的产品。

无论是从人类社会的发展还是互联网的发展来看,都有一个发展趋势:分工越来越清晰,工作越来越专业化。所以,回归等节点的想法肯定是错误的。

参考

[1]趣链科技微信。跨链技术分析与思考

[2] 李万才. 深入了解EOS,p:232-247.

[3] 常奎.区块链:从数字货币到信用社会,p:84-94.

[4]哔哔新闻。Cosmos 的 Wanchain 互联计划!在 30 秒内解释 Cosmos 是什么!

[5] 波卡。文档/平行链

[6] 波卡。文档/桥梁

[7] 链闻。20000字全面讲解波卡架构和下一代DApp开发技术

[8]达尔文网络微信。达尔文网络——波卡生态第一条游戏链

[9] 达尔文网络网站。基因纸

[10] StakingScan 微信。虹膜网络 (IRIS)

[11] 鸢尾花 Github。白皮书