CN113449032A - 一种数据上链可验证的区块链离链数据交互系统及方法 - Google Patents
一种数据上链可验证的区块链离链数据交互系统及方法 Download PDFInfo
- Publication number
- CN113449032A CN113449032A CN202110622069.8A CN202110622069A CN113449032A CN 113449032 A CN113449032 A CN 113449032A CN 202110622069 A CN202110622069 A CN 202110622069A CN 113449032 A CN113449032 A CN 113449032A
- Authority
- CN
- China
- Prior art keywords
- transaction
- data
- receiver
- initiator
- send
- 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.)
- Granted
Links
- 230000003993 interaction Effects 0.000 title claims abstract description 62
- 238000000034 method Methods 0.000 title claims abstract description 50
- 239000003999 initiator Substances 0.000 claims abstract description 201
- 238000012795 verification Methods 0.000 claims description 17
- 230000000977 initiatory effect Effects 0.000 claims description 3
- 238000012550 audit Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000002790 cross-validation Methods 0.000 description 1
- 238000013502 data validation Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及一种数据上链可验证的区块链离链数据交互系统及方法。系统包括可信注册机构、可信签证机构、共识节点和客户端,方法包括系统初始化、客户端注册及认证、数据交互、数据认证和数据上链。系统初始化用于生成系统公共参数、系统公钥、系统私钥、密文策略属性加密公钥和主密钥;客户端注册及认证用于生成事务发起方公钥、事务发起方私钥、事务发起方解密私钥、事务发起方公钥证书、事务接收方公钥、事务接收方私钥、事务接收方解密私钥、事务接收方公钥证书;数据认证用于对事务数据历史进行双签名;数据上链用于离链客户端接入共识节点或链上客户端的数据一致上链。本发明可以解决区块链系统中客户端的离链数据交互的安全与可验证问题。
Description
技术领域
本发明属于区块链技术领域,涉及一种区块链离链数据交互系统及方法,特别是涉及一种数据上链可验证的区块链离链数据交互系统及方法。
背景技术
现有的区块链离链方案集中在离链支付通道和离链事务通道两个方向。离链支付通道采用支付锁定机制和寻路算法实现离链用户之间的小额高频次交易,而离链事务通道引入可信或非可信的第三方作为离链事务见证人实现离链事务交互。在现有方案中,只能实现客户端在离开区块链和共识节点之后的离链通道,且需要依赖其他节点进行通信,并非离开网络。
然而,在物流区块链的应用场景下,节点和客户端之间的通信受环境实时影响极大。为了保证区块链系统随时可用,需要考虑客户端无法与节点交互的离链情形,即离链数据交互。
区块链客户端会因为网络限制或遭受攻击而无法加入任何一个网络,成为无法和任何链上客户端交互的离链客户端。为了实现离链客户端的事务数据交互,并为离链事务数据的数据上链提供一致的离链数据,本发明提出了一种数据上链可验证的区块链离链数据交互方法。
发明内容
针对现有技术中存在的缺陷,本发明提供了一种在节点离链情形下依然可以进行数据交互且支持上链时数据可验证的区块链离链数据交互系统及方法。
本发明所采用的技术方案是:
一种数据上链可验证的区块链离链数据交互系统,包括:可信注册机构、可信签证机构、共识节点和客户端;
所述可信注册机构是一个可信第三方机构,与可信签证机构共同完成对用户的注册和签证过程;
所述可信签证机构是一个可信第三方机构,与可信注册机构共同完成对用户的注册和签证过程;
所述共识节点是区块链网络中负责共识和维护区块链数据一致性的节点。共识节点实时运行在区块链网络中,收集客户端发送给节点的事务数据项或者离链事务列表,经过事务规则验证和共识,将这些数据打包成一致的新区块,并记录到区块链上;
所述客户端是区块链网络中进行事务数据交互的最小单位,包括链上客户端和离链客户端;当客户端产生的事务数据可以实时发送给共识节点时(无论是否经过其他可信客户端作为路由),该客户端就被称为是链上客户端,否则被称为是离链客户端;
所述链上客户端指能够将客户端产生的事务数据实时发送给共识节点的客户端;
所述离链客户端指无法将客户端产生的事务数据实时发送给共识节点的客户端,包括事务发起方和事务接收方;
所述事务发起方是离链运行协议中发起事务数据交互的一方,负责构造事务数据和事务数据密文,认证事务接收方产生的待认证数据项,并维护、更新事务数据列表、事务数据哈希列表、数据认证列表和数据认证备份列表;
所述事务接收方是离链运行协议中接收事务数据的一方,负责验证事务数据和事务数据密文,完成或者监督完成事务数据中陈述的事务具体内容,认证事务发起方产生的待认证数据项,并维护、更新事务数据列表、事务数据哈希列表、数据认证列表和数据认证备份列表。
当新的客户端加入区块链网络时,可信注册机构负责对客户端注册;客户端注册的内容包括客户端真实身份与客户端假名。
当新的客户端完成在可信注册机构的客户端注册后,可信签证机构需要根据客户端真实身份和客户端假名,为客户端颁发客户端公钥和客户端私钥;
一种数据上链可验证的区块链离链数据交互方法,包括以下步骤:系统初始化、客户端注册及认证、数据交互、数据认证和数据上链;
系统初始化用于生成系统公共参数、系统公钥、系统私钥、密文策略属性加密公钥和密文策略属性加密主密钥;
客户端注册及认证用于生成事务发起方公钥、事务发起方私钥、事务发起方解密私钥、事务发起方公钥证书、事务接收方公钥、事务接收方私钥、事务接收方解密私钥、事务接收方公钥证书;
数据认证用于对事务数据历史进行双签名;
数据上链用于离链客户端接入共识节点或链上客户端的数据一致上链。
系统初始化具体过程为:首先,可信签证机构输入安全参数1λ,输出系统公共参数ppsig;然后,可信签证机构输入系统公共参数ppsig,输出系统公钥pkCA和系统私钥skCA;最后,可信签证机构输入安全参数1λ,输出密文策略属性加密公钥和密文策略属性加密主密钥。
客户端注册及认证具体过程为:
在事务发起方一侧,事务发起方输入系统公共参数ppsig、事务发起方假名psesend和事务发起方真实身份IDsend,输出事务发起方公钥pksend和事务发起方私钥sksend;
可信注册机构输入事务发起方假名psesend和事务发起方真实身份IDsend,验证事务发起方真实身份,验证事务发起方假名是否唯一;
可信注册机构向可信签证机构请求颁发事务发起方证书,过程如下:
首先,可信签证机构接收到可信注册机构为事务发起方提出的颁证请求后,输入事务发起方真实身份IDsend、事务发起方假名psesend、密文策略属性加密主密钥MK和属性集合S,输出密文策略属性加密的事务发起方解密私钥;
属性集合是由用户属性组成的集合,用户属性包括用户名称、工作单位、权限。
然后,可信签证机构接收到可信注册机构为事务发起方提出的颁证请求后,输入事务发起方假名psesend和事务发起方公钥pksend,输出事务发起方公钥证书Certsend;
最后,可信签证机构通过可信注册机构将事务发起方公钥证书Certsend和事务发起方解密私钥返回给事务发起方;
在事务接收方一侧,事务接收方输入系统公共参数ppsig、事务接收方假名psereceive和事务接收方真实身份IDreceive,输出事务接收方公钥pkreceive和事务接收方私钥skreceive;
可信注册机构输入事务接收方假名psereceive和事务接收方真实身份IDreceive,验证事务接收方真实身份,验证事务接收方假名是否唯一;
可信注册机构向可信签证机构请求颁发事务接收方证书,过程如下:
首先,可信签证机构接收到可信注册机构为事务接收方提出的颁证请求后,输入事务接收方真实身份IDreceive、事务接收方假名(psereceive)、密文策略属性加密主密钥MK和属性集合S,输出密文策略属性加密的事务接收方解密私钥;
然后,可信签证机构接收到可信注册机构为事务接收方提出的颁证请求后,输入事务接收方假名psereceive和事务接收方公钥pkreceive,输出事务接收方公钥证书Certreceive;
最后,可信签证机构通过可信注册机构将事务接收方公钥证书Certreceive和事务接收方解密私钥返回给事务接收方;
所述数据交互,用于记录事务发起方和事务接收方进行事务数据交互的结果,生成事务数据列表和事务数据哈希列表。
数据交互具体过程为:
在事务发起方一侧,事务发起方生成需要与事务接收方交互的事务数据,依据与该项事务有关的客户端身份,制定属性加密的密文策略T,并使用密文策略属性加密主密钥MK将事务数据加密为事务密文;
事务发起方将假名pse、事务密文CT和时间戳timestamp组成事务数据交互请求;
在事务接收方收到来自事务发起方的事务数据交互请求后,事务接收方使用事务接收方解密私钥对事务数据交互请求中的事务密文CT进行解密,得到明文下的事务数据Tra;
事务发起方和事务接收方执行事务数据交互请求中事务的具体内容,当事务在场景中完成后,事务发起方和事务接收方分别将本次进行事务数据交互的事务数据Tra记入各自的事务数据列表TL中。详细地讲,事务发起方将该项事务数据记入其自身拥有的本地事务数据列表,并增加相应的事务数据索引值事务发起方的事务数据列表由TLsend,pre更新为TLsend。同样地,事务接收方将该项事务数据记入其自身拥有的本地事务数据列表,并增加相应的事务数据索引值事务接收方的事务数据列表由TLreceive,pre更新为TLreceive;
事务结束后,在事务发起方一侧,事务发起方根据更新后的事务数据列表TL,更新本地维护的事务数据哈希列表THLsend。事务发起方计算新增事务数据项的哈希值THsend,并将这个哈希值作为哈希树的新增叶节点,加入事务数据哈希列表的默克尔哈希树中,得到新的默克尔哈希树根节点新增事务数据项的哈希值THsend、新的默克尔哈希树根节点和新增事务数据项索引值被事务发起方记入其本地维护的事务数据哈希列表中,更新后得到事务数据哈希列表THLsend。其中,默克尔哈希树的第一个叶节点为事务发送方在离链前记录的最后一个区块哈希值,此时默克尔哈希树根节点为本身。其对应的事务数据哈希列表索引值为0,但不存在对应的事务数据项。
同时,在事务接收方一侧,事务接收方根据更新后的事务数据列表TL,更新本地维护的事务数据哈希列表THLreceive。事务接收方计算新增事务数据项的哈希值THreceive,并将这个哈希值作为哈希树的新增叶节点,加入事务数据哈希列表的默克尔哈希树中,得到新的默克尔哈希树根节点新增事务数据项的哈希值THreceive、新的默克尔哈希树根节点和新增事务数据项索引值被事务发起方记入其本地维护的事务数据哈希列表中,更新后得到事务数据哈希列表THLreceive。其中,默克尔哈希树的第一个叶节点为事务接收方在离链前记录的最后一个区块哈希值,此时默克尔哈希树根节点为本身。其对应的事务数据哈希列表索引值为0,但不存在对应的事务数据项。
所述数据认证的具体过程为:
最后,事务发起方发送待认证数据项给事务接收方;
最后,事务接收方发送待认证数据项给事务发送方;
然后,事务发起方使用事务发起方私钥sksend对接收到的待认证数据项进行签名,进行签名的内容需要包括事务接收方发起签名请求的待认证的事务数据项索引值、事务接收方的事务数据哈希列表THLreceive、事务接收方事务数据哈希列表对应的默克尔哈希树根节点和事务接收方对本次待认证数据项的签名σreceive;
接着,事务发起方将事务接收方发起签名请求的待认证的事务数据项索引值事务接收方的事务数据哈希列表THLreceive、事务接收方事务数据哈希列表对应的默克尔哈希树根节点和事务接收方对本次待认证数据项的签名σreceive和签名σ′send组成认证回复Cerreceive,rep,并回复给事务接收方;
然后,事务接收方使用事务接收方私钥skreceive对接收到的待认证数据项进行签名,进行签名的内容需要包括事务发起方发起签名请求的待认证的事务数据项索引值、事务发起方的事务数据哈希列表THLsend、事务发起方事务数据哈希列表对应的默克尔哈希树根节点和事务发起方对本次待认证数据项的签名σsend;
接着,事务接收方将事务接收方发起签名请求的待认证的事务数据项索引值事务接收方的事务数据哈希列表THLsend、事务接收方事务数据哈希列表对应的默克尔哈希树根节点和事务接收方对本次待认证数据项的签名σsend和签名σ′receive组成认证回复Cersend,rep;
在事务发起方收到来自事务接收方的认证回复后,事务发起方验证事务接收方认证回复中的事务接收方签名σ'receive;
然后,事务发起方将通过签名验证的认证回复构造为已认证数据项,并记入数据认证列表CLsend;
在事务接收方收到来自事务发送方的认证回复后,事务接收方验证事务发起方认证回复中的事务发起方签名σ′send;
然后,事务接收方将通过签名验证的认证回复构造为已认证数据项,并记入数据认证列表CLreceive。
所述数据上链,用于离链客户端接入共识节点或其他链上客户端之后的数据一致上链。具体过程为:
事务发起方和/或事务接收方将本地维护的事务数据列表、事务数据哈希列表、数据认证列表和数据认证备份列表发送给共识节点;
共识节点将本次收到的事务数据与其余客户端发送的事务数据进行交叉验证,事务数据相同、哈希值相同、签名合法且索引值相同的事务数据被认为是通过验证的数据,共识节点将通过验证的数据打包成新区块,经过共识算法上链。
本发明的有益效果在于:
(1)本发明提供了一种数据上链可验证的区块链离链数据交互方法,可以支持离链客户端事务数据交互和产生数据的可验证上链;
(2)本发明设计了区块链离链事务数据交互的数据结构,同时设计了其对应的验证方式,能够有效记录和验证离链时发生的事务数据,保证离链数据的安全性和完整性。
具体的:
(1)离链客户端事务数据安全交互:离链客户端将离链事务数据以数据密文和哈希值的形式存储在本地和进行交互的另一方客户端,通过数据加密保证离链事务数据的安全性,通过双签名机制保证离链事务数据的完整性;
(2)离链事务数据的可验证上链:采用默克尔哈希树和双签名机制作为基本框架,将离链事务数据显式地一式两份和隐式地一式多份存储于多个离链用户客户端。任一拥有显式离链事务数据的客户端重新加入区块链网络后,经过共识节点的交叉验证,即可实现离链事务数据的可验证上链操作;
(3)离链历史事务数据依赖验证与审计:使用基于密文策略属性加密作为事务数据的加密机制,可以将敏感数据以密文的形式在客户端安全存储,并根据离链用户的固有属性不同,为事务数据设定细粒度的访问控制,支持离链用户对离链事务数据依赖关系的查询、验证与审计。
在所述方法中,默克尔哈希树和双签名机制确保离链事务数据不可篡改,数据上链过程的交叉验证确保数据一致性,密文策略属性加密实现对事务数据的细粒度访问控制,实现对同一离链用户的历史依赖事务数据验证,支持事务依赖关系更为复杂的领域。
本发明能够在计算机数据协商等更多领域,为使用者提供可靠的事务数据交互方法。
附图说明
本发明有如下附图:
图1为本发明的框架示意图。
图2为本发明的各个模块的原理示意图。
具体实施方式
为了便于本领域普通技术人员对本发明的理解和实施,下面结合附图及实施例对本发明作进一步详细描述。应当理解,此处所描述的实施例仅用于说明和解释本发明,并不用于限定本发明。
请见图1,本发明提供的一种数据上链可验证的区块链离链数据交互系统,在本实施例中,主要包括可信注册机构、可信签证机构、共识节点和客户端;
所述可信注册机构是一个可信第三方机构,与可信签证机构共同完成对客户端的注册和签证过程;当新的客户端加入区块链网络时,可信注册机构负责对客户端注册。客户端注册的内容包括客户端真实身份与客户端假名;
所述可信签证机构是一个可信第三方机构,与可信注册机构共同完成对客户端的注册和签证过程;当新的客户端完成在可信注册机构的客户端注册后,可信签证机构需要根据客户端真实身份和客户端假名,为客户端颁发客户端公钥和客户端私钥;
所述共识节点是区块链网络中负责共识和维护区块链数据一致性的节点;共识节点必须要实时运行在区块链网络中,收集客户端发送给共识节点的事务数据项或者离链事务列表,经过事务规则验证和共识,将这些数据打包成一致的新区块,并记录到区块链上;
所述客户端是区块链网络中进行事务数据交互的最小单位,包括链上客户端和离链客户端;
所述链上客户端指能够将客户端产生的事务数据实时发送给共识节点的客户端;
所述离链客户端指无法将客户端产生的事务数据实时发送给共识节点的客户端,包括事务发起方和事务接收方;
所述事务发起方是离链运行协议中发起事务数据交互的一方,负责构造事务数据和事务数据密文,认证事务接收方产生的待认证数据项,并维护、更新事务数据列表、事务数据哈希列表、数据认证列表和数据认证备份列表;
所述事务接收方是离链运行协议中接收事务数据的一方,负责验证事务数据和事务数据密文,完成或者监督完成事务数据中陈述的事务具体内容,认证事务发起方产生的待认证数据项,并维护、更新事务数据列表、事务数据哈希列表、数据认证列表和数据认证备份列表;
请见图2,本发明提供的一种数据上链可验证的区块链离链数据交互方法,在本实施例中,主要包括系统初始化、客户端注册及认证、数据交互、数据认证和数据上链。
所述系统初始化,用于生成所述系统公共参数、系统公钥、系统私钥、密文策略属性加密公钥和密文策略属性加密主密钥。具体过程为:
首先,可信签证机构输入安全参数1λ,输出系统公共参数ppsig,如ppsig←setup(1λ);
然后,可信签证机构输入系统公共参数ppsig,输出系统公钥pkCA和系统私钥skCA,如{pkCA,skCA}←keygen(ppsig)。
最后,可信签证机构输入安全参数1λ,输出密文策略属性加密公钥PK和密文策略属性加密主密钥MK,如{PK,MK}←setupAtt(1λ)。
所述客户端注册及认证,用于生成事务发起方公钥、事务发起方私钥、事务发起方解密私钥、事务发起方公钥证书、事务接收方公钥、事务接收方私钥、事务接收方解密私钥、事务接收方公钥证书。具体过程为:
在事务发起方一侧,事务发起方输入系统公共参数ppsig、事务发起方假名psesend和事务发起方真实身份IDsend,输出事务发起方公钥pksend和事务发起方私钥sksend,如{pksend,sksend}←keygenSign(ppsig,psesend,IDsend);
可信注册机构输入事务发起方假名psesend和事务发起方真实身份IDsend,验证事务发起方真实身份,验证事务发起方假名是否唯一,如0,1←verify(psesend,IDsend);
可信注册机构向可信签证机构请求颁发事务发起方证书,过程如下:
首先,可信签证机构接收到可信注册机构为事务发起方提出的颁证请求后,输入事务发起方真实身份IDsend、事务发起方假名psesend、密文策略属性加密主密钥MK和属性集合S,输出密文策略属性加密的事务发起方解密私钥,如SKsend←keygenAtt(MK,S,psesend,IDsend);属性集合是由用户属性组成的集合,例如,用户属性可以包括用户名称、工作单位、权限等等。
然后,可信签证机构接收到可信注册机构为事务发起方提出的颁证请求后,输入事务发起方假名psesend和事务发起方公钥pksend,输出事务发起方公钥证书Certsend,如σCA,send←sign(CRH(pksend,psesend),skCA)和Certsend:={σCA,send,pksend,psesend};
最后,可信签证机构通过可信注册机构将事务发起方公钥证书Certsend和事务发起方解密私钥返回给事务发起方;
在事务接收方一侧,事务接收方输入系统公共参数ppsig、事务接收方假名psereceive和事务接收方真实身份IDreceive,输出事务接收方公钥pkreceive和事务接收方私钥skreceive,如{pkreceive,skreceive}←keygenSign(ppsig,psereceive,IDreceive);
可信注册机构输入事务接收方假名psereceive和事务接收方真实身份IDreceive,验证事务接收方真实身份,验证事务接收方假名是否唯一,如0,1←verify(psereceive,IDreceive);
可信注册机构向可信签证机构请求颁发事务接收方证书,过程如下:
首先,可信签证机构接收到可信注册机构为事务接收方提出的颁证请求后,输入事务接收方真实身份IDreceive、事务接收方假名psereceive、密文策略属性加密主密钥MK和属性集合S,输出密文策略属性加密的事务接收方解密私钥,如SKreceive←keygenAtt(MK,S,psereceive,IDreceive);
然后,可信签证机构接收到可信注册机构为事务接收方提出的颁证请求后,输入事务接收方假名psereceive和事务接收方公钥pkreceive,输出事务接收方公钥证书Certreceive,如σCA,receive←sign(CRH(pkreceive,psereceive),skCA)和Certreceire:={σCA,receive,pkreceive,psereceive};
最后,可信签证机构通过可信注册机构将事务接收方公钥证书Certreceive和事务接收方解密私钥返回给事务接收方;
所述数据交互,用于记录事务发起方和事务接收方进行事务数据交互的结果,生成事务数据列表和事务数据哈希列表。(数据交互适用于有网或无网环境,当客户端离网时,需面对面进行数据交互。)
数据交互具体过程为:
在事务发起方一侧,事务发起方生成需要与事务接收方交互的事务数据,依据与该项事务有关的客户端身份,制定属性加密的密文策略T,并使用密文策略属性加密主密钥MK将事务数据加密为事务密文CT,如CT←encAtt(MK,Tra,T);
事务发起方将假名pse、事务密文CT和时间戳timestamp组成事务数据交互请求Excreq的事务具体内容,并发送给事务接收方,如Excreq:={pse,CT,timestamp};
在事务接收方收到来自事务发起方的事务数据交互请求后,事务接收方使用事务接收方解密私钥对事务数据交互请求中的事务密文CT进行解密,得到明文下的事务数据Tra,如Tra←decAtt((CT,SKreceive);
事务发起方和事务接收方执行事务数据交互请求中事务的具体内容,当事务在场景中完成后,事务发起方和事务接收方分别将本次进行事务数据交互的事务数据Tra记入各自的事务数据列表TL中。详细地讲,事务发起方将该项事务数据记入其自身拥有的本地事务数据列表,并增加相应的事务数据项索引值事务发起方的事务数据列表由TLsend,pre更新为TLsend。同样地,事务接收方将该项事务数据记入其自身拥有的本地事务数据列表,并增加相应的事务数据项索引值事务接收方的事务数据列表由TLreceive,pre更新为TLreceive。如,事务发起方执行事务接收方执行
事务结束后,在事务发起方一侧,事务发起方根据更新后的事务数据列表TL,更新本地维护的事务数据哈希列表THLsend,如THLsend←updateTHL(THLsendpre,TLsend)。事务发起方计算新增事务数据项的哈希值THsend,并将这个哈希值作为哈希树的新增叶节点,加入事务数据哈希列表的默克尔哈希树中,得到新的默克尔哈希树根节点新增事务数据项的哈希值THsend、新的默克尔哈希树根节点和新增事务数据项索引值被事务发起方记入其本地维护的事务数据哈希列表中,更新后得到事务数据哈希列表THLsend。其中,默克尔哈希树的第一个叶节点为事务发送方在离链前记录的最后一个区块哈希值,此时默克尔哈希树根节点为本身,即其对应的事务数据哈希列表索引值为0,即但不存在对应的事务数据项。如,事务发起方计算新增数据项哈希值更新默克尔哈希树根节点最后更新事务数据哈希列表
同时,在事务接收方一侧,事务接收方根据更新后的事务数据列表TL,更新本地维护的事务数据哈希列表THLreceive,如THLreceive←updateTHL(THLreceive,preTLreceive)。事务接收方计算新增事务数据项的哈希值THreceive,并将这个哈希值作为哈希树的新增叶节点,加入事务数据哈希列表的默克尔哈希树中,得到新的默克尔哈希树根节点新增事务数据项的哈希值THreceive、新的默克尔哈希树根节点和新增事务数据项索引值被事务发起方记入其本地维护的事务数据哈希列表中,更新后得到事务数据哈希列表THLreceive。其中,默克尔哈希树的第一个叶节点为事务接收方在离链前记录的最后一个区块哈希值,此时默克尔哈希树根节点为本身,即其对应的事务数据哈希列表索引值为0,即但不存在对应的事务数据项。如,事务接收方计算新增数据项哈希值 更新默克尔哈希树根节点最后更新事务数据哈希列表
所述数据认证,用于对事务数据历史进行双签名。具体过程为:
最后,事务发起方发送待认证数据项给事务接收方;
最后,事务接收方发送待认证数据项给事务发送方;
然后,事务发起方使用事务发起方私钥sksend对接收到的待认证数据项进行签名,进行签名的内容需要包括事务接收方发起签名请求的待认证的事务数据项索引值(该索引值与事务接收方本次产生的事务数据项在事务数据列表和事务数据哈希列表中的索引值相同)、事务接收方的事务数据哈希列表THLreceive、事务接收方事务数据哈希列表对应的默克尔哈希树根节点和事务接收方对本次待认证数据项的签名σreceive,如
接着,事务发起方将上述数据(包括事务接收方发起签名请求的待认证的事务数据项索引值事务接收方的事务数据哈希列表THLreceive、事务接收方事务数据哈希列表对应的默克尔哈希树根节点和事务接收方对本次待认证数据项的签名σreceive)和签名σ′send组成认证回复Cerreceive,rep,并回复给事务接收方,如
然后,事务接收方使用事务接收方私钥skreceive对接收到的待认证数据项进行签名,进行签名的内容需要包括事务发起方发起签名请求的待认证的事务数据项索引值(该索引值与事务发起方本次产生的事务数据项在事务数据列表和事务数据哈希列表中的索引值相同)、事务发起方的事务数据哈希列表THLsend、事务发起方事务数据哈希列表对应的默克尔哈希树根节点和事务发起方对本次待认证数据项的签名σsend,如
接着,事务接收方将上述数据(包括事务接收方发起签名请求的待认证的事务数据项索引值事务接收方的事务数据哈希列表THLsend、事务接收方事务数据哈希列表对应的默克尔哈希树根节点和事务接收方对本次待认证数据项的签名σsend)和签名σ′receive组成认证回复,如
所述数据上链,用于离链客户端接入共识节点或其他链上客户端之后的数据一致上链。具体过程为:
事务发起方和/或事务接收方将本地维护的事务数据列表TLsend/TLreceive、事务数据哈希列表THLsend/THLreceive、数据认证列表CLsend/CLreceive和数据认证备份列表CSLsend/CSLreceive发送给共识节点;
共识节点将本次收到的事务数据(事务发起方和/或事务接收方本地维护的事务数据列表、事务数据哈希列表、数据认证列表和数据认证备份列表)与其余客户端发送的事务数据进行交叉验证,事务数据相同、哈希值相同、签名合法且索引值相同的事务数据被认为是通过验证的数据,共识节点将通过验证的数据打包成新区块,经过共识算法上链。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的实质和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的保护范围。
本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
Claims (10)
1.一种数据上链可验证的区块链离链数据交互系统,其特征在于,包括:可信注册机构、可信签证机构、共识节点和客户端;
所述可信注册机构是一个可信第三方机构,与可信签证机构共同完成对用户的注册和签证过程;
所述可信签证机构是一个可信第三方机构,与可信注册机构共同完成对用户的注册和签证过程;
所述共识节点是区块链网络中负责共识和维护区块链数据一致性的节点;共识节点实时运行在区块链网络中,收集客户端发送给节点的事务数据或者离链事务列表,经过事务规则验证和共识,将这些数据打包成一致的新区块,并记录到区块链上;
所述客户端是区块链网络中进行事务数据交互的最小单位,包括链上客户端和离链客户端;所述链上客户端指能够将客户端产生的事务数据实时发送给共识节点的客户端;所述离链客户端指无法将客户端产生的事务数据实时发送给共识节点的客户端,包括事务发起方和事务接收方。
2.如权利要求1所述的数据上链可验证的区块链离链数据交互系统,其特征在于:所述事务发起方是离链运行协议中发起事务数据交互的一方,负责构造事务数据和事务数据密文,认证事务接收方产生的待认证数据项,并维护、更新事务数据列表、事务数据哈希列表、数据认证列表和数据认证备份列表;
所述事务接收方是离链运行协议中接收事务数据的一方,负责验证事务数据和事务数据密文,完成或者监督完成事务数据中陈述的事务具体内容,认证事务发起方产生的待认证数据项,并维护、更新事务数据列表、事务数据哈希列表、数据认证列表和数据认证备份列表。
3.如权利要求1所述的数据上链可验证的区块链离链数据交互系统,其特征在于:当新的客户端加入区块链网络时,可信注册机构负责对客户端注册;客户端注册的内容包括客户端真实身份与客户端假名;
当新的客户端完成在可信注册机构的客户端注册后,可信签证机构根据客户端真实身份和客户端假名,为客户端颁发客户端公钥和客户端私钥。
4.一种数据上链可验证的区块链离链数据交互方法,使用权利要求1-3任一所述的系统,其特征在于,包括如下步骤:
系统初始化、客户端注册及认证、数据交互、数据认证和数据上链;
系统初始化用于生成系统公共参数、系统公钥、系统私钥、密文策略属性加密公钥和密文策略属性加密主密钥;
客户端注册及认证用于生成事务发起方公钥、事务发起方私钥、事务发起方解密私钥、事务发起方公钥证书、事务接收方公钥、事务接收方私钥、事务接收方解密私钥和事务接收方公钥证书;
数据交互用于记录事务发起方和事务接收方进行事务数据交互的结果,生成事务数据列表和事务数据哈希列表;
数据认证用于对事务数据历史进行双签名;
数据上链用于离链客户端接入共识节点或链上客户端的数据一致上链。
5.如权利要求4所述的数据上链可验证的区块链离链数据交互方法,其特征在于,系统初始化具体过程为:首先,可信签证机构输入安全参数1λ,输出系统公共参数ppsig;然后,可信签证机构输入系统公共参数ppsig,输出系统公钥pkCA和系统私钥skCA;最后,可信签证机构输入安全参数1λ,输出密文策略属性加密公钥PK和密文策略属性加密主密钥MK。
6.如权利要求5所述的数据上链可验证的区块链离链数据交互方法,其特征在于,客户端注册及认证具体过程为:
在事务发起方一侧,事务发起方输入系统公共参数ppsig、事务发起方假名psesend和事务发起方真实身份IDsend,输出事务发起方公钥pksend和事务发起方私钥sksend;
可信注册机构输入事务发起方假名psesend和事务发起方真实身份IDsend,验证事务发起方真实身份,验证事务发起方假名是否唯一;
可信注册机构向可信签证机构请求颁发事务发起方证书,过程如下:
首先,可信签证机构接收到可信注册机构为事务发起方提出的颁证请求后,输入事务发起方真实身份IDsend、事务发起方假名psesend、密文策略属性加密主密钥MK和属性集合S,输出密文策略属性加密的事务发起方解密私钥;
然后,可信签证机构接收到可信注册机构为事务发起方提出的颁证请求后,输入事务发起方假名psesend和事务发起方公钥pksend,输出事务发起方公钥证书Certsend;
最后,可信签证机构通过可信注册机构将事务发起方公钥证书Certsend和事务发起方解密私钥返回给事务发起方;
在事务接收方一侧,事务接收方输入系统公共参数ppsig、事务接收方假名psereceive和事务接收方真实身份IDreceive,输出事务接收方公钥pkreceive和事务接收方私钥skreceive;
可信注册机构输入事务接收方假名psereceive和事务接收方真实身份IDreceive,验证事务接收方真实身份,验证事务接收方假名是否唯一;
可信注册机构向可信签证机构请求颁发事务接收方证书,过程如下:
首先,可信签证机构接收到可信注册机构为事务接收方提出的颁证请求后,输入事务接收方真实身份IDreceive、事务接收方假名psereceive、密文策略属性加密主密钥MK和属性集合S,输出密文策略属性加密的事务接收方解密私钥;
然后,可信签证机构接收到可信注册机构为事务接收方提出的颁证请求后,输入事务接收方假名psereceive和事务接收方公钥pkreceive,输出事务接收方公钥证书Certreceive;
最后,可信签证机构通过可信注册机构将事务接收方公钥证书Certreceive和事务接收方解密私钥返回给事务接收方。
7.如权利要求6所述的数据上链可验证的区块链离链数据交互方法,其特征在于:所述属性集合是由用户属性组成的集合,用户属性包括用户名称、工作单位和权限。
8.如权利要求6所述的数据上链可验证的区块链离链数据交互方法,其特征在于,数据交互具体过程为:
在事务发起方一侧,事务发起方生成需要与事务接收方交互的事务数据,依据与该项事务有关的客户端身份,制定属性加密的密文策略T,并使用密文策略属性加密主密钥MK将事务数据加密为事务密文;
事务发起方将假名pse、事务密文CT和时间戳timestamp组成事务数据交互请求;
在事务接收方收到来自事务发起方的事务数据交互请求后,事务接收方使用事务接收方解密私钥对事务数据交互请求中的事务密文CT进行解密,得到明文下的事务数据Tra;
事务发起方和事务接收方执行事务数据交互请求中事务的具体内容,当事务在场景中完成后,事务发起方和事务接收方分别将本次进行事务数据交互的事务数据Tra记入各自的事务数据列表TL中;具体地,事务发起方将该项事务数据记入其自身拥有的本地事务数据列表,并增加相应的事务数据项索引值事务发起方的事务数据列表由TLsend,pre更新为TLsend;同样地,事务接收方将该项事务数据记入其自身拥有的本地事务数据列表,并增加相应的事务数据项索引值事务接收方的事务数据列表由TLreceive,pre更新为TLreceive;
事务结束后,在事务发起方一侧,事务发起方根据更新后的事务数据列表TL,更新本地维护的事务数据哈希列表THLsend;事务发起方计算新增事务数据项的哈希值THsend,并将这个哈希值作为哈希树的新增叶节点,加入事务数据哈希列表的默克尔哈希树中,得到新的默克尔哈希树根节点新增事务数据项的哈希值THsend、新的默克尔哈希树根节点和新增事务数据项索引值被事务发起方记入其本地维护的事务数据哈希列表中,更新后得到事务数据哈希列表THLsend;其中,默克尔哈希树的第一个叶节点为事务发送方在离链前记录的最后一个区块哈希值,此时默克尔哈希树根节点为本身;其对应的事务数据哈希列表索引值为0,但不存在对应的事务数据项;
同时,在事务接收方一侧,事务接收方根据更新后的事务数据列表TL,更新本地维护的事务数据哈希列表THLreceive;事务接收方计算新增事务数据项的哈希值THreceive,并将这个哈希值作为哈希树的新增叶节点,加入事务数据哈希列表的默克尔哈希树中,得到新的默克尔哈希树根节点新增事务数据项的哈希值THreceive、新的默克尔哈希树根节点和新增事务数据项索引值被事务发起方记入其本地维护的事务数据哈希列表中,更新后得到事务数据哈希列表THLreceive;其中,默克尔哈希树的第一个叶节点为事务接收方在离链前记录的最后一个区块哈希值,此时默克尔哈希树根节点为本身;其对应的事务数据哈希列表索引值为0,但不存在对应的事务数据项。
9.如权利要求8所述的数据上链可验证的区块链离链数据交互方法,其特征在于,所述数据认证的具体过程为:
最后,事务发起方发送待认证数据项给事务接收方;
最后,事务接收方发送待认证数据项给事务发送方;
然后,事务发起方使用事务发起方私钥sksend对接收到的待认证数据项进行签名,进行签名的内容需要包括事务接收方发起签名请求的待认证的事务数据项索引值、事务接收方的事务数据哈希列表THLreceive、事务接收方事务数据哈希列表对应的默克尔哈希树根节点和事务接收方对本次待认证数据项的签名σreceive;
接着,事务发起方将事务接收方发起签名请求的待认证的事务数据项索引值事务接收方的事务数据哈希列表THLreceive、事务接收方事务数据哈希列表对应的默克尔哈希树根节点和事务接收方对本次待认证数据项的签名σreceive和签名σ′send组成认证回复Cerreceive,rep,并回复给事务接收方;
然后,事务接收方使用事务接收方私钥skreceive对接收到的待认证数据项进行签名,进行签名的内容需要包括事务发起方发起签名请求的待认证的事务数据项索引值、事务发起方的事务数据哈希列表THLsend、事务发起方事务数据哈希列表对应的默克尔哈希树根节点和事务发起方对本次待认证数据项的签名σsend;
接着,事务接收方将事务接收方发起签名请求的待认证的事务数据项索引值事务接收方的事务数据哈希列表THLsend、事务接收方事务数据哈希列表对应的默克尔哈希树根节点和事务接收方对本次待认证数据项的签名σsend和签名σ′receive组成认证回复Cersend,rep;
在事务发起方收到来自事务接收方的认证回复后,事务发起方验证事务接收方认证回复中的事务接收方签名σ'receive;
然后,事务发起方将通过签名验证的认证回复构造为已认证数据项,并记入数据认证列表CLsend;
在事务接收方收到来自事务发送方的认证回复后,事务接收方验证事务发起方认证回复中的事务发起方签名σ′send;
然后,事务接收方将通过签名验证的认证回复构造为已认证数据项,并记入数据认证列表CLreceive。
10.如权利要求9所述的数据上链可验证的区块链离链数据交互方法,其特征在于,所述数据上链的具体过程为:
事务发起方和/或事务接收方将本地维护的事务数据列表、事务数据哈希列表、数据认证列表和数据认证备份列表发送给共识节点;
共识节点将本次收到的事务数据与其余客户端发送的事务数据进行交叉验证,事务数据相同、哈希值相同、签名合法且索引值相同的事务数据被认为是通过验证的数据,共识节点将通过验证的数据打包成新区块,经过共识算法上链。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110622069.8A CN113449032B (zh) | 2021-06-03 | 2021-06-03 | 一种数据上链可验证的区块链离链数据交互系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110622069.8A CN113449032B (zh) | 2021-06-03 | 2021-06-03 | 一种数据上链可验证的区块链离链数据交互系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113449032A true CN113449032A (zh) | 2021-09-28 |
CN113449032B CN113449032B (zh) | 2024-02-09 |
Family
ID=77810680
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110622069.8A Active CN113449032B (zh) | 2021-06-03 | 2021-06-03 | 一种数据上链可验证的区块链离链数据交互系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113449032B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107480559A (zh) * | 2017-08-25 | 2017-12-15 | 北京中星仝创科技有限公司 | 一种区块链离链数据的安全存储系统及方法 |
CN107566360A (zh) * | 2017-08-25 | 2018-01-09 | 北京中星仝创科技有限公司 | 一种数据认证码的生成方法 |
KR101841929B1 (ko) * | 2016-11-02 | 2018-03-27 | 주식회사 코인플러그 | 머클트리 구조를 사용하여, 문서를 오프라인으로 발행하며 발행된 오프라인 문서에 대한 인증을 수행하는 방법 및 이를 이용한 서버 |
CN110276613A (zh) * | 2019-06-20 | 2019-09-24 | 卓尔智联(武汉)研究院有限公司 | 基于区块链的数据处理装置、方法及计算机可读存储介质 |
CN110381075A (zh) * | 2019-07-26 | 2019-10-25 | 烨链(上海)科技有限公司 | 基于区块链的设备身份认证方法和装置 |
CN111291420A (zh) * | 2020-01-21 | 2020-06-16 | 国家市场监督管理总局信息中心 | 一种基于区块链的分布式离链数据存储方法 |
-
2021
- 2021-06-03 CN CN202110622069.8A patent/CN113449032B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101841929B1 (ko) * | 2016-11-02 | 2018-03-27 | 주식회사 코인플러그 | 머클트리 구조를 사용하여, 문서를 오프라인으로 발행하며 발행된 오프라인 문서에 대한 인증을 수행하는 방법 및 이를 이용한 서버 |
CN107480559A (zh) * | 2017-08-25 | 2017-12-15 | 北京中星仝创科技有限公司 | 一种区块链离链数据的安全存储系统及方法 |
CN107566360A (zh) * | 2017-08-25 | 2018-01-09 | 北京中星仝创科技有限公司 | 一种数据认证码的生成方法 |
CN110276613A (zh) * | 2019-06-20 | 2019-09-24 | 卓尔智联(武汉)研究院有限公司 | 基于区块链的数据处理装置、方法及计算机可读存储介质 |
CN110381075A (zh) * | 2019-07-26 | 2019-10-25 | 烨链(上海)科技有限公司 | 基于区块链的设备身份认证方法和装置 |
CN111291420A (zh) * | 2020-01-21 | 2020-06-16 | 国家市场监督管理总局信息中心 | 一种基于区块链的分布式离链数据存储方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113449032B (zh) | 2024-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7844816B2 (en) | Relying party trust anchor based public key technology framework | |
CN108768933B (zh) | 一种区块链平台上自主可监管数字身份认证系统 | |
CN109963282B (zh) | 在ip支持的无线传感网络中的隐私保护访问控制方法 | |
US20220094542A1 (en) | Methods and devices for public key management using a blockchain | |
JPH11289329A (ja) | 認証形サ―チ・ツリ― | |
CN111970299A (zh) | 基于区块链的分布式物联网设备身份认证装置和方法 | |
CN109687965A (zh) | 一种保护网络中用户身份信息的实名认证方法 | |
CN105516119A (zh) | 基于代理重签名的跨域身份认证方法 | |
CN112311538A (zh) | 一种身份验证的方法、装置、存储介质及设备 | |
CN113228560B (zh) | 用于发行的发行设备和方法以及用于请求数字证书的请求设备和方法 | |
CN114154125B (zh) | 云计算环境下区块链无证书的身份认证方案 | |
CN115174091B (zh) | 一种面向分布式数字身份的同态加密隐私保护方法 | |
CN100581098C (zh) | 创建拥有确认证明的方法和系统 | |
CN112565294B (zh) | 一种基于区块链电子签名的身份认证方法 | |
CN115102695A (zh) | 基于区块链的车联网证书认证方法 | |
Gulati et al. | Self-sovereign dynamic digital identities based on blockchain technology | |
CN114938280A (zh) | 一种基于非交互零知识证明与智能合约的认证方法及系统 | |
CN114091009A (zh) | 利用分布式身份标识建立安全链接的方法 | |
Liou et al. | T-auth: A novel authentication mechanism for the IoT based on smart contracts and PUFs | |
Lim et al. | A V2X access authorization mechanism based on decentralized ID (DID) and verifiable credentials (VC) | |
CN112968779A (zh) | 一种安全认证与授权控制方法、控制系统、程序存储介质 | |
CN117094825A (zh) | 一种基于区块链的跨链可信土地交易系统及方法 | |
Dumas et al. | LocalPKI: An interoperable and IoT friendly PKI | |
CN116506118A (zh) | 一种pki证书透明化服务中身份隐私性保护方法 | |
CN116232732A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |