区块链技术 blockchain区块链技术研究区块链研习社

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

2018-03-31  本文已影响260人  邴越

京东区块链白皮书分析了区块链在企业级应用上的场景,以及技术发展目前的短板,编写者文字功底深厚,是一份优秀的区块链资料概括,可以认为是京东在Baas即Blockchain as service方面的规划和布局,不过缺少京东在区块链方面的创新策略介绍。

京东拥有全渠道零售和端到端供应链的高质量大数据,区块链技术天然可以解决京东业务场景中多个主体的信息记录与分享,可信数据交换与传递的业务诉求。

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

白皮书指出京东的目标是以区块链为“链接器”,结合自身在云计算、大数据、人工智能、物联网等新技术上积累的经验,构建一体化的智慧供应链体系、零售网络和金融科技。

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

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

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

区块链的技术本质是一种去中心化、面向业务、跨主体、健壮与安全的分布式状态机。区块链具有存储数据、共有数据、分布式、防篡改与保护隐私、数字化合约 5项核心特征。

基于这些特征,部署跨主体间的区块链联盟链节点和桥接,用区块链技术搭建一张社会化的共享数据存储网络,有机会以客观的技术手段来解决跨主体的信任问题。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

区块链需要适应多样化的业务需求,满足跨企业的业务链条上的数据共享,这意味着区

块链对数据的记录方式要有足够的通用和标准,才能表示各种结构化和非结构化的信息,并

能够满足随着业务范围拓展所需的跨链要求。

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

二、京东区块链应用场景

Screen Shot 2018-03-31 at 5.31.09 PM.png

三、京东区块链架构体系

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

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

1.总体架构

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

京东区块链架构.png

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

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

2.应用模型

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

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

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

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

为参与者注册登记一个由公钥私钥对(证书)表示的身份账户。由符合国家标准的证书

所表示的身份账户是能够代表一个特定的法人,由该账户签发的数据可以在法律上被认为是

该法人做出的确认。

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

把参与者之间达成的商业协议以智能合约代码的形式进行定义,以数字化形式约定贸易

的商品属性、数量、交付价格、交付期限、交付条件、运输方式、交割检验标准、货款计算

方式、货款支付时限等等。

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

智能合约最后需要经过参与者以各自的身份账户做出签署,之后每一方参与者只需要根

据自己业务范围内的业务进程做出相应的操作,便触发了智能合约的执行。

四、架构分层解析

1.账本协议

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

2.组件模型

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

(1)交易扩散;

(2)交易排序;

(3)调用交易执行程序;

(4)对交易执行结果进行共识;

(5)提交共识结果。

各种共识算法的差异体现在不同阶段采取了不同实现策略。

京东区块链选择类 BFT 的算法进行优化,提供了确定性交易执行、拜占庭容错、动态调整节点的特性。

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

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

3.服务平台

Screen Shot 2018-03-31 at 5.51.36 PM.png

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

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

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

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

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

复用。

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

五、 京东区块链的特点

1.性能

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


多链并行.png

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

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

2.功能

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

3.安全

4.合约

5.合规

六、展望区块链技术发展

区块链是构建合作伙伴间信任经济的基石,那么就需要区块链或是联盟链在互联网的广泛部署和规模化应用。

目前区块链技术推广仍存在诸多挑战,京东区块链技术团队总结和建议如下:

(1) 政策与标准指导

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

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

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

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

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

上一篇 下一篇

猜你喜欢

热点阅读