CN107657438A - 一种区块链生成方法、数据验证方法、节点及*** - Google Patents

一种区块链生成方法、数据验证方法、节点及*** Download PDF

Info

Publication number
CN107657438A
CN107657438A CN201710842472.5A CN201710842472A CN107657438A CN 107657438 A CN107657438 A CN 107657438A CN 201710842472 A CN201710842472 A CN 201710842472A CN 107657438 A CN107657438 A CN 107657438A
Authority
CN
China
Prior art keywords
data
block
written
node
finger print
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
Application number
CN201710842472.5A
Other languages
English (en)
Other versions
CN107657438B (zh
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.)
Union Mobile Pay Co Ltd
Original Assignee
Union Mobile Pay Co Ltd
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 Union Mobile Pay Co Ltd filed Critical Union Mobile Pay Co Ltd
Priority to CN201710842472.5A priority Critical patent/CN107657438B/zh
Publication of CN107657438A publication Critical patent/CN107657438A/zh
Application granted granted Critical
Publication of CN107657438B publication Critical patent/CN107657438B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • 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/3827Use of message hashing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种区块链生成方法、数据验证方法、节点及***,其中区块链生成方法包括:获取N个待写入数据;根据预设的序列化规则得到N个待写入数据分别对应的N个序列化数据;构造新区块,新区块包括数据集合和区块头;数据集合中包括N个序列化数据;区块头中包括节点的本地区块链中前一区块的区块头哈希值;前一区块为本地区块链的最长链中最新加入的区块;通过共识算法,从M个节点产生的新区块中确定满足共识算法规则的共识区块并将共识区块加入本地区块链。采用待写入数据的序列化数据将待写入数据直接存入区块链***,提高了数据存证的可靠性。区块链***可以直接提供待写入数据的序列化数据以作为验证的参考,提高了可信性。

Description

一种区块链生成方法、数据验证方法、节点及***
技术领域
本发明涉及数据认证技术领域,尤其涉及一种区块链生成方法、数据验证方法、节点及***。
背景技术
现代生活中,常需要证明某项数据(事物)的存在,即数据的存证(存在性证明),如撰写过的文章、历史的操作指令、签订过的合同等,此时便需经过第三方认证机构进行认证,这种认证方式对认证机构的信用度要求极高,而且操作繁琐、成本较高、时效性差。
为了解决上述通过第三方认证机构进行数据存证时存在的种种问题,目前已出现很多通过区块链数据存证的方案,利用区块链的无中心化结构及不可更改的特性很好地解决了上述问题。一种常见的使用区块链进行数据存证的方法为,先构建特殊交易,将待存证数据的指纹信息作为特殊交易的附加信息参数,如比特币交易中的OP_Return参数。之后,将特殊交易发往区块链***。
可靠性和可信性是评价存证技术的两个重要方面。所谓的可靠性,指的是在未来任何时间点,都能够可靠地获取到预先保存的数据。所谓的可信性,指的是在未来任何时间点,所获取的预先保存的数据都是未经篡改的数据。对于现有的利用区块链进行数据存证的方法,其将数据的指纹信息写入区块链,而将数据自行保存或保存在第三方。在进行验证时,验证请求方需提供待验证数据的指纹信息,因此其实质上验证的是待验证数据的指纹信息是否存在于区块链中,然而,由于哈希算法可能被破解,以及哈希碰撞等问题的存在,一个指纹信息有可能对应多个数据,因此现有的利用区块链进行数据存在性证明的方法,其可信性稍显不足,同时,不论将数据自行保存还是交与第三方保存,也都会面临着数据可靠性的问题。
发明内容
本发明提供一种区块链生成方法、数据验证方法、装置及***,用以提高数据存证的可靠性和可信性。
本发明实施例提供一种区块链生成方法,应用于包含M个节点的区块链***,M大于等于3,针对所述M个节点中的每一个节点,包括:
获取N个待写入数据;N大于等于1;
根据预设的序列化规则分别序列化处理所述N个待写入数据,得到所述N个待写入数据分别对应的N个序列化数据;
构造新区块,所述新区块包括数据集合和区块头;所述数据集合中包括所述N个序列化数据;所述区块头中包括所述节点的本地区块链中前一区块的区块头哈希值;所述前一区块为所述本地区块链的最长链中最新加入的区块;
通过共识算法,从所述M个节点产生的新区块中确定满足所述共识算法规则的共识区块并将所述共识区块加入所述本地区块链。
可选的,所述新区块还包括含有N个数字签名的签名集合;
所述N个数字签名与所述N个序列化数据一一对应。
可选的,通过共识算法,从所述M个节点产生的新区块中确定满足所述共识算法规则的共识区块加入所述本地区块链之后,还包括:
针对所述共识区块中的每个序列化数据,获取与所述序列化数据对应的待写入数据的指纹信息;
将所述待写入数据的指纹信息以及所述待写入数据对应的索引信息保存在本地索引库中;所述索引信息包括所述待写入数据所对应的序列化数据在所述本地区块链中的区块高度和所述序列化数据在所述区块中的位置编号。
可选的,所述新区块的区块头中还包括所述N个待写入数据分别对应的N个指纹信息的根哈希值。
可选的,所述N个指纹信息的根哈希值是通过默克尔merkle树算法获得的;
所述方法还包括:
根据所述N个序列化数据分别计算所述N个待写入数据的N个指纹信息;
对所述N个指纹信息进行分组;
根据默克尔merkle树算法,计算每个分组的哈希值,获取所述N个指纹信息的下层哈希值;
对所述下层哈希值继续分组,并返回计算每个分组的哈希值的步骤直至获取所述根哈希值。
可选的,所述新区块的区块头中还包括所述预设的序列化规则所对应的序列化标识。
可选的,针对所述M个节点中的每一个节点,获取N个待写入数据之前,还包括:
针对任一个待写入数据,接收节点接收所述待写入数据,所述接收节点为所述M个节点中的任一节点;
所述接收节点将所述待写入数据存入所述接收节点的待写入数据集,并向其它M-1个节点发送数据写入请求;所述数据写入请求中包括所述待写入数据;所述数据写入请求用于指示所述其它M-1个节点中任一个节点将所述待写入数据存入各自的待写入数据集;
针对所述M个节点中的任一节点,在所述节点的待写入数据集中待写入数据的数量达到预设数量或距离上一次构造新区块的时间间隔达到预设时间时,从所述节点的待写入数据集中获取N个待写入数据。
可选的,通过共识算法,从所述M个节点产生的新区块中确定满足所述共识算法规则的共识区块加入所述本地区块链之后,还包括:
针对所述M个节点中的任一节点,从所述节点的待写入数据集中去除所述共识区块中包含的N个待写入数据的序列化形式所对应的N个待写入数据。
本发明实施例提供一种数据验证方法,应用于包含M个节点的区块链***,M大于等于3,包括:
验证节点获取待验证数据的指纹信息,所述验证节点为所述M个节点的任一节点;
所述验证节点从区块链中确定各区块是否包含所述指纹信息对应的序列化数据;所述区块链中的每个区块包括数据集合和区块头;所述数据集合中包括各已写入数据分别对应的序列化数据;所述区块头中包括区块的前一区块的区块头哈希值;
若所述区块链中存在所述指纹信息对应的序列化数据,则确认所述待验证数据验证通过。
可选的,所述区块还包括含有N个数字签名的签名集合;所述N个数字签名与所述N个序列化数据一一对应;
所述方法还包括:
在所述区块链中存在所述指纹信息对应的序列化数据时,从所述区块链中获取所述序列化数据对应的数字签名;
获取所述待验证数据的公钥信息;
根据所述公钥信息验证所述数字签名;
在所述数字签名验证通过时,确认所述待验证数据确权通过。
可选的,所述验证节点存有本地索引库;所述本地索引库中包括所述区块链中各区块中已写入数据的指纹信息的索引信息;所述索引信息包括所述已写入数据所对应的序列化数据在所述区块链中的区块高度和所述指纹信息在所在区块中的位置编号;
所述验证节点从区块链中确定各区块是否包含所述指纹信息对应的序列化数据,包括:
根据所述待验证数据的指纹信息查找所述本地索引库,获取所述待验证数据的指纹信息对应的索引信息;
从所述区块链中确定所述索引信息对应的已写入数据的序列化数据;
根据所述已写入数据的序列化数据,计算所述已写入数据的指纹信息;
当所述待验证数据的指纹信息与所述已写入数据的指纹信息一致时,确定所述区块链中存在所述指纹信息对应的序列化数据。
可选的,所述新区块的区块头中还包括所述N个待写入数据分别对应的N个指纹信息的根哈希值;
所述区块链中存在所述指纹信息对应的序列化数据,则确认所述待验证数据验证通过之后,还包括:
计算所述数据集合中N个序列化数据所对应的N个指纹信息的根哈希值;
在所述N个指纹信息的根哈希值与所述区块头中的根哈希值一致时,确认所述待验证数据验证通过。
可选的,所述新区块的区块头中还包含所述预设的序列化规则所对应的序列化标识;
确认所述待验证数据验证通过之后,还包括:
根据所述序列化标识,反序列化所述序列化数据,获取所述待验证数据。
本发明实施例提供一种区块链节点,应用于包含M个节点的区块链***中的任一节点,M大于等于3,包括:
收发单元,用于获取N个待写入数据;N大于等于1;
处理单元,用于根据预设的序列化规则分别序列化处理所述N个待写入数据,得到所述N个待写入数据分别对应的N个序列化数据;
所述处理单元,还用于构造新区块,所述新区块包括数据集合和区块头;所述数据集合中包括所述N个序列化数据;所述区块头中包括本地区块链中前一区块的区块头哈希值;所述前一区块为所述本地区块链的最长链中最新加入的区块;
所述处理单元,还用于通过共识算法,从所述M个节点产生的新区块中确定满足所述共识算法规则的共识区块并将所述共识区块加入所述本地区块链。
可选的,所述新区块还包括含有N个数字签名的签名集合;
所述N个数字签名与所述N个序列化数据一一对应。
可选的,所述处理单元还用于:
针对所述共识区块中的每个序列化数据,获取与所述序列化数据对应的待写入数据的指纹信息;
将所述待写入数据的指纹信息以及所述待写入数据对应的索引信息保存在本地索引库中;所述索引信息包括所述待写入数据所对应的序列化数据在所述本地区块链中的区块高度和所述序列化数据在所述区块中的位置编号。
可选的,所述新区块的区块头中还包括所述N个待写入数据分别对应的N个指纹信息的根哈希值。
可选的,所述N个指纹信息的根哈希值是通过默克尔merkle树算法获得的;
所述处理单元还用于:
根据所述N个序列化数据分别计算所述N个待写入数据的N个指纹信息;
对所述N个指纹信息进行分组;
根据默克尔merkle树算法,计算每个分组的哈希值,获取所述N个指纹信息的下层哈希值;
对所述下层哈希值继续分组,并返回计算每个分组的哈希值的步骤直至获取所述根哈希值。
可选的,所述新区块的区块头中还包括所述预设的序列化规则所对应的序列化标识。
可选的,所述收发单元还用于:接收所述待写入数据;
所述处理单元还用于:
将所述待写入数据存入待写入数据集,并发送数据写入请求;所述数据写入请求中包括所述待写入数据;所述数据写入请求用于至少所述其它M-1个节点将所述待写入数据存入各自的待写入数据集;
所述处理单元还用于:
在所述待写入数据集中待写入数据的数量达到预设数量或距离上一次构造新区块的时间间隔达到预设时间时,从所述待写入数据集中获取N个待写入数据。
可选的,所述处理单元还用于:
从所述待写入数据集中去除所述共识区块中包含的N个待写入数据的序列化形式所对应的N个待写入数据。
本发明实施例提供一种区块链节点,应用于包含M个节点的区块链***中的任一节点,M大于等于3,包括:
收发单元,用于获取待验证数据的指纹信息;
处理单元,用于从区块链中确定各区块是否包含所述指纹信息对应的序列化数据;所述区块链中的每个区块包括数据集合和区块头;所述数据集合中包括各已写入数据分别对应的序列化数据;所述区块头中包括区块的前一区块的区块头哈希值;
所述处理单元,还用于若所述区块链中存在所述指纹信息对应的序列化数据,则确认所述待验证数据验证通过。
可选的,所述区块还包括含有N个数字签名的签名集合;所述N个数字签名与所述N个序列化数据一一对应;
所述处理单元还用于:
在所述区块链中存在所述指纹信息对应的序列化数据时,从所述区块链中获取所述序列化数据对应的数字签名;
获取所述待验证数据的公钥信息;
根据所述公钥信息验证所述数字签名;
在所述数字签名验证通过时,确认所述待验证数据确权通过。
可选的,还包括存储单元;
所述存储单元用于存储本地索引库;所述本地索引库中包括所述区块链中各区块中已写入数据的指纹信息的索引信息;所述索引信息包括所述已写入数据所对应的序列化数据在所述区块链中的区块高度和所述指纹信息在所在区块中的位置编号;
所述处理单元具体用于:
根据所述待验证数据的指纹信息查找所述本地索引库,获取所述待验证数据的指纹信息对应的索引信息;
从所述区块链中确定所述索引信息对应的已写入数据的序列化数据;
根据所述已写入数据的序列化数据,计算所述已写入数据的指纹信息;
当所述待验证数据的指纹信息与所述已写入数据的指纹信息一致时,确定所述区块链中存在所述指纹信息对应的序列化数据。
可选的,所述新区块的区块头中还包括所述N个待写入数据分别对应的N个指纹信息的根哈希值;
所述处理单元还用于:
计算所述数据集合中N个序列化数据所对应的N个指纹信息的根哈希值;
在所述N个指纹信息的根哈希值与所述区块头中的根哈希值一致时,确认所述待验证数据验证通过。
可选的,所述新区块的区块头中还包含所述预设的序列化规则所对应的序列化标识;
所述处理单元还用于:
根据所述序列化标识,反序列化所述序列化数据,获取所述待验证数据。
本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行上述任一项所述的区块链生成方法。
本发明实施例提供一种计算设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述任一项所述的区块链生成方法。
本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行上述任一项所述的数据验证方法。
本发明实施例提供一种计算设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述任一项所述的数据验证方法。
本发明实施例提供一种区块链***,包含M个节点,M大于等于3,包含上述任一项所述的区块链节点。
综上所述,本发明实施例提供一种区块链生成方法、数据验证方法、节点及***,其中区块链生成方法包括:获取N个待写入数据;N大于等于1;根据预设的序列化规则分别序列化处理N个待写入数据,得到N个待写入数据分别对应的N个序列化数据;构造新区块,新区块包括数据集合和区块头;数据集合中包括N个序列化数据;区块头中包括节点的本地区块链中前一区块的区块头哈希值;前一区块为本地区块链的最长链中最新加入的区块;通过共识算法,从M个节点产生的新区块中确定满足共识算法规则的共识区块并将共识区块加入本地区块链。在本发明实施例中,数据集合包括待写入数据的序列化数据,而不是现有技术中的交易数据,去除了交易数据中与待写入数据无关的部分数据对***存储空间的占用,提高了***存储空间的利用率。同时,采用待写入数据的序列化数据将待写入数据直接存入区块链***,使得待写入数据无需再由数据写入方自行保存或交由第三方保存,提高了数据存证的可靠性。更进一步地,在验证时,区块链***可以直接提供待写入数据的序列化数据以作为验证的参考,避免了哈希碰撞等问题对数据存证可信性的影响。因此,本发明实施例能够提高数据存证的可信性和可靠性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种可行的区块链***架构示意图;
图2为本发明实施例提供的一种区块链生成方法流程示意图;
图3为本发明实施例提供的一种可行的区块数据结构示意图;
图4为本发明实施例提供的一种两个区块对应同一个前一区块的区块链结构示意图;
图5为本发明实施例提供的一种可行的merkle树结构示意图;
图6为本发明实施例提供的一种数据验证方法流程示意图;
图7为本发明实施例提供的一种可行的区块数据结构示意图;
图8为本发明实施例提供的一种区块链节点结构示意图;
图9为本发明实施例提供的一种区块链节点结构示意图;
图10为本发明实施例提供的一种计算设备结构示意图;
图11为本发明实施例提供的一种计算设备结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例提供一种区块链***,包括M个节点,M大于等于3。其中,M个节点通过对等网络(Peer to Peer,P2P)动态组网,形成一个“去中心化”的***。图1为本发明实施例提供的一种可行的区块链***架构示意图,如图1所示,区块链***中包括节点0、节点1、节点2、节点3和节点4,这五个节点之间互为对等节点,通过P2P动态组网构成一个去中心化的***。图1中的直线表示各节点之间的数据传输关系,以节点2为例,其广播消息可由节点1和节点3接收。
在使用本发明实施例所提供的区块链***写入数据时,可将***的M个节点中的任一节点作为接收节点接收待写入数据;接收节点将待写入数据存入接收节点的待写入数据集,并向其它M-1个节点发送数据写入请求;数据写入请求中包括该待写入数据;数据写入请求用于指示其它M-1个节点中任一个节点将待写入数据的指纹信息存入各自的待写入数据集,即对于其它M-1个节点中的任一节点,在收到数据写入请求后,获取其中的待写入数据并存入各自的待写入数据集。
以图1所示的区块链***举例说明,节点2作为接收节点接收待写入数据;节点2将待写入数据存入其本地的待写入数据集,并向节点0、节点1和节点3发送数据写入请求;数据写入请求中包括待写入数据;节点0、节点1和节点3将数据写入请求中的待写入数据存入各自的待写入数据集,节点1或节点3继续转发该数据写入请求至节点4;节点4接收节点1和节点3中最先到达的数据写入请求,并将数据写入请求中的待写入数据存入节点4的待写入数据集中,经过上述过程,***中的每一个对等节点都收到了待写入数据。
应理解,本发明实施例所提供的区块链***中的M个节点为区块链***中的对等节点,在具体实施过程中,区块链***也可能存在一些非对等节点,如本发明实施例接下来会提到的背书节点便是一个非对等节点,这种包含了非对等节点的区块链***也适用于本发明实施例所提供的技术方案,也应包含于本发明实施例中。为了便于描述,本发明实施例在未作特别说明的情况下,以下所述节点皆为对等节点,之后不再赘述。
基于上述区块链***架构,本发明实施例提供一种区块链生成方法,如图2所示。图2为本发明实施例提供的一种区块链生成方法流程示意图,其针对区块链***的M个节点中的任一节点,包括以下步骤:
S201:获取N个待写入数据;N大于等于1。
S202:根据预设的序列化规则分别序列化处理N个待写入数据,得到N个待写入数据分别对应的N个序列化数据。
S203:构造新区块,新区块包括数据集合和区块头;数据集合中包括N个序列化数据;区块头中包括节点的本地区块链中前一区块的区块头哈希值;前一区块为本地区块链的最长链中最新加入的区块。
S204:通过共识算法,从M个节点产生的新区块中确定满足共识算法规则的共识区块并将共识区块加入本地区块链。
在S201中,待写入数据可以是需要进行存证的数据,其具体形式并不作限定,类型上包括但不限于结构化数据、半结构化数据、集合类数据(如数组或列表、映射表等)、复杂嵌套数据等等,待写入数据的长度也不作限定。对于各对等节点具有各自待写入数据集的情况,可选的,在节点的待写入数据集中待写入数据的指纹信息的数量达到预设数量或距离上一次构造新区块的时间间隔达到预设时间时,执行S201。
在S202中,对N个待写入数据采用同一序列化规则进行序列化,将不同类型的待写入数据都转化为统一的序列化形式,分别获得N个序列化数据。序列化规则包括但不限于Java对象序列化、JSON序列化、XML序列化、Hessian序列化等等,不同序列化规则对不同编程语言的适应性、序列化性能、反序列化性能、序列化结果大小等都有所不同,具体实施过程中,可以根据应用场景权衡选择。区块链***中M个节点可以采用统一的序列化方式以保证各节点之间的一致性。
在S203中,区块链***中的每一个对等节点都构造新区块,新区块的数据结构如图3所示,图3为本发明实施例提供的一种可行的区块数据结构示意图,表示的是区块中数据的逻辑结构。如图3所示,构造的新区块中包括数据集合和区块头,其中,数据集合中包括S201中获取的N个待存储数据:数据1、数据2、……、数据N,区块头中包括前一区块的区块头哈希值,其中,前一区块为该节点的本地区块链的最长链中最新加入的区块,新区块中包含前一区块的区块头哈希值保证了区块链的链式结构。
在区块链***中,M个节点各自拥有本地区块链,区块链中每个区块通过哈希指针(前一区块的区块头哈希值)串在一起,形成链式结构。理论上讲,区块链***中M个节点应具有相同的本地区块链,但实际的区块链***中,由于各节点之间接收新区块广播的时间并不一致,不同节点的算力也有所不同,使得本地区块链中可能会存在多个区块对应同一个前一区块的情况,如图4所示,为本发明实施例提供的一种两个区块对应同一个前一区块的区块链结构示意图。图4中的箭头表示哈希指针,箭头从区块1指向区块2,表示的是区块2的区块头中包括区块1的区块头哈希值,其它以此类推。在图4所示的区块链中,区块4和区块8的区块头中都包括区块3的区块头哈希值,在节点构造新区块时,根据“最长链规则”选取最长链中最新加入的区块作为新区块的前一区块,即选择区块7作为该节点所构造的新区块的前一区块,新区块的区块头中包括区块7的区块头哈希值。
可选的,新区块中还包含时间戳,时间戳为生成该新区块的节点的当前***时间,可以为待写入数据添加时间存证的功能。可选的,新区块的区块头中还包括N个待写入数据分别对应的N个指纹信息的根哈希值。每个待写入数据都拥有自己的指纹信息,一般为通过散列函数(hash)算法处理待写入数据后获得的哈希值,具体计算过程是先将待写入数据序列化,得到待写入数据的序列化数据,再对序列化数据进行哈希运算,获得待写入数据的指纹信息。根哈希值可用于在数据验证时,验证区块的数据集合是否有被篡改。
可选的,新区块的区块头中还包括预设的序列化规则所对应的序列化标识。区块链中保存着待写入数据的序列化数据,区块头同时将序列化规则所对应的序列化标识记录下来,在数据验证时,区块链***的节点可以根据序列化数据和序列化规则得到区块中数据的原始形式。在S202对N个待写入数据采用同一序列化规则进行序列化时,序列化规则包括但不限于Java对象序列化、JSON序列化、XML序列化、Hessian序列化等等,因此,这些序列化规则也分别对应着不同的序列化标识。
在S204中,区块链中的M个节点都在进行新区块的构建,由于每个节点对N个待写入数据的选取以及排序都可能不同,因此所获得的根哈希值也有可能不同,为了保证***中区块链的一致,需通过共识算法从M个节点所产生的新区块中确定一个新区块作为共识区块并由产生该共识区块的节点将该共识区块广播至其它M-1个节点。共识算法的具体实现方式有多种,例如工作量证明(Proof of Work,PoW),又例如实用拜占庭容错共识算法(Practical Byzantine Fault Tolerance,PBFT)等等,本发明实施例对此不作限定。如图3所示的区块数据结构中,区块头还包括随机数,随机数被用于共识算法中对共识区块的确定,以共识算法为PoW为例,M个节点中的每一个节点在构建好数据集合以及区块头中的其它部分后,开始尝试多个随机数,随机数的改变将直接导致新区块的区块头哈希值的变化,当任一区块的区块头哈希值率先满足“难度值”(如区块头哈希值前n个比特位为0)时,该节点将其构建的新区块将作为共识区块广播至区块链***中的其它节点。其它节点在接收到共识区块广播后,停止构建新区块,并将共识区块加入本地区块链。可选的,难度值可以是预先配置的某个固定值,也可以是周期性根据产生新区块的平均用时动态调整。可选的,从M个节点产生的新区块中确定共识区块之后,针对M个节点中的任一节点,从节点的待写入数据集中去除共识区块中包括的N个序列化数据所对应的N个待写入数据,以防止已经被写入区块链的待写入数据的序列化数据被重复写入区块链中。
可选的,针对M个节点中的任一节点,通过共识算法,从M个节点产生的新区块中确定满足共识算法规则的共识区块加入本地区块链之后,还包括:针对共识区块中的每个序列化数据,获取与序列化数据对应的待写入数据的指纹信息;将待写入数据的指纹信息以及待写入数据对应的索引信息保存在本地索引库中;索引信息包括待写入数据所对应的序列化数据在本地区块链中的区块高度和序列化数据在区块中的位置编号。以图3所述的区块结构为例,其区块高度为height,则其数据集合中的第二个序列化数据—数据1的索引信息为height和2,数据1的指纹信息和“height、2”将被一通保存至本地索引库。区块链***中的每个节点都将区块中的数据的索引信息存入本地索引库,那么用户在进行数据验证时,只需提供待验证数据的指纹信息,方便用户使用。当然,针对M个节点中的任一节点,在通过共识算法,满足共识算法规则的共识区块加入本地区块链之后,还可以判断自身是否为共识区块中的任一序列化数据的接收节点,若是,则输出该指纹信息的索引信息给用户。用户在进行数据验证时可同时提供待验证数据的指纹信息和索引信息,能够加快数据验证的效率。
在本发明实施例所提供的区块结构中,区块头还包括N个指纹信息的根哈希值。N个指纹信息的根哈希值是通过默克尔merkle树算法获得的,具体的,在S201之后,还包括:根据N个序列化数据分别计算N个待写入数据的N个指纹信息;对N个指纹信息进行分组;根据默克尔merkle树算法,计算每个分组的哈希值,获取N个指纹信息的下层哈希值;对下层哈希值继续分组,并返回计算每个分组的哈希值的步骤直至获取根哈希值。
请参考图5,为本发明实施例提供的一种可行的merkle树结构示意图,图5所示的merkle数中指纹信息包括a、b、c、d、e、f共六个,分别由6个待写入数据的序列化数据计算获得,位于merkle树的层1(图中未示出)。进行根哈希值的计算时,对六个指纹信息两两分组并计算每个分组的哈希值,得到层2的哈希值h、i和g,继续对h、i和g分组并重复上述过程直至在层4中获得哈希值。在图3所示的merkle树中,层1还包含两个补位哈希值x,这是因为采用这种两两分组的merkle树算法需保证层1中指纹信息的数量为2的Q次方才能最后获得一个根哈希值,Q为正整数,在指纹信息数量不足2的Q次方时,需用补位哈希值x补充至2的Q次方个,如图5中补充了两个补位哈希值x后,层1便达到了2的3次方(8)个指纹信息。具体实施过程中,补位哈希值x可以是任意可知的哈希值,例如,x可以是N个指纹信息中的第N个指纹信息,也可以是第一个指纹信息,也可以是所有字节都为0的空信息等等,应理解,虽然补位哈希值x的实现方式可有多种,但对于同一条区块链中的各区块来说,补位哈希值x的具体实现方式最好是一致的。
可选的,为了提高哈希算法的安全性,本发明实施例在计算merkle树中每个分组的哈希值时,先根据第一哈希规则计算分组的中间哈希值;再根据第二哈希规则计算中间哈希值的哈希值作为分组的哈希值。以图5所示的merkle树为例,对指纹信息a和指纹信息b根据第一哈希规则获得中间哈希值h0,根据第二哈希规则计算中间哈希值h0的哈希值,得到指纹信息a和指纹信息b分组的哈希值h。
当然,这种哈希值运算方法也可以运用到本发明实施例其它计算哈希值的步骤,如对指纹信息、区块头哈希值等的计算,也应包含于本发明实施例中。以计算hello的指纹信息为例,第一哈希规则为sha-256,输出中间哈希值2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824,第二哈希规则为ripemd-160,继续对中间哈希值进行哈希运算,获得hello的指纹信息b6a9c8c230722b7c748331a8b450f05566dc7d0f。
采用本发明实施例所提供的哈希值计算方法,一方面可以提高哈希算法的安全性,防范单一算法的哈希碰撞攻击,另一方面,通过选择合适的第二哈希规则可以输出长度更短的哈希值。
在本发明实施例中,数据集合包括待写入数据的序列化数据,而不是现有技术中的交易数据,去除了交易数据中与待写入数据无关的部分数据对***存储空间的占用,提高了***存储空间的利用率。同时,采用待写入数据的序列化数据将待写入数据直接存入区块链***,使得待写入数据无需再由数据写入方自行保存或交由第三方保存,提高了数据存证的可靠性。更进一步地,在验证时,区块链***可以直接提供待写入数据的序列化数据以作为验证的参考,避免了哈希碰撞等问题对数据存证可信性的影响。因此,本发明实施例能够提高数据存证的可信性和可靠性。而且,现有技术由于利用的是交易信息的附加信息参数,因此其能够写入的数据长度受限于附加信息参数,而本申请没有构造特殊交易,因此无需限定待写入数据的长度。此外,与现有的依赖于数字货币区块链网络的数据写入技术,本发明实施例还可以通过调整区块链***的一些参数可以实现更大的区块链***业务容量,即单位时间内能够写入的待写入数据的数量,比如提高产生新区块的速度,提高新区块的大小、采用更短字节的哈希算法等等。同时,本发明实施例所提个的区块链生成方法,无需支付数字货币交易费用,每次写入待写入数据的成本几乎可以忽略不计。
通过上述实施例所提供的方法,能够将待写入数据写入区块链,实现对待写入数据的存证,并提高数据存证的可靠性和可信性。基于相同的技术构思,本发明实施例还提供一种数据验证方法,可以对上述实施例中写入区块链的数据进行数据验证。图6为本发明实施例提供的一种数据验证方法流程示意图,如图6所示,包括以下步骤:
S601:验证节点获取待验证数据的指纹信息,验证节点为M个节点的任一节点;
S602:验证节点从区块链中确定各区块是否包含指纹信息对应的序列化数据;区块链中的每个区块包括数据集合和区块头;数据集合中包括各已写入数据分别对应的序列化数据;区块头中包括区块的前一区块的区块头哈希值;
S603:若区块链中存在指纹信息对应的序列化数据,则确认待验证数据验证通过。
其中,已写入数据为通过上述实施例写入区块链***的待写入数据,此处的区块链***与上述实施例中的区块链***为同一个区块链***。
在S601中,区块链***的M个节点中的任一节点都可以作为验证节点为用户提供数据验证服务。验证节点获取的待验证数据的指纹信息可以由用户直接提供,也可以根据用户提供的待验证数据计算获得。一种较佳的实现方式是用户保存待验证数据的指纹信息,这是因为待验证数据的数据量往往较大,只提供指纹信息可以节省网络传输压力,而且用户无需保存待验证数据,使用更加便捷。
在S602中,验证节点可以遍历区块链中各区块所包含的序列化数据所对应的指纹信息,即,对每一个序列化数据进行哈希运算,获得哈希值后再与接受的待验证数据的指纹信息比对。当然,这种方式验证效率非常低下。一种较为高效的实现方式是验证节点通过索引信息查询区块链特定位置的序列化数据所对应的指纹信息是否与用户提供的待验证数据的指纹信息一致,索引信息可以由用户直接提供,也可以通过查询索引库获得。可选的,验证节点存有本地索引库;本地索引库中所述区块链各区块中序列化数据所对应的指纹信息的索引信息;索引信息包括序列化数据在区块链中的区块高度和序列化数据在所在区块中的位置编号。索引库中的索引信息可以是在每次增加新区块后存入索引库中的,也可以是定期从一个或多个区块中批量读取后存入索引库中的。在S602和S603中,验证节点可以先判断是否有用户提供的索引信息。在用户提供了索引信息时,直接通过索引信息查询区块链。在用户没有提供索引信息时,根据待验证数据的指纹信息查找本地索引库,获取待验证数据的指纹信息对应的索引信息;从区块链中确定索引信息对应的已写入数据的序列化数据;根据已写入数据的序列化数据,计算已写入数据的指纹信息;当待验证数据的指纹信息与已写入数据的指纹信息一致时,确定区块链中存在指纹信息对应的序列化数据。
举例说明,获取待验证数据的指纹信息H1,从区块链中确定索引信息(其中区块高度为height)对应的序列化数据objA,计算获得objA的指纹信息H2,当H1和H2一致时,确定区块链中存在待验证数据的指纹信息,待验证数据验证通过。可选的,新区块的区块头中还包括各已写入数据分别对应的指纹信息的根哈希值;为了进一步提高验证的可信性,在区块链中存在待验证数据的指纹信息时,还包括:计算数据集合中N个序列化数据所对应的N个指纹信息的根哈希值;在N个指纹信息的根哈希值与区块头中的根哈希值一致时,确认待验证数据验证通过。举例说明,进一步计算索引信息中区块高度为height的区块的数据集合中的N个序列化数据所对应的N个指纹信息的根哈希值H3,当H3与该区块的区块头所包括的根哈希值一致时,确认该区块中的数据未被篡改,H2确实是该区块的数据集合中所包含的指纹信息。可选的,为了进一步提高验证的可信性,还可以继续计算区块高度为height的区块的区块头哈希值H4,并查询区块链中区块高度为height+1的区块,在区块高度为height+1的区块的区块头中前一个区块的哈希值与H4一致时,确认区块高度为height的区块确实为区块链中的区块,当然,在此基础上还可以继续验证区块高度为height+1的区块及其之后的区块,以提高数据验证的可信性。
通过上述实施例所提供的方法,能够实现对数据的存证,并提高存在的可靠性和可信性。本发明实施例还提供一种区块链生成方法和数据验证方法,可以在实现数据存证的同时,增加对待验证数据的确权功能。
本发明实施例提供的具有确权功能的区块链生成方法与上述区块链生成方法类似,区别在于,针对所述M个节点中的每一个节点,包括:
在S201中除了获取N个待写入数据之外,还要获取N个待写入数据分别对应的N个数字签名;其中,数字签名是待写入数据所有者利用私钥生成并由接收节点随待写入数据一起接收后,通过区块链***广播至区块链***的各个节点的。可选的,接收节点还可以接收用户输入的数字签名和与私钥对应的公钥信息,并用公钥验证数字签名是否与待写入数据的指纹信息一致,若一致,则通过区块链***将待写入数据和数字签名广播至区块链***的各个节点,采用这种事先验证的方法,可以保证数字签名与指纹信息之间存在着正确的对应关系,能够提高确权结果的可信性。
在S203中,区块链***的M个节点中的任一节点采用图7所示的区块数据结构构造新区块,图7为本发明实施例提供的一种可行的区块数据结构示意图,如图7所示,区块中还包括含有签名1、签名2、……、签名N共N个数字签名的签名集合;N个数字签名与数据集合中的N个序列化数据一一对应,具体来说,相互对应的一对数字签名和序列化数据是同一个待写入数据的数字签名和序列化数据。图7所示的区块中将序列化数据和数字签名分开存放,可以支持一些轻量级验证节点(如手机终端应用程序(Application,APP)),有选择性地从区块链下载相关的、不含签名的区块内容,而根据实际使用需求决定是否进行确权。
在S603之后,还包括:在区块链中存在指纹信息对应的序列化数据时,从区块链中获取序列化数据对应的数字签名;获取待验证数据的公钥信息;根据公钥信息验证数字签名;在数字签名验证通过时,确认待验证数据确权通过。以待验证数据的指纹信息H1和索引信息对应的已写入数据的序列化数据对应的指纹信息H2为例,当H1与H2一致时,确认待验证数据验证通过。之后,继续从区块链中获取与该序列化数据对应的数字签名A2,用伴随待验证数据的指纹信息一同接收的公钥信息解密数字签名A2,当数字签名A2的解密结果为H1时,确认待验证数据确权通过。
在上述确权过程中,由验证节点执行确权过程。当然,验证节点也可以直接输出待验证数据的序列化数据所对应的签名信息,以供数据验证请求方自行验证等等,这些实现方式都应包含于本发明实施例中。
可选的,新区块的区块头中还包含预设的序列化规则所对应的序列化标识,验证节点在确认待验证数据验证通过之后,还包括:根据序列化标识,反序列化序列化数据,获取待验证数据。区块链***自身具有着极高的安全性,区块链中所保存的数据几乎是无法修改的。具体实施过程中,用户可以只保留待验证数据的指纹信息,而无需保存复杂的待验证数据,在验证通过后,验证节点将区块链中的序列化数据反序列化,便可以获得待验证数据。当然,验证节点也可以将序列化标识和序列化数据返回给验证请求方,由验证请求方自行反序列化获得待验证数据。
基于相同的技术构思,本发明实施例还提供一种区块链节点,该节点能够实现上述任一实施例所提供的区块链生成方法。图8为本发明实施例提供的一种区块链节点结构示意图,如图8所示,节点800包括:收发单元801和处理单元802,其中:
收发单元801,用于获取N个待写入数据;N大于等于1;
处理单元802,用于根据预设的序列化规则分别序列化处理N个待写入数据,得到N个待写入数据分别对应的N个序列化数据;
处理单元802,还用于构造新区块,新区块包括数据集合和区块头;数据集合中包括N个序列化数据;区块头中包括本地区块链中前一区块的区块头哈希值;前一区块为本地区块链的最长链中最新加入的区块;
处理单元802,还用于通过共识算法,从M个节点产生的新区块中确定满足共识算法规则的共识区块并将共识区块加入本地区块链。
可选的,新区块还包括含有N个数字签名的签名集合;
N个数字签名与N个序列化数据一一对应。
可选的,处理单元802还用于:
针对共识区块中的每个序列化数据,获取与序列化数据对应的待写入数据的指纹信息;
将待写入数据的指纹信息以及待写入数据对应的索引信息保存在本地索引库中;索引信息包括待写入数据所对应的序列化数据在本地区块链中的区块高度和序列化数据在区块中的位置编号。
可选的,新区块的区块头中还包括N个待写入数据分别对应的N个指纹信息的根哈希值。
可选的,N个指纹信息的根哈希值是通过默克尔merkle树算法获得的;
处理单元802还用于:
根据N个序列化数据分别计算N个待写入数据的N个指纹信息;
对N个指纹信息进行分组;
根据默克尔merkle树算法,计算每个分组的哈希值,获取N个指纹信息的下层哈希值;
对下层哈希值继续分组,并返回计算每个分组的哈希值的步骤直至获取根哈希值。
可选的,新区块的区块头中还包括预设的序列化规则所对应的序列化标识。
可选的,收发单元801还用于:接收待写入数据;
处理单元802还用于:
将待写入数据存入待写入数据集,并发送数据写入请求;数据写入请求中包括待写入数据;数据写入请求用于至少其它M-1个节点将待写入数据存入各自的待写入数据集;
处理单元802还用于:
在待写入数据集中待写入数据的数量达到预设数量或距离上一次构造新区块的时间间隔达到预设时间时,从待写入数据集中获取N个待写入数据。
可选的,处理单元802还用于:
从待写入数据集中去除共识区块中包含的N个待写入数据的序列化形式所对应的N个待写入数据。
基于相同的技术构思,本发明实施例还提供一种区块链节点,该节点能够实现上述任一实施例所提供的数据验证方法。图9为本发明实施例提供的一种区块链节点结构示意图,如图9所示,节点900包括:收发单元901和处理单元902,其中:
收发单元901,用于获取待验证数据的指纹信息;
处理单元902,用于从区块链中确定各区块是否包含指纹信息对应的序列化数据;区块链中的每个区块包括数据集合和区块头;数据集合中包括各已写入数据分别对应的序列化数据;区块头中包括区块的前一区块的区块头哈希值;
处理单元902,还用于若区块链中存在指纹信息对应的序列化数据,则确认待验证数据验证通过。
可选的,区块还包括含有N个数字签名的签名集合;N个数字签名与N个序列化数据一一对应;
处理单元902还用于:
在区块链中存在指纹信息对应的序列化数据时,从区块链中获取序列化数据对应的数字签名;
获取待验证数据的公钥信息;
根据公钥信息验证数字签名;
在数字签名验证通过时,确认待验证数据确权通过。
可选的,还包括存储单元903;
存储单元903用于存储本地索引库;本地索引库中包括区块链中各区块中已写入数据的指纹信息的索引信息;索引信息包括已写入数据所对应的序列化数据在区块链中的区块高度和指纹信息在所在区块中的位置编号:
处理单元902具体用于:
根据待验证数据的指纹信息查找本地索引库,获取待验证数据的指纹信息对应的索引信息;
从区块链中确定索引信息对应的已写入数据的序列化数据;
根据已写入数据的序列化数据,计算已写入数据的指纹信息;
当待验证数据的指纹信息与已写入数据的指纹信息一致时,确定区块链中存在指纹信息对应的序列化数据。
可选的,新区块的区块头中还包括N个待写入数据分别对应的N个指纹信息的根哈希值;
处理单元902还用于:
计算数据集合中N个序列化数据所对应的N个指纹信息的根哈希值;
在N个指纹信息的根哈希值与区块头中的根哈希值一致时,确认待验证数据验证通过。
可选的,新区块的区块头中还包含预设的序列化规则所对应的序列化标识;
处理单元902还用于:
根据序列化标识,反序列化序列化数据,获取待验证数据。
基于相同的技术构思,本发明实施例还提供一种区块链***,该***包含上述任一项所述的区块链生成装置以及上述任一项所述的数据验证装置,能够实现上述任一项所述的区块链生成方法以及上述任一项所述的数据验证方法。
可选的,本发明实施例所提供的区块链***还包括背书节点,该背书节点有别于区块链***中的对等节点,其在区块链***中用于:按设定规则从任一节点的本地区块链中确定背书区块;构造背书交易信息,背书交易信息的附加信息参数中包含背书区块的区块头哈希值;将背书交易信息发送至背书区块链***。
具体实施过程中,设定规则可以按照区块链中各区块区块头中时间戳,每个一段时间间隔选取一个作为背书区块,也可以根据区块的数量,每隔一定数量的区块选取一个作为背书区块。
可选的,区块链中最新的前b个区块不可作为背书区块,b可根据实际的区块链***情况决定,一般节点越多的区块链***,b的取值便越大。这是因为对于过于复杂的区块链***,***中信息的发送会存在一定的时延问题,这便导致前b个区块有可能并不是真正被加入区块链的区块。以图1所示的区块链***为例,在S203中,节点0在接收到其它节点广播的新区块之前构造出了符合难度值要求的新区块,此时节点0默认自身构造的新区块为区块链的共识区块并广播至节点4,节点4接收节点0广播的新区块并存入本地的区块链中作为共识区块。然而,实际情况可能是节点2才是***中率先构造出符合难度值要求的新区块的节点,节点2所构造的新区块才是区块链的共识区块,但由于***过于复杂,在节点0构造出符合难度值要求的新区块时节点2的新区块广播仍未到达节点0,在节点4接收节点0的新区块广播时节点2的新区块广播也为到达节点4,才造成节点0和节点4本地区块链发生错误。将区块链中最新的前b个区块排除作为背书区块的可能,可以保证所选择的背书区块都是稳定的、可靠的区块链区块。
可选的,背书区块链***可以是比特币网络,也可以是以太坊网络等大型的数字货币区块链***,这种***因为节点数量众多,对其区块链进行修改是几乎不可能实现的事情。将区块链中的部分区块的区块头写入背书区块链***,可以提高数据验证的可信性。具体的,在使用者对本发明实施例所提供的区块链***的验证结果存在质疑时,可通过查询背书区块链***中存入的背书区块的区块头哈希值与区块链中该背书区块的区块头哈希值是否一致,若不一致,说明区块链发生错误,若一致,说明验证结果可信。应理解,即使区块链发生错误,也不代表本发明实施例所提供的区块链***的数据验证完全丧失了可信性,对于确认待验证数据存在的验证结果依旧是可信的,而对于确认待验证数据不存在的验证结果则可行性较低。
通过在区块链***中增加背书节点,可以避免由于区块链链条高度不足,容易被攻击的问题,进一步提高了数据验证的可信性。
基于相同的技术构思,本发明实施例还提供一种计算设备,该计算设备具体可以为桌面计算机、便携式计算机、智能手机、平板电脑、个人数字助理(Personal DigitalAssistant,PDA)等。如图10所示,为本发明实施例提供的一种计算设备结构示意图,该计算设备可以包括中央处理器1001(Center Processing Unit,CPU)、存储器1002、输入设备1003、输出设备1004等,输入设备1003可以包括键盘、鼠标、触摸屏等,输出设备1004可以包括显示设备,如液晶显示器(Liquid Crystal Display,LCD)、阴极射线管(Cathode RayTube,CRT)等。
存储器1002可以包括只读存储器(ROM)和随机存取存储器(RAM),并向处理器提供存储器中存储的程序指令和数据。在本发明实施例中,存储器可以用于存储本发明实施例所提供的区块链生成方法的程序,处理器通过调用存储器存储的程序指令,按照获得的程序指令执行上述任一项所述的区块链生成方法。
基于相同的技术构思,本发明实施例还提供一种计算机可读存储介质,用于存储为上述计算设备所用的计算机程序指令,其包含用于执行上述任一项所述的区块链生成方法的程序。
所述计算机存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(MO)等)、光学存储器(例如CD、DVD、BD、HVD等)、以及半导体存储器(例如ROM、EPROM、EEPROM、非易失性存储器(NAND FLASH)、固态硬盘(SSD))等。
基于相同的技术构思,本发明实施例还提供一种计算设备,该计算设备具体可以为桌面计算机、便携式计算机、智能手机、平板电脑、个人数字助理(Personal DigitalAssistant,PDA)等。如图11所示,为本发明实施例提供的一种计算设备结构示意图,该计算设备可以包括中央处理器1101(Center Processing Unit,CPU)、存储器1102、输入设备1103、输出设备1104等,输入设备1103可以包括键盘、鼠标、触摸屏等,输出设备1104可以包括显示设备,如液晶显示器(Liquid Crystal Display,LCD)、阴极射线管(Cathode RayTube,CRT)等。
存储器1102可以包括只读存储器(ROM)和随机存取存储器(RAM),并向处理器提供存储器中存储的程序指令和数据。在本发明实施例中,存储器可以用于存储本发明实施例所提供的数据验证方法的程序,处理器通过调用存储器存储的程序指令,按照获得的程序指令执行上述任一项所述的数据验证方法。
基于相同的技术构思,本发明实施例还提供一种计算机可读存储介质,用于存储为上述计算设备所用的计算机程序指令,其包含用于执行上述任一项所述的数据验证方法的程序。
所述计算机存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(MO)等)、光学存储器(例如CD、DVD、BD、HVD等)、以及半导体存储器(例如ROM、EPROM、EEPROM、非易失性存储器(NAND FLASH)、固态硬盘(SSD))等。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (31)

1.一种区块链生成方法,应用于包含M个节点的区块链***,M大于等于3,其特征在于,针对所述M个节点中的每一个节点,包括:
获取N个待写入数据;N大于等于1;
根据预设的序列化规则分别序列化处理所述N个待写入数据,得到所述N个待写入数据分别对应的N个序列化数据;
构造新区块,所述新区块包括数据集合和区块头;所述数据集合中包括所述N个序列化数据;所述区块头中包括所述节点的本地区块链中前一区块的区块头哈希值;所述前一区块为所述本地区块链的最长链中最新加入的区块;
通过共识算法,从所述M个节点产生的新区块中确定满足所述共识算法规则的共识区块并将所述共识区块加入所述本地区块链。
2.如权利要求1所述的方法,其特征在于,所述新区块还包括含有N个数字签名的签名集合;
所述N个数字签名与所述N个序列化数据一一对应。
3.如权利要求1所述的方法,其特征在于,通过共识算法,从所述M个节点产生的新区块中确定满足所述共识算法规则的共识区块加入所述本地区块链之后,还包括:
针对所述共识区块中的每个序列化数据,获取与所述序列化数据对应的待写入数据的指纹信息;
将所述待写入数据的指纹信息以及所述待写入数据对应的索引信息保存在本地索引库中;所述索引信息包括所述待写入数据所对应的序列化数据在所述本地区块链中的区块高度和所述序列化数据在所述区块中的位置编号。
4.如权利要求1所述的方法,其特征在于,所述新区块的区块头中还包括所述N个待写入数据分别对应的N个指纹信息的根哈希值。
5.如权利要求4所述的方法,其特征在于,所述N个指纹信息的根哈希值是通过默克尔merkle树算法获得的;
所述方法还包括:
根据所述N个序列化数据分别计算所述N个待写入数据的N个指纹信息;
对所述N个指纹信息进行分组;
根据默克尔merkle树算法,计算每个分组的哈希值,获取所述N个指纹信息的下层哈希值;
对所述下层哈希值继续分组,并返回计算每个分组的哈希值的步骤直至获取所述根哈希值。
6.如权利要求1所述的方法,其特征在于,所述新区块的区块头中还包括所述预设的序列化规则所对应的序列化标识。
7.如权利要求1所述的方法,其特征在于,针对所述M个节点中的每一个节点,获取N个待写入数据之前,还包括:
针对任一个待写入数据,接收节点接收所述待写入数据,所述接收节点为所述M个节点中的任一节点;
所述接收节点将所述待写入数据存入所述接收节点的待写入数据集,并向其它M-1个节点发送数据写入请求;所述数据写入请求中包括所述待写入数据;所述数据写入请求用于指示所述其它M-1个节点中任一个节点将所述待写入数据存入各自的待写入数据集;
针对所述M个节点中的任一节点,在所述节点的待写入数据集中待写入数据的数量达到预设数量或距离上一次构造新区块的时间间隔达到预设时间时,从所述节点的待写入数据集中获取N个待写入数据。
8.如权利要求7所述的方法,其特征在于,通过共识算法,从所述M个节点产生的新区块中确定满足所述共识算法规则的共识区块加入所述本地区块链之后,还包括:
针对所述M个节点中的任一节点,从所述节点的待写入数据集中去除所述共识区块中包含的N个待写入数据的序列化形式所对应的N个待写入数据。
9.一种数据验证方法,应用于包含M个节点的区块链***,M大于等于3,其特征在于,包括:
验证节点获取待验证数据的指纹信息,所述验证节点为所述M个节点的任一节点;
所述验证节点从区块链中确定各区块是否包含所述指纹信息对应的序列化数据;所述区块链中的每个区块包括数据集合和区块头;所述数据集合中包括各已写入数据分别对应的序列化数据;所述区块头中包括区块的前一区块的区块头哈希值;
若所述区块链中存在所述指纹信息对应的序列化数据,则确认所述待验证数据验证通过。
10.如权利要求9所述的方法,其特征在于,所述区块还包括含有N个数字签名的签名集合;所述N个数字签名与所述N个序列化数据一一对应;
所述方法还包括:
在所述区块链中存在所述指纹信息对应的序列化数据时,从所述区块链中获取所述序列化数据对应的数字签名;
获取所述待验证数据的公钥信息;
根据所述公钥信息验证所述数字签名;
在所述数字签名验证通过时,确认所述待验证数据确权通过。
11.如权利要求9所述的方法,其特征在于,所述验证节点存有本地索引库;所述本地索引库中包括所述区块链中各区块中已写入数据的指纹信息的索引信息;所述索引信息包括所述已写入数据所对应的序列化数据在所述区块链中的区块高度和所述指纹信息在所在区块中的位置编号;
所述验证节点从区块链中确定各区块是否包含所述指纹信息对应的序列化数据,包括:
根据所述待验证数据的指纹信息查找所述本地索引库,获取所述待验证数据的指纹信息对应的索引信息;
从所述区块链中确定所述索引信息对应的已写入数据的序列化数据;
根据所述已写入数据的序列化数据,计算所述已写入数据的指纹信息;
当所述待验证数据的指纹信息与所述已写入数据的指纹信息一致时,确定所述区块链中存在所述指纹信息对应的序列化数据。
12.如权利要求9所述的方法,其特征在于,所述新区块的区块头中还包括所述N个待写入数据分别对应的N个指纹信息的根哈希值;
所述区块链中存在所述指纹信息对应的序列化数据,则确认所述待验证数据验证通过之后,还包括:
计算所述数据集合中N个序列化数据所对应的N个指纹信息的根哈希值;
在所述N个指纹信息的根哈希值与所述区块头中的根哈希值一致时,确认所述待验证数据验证通过。
13.如权利要求9所述的方法,其特征在于,所述新区块的区块头中还包含所述预设的序列化规则所对应的序列化标识;
确认所述待验证数据验证通过之后,还包括:
根据所述序列化标识,反序列化所述序列化数据,获取所述待验证数据。
14.一种区块链节点,应用于包含M个节点的区块链***,M大于等于3,其特征在于,包括:
收发单元,用于获取N个待写入数据;N大于等于1;
处理单元,用于根据预设的序列化规则分别序列化处理所述N个待写入数据,得到所述N个待写入数据分别对应的N个序列化数据;
所述处理单元,还用于构造新区块,所述新区块包括数据集合和区块头;所述数据集合中包括所述N个序列化数据;所述区块头中包括本地区块链中前一区块的区块头哈希值;所述前一区块为所述本地区块链的最长链中最新加入的区块;
所述处理单元,还用于通过共识算法,从所述M个节点产生的新区块中确定满足所述共识算法规则的共识区块并将所述共识区块加入所述本地区块链。
15.如权利要求14所述的节点,其特征在于,所述新区块还包括含有N个数字签名的签名集合;
所述N个数字签名与所述N个序列化数据一一对应。
16.如权利要求14所述的节点,其特征在于,所述处理单元还用于:
针对所述共识区块中的每个序列化数据,获取与所述序列化数据对应的待写入数据的指纹信息;
将所述待写入数据的指纹信息以及所述待写入数据对应的索引信息保存在本地索引库中;所述索引信息包括所述待写入数据所对应的序列化数据在所述本地区块链中的区块高度和所述序列化数据在所述区块中的位置编号。
17.如权利要求14所述的节点,其特征在于,所述新区块的区块头中还包括所述N个待写入数据分别对应的N个指纹信息的根哈希值。
18.如权利要求17所述的节点,其特征在于,所述N个指纹信息的根哈希值是通过默克尔merkle树算法获得的;
所述处理单元还用于:
根据所述N个序列化数据分别计算所述N个待写入数据的N个指纹信息;
对所述N个指纹信息进行分组;
根据默克尔merkle树算法,计算每个分组的哈希值,获取所述N个指纹信息的下层哈希值;
对所述下层哈希值继续分组,并返回计算每个分组的哈希值的步骤直至获取所述根哈希值。
19.如权利要求14所述的节点,其特征在于,所述新区块的区块头中还包括所述预设的序列化规则所对应的序列化标识。
20.如权利要求14所述的节点,其特征在于,
所述收发单元还用于:接收所述待写入数据;
所述处理单元还用于:
将所述待写入数据存入待写入数据集,并发送数据写入请求;所述数据写入请求中包括所述待写入数据;所述数据写入请求用于至少所述其它M-1个节点将所述待写入数据存入各自的待写入数据集;
所述处理单元还用于:
在所述待写入数据集中待写入数据的数量达到预设数量或距离上一次构造新区块的时间间隔达到预设时间时,从所述待写入数据集中获取N个待写入数据。
21.如权利要求20所述的节点,其特征在于,所述处理单元还用于:
从所述待写入数据集中去除所述共识区块中包含的N个待写入数据的序列化形式所对应的N个待写入数据。
22.一种区块链节点,应用于包含M个节点的区块链***,M大于等于3,其特征在于,包括:
收发单元,用于获取待验证数据的指纹信息;
处理单元,用于从区块链中确定各区块是否包含所述指纹信息对应的序列化数据;所述区块链中的每个区块包括数据集合和区块头;所述数据集合中包括各已写入数据分别对应的序列化数据;所述区块头中包括区块的前一区块的区块头哈希值;
所述处理单元,还用于若所述区块链中存在所述指纹信息对应的序列化数据,则确认所述待验证数据验证通过。
23.如权利要求22所述的节点,其特征在于,所述区块还包括含有N个数字签名的签名集合;所述N个数字签名与所述N个序列化数据一一对应;
所述处理单元还用于:
在所述区块链中存在所述指纹信息对应的序列化数据时,从所述区块链中获取所述序列化数据对应的数字签名;
获取所述待验证数据的公钥信息;
根据所述公钥信息验证所述数字签名;
在所述数字签名验证通过时,确认所述待验证数据确权通过。
24.如权利要求22所述的节点,其特征在于,还包括存储单元;
所述存储单元用于存储本地索引库;所述本地索引库中包括所述区块链中各区块中已写入数据的指纹信息的索引信息;所述索引信息包括所述已写入数据所对应的序列化数据在所述区块链中的区块高度和所述指纹信息在所在区块中的位置编号;
所述处理单元具体用于:
根据所述待验证数据的指纹信息查找所述本地索引库,获取所述待验证数据的指纹信息对应的索引信息;
从所述区块链中确定所述索引信息对应的已写入数据的序列化数据;
根据所述已写入数据的序列化数据,计算所述已写入数据的指纹信息;
当所述待验证数据的指纹信息与所述已写入数据的指纹信息一致时,确定所述区块链中存在所述指纹信息对应的序列化数据。
25.如权利要求22所述的节点,其特征在于,所述新区块的区块头中还包括所述N个待写入数据分别对应的N个指纹信息的根哈希值;
所述处理单元还用于:
计算所述数据集合中N个序列化数据所对应的N个指纹信息的根哈希值;
在所述N个指纹信息的根哈希值与所述区块头中的根哈希值一致时,确认所述待验证数据验证通过。
26.如权利要求22所述的节点,其特征在于,所述新区块的区块头中还包含所述预设的序列化规则所对应的序列化标识;
所述处理单元还用于:
根据所述序列化标识,反序列化所述序列化数据,获取所述待验证数据。
27.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行权利要求1至8任一项所述的区块链生成方法。
28.一种计算设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行如权利要求1至8任一项所述的区块链生成方法。
29.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行权利要求9至13任一项所述的数据验证方法。
30.一种计算设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行如权利要求9至13任一项所述的数据验证方法。
31.一种区块链***,包含M个节点,M大于等于3,其特征在于,包含如权利要求14至21任一项所述的区块链节点以及如权利要求22至26任一项所述的区块链节点。
CN201710842472.5A 2017-09-18 2017-09-18 一种区块链生成方法、数据验证方法、节点及*** Active CN107657438B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710842472.5A CN107657438B (zh) 2017-09-18 2017-09-18 一种区块链生成方法、数据验证方法、节点及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710842472.5A CN107657438B (zh) 2017-09-18 2017-09-18 一种区块链生成方法、数据验证方法、节点及***

Publications (2)

Publication Number Publication Date
CN107657438A true CN107657438A (zh) 2018-02-02
CN107657438B CN107657438B (zh) 2020-12-04

Family

ID=61130392

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710842472.5A Active CN107657438B (zh) 2017-09-18 2017-09-18 一种区块链生成方法、数据验证方法、节点及***

Country Status (1)

Country Link
CN (1) CN107657438B (zh)

Cited By (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108416593A (zh) * 2018-03-20 2018-08-17 杨鉴 一种基于网络分散度证明的区块链共识方法和***
CN108509514A (zh) * 2018-03-09 2018-09-07 史玉成 一种基于区块链的大数据分析方法及***
CN108521414A (zh) * 2018-03-30 2018-09-11 深圳市优课在线教育有限公司 一种实现在线应用平台过程行为数据互信的方法
CN108550038A (zh) * 2018-04-18 2018-09-18 杭州秘猿科技有限公司 一种应用于区块链的数据传播***及方法
CN108595538A (zh) * 2018-04-04 2018-09-28 中国地质大学(武汉) 一种基于区块链的键值数据组织方法及***
CN108616574A (zh) * 2018-03-30 2018-10-02 华为技术有限公司 管理数据的存储方法、设备及存储介质
CN108628942A (zh) * 2018-03-27 2018-10-09 深圳市网心科技有限公司 区块链节点设备、分布式数据库的数据读取及写入方法
CN108629205A (zh) * 2018-04-27 2018-10-09 中国联合网络通信集团有限公司 药品质量检测数据的监管方法及装置
CN108664623A (zh) * 2018-05-14 2018-10-16 中钞***产业发展有限公司杭州区块链技术研究院 一种数据存储方法、装置、设备及介质
CN108667614A (zh) * 2018-04-19 2018-10-16 上海分布信息科技有限公司 一种拜占庭容错方法及其实现***
CN108694669A (zh) * 2018-07-18 2018-10-23 矩阵元技术(深圳)有限公司 一种区块链智能合约实现方法及装置
CN108696514A (zh) * 2018-04-27 2018-10-23 腾讯科技(深圳)有限公司 资源收集任务管理方法、装置、存储介质及***
CN108830712A (zh) * 2018-05-17 2018-11-16 易链科技(深圳)有限公司 区块生成的方法、装置、设备和介质
CN108876378A (zh) * 2018-07-11 2018-11-23 杨国超 公有链数据加密备份方法
CN108898389A (zh) * 2018-06-26 2018-11-27 阿里巴巴集团控股有限公司 基于区块链的内容验证方法及装置、电子设备
CN108920966A (zh) * 2018-06-25 2018-11-30 北京奇虎科技有限公司 一种区块链存证、取证方法及装置
CN108924252A (zh) * 2018-07-31 2018-11-30 泰链(厦门)科技有限公司 区块链***中减轻节点存储负荷的方法、介质及区块链***
CN108924114A (zh) * 2018-06-25 2018-11-30 北京奇虎科技有限公司 一种链上数据锚定方法及装置
CN108959642A (zh) * 2018-07-27 2018-12-07 百度在线网络技术(北京)有限公司 用于写入信息的方法和装置
CN108960837A (zh) * 2018-06-05 2018-12-07 上海和数软件有限公司 区块链共识验证方法、装置及计算机可读存储介质
CN109033214A (zh) * 2018-06-28 2018-12-18 威马智慧出行科技(上海)有限公司 共享汽车数据的数据管理***及方法
CN109063493A (zh) * 2018-07-11 2018-12-21 杨国超 去中心化高性能同步方法
CN109067541A (zh) * 2018-06-29 2018-12-21 阿里巴巴集团控股有限公司 基于区块链的数据验证方法及装置、电子设备
CN109067849A (zh) * 2018-07-11 2018-12-21 杨国超 基于区块的数据同步方法
CN109191126A (zh) * 2018-09-10 2019-01-11 南京荣链科技有限公司 一种基于区块链的现金跨行流转方法、终端及介质
CN109189853A (zh) * 2018-08-08 2019-01-11 众安信息技术服务有限公司 一种区块链之间数据同步方法与装置
CN109214823A (zh) * 2018-08-27 2019-01-15 北京京东金融科技控股有限公司 基于区块链的交易验证方法、装置、存储介质及电子设备
CN109309723A (zh) * 2018-08-18 2019-02-05 上海分布信息科技有限公司 一种共识节点变更方法及其实现***
CN109409889A (zh) * 2018-11-13 2019-03-01 杭州秘猿科技有限公司 一种区块链中的区块确定方法、装置及电子设备
CN109508905A (zh) * 2018-12-18 2019-03-22 深圳壹账通智能科技有限公司 基于区块链的药物监管方法及装置、存储介质和服务器
CN109547407A (zh) * 2018-10-16 2019-03-29 北京英视睿达科技有限公司 一种环境监测数据的全过程追踪方法及区块链节点
CN109634959A (zh) * 2018-11-30 2019-04-16 北京瑞卓喜投科技发展有限公司 一种区块索引方法及区块索引装置
CN109740317A (zh) * 2018-12-29 2019-05-10 北京奇虎科技有限公司 一种基于区块链的数字指纹存证方法及装置
CN109753823A (zh) * 2018-12-11 2019-05-14 烨链(上海)科技有限公司 一种区块链数据监管方法、***及计算机存储介质
CN109766727A (zh) * 2018-12-25 2019-05-17 中链科技有限公司 智能区块网络构建方法及***
CN109766723A (zh) * 2018-12-11 2019-05-17 烨链(上海)科技有限公司 一种区块链数据架构、监管架构、监管方法及计算机可读存储介质
CN109802993A (zh) * 2018-12-13 2019-05-24 深圳市链联科技有限公司 一种基于供应链生态的联盟链搭建方法
CN109815373A (zh) * 2018-08-31 2019-05-28 阿里巴巴集团控股有限公司 数据存储的控制方法、装置、服务器及可读存储介质
CN109886045A (zh) * 2019-02-15 2019-06-14 北京工业大学 基于区块链的知识产权数据保护、交易以及维权方法及装置
CN110097361A (zh) * 2019-04-01 2019-08-06 南京思利华信息科技有限公司 一种基于x11算法的区块链动态算力共识方法及计算机***
CN110119947A (zh) * 2018-02-07 2019-08-13 上海策赢网络科技有限公司 共享工作量证明算力生成共生区块链的方法和设备
CN110191156A (zh) * 2019-05-08 2019-08-30 深圳前海微众银行股份有限公司 一种基于区块链的数据处理方法及装置
CN110347744A (zh) * 2019-06-03 2019-10-18 阿里巴巴集团控股有限公司 多层块链式账本的数据存储方法、装置及设备
CN110503558A (zh) * 2019-08-29 2019-11-26 深圳前海微众银行股份有限公司 一种基于区块链***的处理方法及装置
CN110598190A (zh) * 2019-09-06 2019-12-20 湖南天河国云科技有限公司 一种基于区块链的链上文本数据确权方法
CN110738472A (zh) * 2018-07-20 2020-01-31 北京航空航天大学 区块链的存储方法和区块链的节点
CN110866751A (zh) * 2018-08-28 2020-03-06 傲为信息技术(江苏)有限公司 区块链平行链的维护方法及区块链平行链
CN110868286A (zh) * 2018-12-29 2020-03-06 北京版全家科技发展有限公司 一种基于区块链智能合约生成随机数的方法
CN110889729A (zh) * 2019-11-29 2020-03-17 腾讯科技(深圳)有限公司 一种基于区块链网络的数据验证方法和装置
CN110989934A (zh) * 2019-12-05 2020-04-10 达闼科技成都有限公司 区块链节点数据存储方法、区块链***及区块链节点
CN111327676A (zh) * 2020-01-20 2020-06-23 腾讯科技(深圳)有限公司 区块数据处理方法及装置
CN111464518A (zh) * 2020-03-25 2020-07-28 北京创世智链信息技术研究院 一种跨链通信数据的发送、验证方法及装置
CN111523887A (zh) * 2020-04-15 2020-08-11 杭州溪塔科技有限公司 智能合约只读方法的权限控制方法、装置及电子设备
WO2020199713A1 (zh) * 2019-04-04 2020-10-08 创新先进技术有限公司 数据验证方法、***、装置及设备
CN111985003A (zh) * 2019-05-24 2020-11-24 国际商业机器公司 数据库恶意对等体识别
CN112035475A (zh) * 2020-08-28 2020-12-04 平安科技(深圳)有限公司 区块链的区块存储方法、装置、节点设备及存储介质
CN112100171A (zh) * 2020-08-12 2020-12-18 北京大学 一种对随机共识的图式账本建立内容索引的方法和装置
CN112116360A (zh) * 2020-08-14 2020-12-22 宇龙计算机通信科技(深圳)有限公司 鞋子防伪方法、装置、存储介质以及电子设备
CN112199729A (zh) * 2020-11-11 2021-01-08 山西特信环宇信息技术有限公司 一种锥体区块链的验证方法及***
US10917231B2 (en) 2019-04-04 2021-02-09 Advanced New Technologies Co., Ltd. Data storage method, apparatus, system and device
CN112351117A (zh) * 2020-11-25 2021-02-09 北京邮电大学 一种域名管理方法、装置、电子设备及存储介质
CN112348518A (zh) * 2020-10-15 2021-02-09 深圳前海微众银行股份有限公司 一种区块链交易证明的方法及装置
US10949118B2 (en) 2019-06-03 2021-03-16 Advanced New Technologies Co., Ltd. Data storage method, apparatus, and device for multi-layer blockchain-type ledger
CN112866242A (zh) * 2021-01-15 2021-05-28 迅鳐成都科技有限公司 一种基于区块链的数字身份验证方法、设备及存储介质
CN112910845A (zh) * 2021-01-15 2021-06-04 迅鳐成都科技有限公司 一种基于区块链的数字身份生成方法、设备及存储介质
CN113037496A (zh) * 2021-03-15 2021-06-25 承德石油高等专科学校 一种基于区块链技术视频采集装置及其方法
US11055277B2 (en) 2019-04-04 2021-07-06 Advanced New Technologies Co., Ltd. Integrity verification method, apparatus, and system and device for data in a blockchain-type ledger
CN113282966A (zh) * 2021-06-07 2021-08-20 中国电子科技集团公司第三十研究所 一种基于区块链的数据确权方法
US20220141022A1 (en) * 2020-11-03 2022-05-05 Cognizant Technology Solutions India Pvt. Ltd System and method for securing and authenticating serialized data associated with a product
CN114449197A (zh) * 2021-12-30 2022-05-06 厦门市美亚柏科信息股份有限公司 一种电子证据保存和出示方法及***
CN115297118A (zh) * 2022-10-09 2022-11-04 北京航空航天大学杭州创新研究院 一种基于区块链的数据共享方法及数据共享***
CN117254975A (zh) * 2023-11-14 2023-12-19 深圳市嘉合劲威电子科技有限公司 一种基于区块链的数据防伪方法及***

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105790954A (zh) * 2016-03-02 2016-07-20 布比(北京)网络技术有限公司 一种构建电子证据的方法和***
CN106548091A (zh) * 2016-10-14 2017-03-29 北京爱接力科技发展有限公司 一种数据存证、验证的方法及装置
US9679276B1 (en) * 2016-01-26 2017-06-13 Stampery, Inc. Systems and methods for using a block chain to certify the existence, integrity, and/or ownership of a file or communication

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9679276B1 (en) * 2016-01-26 2017-06-13 Stampery, Inc. Systems and methods for using a block chain to certify the existence, integrity, and/or ownership of a file or communication
CN105790954A (zh) * 2016-03-02 2016-07-20 布比(北京)网络技术有限公司 一种构建电子证据的方法和***
CN106548091A (zh) * 2016-10-14 2017-03-29 北京爱接力科技发展有限公司 一种数据存证、验证的方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
袁勇等: "区块链技术发展现状与展望", 《自动化学报》 *

Cited By (114)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110119947A (zh) * 2018-02-07 2019-08-13 上海策赢网络科技有限公司 共享工作量证明算力生成共生区块链的方法和设备
CN110119947B (zh) * 2018-02-07 2021-08-10 上海策赢网络科技有限公司 共享工作量证明算力生成共生区块链的方法和设备
CN108509514A (zh) * 2018-03-09 2018-09-07 史玉成 一种基于区块链的大数据分析方法及***
CN108416593A (zh) * 2018-03-20 2018-08-17 杨鉴 一种基于网络分散度证明的区块链共识方法和***
CN108416593B (zh) * 2018-03-20 2021-02-12 杨鉴 一种基于网络分散度证明的区块链共识方法和***
CN108628942A (zh) * 2018-03-27 2018-10-09 深圳市网心科技有限公司 区块链节点设备、分布式数据库的数据读取及写入方法
CN108628942B (zh) * 2018-03-27 2020-07-31 深圳市网心科技有限公司 区块链节点设备、分布式数据库的数据读取及写入方法
CN108521414A (zh) * 2018-03-30 2018-09-11 深圳市优课在线教育有限公司 一种实现在线应用平台过程行为数据互信的方法
WO2019184775A1 (zh) * 2018-03-30 2019-10-03 华为技术有限公司 管理数据的存储方法、设备及存储介质
CN108616574B (zh) * 2018-03-30 2020-06-16 华为技术有限公司 管理数据的存储方法、设备及存储介质
CN108616574A (zh) * 2018-03-30 2018-10-02 华为技术有限公司 管理数据的存储方法、设备及存储介质
CN108595538B (zh) * 2018-04-04 2020-05-01 中国地质大学(武汉) 一种基于区块链的键值数据组织方法及***
CN108595538A (zh) * 2018-04-04 2018-09-28 中国地质大学(武汉) 一种基于区块链的键值数据组织方法及***
CN108550038A (zh) * 2018-04-18 2018-09-18 杭州秘猿科技有限公司 一种应用于区块链的数据传播***及方法
CN108667614B (zh) * 2018-04-19 2021-02-02 上海分布信息科技有限公司 一种拜占庭容错方法及其实现***
CN108667614A (zh) * 2018-04-19 2018-10-16 上海分布信息科技有限公司 一种拜占庭容错方法及其实现***
CN108696514A (zh) * 2018-04-27 2018-10-23 腾讯科技(深圳)有限公司 资源收集任务管理方法、装置、存储介质及***
CN108629205A (zh) * 2018-04-27 2018-10-09 中国联合网络通信集团有限公司 药品质量检测数据的监管方法及装置
CN108664623A (zh) * 2018-05-14 2018-10-16 中钞***产业发展有限公司杭州区块链技术研究院 一种数据存储方法、装置、设备及介质
CN108830712A (zh) * 2018-05-17 2018-11-16 易链科技(深圳)有限公司 区块生成的方法、装置、设备和介质
CN108960837A (zh) * 2018-06-05 2018-12-07 上海和数软件有限公司 区块链共识验证方法、装置及计算机可读存储介质
CN108920966A (zh) * 2018-06-25 2018-11-30 北京奇虎科技有限公司 一种区块链存证、取证方法及装置
CN108924114A (zh) * 2018-06-25 2018-11-30 北京奇虎科技有限公司 一种链上数据锚定方法及装置
CN108924114B (zh) * 2018-06-25 2021-11-19 北京奇虎科技有限公司 一种链上数据锚定方法及装置
CN113537984A (zh) * 2018-06-26 2021-10-22 创新先进技术有限公司 基于区块链的内容验证方法及装置、电子设备
CN108898389A (zh) * 2018-06-26 2018-11-27 阿里巴巴集团控股有限公司 基于区块链的内容验证方法及装置、电子设备
US11196572B2 (en) 2018-06-26 2021-12-07 Advanced New Technologies Co., Ltd. Blockchain-based content verification
US11108568B2 (en) 2018-06-26 2021-08-31 Advanced New Technologies Co., Ltd. Blockchain-based content verification
CN108898389B (zh) * 2018-06-26 2021-05-18 创新先进技术有限公司 基于区块链的内容验证方法及装置、电子设备
CN109033214A (zh) * 2018-06-28 2018-12-18 威马智慧出行科技(上海)有限公司 共享汽车数据的数据管理***及方法
CN109067541A (zh) * 2018-06-29 2018-12-21 阿里巴巴集团控股有限公司 基于区块链的数据验证方法及装置、电子设备
CN109067541B (zh) * 2018-06-29 2020-09-22 阿里巴巴集团控股有限公司 基于区块链的数据验证方法及装置、电子设备
CN108876378A (zh) * 2018-07-11 2018-11-23 杨国超 公有链数据加密备份方法
CN108876378B (zh) * 2018-07-11 2022-04-19 北京国泰网信科技有限公司 公有链数据加密备份方法
CN109067849A (zh) * 2018-07-11 2018-12-21 杨国超 基于区块的数据同步方法
CN109067849B (zh) * 2018-07-11 2021-11-16 西康软件股份有限公司 基于区块的数据同步方法
CN109063493A (zh) * 2018-07-11 2018-12-21 杨国超 去中心化高性能同步方法
CN109063493B (zh) * 2018-07-11 2021-10-29 西康软件股份有限公司 去中心化高性能同步方法
CN108694669A (zh) * 2018-07-18 2018-10-23 矩阵元技术(深圳)有限公司 一种区块链智能合约实现方法及装置
CN110738472A (zh) * 2018-07-20 2020-01-31 北京航空航天大学 区块链的存储方法和区块链的节点
CN110738472B (zh) * 2018-07-20 2023-10-03 北京航空航天大学 区块链的存储方法和区块链的节点
CN108959642A (zh) * 2018-07-27 2018-12-07 百度在线网络技术(北京)有限公司 用于写入信息的方法和装置
CN108924252A (zh) * 2018-07-31 2018-11-30 泰链(厦门)科技有限公司 区块链***中减轻节点存储负荷的方法、介质及区块链***
CN108924252B (zh) * 2018-07-31 2021-06-04 泰链(厦门)科技有限公司 区块链***中减轻节点存储负荷的方法、介质及区块链***
CN109189853A (zh) * 2018-08-08 2019-01-11 众安信息技术服务有限公司 一种区块链之间数据同步方法与装置
CN109309723B (zh) * 2018-08-18 2021-05-04 上海分布信息科技有限公司 一种共识节点变更方法及其实现***
CN109309723A (zh) * 2018-08-18 2019-02-05 上海分布信息科技有限公司 一种共识节点变更方法及其实现***
CN109214823A (zh) * 2018-08-27 2019-01-15 北京京东金融科技控股有限公司 基于区块链的交易验证方法、装置、存储介质及电子设备
CN110866751B (zh) * 2018-08-28 2022-08-12 傲为有限公司 区块链平行链的维护方法及区块链平行链***
CN110866751A (zh) * 2018-08-28 2020-03-06 傲为信息技术(江苏)有限公司 区块链平行链的维护方法及区块链平行链
CN109815373A (zh) * 2018-08-31 2019-05-28 阿里巴巴集团控股有限公司 数据存储的控制方法、装置、服务器及可读存储介质
TWI698763B (zh) * 2018-08-31 2020-07-11 香港商阿里巴巴集團服務有限公司 資料儲存的控制方法、裝置、伺服器及可讀儲存媒體
CN109191126A (zh) * 2018-09-10 2019-01-11 南京荣链科技有限公司 一种基于区块链的现金跨行流转方法、终端及介质
CN109547407A (zh) * 2018-10-16 2019-03-29 北京英视睿达科技有限公司 一种环境监测数据的全过程追踪方法及区块链节点
CN109547407B (zh) * 2018-10-16 2024-01-12 国际商业机器公司 一种环境监测数据的全过程追踪方法及区块链节点
CN109409889A (zh) * 2018-11-13 2019-03-01 杭州秘猿科技有限公司 一种区块链中的区块确定方法、装置及电子设备
CN109409889B (zh) * 2018-11-13 2021-11-12 杭州秘猿科技有限公司 一种区块链中的区块确定方法、装置及电子设备
CN109634959A (zh) * 2018-11-30 2019-04-16 北京瑞卓喜投科技发展有限公司 一种区块索引方法及区块索引装置
CN109766723A (zh) * 2018-12-11 2019-05-17 烨链(上海)科技有限公司 一种区块链数据架构、监管架构、监管方法及计算机可读存储介质
CN109753823A (zh) * 2018-12-11 2019-05-14 烨链(上海)科技有限公司 一种区块链数据监管方法、***及计算机存储介质
CN109802993B (zh) * 2018-12-13 2021-06-04 深圳市链联科技有限公司 一种基于供应链生态的联盟链搭建方法
CN109802993A (zh) * 2018-12-13 2019-05-24 深圳市链联科技有限公司 一种基于供应链生态的联盟链搭建方法
CN109508905A (zh) * 2018-12-18 2019-03-22 深圳壹账通智能科技有限公司 基于区块链的药物监管方法及装置、存储介质和服务器
CN109766727A (zh) * 2018-12-25 2019-05-17 中链科技有限公司 智能区块网络构建方法及***
CN109740317A (zh) * 2018-12-29 2019-05-10 北京奇虎科技有限公司 一种基于区块链的数字指纹存证方法及装置
CN110868286A (zh) * 2018-12-29 2020-03-06 北京版全家科技发展有限公司 一种基于区块链智能合约生成随机数的方法
CN110868286B (zh) * 2018-12-29 2023-05-12 北京版全家科技发展有限公司 一种基于区块链智能合约生成随机数的方法
CN109886045A (zh) * 2019-02-15 2019-06-14 北京工业大学 基于区块链的知识产权数据保护、交易以及维权方法及装置
CN109886045B (zh) * 2019-02-15 2020-11-03 北京工业大学 基于区块链的知识产权数据保护、交易以及维权方法及装置
CN110097361B (zh) * 2019-04-01 2023-04-07 南京思利华信息科技有限公司 一种基于x11算法的区块链动态算力共识方法及计算机***
CN110097361A (zh) * 2019-04-01 2019-08-06 南京思利华信息科技有限公司 一种基于x11算法的区块链动态算力共识方法及计算机***
US10917231B2 (en) 2019-04-04 2021-02-09 Advanced New Technologies Co., Ltd. Data storage method, apparatus, system and device
WO2020199713A1 (zh) * 2019-04-04 2020-10-08 创新先进技术有限公司 数据验证方法、***、装置及设备
US11055277B2 (en) 2019-04-04 2021-07-06 Advanced New Technologies Co., Ltd. Integrity verification method, apparatus, and system and device for data in a blockchain-type ledger
CN110191156A (zh) * 2019-05-08 2019-08-30 深圳前海微众银行股份有限公司 一种基于区块链的数据处理方法及装置
CN110191156B (zh) * 2019-05-08 2021-11-09 深圳前海微众银行股份有限公司 一种基于区块链的数据处理方法及装置
CN111985003A (zh) * 2019-05-24 2020-11-24 国际商业机器公司 数据库恶意对等体识别
US11949691B2 (en) 2019-05-24 2024-04-02 International Business Machines Corporation Malicious peer identification
US10949118B2 (en) 2019-06-03 2021-03-16 Advanced New Technologies Co., Ltd. Data storage method, apparatus, and device for multi-layer blockchain-type ledger
CN110347744A (zh) * 2019-06-03 2019-10-18 阿里巴巴集团控股有限公司 多层块链式账本的数据存储方法、装置及设备
CN110503558A (zh) * 2019-08-29 2019-11-26 深圳前海微众银行股份有限公司 一种基于区块链***的处理方法及装置
CN110503558B (zh) * 2019-08-29 2023-10-03 深圳前海微众银行股份有限公司 一种基于区块链***的处理方法及装置
CN110598190B (zh) * 2019-09-06 2024-03-08 湖南天河国云科技有限公司 一种基于区块链的链上文本数据确权方法
CN110598190A (zh) * 2019-09-06 2019-12-20 湖南天河国云科技有限公司 一种基于区块链的链上文本数据确权方法
CN110889729A (zh) * 2019-11-29 2020-03-17 腾讯科技(深圳)有限公司 一种基于区块链网络的数据验证方法和装置
CN110889729B (zh) * 2019-11-29 2024-03-26 腾讯科技(深圳)有限公司 一种基于区块链网络的数据验证方法和装置
CN110989934A (zh) * 2019-12-05 2020-04-10 达闼科技成都有限公司 区块链节点数据存储方法、区块链***及区块链节点
CN110989934B (zh) * 2019-12-05 2023-08-25 达闼机器人股份有限公司 区块链节点数据存储方法、区块链***及区块链节点
CN111327676A (zh) * 2020-01-20 2020-06-23 腾讯科技(深圳)有限公司 区块数据处理方法及装置
CN111327676B (zh) * 2020-01-20 2023-11-28 腾讯科技(深圳)有限公司 区块数据处理方法及装置
CN111464518A (zh) * 2020-03-25 2020-07-28 北京创世智链信息技术研究院 一种跨链通信数据的发送、验证方法及装置
CN111523887A (zh) * 2020-04-15 2020-08-11 杭州溪塔科技有限公司 智能合约只读方法的权限控制方法、装置及电子设备
CN111523887B (zh) * 2020-04-15 2023-05-02 杭州溪塔科技有限公司 智能合约只读方法的权限控制方法、装置及电子设备
CN112100171B (zh) * 2020-08-12 2021-06-25 北京大学 一种对随机共识的图式账本建立内容索引的方法和装置
CN112100171A (zh) * 2020-08-12 2020-12-18 北京大学 一种对随机共识的图式账本建立内容索引的方法和装置
CN112116360A (zh) * 2020-08-14 2020-12-22 宇龙计算机通信科技(深圳)有限公司 鞋子防伪方法、装置、存储介质以及电子设备
CN112035475B (zh) * 2020-08-28 2023-06-02 平安科技(深圳)有限公司 区块链的区块存储方法、装置、节点设备及存储介质
CN112035475A (zh) * 2020-08-28 2020-12-04 平安科技(深圳)有限公司 区块链的区块存储方法、装置、节点设备及存储介质
WO2022041900A1 (zh) * 2020-08-28 2022-03-03 平安科技(深圳)有限公司 区块链的区块存储方法、装置、节点设备及存储介质
CN112348518A (zh) * 2020-10-15 2021-02-09 深圳前海微众银行股份有限公司 一种区块链交易证明的方法及装置
CN112348518B (zh) * 2020-10-15 2022-09-16 深圳前海微众银行股份有限公司 一种区块链交易证明的方法及装置
US20220141022A1 (en) * 2020-11-03 2022-05-05 Cognizant Technology Solutions India Pvt. Ltd System and method for securing and authenticating serialized data associated with a product
US11652636B2 (en) * 2020-11-03 2023-05-16 Cognizant Technology Solutions India Pvt. Ltd. System and method for securing and authenticating serialized data associated with a product
CN112199729A (zh) * 2020-11-11 2021-01-08 山西特信环宇信息技术有限公司 一种锥体区块链的验证方法及***
CN112199729B (zh) * 2020-11-11 2023-09-12 山西特信环宇信息技术有限公司 一种锥体区块链的验证方法及***
CN112351117A (zh) * 2020-11-25 2021-02-09 北京邮电大学 一种域名管理方法、装置、电子设备及存储介质
CN112866242A (zh) * 2021-01-15 2021-05-28 迅鳐成都科技有限公司 一种基于区块链的数字身份验证方法、设备及存储介质
CN112910845A (zh) * 2021-01-15 2021-06-04 迅鳐成都科技有限公司 一种基于区块链的数字身份生成方法、设备及存储介质
CN113037496A (zh) * 2021-03-15 2021-06-25 承德石油高等专科学校 一种基于区块链技术视频采集装置及其方法
CN113282966A (zh) * 2021-06-07 2021-08-20 中国电子科技集团公司第三十研究所 一种基于区块链的数据确权方法
CN114449197A (zh) * 2021-12-30 2022-05-06 厦门市美亚柏科信息股份有限公司 一种电子证据保存和出示方法及***
CN115297118B (zh) * 2022-10-09 2023-01-31 北京航空航天大学杭州创新研究院 一种基于区块链的数据共享方法及数据共享***
CN115297118A (zh) * 2022-10-09 2022-11-04 北京航空航天大学杭州创新研究院 一种基于区块链的数据共享方法及数据共享***
CN117254975A (zh) * 2023-11-14 2023-12-19 深圳市嘉合劲威电子科技有限公司 一种基于区块链的数据防伪方法及***

Also Published As

Publication number Publication date
CN107657438B (zh) 2020-12-04

Similar Documents

Publication Publication Date Title
CN107657438A (zh) 一种区块链生成方法、数据验证方法、节点及***
CN107807951A (zh) 一种区块链生成方法、数据验证方法、节点及***
TWI727292B (zh) 區塊鏈交易方法及裝置、電子設備
CN109102269B (zh) 基于区块链的转账方法及装置、区块链节点及存储介质
JP2024073535A (ja) ブロックチェーンを用いる論理ゲート機能の実装
EP4184410A1 (en) Operating system for blockchain iot devices
CN107368259A (zh) 一种向区块链***中写入业务数据的方法和装置
CN107171812A (zh) 一种基于区块链的无密钥签名基础设施构建方法
CN113874897A (zh) 用于通过区块链网络实现转账的计算机实现的***和方法
CN107239954A (zh) 一种提高区块产生速度的方法及装置
US11133936B1 (en) Methods and systems for introducing self-contained intent functionality into decentralized computer networks
Imam et al. DOC-BLOCK: A blockchain based authentication system for digital documents
CN110930152B (zh) 一种基于区块链的数据处理方法及相关设备
US11870654B2 (en) Methods and systems for introducing self-contained intent functionality into decentralized computer networks
CN113052599B (zh) 交易凭证的生成、验证及存储方法、装置、设备和***
WO2020160391A1 (en) An efficient, environmental and consumer friendly consensus method for cryptographic transactions
CN111178840A (zh) 业务处理方法及装置、***、电子设备、存储介质
CN107070896B (zh) 一种安全高效的区块链网络客户化登录方法及安全加固***
CN111967967A (zh) 基于区块链的跨行支付业务处理方法及装置
CN109509099A (zh) 数据交易方法及装置、计算设备、存储介质
CN109889523A (zh) 物联网服务评测信息的管理方法及***
CN109767217A (zh) 数字资产、服务器、终端及数字资产交易方法
CN110188572A (zh) 一种应用于区块链的可消耗凭证的验证方法和装置
CN115659417A (zh) 审计日志存储方法、验证方法、装置和计算机设备
CN113132459B (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