作者介绍:
赵铭,京东商城区块链研发工程师, 主要从事区块链底层研究设计工作,主攻方向为分布式账本结构;
孙海波,目前担任京东Y事业部供应链研发负责人,负责的业务包括订单履约、库存优化、采购、供应商、智能预测、防伪追溯等。在京东参与过多次双11和618大促备战,在高并发、大流量、系统优化等具有丰富的经验。
责编:钱曙光(qianshg@csdn.net)
声明:本文为《程序员》原创文章,未经允许不得转载,更多精彩文章请订阅《程序员》。
导读:现在谈区块链,已不像是两三年前只属于少数人的geek游戏,虽还赶不上AI(人工智能)的全民热潮,但也开始逐步进入大众的视野。尤其是国家六部委发布联合公告取缔ICO非法融资以及关闭境内所有数字货币交易所之后,区块链更是被推上了风口浪尖。区块链是否又是另一个技术噱头?又或者能否成为资本市场追逐的新热点?热闹非凡的区块链试验项目的落地情况到底如何?等等问题困扰着新接触区块链的人们,也为区块链的发展披上了神秘的外衣。在这篇文章里,我想简要阐述京东供应链溯源防伪平台如何利用区块链技术做到“好品质,看得见”,助力供应链腾飞。
正文:
一直以来,假冒伪劣产品充斥着整个市场,对市场经济秩序造成了诸多困扰。国务院为此做出重要批示,要加快重要商品追溯体系的建立,追溯体系建设是采集记录产品生产、流通、消费等环节信息,实现来源可查、去向可追、责任可究,强化全过程质量安全管理与风险控制的有效措施。之前,没有哪方机构能够将整个供应链的方方面面都整合到一起,并使各方参与者都信任数据的真实性。现在基于区块链技术,构建多方建设,共同参与的联盟链,可真正的将商品追溯体系建设起来。
供应链商品溯源防伪之所以困难,因为涉及到供应链上游的诸多独立主体,商品信息、仓储信息、物流信息等离散的保存在各个参与环节各自的系统中,信息流缺乏透明度和流通度。在商品的流转过程中,也往往表现出多区域、长时间跨度等特征,使得假冒伪劣产品很难彻底从市场上消除。且当出现责任事故时,因涉及的环节较多,举证和追责均耗时费力。在业务处理中有大量的审阅、验证交易单据及纸质文件的环节,高度依赖人工,自动化程度低,信息采集困难。而且由于产品种类差别,生产环节有不同的要求,防伪追溯要求不同,采取的方式也不同。
现在行业中有零星的溯源防伪平台,基本都是集中式中心化的,系统较为脆弱,受攻击的影响大,数据安全性低。且标准不统一,不同地方、不同产品溯源防伪系统标准不一致,数据共享难度大。且平台参与方是单一的,没有多方参与,相互难做到数据的信任,平台也很难做到自证清白,且平台间也无交流,相互间也无背书。
而区块链技术天然地适合运用于供应链管理。区块链技术使得需要共享的数据,在交易各方之间公开透明,便于及时发现解决问题,提供完整且流畅的信息流,提升供应链整体效率。且区块链所具有的数据不可篡改和时间戳的存在性证明特质,能很好的解决供应链各参与主体间的纠纷,实现轻松举证与追责。数据不可篡改与交易可追溯两大特性相结合,可根除供应链内产品流转过程中的假冒伪劣问题,实现精准追溯。通过密码学算法实现供应链参与主体间的充分信任和智能协同。总的来说,使用区块链技术支撑的商品溯源防伪平台有以下特点:
自证清白。所有存储在区块链上的数据都是按照时间顺序通过密码学签名及哈希强关联在一起,且多方背书,无法私自篡改;
价值传递。由于数据的真实可靠,消费者可信任商品的源头、品牌,由此可以带来价值的传递;
降低成本。基于区块链的溯源防伪平台是多方合作的,只由技术就可以达成多方合作,降低了诸如信任成本,随之而来的各种资产资金成本也会随之降低,可谓多赢;
追溯审计。所有链上数据都可以逆向追溯,每个环节数据都可以确认。举证和追责均异常简单;
自动化。将以前高度依赖的人工审阅、验证单据及纸质文件等环节全部电子化、自动化;
做溯源防伪平台的当务之急无疑是跨主体的供应链信息采集。首先,我们要定义哪些信息需要去追溯记录,主要有以下几类数据需要记录在区块链上:
产地/原料信息:原材料信息、种植信息、环境标准/流程监测
采购流通信息:原料监控、流通时效/卫生安全
生产加工信息:生产加工、制造过程监控、质量检测
仓储信息:仓储过程监控、出入库信息管理
物流信息:去向信息跟踪、时效/在途过程监控
销售:销售记录、定向营销、售后跟进反馈
以上信息是追溯一件商品所需要的完整信息,那么如何在区块链中标识某件具体的商品呢?在平台中,每件商品都有全局唯一的溯源码,即所谓的“一物一码”,该码高度兼容现有编码体系,比如GS1编码、Ecode编码等,同时也支持各厂商自定义编码格式,只要能保证全局唯一,当然平台也能为不具备发码能力的厂商提供编码。溯源码也支持多种呈现方式、一维码、二维码以及RFID等。最后在选定了编码标准以及编码形式后,供应商可自主设计样式,满足其定制化需求。如图所示:
图1 一物一码
因为是一物一码,如果采用手动录入,那么对供应商来说,投入是巨大的,因此结合IoT设备自动采集数据也是溯源防伪平台的一部分。平台对接供应商IoT设备,京东IoT SDK以及智能物联网平台自动采集诸如环境数据、仓储、物流、地理位置、照片等数据。系统自动将采集到数据输入数据转换层,根据供应商数据结构采用不同的数据转换接口提取有效数据,后将数据传入溯源防伪系统。
图2 IoT数据对接
商品数据采集的问题解决了,随之而来的另一个困难就在于商品的最小贩售单位不一定是商品出厂及运输中的最小单位,所以在商品的流转过程中会涉及到合码拆码过程。商品在出厂时,供应商为每件商品贴上商品最小包装追溯码,多件商品组合打包后又会有流转箱码,这个过程可以嵌套,在随后的流转流程中,可能又会有分拆子箱码。经过这样合码拆码的过程,商品最终流入消费者手中,完成整个流转过程。
整个流转过程可以通过下图所示形象的展示出来,当商品流转到参与主体时,会将商品流转信息经过主体私钥签发后附上时间戳后,将信息存入溯源业务系统,同时将信息存证存入区块链网络,变更商品状态,随后商品由下一参与主体签收,直至最终消费者。
图3 交易流转
以上,我大致的介绍了京东溯源防伪平台的供应链相关流程,同时我们也提供了方便的查询验证商品真伪的入口。可通过网站http://sy.jd.com进行溯源码查询,也可以直接扫描所购买商品上所贴的二维码查询。这里,可通过扫描以下二维码体验“一块牛肉的奇幻漂流”:
图4 一块牛肉的奇幻漂流
上面我们主要介绍了京东溯源防伪平台的业务系统,其底层支撑少不了区块链技术的支持。在接下来的篇幅里,我会为大家介绍这项新晋“黑科技”在京东的落地情况。
在构建区块链底层之初,我们就定下了区块链底层的设计目标:
稳定第一
系统稳定是对一个系统最基本的要求。首先保证底层牢固,区块链不是一项新技术,而是多种技术的组合应用,涉及P2P协议、密码学、共识算法等。这些技术本身提供的服务要稳定,同时各个技术之间的交互也要保证绝对的稳定。只有这样,在这些技术基础之上建立的区块链溯源系统才能保证稳定。
真实可靠
诚信经营是一个企业的立业之本。溯源的前提必须是真实可靠的数据,如果数据造假,溯源将失去其价值。区块链技术本身能保证台账记录的不可篡改性,但是就台账对应的交易来讲,其真实性也需要进行验证。
多方共赢
区块链溯源采用类似于联盟链的机制,多方共同参与。要保证链上各方之间的利益诉求,才能使得多方积极参与。并且要积极争取权威机构的背书认可。要给予国家机构相关的决策支持;商家能够更关注于品质建设,并通过区块链溯源项目能够得到营销和预测方面的支持;最终消费者信任感能够得到提升,增加对具有区块链溯源商品的认可度,更加关注品质生活。
激励共建生态
国务院在不久前发布了《国务院办公厅关于加快推进重要产品追溯体系建设的意见》,京东作为重要的商品流转中心,有责任去推动政策的执行。供应商接入溯源平台,一方面不能大量增加其生产成本,另一方面也要能提升其品牌价值,做出差异化。溯源的另一重要主体是商品的最终消费者,如何提升消费者的扫码率,培养其对品质商品、正品商品的认同感,从而带动整个溯源生态的建立,这是很重要的设计原则。
灵活支撑应用
采用分层架构,具备快速构建上层应用的能力,灵活的支撑上层多样性业务应用,应用与区块链的交互被抽象成智能合约,通过简单API接口交互通信,简化应用开发难度,增加灵活性。
海量数据
区块链数据一般分为账本数据、状态数据以及状态历史数据。账本是交易日志的累积,区块的载体,需要在节点间同步。而状态数据和历史状态数据是账本数据状态的历史迁移,即便丢失也可以通过账本数据恢复,且需要被随时读取。且需要满足丰富的查询需求,在性能和数据存储等方面具备横向拓展能力,可以支撑千万级,甚至亿级用户的使用。
隐私保护,权限控制
需要支持权限策略配置,可以根据各类应用需求进行相应的数据隐私保护,保护数据的安全隐私。同时,私有隐私交易、商业竞争交易需要共存于同一网络。通过多通道技术限制交易的访问权限,可用于为成员提供隐私交易功能,某条链上的数据对非链成员都是无法访问且不可见的。
基于以上几点设计原则,我们开始区块链平台的设计。在区块链技术兴起之初,所有机构或个人都可参与的区块链被认为是区块链的唯一解释。但随着区块链技术在大型商业团体间的普及,私有链及联盟链的概念逐步扩宽了区块链的解释。公有链、联盟链及私有链构成了现阶段区块链的三种应用场景。以比特币、以太坊为首的公有链平台允许所有节点发起交易、校验交易、参与共识及创建区块等操作。公有链的安全性及推动力量由具有激励机制的共识协议维护,其采取工作量证明机制或权益证明机制等方式,将经济奖励与加密数字验证有机的结合起来,每个节点都可以从中获得经济奖励,与对共识过程作出的贡献成正比。公有链因其开放的加入门槛,被认为是完全去中心化的区块链。以超级账本为代表的区块链平台,其设计思想与公有链差别甚多,比特币及以太坊并不足以成为商业项目的底层支撑,商业项目一般要求高并发、低延迟以及隐私保护、权限管理且能应对海量数据。基于以上特点,联盟链及私有链的雏形应运而生。且二者间的差别仅仅是多方参与或独立运营,可认为是相对去中心化。京东供应链溯源防伪平台的建设不能仅仅依靠京东的力量,也需要各供应商的积极参与,第三方监察机构的大力支持。因此,联盟链的选择是必然的结果,如图所示:
图5 京东供应链溯源防伪联盟链
平台整体架构可以如图所示,区块链平台的目标不仅仅是只支撑现有业务场景,必须预见未来可能的业务场景带来的应用层架构抽象,依托于底层SDK及业务场景抽象,我们可以创建丰富的应用,简化应用开发部署流程,使之平台化。在底层的区块链平台中,与上层业务交互的组件是区块链网关,提供Restful API及RPC服务支持不同技术研发的异构客户端或上层业务。同时解耦简化应用开发与区块链底层的交互,网关提供证书管理、隐私保护、协议转换及封装网络通信细节等功能,使底层区块链平台对上层应用开发透明化。商业应用相对而言更关注隐私、账号体系以及安全相关问题,应对以上需求,平台抽象出相应服务,账户服务将权限管理、私钥管理整合。安全认证服务提供账户认证,数据验证,加解密及授权等等。数据访问服务是对区块链底层状态数据及账本数据的对外接口。因为区块链系统是去中心化的异步系统架构,也提供事件通知服务,我们定义了多种事件类型,满足相应触发条件可自定义后续操作,用同步化思维解决异步问题。同时,我们将智能合约也定义为区块链服务,智能合约服务将支持DSL类型语言定义业务场景及逻辑。以上可作为区块链平台上层服务,而在底层区块链,系统的关注点主要集中在账本、共识、P2P网络及链上编码。他们之间的相互协助,构建起整个区块链底层,为上层应用的搭建提供支撑。 除此之外,平台也配套了区块浏览器以及相应的运维管理工具,支撑平台的运行维护。依托于京东云底层资源,我们能够构建高可用、低延迟、强安全的区块链应用平台。采用A/B双环境部署API服务,实现新旧版本平滑升级,解耦API服务和上层业务的升级时间。所有的网络通信都采用TLS加密通道保障数据安全传输。多层负载均衡和多服务实例确保服务高可用。多机房部署可以消除系统单点,提升系统容灾能力。节点动态挂载,实现系统弹性扩容。跨机房数据同步,实现数据异地实时备份,云监控接入,实现7*24小时实时故障报警。
图6 JD区块链服务平台
以上就是京东区块链平台的相关介绍,平台的建设不是一蹴而就的,我们也在不断的完善整个系统,平台本身以及平台周边工具都在不断的完善中。我们期待着有一天能够将平台开源,为区块链技术的发展做出贡献。
区块链毫无疑问是跨时代的技术融合,技术的爆发催生了很多创业公司创业项目,但基本上90%多的项目都胎死腹中。追逐新技术的初心不可怠慢,但也更应该看到区块链技术的适用场景,不是所有的业务都适用区块链,为了区块链而区块链,只会适得其反,徒增复杂度。那么什么样的业务场景适合区块链技术呢?一次沙龙上某位教授的总结很到位:抛开具体业务场景不谈,涉及到数据共享的业务场景天然的适合区块链技术。因此,在开始引入区块链技术到项目中之前,先问自己:我们真的需要区块链吗?