一种基于区块链的电子仓单信息存储系统的制作方法

文档序号:19425116发布日期:2019-12-17 15:10阅读:247来源:国知局
一种基于区块链的电子仓单信息存储系统的制作方法

本发明涉及一种电子仓单信息存储系统,特别是一种基于区块链的电子仓单信息存储系统,属于仓单存储信息技术领域。



背景技术:

物流仓储是现代物流系统中的关键环节,其中仓库存储是物流存储的重要组成部份。仓库存储是在特定场所存储物品的行为,通过仓储对物品存储和保管,在供应链中,货物在仓库的停留时间时间最长,仓库存储是核心节点。只有在可信的仓库存储的基础上,才能构建供应链之间的信用关系。但是在存储过程中可能面临各种风险,如调换、盗窃、损坏等。为此,在现代仓储过程中,通过摄像、震动传感器、温湿度传感器等大量的物联网设备,监控仓储物品,从而产生大量的监控信息,目的是在保障货物安全存储的同时,为货物背后的货主、仓单交易以及其背后承载的金融特征执行背书的任务。

仓单是指仓储方签发给存储人或货物所有人的记载仓储货物惟一合法的物权凭证。《合同法》第387条规定:“仓单是提取仓储物的凭证。存货人或者仓单持有人在仓单上背书并经保管人签字或者盖章的,可以转让提取仓储物的权利。”物流仓单的核心基础是可信仓单,不仅要求仓单是可信不可篡改的,而且要求仓单所代表的存储物及存储过程是可信的,因此仓单具有有效性、可信性、不可篡改性等高安全等级的特性。仓单是以可信的仓储物品为核心的信息表达,而仓储物品背后是以仓单形式确定的物权以及转移关系。现代仓储中大量的监控信息和物品的存储信息,为仓储物品提供可信性。但是,采用传统存储技术时,由于这些信息理论上是可修改的,而无法厘清管理与物权等各方责任,最终导致仓单是不可信的。

区块链技术是近年出现的分布式账本技术,其特点包括去中心化、公开透明、不可更改、不可伪造等。区块链这些特点决定了其安全可靠性高、难以伪造、存入信息不可篡改以及可溯源等特点,因此,如果能将以仓储为核心的相关信息存入区块链,将使其可信性得到极大加强,建立一条可信的、完整的监控货物信息链,将有助于建立供应链参与方之间建立信任关系,为仓单进行可靠性背书。



技术实现要素:

本发明的目的在于:利用区块链的不可修改特性,针对仓储系统的特性,提供一个可信的信息存储平台,将以仓单为代表的仓库各种货物相关信息以及监控货物信息存储为可信信息链,为建立供应链各方之间的信任关系以及可信的仓单转让提供底层数据平台支撑。

为实现以上目的,本发明采用的技术方案为:一种基于区块链的电子仓单信息存储系统,所述基于区块链的电子仓单信息存储系统包括硬件系统及软件系统,所述硬件系统包括一个或多个独立的仓储子网系统、货主手持设备以及一个或多个互联网区块链记账结点,所述独立的仓储子网系统、手持设备以及一个或多个互联网区块链记账节点均与internet互联;所述软件系统包括应用层、接口层、区块链协议层,应用层包括仓单平台系统以及仓库管理系统,接口层包括信息存储接口,区块链协议层包括自定义仓单存储信息、p2p网络基础设施、自定义共识机制算法、berkeleydb链式区;进一步的,所述基于区块链的电子仓单信息存储系统还包括全网唯一的ca认证服务器,ca认证服务器与internet互联,所述接口层还包括基于ca的实体认证接口;进一步的,所述独立的仓储子网系统包括仓储手持设备、rfid、摄像头以及仓储服务器/区块链记账节点,所述手持设备、rfid以及仓储服务器/区块链记账节点通过网络连接以仓储服务器/区块链记账节点为中心构成相对独立的星形仓储子网系统,仓储服务器/区块链记账节点与internet互联;进一步的,所述共识算法采用包括以下3层架构:物联网设备层、链作业层以及管理层,其中物联网设备层通过各记账节点用于投票,链作业层用于记账,管理层通过ca认证服务器及互联网区块链记账节点做ca身份。

本发明的积极有益技术效果在于:本发明利用区块链技术实现了仓储信息的可信存储,在开源的bitcoin源码的基础上,设计了针对物联网特征的共识机制算法,以及针对物联网信息的可信存储算法,结合现代仓储系统的网络架构特征,针对供应链系统可信性需求,利用区块链的不可篡改性以及可追溯性等特点,构建基于区块链的仓单仓库存储系统。本发明提供的基于区块链的电子仓单信息存储系统支持internet网络下的局域网、移动网络、wifi等多种接入方式,支持手持、摄像头,rfid(radiofrequencyidentification射频识别器)等各种硬件设备的信息采集与传输,支持物流仓单金融中各个角色:货主、仓库保管以及银行等接入查询,使参与各方达到风险可控的目的。

附图说明

图1为本发明一个实施例网络拓扑结构示意图。

图2为本发明一个实施例软件系统框架图。

图3为本发明一个实施例的共识算法架构设计图。

图4为本发明一个实施例的物联网设备注册认证流程图。

图5为本发明一个实施例共识算法的流程图。

图6为本发明一个实施例共识算法的整体框架图。

图7为本发明一个实施例双向确认机制的流程图。

图8为本发明一个实施例防止网络硬分叉的原理图。

具体实施方式

为了更充分的解释本发明的实施,以下提供本发明的实施实例,这些实施实例仅仅是对本发明的阐述,不限制本发明的范围。

一种基于区块链的电子仓单信息存储系统,包括硬件系统及软件系统,硬件系统包括至少一个独立的仓储子网系统、货主手持设备以及一个或多个互联网区块链记账结点,所述独立的仓储子网系统、手持设备以及一个或多个互联网区块链记账节点均与internet互联;本实施例采用如图1所示的网络拓扑架构以支撑本发明提供的基于区块链的电子仓单信息存储系统,本实施例硬件系统中包含如下主要角色:全网唯一的ca认证服务器3、两个相对独立的仓储子网系统2、货主手持设备4以及互联网区块链记账结点5。本发明中货主手持设备为可联网的手机或平板电脑等智能设备,这些角色以构建的区块链系统为支撑平台,通过internet网络1互相连接起来。其中仓储子网系统包括物联网设备如可联网摄像头6,仓储手持设备7及rfid11。仓储手持设备可以为pda、仓储扫码手持终端等可联网手持设备,每个仓储子网可以采用私网组网,但均有公网接口与internet网络互联,各个仓储子网中包含一个唯一的区块链记账节点,该节点与原仓储传统数据库可以位于同一台主机构成仓储服务器/区块链记账节点10,仓储服务器/区块链记账节点与internet公网中的区块链记账节点互联。

本发明中全网唯一的ca认证服务器具有以下作用:其一,通过ca注册的方式,把真实世界中主体与区块链中存储的虚拟信息相关联;其二可以提供设备准入机制,并使入网的设备具有不同的身份;其三记账节点可以采用双重签名,从而提高区块链存储信息的安全性。数字认证服务器(certificateauthority,ca)通过注册系统(registrationauthority,ra)实体认证并颁发证书。其作用是:a)保证了各物联网参与设备以及仓单转移参与方的实体认证特征;b)在数据存储和交易过程中对存储数据加密签名,对加入的主机利用证书对其进行验证,以保证私有链的可靠、可信以及稳定;c)在数据查询验证时,利用数字证书系统对存储数据签名验证;d)利用证书系统将区块链中生成的私钥加密签名,并支持利用证书的钱包数据导出。e)利用数字证书技术将区块链的私钥进行加密保存,从而弥补了传统区块链系统私钥明文保存,致使钱包数据可能丢失的风险。

如图2软件系统框架图所示,本发明提供的软件系统包括应用层、接口层、区块链协议层,应用层包括仓单平台系统以及仓库管理系统,接口层包括信息存储接口,区块链协议层包括自定义仓单存储信息、p2p网络基础设施、自定义共识机制算法、berkeleydb链式区;

区块链协议层构成软件系统底层,软件系统底层利用区块链的核心架构,采用berkeleydb数据库存储技术,将数据按照块存储,设计共识机制算法,定时协商特定的记账主机产生区块,区块之间采用hash算法将区块链接起来,并将存储的数据利用hash算法生成merkle树,以方便查询,对于每一次存储的数据,利用密码学技术的非对称密钥技术,使用用户的私有密钥将数据加密存储,利用p2p技术,同时将所有用户所有交易及存储数据广播于全网节点,其他节点根据交易规则验证数据的有效性。

本发明在区块链核心技术以及数字证书技术支撑的基础上,重新设计上层的共识机制算法,交易算法、数据查询算法,以使之更适合仓储信息的交易、存储以及查询,最终达到为物流仓单金融有效背书的目的。

本实施例共识算法详述如下:

1.共识机制架构设计

共识机制是区块链中核心的技术点,多方参与的节点在预设规则下,通过节点间的交互对数据、行为或流程达成一致的过程称为共识。共识机制是指定义共识过程的算法、协议和规则。本实施例的共识算法采用rpos共识算法,即绝对一致之后再共识,共识即确认的共识机制。

共识算法架构设计如图3所示,共识算法采用采用3层架构设计:通过物联网设备层(投票)、链作业层(记账)、管理层(ca身份认证、账本存储、不生成区块,不参与投票以及链正常决策),从而降低数据存储的需求、提升的区块生成者随机性。物联网设备通过记账节点参与投票。

首先做以下定义:

设备id:记账节点以及物联网设备都拥有一个全网唯一的id,为4字节的无符号整数,由管理层统一分配管理;

记账节点信誉度:表示记账节点可靠性的参数,每个记账周期,节点的信誉度值增加1,达到最大值时,不再增加;

主节点视图:记账主节点广播于全网的所有信息,包括记账主节点id以及信誉度,以及投票信息,一个协商周期结束后,各记账节点广播该节点的所有信息;

全主节点视图:所有主节点视图构成了全主节点视图。

各层角色描述如下:

管理层:

1)包含ca服务器,负责对物联网设备以及记账主节点数字证书颁发;

2)分配并管理记账主节点、物联网设备id;

记账主节点:

1)根据共识算法,获得记账权时创建区块,

2)根据共识算法验证产生区块的合法性;

3)转发广播信息;

4)广播物联网设备的投票信息;

5)向所关联的物联网设备广播全主节点视图;

6)每个记账主节点有一个信誉度,每一个共识周期,如果正常在线则信誉度加一;

7)每一个仓库项目至少维护一个链路层记账节点。

2.物联网设备:

1)物联网设备为加入仓单系统中的各种物联网设备,如监控摄像头、rfid读写器、nvr、手持设备等;

2)各个设备在管理层注册其区块链地址,并由管理层分配设备id;

3)投票节点,获得参与投票全节点视图,根据全节点视图投票;

物联网设备注册认证流程如图4所示。

物联网设备向管理层设备注册,注册包括设备商的物联网设备编号等信息;管理设备收到注册信息后给物联网设备分配一个设备id(4字节,无符号整型)保存设备数据库记录分配的id并返回设备id信息。

3.记账主机节点即仓储服务器/区块链记账节点加入区块链系统过程如下:

记账主机节点加入区块链算法描述如下:

1)向管理层主机申请一个数字证书;

2)向管理层主机申请分配一个设备id;

3)初次加入主节点的记账主机节点,当其信誉度小于4时,没有任何权利,只能接受全网视图的广播,并缓存;

4)每经过一个记账周期,信誉度增加1;

5)当信誉度达到5时,该记账主机节点的信誉度不再增加,从5个周期内所缓存接收的5个全主节点视图中选择一个最优视图,作为缓存视图,并参与共识记账算法。

最全节点优视图算法:在每个记账周期内,上一轮记账周期协商的创建区块节点将广播全节点视图,记账主机节点将广播对上一轮记账周期协商的创建区块节点的评价,5轮之内,评价最优的创建区块节点所广播的全节点视图就是最优全节点视图。

4.建立共识机制算法描述

共识算法为周期性运行算法,整体框架如图5所示,分为投票周期、协商周期、创建区块周期。共识算法中各周期的流程如图6所示。

1)投票周期

主要功能:物联网设备投票记账节点。

首先,由记账主节点将上一个创建区块周期内全主节点视图中各节点的id广播给所关联的物联网设备,根据节点全网记账节点id,物联网设备随机投票选择一个记账主节点id,并将消息传递给所关联的记账主节点;

2)协商周期

主要功能:协商周期内,各记账节点全网广播记账节点信息,并使个节点获得一致的信息,每个记账主节点首先将本节点获得全网视图和上一轮创建区块记账主节点广播的全主节点视图比对,如果不一致,则评价上一轮创建区块记账主节点信誉度为0,否则评价该节点信誉度为1。

每个记账主节点需要广播以下内容:

(1)各物联网设备的投票信息:物联网对应的id及其投票记账节点id;

(2)记账主节点视图;

(3)记账主节点评价的上一轮获得创建区块的记账主节点id及其信誉度。

本轮周期内关键的消息是消息的广播算法,为防止出现广播风暴,以及考虑记账主节点的资源消耗,消息广播采用两种方案:

(1)当规模较小时,可以利用从ca获得的证书,将消息加密签名

(2)当规模较大时,直接广播所有消息。

3)创建区块周期

本周期分两部分组成,其一、根据全网视图,各记账主节点根据选举算法,协商出一致的创建区块记账主节点;其二、获得创建区块权的记账主节点创建区块,并广播,其他主节点验证区块合法性。

协商创建区块主节点算法如下:

(1)参与创建区块记账节点条件:

记账主节点的信誉度大于5,获得的物联网设备投票数大于一定的阈值,例如总物联网设备的80%,阈值可根据实际情况选取;

(2)从有条件参与创建区块选举的记账节点中,按照统一的随机选取算法随机选择一个创建区块记账节点;

(3)获得记账权的记账主节点创建区块,在区块头增加自己的签名信息,创建区块后,向全网广播区块;

其他记账主节点算法如下:

(1)收到创建区块时,根据区块头信息,首先验证是否协商结果节点,如果不是,则丢弃该区块;

(2)验证加密签名消息,如果验证不成功,则将该节点的信誉度的设置为-1000(一极大负值,目的是阻止其创建区块);

(3)各参与记账节点在自己的全网视图内将创建区块节点的信誉度设为4,以防止该节点连续创建区块;

(4)如果周期内,创建区块节点没有创建区块,则其他所有节点将该节点的信誉度置为0,重新开始协商。

5.双向确定机制:

如图7所示,本共识机制算法采用双向确认机制,双向确认机制过程如下:

(1)当本轮协商出记账主节点后,认为该创建区块节点为高可靠节点,获得创建区块权力的记账主节点除创建区块之外,将广播全节点视图,其他主机节点根据统一的协商算法,验证创建区块的合法性;

(2)每个节点收到广播信息后,统计全网内所有节点承认的创建区块节点id及评价可信度,从而确认一个大多数承认的创建区块节点为合法创建区块节点,并确定上一个区块为可以确信的合法区块。

双向确认机制中共识算法中承认一个交易的合法性区块的高度为2,也就是当该交易才创建两个区块之后才可以确认其是合法的区块。

6.共识机制算法安全性分析:

假设在此网络中,消息可能会丢失、损坏、延迟、重复发送,并且接受的顺序与发送的顺序不一致。此外,记账节点的行为可以是任意的:可以随时加入、退出网络,可以丢弃消息、伪造消息、停止工作等,还可能发生各种人为或非人为的故障。考虑网络的延迟,各节点不能是完全同步,周期的设置要考虑网络延迟的冗余。

共识机制算法可以有效解决以下问题:

保证数据一致性;

防止创建区块节点造假;

防止少部分节点联合造假出现分叉,或者少部分节点由于网络原因出现硬分叉;

防止网络较差节点。

(1)本共识算法可有效保证数据一致性,相对于pbft共识机制,由于pbft(practicalbyzantinefaulttolerance)采用复杂的状态机制,需要较长时间来保证各节点达成一致的视图,不适用于大规模的节点共识,因为随着节点规模的增大,达成共识需要的时间大大增加,不符合效率需求。要取得与其他节点的共识,明显要比当前bitcoin网络漫长的多,因此目前也是无法实用化的理论共识。

本发明采用的共识算法的双向确认机制,可以使全网记账节点更快得到一致性全网视图:对于初始节点,其信誉度小,没有记账权限,只能获得创建区块节点广播的视图,而在这个过程中,还可以通过获得的其他记账节点对创建区块记账节点确认的广播信息,确认该全网视图的可信度,从而,当其信誉度达到具有参与协商权力时,可以选择最高可信度的创建区块节点所广播的视图,作为初始全网视图,最终保证了初始记账节点在具有参与全网协商创建区块权力时,获得一致的全网记账节点视图;对于具有记账权限的普通节点,当各种网络原因与其他节点全网视图不一致时,可以通过其他网络节点确认的可信的创建区块广播的视图获得一致信息,从而该节点与其他全网记账节点视图的一致性;因此每个周期,全网都保证一个一致的全网视图信息;并且可以防止出现网络分叉:当少部分节点联合造假可能会出现分叉;或者由于各种网络故障,会出现部分节点与其他网络不同步而出现分叉。这时,可以通过双向确认机制,记账节点通过统计所有节点认为合法的上一轮周期协商创建区块记账节点,多者胜出,最终,使区块链合并到统一的区块链。

(2)防止网络故障硬分叉

如图8所示,当出现网络故障时,故障网络选举节点b作为创建区块节点,而正常网络选举节点a作为创建区块节点,同时创建区块,从而出现区块链硬分叉。在下一个周期中,a节点由于是大多数的网络协商确认的创建区块节点,获得确认节点数为4,同时,b由于是少数网络协商确认的创建区块节点,获得的确认票数为2。因此,b创建的区块是不合法的区块,在故障网络中节点b、节点c、节点d将抛弃节点b创建的分叉区块,区块链统一于a创建的合法区块链。同时,故障网络中b、c、d记账节点通过节点a广播的全网视图,也获得和全网一致的视图信息,在之后的共识周期协商全网一致的创建区块节点。

(3)防止网络状态差的节点及恶意节点:

初次加入网络的节点其信誉度为0,没有参与选举的权利,防止节点停止工作以及网络状态差的节点;如果一个周期内,协商出的创建区块节点由于各种原因无法创建区块时,各节点把该创建区块节点的信誉度设置为0,并启动下一轮的协商,这样将那些网络状态不好的节点禁止其一定时间内参与创建区块的权利;对于那些恶意节点,如无法通过签名认证的节点直接设置其信誉度为-1000,将高风险节点在较长时间内阻止其作恶的可能。

7.在实际应用中,仓单信息的流转信息需求,不是纯数字的交换过程,仓储中数字和货物信息相关联的,就是结合信息资产的交易,不同信息的资产合并和分离需要根据其特定的规则处理,如对大蒜物流,只有相同品质的大蒜仓单才能够合并,而不同品质的大蒜仓单是不能拆分后合并的,并且由于支撑仓单的物品存储于仓库,必然包含大量监控仓储的信息,如rfid接受的货物相关信息以及视频、振动告警等各种传感器收集的信息。这些信息格式不同,需要考虑其不同的存储需求。这些信息具有只存储而不交易的特性,目的主要是为了当存储物品发生毁坏、被盗以及不可预知自然灾害时,能够厘清保管着、拥有者及运输者等各方面的责任,溯源问题源头。因此这些信息是不可篡改,一旦证明其可修改,就失去其效力。

为此,利用面向对象技术,将原区块链源码中存储纯数字“币”的信息扩展为可以表示仓单以及其它新的类。在区块链源码中增加了仓单id,以及保存仓单信息的字符串类型,主要做了如下修改:

1)classcamount

{

int64_tm_nnum;//数量

stringm_strkey;//关键值,仓单不变的信息,也可以存储日志

stringm_strnonestationary;//可变信息

int64_tm_nrecordtime;//记录时间,存储日志等

int64_tm_hashvalue;

……

同时,利用面向对象技术,根据仓单的交易规则,重载了该类的加、减、比较等操作,目的是适应在交易仓单时以及生成钱包信息运算。

2)交易类型的修改

为适应不同类型流转的需求,修改交易规则,如日志等监控信息是只存储而不交易的,电子仓单是可以交易,为此,在设置不同的交易类型,如下所示:

enumclasstransaction_type:uint8_t

{

transaction_none=0x00,

transaction_log=0x01,//第一个16位为0表示不可交易数据

transaction_excahangeable_init=0x10,//第一个16位大于0为可交易类型,第二位表示该类型的不同状态

coinbase=0xff//纯数字币类型交易

};

交易类型总的来说可以分为3种类型,不可交易类型,电子仓单交易类型,以及纯数字币类型交易。

并在交易类ctransaction中,定义交易类型,在交易时,根据不同的交易类型实现不同的交易规则。

8.实施例测试:系统开发基于开源软件bitcoincore0.14版本,基于c++11开发,操作系统平台为基于linux内核的ubuntu17.0,编译器为gcc7.2,区块数据库采用berkeleydb5.0.

租用一台阿里云的服务器操作系统为linux作为ca服务器,主机在腾讯云和阿里云分别租用分布于不同地区的两台操作系统为ubuntu的服务器以作为保存于公网的区块链记账节点,并以一台本地ubuntu作为模拟本地仓库的区块链记账节点。目的是测试不同网络中的区块链记账节点的数据通信效能。

采用3.2所示的共识算法,共识周期为30s。

基于分析,普通电子仓单信息量为2kbytes,基于为包含仓单的扩展信息以及一定的冗余量,模拟一张电子仓单的大小为4kbytes。

实验分析如表1所示

对于仓储中物联网设备的信息存储,考虑到区块链分布式存储的特征,向里面存储容量大的视频信息是不现实的,为此存储信息:nvr存储文件信息机器校验码,rfid只存储货物震动的告警信息,因此物联网设备每次存储的信息量比较小,根据测算,物联网设备每次存储的信息量大小为250bytes左右,则区块链存储信息实验如下表2所示:

从表1可以看出,区块链对仓单的交易通量稳定在13.4左右,从表2可以看,存储物联网信息的交易通量可以稳定在120tps左右,基于对数十个仓储的分析,一个万余平米的大型仓储系统,一天产生的仓单交易最多能够在100余单,而其产生的物联网设备信息平均每天在2000余个,以及以上分析及测试,所设计的区块链存储系统足够满足数千个大型仓储系统同时加入区块链系统,满足了实际仓储工作的要求。

在详细说明本发明的实施方式之后,熟悉该项技术的人士可清楚地了解,在不脱离上述申请专利范围与精神下可进行各种变化与修改,凡依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均属于本发明技术方案的范围,且本发明亦不受限于说明书中所举实例的实施方式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1