转载

三分钟看完京东区块链白皮书 | 区块链技术

京东区块链白皮书分析了区块链在企业级应用上的场景,以及技术发展目前的短板,编写者文字功底深厚,是一份优秀的区块链资料概括。
白皮书可以认为是京东在Baas即Blockchain as service方面的规划和布局,介绍了区块链在京东的应用场景,系统架构和未来规划,美中不足的是缺少细节以及一些关键问题说明。
毕竟区块链目前处于大企业卡位竞争阶段,一些核心技术细节不可能披露出来,问过几位区块链一线开发者,都表示这份资料可以作为一份入门的区块链学习资料,50页的篇幅并不长,建议大家还是去系统看一下白皮书。

京东拥有全渠道零售和供应链的高质量大数据,区块链技术可以解决京东业务场景中多个主体的信息记录与分享,可信数据交换与传递的业务诉求。
白皮书指出京东的目标是以区块链为“链接器”,结合自身在云计算、大数据、人工智能、物联网等新技术上积累的经验,构建一体化的智慧供应链体系、零售网络和金融科技。

点击下载京东区块链白皮书

一、京东如何看待区块链技术

1.区块链技术如何引领数字经济变革

京东认为区块链技术在以下三个方向存在将引领数字经济变革的巨大的应用机会:

  • 建立社会化共享的可信数据库

区块链的技术本质是一种去中心化、面向业务、跨主体、健壮与安全的分布式状态机。区块链具有存储数据、共有数据、分布式、防篡改与保护隐私、数字化合约 5项核心特征。
基于这些特征,部署跨主体间的区块链联盟链节点和桥接,用区块链技术搭建一张社会化的共享数据存储网络,有机会以客观的技术手段来解决跨主体的信任问题。

  • 提升交易效率,降低交易成本

基于区块链智能合约等多种模式的商业交易可以大幅减少数据核实的环节和降低成本,同时又能保证商业交易的风险降低,交易更具确定性。

  • 推动供应链创新

伴随着中国政府将供应链创新与应用上升为国家战略和居民消费的不断升级,供应链风险控制和提升供应链透明度的诉求不断攀升。区块链技术可以搭建供应链全流 程节点共同维护的联盟链,在联盟链中建立数据维护的参与规则与激励机制。

2.对区块链技术的再理解

区块链本质上是一种健壮和安全的分布式状态机,典型的技术构成包括共识算法、P2P 通讯、密码学、数据库技术和虚拟机。

这也构成了区块链必不可少的 5 项核心能力:

  • 存储数据

源自数据库技术和硬件存储计算能力的发展,随着时间的累积,区块链的大小也在持续上升,成熟的硬件存储计算能力,使得多主体间同时大量存储相同数据成为可能;

  • 共有数据

源自共识算法,参与区块链的各个主体通过约定的决策机制自动达成共识,共享同一份可信的数据账本;

  • 分布式

源自 P2P 通讯技术,实现各主体间点对点的信息传输;

  • 防篡改与保护隐私

源自密码学运用,通过公钥私钥、哈希算法等密码学工具,确保各主体身份和共有信息的安全;

  • 数字化合约

源自虚拟机技术,将生成的跨主体的数字化智能合约写入区块链系统, 通过预设的触发条件,驱动数字合约的执行。

3.区块链发展面临的挑战

尤其在企业级应用方面,区块链的交易并发能力、数据存储能力、通用性、功能 完备性、易用性都还存在明显不足。

  • 交易并发能力

目前开源的区块链系统的高并发交易能力普遍不高,其中,共识算法是制约性能的重要方面。
制约性能的另一个重要因素是账本结构。目前典型的区块链账本设计为区块的单链结构,意味着从全局来看所有的交易都只能顺序地被处理。由于交易处理缺少并行度,因而难以获得接近于传统中心化系统的性能表现。

  • 数据存储能力

在数据存储能力方面,由于区块链的数据只有追加而没有移除,数据只增不减,随着时间推移,区块链系统对数据存储大小的需要也只能持续地增大,在处理企业数据时这一趋势增长更甚。

企业场景下的数据包含结构化和非结构化数据,数据量十分庞大。以电商供应链为例,主要电商入口的每日数据记录条数通常都在千万级以上,如再沿着供应链条进一步展开时,每延伸一级数据量都会进一步放大。

目前典型的区块链系统在实现对账本数据的存储时,典型的实现方式是基于文件系统或者简单的 KV 数据库存储,没有采用分布式存储的设计,因而数据存储能力与实际需要之间 也存在较大的差距,需要探索更为有效的大数据存储方式。

  • 通用性

区块链需要适应多样化的业务需求,满足跨企业的业务链条上的数据共享,这意味着区
块链对数据的记录方式要有足够的通用和标准,才能表示各种结构化和非结构化的信息,并
能够满足随着业务范围拓展所需的跨链要求。

  • 功能完备性

纵观现有区块链平台,模型抽象单一,难以适应业务系统快速开发的要求。缺少对企业应用中常见的一些功能的支持,例如用户认证、多级授权等。

  • 易用性

区块链技术需要降低学习和使用门槛,支持快速实施部署,提供贴近业务的接口,推广使用。

二、京东区块链应用场景

应用

三、京东区块链架构体系

京东区块链的目标是打造面向企业级应用的区块链基础设施,为企业提供能够切实解决业务痛点的区块链技术方案。

京东区块链采用分层架构设计、标准化账本数据协议、优化共识算法、引入微服务架构与可伸缩的分布式存储技术、灵活的多级授权策略等一系列的创新技术方案。

1.总体架构

京东区块链的总体架构分为 3 个层次:区块链协议、组件框架、服务平台。

京东区块链架构

  • 区块链协议

京东区块链协议作为最顶层的架构设计,定义了区块链的数据格式标准,包括账本状态、历史证明、账本操作集、合约指令集 4 个方面的数据标准。

  • 组件模型

“组件模型”是区块链逻辑组件的框架模型,是对京东区块链协议的实现框架。包括了
共识网络、账本、持久化引擎、合约引擎四个组件。

  • 服务平台

“服务平台”是对上层的区块链协议和组件模型的具体实现,由网关、服务、节点网 络、SDK 和一套工具集组成。

京东区块链在架构和实现上遵循以下的几个设计原则。

  • 面向业务
  • 标准化
  • 松耦合与模块化

2.应用模型

与传统的互联网协议不同(如 TCP/IP,HTTP 等),传统协议都是面向通讯过程的,而区块链是面向 业务过程的。区块链作为一种分布式状态机,“智能合约”是实现分布式业务状态转移的核心功能,使得基于区块链的应用架构模型产生了全新的变革。

假设要开发一个商品贸易系统,业务的参与者包括贸易买卖双方和物流企业,这个系统要帮助买卖双方建立交易合同、跟踪货物运输过程、交付结算。

基于区块链实现该应用通常需要以下几个步骤:

(1) 定义参与业务的各个主体的身份账户

为参与者注册登记一个由公钥私钥对(证书)表示的身份账户。由符合国家标准的证书
所表示的身份账户是能够代表一个特定的法人,由该账户签发的数据可以在法律上被认为是
该法人做出的确认。

(2) 编写智能合约对业务过程做出定义

把参与者之间达成的商业协议以智能合约代码的形式进行定义,以数字化形式约定贸易
的商品属性、数量、交付价格、交付期限、交付条件、运输方式、交割检验标准、货款计算
方式、货款支付时限等等。

(3) 联合签署智能合约并触发业务初始条件

智能合约最后需要经过参与者以各自的身份账户做出签署,之后每一方参与者只需要根
据自己业务范围内的业务进程做出相应的操作,便触发了智能合约的执行。

四、架构分层解析

1.账本协议

  • 账本状态
    表示区块链系统在某一时刻所处的状况,由系统保存的业务数据以及系统运行的控制属性构成。

  • 账本操作集
    “账本操作集”是为了实现跨链互操作而定义一个通用的标准,包含“类型”的标准码,“参数”的标准格式。

  • 合约指令集

区块链以合约语言的形式定义业务状态的控制和转换逻辑。通过设计一个标准化的合约语言指令集,可以用一种通用的方式来表述各种复杂的业务逻辑,从而与具体的编程语言无关。

2.组件模型

  • 共识网络

目前典型的共识算法主要有 PoW、PoS、PBFT、Raft、Paxos 等。这些算法在运行过程都可以抽象下面几个阶段:

(1)交易扩散;
(2)交易排序;
(3)调用交易执行程序;
(4)对交易执行结果进行共识;
(5)提交共识结果。

各种共识算法的差异体现在不同阶段采取了不同实现策略。
京东区块链选择类 BFT 的算法进行优化,提供了确定性交易执行、拜占庭容错、动态调整节点的特性。

  • 账本

账本状态与合约分离,使用基于身份的访问控制协议约束合约对状态的访问,这种将数 据与逻辑分离的设计模式是典型的贫血模型,可为上层业务逻辑提供无状态的逻辑抽象。

  • 持久化存储
    将账本信息的持久化格式定义为更简洁的 KV 格式数据,使得可以利用成熟的 NoSQL 数据库来实现持久化存储。

  • 合约引擎

合约引擎包含两大部分,前端包括合约高级语言规范及其工具链,后端是一个轻量级的 合约中间代码的执行环境。

3.服务平台

功能模块分为区块链网关、区块链节点服务、区块链共识网络、配套工具四个部分。

  • 区块链网关

“区块链网关”被设计为一种轻量的网关系统,通常是部署在参与者的网络环境中,提供功能包括:

a) 私钥管理:提供完全本地化的私钥保管功能;

b) 隐私保护:采用端到端加密手段实现隐私保护; c) 协议转换:提供轻量化的 HTTP Restful Service,适配 TCP 协议的区块链节点 API。

  • 区块链节点服务

在区块链基础网络的基础上提供的面向应用的通用的功能组件,目的是提供通用功能的
复用。

  • 区块链共识网络

由共识节点组成的网络,基于 P2P 网络和共识算法确保交易数据在节点之间保持一致。

五、 京东区块链的特点

1.性能

  • 采用优化的 BFT 共识协议和 P2P 通讯,支持多链并行共识

采用改进的 BFT 算法,支持动态的调整网络拓扑,实现节点动态加入及主动退出。为了应对多样化的业务场景、满足信息安全需求、提升业务吞吐量,京东区块链支持多链架构。不相关的业务运行在多条并行的区块链上,这为我们提供了针对业务的线性扩展能力。

多链并行

对于多条链之间的互操作我们采取了中继链的模式,参与各方向中继链节点提交提案,结果经共识后得以确认。

  • 采用微服务处理架构,支持横向伸缩、动态扩容,实现海量交易处理与数据存储

微服务

通过测试、分析发现系统处理海量交易时,共识节点中密码模块与合约模块存在性能瓶颈。为了减轻这方面问题的影响,将密码模块、合约模块拆分为单独的无状态的微服务,以便在处理海量交易时有针对性的对密码、合约微服务进行横向扩容。

  • 采用灵活的数据存储结构,支持冷热数据分离
  • 支持节点动态加入和退出,实现系统的高可用性,保证业务不间断运行

2.功能

  • 支持用户实名与认证
  • 支持企业数据治理
  • 支持事件驱动的业务协作模型

京东区块链采用通用事件驱动模型框架。已接入 AKKA 的 Actor 模型,对并发模型进行了更高的抽象。采用轻量级事务处理,从事件层面实现细粒度的组件复用。

  • 支持多账本以实现按业务维度管理链上数据

3.安全

  • 可插拔的密码算法,可以灵活的制定相应的密码体系
  • 平台默认实现多套密码算法,包括国密算法和硬件加密设备

4.合约

  • 支持可复用的智能合约
  • 支持智能合约语言的调试功能

5.合规

  • 支持基于 CA 的账户认证
  • 支持监管节点的接入
  • 支持数据备案

六、展望区块链技术发展

区块链是构建合作伙伴间信任经济的基石,那么就需要区块链或是联盟链在互联网的广泛部署和规模化应用。
目前区块链技术推广仍存在诸多挑战,京东区块链技术团队总结和建议如下:

(1) 政策与标准指导

区块链规模化应用,需要跨企业达成一致的技术标准和行业监管标准

(2) 技术平台的不断完善

区块链技术脱胎于比特币公共网络,据不完全统计,比特币矿池每年消耗大量的电力资源,原因是完全公有链的区块链部署形式实际上并不适用于全部场景。

(3) 在应用中建立激励机制和商业模型

比特币作为区块链的创始级应用得益于它搭建了一套非常完善的公有链模型和基于这个模型的工作和激励机制。

正文到此结束
本文目录