【技术实现步骤摘要】
一种基于区块链的船舶轨迹监测系统
[0001]本专利技术涉及数据加密安全通信领域,具体是一种基于区块链的船舶轨迹监测系统。
技术介绍
[0002]内河航运是我国水上交通运输的重要渠道,它具有便捷、快速和运输量大的特点,我国依靠得天独厚的地理环境优势,从19世纪30年代至今,全国内河航道通航里程达12.77万公里,通航货运量也逐年增加,据统计2020年仅单月货运量已高达70659万吨,因此,航道的安全与畅通成为了水上交通运输的重要保障。目前,内河航道基本实现了数字化、智能化和网络化。虽然数字化航道建设带来了一定的成效,但由于航道环境复杂恶劣,比如:水深流急、洲滩演变频繁、河床演变剧烈、通信信号不稳定、信号盲区多等,船舶通行指挥系统容易遭受黑客入侵,以上因素导致接收的AIS数据缺失或被篡改、轨迹回溯不连续、事故取证难等问题。当控制河段内出现海损事故,如:谎报船位导致上下水船舶同时进槽相撞,肇事船舶撞毁航标逃逸导致后船偏航、搁浅或相撞,船舶损坏岸基设备逃逸等,如果该辖区内的信号台无法准确连续地回溯船舶AIS位置信息,航道监管部门因数据证据不充分而无法定位肇事船舶,导致航道监管部门查证困难、权威受到挑衅,国家经济蒙受损失。
[0003]目前,内河航道控制河段船舶轨迹回溯方案仅解决了AIS数据如何在单一节点上的存储问题,不具备轨迹数据防篡改和灾备能力。
技术实现思路
[0004]本专利技术的目的是提供一种基于区块链的船舶轨迹监测系统,包括主通信节点A0和n个副本通信节点。
[0005]所述主通信 ...
【技术保护点】
【技术特征摘要】
1.一种基于区块链的船舶轨迹监测系统,其特征在于:包括主通信节点A0和所述n个副本通信节点。所述主通信节点A0和n个副本通信节点组成区块链;所述区块链存储AIS信息;所述副本通信节点从区块链中获取AIS信息,完成轨迹回溯查询;所述区块链存储AIS信息的步骤包括:I)任意副本通信节点A接收船舶发送的加密AIS信息R
accA
,并对加密AIS信息R
accA
进行解析,得到AIS信息R
accaA
=Y(R
accA
);Y表示解析协议;A∈{A1,A2…
A
n
};{A1,A2…
A
n
}为副本通信节点;II)所述副本通信节点A对接收到的AIS信息R
accaA
进行加密,生成数字摘要信息M,并通过摘要M生成数字签名(r,s);所述副本通信节点A在区块链中广播数据R
accaA
、数字签名(r,s)、副本通信节点A的公钥P
A
;III)任意副本通信节点B接收到副本通信节点A广播的信息,记为信息M
′
、数字签名(r
′
,s
′
)、副本通信节点A的公钥P
A
;B∈{A1,A2…
A
n
},且B≠A;IV)副本通信节点B对信息M
′
进行验证,若验证通过,则进入步骤V,否则,拒绝接收副本通信节点A广播的信息;V)所述副本通信节点B对信息M
′
进行解密和冗余处理,得到信息R
′
M
={R
′
x1
,R
′
x2
…
R
′
xk
};VI)所述副本通信节点B对信息R
′
M
中的每个元素进行Hash运算,得到若干j级Hash块;其中,元素R
′
xi
对应的j级Hash块Node0
i
=Hash(R
′
xi
),i=1,2
…
k;j初始值为1;VII)所述副本通信节点B将相邻两个j级Hash块串联,并对相邻两个j级Hash块进行Hash运算,得到j+1级Hash块Node1
(i+1)/2
=Hash(Node0
i
+Node0
i+1
),i=1,3,5
…
k
‑
1;若k为奇数,则末端j+1级Hash块Node1
(i+1)/2
=Hash(Node0
i
);VIII)令j=j+1,并返回步骤VII),直至生成Hash值Merkle Root,记为MT
r
;所述副本通信节点从区块链中获取AIS信息的步骤包括:1)副本通信节点A
x
向主节点A0发送请求指令REQUEST;所述请求指令REQUEST携带的信息包括请求操作o、时间戳ts、副本通信节点A
x
的标识Client_id、副本通信节点A
x
的信息msg、副本通信节点A
x
的公钥P
Clientx
、数字签名Sig
Clientx
,x∈{1,2
…
n};2)主节点A0接收到请求指令REQUEST后,利用公钥P
Clientx
校验请求指令REQUEST中的数字签名Sig
Clientx
,若验证通过,则主节点A0为副本通信节点A
x
的请求指令分配编号id∈[h,H],并在区块链中广播PRE
‑
PREPARE请求;所述PRE
‑
PREPARE请求携带的信息包括视图编号viewNum、副本通信节点A
x
的消息摘要d
msg
、副本通信节点A
x
的消息msg、主节点A0公钥P
A0
、主节点A0数字签名Sig
A0
、编号id;3)副本通信节点A
y
接收到主节点A0发送的PRE
‑
PREPARE请求后,对PRE
‑
PREPARE请求进行验证,若验证通过,则在区块链中广播PREPARE请求,否则,拒绝PRE
‑
PREPARE请求;所述PREPARE请求携带的信息包括视图编号viewNum、消息摘要d
pre
=d
msg
、当前副本通信节点编号y
‑
>num、编号id、副本通信节点A
y
公钥P
Ay
、副本通信节点A
y
数字签名Sig
Ay
;4)所述主节点A0和副本通信节点接收到PREPARE请求后,对PREPARE请求进行验证,若验证通过,则将验证通过的反馈信息I发送至副本通信节点A
y
;
5)若副本通信节点A
y
接收到2f+1个验证通过的反馈信息I,则在区块链中广播COMMIT请求;f为系统中失效节点最大个数;COMMIT请求携带的信息包括视图编号viewNum、消息摘要d
com
=d
pre
=d
msg
、当前副本通信节点编号y
‑
>num、副本通信节点A
y
数字签名Sig
Ay
;6)主节点A0和副本通信节点接收到COMMIT请求后,对COMMIT请求进行验证,若验证通过,则将验证通过的反馈信息II发送至副本通信节点A
y
;7)若副本通信节点A
y
接收到2f+1个验证通过的反馈信息II,则运行请求操作o,并向副本通信节点A
x
反馈REPLY信息;所述REPLY信息携带的信息包括视图编号viewNum、时间戳ts、副本通信节点A
x
的标识Client_id、请求操作结果r;8)副本通信节点A
x
判断接收到的REPLY信息数量是否大于等于f+1,若是,则进入步骤9),否则重新向主节点A0发送请求指令,并返回步骤2);9)主节点A0将区块上传至区块链;所述区块包括区块头和区块体;所述区块头携带的信息包括区块版本号V_ID、当前区块哈希值MT
r
、时间戳、前一个区块的哈希值、主节点的数字签名SIG
AviewNum
;所述区块体携带的信息包括历史间隔时间t
AIS
的AIS数据;10)查询方向主节点A0发送查询请求INQUIRE;所述查询请求INQUIRE携带的信息包括请求操作O、时间戳ts、查询方的用户名username、查询方的密码password、查询条件condition
W
、查询方公钥Key
PW
;11)主节点A0利用私钥Key
SW
对查询请求INQUIRE进行解密;解密后,主节点A0根据查询条件condition
W
对区块数据遍历查询,得到查询结果RES
inqdata
,并将查询结果RES
inqdata
发送至查询方;所述查询结果RES
inqdata
携带的信息包括时间戳、AIS数据、查询方公钥Key
PW
;12)查询方接收查询结果RES
inqdata
,并根据查询方公钥Key
PW
对查询结果RES
inqdata
进...
【专利技术属性】
技术研发人员:宋涛,李秀华,李辉,杨正益,范琪琳,胡春强,文俊浩,
申请(专利权)人:重庆大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。