学习笔记-2
CN109241772A发票区块链记录方法、装置、区块链网关服务器和介质(腾讯)
解决什么问题?
让发票信息记录到区块链的情况下减少发票信息泄露
链上有什么数据?
-
发行发票事件信息(发票标识,发票信息和发行发票事件发票转移信息)
-
在子区块链上:发票事件信息(开票事件信息和发票报销事件信息)
子区块链:在每个区块链节点中分配一个区块链设备,用于承载与该发票标识对应的子区块链
如何上链?
发行发票事件--->
发行发票事件上链请求(发票标识)--->
每个区块链节点分配区块链设备(承载与该发票标识对应的子区块链)--->
发行发票事件信息记录在所述子区块链上
发票事件(开票事件/发票报销事件)--->
带有发票标识的发票事件上链请求(发票事件信息(开票事件信息/发票报销事件信息))--->
发票事件信息记录在所述子区块链上
其中:
信息上链方式
- 发行发票事件信息包括发票信息和发行发票事件发票转移信息, 所述将发行发票事件上链请求中的发行发票事件信息记录在所述子区块链上。具体包括:
- 在所述子区块链上记录一个区块
- 所述区块包括区块主体和区块头
- 所述区块主体包括发票信息和发行发票事件发票转移信息
- 所述区块头包括对所述发票信息和发行发票事件发票转移信息进行摘要运算得到的摘要值
- 将带有发票标识的发票事件上链请求中的发票事件信息,记录在所述子区块链上,具体包括:
- 如果所述发票事件上链请求是开票事件上链请求,从所述开票事件上链请求获取开票单位名称和报销单位名称;当获取的开票单位名称和报销单位名称的组合具有预先对应的子区块链时,将所述开票事件上链请求中的发票标识对应的子区块链中已记录的发行发票事件信息重新记录到所述预先对应的子区块链;将该开票事件上链请求中的开票事件信息,记录到所述预先对应的子区块链。
- 如果所述发票事件上链请求是发票报销事件上链请求,从所述发票报销事件上链请求获取开票单位名称和报销单位名称; 当获取的开票单位名称和报销单位名称的组合具有预先对应的子区块链时,将该发票报销事件上链请求中的发票报销事件信息,记录到所述预先对应的子区块链。
发票区块链记录装置
包括:
- 分配单元,用于响应于接收到发行发票事件上链请求,基于发行发票事件上链请求中包含的发票标识,在每个区块链节点中分配一个区块链设备,用于承载与该发票标识对应的子区块链。
- 第一记录单元,用于将发行发票事件上链请求中的发行发票事件信息记录在所述子区块链上。
- 第二记录单元,用于响应于接收到任何带有该发票标识的发票事件上链请求,将该发票事件上链请求中的发票事件信息,记录在所述子区块链上。
其中,所述发票事件上链请求包括开票事件上链请求和发票报销事件上链请求,所述发票事件信息包括开票事件信息和发票报销事件信息。
区块链设备分配
- 分配区块链设备: 基于该区块链节点中各区块链设备的未占用存储空间和中央处理单元CPU处理能力,分配区块链设备。具体包括:
- 基于该区块链节点中各区块链设备的未占用存储空间,确定各区块链设备的第一分数;
- 基于该区块链节点中各区块链设备的CPU处理能力,确定各区块链设备的第二分数;
- 基于第一分数和第二分数,将各区块链设备的第一分数和第二分数的加权和,确定为各区块链设备的总分数;
- 基于各区块链设备的总分数,分配总分数最高的区块链设备,用于承载与该发票标识对应的子区块链。
专利优势
考虑到开票单位开出发票时,甚至于发行单位发行该发票时,该发票可能关联的环节是固定的,例如,发票发行后涉及开票环节、报销环节等,因此,对于这一发票,需要记录发行发票信息、开票信息、发票报销信息等,涉及发票发行单位、开票单位、员工、发票报销单位等。只有发票可能关联到的这些环节会关心发票上链信息,把各个发票的信息都统一上链到一条区块链上,容易信息泄露,且无关的单位也不会关心。因此,本公开实施例将区块链分成多个子区块链存储,每个子区块链只存储特定发票标识所关联的发票上链信息。当接收到发行发票事件上链请求时,基于发票标识,分配一个子区块链,将发行发票事件信息记录在所述子区块链上。当后续接收到任何带有该发票标识的发票事件上链请求(例如开票事件上链请求、发票报销事件上链请求)时,将相关发票事件信息,也记录在所述子区块链上。因此,一条子区块链只记载利益相关方的发票上链信息,不记载其它方的发票上链信息,大大减少了发票信息泄露的可能性,而且子区块链数目可以随意扩展,达到性能无上限的目的。