CN113421160B - 一种基于区块链的交易追踪溯源方法 - Google Patents
一种基于区块链的交易追踪溯源方法 Download PDFInfo
- Publication number
- CN113421160B CN113421160B CN202110684154.7A CN202110684154A CN113421160B CN 113421160 B CN113421160 B CN 113421160B CN 202110684154 A CN202110684154 A CN 202110684154A CN 113421160 B CN113421160 B CN 113421160B
- Authority
- CN
- China
- Prior art keywords
- transaction
- block
- key
- tracing
- request
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- 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
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Finance (AREA)
- General Engineering & Computer Science (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Medical Informatics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种基于区块链的交易追踪溯源方法,包括:向溯源系统提交交易:S1、客户端向溯源系统提交交易请求;S2、溯源系统执行交易请求,将交易记录打包发送给共识结点;S3、共识结点将当前的交易记录打包成一个区块,通过广播将新生成的由共识结点签名的区块发送给各个记账结点;S4、在本地保存区块,并更新本地的数据库;通过交易溯源系统对交易追踪溯源:T1、客户端向区块链系统发起对某个交易的溯源请求;T2、溯源系统执行客户端发起的溯源请求;T3、在区块中检索溯源交易的历史数据;T4、将结果打包返回给客户端,整个交易溯源过程结束。本发明利用区块链的不可篡改的特性,增强了系统的健壮性,能够保证系统中数据的存储与溯源的可靠性。
Description
技术领域
本发明属于区块链技术领域,尤其涉及分布式数据存储,具体涉及一种基于区块链的交易追踪溯源方法。
背景技术
随着市场经济的壮大,互联网技术的增强,市场经济与互联网结合的应用场景也越来越多。为了确保规模庞大,结构复杂的市场经济活动健康有序进行,各级政府部门一直都积极关注。从政策制定到政策落实,投入了大量的人力物力,努力确保与互联网技术结合的市场经济健康发展。而在市场经济活动中,对交易行为进行追踪溯源监管是重中之重。
即使是在已经实现了监管的经济活动中,各种交易行为造假的情况也层出不穷,出现这种状况的原因就是现有技术手段不足,使得造假分子利用信息的不对称而造假成为了可能。在造假案例中,比较典型的就是产地造假,原料造假,证书造假等,这些造假之所以能够成功,就是因为信息的溯源检测比较困难,而区块链技术让破解这些困难成为了可能。
区块链技术利用分布式系统的共识机制和密码学技术实现了数据的不可篡改性。并且区块链具有的去中心化特性,和数据的透明性进一步的保证了区块链中保存的数据的真实性与可靠性。
发明内容
本发明要解决的技术问题是提供一种基于区块链的交易追踪溯源方法,在区块链系统中实现对历史数据的追踪溯源。包括减轻区块链系统的存储压力,减少对历史数据溯源过程中的时空复杂度,达到使系统更加轻量、易行的目的。
为解决上述技术问题,本发明的实施例提供一种基于区块链的交易追踪溯源方法,包括向交易溯源系统提交交易和通过交易溯源系统对交易追踪溯源两个步骤,其中,
所述向溯源系统提交交易包括如下步骤:
S1、客户端向溯源系统提交交易请求;
S2、溯源系统验证请求的合法性并执行客户端发起的交易请求,然后将交易记录打包发送给共识结点;
S3、溯源系统中的共识结点将当前的交易记录打包成一个区块,然后对区块签名,之后在区块链网络中,通过广播将新生成的由共识结点签名的区块发送给各个记账结点;
S4、记账结点在验证区块的合法性以后,在本地保存区块,并更新本地的数据库;
所述通过交易溯源系统对交易追踪溯源包括如下步骤:
T1、客户端向区块链系统发起对某个交易的溯源请求;
T2、溯源系统验证请求的合法性并执行客户端发起的溯源请求;
T3、溯源系统中的记账结点验证本地保存的区块正确性以后,在区块中检索溯源交易的历史数据;
T4、将步骤T3中查询到的一系列结果打包返回给客户端,整个交易溯源过程结束。
其中,步骤S1中,客户端提交的交易请求的执行结果包含读取溯源系统中的键值对和向溯源系统写入键值对;客户端对交易请求签名,然后将交易请求、签名信息和公钥证书打包发送给溯源系统中的记账结点。
客户端的公钥证书由证书颁发机构(CA)颁发,通过证书可以保证客户端具有合法身份,可以确保被系统准入的用户才拥有向系统提交交易请求和溯源请求的权力。
其中,步骤S2中溯源系统执行客户端发起的交易请求的步骤为:
S2.1、溯源系统首先验证客户端提交的交易请求的合法性,如果验证通过就执行请求,否则拒绝执行;
S2.2、如果交易的执行结果是读取区块链系统中的键值对,系统中不会增加交易记录,如果交易的执行结果是向区块链系统写入键值对,系统中会增加交易记录。
进一步,如果客户端提交的交易请求是查询溯源系统中的键值对,那么在对客户端进行的身份验证通过以后,直接返回相应的查询结果,这种查询请求不会对溯源请求的状态产生改变。
如果客户端提交的交易请求会对溯源系统的状态产生改变,那么溯源系统会将这种改变作为一条交易打包进新产生的区块。在这种情况下,客户端提交的交易会产生三种结果,在溯源系统中新增加键值对,修改原有的键值对,删除原有的键值对。
如果客户端提交的交易请求是向溯源系统中新增加键值对,那么键值包含的内容为交易的有效载荷,它的前驱高度为0,因为高度为0的区块时创世区块,它不包含任何交易,所以将新创建的交易的前驱高度设置0表示该交易是新创建到区块链系统中的,它没有更早的历史状态。同时将键值对的当前高度设置为当前的区块高度,用来定位键值对当前所处的状态保存到哪一个区块中。
如果客户端提交的交易请求是更改溯源系统中的键值对,那么在设置了键的新的键值以后,将键值对的前驱高度设置键值对之前保存的当前高度,同时将键值对的当前高度保存为区块链系统的当前高度。
如果客户端提交的交易请求是删除溯源系统中的键值对,那么我们需要将键值对的当前高度保存为区块链系统的当前高度。同时将删除键值对的交易标注出来,便于和普通交易区分。
其中,步骤S3中,溯源系统的共识结点将系统中现存的交易打包成一个区块,区块头包含前一个区块的Hash值,当前区块的Hash值,以及区块高度,区块体包含两个区域,一个区域是保存了所有交易的实体,另一个区域保存了被删除键值对的指针,他们指向被删除键值对在实体区对应的具体交易,这样做一方面便于记账结点在接收到区块以后能快速检查区块中是否存在删除键值对的交易(检查删除区是否为空),另一方面只保存了交易的一份实体,减轻了系统的存储压力和区块链网络传输压力。
其中,步骤S4的具体步骤为:记账结点在验证区块的合法性以后,首先提取区块的头部,将头部存入区块链系统中;然后获取头部本区块的哈希值作为键,整个区块作为值保存到本地数据库中;再然后查询区块中是否有删除键值对的交易,如果有,就将这一条交易保存到历史数据库中。
进一步,各个记账结点在接收到来自共识结点分发的区块以后,首先对区块进行验证,第一步验证共识结点的签名是否合法,第二步提取出区块头,检查区块头中的前一个区块的Hash值是否和本地区块链上的最后一个区块的Hash值相等,如果都验证通过,说明这是一个合法的正确的区块。记账结点将区块头连接在本地区块链的最末端,将区块体保存到本地的KV数据库,键为区块的Hash值,值为区块体。将区块头和区块体分开保存实现了溯源系统的解耦,一方面减轻了系统的存储压力,另一方面减轻了系统的维护压力。当需要拷贝转储系统数据时,在网络中传输的可以仅仅是数据量较小的区块头,而区块体的数据可以通过其他便捷的方式转储。
记账结点检查区块中的删除区是否有被删除的键值对,如果有就将他们保存到本地的历史数据库中。依前文所述,删除区中保存的是指向实体区具体交易的指针,所以本系统中,记账结点本地的历史数据库中保存的也是指向区块实体区的指针。
保证了在每个记账结点中每项交易只有一份数据实体,在减轻系统的存储压力,网络的传输压力的同时还保证了较快的数据检索速度。
其中,步骤T1中,溯源请求中包含了该交易对应键值对的键,客户端对溯源请求签名,然后将请求、签名信息和公钥证书打包发送给溯源系统。
其中,对交易追踪溯源的步骤中,参与整个过程的实体有客户端,和若干个记账结点。
在客户端中,用户选择对某一个交易追踪溯源,客户端构造溯源请求并对请求签名。进一步的,将签名后的溯源请求和公钥证书发送给与客户端通信的记账结点。
其中,步骤T2中溯源系统执行客户端发起的溯源请求的步骤包括:
T2.1、溯源系统首先验证客户端提交的溯源请求的合法性,如果验证通过就执行请求,否则拒绝执行;
T2.2、溯源系统首先获取溯源请求中的键,然后在区块链网络的状态数据库中查找对应的键,如果没有找到,就继续在历史数据库中查找该键,如果仍然没有找到,说明客户端发送的请求错误,请求中包含的键不存在于区块链系统中;如果找到了请求中包含的键,获取对应的值,并从值中提取出键的前驱高度,然后在区块链系统中通过区块高度获取区块的哈希值,再然后在本地数据库中通过哈希值获取与之对应的区块;
T2.3、校验区块是否被篡改,如果校验通过,获取被查询键对应的值,转到步骤T3,如果校验不通过,说明本地数据库被篡改,需要通过区块链网络中其他可信结点更新本地数据库,然后再次执行步骤T2。
其中,步骤T3的具体步骤为:通过前驱高度获取对应的区块哈希值,然后在本地数据库中找到对应的区块并对其进行校验,校验通过后从中查找该键对应的键值对,找到以后,再次获取值以及值中的前驱高度,然后通过这个前驱高度,再去对应区块中查找键值对,一直持续到某次查询得到的前驱高度为0,说明已经查询完该键对应的所有交易记录。
具体的,在与客户端相连的记账结点中,接收来自客户端的溯源请求,将请求转交给记账结点的验证模块进行验证工作。通过验证客户端的私钥签名与公钥证书是否匹配,如果验证不通过,那么返回错误信息,溯源过程结束,如果验证通过,那么记账结点对溯源请求中包含的键对应的值的历史记录进行溯源操作。
与客户端相连的记账结点首先提取出溯源请求中的键,然后在溯源系统中查询这个键是否存在。具体的,因为在溯源系统中新创建一个交易,它的结果就是在状态数据库中增加了一个键值对,所以记账结点首先检查溯源系统的状态数据库中是否存在这个键,如果这个键存在,就找到了这个键的最新状态版本的值。如果这个键不存在于状态数据库,说明这个键值对不存在于状态数据库中。
产生两种情况:一种是这个键之前存在过,后来被删除了,另一种情况是这个键自始至终都不存在于溯源系统中。第一种情况是这个键在之前的某个时刻被删除了,但是如前文所述在提交删除键值对交易的时候,记账结点将删除的键值对保存到了本地历史数据库中,所以记账结点没有在区块链的状态数据库中找到被查询键的时候,就转到历史数据库中查找,如果找到了,就能从中获取该键值被删除之前的最新状态。第二种情况就是在历史数据库中也没有找到这个键,那么就记账结点就直接向客户端返回相应的键没有找到的错误信息就可以了。
在找到了一个键值对的最新状态以后,获取值中保存的前驱高度,这个前驱高度就是这个键值对的上一个版本所在的区块的高度。记账结点根据前驱高度在区块链中获取对应高度区块的Hash值。接着再用这个Hash作为键到本地KV数据库中查找区块。
在本地数据库中获取到区块以后,对区块的内容进行哈希运算,将运算的结果Hash值与键作比较,如果能够匹配,说明该区块是原始完整的区块,如果继续进行下一步溯源,如果不能够匹配,说明存储在本地数据库中的区块的内容被篡改了,记账结点就要更新本地数据库。
如果本地数据库中的区块被篡改了,记账结点通过P2P协议向其他处于健康状态的记账结点请求正确的区块。为了降低区块链网络传输的压力,本发明采用类似于操作系统中进程fork的写时复制方法,也就是说当前记账结点只向其他记账结点请求当前需要的区块,而不是请求所有的区块。这极大的降低了网络传输的数据量。
记账结点接收到来自其他记账结点的指定区块高度的区块以后,对区块进行验证,验证的方式就是对整个区块做Hash运算,如果Hash运算得到的Hash值与区块链上的Hash值相匹配,说明记账结点接收到了正确的区块,如果不能匹配,说明记账结点接收到了错误的区块,那么就丢弃这个区块,重新请求这个区块。
本地保存了正确的区块,记账结点就对客户端请求的键继续溯源,溯源的方式就是通过键获取保存在区块中的值,值包含了被溯源键的前一个状态所在的区块高度,通过这个前驱区块高度,继续循环上面的步骤,就能够获取这个键的所有历史数据。
当某次从区块中获取的值包含的前驱区块高度为0,说明了这一条记录是被溯源键的初始状态。
其中,步骤T4中,记账结点将整个溯源过程查找到的被溯源键的值按序打包并签名,再附上公钥证书返回给客户端。客户端验证签名信息合法就获取到了正确的溯源结果,整个溯源过程结束。
本发明的上述技术方案的有益效果如下:
1、本发明通过在区块链网络线上存储区块的区块头信息,而在线下的本地KV数据库存储区块的区块体信息,一方面让溯源系统的内部存储结构解耦,让溯源系统的健壮性和可维护性更好。另一方面区块链网络中的记账结点之间传递区块链信息只需要发送区块的区块头即可,让区块链网络的传输压力得到了极大的减轻。对于溯源系统中的非记账结点,只需要保存所有区块的区块头信息而不需要保存区块的区块体,让溯源系统的数据存储压力得到了极大的降低。
2、本发明的溯源系统中的状态数据库、历史数据库和本地数据库都是Nosql类型的数据库,他们的结构简单,能够快速存取,并且能够持久化保存。通过这三个数据库的协同作用,可以迅速定位被溯源键是否存在于系统中,以什么状态存在于系统中,并且能够迅速获取被溯源键的历史状态,从而达到对键溯源的目的。
3、本发明的溯源系统中数据分发,结点之间通信等一系列过程都完善了对数据发送者的签名和验证。数据接收者通过非可逆的Hash函数对接收到的数据进行了验证,确保了数据真实可信。因此本系统提供了安全的,可靠的交易流程和溯源流程。
4、本发明的溯源系统中只有区块的区块头进行了所有结点的完整分发,而区块的区块体只发送给了部分结点。当没有区块体的记账结点需要区块体的时候,就向保存了对应区块体的记账结点请求指定的区块体而不是所有的区块体数据。通过这种类似于操作系统写时复制的方式,在加快了区块链网络同步的速度的同时也不会降低系统的一致性,从而提高了系统的性能。
5、本发明的溯源系统一方面通过区块链网络线上的区块链结构特性保证了保存在系统中的数据的不可篡改性,另一方面通过在交易内部写入该交易前一个状态所在区块的高度,实现在区块链网络线下的隐藏的另一条逆向的溯源链。通过这一条溯源链,加快了系统定位被溯源键的所有历史数据的所在区块,从而极大的加快了溯源的操作。通过这种区块链网络线上线下协同作用的方式,本系统既保证了存储数据的安全,又提高了溯源数据的速率。
附图说明
图1为本发明的流程图。
图2为本发明实施例提供的溯源系统数据存储结构示意图;
图3为本发明实施例提供的客户端向溯源系统提交交易请求的流程图;
图4为本发明实施例提供的客户端向溯源系统提交溯源请求的流程图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
本发明提供了一种基于区块链的溯源系统,溯源系统的主要功能由三个KV数据库实现,他们分别是区块链网络的状态数据,保存被删除键值对的历史数据库以及保存完整区块数据的本地数据库,在本系统中保存的交易就是键值对,对某个交易的追踪溯源就是对某个键的值的历史记录追踪溯源。对于一个键,他的值包含两部分内容,他们分别是键值的有效载荷和这个键值对上一个状态所在的区块高度。
如图1所示,本发明还提供一种基于区块链的交易追踪溯源方法,包括向交易溯源系统提交交易和通过交易溯源系统对交易追踪溯源两个步骤,其中,
所述向溯源系统提交交易包括如下步骤:
S1、客户端向溯源系统提交交易请求;
其中,客户端提交的交易请求的执行结果包含读取溯源系统中的键值对和向溯源系统写入键值对;客户端对交易请求签名,然后将交易请求、签名信息和公钥证书打包发送给溯源系统中的记账结点。
客户端的公钥证书由证书颁发机构(CA)颁发,通过证书可以保证客户端具有合法身份,可以确保被系统准入的用户才拥有向系统提交交易请求和溯源请求的权力。
S2、溯源系统验证请求的合法性并执行客户端发起的交易请求,然后将交易记录打包发送给共识结点;
其中,每一条交易记录就是一个键值对,它的键就是该类型交易的标识符,它的值包括键值的有效载荷,该键上一次被记录在区块链系统中时的区块高度,本系统中称之为前驱高度。此外还包括该键当前最新状态所处的区块高度,本系统称之为当前高度。
步骤S2中溯源系统执行客户端发起的交易请求的步骤为:
S2.1、溯源系统首先验证客户端提交的交易请求的合法性,如果验证通过就执行请求,否则拒绝执行;
S2.2、如果交易的执行结果是读取区块链系统中的键值对,系统中不会增加交易记录,如果交易的执行结果是向区块链系统写入键值对,系统中会增加交易记录。
其中,如果客户端提交的交易请求是查询溯源系统中的键值对,那么在对客户端进行的身份验证通过以后,直接返回相应的查询结果,这种查询请求不会对溯源请求的状态产生改变。
如果客户端提交的交易请求会对溯源系统的状态产生改变,那么溯源系统会将这种改变作为一条交易打包进新产生的区块。在这种情况下,客户端提交的交易会产生三种结果,在溯源系统中新增加键值对,修改原有的键值对,删除原有的键值对。
如果客户端提交的交易请求是向溯源系统中新增加键值对,那么键值包含的内容为交易的有效载荷,它的前驱高度为0,因为高度为0的区块时创世区块,它不包含任何交易,所以将新创建的交易的前驱高度设置0表示该交易是新创建到区块链系统中的,它没有更早的历史状态。同时将键值对的当前高度设置为当前的区块高度,用来定位键值对当前所处的状态保存到哪一个区块中。
如果客户端提交的交易请求是更改溯源系统中的键值对,那么在设置了键的新的键值以后,将键值对的前驱高度设置键值对之前保存的当前高度,同时将键值对的当前高度保存为区块链系统的当前高度。
如果客户端提交的交易请求是删除溯源系统中的键值对,那么我们需要将键值对的当前高度保存为区块链系统的当前高度。同时将删除键值对的交易标注出来,便于和普通交易区分。
S3、溯源系统中的共识结点将当前的交易记录打包成一个区块,然后对区块签名,之后在区块链网络中,通过广播将新生成的由共识结点签名的区块发送给各个记账结点;
其中,溯源系统的共识结点将系统中现存的交易打包成一个区块,区块头包含前一个区块的Hash值,当前区块的Hash值,以及区块高度,区块体包含两个区域,一个区域是保存了所有交易的实体,另一个区域保存了被删除键值对的指针,他们指向被删除键值对在实体区对应的具体交易,这样做一方面便于记账结点在接收到区块以后能快速检查区块中是否存在删除键值对的交易(检查删除区是否为空),另一方面只保存了交易的一份实体,减轻了系统的存储压力和区块链网络传输压力。
S4、记账结点在验证区块的合法性以后,在本地保存区块,并更新本地的数据库;具体步骤为:记账结点在验证区块的合法性以后,首先提取区块的头部,将头部存入区块链系统中;然后获取头部本区块的哈希值作为键,整个区块作为值保存到本地数据库中;再然后查询区块中是否有删除键值对的交易,如果有,就将这一条交易保存到历史数据库中。
进一步,各个记账结点在接收到来自共识结点分发的区块以后,首先对区块进行验证,第一步验证共识结点的签名是否合法,第二步提取出区块头,检查区块头中的前一个区块的Hash值是否和本地区块链上的最后一个区块的Hash值相等,如果都验证通过,说明这是一个合法的正确的区块。记账结点将区块头连接在本地区块链的最末端,将区块体保存到本地的KV数据库,键为区块的Hash值,值为区块体。将区块头和区块体分开保存实现了溯源系统的解耦,一方面减轻了系统的存储压力,另一方面减轻了系统的维护压力。当需要拷贝转储系统数据时,在网络中传输的可以仅仅是数据量较小的区块头,而区块体的数据可以通过其他便捷的方式转储。
记账结点检查区块中的删除区是否有被删除的键值对,如果有就将他们保存到本地的历史数据库中。依前文所述,删除区中保存的是指向实体区具体交易的指针,所以本系统中,记账结点本地的历史数据库中保存的也是指向区块实体区的指针。
保证了在每个记账结点中每项交易只有一份数据实体,在减轻系统的存储压力,网络的传输压力的同时还保证了较快的数据检索速度。
所述通过交易溯源系统对交易追踪溯源包括如下步骤:
T1、客户端向区块链系统发起对某个交易的溯源请求;其中,溯源请求中包含了该交易对应键值对的键,客户端对溯源请求签名,然后将请求、签名信息和公钥证书打包发送给溯源系统。
其中,对交易追踪溯源的步骤中,参与整个过程的实体有客户端,和若干个记账结点。
在客户端中,用户选择对某一个交易追踪溯源,客户端构造溯源请求并对请求签名。进一步的,将签名后的溯源请求和公钥证书发送给与客户端通信的记账结点。
T2、溯源系统验证请求的合法性并执行客户端发起的溯源请求;
其中,溯源系统执行客户端发起的溯源请求的步骤包括:
T2.1、溯源系统首先验证客户端提交的溯源请求的合法性,如果验证通过就执行请求,否则拒绝执行;
T2.2、溯源系统首先获取溯源请求中的键,然后在区块链网络的状态数据库中查找对应的键,如果没有找到,就继续在历史数据库中查找该键,如果仍然没有找到,说明客户端发送的请求错误,请求中包含的键不存在于区块链系统中;如果找到了请求中包含的键,获取对应的值,并从值中提取出键的前驱高度,然后在区块链系统中通过区块高度获取区块的哈希值,再然后在本地数据库中通过哈希值获取与之对应的区块;
T2.3、校验区块是否被篡改,如果校验通过,获取被查询键对应的值,转到步骤T3,如果校验不通过,说明本地数据库被篡改,需要通过区块链网络中其他可信结点更新本地数据库,然后再次执行步骤T2。
T3、溯源系统中的记账结点验证本地保存的区块正确性以后,在区块中检索溯源交易的历史数据;具体步骤为:通过前驱高度获取对应的区块哈希值,然后在本地数据库中找到对应的区块并对其进行校验,校验通过后从中查找该键对应的键值对,找到以后,再次获取值以及值中的前驱高度,然后通过这个前驱高度,再去对应区块中查找键值对,一直持续到某次查询得到的前驱高度为0,说明已经查询完该键对应的所有交易记录。
具体的,在与客户端相连的记账结点中,接收来自客户端的溯源请求,将请求转交给记账结点的验证模块进行验证工作。通过验证客户端的私钥签名与公钥证书是否匹配,如果验证不通过,那么返回错误信息,溯源过程结束,如果验证通过,那么记账结点对溯源请求中包含的键对应的值的历史记录进行溯源操作。
与客户端相连的记账结点首先提取出溯源请求中的键,然后在溯源系统中查询这个键是否存在。具体的,因为在溯源系统中新创建一个交易,它的结果就是在状态数据库中增加了一个键值对,所以记账结点首先检查溯源系统的状态数据库中是否存在这个键,如果这个键存在,就找到了这个键的最新状态版本的值。如果这个键不存在于状态数据库,说明这个键值对不存在于状态数据库中。
产生两种情况:一种是这个键之前存在过,后来被删除了,另一种情况是这个键自始至终都不存在于溯源系统中。第一种情况是这个键在之前的某个时刻被删除了,但是如前文所述在提交删除键值对交易的时候,记账结点将删除的键值对保存到了本地历史数据库中,所以记账结点没有在区块链的状态数据库中找到被查询键的时候,就转到历史数据库中查找,如果找到了,就能从中获取该键值被删除之前的最新状态。第二种情况就是在历史数据库中也没有找到这个键,那么就记账结点就直接向客户端返回相应的键没有找到的错误信息就可以了。
在找到了一个键值对的最新状态以后,获取值中保存的前驱高度,这个前驱高度就是这个键值对的上一个版本所在的区块的高度。记账结点根据前驱高度在区块链中获取对应高度区块的Hash值。接着再用这个Hash作为键到本地KV数据库中查找区块。
在本地数据库中获取到区块以后,对区块的内容进行哈希运算,将运算的结果Hash值与键作比较,如果能够匹配,说明该区块是原始完整的区块,如果继续进行下一步溯源,如果不能够匹配,说明存储在本地数据库中的区块的内容被篡改了,记账结点就要更新本地数据库。
如果本地数据库中的区块被篡改了,记账结点通过P2P协议向其他处于健康状态的记账结点请求正确的区块。为了降低区块链网络传输的压力,本发明采用类似于操作系统中进程fork的写时复制方法,也就是说当前记账结点只向其他记账结点请求当前需要的区块,而不是请求所有的区块。这极大的降低了网络传输的数据量。
记账结点接收到来自其他记账结点的指定区块高度的区块以后,对区块进行验证,验证的方式就是对整个区块做Hash运算,如果Hash运算得到的Hash值与区块链上的Hash值相匹配,说明记账结点接收到了正确的区块,如果不能匹配,说明记账结点接收到了错误的区块,那么就丢弃这个区块,重新请求这个区块。
本地保存了正确的区块,记账结点就对客户端请求的键继续溯源,溯源的方式就是通过键获取保存在区块中的值,值包含了被溯源键的前一个状态所在的区块高度,通过这个前驱区块高度,继续循环上面的步骤,就能够获取这个键的所有历史数据。
当某次从区块中获取的值包含的前驱区块高度为0,说明了这一条记录是被溯源键的初始状态。
T4、将步骤T3中查询到的一系列结果打包返回给客户端,整个交易溯源过程结束。
其中,记账结点将整个溯源过程查找到的被溯源键的值按序打包并签名,再附上公钥证书返回给客户端。客户端验证签名信息合法就获取到了正确的溯源结果,整个溯源过程结束。
下面结合具体实施例和说明书附图进一步阐述本发明的技术方案。
为了在区块链网络中实现数据安全可靠存储,传输和溯源目的,本发明提供了一个轻量的基于区块链网络线上线下协同作用的数据溯源系统,包括:向区块链系统提交交易和通过区块链系统对交易追踪溯源两个步骤。
图2是本发明实施例提供的溯源系统数据存储结构示意图;图中,CA是公钥证书颁发机构,O1是共识结点,P1是与客户端连接的记账结点,Pn是其他记账结点,C1是客户端。
图3是本发明实施例提供的客户端向溯源系统提交交易请求的流程图;图中,DB10,DB20,DB30分别是系统执行完客户端提交的交易请求之前本地数据库,状态数据库和历史数据库的状态,DB11,DB21,DB31是系统执行完客户端安提交的交易请求之后三个数据库的状态。
图3是本发明实施例提供的客户端向溯源系统提交溯源请求的流程图。
客户端向溯源系统提交交易的步骤:
s1、客户端C1在本地产生公私钥对Pub和Pri,向系统的证书颁发机构CA申请客户端的公钥证书Cert。
s2、客户端C1在本地构建交易请求,包含两个键值对:(K1,V1,SET)和(K2,V2,SET)。进一步的,客户端C1用私钥Pri对这两个交易签名生成签名信息Sig,接下来,客户端C1将所有信息打包成一个请求提交给溯源系统中与客户端相连的记账结点,提交的请求为:
Proposal=((K1,V1,SET),(K2,V2,SET),Sig,Cert)。
s3、记账结点P1在本地产生公私钥Pub2和Pri2,并且向证书颁发机构申请记账结点的公钥证书Cert2。然后接收来自客户端的请求,首先通过证书颁发机构CA验证客户端的公钥证书Cert,如果验证不通过,就返回错误,如果验证通过,接着用公钥证书Cert验证请求中的签名信息Sig,然后与请求中的交易数据,也就是键值对(K1,V1),(K2,V2)作比较,如果不能匹配,说明了请求中的交易数据已经被篡改,返回错误,如果能匹配,说明这是正确的交易数据。
s4、记账结点P1执行请求中的交易,两个交易就是两个键值对,首先获取键值对的操作,发现他们的操作都是SET,也就是要在状态数据库中设置这两个键的值,然后在状态数据库中查找K1和K2,发现都不存在,说明记账结点需要在状态数据库中新创建者两个这两个键值对。
s5、记账结点P1在本地根据两个键值对创建两条交易记录, record1=(K1,V1,0,SET)和record2=(K2,V2,0,SET),并对他们进行签名,然后将records=(record1,record2,Sig2,Cert2)发送给共识结点O1进行排序。
s6、共识结点O1首先在本地生成自己的公私钥对Pub2和Pri2,然后向证书颁发机构CA申请自己的公钥证书Cert2。在接收到来自记账结点P1发送的交易记录以后,首先对签名信息进行验证,验证失败后就丢弃这些交易,验证成功后就将他们存于共识结点本地缓存中,在一定的时间以后,将尽可能多的本地缓存中的交易打包到一个新的区块中,并且在打包的每一条交易记录中记录新区块的高度H1,一次性打包交易记录的上限就是一个区块存储的最大数据量,所以打包完成的两条交易记录为:
record1=(K1,V1,0,H1,SET)和record2=(K2,V2,0,H1,SET)。
再对新区块签名block=(record1,record2,Sig2,Cert2),打包完成后,共识结点将新区块的区块头发送给所有的结点,便于系统达成一致性状态,将完整的区块发送给记账结点。然后共识结点继续产生新的区块,获取新的区块高度,打包缓存中的其他交易。
s7、记账结点验证接收的新区块中的签名信息,验证不通过就丢弃这个区块,验证通过就保留这个区块。因为需要在本地维护一个状态数据库和历史数据库,所以记账结点需要接收完整的区块。新区块中包含了键的最新状态,用它们来替换状态数据库中对应键的值。这个值为记录record(K,V,H1,H2)中的V,H1和H2。
s8、记账结点将区块头连接到本地的区块链上,然后以区块的Hash值为键,整个区块为值保存到本地数据库中。
s9、客户端C1再次在本地构建交易请求,包含两个键值对:(K1,V3,SET)和(K2,DEL)。进一步的,客户端C1用私钥Pri对这两个交易签名生成签名信息Sig,接下来,客户端C1将所有信息打包成一个请求提交给溯源系统中与客户端相连的记账结点,提交的请求为:
Proposal=((K1,V3,SET),(K2,DEL),Sig,Cert)。
s10、如步骤s3,记账结点验证客户端的签名信息以后,通过发现请求对K1的操作为SET,对K2的操作为DEL,进一步的,记账结点查询本地的状态数据库获得K1的最新状态(K1,V1,0,H1),K2的最新状态(K2,V2,0,H1),再根据客户端提交的请求创建两条交易记录record1=(K1,V3,H1,SET)和record2=(K2,H1,DEL),然后如步骤s5将交易记录打包发送给共识结点。
s11、如步骤s6,共识结点将交易记录打包到新区块中,新区块的高度为H2,交易记录为record1=(K1,V3,H1,H2,SET)和record2=(K2,H1,H2,DEL)。因为交易记录中有一条记录是删除溯源系统中的键值对,所以新区块的删除区的内容不再为空,而是保存指向区块数据实体区的record2指针,所以整个区块的结构block=(*record2|record1,record2,Sig2,Cert2)。
s12、如步骤s7,记账结点在验证了区块的合法性以后,将状态数据库中K1的值改为V3,H1,H2。然后将K2从状态数据库中删除并且在历史数据库中加入键值对(K2,H1,H2)。
s13、如步骤s8,系统更新状态数据库,本地数据库,历史数据库和区块链的数据。
s14、对于客户端对键值对进行查询的请求,因为没有修改系统中键值对的状态,所以查询操作不会对系统造成影响,记账结点只需要在状态数据库中查找对应的键将对应的值返回给客户端就可以了。
客户端对系统中的数据追踪溯源的步骤:
t1、客户端C1在本地构建溯源请求,例如包含键(K1,SEA),客户端然后使用私钥对溯源请求签名,然后将溯源请求,签名信息和客户端公钥证书打包发送给记账结点,溯源请求为:proposal=(K1,SEA,Sig,Cert)。
t2、记账结点接收到来自客户端溯源请求以后,首先验证请求的签名信息,如果签名信息不合法,就拒绝执行溯源请求,如果验证通过,就往后执行溯源操作。
t3、记账结点提取请求中的键K1,对应这个键的操作为SEA,说明这是一个对键K1的溯源操作,记账结点首先到状态数据库中查找键K1对应的值,查找到对应的值为(K1,V3,H1,H2)。
t4、从上述查询结果可以知道键K1的最新状态保存在高度为H2的区块中,然后记账结点从区块链中获取高度为H2的区块的哈希值Hash2,然后以Hash2为键到本地数据库中查找完整的区块block。
t5、记账结点验证从本地数据库中获取的区块是否真实可信。通过对整个区块做哈希运算求得哈希值Hash2’,然后对Hash2和Hash2’作比较,如果相同说明从本地数据库中获取的区块是真实可信的,如果不相同,那么就转到步骤t6,重新获取新的区块。
t6、记账结点通过P2P协议,向周围的其他记账结点请求指定高度的区块,为了减少网络传输的数据量,在这里只需要向其他记账结点请求高度为H2的区块,而不需要请求其他结点。接收到了来自其他记账结点的高度为H2的区块以后,转到步骤t5,对接收到的继续做哈希运算,然后将两个哈希值进行比较,如果通过了就转到步骤t7继续执行,如果还是没有通过,就继续执行步骤t6。
t7、此时记账结点已经从其他记账结点获取了正确的区块,然后用它替换本地数据库中错误的区块。然后在区块中检索键K1对应的数据,得到了结果(K1,V3,H1,H2),然后保存第一个值V3,然后获取值的前驱高度H1。
t8、利用区块高度,转到步骤t4、t5、t6、t7,可以查询出键K1的第二组数据(K1,V1,0,H1),然后保存第二个值V1,再获取前驱高度为0,表示这是键K1的初始状态,他没有更早的状态了。
t9、向前遍历已经完成,系统将整个过程获取到的值V1,V3打包并签名,然后返回给客户端,response=(K1,V1,V3,Sig,Cert)。
t10、客户端接收到来自记账结点的响应,首先验证签名信息,验证通过以后就能够获取到键K1的所有历史数据了。
t11、如步骤t1,客户端再次发起溯源请求(K2,SEA),向记账结点发送请求proposal=(K2,SEA,Sig,Cert)。
t12、记账结点执行步骤t2和t3,在步骤t3中,因为系统之前已经将键K2删除了,所以不能在状态数据库中查找到键K2,然后记账结点转到历史数据库中查找键K2的值,得到了结果(K2,H1,H2)。可以知道键K2再被删除时的最新状态保存在高度为H2的区块中。
t13、记账结点利用区块高度H2,执行步骤t4~t8,可以得到键K2的历史数据V2。
t14、利用查询到的键K2的所有历史数据V2,执行步骤t9和t10,客户端就能够获取到键K2的所有历史数据了。
本发明属于区块链技术领域,尤其涉及分布式数据存储,互联网数据安全存储与传输方法和区块链历史数据追踪溯源的实现方法与系统。包括发起交易请求和溯源请求的客户端C1,处理客户端请求的记账结点P1,实现区块链系统共识机制的共识结点O1,代表所有记账结点的Pn。客户端C1对请求打包并签名然后将proposal发送给记账结点P1,记账结点P1验证签名后处理请求。如果是交易请求,记账结点P1将新的交易记录record签名后发送给共识结点O1打包生成区块block,共识结点将新生成的区块block发送给记账结点P1和Pn,然后记账结点根据区块更新本地状态。如果是溯源请求,记账结点首先检测本地保存的指定区块是否正确,如果不正确就向记账结点Pn请求指定高度的正确的区块block,如果正确,就直接使用本地保存的区块。然后通过在系统之前保存的区块中逆向检索得到被溯源交易的所有结果,然后将检索到的所有结果打包返回给客户端C1。本发明将数据分多个数据库存储,实现了数据的存储结构的解耦,此外利用区块链的不可篡改的特性,增强了系统的健壮性,能够保证系统中数据的存储与溯源的可靠性。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (6)
1.一种基于区块链的交易追踪溯源方法,其特征在于,包括向交易溯源系统提交交易和通过交易溯源系统对交易追踪溯源两个步骤,其中,
所述向溯源系统提交交易包括如下步骤:
S1、客户端向溯源系统提交交易请求;
S2、溯源系统验证请求的合法性并执行客户端发起的交易请求,然后将交易记录打包发送给共识结点;包括如下步骤:
S2.1、溯源系统首先验证客户端提交的交易请求的合法性,如果验证通过就执行请求,否则拒绝执行;
S2.2、如果交易的执行结果是读取区块链系统中的键值对,系统中不会增加交易记录,如果交易的执行结果是向区块链系统写入键值对,系统中会增加交易记录;
具体如下:
如果客户端提交的交易请求是查询溯源系统中的键值对,在对客户端进行的身份验证通过以后,直接返回相应的查询结果,查询请求不会对溯源请求的状态产生改变;
如果客户端提交的交易请求会对溯源系统的状态产生改变,溯源系统会将这种改变作为一条交易打包进新产生的区块;在这种情况下,客户端提交的交易会产生三种结果:在溯源系统中新增加键值对、修改原有的键值对、删除原有的键值对;
如果客户端提交的交易请求是向溯源系统中新增加键值对,键值包含的内容为交易的有效载荷,它的前驱高度为0,因为高度为0的区块时创世区块,不包含任何交易,所以将新创建的交易的前驱高度设置0表示该交易是新创建到区块链系统中的,它没有更早的历史状态;同时将键值对的当前高度设置为当前的区块高度,用来定位键值对当前所处的状态保存到哪一个区块中;
如果客户端提交的交易请求是更改溯源系统中的键值对,在设置了键的新的键值以后,将键值对的前驱高度设置键值对之前保存的当前高度,同时将键值对的当前高度保存为区块链系统的当前高度;
如果客户端提交的交易请求是删除溯源系统中的键值对,我们需要将键值对的当前高度保存为区块链系统的当前高度;同时将删除键值对的交易标注出来,便于和普通交易区分;
S3、溯源系统中的共识结点将当前的交易记录打包成一个区块,然后对区块签名,之后在区块链网络中,通过广播将新生成的由共识结点签名的区块发送给各个记账结点;
其中,溯源系统的共识结点将系统中现存的交易打包成一个区块,区块头包含前一个区块的Hash值,当前区块的Hash值,以及区块高度,区块体包含两个区域,一个区域是保存了所有交易的实体,另一个区域保存了被删除键值对的指针,他们指向被删除键值对在实体区对应的具体交易,这样做一方面便于记账结点在接收到区块以后能快速检查区块中是否存在删除键值对的交易,另一方面只保存了交易的一份实体,减轻了系统的存储压力和区块链网络传输压力;
S4、记账结点在验证区块的合法性以后,在本地保存区块,并更新本地的数据库;
所述通过交易溯源系统对交易追踪溯源包括如下步骤:
T1、客户端向区块链系统发起对某个交易的溯源请求;
T2、溯源系统验证请求的合法性并执行客户端发起的溯源请求;
T3、溯源系统中的记账结点验证本地保存的区块正确性以后,在区块中检索溯源交易的历史数据;
T4、将步骤T3中查询到的一系列结果打包返回给客户端,整个交易溯源过程结束。
2.根据权利要求1所述的基于区块链的交易追踪溯源方法,其特征在于,步骤S1中,客户端提交的交易请求的执行结果包含读取溯源系统中的键值对和向溯源系统写入键值对;客户端对交易请求签名,然后将交易请求、签名信息和公钥证书打包发送给溯源系统中的记账结点。
3.根据权利要求1所述的基于区块链的交易追踪溯源方法,其特征在于,步骤S4的具体步骤为:记账结点在验证区块的合法性以后,首先提取区块的头部,将头部存入区块链系统中;然后获取头部本区块的哈希值作为键,整个区块作为值保存到本地数据库中;再然后查询区块中是否有删除键值对的交易,如果有,就将这一条交易保存到历史数据库中。
4.根据权利要求1所述的基于区块链的交易追踪溯源方法,其特征在于,步骤T1中,溯源请求中包含了该交易对应键值对的键,客户端对溯源请求签名,然后将请求、签名信息和公钥证书打包发送给溯源系统。
5.根据权利要求1所述的基于区块链的交易追踪溯源方法,其特征在于,步骤T2中溯源系统执行客户端发起的溯源请求的步骤包括:
T2.1、溯源系统首先验证客户端提交的溯源请求的合法性,如果验证通过就执行请求,否则拒绝执行;
T2.2、溯源系统首先获取溯源请求中的键,然后在区块链网络的状态数据库中查找对应的键,如果没有找到,就继续在历史数据库中查找该键,如果仍然没有找到,说明客户端发送的请求错误,请求中包含的键不存在于区块链系统中;如果找到了请求中包含的键,获取对应的值,并从值中提取出键的前驱高度,然后在区块链系统中通过区块高度获取区块的哈希值,再然后在本地数据库中通过哈希值获取与之对应的区块;
T2.3、校验区块是否被篡改,如果校验通过,获取被查询键对应的值,转到步骤T3,如果校验不通过,说明本地数据库被篡改,需要通过区块链网络中其他可信结点更新本地数据库,然后再次执行步骤T2。
6.根据权利要求1所述的基于区块链的交易追踪溯源方法,其特征在于,步骤T3的具体步骤为:通过前驱高度获取对应的区块哈希值,然后在本地数据库中找到对应的区块并对其进行校验,校验通过后从中查找该键对应的键值对,找到以后,再次获取值以及值中的前驱高度,然后通过这个前驱高度,再去对应区块中查找键值对,一直持续到某次查询得到的前驱高度为0,说明已经查询完该键对应的所有交易记录。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110684154.7A CN113421160B (zh) | 2021-06-21 | 2021-06-21 | 一种基于区块链的交易追踪溯源方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110684154.7A CN113421160B (zh) | 2021-06-21 | 2021-06-21 | 一种基于区块链的交易追踪溯源方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113421160A CN113421160A (zh) | 2021-09-21 |
CN113421160B true CN113421160B (zh) | 2023-03-10 |
Family
ID=77789385
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110684154.7A Active CN113421160B (zh) | 2021-06-21 | 2021-06-21 | 一种基于区块链的交易追踪溯源方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113421160B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114449003A (zh) * | 2022-01-28 | 2022-05-06 | 浪潮云信息技术股份公司 | 一种联盟链数据处理方法及联盟链 |
CN114331443B (zh) * | 2022-03-10 | 2022-06-21 | 南京金宁汇科技有限公司 | 一种删除区块链数据的方法及装置 |
CN115051995A (zh) * | 2022-07-27 | 2022-09-13 | 南京搜文信息技术有限公司 | 一种支持数据高效溯源的区块链底层平台 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109872019A (zh) * | 2017-12-05 | 2019-06-11 | 航天信息股份有限公司 | 农产品质量安全追溯方法及系统 |
CN109064063A (zh) * | 2018-09-11 | 2018-12-21 | 北京工商大学 | 一种基于区块链的食品安全风险溯源分析系统及方法 |
KR102170031B1 (ko) * | 2018-11-12 | 2020-10-26 | 한국과학기술원 | 위치정보를 이용한 블록체인 거래인증방법, 기록매체 및 블록체인 시스템 |
EP3596613B1 (en) * | 2019-03-14 | 2022-05-04 | Advanced New Technologies Co., Ltd. | Methods and devices for acquiring and recording tracking information on blockchain |
-
2021
- 2021-06-21 CN CN202110684154.7A patent/CN113421160B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113421160A (zh) | 2021-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113421160B (zh) | 一种基于区块链的交易追踪溯源方法 | |
US11841736B2 (en) | Immutable logging of access requests to distributed file systems | |
US10114970B2 (en) | Immutable logging of access requests to distributed file systems | |
CN109791594B (zh) | 在关系数据库上执行写入和存储操作的方法及可读介质 | |
US11483622B2 (en) | Hybrid blockchains and streamchains using non-crypto hashes for securing audio-, video-, image-, and speech-based transactions and contracts | |
US20220414090A1 (en) | Blockchain data index method, blockchain data storage method and device | |
CN113326317B (zh) | 基于同构多链架构的区块链存证方法及系统 | |
US10754848B2 (en) | Method for registration of data in a blockchain database and a method for verifying data | |
US20210232555A1 (en) | A method for registering of data as a digital file in a blockchain database | |
US11283616B2 (en) | Method for index-based and integrity-assured search in a blockchain | |
CA3072719C (en) | Immutable datastore for low-latency reading and writing of large data sets | |
CN109194646B (zh) | 一种基于区块链的安全认证数据存取方法 | |
CN113924747A (zh) | 区块链交易数据字段验证 | |
CN108197959B (zh) | 一种基于区块链的快速验证池、快速验证系统及操作方法 | |
US11671262B2 (en) | Asynchronously determining relational data integrity using cryptographic data structures | |
US10735199B2 (en) | File based transmission validation and failure location identification system | |
US20230289782A1 (en) | Smart contract-based data processing | |
CN109918451B (zh) | 基于区块链的数据库管理方法及系统 | |
CN112035291A (zh) | 快照恢复 | |
CN113411373B (zh) | 一种交易数据存储方法、追踪溯源方法及区块链网络 | |
CN115552842A (zh) | 用于通过区块链高效安全地处理、访问和传输数据的计算机实现的系统和方法 | |
WO2023004807A1 (zh) | 知识管理系统、方法、装置、电子设备和存储介质 | |
Byeon et al. | Editable Blockchain for Secure IoT Transactions | |
Spenger | Using Blockchain for Tamper-Proof Broadcast Protocols | |
Wu et al. | Blockchain-based trusted avionics authentication for secure ground-to-air communication |
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 |