CN111899019A - 一种黑名单多方交叉验证和共享的方法及*** - Google Patents

一种黑名单多方交叉验证和共享的方法及*** Download PDF

Info

Publication number
CN111899019A
CN111899019A CN202010737235.4A CN202010737235A CN111899019A CN 111899019 A CN111899019 A CN 111899019A CN 202010737235 A CN202010737235 A CN 202010737235A CN 111899019 A CN111899019 A CN 111899019A
Authority
CN
China
Prior art keywords
blacklist
data
block
nodes
bloom filter
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010737235.4A
Other languages
English (en)
Inventor
朱玮
王燕冬
郭强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN202010737235.4A priority Critical patent/CN111899019A/zh
Publication of CN111899019A publication Critical patent/CN111899019A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3825Use of electronic signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/389Keeping log of transactions for guaranteeing non-repudiation of a transaction

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Finance (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种黑名单多方交叉验证和共享的***,包括Bloom Filter黑名单共享库模块,用于获取黑名单数据进行基于Bloom Filter的运算和存储,以及对所存储黑名单数据的检索查询;黑名单提交记录共享账本模块,用于记录提交的黑名单数据明细信息,并发送到区块链上的记账节点,以供记账节点打包成区块传递到各个节点;公链共识管理模块用于在公链上部署智能合约以对区块链上进行节点管理和共识机制管理;本发明利用Bloom Filter技术在空间效率、查询效率以及安全性上的优势,结合区块链技术实现无损隐私的黑名单共享和高效检索功能,且突破了区块链的存储容量限制;并通过智能合约对参与节点之间数据共享、共识进行约束,自动化执行,实现可信的数据共享***。

Description

一种黑名单多方交叉验证和共享的方法及***
技术领域
本发明涉及区块链应用技术领域,具体而言,为一种黑名单多方交叉验证和共享的方法及***。
背景技术
区块链是比特币带来的一种底层技术,其中包括一系列技术,例如非对称加密签名、分布式账本、共识机制、点对点协议、智能合约等。区块链可以实现点对点网络环境下的价值转移、数据共识、合约自动化执行等。区块链分为公链和联盟链,公链是开放结构,任何陌生节点都可加入;联盟链是许可加入结构,只有经过许可的节点才可参与共识和记账。
在多个机构间或在行业内实现黑名单共享一直是一个难题,既有在多方分享数据并达成数据一致性的技术困难,也有泄漏敏感数据和侵犯隐私的担忧。基于区块链技术做黑名单共享,也存在隐私问题,即便采用哈希值上链,也存在检索效率问题,以及区块链本身的容量限制问题。这些问题致使针对黑名单共享,业界虽有紧迫需求,却难以在各行各业得以落地应用。
有鉴于此,特提出本发明。
发明内容
针对现有技术中的缺陷,本发明提供一种黑名单多方交叉验证和共享的方法及***,旨在利用Bloom Filter数据结构实现无损隐私的黑名单共享和高效检索功能,并使用区块链技术在联盟内实现Bloom Filter数据和黑名单提交记录数据的共识和一致。节点间构成联盟链的共识机制和数据一致,通过依赖可信的公链达成。
为实现上述目的,本申请的技术方案如下:
一种黑名单多方交叉验证和共享的***,其特征在于,包括
Bloom Filter黑名单共享库模块,用于获取黑名单数据进行基于Bloom Filter的运算和存储,以及对所存储黑名单数据的检索查询;
黑名单提交记录共享账本模块,用于记录提交到所述Bloom Filter黑名单共享库模块的明细信息,并发送到区块链上的记账节点,以供记账节点打包成为区块传递到各个节点;
公链共识管理模块,用于在公链上部署智能合约以对区块链上的节点进行节点管理和共识机制管理;
接口模块,用于提供标准化程序接口供业务***访问,以提交所述黑名单数据和查询黑名单数据。
进一步的,上述的黑名单多方交叉验证和共享的***中,所述Bloom Filter黑名单共享库模块,具体用于
对获取的黑名单数据进行多种哈希运算,得到的运算结果映射到该模块BloomFilter数据结构的Bit位,以验证该黑名单是否存在、以及该黑名单提交次数,并返回验证结果;
以及,对经过运算验证的每条黑名单数据进行存储,形成基于Bloom Filter数据结构的黑名单共享库,并在每个黑名单数据的运算验证后更新该共享库,以供查询;
在接收到黑名单查询请求时,该模块至少返回所请求查询的黑名单是否存在、以及该黑名单提交次数两种结果。
进一步的,上述的黑名单多方交叉验证和共享的***中,所述Bloom Filter为带计数器的Bloom Filter,通过计数器记录Bloom Filter数据结构的Bit位增加元素的个数,以及黑名单提交次数。
进一步的,上述的黑名单多方交叉验证和共享的***中,所述黑名单提交记录共享账本模块存储所述明细信息时,按照如下数据结构构造交易:
黑名单数据的多种哈希值、将该多种哈希值拼串后做加密运算所得到的哈希值、该黑名单在Bloom Filter上的计数值、时间戳、公钥、以及该节点的私钥数字签名。
进一步的,上述的黑名单多方交叉验证和共享的***中,所述区块链包括联盟链本地节点主体和联盟链公链智能合约主体;
其中联盟链本地节点主体包括所述Bloom Filter黑名单共享库模块和黑名单提交记录共享账本模块,并与接口模块共同部署在所有节点的本地;
所述联盟链公链智能合约主体包括公链共识管理模块,公链共识管理模块以程序方式在公链上部署至少三个智能合约,包括身份认证智能合约、共识管理智能合约和存证智能合约。
进一步的,上述的黑名单多方交叉验证和共享的***中,身份认证智能合约用于联盟链参与节点的身份认证管理,联盟链的上述公钥存储在智能合约中;共识管理智能合约用于随机分配联盟链中节点的记账权,并维持记账历史;存证智能合约用于保存联盟链的关于黑名单的区块数据以及投票节点针对该区块数据的数字签名。
进一步的,上述的黑名单多方交叉验证和共享的***中,所述黑名单提交记录共享账本模块每隔预设时间段生成一个数据区块,由当前负责记账的节点收集预设时间段内所有节点提交的所有交易信息,进行验证、打包生成区块数据,附上前一个区块的哈希值,加密运算生成本区块的区块哈希值,生成区块头信息;之后将区块发送至投票节点,由半数以上节点验证并签名的区块,进入确定状态。
本发明还提供了一种黑名单多方交叉验证和共享的方法,包括步骤:
获取黑名单数据,基于Bloom Filter对其进行运算和存储,并对所存储的黑名单数据检索查询,确定共享库中是否存在所述黑名单数据;
记录所述黑名单数据的提交明细信息,并发送到区块链上的记账节点,以供记账节点打包成为区块传递到各个节点;
部署智能合约,对所述区块链上的节点以及共识机制进行管理。
进一步的,上述的黑名单多方交叉验证和共享的方法中,获取黑名单数据,基于Bloom Filter对其进行运算和存储,并对所存储的黑名单数据检索查询,确定共享库中是否存在所述黑名单数据,具体包括:
S1.获取疑似或确定黑名单数据,取该黑名单数据的有效标识数据;
S2.在本地环境,对获取的有效标识数据进行10种哈希运算,包括APHash,BKDRHash,BPHash,DJBHash,DEKHash,FNVHash,JSHash,PJWHash,RSHash以及SDBMHash这10种哈希运算,继而获得10个哈希值;
S3.对基于所述Bloom Filter数据结构的黑名单共享库提交10个哈希值,其中:
S31.如果这10个哈希值映射到Bloom Filter数据结构中其对应位上都是1,则判断已经有其他节点提交过该黑名单;进入步骤S4.;
S32.如果这10个哈希值映射到Bloom Filter数据结构中其对应位上都是0,则将该位设置为1;进入步骤S5.;
S4.通过Bloom Filter计数器,获得该10个位的计数,从而获知之前共有几次对该黑名单的提交;并对计数器的10个位分别加1;
S5.把Bloom Filter数据结构中对应的10个位的值设置为1;并对计数器的10个位分别加1。
进一步的,上述的黑名单多方交叉验证和共享的方法中,部署智能合约,对所述区块链上的节点以及共识机制进行管理,具体包括:
在公链上部署三个智能合约,包括身份认证智能合约、共识管理智能合约和存证智能合约,其中身份认证智能合约用于联盟链参与节点的身份认证管理;共识管理智能合约用于随机分配联盟链中节点的记账权,并维持记账历史;存证智能合约用于保存联盟链的关于黑名单的区块数据以及投票节点针对该区块数据的数字签名;
联盟链每隔预设时间段生成一个数据区块,由当前负责记账的节点收集预设时间段内所有节点提交的所有交易信息,进行验证、打包生成区块数据,附上前一个区块的哈希值,加密运算生成本区块的区块哈希值,生成区块头信息;之后将区块发送至投票节点,由半数以上节点验证并签名的区块,进入确定状态;
共识管理智能合约每隔预设时间段从所有联盟节点的公钥地址中随机选取一个地址,指定该地址为下一轮记账节点,预设时间段内该节点提交该轮区块头信息至存证智能合约做存证;否则共识管理智能合约随机选取另一个公钥地址作为本轮记账节点。
本发明的有益效果体现在:
本发明***及方法,利用Bloom Filter技术在空间效率、查询效率以及安全性上的优势,结合区块链技术实现无损隐私的黑名单共享和高效检索功能,且突破了区块链的存储容量限制;并且本发明采用区块链技术,通过智能合约对参与联盟的节点之间数据共享、共识进行约束,且自动化执行,从而实现可信、可靠的数据共享***。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。
图1为本发明一种黑名单多方交叉验证和共享的***在一个具体实施例中的架构图;
图2为图1所示***中利用Bloom Filter数据结构和联盟连进行黑名单提交和验证的流程图;
图3为图1所示***中带计数器的Bloom Filter对黑名单数据存储、验证和检索的原理示意图。
具体实施方式
下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的技术方案,因此只作为示例,而不能以此来限制本发明的保护范围。
需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本发明所属领域技术人员所理解的通常意义。
本发明中的相关名词解释:
Bloom Filter:布隆过滤器,是一种数据存储和检索技术,由布隆(Burton HowardBloom)在1970年提出。Bloom Filter的数据结构是由一个很长的二进制向量构成,每个二进制位可置为0或者1。Bloom Filter技术使用一系列的随机映射函数,例如哈希函数,对数据元素做运算,然后映射到对应的二进制位上,将该位设为1。若是一个元素所映射的位的值都为1,则说明该元素存在。Bloom Filter的空间效率和运算效率均超过一般检索算法。
如图1-2所示,本发明一种黑名单多方交叉验证和共享的***,包括
Bloom Filter黑名单共享库模块,用于获取黑名单数据进行基于Bloom Filter的运算和存储,以及对所存储黑名单数据的检索查询;
黑名单提交记录共享账本模块,用于记录提交到所述Bloom Filter黑名单共享库模块的明细信息,并发送到区块链上的记账节点,以供记账节点打包成为区块传递到各个节点;
公链共识管理模块,用于在公链上部署智能合约以对区块链上的节点进行节点管理和共识机制管理。
本发明提供的黑名单多方交叉验证和共享的***,使用Bloom Filter数据结构存储、验证和检索黑名单,实现对黑名单的交叉验证,并且***露隐私,采用联盟链的形式在参与共享的多方之间分享存储在Bloom Filter黑名单共享库上的数据,并达成共识,共识的机制和管理依赖以太坊等公链上部署的智能合约实现,不可篡改,确保执行,可靠性高。
在本发明给出的一个具体实施例中,***还包括SDK接口模块,用于提供标准化接口的SDK模块,供其他机构的业务***访问,以提交所述黑名单数据和查询黑名单数据。
所述Bloom Filter黑名单共享库模块获取来自上述SDK模块的黑名单数据(可以是身份证等通用的唯一身份标识),并对获取的数据进行多种哈希运算,得到的运算结果映射到该模块Bloom Filter数据结构的Bit位,以验证该黑名单是否存在、以及该黑名单提交次数,并返回验证结果;对经过运算验证的每条黑名单数据进行存储,形成基于BloomFilter数据结构的黑名单共享库,并在每个黑名单数据的运算验证后更新该共享库,以供查询;并且在其他业务***发起黑名单查询请求时,该模块返回请求查询的黑名单是否存在、以及该黑名单提交次数两种结果。
具体的,结合图3,本发明中所述Bloom Filter采用带计数器的Bloom Filter,可优选采用dlCBF(d-Left Counting Bloom Filter),该结构可通过计数器记录Bit位增加元素的个数,从而可以实现元素删除,且可以计算出一个黑名单多方提交的次数;继而在黑名单查询的时候,不仅可以返回是否存在该元素,且可以返回该元素提交的次数,对于黑名单共享中黑名单的多方验证和确认而言,具有重要的意义。
在一个具体示例中,所述Bloom Filter黑名单共享库模块进行运算和共享的程序步骤如下:
S1.获取疑似(或确定)黑名单数据,取该黑名单数据的有效标识数据,例如该有效标识数据为身份证数据;
S2.在本地环境,对获取的身份证数据进行10种哈希运算,包括APHash,BKDRHash,BPHash,DJBHash,DEKHash,FNVHash,JSHash,PJWHash,RSHash以及SDBMHash这10种哈希运算,继而获得10个哈希值;
S3.对基于所述Bloom Filter数据结构的黑名单共享库提交10个哈希值,其中:
S31.如果这10个哈希值映射到Bloom Filter数据结构中其对应位上都是1,则说明已经有其他节点提交过该黑名单;则进入步骤S4.;
S32.如果这10个哈希值映射到Bloom Filter数据结构中其对应位上都是0,则将该位设置为1;进入步骤S5.;
S4.通过Bloom Filter计数器,获得该10个位的计数,从而获知之前共有几次对该黑名单的提交;计数越多,则该黑名单的严重程度越高;并对计数器的10个位分别加1;
S5.把Bloom Filter数据结构中对应的10个位的值设置为1;并对计数器的10个位分别加1。
本实施例中,Bloom Filter所设置的位m共计20亿,哈希运算种类数k取10,按照Bloom Filter存储率不超过50%,则可容纳黑名单元素为1亿,存储容量很大。
所述黑名单提交记录共享账本模块记录提交黑名单数据到Bloom Filter黑名单共享库模块的明细信息,存储到本地,并发送到记账节点,以供记账节点将其打包成为区块数据,之后传递到各个节点,达成节点间的数据一致,并与Bloom Filter黑名单共享库形成可验证的一致性;此处的提交记录,可视为区块链中的交易。
其中,所述黑名单提交记录共享账本模块存储提交记录明细时,按照如下数据结构构造交易:
黑名单数据的10种哈希值、将该10种哈希值拼串后做SHA 256所得哈希值、该黑名单在Bloom Filter上的计数值、时间戳、公钥、以及该节点的私钥数字签名。
黑名单提交记录共享账本模块将上述数据结构构成的数据区块发送到记账节点,以进行后续的区块上链验证操作。
在本发明***中,通过公链共识管理模块在公链上部署智能合约以对节点间的交易与共识过程,进行身份认证、共识管理和/或存证。
本发明中的区块链包括联盟链本地节点主体和联盟链公链智能合约主体;其中联盟链本地节点主体包括所述Bloom Filter黑名单共享库模块和黑名单提交记录共享账本模块,并与SDK接口模块共同部署在所有节点的本地。
联盟链的节点之间通过Gossip协议实现点对点的数据共享,共享的数据即包括Bloom Filter黑名单共享库模块和黑名单提交记录共享账本模块上的数据。
本实施例给出的一个优选实施方式中,Bloom Filter黑名单共享库模块与黑名单提交记录共享账本模块采用go语言开发;其中Bloom Filter基于Bitset数据结构,并使用MarshalBinary进行持久化的文件存储。黑名单提交记录共享账本模块的数据采用Leveldb存储;节点间通过gRPC传输数据。
所述联盟链公链智能合约主体包括公链共识管理模块,公链共识管理模块以程序方式在以太坊等公链上部署三个智能合约,包括身份认证智能合约、共识管理智能合约和存证智能合约,以实现对联盟链本地节点主体的节点管理和共识机制管理。
其中身份认证智能合约用于联盟链参与节点的身份认证管理,联盟链的上述公钥存储在智能合约中;共识管理智能合约用于随机分配联盟链中节点的记账权,并维持记账历史;存证智能合约用于保存联盟链的关于黑名单的区块数据以及投票节点针对该区块数据的数字签名。
本实施例给出的一个优选实施方式中,共识管理模块基于以太坊公链,使用Solidity语言开发三个智能合约;
在另外的可选实施方式中,也可采用中心化的共识管理模块,即使用go语言开发程序实现身份认证、共识管理和存证功能,在一台中心化服务器上运行。
黑名单提交记录共享账本模块每20分钟生成一个数据区块,即联盟链(下亦称为“黑名单联盟链”)每20分钟生成一个区块,由该轮负责记账的节点收集20分钟里所有节点提交的所有交易信息(即黑名单提交记录的明细信息),进行验证、打包生成区块数据,附上前一个区块的哈希值,运算SHA256生成本区块的区块哈希值,生成区块头信息,区块头信息包括:前一个区块的区块哈希值、本区块的哈希值、时间戳、本区块交易数量、记账节点的私钥签名;之后将区块发送至其他节点(投票节点),由半数以上节点验证并签名的区块,进入确定状态。
其中记账节点的打包工作包括:
1)将所有交易信息按照时间顺序排序后拼串;
2)加入前一个区块的哈希值;
3)对1)、2)两步的数据运算SHA 256生成本区块的区块哈希值;
4)生成区块头信息,区块头信息包括:前一个区块的区块哈希值、本区块的哈希值、时间戳、区块中的交易数、记账节点的私钥签名。
打包后的区块,由记账节点发送至其他节点,经过半数以上节点验证并签名的区块进入确定状态,其区块哈希值可被下一个区块引用。
进一步的,本发明验证共识过程中,在所述身份认证智能合约中保存着所有联盟节点的注册信息和公钥地址,可通过该智能合约添加新的联盟节点,也可删除某个现有联盟节点。
共识管理智能合约每20分钟从所有联盟节点的公钥地址中随机选取一个地址,指定该地址为下一轮记账节点,20分钟内该节点提交该轮区块头信息至存证智能合约做存证,如果20分钟内该记账节点没有提交区块头信息,则共识管理智能合约随机选取另一个公钥地址作为本轮记账节点,确保合约执行。
联盟链中本轮记账节点要向存证智能合约提交本轮区块的区块头信息进行存证,本轮区块的区块头信息即包括:前一个区块的区块哈希值、本区块的哈希值、时间戳、本区块交易数量、记账节点的私钥签名。
本轮非记账节点(投票节点)收到区块,对交易和区块进行验证,验证无误后,向存证智能合约提交对该区块的私钥数字签名,以用作审核投票。
存证智能合约保存每个区块来自非记账节点的私钥数字签名,并记录审核投票数,投票数过半,则将该区块状态置为最终状态(Finalized)。只有处于“最终状态”的区块,其哈希值才可以被下一个区块引用。
其中,非记账节点对交易的验证工作包括:1)交易信息的格式正确性、2)交易中的10种哈希值与Bloom Filter数据结构状态变更的一致性、3)交易信息中私钥数字签名的正确性验证。
非记账节点对区块的验证工作包括:1)区块中交易顺序与时间戳的一致性、2)区块中所有交易执行与Bloom Filter数据结构最终状态的一致性、3)区块数据格式的正确性、4)区块头哈希值的正确性、5)记账节点的私钥数字签名正确性。
验证无误后,非记账节点向存证智能合约提交对本区块的私钥数字签名。
经过共识后的区块数据,即完成上链,联盟链的参与节点能够从链上获得可信的黑名单数据。
本发明***利用Bloom Filter技术在空间效率、查询效率以及安全性上的优势,结合区块链技术实现无损隐私的黑名单共享和高效检索功能,且突破了区块链的存储容量限制;并且本发明采用区块链技术,通过智能合约对参与联盟的节点之间数据共享、共识进行约束,且自动化执行,从而实现可信、可靠的数据共享***。
实施例2
本发明还提供了一种黑名单多方交叉验证和共享的方法,基于上述实施例1中的***实施,如图2所示,具体包括如下步骤
获取黑名单数据,基于Bloom Filter对其进行运算和存储,并对所存储的黑名单数据检索查询,确定共享库中是否存在所述黑名单数据;
记录所述黑名单数据的提交明细信息,并发送到区块链上的记账节点,以供记账节点打包成为区块传递到各个节点;
部署智能合约,对所述区块链上的节点以及共识机制进行管理。
本发明方法旨在利用Bloom Filter技术实现区块链上的黑名单数据验证和共享,其实施原理可对应参考上述实施例1中的相关描述。
具体的,结合图1、3,本发明方法中,步骤“获取黑名单数据,基于Bloom Filter对其进行运算和存储,并对所存储的黑名单数据检索查询,确定共享库中是否存在所述黑名单数据”包括:
获取来自其他机构提交的黑名单数据(可以是身份证等通用的唯一身份标识),并对获取的数据进行多种哈希运算,得到的运算结果映射到Bloom Filter数据结构的Bit位,以验证该黑名单是否存在、以及该黑名单提交次数,并返回验证结果;对经过运算验证的每条黑名单数据进行存储,形成基于Bloom Filter数据结构的黑名单共享库,并在每个黑名单数据的运算验证后更新该共享库,以供查询;并且在其他业务***发起黑名单查询请求时,返回请求查询的黑名单是否存在、以及该黑名单提交次数两种结果。
具体的,本发明通方法中所述Bloom Filter采用带计数器的Bloom Filter,可优选采用dlCBF(d-Left Counting Bloom Filter),该结构可通过计数器记录Bit位增加元素的个数,从而可以实现元素删除,且可以计算出一个黑名单多方提交的次数;继而在黑名单查询的时候,不仅可以返回是否存在该元素,且可以返回该元素提交的次数,对于黑名单共享中黑名单的多方验证和确认而言,具有重要的意义。
在一个具体示例中,所述“基于Bloom Filter对其进行运算和存储,并对所存储的黑名单数据检索查询,确定共享库中是否存在所述黑名单数据”步骤如下:
S1.获取疑似(或确定)黑名单数据,取该黑名单数据的有效标识数据,例如该有效标识数据为身份证数据;
S2.在本地环境,对获取的身份证数据进行10种哈希运算,包括APHash,BKDRHash,BPHash,DJBHash,DEKHash,FNVHash,JSHash,PJWHash,RSHash以及SDBMHash这10种哈希运算,继而获得10个哈希值;
S3.对基于所述Bloom Filter数据结构的黑名单共享库提交10个哈希值,其中:
S31.如果这10个哈希值映射到Bloom Filter数据结构中其对应位上都是1,则说明已经有其他节点提交过该黑名单;则进入步骤S4.;
S32.如果这10个哈希值映射到Bloom Filter数据结构中其对应位上都是0,则将该位设置为1;进入步骤S5.;
S4.通过Bloom Filter计数器,获得该10个位的计数,从而获知之前共有几次对该黑名单的提交;计数越多,则该黑名单的严重程度越高;并对计数器的10个位分别加1;
S5.把Bloom Filter数据结构中对应的10个位的值设置为1;并对计数器的10个位分别加1。
本实施例中,Bloom Filter所设置的位m共计20亿,哈希运算种类数k取10,按照Bloom Filter存储率不超过50%,则可容纳黑名单元素为1亿,存储容量很大。
步骤“记录所述黑名单数据的提交明细信息,并发送到区块链上的记账节点,以供记账节点打包成为区块传递到各个节点”包括:
记录提交黑名单数据到Bloom Filter黑名单共享库的明细信息,存储到本地,并发送到记账节点,以供记账节点将其打包成为区块数据,之后传递到各个节点,达成节点间的数据一致,并与Bloom Filter黑名单共享库形成可验证的一致性;此处的提交记录,可视为区块链中的交易。
其中,记录提交黑名单数据到Bloom Filter黑名单共享库的明细信息时,按照如下数据结构构造交易:
黑名单数据的10种哈希值、将该10种哈希值拼串后做SHA 256所得哈希值、该黑名单在Bloom Filter上的计数值、时间戳、公钥、以及该节点的私钥数字签名。
将上述数据结构构成的数据区块发送到记账节点,以进行后续的区块上链验证操作。
步骤“构建智能合约,对所述区块链上的节点以及共识机制进行管理”包括:
在公链上部署智能合约以对节点间的交易与共识过程,进行身份认证、共识管理和/或存证。
本发明中构建的区块链包括联盟链本地节点主体和联盟链公链智能合约主体;其中联盟链本地节点主体包括所述Bloom Filter黑名单共享库模块和黑名单提交记录共享账本模块,并与SDK接口模块共同部署在所有节点的本地。
联盟链的节点之间通过Gossip协议实现点对点的数据共享,共享的数据即包括Bloom Filter黑名单共享库模块和黑名单提交记录共享账本模块上的数据。
所述联盟链公链智能合约主体包括公链共识管理模块,公链共识管理模块以程序方式在以太坊等公链上部署三个智能合约,包括身份认证智能合约、共识管理智能合约和存证智能合约,以实现对联盟链本地节点主体的节点管理和共识机制管理。
其中身份认证智能合约用于联盟链参与节点的身份认证管理,联盟链的上述公钥存储在智能合约中;共识管理智能合约用于随机分配联盟链中节点的记账权,并维持记账历史;存证智能合约用于保存联盟链的关于黑名单的区块数据以及投票节点针对该区块数据的数字签名。
本实施例给出的一个优选实施方式中,共识管理模块基于以太坊公链,使用Solidity语言开发三个智能合约;
在另外的可选实施方式中,也可采用中心化的共识管理模块,即使用go语言开发程序实现身份认证、共识管理和存证功能,在一台中心化服务器上运行。
联盟链(下亦称为“黑名单联盟链”)每20分钟生成一个区块,由该轮负责记账的节点收集20分钟里所有节点提交的所有交易信息(即黑名单提交记录的明细信息),进行验证、打包生成区块数据,附上前一个区块的哈希值,运算SHA256生成本区块的区块哈希值,生成区块头信息,区块头信息包括:前一个区块的区块哈希值、本区块的哈希值、时间戳、本区块交易数量、记账节点的私钥签名;之后将区块发送至其他节点(投票节点),由半数以上节点验证并签名的区块,进入确定状态。
其中记账节点的打包工作包括:
1)将所有交易信息按照时间顺序排序后拼串;
2)加入前一个区块的哈希值;
3)对1)、2)两步的数据运算SHA 256生成本区块的区块哈希值;
4)生成区块头信息,区块头信息包括:前一个区块的区块哈希值、本区块的哈希值、时间戳、区块中的交易数、记账节点的私钥签名。
打包后的区块,由记账节点发送至其他节点,经过半数以上节点验证并签名的区块进入确定状态,其区块哈希值可被下一个区块引用。
进一步的,本发明验证共识过程中,在所述身份认证智能合约中保存着所有联盟节点的注册信息和公钥地址,可通过该智能合约添加新的联盟节点,也可删除某个现有联盟节点。
共识管理智能合约每20分钟从所有联盟节点的公钥地址中随机选取一个地址,指定该地址为下一轮记账节点,20分钟内该节点提交该轮区块头信息至存证智能合约做存证,如果20分钟内该记账节点没有提交区块头信息,则共识管理智能合约随机选取另一个公钥地址作为本轮记账节点,确保合约执行。
联盟链中本轮记账节点要向存证智能合约提交本轮区块的区块头信息进行存证,本轮区块的区块头信息即包括:前一个区块的区块哈希值、本区块的哈希值、时间戳、本区块交易数量、记账节点的私钥签名。
本轮非记账节点(投票节点)收到区块,对交易和区块进行验证,验证无误后,向存证智能合约提交对该区块的私钥数字签名,以用作审核投票。
存证智能合约保存每个区块来自非记账节点的私钥数字签名,并记录审核投票数,投票数过半,则将该区块状态置为最终状态(Finalized)。只有处于“最终状态”的区块,其哈希值才可以被下一个区块引用。
其中,非记账节点对交易的验证工作包括:1)交易信息的格式正确性、2)交易中的10种哈希值与Bloom Filter数据结构状态变更的一致性、3)交易信息中私钥数字签名的正确性验证。
非记账节点对区块的验证工作包括:1)区块中交易顺序与时间戳的一致性、2)区块中所有交易执行与Bloom Filter数据结构最终状态的一致性、3)区块数据格式的正确性、4)区块头哈希值的正确性、5)记账节点的私钥数字签名正确性。
验证无误后,非记账节点向存证智能合约提交对本区块的私钥数字签名。
经过共识后的区块数据,即完成上链,联盟链的参与节点能够从链上获得可信的黑名单数据。
需说明的是,本发明的实现和本文中提供的所有功能操作可以用数字电子电路、或者用计算机软件、固件或硬件,包括本说明书及其结构等同方案中所公开的结构、或者其中的一个或多个的组合来实现。本公开的实现可以实现为一个或多个计算机程序产品,即在计算机可读介质上编码的计算机程序指令的一个或多个模块,这些指令由数据处理装置来执行或者用以控制数据处理装置的操作。该计算机可读介质可以是机器可读存储设备、机器可读存储基片、存储器设备、影响机器可读传播信号的组合物或者其中的一个或多个的组合。术语“数据处理装置”涵盖用于处理数据的所有装置、设备和机器,包括例如可编程处理器、计算机或者多个处理器或计算机。除了硬件之外,该装置可以包括为所描述的计算机程序创建执行环境的代码,例如构成处理器固件、协议栈、数据库管理***、操作***或者其中的一个或多个的组合的代码。
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言(包括编译语言或解释语言)来编写,并且计算机程序可以用任何形式来部署,包括作为独立程序或者作为模块、部件、子例程或者适合在计算环境中使用的其他单元。计算机程序并非必须对应于文件***中的文件。程序可以存储在保持其他程序或数据(例如标记语言文档中所存储的一个或多个脚本)的文件的部分中,存储在专用于所描述的程序的单个文件中,或者存储在多个协同文件(例如存储一个或多个模块、子程序或者代码的部分的文件)中。计算机程序可以被部署成在一个计算机上来执行,或者在位于一个站点处或分布在多个站点处且通过通信网络互连的多个计算机上来执行。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。

Claims (10)

1.一种黑名单多方交叉验证和共享的***,其特征在于,包括
Bloom Filter黑名单共享库模块,用于获取黑名单数据进行基于Bloom Filter的运算和存储,以及对所存储黑名单数据的检索查询;
黑名单提交记录共享账本模块,用于记录提交到所述Bloom Filter黑名单共享库模块的明细信息,并发送到区块链上的记账节点,以供记账节点打包成为区块传递到各个节点;
公链共识管理模块,用于在公链上部署智能合约以对区块链上的节点进行节点管理和共识机制管理;
接口模块,用于提供标准化程序接口供业务***访问,以提交所述黑名单数据和查询黑名单数据。
2.根据权利要求1所述的黑名单多方交叉验证和共享的***,其特征在于,所述BloomFilter黑名单共享库模块,具体用于
对获取的黑名单数据进行多种哈希运算,得到的运算结果映射到该模块Bloom Filter数据结构的Bit位,以验证该黑名单是否存在、以及该黑名单提交次数,并返回验证结果;
以及,对经过运算验证的每条黑名单数据进行存储,形成基于Bloom Filter数据结构的黑名单共享库,并在每个黑名单数据的运算验证后更新该共享库,以供查询;
在接收到黑名单查询请求时,该模块至少返回所请求查询的黑名单是否存在、以及该黑名单提交次数两种结果。
3.根据权利要求2所述的黑名单多方交叉验证和共享的***,其特征在于,所述BloomFilter为带计数器的Bloom Filter,通过计数器记录Bloom Filter数据结构的Bit位增加元素的个数,以及黑名单提交次数。
4.根据权利要求2所述的黑名单多方交叉验证和共享的***,其特征在于,所述黑名单提交记录共享账本模块存储所述明细信息时,按照如下数据结构构造交易:
黑名单数据的多种哈希值、将该多种哈希值拼串后做加密运算所得到的哈希值、该黑名单在Bloom Filter上的计数值、时间戳、公钥、以及该节点的私钥数字签名。
5.根据权利要求1所述的黑名单多方交叉验证和共享的***,其特征在于,所述区块链包括联盟链本地节点主体和联盟链公链智能合约主体;
其中联盟链本地节点主体包括所述Bloom Filter黑名单共享库模块和黑名单提交记录共享账本模块,并与接口模块共同部署在所有节点的本地;
所述联盟链公链智能合约主体包括公链共识管理模块,公链共识管理模块以程序方式在公链上部署至少三个智能合约,包括身份认证智能合约、共识管理智能合约和存证智能合约。
6.根据权利要求5所述的黑名单多方交叉验证和共享的***,其特征在于,身份认证智能合约用于联盟链参与节点的身份认证管理,联盟链的所述公钥存储在智能合约中;共识管理智能合约用于随机分配联盟链中节点的记账权,并维持记账历史;存证智能合约用于保存联盟链的关于黑名单的区块数据以及投票节点针对该区块数据的数字签名。
7.根据权利要求4所述的黑名单多方交叉验证和共享的***,其特征在于,所述黑名单提交记录共享账本模块每隔预设时间段生成一个数据区块,由当前负责记账的节点收集预设时间段内所有节点提交的所有交易信息,进行验证、打包生成区块数据,附上前一个区块的哈希值,加密运算生成本区块的区块哈希值,生成区块头信息;之后将区块发送至投票节点,由半数以上节点验证并签名的区块,进入确定状态。
8.一种黑名单多方交叉验证和共享的方法,其特征在于,包括步骤:
获取黑名单数据,基于Bloom Filter对其进行运算和存储,并对所存储的黑名单数据检索查询,确定共享库中是否存在所述黑名单数据;
记录所述黑名单数据的提交明细信息,并发送到区块链上的记账节点,以供记账节点打包成为区块传递到各个节点;
部署智能合约,对所述区块链上的节点以及共识机制进行管理。
9.根据权利要求8所述的黑名单多方交叉验证和共享的方法,其特征在于,获取黑名单数据,基于Bloom Filter对其进行运算和存储,并对所存储的黑名单数据检索查询,确定共享库中是否存在所述黑名单数据,具体包括:
S1.获取疑似或确定黑名单数据,取该黑名单数据的有效标识数据;
S2.在本地环境,对获取的有效标识数据进行10种哈希运算,包括APHash,BKDRHash,BPHash,DJBHash,DEKHash,FNVHash,JSHash,PJWHash,RSHash以及SDBMHash这10种哈希运算,继而获得10个哈希值;
S3.对基于所述Bloom Filter数据结构的黑名单共享库提交10个哈希值,其中:
S31.如果这10个哈希值映射到Bloom Filter数据结构中其对应位上都是1,则判断已经有其他节点提交过该黑名单;进入步骤S4.;
S32.如果这10个哈希值映射到Bloom Filter数据结构中其对应位上都是0,则将该位设置为1;进入步骤S5.;
S4.通过Bloom Filter计数器,获得该10个位的计数,从而获知之前共有几次对该黑名单的提交;
S5.把Bloom Filter数据结构中对应的10个位的值设置为1;并对计数器的10个位分别加1。
10.根据权利要求8所述的黑名单多方交叉验证和共享的方法,其特征在于,部署智能合约,对所述区块链上的节点以及共识机制进行管理,具体包括:
在公链上部署三个智能合约,包括身份认证智能合约、共识管理智能合约和存证智能合约,其中身份认证智能合约用于联盟链参与节点的身份认证管理;共识管理智能合约用于随机分配联盟链中节点的记账权,并维持记账历史;存证智能合约用于保存联盟链的关于黑名单的区块数据以及投票节点针对该区块数据的数字签名;
联盟链每隔预设时间段生成一个数据区块,由当前负责记账的节点收集预设时间段内所有节点提交的所有交易信息,进行验证、打包生成区块数据,附上前一个区块的哈希值,加密运算生成本区块的区块哈希值,生成区块头信息;之后将区块发送至投票节点,由半数以上节点验证并签名的区块,进入确定状态;
共识管理智能合约每隔预设时间段从所有联盟节点的公钥地址中随机选取一个地址,指定该地址为下一轮记账节点,预设时间段内该节点提交该轮区块头信息至存证智能合约做存证;否则共识管理智能合约随机选取另一个公钥地址作为本轮记账节点。
CN202010737235.4A 2020-07-28 2020-07-28 一种黑名单多方交叉验证和共享的方法及*** Pending CN111899019A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010737235.4A CN111899019A (zh) 2020-07-28 2020-07-28 一种黑名单多方交叉验证和共享的方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010737235.4A CN111899019A (zh) 2020-07-28 2020-07-28 一种黑名单多方交叉验证和共享的方法及***

Publications (1)

Publication Number Publication Date
CN111899019A true CN111899019A (zh) 2020-11-06

Family

ID=73190255

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010737235.4A Pending CN111899019A (zh) 2020-07-28 2020-07-28 一种黑名单多方交叉验证和共享的方法及***

Country Status (1)

Country Link
CN (1) CN111899019A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113472870A (zh) * 2021-06-25 2021-10-01 南京航空航天大学 基于有向无环图的支持合约的分布式账本共识方法与***
CN113592645A (zh) * 2021-07-02 2021-11-02 中国人民银行数字货币研究所 数据验证的方法和装置
CN113610528A (zh) * 2021-08-24 2021-11-05 上海点融信息科技有限责任公司 基于区块链的管理***、方法、设备及存储介质
CN114978693A (zh) * 2022-05-23 2022-08-30 深圳壹账通科技服务有限公司 多机构的黑名单保密验证方法、装置、设备及存储介质
CN115065503A (zh) * 2022-05-11 2022-09-16 浪潮云信息技术股份公司 一种api网关防重放攻击的方法
CN115967697A (zh) * 2022-12-27 2023-04-14 暨南大学 一种基于区块链的邮件黑名单共享方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108549716A (zh) * 2018-04-23 2018-09-18 广东奥园奥买家电子商务有限公司 一种基于布隆算法实现海量黑名单处理的方法
CN109858272A (zh) * 2018-05-23 2019-06-07 深圳崀途科技有限公司 基于区块链的黑名单数据处理***
CN110503558A (zh) * 2019-08-29 2019-11-26 深圳前海微众银行股份有限公司 一种基于区块链***的处理方法及装置
CN110532786A (zh) * 2018-05-23 2019-12-03 深圳崀途科技有限公司 采用哈希脱敏处理的区块链黑名单共享方法
WO2020001105A1 (zh) * 2018-06-29 2020-01-02 阿里巴巴集团控股有限公司 基于区块链的数据验证方法及装置、电子设备
CN110851862A (zh) * 2019-10-31 2020-02-28 中电科大数据研究院有限公司 一种联盟链中的私有与隐私数据保护机制

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108549716A (zh) * 2018-04-23 2018-09-18 广东奥园奥买家电子商务有限公司 一种基于布隆算法实现海量黑名单处理的方法
CN109858272A (zh) * 2018-05-23 2019-06-07 深圳崀途科技有限公司 基于区块链的黑名单数据处理***
CN110532786A (zh) * 2018-05-23 2019-12-03 深圳崀途科技有限公司 采用哈希脱敏处理的区块链黑名单共享方法
WO2020001105A1 (zh) * 2018-06-29 2020-01-02 阿里巴巴集团控股有限公司 基于区块链的数据验证方法及装置、电子设备
CN110503558A (zh) * 2019-08-29 2019-11-26 深圳前海微众银行股份有限公司 一种基于区块链***的处理方法及装置
CN110851862A (zh) * 2019-10-31 2020-02-28 中电科大数据研究院有限公司 一种联盟链中的私有与隐私数据保护机制

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
洪学海;汪洋;廖方宇;: "区块链***技术研究综述", 中国科学基金, vol. 34, no. 1, 11 May 2020 (2020-05-11), pages 18 - 24 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113472870A (zh) * 2021-06-25 2021-10-01 南京航空航天大学 基于有向无环图的支持合约的分布式账本共识方法与***
CN113592645A (zh) * 2021-07-02 2021-11-02 中国人民银行数字货币研究所 数据验证的方法和装置
CN113592645B (zh) * 2021-07-02 2023-11-14 中国人民银行数字货币研究所 数据验证的方法和装置
CN113610528A (zh) * 2021-08-24 2021-11-05 上海点融信息科技有限责任公司 基于区块链的管理***、方法、设备及存储介质
CN113610528B (zh) * 2021-08-24 2024-04-02 上海点融信息科技有限责任公司 基于区块链的管理***、方法、设备及存储介质
CN115065503A (zh) * 2022-05-11 2022-09-16 浪潮云信息技术股份公司 一种api网关防重放攻击的方法
CN115065503B (zh) * 2022-05-11 2024-05-31 浪潮云信息技术股份公司 一种api网关防重放攻击的方法
CN114978693A (zh) * 2022-05-23 2022-08-30 深圳壹账通科技服务有限公司 多机构的黑名单保密验证方法、装置、设备及存储介质
CN115967697A (zh) * 2022-12-27 2023-04-14 暨南大学 一种基于区块链的邮件黑名单共享方法

Similar Documents

Publication Publication Date Title
CN109409122B (zh) 文件存储方法及其电子设备、存储介质
CN111899019A (zh) 一种黑名单多方交叉验证和共享的方法及***
CN109726229B (zh) 一种区块链数据存储方法及装置
CN110442652B (zh) 一种基于区块链的跨链数据处理方法及装置
CN110245186B (zh) 一种基于区块链的业务处理方法及相关设备
CN108924130B (zh) 一种区块数据的验证方法、装置、设备和存储介质
KR102120703B1 (ko) 블록체인 네트워크 상에서 그룹키 기반의 이중 서명 트랜잭션 구조를 구성하는 노드 그룹 관리 장치 및 컴퓨팅 장치
CN115210741B (zh) 部分有序的区块链
CN110633963B (zh) 电子票据处理方法、装置、计算机可读存储介质和设备
CN111523890B (zh) 基于区块链的数据处理方法、装置、存储介质及设备
US20230316273A1 (en) Data processing method and apparatus, computer device, and storage medium
CN113328997B (zh) 联盟链跨链***及方法
CN112087502B (zh) 处理请求的方法、装置、设备及存储介质
CN110084600B (zh) 决议事务请求的处理、验证方法、装置、设备及介质
CN112615847A (zh) 基于区块链的数据共享和隐私保护方法
CN111367923A (zh) 数据处理方法、装置、节点设备及存储介质
CN111817859A (zh) 基于零知识证明的数据共享方法、装置、设备及存储介质
CN115701078B (zh) 跨链交易处理方法、装置、电子设备以及存储介质
CN112163917B (zh) 基于区块链的票据处理方法、装置、介质及电子设备
CN112039893B (zh) 私密交易处理方法、装置、电子设备及可读存储介质
JP7325318B2 (ja) 証跡記録システム及びデータ検証方法
CN112132588A (zh) 基于区块链的数据处理方法、装置、路由设备及存储介质
Spenger Using Blockchain for Tamper-Proof Broadcast Protocols
US20220270717A1 (en) System and method for collecting clinical trial data based on block-chain
CN116708463B (zh) 基于多区块链的信息处理方法、装置、设备以及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination