学习笔记-2

CN109241772A发票区块链记录方法、装置、区块链网关服务器和介质(腾讯)

解决什么问题?

让发票信息记录到区块链的情况下减少发票信息泄露

链上有什么数据?

  • 发行发票事件信息(发票标识,发票信息和发行发票事件发票转移信息)

  • 在子区块链上:发票事件信息(开票事件信息和发票报销事件信息)

子区块链:在每个区块链节点中分配一个区块链设备,用于承载与该发票标识对应的子区块链

如何上链?

发行发票事件--->发行发票事件上链请求(发票标识)--->每个区块链节点分配区块链设备(承载与该发票标识对应的子区块链)--->发行发票事件信息记录在所述子区块链上

发票事件(开票事件/发票报销事件)--->带有发票标识的发票事件上链请求(发票事件信息(开票事件信息/发票报销事件信息))--->发票事件信息记录在所述子区块链上

其中:

信息上链方式

  • 发行发票事件信息包括发票信息和发行发票事件发票转移信息, 所述将发行发票事件上链请求中的发行发票事件信息记录在所述子区块链上。具体包括:

    • 在所述子区块链上记录一个区块
    • 所述区块包括区块主体和区块头
    • 所述区块主体包括发票信息和发行发票事件发票转移信息
    • 所述区块头包括对所述发票信息和发行发票事件发票转移信息进行摘要运算得到的摘要值
  • 将带有发票标识的发票事件上链请求中的发票事件信息,记录在所述子区块链上,具体包括:
    • 如果所述发票事件上链请求是开票事件上链请求,从所述开票事件上链请求获取开票单位名称和报销单位名称;当获取的开票单位名称和报销单位名称的组合具有预先对应的子区块链时,将所述开票事件上链请求中的发票标识对应的子区块链中已记录的发行发票事件信息重新记录到所述预先对应的子区块链;将该开票事件上链请求中的开票事件信息,记录到所述预先对应的子区块链。
    • 如果所述发票事件上链请求是发票报销事件上链请求,从所述发票报销事件上链请求获取开票单位名称和报销单位名称; 当获取的开票单位名称和报销单位名称的组合具有预先对应的子区块链时,将该发票报销事件上链请求中的发票报销事件信息,记录到所述预先对应的子区块链。

发票区块链记录装置

包括:

  • 分配单元,用于响应于接收到发行发票事件上链请求,基于发行发票事件上链请求中包含的发票标识,在每个区块链节点中分配一个区块链设备,用于承载与该发票标识对应的子区块链。
  • 第一记录单元,用于将发行发票事件上链请求中的发行发票事件信息记录在所述子区块链上。
  • 第二记录单元,用于响应于接收到任何带有该发票标识的发票事件上链请求,将该发票事件上链请求中的发票事件信息,记录在所述子区块链上。

其中,所述发票事件上链请求包括开票事件上链请求和发票报销事件上链请求,所述发票事件信息包括开票事件信息和发票报销事件信息。

区块链设备分配

  • 分配区块链设备: 基于该区块链节点中各区块链设备的未占用存储空间和中央处理单元CPU处理能力,分配区块链设备。具体包括:

    • 基于该区块链节点中各区块链设备的未占用存储空间,确定各区块链设备的第一分数;
    • 基于该区块链节点中各区块链设备的CPU处理能力,确定各区块链设备的第二分数;
    • 基于第一分数和第二分数,将各区块链设备的第一分数和第二分数的加权和,确定为各区块链设备的总分数;
    • 基于各区块链设备的总分数,分配总分数最高的区块链设备,用于承载与该发票标识对应的子区块链。

专利优势

考虑到开票单位开出发票时,甚至于发行单位发行该发票时,该发票可能关联的环节是固定的,例如,发票发行后涉及开票环节、报销环节等,因此,对于这一发票,需要记录发行发票信息、开票信息、发票报销信息等,涉及发票发行单位、开票单位、员工、发票报销单位等。只有发票可能关联到的这些环节会关心发票上链信息,把各个发票的信息都统一上链到一条区块链上,容易信息泄露,且无关的单位也不会关心。因此,本公开实施例将区块链分成多个子区块链存储,每个子区块链只存储特定发票标识所关联的发票上链信息。当接收到发行发票事件上链请求时,基于发票标识,分配一个子区块链,将发行发票事件信息记录在所述子区块链上。当后续接收到任何带有该发票标识的发票事件上链请求(例如开票事件上链请求、发票报销事件上链请求)时,将相关发票事件信息,也记录在所述子区块链上。因此,一条子区块链只记载利益相关方的发票上链信息,不记载其它方的发票上链信息,大大减少了发票信息泄露的可能性,而且子区块链数目可以随意扩展,达到性能无上限的目的。

CN109241772A发票区块链记录方法、装置、区块链网关服务器和介质(腾讯)的更多相关文章

  1. 未来-区块链-IBM:IBM 区块链技术开发社区

    ylbtech-未来-区块链-IBM:IBM 区块链技术开发社区 1.返回顶部 1. 开始学习 IBM Blockchain 101:开发人员快速入门指南 这篇快速入门指南适合不熟悉区块链技术,希望快 ...

  2. cpp 区块链模拟示例(四) 区块链工作量证明

    本文主要在之前的区块链原形上添加了工作量证明,并且为后继的交易功能做好准备. 上一个章节我们已经创建了区块链的基本原形,但是区块的哈希计算和加入太过于简单,如果按照这种速度添加区块那么区块链估计一个小 ...

  3. 区块链+AI将给区块链带来怎样的改变?

    区块链和人工智能技术都是互联网时代最新.最热的技术,不仅可以改变我们生活,还能产生巨大的财富,为此国家大力支持发展,科技巨头们也纷纷布局.那区块链与人工智能结合,对区块链技术而言会产生什么样的化学反应 ...

  4. [币严区块链]ETH搭建节点区块数据同步的三种模式:full、fast、light

    ETH  全节点Archive(归档)模式数据量增长图 上述图表可通过链接查看:https://etherscan.io/chartsync/chainarchive 通过上表,可以看到截止2019年 ...

  5. [CB] 支付宝区块链的应用- 区块链发票医保理赔.

    全国第一单区块链理赔.发票开出:1分钟报销     区块链技术和概念随着比特币等虚拟电子货币的兴起而尽人皆知,但是区块链的用途可不仅仅只玩币,尤其是在“矿难”到来之后,区块链正在向更多应用领域渗透.最 ...

  6. 一、Bitcoin比特币与BlockChain区块链技术

    一.比特币历史 2008 年 10 月 31 日,一个网名叫中本聪(英文翻译过来滴)的家伙发布比特币唯一的白皮书:<Bitcoin:A Peer-to-PeerElectronic Cash S ...

  7. 001-Bitcoin比特币与BlockChain区块链技术

    一.比特币历史 2008 年 10 月 31 日,一个网名叫中本聪(英文翻译过来滴)的家伙发布比特币唯一的白皮书:<Bitcoin:A Peer-to-PeerElectronic Cash S ...

  8. 区块链(Blockchain)

    一 .什么是区块链? 区块链(Blockchain)是由节点参与的分布式数据库系统[1],它的特点是不可更改,不可伪造,也可以将其理解为账簿系统(ledger).它是比特币的一个重要概念,完整比特币区 ...

  9. 用Python从零开始创建区块链

    本文主要内容翻译自Learn Blockchains by Building One 本文原始链接,转载请注明出处. 作者认为最快的学习区块链的方式是自己创建一个,本文就跟随作者用Python来创建一 ...

随机推荐

  1. MySQL数据库 | 数据表-查询命令详细记录

    本篇专门记录数据库增删改查中最常用.花招最多的 查. [文章结构] 一.数据的准备 二.基本的查询功能 三.条件查询 四.查询排序 五.聚合函数 六.分组查询 七.分页查询 八.连接查询 九.子查询 ...

  2. 题解【洛谷P3951】[NOIP2017]小凯的疑惑

    题目描述 小凯手中有两种面值的金币,两种面值均为正整数且彼此互素.每种金币小凯都有 无数个.在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的.现在小 凯想知道在无法准确支付的物品中,最贵的 ...

  3. EAC3 Spectral Extension Process

    1.overview 当使用Spectral extension时,channel中的高频部分的transform coefficients由低频部分合成. transform coefficient ...

  4. redis 解决秒杀

    # import redis pool = redis.ConnectionPool(host = '127.0.0.1', port=6379, db=0)#创建连接池 r = redis.Redi ...

  5. MongoDB C#驱动使用方法

    string connStr = ConfigurationManager.ConnectionStrings["MongoDBConnStr"].ConnectionString ...

  6. buuctf misc 刷题记录

    1.金三胖 将gif分离出来. 2.N种方法解决 一个exe文件,果然打不开,在kali里分析一下:file KEY.exe,ascii text,先txt再说,base64 图片. 3.大白 crc ...

  7. AS报错:Class kotlin.reflect.jvm.internal.FunctionCaller$FieldSetter can not access a member of class com.android.build.gradle.tasks.ManifestProcessorTask with modifiers "private"

    删除所有.gradle文件夹 失效缓存/重新启动

  8. c++工程编译记录

    test3.c #include <stdio.h> #include <cpptest/cpptest.h> int test(int argc,char **argv); ...

  9. 关于使用阿里云MAVEN镜像仓库

    由于国内的某些不可明确的原因 国内连接google的时候十分慢,使得看github上的项目十分慢,这里我们可以修改build.gradle下的文件来使用阿里云仓库同步 会更快: // Top-leve ...

  10. Go项目结构

    1. go项目工程结构 配置好工作目录后,就可以编码开发了,在这之前,我们看下go的通用项目结构,这里的结构主要是源代码相应地资源文件存放目录结构. 1.1 gopath目录 gopath目录就是我们 ...