1、华为区块链白皮书i版权所有 华为技术有限公司华为区块链白皮书 前 言2版权所有 华为技术有限公司前 言区 块 链 成 为 近 两 年 热 点 话 题 , 因 其 通 过 分 布 式 数 据 存 储 、 点 对 点 传 输 、 共 识 机 制 、 加 密 算法等技术的集成,可有效解决传统交易模式中数据在系统内流转过程中的造假行为,从而 构建可信交易环境,打造可信社会。近年来各国政府机构,国际货币基金组织以及标准、开 源组织和产业联盟等在纷纷投入区块链产业的拉通和应用。随着区块链的产业价值的逐渐确 定,区块链迅速地成为一场全球参与竞逐的“军备”大赛,中国也开始从国家层面设计区块 链的发展道路(发改
2、委委托信通院组织国内主要区块链公司进行区块链的顶层设计的研讨, 工信部的信软司 也在积极确定区块链的顶层设计机构) 。 2018 年,区块链及相关行业加速发 展,中国将领跑全球进入“区块链可信数字经济社会” ,我们正面临区块链重大的产业机 遇。区 块 链 的 应 用 已 由 开 始 的 金 融 延 伸 到 物 联 网 、 智 能 制 造 、 供 应 链 管 理 、 数 据 存 证 及 交 易 等多个领域,将为云计算、大数据、承载网络等新一代信息技术的发展带来新的机遇,其构 建的可信机制,将改变当前社会商业模式,从而引发新一轮的技术创新和产业变革。编 委 会 成 员顾 问:张文林、龚体、肖然、廖
3、振钦、万汉阳、楚庆、张辉、潘秋菱、祁峰、 伊 志 权 、 ZHU PEIYING、 刘 培 、 王 伟 、 王 小 渭 、 LIAO HENG研究撰写:张小军、曹朝、胡瑞丰、刘再耀、张亮亮、周瑛达、郭兴民、吴义镇、 杜 伟 、 甘 嘉 栋 、 WU SHUANG、 姜 耀 国 、 William Michael Genovese、 朱 朝 晖排 版 设 计 : 杨 少 青审 稿:潘秋菱、张小军、胡瑞丰、刘再耀、周瑛达华为区块链白皮书 目 录版权所有 华为技术有限公司目 录前 言 .ii1 区 块 链 的 兴 起 11.1 区块链的起源 .11.2 区块链的发展路径 .21.3 当前区块链认识上
4、的两大误区 .32 区块链核心技术及原理机制 52.1 区块链的概念和特征 .52.2 区块链的核心技术 .62.2.1 分布式账本 62.2.2 共识机制 72.2.3 智能合约 82.2.4 密码学 .112.3 华为在区块链发展中进行的技术创新 .122.3.1 共识算法创新 122.3.2 安全隐私保护 132.3.3 离链通道 143 区块链国内外产业发展现状 163.1 区块链相关产业政策现状 .163.2 区块链在开源领域的发展现状 .173.3 区块链在标准领域的发展现状 .183.4 区块链产业联盟发展现状 .194 区块链的典型应用场景 224.1 数据交易:实现数据交易的
5、过程透明、可审计,重塑社会公信力 234.2 身份认证:验证身份的合法性,加速数字化社会发展 244.3 新能源:打造清洁能源交易信任基石 .254.4 车联网:用区块链实现信息准确共享,构建新经济模式 274.5 供应链溯源:树立公信力,构建真实交易 .284.6 运营商云网协同:解决运营商网络碎片化,构建新商业模式 294.7 供应链金融:有效减少金融风险,拓展金融业务发展 30iii4版权所有 华为技术有限公司华为区块链白皮书 目 录5 华为区块链的方案及特点 335.1 华 为 云 区 块 链 服 务 ( BCS: Blockchain service) 335.1.1 区块链服务 B
6、CS 的设计原则和产品定位 .335.1.2 区块链服务 BCS 的总体逻辑架构 .345.1.3 区块链服务 BCS 平台功能特性 .365.1.4 区块链服务 BCS 系统安全保障 .415.1.5 区块链服务 BCS 的技术特色和优势 .435.2 华为对区块链的整体构想 .466 总结:华为对区块链未来发展判断 485版权所有 华为技术有限公司华为区块链白皮书 1 区块链的兴起1 区 块 链 的 兴 起 1.1 区块链的起源探 寻 区 块 链 的 机 制 和 发 展 , 比 特 币 永 远 是 无 法 绕 过 的 话 题 。 区 块 链 作 为 一 种 独 立 的 技 术 出现,最早可
7、以追溯到比特币系统中。2008 年一个笔名为中本聪的人(或团队)发布了一 篇名为比特币 一种点对点的电子现金系统 的文章,又在 2009 年 公 开 了 其 早 期 的 实现代码,比特币就此诞生。抛 去 比 特 币 价 格 的 跌 宕 起 伏 , 仅 探 讨 比 特 币 系 统 本 身 的 设 计 , 可 以 把 它 视 作 一 次 电 子 货 币在概念和技术上的实验:在传统的电子支付系统(如银行转账或第三方支付等)中,由银 行或支付服务提供方来对验证并记录系统中发生的交易,账本在中心机构手中;而比特币在 人类历史上第一次实现了去中心化的电子货币发行和交易,即不需要一个中心化的第三方认 证机构
8、或账务管理系统对交易进行验证和记录,全网共同维护更新一份相同的账本。比特币 的 出 现 使 得 电 子 货 币 系 统 出 现 了 由 传 统 的 “中 心 化 账 本 +中 介 ”的 模 式 向 “公 共 账 本 +共 识 ” 的模式转变的可能性,而这种转变正是由区块链技术实现的。比特币白皮书中并没有直接提出“区块链” ( Blockchain)这一概念,但其 解决交易记录 真实有效并不可篡改的方案可以看做区块链系统的雏形:客户端发起交易后向全网广播等待 确认,系统中的节点将若干待确认的交易和上一个块的 hash 值 打 包 放 进 一 个 块 ( Block) 中 并审查块内交易的真实性以
9、形成一个备选区块;随后试图找到一个随机数使得该侯选区块的 hash 值小于某一特定值,一旦找到该数后系统判定该区块合法,节点向全网进行广播,其他 节点对该区块进行验证后公认该区块合法,此时该区块就会被添加到链上,进而区块中的所 有交易也自然被判定为有效。此后发生的交易则依此法类推链在该区块之后,以此形成一个华为区块链白皮书 1 区块链的兴起2版权所有 华为技术有限公司历史交易记录不断堆叠的账本链条。任何对链条上某一块的改动将会导致该块 hash 值的变 化,进而导致后续块的 hash 值变化与原有账本对不上,因此篡改难度极高。比特币以上述方案为基础,由数千个分布式节点 7x24 小 时 不 间
10、 断 运 行 了 近 10 年之久, 期间未出现过重大的漏洞。人们逐渐意识到承载比特币运行背后的区块链技术可能极具应用 前景,它不该也不会仅限于在电子货币转账中使用。1.2 区 块 链 的 发 展 路 径电 子 现 金 交 易 的 本 质 是 货 币 ( 或 类 货 币 ) 资 产 价 值 的 转 移 。 实 际 上 区 块 链 所 带 来 的 分 布 式记账理念不仅仅能够为电子现金交易服务,它可以被用于处理更广义上的价值转移:各类 有形资产和无形资产的所有权归属和流通理论上都可以运用区块链技术进行记录和追踪,并 完成点对点的价值交换。这对于社会商业的信息和资产管理而言将会是一次意义重大的革
11、新。然 而 由 于 比 特 币 系 统 设 计 的 非 图 灵 完 备 性 , 其 系 统 无 法 处 理 更 为 复 杂 的 业 务 逻 辑 。 受 比 特币启发,于 2015 年 左 右 开 发 上 线 的 公 共 区 块 链 平 台 以 太 坊 则 将 区 块 链 的 应 用 更 进 一 步 , 允许开发者在平台上部署智能合约,以处理更为复杂的业务逻辑。智能合约使得通过代码设 定好的业务逻辑能够自动按照触发条件执行而无需人为干预,并且合约部署在区块链上公开 透明。因此区块链技术可以被广泛的运用在涉及合同处理、数据交换、所有权转移的金融、 物联网、物流和共享经济等场景中。如果从比特币诞生开
12、始计算,区块链技术已有近 10 年 的 发 展 历 史 。 目 前 区 块 链 的 发 展 方向主要可以分为公有链和联盟链:前者以比特币和以太坊为代表,任何人都可以随时加入 其中,链上记录对所有人公开;后者则由指定区块链的参与成员组成联盟,成员之间的业务 往来信息被记录在区块链中,限定了使用规模和权限,典型代表如 Linux 基金会旗下的开源 区块链项目 Hyperledger 等。华为区块链白皮书 1 区块链的兴起3版权所有 华为技术有限公司表 1-1 区 块 链 的 发 展 阶 段 表区块链发展阶段 典型事件 作用2009-2014( 区 块 链 1.0) 比特币系统公布。 区块链技术起源
13、。以太坊,超级账本 区块链协议层和框架层等区块链开源项目 优化,智能合约支持,公有链和联盟链方向出2014-2017( 区 块 链 2.0)发布。现。商业应用项目爆发 区块链在不同行业的应出现,但仍未大规 用探索,可能向 3.0 进2017-?模落地。 化。近 年 来 区 块 链 的 概 念 不 断 被 炒 热 , 但 技 术 本 身 并 未 大 规 模 落 地 商 用 , 更 多 的 是 一 些 金 融、物流、公益方面的试点。区块链目前在性能、权限和隐私保护、链间互通等方面仍存在 诸多问题,其技术还处于发展阶段。相关咨询和分析报告显示,区块链大规模商用将在 3-5 年之后,因此区块链解决方案
14、仍需要各方进行优化,以满足商用需求。1.3 当前区块链认识上的两大误区业 界 对 区 块 链 的 声 音 很 多 , 而 在 这 么 多 针 对 区 块 链 的 声 音 中 , 一 类 声 音 是 极 度 夸 大 区 块 链的功能,而另一类极端的声音是极力抨击区块链存在的缺陷。业界针对新技术需要更客观 的评价。误区一将 比 特 币 等 同 于 区 块 链 。 首 先 当 前 区 块 链 讲 的 很 热 闹 , 几 乎 人 人 都 在 讲 区 块 链 , 而 更 多 的是谈论比特币等虚拟货币带来的经济价值,将比特币等虚拟加密货币作为区块链的概念使 用,实际上虚拟加密货币仅是区块链中的一种应用形式
15、。目前全球有一千多种虚拟货币,并且数量还在不断增加。虚拟货币(如:比特币)更多的侧重将加密货币作为投资的一种手华为区块链白皮书 1 区块链的兴起4版权所有 华为技术有限公司段,而对于企业或政府更多关注的区块链则从技术层面探讨如何借助区块链可靠性机制,解 决多企业交易安全性问题从而带来商业价值,并试图在更多的场景下释放智能合约和分布式 账本带来的科技潜力。误区二区块链是一种万能的技术,可替代数据库,替代 Internet。 业 界 一 些 观 点 认 为 区 块 链 颠 覆了数据库,或采用分布式数据库取代集中的传统数据库(Oracle、DB2 等 ) 等 说 法 , 其 实 这些只是神化了区块链
16、,区块链主要技术由密码学和共识算法所组成,其中大部分都是已有 技术整合而来,并未开辟新的技术体系。区块链技术是对现有技术的一种补充,其在现有的 加密技术上,利用分布式账本和共识机制形成在数据流转过程中防篡改的一种机制保障。区 块链技术中采用的分布式账本,对于替代数据库来说是不存在的,其不会作为独立数据库使 用,因此独立的数据存储仍然存在,并未被替代。区块链无法离开 Internet、 数 据 库 等 技 术,反而脱离这些技术将无法形成技术体系,因此,区块链是 “X+区 块 链 ”的 技 术 形 态 。5版权所有 华为技术有限公司华为区块链白皮书 2 区块链核心技术及原理机制2 区 块 链 核
17、心 技 术 及 原 理 机 制 2.1 区块链的概念和特征区 块 链 ( Blockchain) 是 一 系 列 现 有 成 熟 技 术 的 有 机 组 合 , 它 对 账 本 进 行 分 布 式 的 有 效 记录,并且提供完善的脚本以支持不同的业务逻辑。在典型的区块链系统中,数据以区块(block)为单位产生和存储,并按照时间顺序连成链式(chain)数据结构。所有节点共同参 与区块链系统的数据验证、存储和维护。新区块的创建通常需得到全网多数(数量取决于不 同的共识机制)节点的确认,并向各节点广播实现全网同步,之后不能更改或删除。从外部来看,区块链系统应具备如下特征: 多方写入,共同维护此
18、处 的 多 方 仅 指 记 账 参 与 方 , 不 包 含 使 用 区 块 链 的 客 户 端 。 区 块 链 的 记 账 参 与 方 应 当由多个利益不完全一致的实体组成,并且在不同的记账周期内,由不同的参与方主导 发起记账(轮换方式取决于不同的共识机制),而其他的参与方将对主导方发起的记账 信息进行共同验证。 公开账本 区 块 链 系 统 记 录 的 账 本 应 处 于 所 有 参 与 者 被 允 许 访 问 的 状 态 , 为 了 验 证 区 块 链 记 录的信息的有效性,记账参与者必须有能力访问信息内容和账本历史。但是公开账本指的 是可访问性的公开,并不代表信息本身的公开,因此,业界期
19、望将很多隐私保护方面的 技术,如零知识证明、同态加密、门限加密等,应用到区块链领域,以解决通过密文操 作就能验证信息有效性的问题。6版权所有 华为技术有限公司华为区块链白皮书 2 区块链核心技术及原理机制 去中心化区 块 链 应 当 是 不 依 赖 于 单 一 信 任 中 心 的 系 统 , 在 处 理 仅 涉 及 链 内 封 闭 系 统 中 的 数 据 时,区块链本身能够创造参与者之间的信任。但是在某些情况下,如身份管理等场景, 不可避免的会引入外部数据,并且这些数据需要可信第三方的信任背书,此时对于不同 类型的数据,其信任应来源于不同的可信第三方,而不是依赖于单一的信任中心。在这 种情况下
20、,区块链本身不创造信任,而是作为信任的载体。 不可篡改 作 为 区 块 链 最 为 显 著 的 特 征 , 不 可 篡 改 性 是 区 块 链 系 统 的 必 要 条 件 , 而 不 是 充 分 条件,有很多基于硬件的技术同样可以实现数据一次写入,多次读取且无法篡改,典型的 例子如一次性刻录光盘(CD-R)。区块链的不可篡改基于密码学的散列算法,以及多方 共同维护的特性,但同时由于这个特性,区块链的不可篡改并不是严格意义上的,称之 为难以篡改更为合适。2.2 区块链的核心技术2.2.1 分布式账本分布式账本技术 DLT (Distributed Ledger Technology)本质上是一种
21、可以在 多个网络节 点、多个物理地址或者多个组织构成的网络中进行数据分享、同步和复制的去中心化数据存 储技术。相较于传统的分布式存储系统,分布式账本技术主要具备两种不同的特征: 传统分布式存储系统执行受某一中心节点或权威机构控制的数据管理机制,分布式账本 往往基于一定的共识规则,采用多方决策、共同维护的方式进行数据的存储、复制等操 作。面对互联网数据的爆炸性增长,当前由单一中心组织构建数据管理系统的方式正受 到更多的挑战,服务方不得不持续追加投资构建大型数据中心,不仅带来了计算、网 络、存储等各种庞大资源池效率的问题,不断推升的系统规模和复杂度也带来了愈加严 峻的可靠性问题。然而,分布式账本技
22、术去中心化的数据维护策略恰恰可以有效减少系 统臃肿的负担。在某些应用场景,甚至可以有效利用互联网中大量零散节点所沉淀的庞 大资源池。7版权所有 华为技术有限公司华为区块链白皮书 2 区块链核心技术及原理机制 传统分布式存储系统将系统内的数据分解成若干片段,然后在分布式系统中进行存储, 而分布式账本中任何一方的节点都各自拥有独立的、完整的一份数据存储,各节点之间 彼此互不干涉、权限等同,通过相互之间的周期性或事件驱动的共识达成数据存储的最 终一致性。经过几十年的发展,传统业务体系中的高度中心化数据管理系统在数据可 信、网络安全方面的短板已经日益受到人们的关注。普通用户无法确定自己的数据是否 被服
23、务商窃取或篡改,在受到黑客攻击或产生安全泄露时更加显得无能为力,为了应对 这些问题,人们不断增加额外的管理机制或技术,这种情况进一步推高了传统业务系统 的维护成本、降低了商业行为的运行效率。分布式账本技术可以在根本上大幅改善这一 现象,由于各个节点均各自维护了一套完整的数据副本,任意单一节点或少数集群对数 据的修改,均无法对全局大多数副本造成影响。换句话说,无论是服务提供商在无授权 情况下的蓄意修改,还是网络黑客的恶意攻击,均需要同时影响到分布式账本集群中的 大部分节点,才能实现对已有数据的篡改,否则系统中的剩余节点将很快发现并追溯到 系统中的恶意行为,这显然大大提升了业务系统中数据的可信度和
24、安全保证。这 两 种 特 有 的 系 统 特 征 , 使 得 分 布 式 账 本 技 术 成 为 一 种 非 常 底 层 的 、 对 现 有 业 务 系 统 具 有强大颠覆性的革命性创新。2.2.2 共识机制区 块 链 是 一 个 历 史 可 追 溯 、 不 可 篡 改 , 解 决 多 方 互 信 问 题 的 分 布 式 ( 去 中 心 化 ) 系 统 。 分布式系统必然面临着一致性问题,而解决一致性问题的过程我们称之为共识。分 布 式 系 统 的 共 识 达 成 需 要 依 赖 可 靠 的 共 识 算 法 , 共 识 算 法 通 常 解 决 的 是 分 布 式 系 统 中 由哪个节点发起提案
25、,以及其他节点如何就这个提案达成一致的问题。我们根据传统分布式 系统与区块链系统间的区别,将共识算法分为可信节点间的共识算法与不可信节点间的共识 算法。前者已经被深入研究,并且在现在流行的分布式系统中广泛应用,其中 Paxos 和 Raft 及其相应变种算法最为著名。对于后者,虽然也早被研究,但直到近年区块链技术发展如火 如荼,相关共识算法才得到大量应用。而根据应用场景的不同,后者又分为以 PoW(P roof of Work)和 PoS(P roof of Stake)等算法为代表的适用于公链的共识算法和以PBFT( Practical Byzantine Fault Tolerance)及
26、 其 变 种 算 法 为 代 表 的 适 用 于 联 盟 链 或 私 有 链 的 共 识算法。8版权所有 华为技术有限公司华为区块链白皮书 2 区块链核心技术及原理机制工作量证明 POW 算法是比特币系统采用算法,该算法于 1998 年 由 W. Dai 在 B-money的设计中提出。以太坊系统当前同样采用 PoW 算法进行共识,但由于以太坊系统出块更快(约 15 秒) ,更容易产生区块,为了避免大量节点白白陪跑,以太坊提出了叔 ( Uncle)块奖 励 机 制 。 PoS( Proof of Stake)算法最早由 Sunny King 在 2012 年 8 月发布的 PPC( PeerT
27、oPeerCoin 点点币)系统中首先实现,而以太坊系统也一直对 PoS 抱有好感,计划后 续以 PoS 代替 PoW 作为其共识机制。PoS 及其变种算法可以解决 PoW 算法一直被诟病的浪 费 算 力 问 题 , 但 其 本 身 尚 未 经 过 足 够 验 证 。 PBFT 算法最早由 Miguel Castro( 卡 斯 特 罗 ) 和 Barbara Liskov( 利 斯 科 夫 ) 在 1999 年的 OSDI99 会议上提出,该算法相较原始拜占庭容错 算法具有更高的运行效率。假设系统中共有 N 个 节 点 , 那 么 PBFT 算 法 可 以 容 忍 系 统 中 存 在 F 个恶
28、意节点,并且 3F+1 不大于 N。 PBFT 共识算法虽然随着系统中节点数增多而可以容忍 更多的拜占庭节点,但其共识效率却是以极快的速率下降,这也是我们能看到的应用 PBFT 做共识算法的系统中很少有超过 100 个节点的原因。无论是 PoW 算法还是 PoS 算法,其核心思想都是通过经济激励来鼓励节点对系统的贡 献和付出,通过经济惩罚来阻止节点作恶。公链系统为了鼓励更多节点参与共识,通常会发 放代币(token)给对系统运行有贡献的节点。而联盟链或者私链与公链的不同之处在于, 联盟链或者私链的参与节点通常希望从链上获得可信数据,这相对于通过记账来获取激励而 言有意义得多,所以他们更有义务和
29、责任去维护系统的稳定运行,并且通常参与节点数较 少 , PBFT 及其变种算法恰好适用于联盟链或者私链的应用场景。2.2.3 智能合约 什么是智能合约?智 能 合 约 ( Smart contract ) 是 一 种 旨 在 以 信 息 化 方 式 传 播 、 验 证 或 执 行 合 同 的 计 算 机协议。智能合约允许在没有第三方的情况下进行可信交易。这些交易可追踪且不可逆 转。其目的是提供优于传统合同方法的安全,并减少与合同相关的其他交易成本。智能合约概念可追溯到 20 世纪 90 年 代 , 由 计 算 机 科 学 家 、 法 学 家 及 密 码 学 家 尼 克萨博( Nick Szab
30、o)首次提出。他对智能合约的定义如下 : “一个智能合约是一套以 数字形式定义的承诺,包括合约参与方可以在上面执行这些承诺的协议。 ” 尼 克萨博 等研究学者,希望能够借助密码学及其他数字安全机制,将传统的合约条款的制定与履9版权所有 华为技术有限公司华为区块链白皮书 2 区块链核心技术及原理机制行方式,置于计算机技术之下,降低相关成本。然而,由于当时许多技术尚未成熟,缺 乏能够支持可编程合约的数字化系统和技术,尼克 萨 博 关 于 智 能 合 约 的 工 作 理 论 迟 迟 没有实现。随 着 区 块 链 技 术 的 出 现 与 成 熟 , 智 能 合 约 作 为 区 块 链 及 未 来 互
31、联 网 合 约 的 重 要 研 究 方向,得以快速发展。基于区块链的智能合约包括事件处理和保存的机制,以及一个完 备的状态机,用于接受和处理各种智能合约,数据的状态处理在合约中完成。事件信息 传入智能合约后,触发智能合约进行状态机判断。如果自动状态机中某个或某几个动作 的触发条件满足,则由状态机根据预设信息选择合约动作的自动执行。因此,智能合约 作为一种计算机技术,不仅能够有效地对信息进行处理,而且能够保证合约双方在不必 引入第三方权威机构的条件下,强制履行合约,避免了违约行为的出现。 智能合约的优点与风险随 着 智 能 合 约 在 区 块 链 技 术 中 的 广 泛 应 用 , 其 优 点
32、已 被 越 来 越 多 的 研 究 人 员 与 技 术 人员认可。总体来讲,智能合约具备以下优点:a. 合约制定的高时效性:智能合约在制定中,不必依赖第三方权威机构或中心化代理 机构的参与,只需合约各方通过计算机技术手段,将共同约定条款转化为自动化、 数字化的约定协议,大大减少了协议制定的中间环节,提高了协议制定的响应效 率。b. 合约维护的低成本性:智能合约在实现过程中以计算机程序为载体,一旦部署成功 后,由计算机系统按照合约中的约定监督、执行,一旦发生毁约可按照事前约定由 程序强制执行。因此,极大降低了人为监督与执行的成本。c. 合约执行的高准确性:智能合约的执行过程中,由于减少了人为参与
33、的行为,因此 利益各方均无法干预合约的具体执行,计算机系统能够确保合约正确执行,有效提 高了合约的执行准确性。虽 然 智 能 合 约 较 传 统 合 约 具 有 明 显 的 优 点 , 但 对 智 能 合 约 的 深 入 研 究 与 应 用 仍 在 不 断探索中,我们不能忽略这种新兴技术潜在的风险。2017 年 , 多 重 签 名 的 以 太 坊 钱 包 Parity 宣布了一个重大漏洞,这个关键漏洞会使多 重签名的智能合约无法使用,该漏洞导致了价值超过 1.5 亿 美 元 的 以 太 坊 资 金 被 冻 结 。10版权所有 华为技术有限公司华为区块链白皮书 2 区块链核心技术及原理机制无独有
34、偶,2018 年 2 月 , 新 加 坡 国 立 大 学 、 新 加 坡 耶 鲁 大 学 学 院 和 伦 敦 大 学 学 院 的 一 组 研究人员发布了一份报告声称,他们运用分析工具 Maian, 分 析 基 于 以 太 坊 的 近 100 万 个智能合约,发现有 34,200 个合约含有安全漏洞,予黑客可趁之机,可窃取以太币或是 冻结资产、删除合约。安 全 风 险 事 件 的 发 生 值 得 我 们 反 思 , 但 不 管 怎 样 , 业 内 人 士 普 遍 认 为 , 区 块 链 技 术 及智能合约将成为未来 IT 技术发展的一个重要方向,目前的风险是新技术成熟所必然 经历的过程。 智能合
35、约的应用目 前 , 智 能 合 约 作 为 区 块 链 的 一 项 核 心 技 术 , 已 经 在 以 太 坊 、 Hyperledger Fabric 等 影响力较强的区块链项目中,得到广泛应用。a. 以太坊的智能合约应用:以太坊的一个智能合约就是一段可以被以太坊虚拟机执行 的代码。以太坊支持强大的图灵完备的脚本语言,允许开发者在上面开发任意应 用 , 这 些 合 约 通 常 可 以 由 高 级 语 言 ( 例 如 : Solidity、 Serpent、 LLL 等 ) 编 写 , 并 通 过 编 译 器 转 换 成 字 节 码 (byte code) 存 储 在 区 块 链 上 。 智
36、能 合 约 一 旦 部 署 就 无 法 被 修 改。用户通过合约完成账户的交易,实现对账户的货币及状态进行管理与操作。b. Hyperledger Fabric 的智能合约应用:在 Hyperledger Fabric 项目中,智能合约的概念 及应用被更广泛的延伸。作为无状态的、事件驱动的、支持图灵完备的自动执行代 码,智能合约在 Fabric 中部署在区块链网络中,直接与账本进行交互,处于十分核 心 的 位 置 。 和 以 太 坊 相 比 , Fabric 智能合约和底层账本是分开的,升级智能合约时 并 不 需 要 迁 移 账 本 数 据 到 新 智 能 合 约 当 中 , 真 正 实 现
37、了 逻 辑 与 数 据 的 分 离 。 Fabric 的智能合约称为链码(chaincode),分为系统链码和用户链码。系统链码用来实现 系统层面的功能,负责 Fabric 节点自身的处理逻辑,包括系统配置、背书、校验等 工作。用户链码实现用户的应用功能,提供了基于区块链分布式账本的状态处理逻 辑,由应用开发者编写,对上层业务进行支持。用户链码运行在隔离的链码容器 中。11版权所有 华为技术有限公司华为区块链白皮书 2 区块链核心技术及原理机制2.2.4 密码学信息安全及密码学技术,是整个信息技术的基石。在区块链中,也大量使用了现代信息 安全和密码学的技术成果,主要包括:哈希算法、对称加密、非
38、对称加密、数字签名、数字 证书、同态加密、零知识证明等。本章从安全的完整性、机密性、身份认证等维度,简要介 绍区块链中安全及密码学技术的应用。 完整性(防篡改)区 块 链 采 用 密 码 学 哈 希 算 法 技 术 , 保 证 区 块 链 账 本 的 完 整 性 不 被 破 坏 。 哈 希 ( 散 列)算法能将二进制数据映射为一串较短的字符串,并具有输入敏感特性,一旦输入的 二进制数据,发生微小的篡改,经过哈希运算得到的字符串,将发生非常大的变化。此 外,优秀哈希算法还具有冲突避免特性,输入不同的二进制数据,得到的哈希结果字符 串是不同的。区 块 链 利 用 哈 希 算 法 的 输 入 敏 感
39、 和 冲 突 避 免 特 性 , 在 每 个 区 块 内 , 生 成 包 含 上 一 个 区块的哈希值,并在区块内生成验证过的交易的 Merkle 根哈希值。一旦整个区块链某些 区块被篡改,都无法得到与篡改前相同的哈希值,从而保证区块链被篡改时,能够被迅 速识别,最终保证区块链的完 整性(防篡改) 。 机密性 加 解 密 技 术 从 技 术 构 成 上 , 分 为 两 大 类 : 一 类 是 对 称 加 密 , 一 类 是 非 对 称 加 密 。 对称加密的加解密密钥相同;而非对称加密的加解密密钥不同,一个被称为公钥,一个被 称为私钥。公钥加密的数据,只有对应的私钥可以解开,反之亦然。区块链尤
40、其是联盟链,在全网传输过程中,都需要 TLS(Transport Layer Security)加 密通信技术,来保证传输数据的安全性。而 TLS 加密通信,正是非对称加密技术和对称 加密技术的完美组合:通信双方利用非对称加密技术,协商生成对称密钥,再由生成的 对称密钥作为工作密钥,完成数据的加解密,从而同时利用了非对称加密不需要双方共 享密钥、对称加密运算速度快的优点。 身份认证单纯的 TLS 加密通信,仅能保证数据传输过程的机密性和完整性,但无法保障通信 对端可信(中间人攻击)。因此,需要引入数字证书机制,验证通信对端身份,进而保12版权所有 华为技术有限公司华为区块链白皮书 2 区块链核
41、心技术及原理机制证对端公钥的正确性。数字证书一般由权威机构进行签发。通信的一侧持有权威机构根 CA(Certification Authority)的公钥,用来验证通信对端证书是否被自己信任(即证书是否 由自己颁发),并根据证书内容确认对端身份。在确认对端身份的情况下,取出对端证 书中的公钥,完成非对称加密过程。此 外 , 区 块 链 中 还 应 用 了 现 代 密 码 学 最 新 的 研 究 成 果 , 包 括 同 态 加 密 、 零 知 识 证 明 等 , 在区块链分布式账本公开的情况下,最大限度地提供隐私保护能力。这方面的技术,还在不 断发展完善中。区 块 链 安 全 是 一 个 系 统
42、 工 程 , 系 统 配 置 及 用 户 权 限 、 组 件 安 全 性 、 用 户 界 面 、 网 络 入 侵 检测和防攻击能力等,都会影响最终区块链系统的安全性和可靠性。区块链系统在实际构建 过程中,应当在满足用户要求的前提下,在安全性、系统构建成本以及易用性等维度,取得 一个合理的平衡。2.3 华 为 在 区 块 链 发 展 中 进 行 的 技 术 创 新2.3.1 共识算法创新共识效率是整个区块链对外提供服务的核心能力,实用拜占庭容错算法 PBFT 解决了原 始拜占庭容错算法效率不高的问题,将算法复杂度由指数级降低到多项式级,使得拜占庭容 错 算 法 在 实 际 系 统 应 用 中 变
43、 得 可 行 , PBFT 完成 3f+1 个节点集群内 f 个节点拜占庭容错,即 任一节点收到 2f+1 条消息后可以得到正确的结论(至多有 f 个节点发送恶意 错误信息) ,是 联盟链中常用共识算法。尽 管 得 到 广 泛 应 用 , PBFT 仍 然 存 在 一 些 缺 限 。 PBFT 算法为了克服 Primary Node 采用 了复杂的全量点对点通信来监听各类异常行为,通信复杂度达到 O( n2) 的 同 时 额 外 增 加 了大量签名校验,由此带来繁重的系统开销,降低了共识效率、节点扩展性。此外,一旦发 生主节点选举,在选主期间 PBFT 将无法正常共识,若新当选的 Primar
44、y 节点作弊或者故 障,可能会造成连续选主,在此期间,整个区块链系统对外服务能力将会大幅降低甚至无法 提供对外服务。13版权所有 华为技术有限公司华为区块链白皮书 2 区块链核心技术及原理机制华 为 区 块 链 采 用 一 种 高 效 、 支 持 拜 占 庭 容 错 、 具 有 自 主 知 识 产 权 的 共 识 算 法 , 有 效 改 进 了 PBFT 算法的上述缺陷。通过改进共识流程,保障了节点故障和切主期间区块链系统对外 服务的稳定性。同时通过减少不必要的签名验证、简化共识流程,将通信复杂度从 O(n 2)减少到 O(n ) ,有效提升了共识效率和扩展性。2.3.2 安全隐私保护华为区块
45、链安全隐私从以下方面提供更强保障: 国密算法 国 密 算 法 是 国 家 密 码 局 制 定 标 准 的 一 系 列 算 法 , 随 着 金 融 安 全 上 升 到 国 家 安 全 高度,国密算法的应用也越来越广泛,2017 年 11 月 SM2/9 正式进入 ISO/IEC 标 准 。 华 为 区块链支持国密 SM2/3/4, 提 供 多 种 加 密 算 法 给 用 户 选 择 , 同 时 满 足 合 规 要 求 。 同态加密用户交易隐私保护 区 块 链 可 以 防 篡 改 , 去 中 心 化 , 在 非 信 任 的 网 络 运 行 , 但 是 用 户 的 账 本 对 参 与 组 织是透明的
46、,任何组织都可以访问到相同的数据,如果将用户的隐私的数据放到链上将会 放大用户隐私泄露的风险。当前在比特币等公有链系统中,所有的交易信息都是公开的(包括交易金额) 。但是,在金融业的交易中,金融交易信息是敏感数据,非业务相关 方不能查看,但同时要满足监管机构的监管要求,而大部分的区块链并没有满足隐私性 要求。华为区块链交易解决方案中: ( 1)提供同态加密库,对用户的交易数据用 其公钥进 行加密保护,交易的时候都是密文运算,最终账本中加密保存,即使节点被攻破,获取 到账本记录 也无法解密; ( 2)提供范围证明校验,背书节点能够对密文进行背书,无需 解密就能校验交易的正确性,从而识别出恶意交易
47、风险,保证了智能合约的正确执行。 华为开发出适用于 Hyperledger Fabric 平台的保密交易系统,通过改良的算法,比起使用 传统的加法同态加密与基于环签名的范围零知识证明,性能大幅提升。 零 知 识 证 明零 知 识 证 明 能 够 在 不 向 验 证 者 提 供 任 何 有 用 的 信 息 情 况 下 , 使 验 证 者 来 相 信 该 结 论 是正确的,证明过程中不用向验证者泄露被证明的消息。华为区块链将会提供零知识证 明能力,对用户的隐私数据进行保护,减少用户隐私泄露风险。14版权所有 华为技术有限公司华为区块链白皮书 2 区块链核心技术及原理机制 智 能 合 约 安 全当
48、智 能 合 约 运 行 错 误 或 者 编 程 错 误 时 , 就 会 导 致 “DAO”的 事 件 , 从 而 让 用 户 遭 受 巨大损失,华为区块链可提供智能合约检测工具,防止恶意的企图通过智能合约漏洞入 侵用户数据的行为,同时将提供安全容器,持续监控容器的运行状态,若发现漏洞,进 行有效的隔离,严格对容器的访问权限进行控制,从而保证合约安全运行。 共识安全 华 为 区 块 链 将 提 供 基 于 硬 件 的 共 识 算 法 , 使 用 形 式 化 验 证 保 证 共 识 机 制 的 安 全 , 同时可以提高共识效率,增加网络的稳定性。 账本安全 每 个 节 点 的 本 地 账 本 可
49、能 会 被 篡 改 , 如 果 出 现 大 部 分 节 点 的 本 地 账 本 都 被 修 改 , 就可能造成 51%的 攻 击 。 华 为 区 块 链 将 提 供 基 于 硬 件 的 保 护 机 制 , 对 本 地 账 本 的 机 密 性 和完整性保护,防止账本被篡改。 通信端到 端安全通用 TLS 通信只能保护应用与应用之间的安全,如果启动 TLS 之前,就已经被攻 击 , TLS 的保护就失效。华为区块链将提供基于硬件的解决方案,端到端的保证区块链 节点间的通信安全。2.3.3 离链通道单 位 时 间 内 交 易 处 理 能 力 仍 是 区 块 链 大 规 模 应 用 的 主 要 瓶 颈 之 一 。 受 限 于 区 块 链 的 分 布 式架构特性,节点间不均等的计算能力,不同的网络状况等因素,全网共识往往无法快速达 成,从而导致交易速度难以提升。现阶段比特币网络每秒仅能处理约 7 笔 交 易 , 支 持 智 能 合 约的以太坊交易处理速度约为每秒 15 笔。相比之下,中心化服务器支持的 VISA 系统峰值 吞吐率可达 56,000 笔,支付宝在 2017 年 双 十 一 期 间 则 达 每 秒 256,000 笔 峰 值 吞 吐 率 。 交 易 拥堵