区块链产业专题报告:跨链篇.pdf
0 相关报 告 1. 火 币区 块链 产业 专题 报告: 区块链 技术 可扩 展方 案分 层模 型2018 年 9 月 2. 火 币区 块链 产业 专题 报告: 钱包篇 2018 年 8 月 3. 火 币区 块链 产业 专题 报告: 游戏篇 “ 新 的财 富金 矿?游 戏 产业的 割裂 与重 构” 2018 年 7 月 4. 全球 区块 链数字 资产 行业专 题报告- 公 链平 台篇 2018 年 6 月 作者 袁煜明 李 慧 钟 维 火币区块链应用研究院 huobiresearchhuobi 火币区块链产业专题报告 跨链 篇 2018 年 10 月 15 日 摘要 跨链狭义上指的是相对 独 立的 区块链账本间进行资产互操 作的 过程 。 火币研究院 本次主要在狭义范畴内剖析了跨链的设 计原则、技术难点及其解决方案;并辅以8 类应用场景介绍、 10 个项目的跨链原理阐述以及 22 个项目整体概况、技术开发 和社群建设等维度数据分析,深度刻画了跨链产业全景图。 跨链的实现形态主要表现为资产互换和资产转移, 业界已有 落地应用, 且多种跨链应用场景均可以由此演变。 本文将重点 阐述两者的跨链原理, 从问题出发, 提出了5 大技术难点并介 绍了其对应的解决方案和思路。 1 ) 如 何 保障跨 链交 易的原 子性 : 介绍了原子互换和哈希时间 锁协议原理。2) 如 何 完成 对另 一条链 的交 易确认 : 介绍了公证 人、 中继以及榫卯式三大类模式异同。3) 如 何保 障两 条链的 资 产 总量 不变 : 从正常和 异常两种情况分别阐述了应对方案。4) 如 何保 障两条 链的 独立安 全性 : 主要从隔离机制和安全检测机 制分析了应对思路。5) 如 何实 现多条 链之 间的跨 链互 联:介 绍 了主动兼容和被动兼容两种跨链网络建设方案。 最后对于跨链产业现状和未来, 我们认为:1) 跨链项目总体 处于探索阶段, 未有大规模应用;2) 跨链技术 成熟度较低 ,仍 有较大发展空间; 3) 跨链的推动依赖于区块链应用的实质性落 地;4) 跨链网络将推动数字资产金融的繁荣;5) 跨链标准的 建立将会是区块链行业发展的强劲引擎。 火币区块链产业专题报告跨链篇 1 目录 第一章 跨链概述 .2 1.1 何为“ 跨链” .2 1.2 跨链 意义 何在 .2 1.3 跨链 进化 史 .3 第二章 初识跨链 .5 2.1 跨链 的实 现形 态 .5 2.2 实现 跨链 要解 决的 问题.6 2.3 跨链 协议 设计 原则 .8 第三章 跨链难点解决 方案 剖析 . 10 3.1 难 点一 :如 何保 障跨 链交易 的原 子性 . 10 3.1.1 原子 互换. 10 3.1.2 HTLC ,哈 希时 间锁 协议 . 14 3.1.3 HTLA ,哈 希时 间锁 协定 . 16 3.2 难 点二 :如 何完 成对 另一条 链的 交易 确认 . 19 3.2.1 公 证人 机制 . 22 3.2.2 中继 . 26 3.2.3 榫 卯式 . 31 3.3 难 点三 :如 何保 障两 条链的 资产 总量 不变 . 33 3.4 难点 四: 如何 保障 两条 链 的独 立安 全性 . 37 3.5 难 点五 :如 何实 现多 条链之 间的 跨链 互联 . 37 3.5.1 主动 兼容. 38 3.5.2 被动 兼容. 39 3.6 小结 . 40 第四章 案例剖析 . 41 4.1 链下 通道 . 41 4.1.1 闪电 网络 . 41 4.1.2 雷电 网络 . 43 4.2 跨账 本多 跳协 议 . 44 4.2.1 Ripple . 44 4.3 侧链 . 47 4.3.1 单向/双向 锚定 侧链 . 48 4.3.2 Liquid . 52 4.3.3 Elastos . 53 4.4 跨链 平台 (主 动兼 容型 ) . 54 4.4.1 Wanchain . 55 4.5 跨链 平台 (被 动兼 容型 ) . 58 4.5.1 Cosmos . 58 4.5.2 Polkadot . 71 4.6 典型 跨链 项目 简介 . 75 第五章 项目市场及应 用场 景分析 . 79 5.1 跨链 项目 市场 分析 . 79 5.2 跨链 应用 场景 分析 . 82 第六章 现状及未来 . 86 参考文献 . 88 第一章 跨链概述 1.1 何为“跨链” 跨链, 狭义 上来 说 是 两个相对 独立 1 的区块链账 本间 进行 资 产互操 作(Interoperability )的过程 ; 广义 上来说是 两个独 立 的账本 2 间 进行资产、 数据互 操作的过 程。 本文 主要是从 狭义上 来 阐述区块 链体 系之间的 跨链互 操 作问题。 传统信息 领域对 于 互操作的 定义为 : “ 不同系统 或模块 之 间进行信 息交互和使 用 的能力” 19。 而Vitalik 在 Chain Interoperability 2 的论 文中提 到,区 块链的 互操 作主要 指的是 两条 区块链 之间进 行 资产转移、 支付或 者信息交 互的能 力 , 而这些通过 引入 第三方并且 在 不改变原 生链的 前 提下是可 以做 到的。 单 一的 区块链 网络是 一个 相对封 闭的体 系, 不会主 动与外 界发 生 交互, 每 条链 的资 产也都是 一个独 立 的价值体 系而存 在 。 若是能打 通 链于链之 间的孤 岛 , 让价值在 更广大 的世界中 流通, 那 必然能从 更广 阔 的范围 中增加 通证 资产的 价值, 从而 推动区 块链产 业的 快速发 展。 跨链技术 正是致 力 于搭建链 与链之 间 的信任桥 梁, 打 破一 链一孤岛 的 局面,实 现链与 链 之间的资 产互 操作,以期实 现真正 的 共赢。 1.2 跨链意义 何在 在 阐述 跨链意 义之前 ,不 妨先回 顾一下 计算 机网络 的发展 历程 ,1指两个区块链账本间相互独立,没有在某方统一进行清/结算的情况(交易都在母链账本进行清算的母子 链结构不存在本文所述的跨链操作) 2此处所指的账本不仅指的是区块链账本,也指中心化账本或者其他形式的分布式账本(如 DAG 账本) 。 火币区块链产业专题报告跨链篇 3 也 许会 对我们 有重要 启示 。1969 年 投入 运行 的阿帕 网是计 算机 网络 的鼻祖, 当时由 于 大部分计 算机互 不 兼容, 且 传输速 度 极慢,计 算 机 网络多以 局域网 的 形式存在, 彼此难 以连通。 直到80 年代 TCP/IP 协 议( 一种 可支持 多 种底层协 议以及 异 构网络互连 协议 ) 逐渐成熟 , 计 算机网络 才逐渐 被 建立起来 。到 90 年 代,互联 网面向 公 众开放, 以 及网络浏 览器的 出 现,才带来 了现在 互联网的 繁荣。 从 计算 机网络 的发展 历程 ,我们 仿佛也 看到 了区块 链跨链 网络 的 未来。目 前的区 块 链世界就 好比 60 年 代的单机 时代, 链 与链之间 高 度异构化, 彼此难 以互通, 所 有的数 据和服务 都局限 于 孤岛式的 区块 链中。 若是 未来, 所 有的区块 链系统 能 通过某一 标准化 跨 链协议链 接 起来, 那 众多的 区 块链系统 就能协 同 工作, 为 更多的 用 户、 更多 的服 务提供支 撑。 跨链 技术的成 熟与普 及 或将引爆 区块链 网 络的繁荣。 不 同的是: 互 联网是 信息自由 流通的 网 络, 而区块 链跨链 网络则是 价值 自由流通 的网络 。 1.3 跨链进化史 如 下 图所 示, 自 2009 年比特 币网 络问 世后的 很长 一段 时 间, 到 2012 年Ripple 才发布 了跨账 本互操 作 协议Interledger Protocol (ILP) , 通 过第三 方公证人 的方式 实现 了跨账本 转账, 在区块链 领域 首次提出 了跨账 本 互操作方 案。 2014 年, 由比 特币核 心开 发人员组成 立的BlockStream 团队首次 提出锚定 式侧链(Pegged Sidechains) 跨链交互 方案, 引 入一条与 主链双 向 锚定(Two-way peg)的侧链 ,可实现跨链 资产 转移 。 2015 年比特币 闪 电网络 (Lightning Network) 采用哈希 时间锁 (Hashed Timelock)机制,实现 了 比特币 链 下 快速 交易通 道。2016 年BTCRelay 方案发表 , 基于中 继跨链 方 案实现了 比 特币到以 太坊的 单 向跨链连 通。 同年 Vitalik Buterin 发表的 Chain Interoperability 对区块链互操作问题做了全面和深度的分析。 2017 年, Polkadot 和Cosmos 第一次提 出了建设 跨链网 络 基础平台 的 方案,目 前这两 个 项目还在 开发过 程 中。 图 1.1 跨链进化史 火币区块链产业专题报告跨链篇 5 第二章 初识跨链 2.1 跨链的实现 形态 我 们知 道,目前 的区 块链 公链是 一个自 适应 分布式 系统, 也是 一 个 相对封 闭的自 循环 系统, 虽然可 以允 许新节 点加入 、旧 节点退 出, 也可容忍 一小部 分 错误, 但却 难以兼容 外部其它 系统。 链和链之 间的 信息交互 , 尤其 是 以通证为 载体的 价 值交互, 可谓困 难 重重,这 对 区 块链网络 来说是 一 大发展瓶 颈。 总体来说 , 链和 链之 间的价值/数据 交互 主要有以 下两种 实现 形式 : 1 ) 链间资 产互换 : 通常 指两条链 上的不 同 用户之间 进行资 产 互 换, 但每条 链上的 资产总量 并无增 减 , 只是资产 所有权 发生 了变化, 且 这个所有 权 改变 的过程 需 在两条链 同 步 发生。 如 Alice 想用比特币 上的 10 个 BTC 换 Bob 在以太坊 的 100 个 ETH, 最终 交易成 功 的结果是Bob 在以太坊的100 个 ETH 转 移到了 Alice 在以 太坊的地 址,而 Alice 在比特币上的 10 个BTC 转移到了Bob 在比特币的地 址。 比特币和 以太坊 资产 总数并无 增加或者减 少 。 比特币 以太坊 address(Alice) 10BTC>Address(Bob) address(Bob) 100ETH>Address(Alice)图 2.1 跨链资产互 换示意图 2 ) 链间资 产转移 (单向/ 双向 ) : 资 产转 移和资产 互换虽 看起 来 相似, 却有 本质的 不同。 上文 所述资 产互换中 各链的 资产 总 数是不变 的, 但资 产转移, 是 资产价 值的转移, 各链中 可用 的资产总 量将相 应 增加或者 减少。 如Alice 想将链A 的 资产 转移100 枚到链B , 最终交易 成功的 结 果是链A 的可用 资产 将减少 100 枚(减 少的 100 枚被冻结 在链 A 的特定 地址), B 链上将新生成 相应 的等价资 产。 链A 链B A :A=1 : 1 address(Alice) A 资产> 锁定地址 生成A 资产的地址A 资产>Adress(Bob)图 2.2 跨链资产转 移示意图 目 前对 跨链的 研究和 应用 落地主 要是集 中在 资产互 换和资 产转 移 这两种方 式。 有些 项目提出 了跨链 智 能合约的 概念, 多指 一条链 上的 智能合约 能确认 原链 跨链交 易的场 景, 这从技术 实现上 来 说和实 现跨 链资产转 移是相 似 的, 都需要 对原链 交易进行 确认和 验 证, 因此本 文 不再做单 独讨论 , 而 主要针对 资产互 换 和资产转 移这两 类 问题进行 技 术方案分 析。 2.2 实现跨链 要解决的问 题 我 们知 道,区 块链的 特点 之一就 是账本 的不 可篡改 性,因此 写入火币区块链产业专题报告跨链篇 7 账 本的信 息需要 是准 确无误 的,特 别是 资产信 息,一 定要 精确无 误。 两个区块 链系统 进 行资产信 息互换 , 也 需要保证 在交换 的 过程中 资产 和信息数 据要精 确 记录在彼 此的账 本 上, 要做 到这一 点是 非常不容 易 的。 要实现 跨链, 我们需要 解决的 问 题很多, 但 是总结 起来看, 以 下 几个问题 是最核 心 的: 1 ) 如何保 障跨链交易的原 子性。 即跨 链交易要 么发生 , 要么不发 生, 否则 两条链 的不 一致和不 同步状 态 将成为跨 链交易 最 大的系统 漏 洞, 两个系 统的安 全性都将 受到威 胁 。 这一点是 实现跨 链交易的 基本 要求,也 是跨链 交 易必须要 解决的 难 点。 2 ) 如何完成对 另一条链的 交易 确认。 对交易的 确认, 包 含了两个 层次的问 题, 一 是 确认交易 已经发 生 并且上链 , 写入 了 区块账本;二 是该交易 已经获 得 了系统足 够多区 块 的确认, 这样由 于系 统发生重 构 而导致交 易无效 的 概率将非 常低。 区块 链系统本 身是较 为 封闭的系 统, 缺乏主动 获取外 部 信息的机 制, 因此 要 确认另外 一条链 的 交易状态 并 非一件容 易的事 , 可以说是 跨链交 易 的核心难 点之一 。 3 ) 如何保障两条 链的资产 总量不变。 在资产互 换的场 景下 ,两 条 链的资产 并未发 生 实质性的 交换, 因此 该类情况 不会改 变 各链的资 产 总 量。但 是在资 产转 移的场 景下, 每条 链的可 用资产 数量 是变化 的, 只有保障 跨链交 易 精确记账, 且两条 链的账本 记账完 全 同步, 才可 实 现, 换种 说法就 是 两条链的 记账必 须 是原子性 的, 要 么 都同时记 , 要 么都不记 。 除 此之外 , 问 题的 关 键是当 某条链 发生重 构 时, 是否 依然 能保持两 条链的 资 产总量不 变。 4 ) 如何保障 两条链的独立 安全性 。 当 两个系统 发生交 互 时, 难免 会对彼此 系统产 生 影响, 如 何在跨 链交 易的过程 中保障 自 己系统和 对 方系统的 安全性 是 个值得考 虑的问 题 。 若是安全 性问题 无法隔离, 那 一条链受 到攻击 , 将影响整 个跨链 网 络。 5 ) 如何实 现 多条链之间的 跨链 互联 。 参 照计算机 网络的发展 历程 , 独立的区 块链网 络 终究要走 上互联 互 通的未来 , 那如 何将 这些已有 的 和 未来 将要 开发 的区 块链 网络 都联 系起 来成 为统 一的 整体 将是 未来 跨链网络 最重要 的 问题之一 。 2.3 跨链协议设计原则 基于 上文 对实 现跨链 网络 难点的 分析, 在设 计一个 支持跨 链的 体 系 时,可以 参 考以下 原则1 , 若是以下 几点无 法实 现,则 该跨链 系 统的安全 性和稳 定 性是难以 保障的 。 1. 资产在 链之间 的 转移是自 由的, 既 可从A 链到B 链, 也可从B 链到A 链,且与 谁 拥有这些 资产无 关 。 2. 资 产 转移不 能有对 手方 风险, 没有第 三方 能阻止 资产的 转移。 3. 转移交 易必须 是 原子性的 , 要么 发 生, 要么 不发生 。 不能存在 凭空损失 或者创 造 资产,也 不能有 欺 骗交易的 发生。 4. 跨链协 议或系 统 应该具备 防火墙 的 功能, 一 个链发 生的 资产丢 失和创造 不会影 响 另外一个 链。 5. 一条链 的重构 不 能影响另 外一条 链, 要么在重 构概率 非 常低时火币区块链产业专题报告跨链篇 9 再 完成资 产交易 ,要 么在重 构发生 时能 同步修 改/ 作废 之前 发生的 跨 链交易,或 至少 做 一些补偿 性的操 作 。 第三章 跨链难点 解决方案剖析 3.1 难点一:如何保障跨 链交易的原子性 3.1.1 原 子互换 原 子互换1 是 保障跨 链交易 原子性的基 础理论 框架。原子 互换, 即原子性 的互 相交 换。 原子性 是计算 机领域非 常重要 的 设计理念, 如 原 子交易 ,原子 操作 等,通 常指最 小单 位的操 作,该 操作 要么成 功, 要么失败 ,不存 在 第三种中 间状态 。 为更直观 的介绍 原 子互换协议 , 我们假 设 一个 交换场 景, 通过例子 来理解原 子互换 协 议的原理 。 1) Alice 在链A 上有1 个BTC,Bob 在链B 上有20 个 ETH,Alice 想 用 1 个 BTC 换 Bob 的 20 个 ETH。Alice 和 Bob 同时在链 A 和链 B 上都有钱 包地址 。 图 3.1 原子互换示意 图 1 2) 首先 Alice 随机生 成一个密钥 K ,该 密钥只有 Alice 知道,然后 在链A 上发起一 笔 给Bob 1 个BTC 的转账交易 ( 交易 ) , 该 交易 只有在获得Bob 的 签名以及 提供密钥K 之后才能完成 。 3) 在交易 广 播 之前,Alice 会先在链 A 上广播一个回 撤 交易(交火币区块链产业专题报告跨链篇 11 易) ,若交 易 在 48 小时内未 获得 正确的密钥 和签 名 ,那么交 易 支付的金额 将 退回给Alice。交 易 广播出去后需 获 得Alice 和Bob 的共同签 名 , 该交易才 会生效。 同时,Alice 只有在 交易 成功生效 的情况 下 才会向网 络广播 交 易 。 图 3.2 原子互换示意 图 2 4) Bob 此时看 到 Alice 发来的交易 ,若 Bob 愿意进行这 次交易, 则 Bob 会对交 易 签名,当 然 Alice 也会完成 签名, 这 样回撤交 易就能生 效,Alice 此时将交 易 向全 网广播。 图 3.3 原子互换示意 图 3 5) Bob 此时无 法得知 密钥 K ,只能 通过 向 Alice 支付 20 个 ETH 后才 能获得密钥K,因 此 ,Bob 在链B 上发起 交易,向 Alice 支付20 个 ETH,只有当 Alice 输入密钥 K 成功解 密 ,并 附上 Alice 签名 才可获得这20 个ETH。 为防止Alice 抵赖, 保障 自己能 成 功拿到 密钥K , Bob 也在广 播交易 之前先 发 布一个需要Alice 和Bob 共同签名的回 撤 交易 ,当 Alice 在24 小时内未 提供正 确 的密钥K 并附上签 名,就 激 活回撤交 易 ,20ETH 退回给Bob。 图 3.4 原子互换示意 图 4 6) Alice 看到Bob 发 起的 回撤交易 , Alice 和 Bob 为了继 续交 易将 会给该交 易附上 自 己的签名 ,回撤 交 易 生效。此 时 Bob 也会将 交易 广播给全 网 。 图 3.5 原子互换示意 图 5 7) Alice 为了获得20ETH, 将会对 交易 附上自己 的签名, 并且输入 正确的密钥 K ,此 时交易 成功,Alice 获得 20ETH,Bob 获得密 钥K 。 火币区块链产业专题报告跨链篇 13 图 3.6 原子互换示意 图 6 8) Bob 拿到密钥K 后, 回到链A,输 入 密钥 和自己的 签名, 最 终拿到 Alice 的1 个BTC。 图 3.7 原子互换示意 图 7 由上过程 可知, 原 子互换协 议并未 将 链A 的资产转移 到 链B ,而 只是同时 交换了链A 和链 B 资产的 所有 权,链A 的资产 总 量和链B 的资产总 量并未 改 变,因此 原子互 换 协议只能 实现链 间 的资产互 换,无法 实现资 产 转移。 原子互换 是系统 之 间进行价 值原 子交易 的基本 框架, 不仅 可应用 于区块链 去中心 化 账本系统 之间, 还 可扩展到 中心化 账 本的系统 之 间,只要 两个系统能 提 供 回 撤交易 、 时间锁定 和密钥 锁定 的功能 即 可。 3.1.2 HTLC , 哈希 时间锁 协议 哈希时间 锁协议,即 HTLC (Hashed Time-Lock Contract), 是原 子互换协 议的具 体 实现, 通 过哈希 锁和 时间锁机 制保障 了 交易的原 子 性。 在不 同的系 统 里, 不管 是区块 链 系统还是 中心化 的 账本系统 , 其 实现哈希 锁和时 间 锁的方式 都不尽 相 同, 但原理 是一样 的, 即只有 满 足一定的 哈希条 件 或者时间 条件后 才 允许交易 生效。 若只使用 哈希时 间 锁, 只能实 现跨链 的资产互 换, 而非 跨链资产 转移, 各 链的资 产 总量不变 , 只是 资 产的持有 者发生 了 变化而已 。 如 果要 实现 资产的 跨链 转移, 除了需 要哈 希时间 锁保障 交易 的原子 性, 还需配合 其他跨 链 技术, 确保 跨链交 易的真实 性,即 2.2 小节所述的 需完成对 其它链 的 交易确认 。 哈希锁 在2.1.1 小节介 绍 的例子中 ,Bob 要如 何验证Alice 提 供的 密钥 K 是正确呢? 这里最 通常的做 法是用 哈 希函数来 实现。 Alice 在最开始 的时候产 生一个 随 机数K (即密钥K ) , 用一个哈 希函数 对 该随机数 做 计算得到M,即H(K)=M,Alice 会将函 数H 和 M 告诉Bob, 我们知道 哈 希函数的 计算是 不 可逆的, 几乎无 法 通过H 和M 反向计 算得到K。所 以Bob 只能让Alice 主动披露一 个密钥K, 并用H 和M 来验证Alice 提供的 K是否 能通 过 哈希 函数 H 计 算得到 M ,若 验证 通过,则 证明 Alice 提供的 K 就是真 实的 密钥 K 。这种哈希 函 数锁定 的方式 就是 我们所说 的哈希 锁 , 只有密钥K 才能 打开的锁。 在比特 币系统中 通常 用OP_HASH256 操作符来进行 哈希计 算 操作。 火币区块链产业专题报告跨链篇 15 时间锁 在2.2 小节介绍 的 原子互换 协议中 , 需 要交易在 某个时 间 范围内 不生效, 如 回撤交 易需要在 超时以 后 再被触发。 时间锁 在比特币 系统 中有两种 实现方 式3。 1) CheckLockTimeVerify(CLTV) 比特币 2015 年 BIP65 的软分叉 版本中 提出了 CLTV 操作码 ,允许 交易的输 出在一 段 时间内被 阻塞 (交易 的其它部 分不受 影 响) 。 当CLTV 操作码被调用的时候,会检测交易中的 nLockTime 参数,只有当 nLockTime 的时间 大于或者 等于 CLTV 参数指定的时 间 时,交易 才会 被完整执 行,否 则 交易会被 阻塞在memory pool 中。