京东区块链白皮书分析了区块链在企业级应用上的场景,以及技术发展目前的短板,编写者文字功底深厚,是一份优秀的区块链资料归纳。
白皮书能够认为是京东在Baas即Blockchain as service方面的规划和布局,介绍了区块链在京东的应用场景,系统架构和将来规划,美中不足的是缺乏细节以及一些关键问题说明。
毕竟区块链目前处于大企业卡位竞争阶段,一些核心技术细节不可能披露出来,问过几位区块链一线开发者,都表示这份资料能够做为一份入门的区块链学习资料,50页的篇幅并不长,建议你们仍是去系统看一下白皮书。前端
京东拥有全渠道零售和供应链的高质量大数据,区块链技术能够解决京东业务场景中多个主体的信息记录与分享,可信数据交换与传递的业务诉求。
白皮书指出京东的目标是以区块链为“连接器”,结合自身在云计算、大数据、人工智能、物联网等新技术上积累的经验,构建一体化的智慧供应链体系、零售网络和金融科技。算法
点击下载京东区块链白皮书数据库
京东认为区块链技术在如下三个方向存在将引领数字经济变革的巨大的应用机会:编程
区块链的技术本质是一种去中心化、面向业务、跨主体、健壮与安全的分布式状态机。区块链具备存储数据、共有数据、分布式、防篡改与保护隐私、数字化合约 5项核心特征。
基于这些特征,部署跨主体间的区块链联盟链节点和桥接,用区块链技术搭建一张社会化的共享数据存储网络,有机会以客观的技术手段来解决跨主体的信任问题。后端
基于区块链智能合约等多种模式的商业交易能够大幅减小数据核实的环节和下降成本,同时又能保证商业交易的风险下降,交易更具肯定性。设计模式
伴随着中国政府将供应链创新与应用上升为国家战略和居民消费的不断升级,供应链风险控制和提高供应链透明度的诉求不断攀升。区块链技术能够搭建供应链全流 程节点共同维护的联盟链,在联盟链中创建数据维护的参与规则与激励机制。安全
区块链本质上是一种健壮和安全的分布式状态机,典型的技术构成包括共识算法、P2P 通信、密码学、数据库技术和虚拟机。网络
这也构成了区块链必不可少的 5 项核心能力:架构
源自数据库技术和硬件存储计算能力的发展,随着时间的累积,区块链的大小也在持续上升,成熟的硬件存储计算能力,使得多主体间同时大量存储相同数据成为可能;并发
源自共识算法,参与区块链的各个主体经过约定的决策机制自动达成共识,共享同一份可信的数据帐本;
源自 P2P 通信技术,实现各主体间点对点的信息传输;
源自密码学运用,经过公钥私钥、哈希算法等密码学工具,确保各主体身份和共有信息的安全;
源自虚拟机技术,将生成的跨主体的数字化智能合约写入区块链系统, 经过预设的触发条件,驱动数字合约的执行。
尤为在企业级应用方面,区块链的交易并发能力、数据存储能力、通用性、功能 完备性、易用性都还存在明显不足。
目前开源的区块链系统的高并发交易能力广泛不高,其中,共识算法是制约性能的重要方面。
制约性能的另外一个重要因素是帐本结构。目前典型的区块链帐本设计为区块的单链结构,意味着从全局来看全部的交易都只能顺序地被处理。因为交易处理缺乏并行度,于是难以得到接近于传统中心化系统的性能表现。
在数据存储能力方面,因为区块链的数据只有追加而没有移除,数据只增不减,随着时间推移,区块链系统对数据存储大小的须要也只能持续地增大,在处理企业数据时这一趋势增加更甚。
企业场景下的数据包含结构化和非结构化数据,数据量十分庞大。以电商供应链为例,主要电商入口的每日数据记录条数一般都在千万级以上,如再沿着供应链条进一步展开时,每延伸一级数据量都会进一步放大。
目前典型的区块链系统在实现对帐本数据的存储时,典型的实现方式是基于文件系统或者简单的 KV 数据库存储,没有采用分布式存储的设计,于是数据存储能力与实际须要之间 也存在较大的差距,须要探索更为有效的大数据存储方式。
区块链须要适应多样化的业务需求,知足跨企业的业务链条上的数据共享,这意味着区
块链对数据的记录方式要有足够的通用和标准,才能表示各类结构化和非结构化的信息,并
可以知足随着业务范围拓展所需的跨链要求。
纵观现有区块链平台,模型抽象单一,难以适应业务系统快速开发的要求。缺乏对企业应用中常见的一些功能的支持,例如用户认证、多级受权等。
区块链技术须要下降学习和使用门槛,支持快速实施部署,提供贴近业务的接口,推广使用。
京东区块链的目标是打造面向企业级应用的区块链基础设施,为企业提供可以切实解决业务痛点的区块链技术方案。
京东区块链采用分层架构设计、标准化帐本数据协议、优化共识算法、引入微服务架构与可伸缩的分布式存储技术、灵活的多级受权策略等一系列的创新技术方案。
京东区块链的整体架构分为 3 个层次:区块链协议、组件框架、服务平台。
京东区块链协议做为最顶层的架构设计,定义了区块链的数据格式标准,包括帐本状态、历史证实、帐本操做集、合约指令集 4 个方面的数据标准。
“组件模型”是区块链逻辑组件的框架模型,是对京东区块链协议的实现框架。包括了
共识网络、帐本、持久化引擎、合约引擎四个组件。
“服务平台”是对上层的区块链协议和组件模型的具体实现,由网关、服务、节点网 络、SDK 和一套工具集组成。
京东区块链在架构和实现上遵循如下的几个设计原则。
与传统的互联网协议不一样(如 TCP/IP,HTTP 等),传统协议都是面向通信过程的,而区块链是面向 业务过程的。区块链做为一种分布式状态机,“智能合约”是实现分布式业务状态转移的核心功能,使得基于区块链的应用架构模型产生了全新的变革。
假设要开发一个商品贸易系统,业务的参与者包括贸易买卖双方和物流企业,这个系统要帮助买卖双方创建交易合同、跟踪货物运输过程、交付结算。
基于区块链实现该应用一般须要如下几个步骤:
为参与者注册登记一个由公钥私钥对(证书)表示的身份帐户。由符合国家标准的证书
所表示的身份帐户是可以表明一个特定的法人,由该帐户签发的数据能够在法律上被认为是
该法人作出的确认。
把参与者之间达成的商业协议以智能合约代码的形式进行定义,以数字化形式约定贸易
的商品属性、数量、交付价格、交付期限、交付条件、运输方式、交割检验标准、货款计算
方式、货款支付时限等等。
智能合约最后须要通过参与者以各自的身份帐户作出签署,以后每一方参与者只须要根
据本身业务范围内的业务进程作出相应的操做,便触发了智能合约的执行。
帐本状态
表示区块链系统在某一时刻所处的情况,由系统保存的业务数据以及系统运行的控制属性构成。
帐本操做集
“帐本操做集”是为了实现跨链互操做而定义一个通用的标准,包含“类型”的标准码,“参数”的标准格式。
合约指令集
区块链以合约语言的形式定义业务状态的控制和转换逻辑。经过设计一个标准化的合约语言指令集,能够用一种通用的方式来表述各类复杂的业务逻辑,从而与具体的编程语言无关。
目前典型的共识算法主要有 PoW、PoS、PBFT、Raft、Paxos 等。这些算法在运行过程均可以抽象下面几个阶段:
(1)交易扩散;
(2)交易排序;
(3)调用交易执行程序;
(4)对交易执行结果进行共识;
(5)提交共识结果。
各类共识算法的差别体如今不一样阶段采起了不一样实现策略。
京东区块链选择类 BFT 的算法进行优化,提供了肯定性交易执行、拜占庭容错、动态调整节点的特性。
帐本状态与合约分离,使用基于身份的访问控制协议约束合约对状态的访问,这种将数 据与逻辑分离的设计模式是典型的贫血模型,可为上层业务逻辑提供无状态的逻辑抽象。
持久化存储
将帐本信息的持久化格式定义为更简洁的 KV 格式数据,使得能够利用成熟的 NoSQL 数据库来实现持久化存储。
合约引擎
合约引擎包含两大部分,前端包括合约高级语言规范及其工具链,后端是一个轻量级的 合约中间代码的执行环境。
功能模块分为区块链网关、区块链节点服务、区块链共识网络、配套工具四个部分。
“区块链网关”被设计为一种轻量的网关系统,一般是部署在参与者的网络环境中,提供功能包括:
a) 私钥管理:提供彻底本地化的私钥保管功能;
b) 隐私保护:采用端到端加密手段实现隐私保护; c) 协议转换:提供轻量化的 HTTP Restful Service,适配 TCP 协议的区块链节点 API。
在区块链基础网络的基础上提供的面向应用的通用的功能组件,目的是提供通用功能的
复用。
由共识节点组成的网络,基于 P2P 网络和共识算法确保交易数据在节点之间保持一致。
采用改进的 BFT 算法,支持动态的调整网络拓扑,实现节点动态加入及主动退出。为了应对多样化的业务场景、知足信息安全需求、提高业务吞吐量,京东区块链支持多链架构。不相关的业务运行在多条并行的区块链上,这为咱们提供了针对业务的线性扩展能力。
对于多条链之间的互操做咱们采起了中继链的模式,参与各方向中继链节点提交提案,结果经共识后得以确认。
经过测试、分析发现系统处理海量交易时,共识节点中密码模块与合约模块存在性能瓶颈。为了减轻这方面问题的影响,将密码模块、合约模块拆分为单独的无状态的微服务,以便在处理海量交易时有针对性的对密码、合约微服务进行横向扩容。
京东区块链采用通用事件驱动模型框架。已接入 AKKA 的 Actor 模型,对并发模型进行了更高的抽象。采用轻量级事务处理,从事件层面实现细粒度的组件复用。
区块链是构建合做伙伴间信任经济的基石,那么就须要区块链或是联盟链在互联网的普遍部署和规模化应用。
目前区块链技术推广仍存在诸多挑战,京东区块链技术团队总结和建议以下:
区块链规模化应用,须要跨企业达成一致的技术标准和行业监管标准
区块链技术脱胎于比特币公共网络,据不彻底统计,比特币矿池每一年消耗大量的电力资源,缘由是彻底公有链的区块链部署形式实际上并不适用于所有场景。
比特币做为区块链的创始级应用得益于它搭建了一套很是完善的公有链模型和基于这个模型的工做和激励机制。