CN109840769B - 基于区块链的存证方法及装置、系统与存储介质 - Google Patents

基于区块链的存证方法及装置、系统与存储介质 Download PDF

Info

Publication number
CN109840769B
CN109840769B CN201910053732.XA CN201910053732A CN109840769B CN 109840769 B CN109840769 B CN 109840769B CN 201910053732 A CN201910053732 A CN 201910053732A CN 109840769 B CN109840769 B CN 109840769B
Authority
CN
China
Prior art keywords
node
merkle tree
storage
data node
block chain
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
Application number
CN201910053732.XA
Other languages
English (en)
Other versions
CN109840769A (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.)
China United Network Communications Group Co Ltd
Original Assignee
China United Network Communications Group 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 China United Network Communications Group Co Ltd filed Critical China United Network Communications Group Co Ltd
Priority to CN201910053732.XA priority Critical patent/CN109840769B/zh
Publication of CN109840769A publication Critical patent/CN109840769A/zh
Application granted granted Critical
Publication of CN109840769B publication Critical patent/CN109840769B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本发明提供一种基于区块链的存证方法及装置、系统与存储介质。该方法包括:数据节点将存证信息存储至存储节点,然后,所述数据节点获取第一Merkle树与第二Merkle树;所述第一Merkle树为所述数据节点根据所述存证信息获取到的,所述第二Merkle树是所述存储节点根据所述存证信息获取到的,从而,所述数据节点利用所述第一Merkle树对所述第二Merkle树进行验证,若验证通过,所述数据节点在区块链上广播第一广播消息,所述第一广播消息用于指示挖矿节点根据所述第二Merkle树生成新区块。本发明的方法,能够在一定程度上解决基于区块链的存证系统由于存储压力而导致应用受限的问题。

Description

基于区块链的存证方法及装置、系统与存储介质
技术领域
本发明涉及区块链技术,尤其涉及一种基于区块链的存证方法及装置、系统与存储介质。
背景技术
区块链分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,目前得到广泛应用。
目前,区块链技术已应用于数据存证领域。在基于区块链技术的存证方案中,区块链账本中会完整记录各被请求的存证文件,也就是,区块链技术满足了海量数据的存证需求。但是,这也导致区块链账本的内容量巨大,而基于区块链系统的分布式存储架构,区块链中的每个节点都需要在本地同步区块链账本,这就对区块链中各节点造成较大的存储压力,导致现有的基于区块链的存证方案难以大规模应用。
发明内容
本发明提供一种基于区块链的存证方法及装置、系统与存储介质,用以解决基于区块链的存证系统由于存储压力而导致应用受限的问题。
第一方面,本发明提供一种基于区块链的存证方法,包括:
数据节点将存证信息存储至存储节点;
所述数据节点获取第一Merkle树与第二Merkle树;所述第一Merkle树为所述数据节点根据所述存证信息获取到的,所述第二Merkle树是所述存储节点根据所述存证信息获取到的;
所述数据节点利用所述第一Merkle树对所述第二Merkle树进行验证;
若验证通过,所述数据节点在区块链上广播第一广播消息,所述第一广播消息用于指示挖矿节点根据所述第二Merkle树生成新区块。
第二方面,本发明提供一种基于区块链的存证装置,包括:
存储模块,用于将存证信息存储至存储节点;
获取模块,用于获取第一Merkle树与第二Merkle树;所述第一Merkle树为自身根据所述存证信息获取到的,所述第二Merkle树是所述存储节点根据所述存证信息获取到的;
验证模块,用于利用所述第一Merkle树对所述第二Merkle树进行验证;
广播模块,用于若验证通过,在区块链上广播第一广播消息,所述第一广播消息用于指示挖矿节点根据所述第二Merkle树生成新区块。
第三方面,本发明提供一种基于区块链的存证设备,包括:
存储器;
处理器;以及
计算机程序;
其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如第一方面所述的方法。
第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,
所述计算机程序被处理器执行以实现如第一方面所述的方法。
第五方面,本发明提供一种基于区块链的存证系统,包括:
数据节点,用于执行如第一方面所述的方法;
存储节点,用于存储存证信息,以及,用于获取所述存证信息的第二Merkle树并发送给所述数据节点;
挖矿节点,用于根据所述第二Merkle树生成新区块。
其中,如第二方面或第三方面所述的基于区块链的存证装置设置于数据节点侧。
本发明提供的基于区块链的存证方法及装置、系统与存储介质,存储节点负责记录完整的存证信息,并且,存储节点与数据节点分别获取该存证信息的Merkle树,从而,数据节点可通过验证二者的Merkle树来验证存证数据是否一致,进而,在验证通过时由区块链中的挖矿节点将获取到的Merkle树来生成新区块,由此,完整的存证信息被存储在区块链的存储节点中,对于区块链中的其他各节点而言,无需记录完整的存证信息,仅需记录体量较小的Merkle树即可,这能够有效减轻区块链网络中各节点的存储压力,也便于区块链的挖矿节点挖矿效率的提升。因此,本发明实施例所提供的技术方案能够解决基于区块链的存证系统由于存储压力而导致应用受限的问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1为本发明实施例所提供的一种基于区块链的存证系统的架构示意图;
图2为本发明实施例所提供的另一种基于区块链的存证装置方法的流程示意图;
图3为本发明实施例所提供的一种Merkle树的生成流程示意图;
图4为本发明实施例所提供的一种Merkle树的架构示意图;
图5为本发明实施例所提供的一种基于区块链的存证装置的功能方块图;
图6为本发明实施例所提供的一种基于区块链的存证装置的实体结构示意图;
图7为本发明实施例所提供的另一种基于区块链的存证系统的架构示意图。
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
首先对本发明所涉及的名词进行解释:
区块链(原始区块链),是一种去中心化的数据库,它包含一张被称为区块的列表,有着持续增长并且排列整齐的记录。每个区块都包含一个时间戳和一个与前一区块的链接:设计区块链使得数据不可篡改:数据一旦被记录下来,在一个区块中的数据将不可逆。区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法。区块链(Blockchain)是比特币的一个重要概念,火币网联合清华大学五道口金融学院互联网金融实验室、新浪科技发布的《2014—2016全球比特币发展研究报告》提到区块链是比特币的底层技术和基础架构。本质上是一个去中心化的数据库,同时作为比特币的底层技术。区块链是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算。
区块链的设计是一种保护措施,比如(应用于)高容错的分布式计算系统。区块链使混合一致性成为可能。这使区块链适合记录事件、标题、医疗记录和其他需要收录数据的活动、身份识别管理,交易流程管理和出处证明管理。区块链对于金融脱媒有巨大的潜能,对于引领全球贸易有着巨大的影响。2008年由中本聪第一次提出了区块链的概念,在随后的几年中,成为了电子货币比特币的核心组成部分:作为所有交易的公共账簿。通过利用点对点网络和分布式时间戳服务器,区块链数据库能够进行自主管理。为比特币而发明的区块链使它成为第一个解决重复消费问题的数字货币。比特币的设计已经成为其他应用程序的灵感来源。
Merkle树(Merkle Tree,默克尔树),也称之为Hash Tree或Merkle Hash Tree,是一种由哈希(Hash)值作为节点构成的树(数据结构中所说的树)结构。Merkle树树可以是二叉树,也可以多叉树,无论是几叉树,它都具有树结构的所有特点。具体而言,Merkle树由叶子节点哈希值(value)、非叶子节点哈希值和根哈希值构成的。其中,叶子节点哈希值可以根据初始数据得到,而非叶子节点的value是根据它下面所有的叶子节点值,然后按照一定的算法计算而得出的,以及,根节点哈希值根据非叶子节点哈希值得到。
具体而言,本发明实施例具体的应用场景为基于区块链技术实现数据存证的场景。
在现有的基于区块链实现存证的技术方案中,区块链中的每个节点均需要同步区块链账本,而区块链账本中记录有区块链中所有完整的存证数据,这就导致区块链账本的体量巨大,这也就对各节点的存储能力提出了较高的要求,因此,受限于这种存储模式,导致基于区块链的存证方案存在难以大规模应用的难题。
本发明提供的基于区块链的存证方法,旨在解决现有技术的如上技术问题,并提出如下解决思路:采用Markle树来描述区块链的存证系统的存证信息,Markle树只包含各个存证信息的碎片的Hash值,而不包含每个存证信息的详细内容,这样对于存证内容来说具有隐私性,不容易被整个区块链的各节点所盗取,也不容易被存证信息的存储服务器所篡改,同时又减轻了区块链网络各节点的存储压力,不需要每个区块链的节点都存储的区块链账本中包含所有的存证信息,也便于区块链的挖矿节点挖矿效率的提升,促进区块链的发展。
下面以具体地实施例对本发明的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。
实施例一
本发明实施例提供了一种基于区块链的存证方法。
请参考图1,图1示出了本发明实施例所提供的存证系统的结构架设图。
如图1所示,该基于区块链的存证系统100至少包括:数据节点110、存储节点120与挖矿节点130。其中,存储节点120用于存储存证信息的原始文件,以及,用于执行本方案中涉及到的其他步骤;而数据节点110(也可称之为参与节点)用于将需要存证的存证信息的原始文件存储到存储节点120,并用于执行本方案中涉及到的其他步骤;挖矿节点130用于根据存证信息生成新区块。
在不同的应用场景中,如图1所示的存证系统100中,存储节点120可以由可信赖的官方机构来运营。例如,在银行存证场景中,存储节点120可以由银行运营;又例如,在通信存证场景中,存储节点120可以由通信运营商运营;又例如,在其他可能的常规存证场景中,存储节点120可以由公安部等国家机关运营。
此外,本发明实施例所提供的方法中涉及存储节点120的数据处理过程,因此,在该存证系统100中,存储节点120至少在网络中在线。也就是,本发明实施例对于该存储节点120是否在区块链中在线无特别限定,其可处于在线状态,也可处于离线状态。
本发明实施例所提供的存证系统100中,数据节点110、存储节点120与挖矿节点130的数目均为至少一个,本发明实施例对此均无特别限定。为了便于理解,以下以一个数据节点110向一个存储节点120进行存证的实现场景为例,说明本方案。
基于前述存证系统100的系统架构,本发明实施例给出如图2所示的基于区块链的存证方法。该方法包括如下步骤:
S202,数据节点将存证信息存储至存储节点。
可知,在不同的存证场景中,存证信息的表现形式不同,本发明实施例对于存证信息的表现形式无特别限定。例如,其可以表现为文件形式,如word文件,或excel文件,或pdf文档等形式;又例如,其还可以表现为多媒体形式,如图片、音频、视频等形式。
本发明实施例中,存储节点用于存储存证信息,其存储位置为非区块链账本的其他存储位置,具体可以包括但不限于:本地存储空间、第三方存储设备或者云端存储服务器等。这种设计是考虑到,存储到区块链账本中的数据会被区块链中的各节点进行同步,因此,将原始的存证信息仅存储在存储节点,由于区块链账本未存储原始的存证信息,可有效缓解各节点的存储压力。
S204,所述数据节点获取第一Merkle树与第二Merkle树。
其中,所述第一Merkle树为所述数据节点根据所述存证信息获取到的,所述第二Merkle树是所述存储节点根据所述存证信息获取到的。其中,数据节点与存储节点各自分别获取Merkle树的方式后续具体说明。
本发明实施例中,通过存证信息的Merkle树来表征存证信息,因此,将Merkle树记录在区块链账本,以实现对存证信息的记录,并缓解各节点同步区块链账本的存储压力。而Merkle树的处理需要得到存储节点和数据节点的双方认可才可进行存储,以避免数据被篡改。
S206,所述数据节点利用所述第一Merkle树对所述第二Merkle树进行验证。
具体而言,数据节点需要获取自身获取到的第一Merkle树和存储节点获取到的第二Merkle树是否一致。若一致,则说明存储节点当前存储的存证信息与自身需要被存证的存证信息一致,验证通过;此时,数据节点认可第二Merkle树,则可用第二Merkle树表征存证信息。反之,若不一致,则说明存储节点当前存储的存证信息与自身需要被存证的存证信息不同,存储节点存储的存证信息可能被篡改,则不再执行后续支付、生成新区块的步骤,此时,验证不通过。
若验证不通过,在具体实现时,可结束处理,或者,数据节点也可通过私信或广播的方式通知存储节点。而与之相对的,存储节点可删除自身存储的已被存储的存证信息,此外,存储节点还可以进一步向管理人员发出存证信息被篡改以及验证失败的通知消息,以便于管理人员可进行存证篡改调查。
S208,若验证通过,所述数据节点在区块链上广播第一广播消息,所述第一广播消息用于指示挖矿节点根据所述第二Merkle树生成新区块。
如前所述,若验证通过,数据节点认可当前存储在存储节点处的存证信息是自身需要存证的信息,此时,数据节点可在区块链上发出第一广播消息,如此,区块链上的挖矿节点可根据该第一广播消息生成新区块,并记录在区块链中账本中,以及,区块链上的各节点同步该区块链账本。而由于本发明实施例所提供的技术方案中,第一广播消息指示根据第二Merkle树生成新区块,Merkle树是由具备特定顺序的一组哈希值构成,因此,相对于将原始的存证信息完整的存储在区块链账本中,本方案能够有效降低区块链账本的数据量,如此,也就缓解了对区块链中各节点的存储压力,此外,还能够有效提高存证效率。
为了更好的理解本方案,以下对图2所示方法流程中所涉及到的各步骤的实现方式分别进行具体说明。
具体而言,数据节点与存储节点之间可通过区块链上广播方式进行数据交互,也可以采用非区块链的方式进行数据交互。因此,在一个具体的实现中,二者可以通过有线连接或无线连接方式进行数据交互,此时,数据节点在执行S202步骤时,可通过有线连接方式或无线连接方式,将所述存证信息存储至所述存储节点。
本发明实施例所涉及到的有线连接方式可以包括但不限于:数据线传输、存储设备传输等。例如,可以通过U盘设备实现数据存储。而本发明实施例所涉及到的无线连接方式可以包括但不限于:无线网络传输、蓝牙传输、近场通信传输等。
具体而言,在该步骤实现过程中所涉及到的数据传输过程,可以是直接的无加密方式传输,或者,也可以通过加密方式进行安全传输。例如,有线连接方式采用无加密方式传输,有线连接方式采用加密安全传输。
一种可能的设计中,数据节点可以通过VPN或者INTERNET进行安全传输。在这种安全传输过程中,所涉及到的密钥可通过移动交换网的方式(例如,短信息方式)在数据节点和存储节点之间进行通知。更具体的,数据节点和存储节点之间可以互相发送一个随机数给对方,然后,双方可以按照预先约定好的算法对两个随机数进行计算,从而,得到一个最终秘钥,如此,数据节点利用该最终秘钥对存证信息进行加密后安全传输给存储节点,存储节点也可利用该最终秘钥实现对接收到的加密信息的解密处理,从而得到存证信息。
经过S202步骤的处理,存储节点与数据节点均具备存证信息,如此,在执行S204中获取第一Merkle树与第二Merkle树的过程中,可以参考图3和图4,其中,图3示出了数据节点获取第一Merkle树的方法流程,图4示出了Merkle树的生成示意图。
如图3所示,该生成过程可以包括如下两个步骤:
S302,所述数据节点将所述存证信息进行碎片化处理,得到至少两个存证碎片。
具体而言,碎片化处理就是将原始的存证信息进行拆分,以获取到体量较小的多个存证碎片。而具体的拆分方式可以根据需要预设。
在一个具体的设计中,可以按照一定的碎片大小(或者碎片数目),对存证信息进行平均拆分或不平均拆分,这种设计中,碎片大小或碎片数目可根据需要预设,其中,以碎片大小方式进行碎片化处理时,可采用统一的碎片大小,或者,也可以采用至少两个碎片大小进行拆分。
另一种设计中,还可以根据不同的存证信息的类型,采用结构式拆分的方式进行碎片化。例如,存证信息表现为包含文字和附图的文件,此时,可将存证信息拆分为至少一个文字碎片和至少一个附图碎片。又例如,存证信息表现为包含片头、正片和片尾的视频,则可以将存证信息拆分为:至少一个片头碎片、至少一个正片碎片和至少一个片尾碎片。
S304,所述数据节点对所述至少两个存证碎片进行哈希处理,得到所述第一Merkle树。
如前所述,Merkle树由叶子节点哈希值(value)、非叶子节点哈希值和根哈希值构成,因此,该步骤的实现方式可以通过如图4所示方式实现,具体包括如下步骤:所述数据节点分别获取各所述存证碎片的哈希值,以作为所述第一Merkle树的叶子节点哈希值;所述数据节点对所述叶子节点进行哈希处理,得到所述第一Merkle树的非叶子节点哈希值;所述数据节点对所述非叶子节点进行哈希处理,得到所述第一Merkle树的根节点哈希值;所述数据节点将所述叶子节点哈希值、非叶子节点哈希值与所述根节点哈希值按照预设顺序进行排序,得到所述第一Merkle树。
结合图4,可通过S302步骤将初始的存证信息处理为8个存证碎片,为了便于区分,可对存证碎片进行编号,如图4中将存证碎片编号为a0~a7。然后,对每个存证碎片分别计算其对应的哈希值,得到哈希值A0~A7,将此作为该Merkle树的叶子节点。之后,再按照一定的次序,对叶子节点进行哈希处理,如图4所示的对相邻的叶子节点作两两哈希处理,并持续处理,直至最后得到一个哈希值,以作为该Merkle树的根节点D0,其中,两两哈希处理得到的哈希值作为非叶子节点,如图4所示的B0~B3以及C0、C1。最终,即可得到如图4所示的Merkle树。
此外,需要说明的是,对叶子节点进行哈希处理以得到非叶子节点,直至得到根节点的具体算法,本发明实施例无特别限定,如图4所示的方式仅为一种可能的设计,并不用以限制本申请。
基于前述设计思路,数据节点与存储节点可分别根据存证信息进行Merkle树的获取,得到第一Merkle树和第二Merkle树。此时,由于第Merkle树和第二Merkle树用于验证存证信息是否被篡改,因此,数据节点执行的第一Merkle树的获取方式,与存储节点执行的第二Merkle树的获取方式采用相同的算法。
本发明实施例中,第一Merkle树是数据节点可根据存证信息并按照前述方法获取得到,而其获取第二Merkle树的方式则可以为:接收存储节点发送的第二Merkle树。
具体而言,此时,可以包括但不限于如下的实现方式:
第一种方式,数据节点接收所述存储节点在所述区块链上发出的第二广播消息,所述第二广播消息中携带所述第二Merkle树。这种实现方式中,区块链账本会记录存储节点所发送的第二广播消息,如此,在数据节点完成确认后,无需再次携带第二Merkle树,挖矿节点即可根据该第二广播消息中携带的第二Merkle树完成新区块的生成。
此外,在这种实现方式中,考虑到该存证系统中包含不止一个数据节点,因此,存证节点发出的第二广播消息中还可以进一步携带前述数据节点(存证信息的原始发送节点)的区块链节点标识,如此,该数据节点在接收到第二广播消息时,即可确认该广播消息中携带的第二Merkle树是对应于自身发送的存证信息。
除前述信息之外,第二广播消息中还可以携带其他信息,例如,在一种设计中,还可以携带以下至少一种信息:存证节点的区块链节点标识、存证信息的标识信息等。
或者,
第二种方式,所述数据节点接收所述存储节点发送的私信消息,所述私信消息中携带所述第二Merkle树。其中,本发明实施例所涉及到的私信消息可以为除区块链网络外的其他点对点通信方式。在具体实现过程中,出于安全性考虑,还可以采用较高级别的安全协议来实现此处的安全通信。
这种实现方式中,考虑到该第二Merkle树并未得到数据节点的确认,因此,数据节点与存储节点可以通过非区块链网络的其他途径的点对点通信方式进行该第二Merkle树的沟通与确认,这种方式有利于降低对区块链上的资源占用。
此外,考虑到数据在区块链上的安全传输,存储节点在以前述任一方式实现第二Merkle树的发送时,还可利用自身私钥对其签名后再发送。如,在一种可能的设计中,数据节点接收到的第二广播消息,为存储节点利用自身私钥对第二Merkle树与数据节点的区块链节点标识进行私钥签名后,在区块链上广播发送的。而与之相对的,数据节点在接收到第二广播消息之后,可以通过私钥签名来验证并确认该第二广播消息的发送端身份是否为存证节点,若是,再执行后续S206步骤;反之,则可作结束处理。
如前所述,S206所述的验证过程后,若验证通过,则可继续执行后续S208步骤;反之,则可作结束处理,或发出另一广播消息或私信至存储节点,以通知该存证信息被篡改。
在一种实现场景中,数据节点需要与存储节点完成存证支付,才可以执行后续步骤,那么,此时,在执行S208之前,还可以执行如下步骤:
若S206的验证通过,所述数据节点向所述存储节点进行存证支付;
若支付成功,所述数据节点在区块链上广播第一广播消息。
若支付失败,则同上,可作结束处理。
此外,在这种需要完成支付的实现场景中,一种可能的设计中,数据节点可共发出两个广播消息,其中,一个广播消息用以通知对第二Merkle树的验证通过,另一个广播消息用以通知完成了存证支付。这两个广播消息可以任意先后顺序或同时在区块链上广播,此时,这两个广播消息可视为共同作为第一广播消息;只有同时接收到这两个广播消息,挖矿节点才进行新区块的生成记录;反之,若缺少任一广播消息,挖矿节点也不会生成新区块。
或者,在这种需要完成支付的实现场景中,另一种可能的设计中,可直接将用以通知完成了存证支付的一个广播消息作为第一广播消息,这是考虑到支付意味着数据节点已经认可了该第二Merkle树,因此,作为挖矿节点,无论是否接收到用以通知对第二Merkle树的验证通过的广播消息,挖矿节点均可执行新区块的生成记录。
除前述设计之外,在另一个可能的设计中,还可以设置为挖矿节点必须接收到三个广播消息后,才会执行新区块的生成记录。具体的,三个广播消息包括:存储节点发出的第二广播消息、数据节点发出的用以通知对第二Merkle树的验证通过的广播消息、数据节点发出的用以通知完成了存证支付的广播消息。
在具体实现本方案时,可根据需要以前述任一实现方案设计挖矿节点的触发机制,不再赘述。
同样的,考虑到数据的安全传输,数据节点在区块链上广播任一广播消息时,以第一广播消息为例,还可以进一步包括如下步骤:所述数据节点对所述第一广播消息进行私钥签名;所述数据节点在所述区块链上广播所述私钥签名后的所述第一广播消息。
本申请实施例中,区块链账本的记录权由挖矿节点承担,区块链上的挖矿节点即可根据第二Merkle树生成新区块,使得该存证信息的第二Merkle树被记录在区块链账本中,而初始的完整的存证信息被记录在存储节点中。
此外,考虑到数据节点后续可能会有针对自身存证的存证数据的查阅需求,因此,本发明实施例还进一步设计了如下步骤:数据节点记录所述新区块的区块号。也就是,将生成的新区块的区块号在本地进行保存,以便于后续区块存证号的记录,便于自身在区块链账本中进行查询。
通过本发明实施例所提供的前述方案设计,既保障了存证信息的真实可靠性,又避免了区块链中所有的节点都实时存储的区块链账本过于巨大的问题,并且,存证信息的隐私性也得到了保护。
可以理解的是,上述实施例中的部分或全部步骤骤或操作仅是示例,本申请实施例还可以执行其它操作或者各种操作的变形。此外,各个步骤可以按照上述实施例呈现的不同的顺序来执行,并且有可能并非要执行上述实施例中的全部操作。
实施例二
基于上述实施例一所提供的基于区块链的存证方法,本发明实施例进一步给出实现上述方法实施例中各步骤及方法的装置实施例。
本发明实施例提供了一种基于区块链的存证装置,请参考图5,该基于区块链的存证装置500,包括:
存储模块51,用于将存证信息存储至存储节点;
获取模块52,用于获取第一Merkle树与第二Merkle树;所述第一Merkle树为自身根据所述存证信息获取到的,所述第二Merkle树是所述存储节点根据所述存证信息获取到的;
验证模块53,用于利用所述第一Merkle树对所述第二Merkle树进行验证;
广播模块54,用于若验证通过,在区块链上广播第一广播消息,所述第一广播消息用于指示挖矿节点根据所述第二Merkle树生成新区块。
一种可能的设计中,获取模块52,用于:
将所述存证信息进行碎片化处理,得到至少两个存证碎片;
对所述至少两个存证碎片进行哈希处理,得到所述第一Merkle树。
其中,获取模块52,具体用于:
分别获取各所述存证碎片的哈希值,以作为所述第一Merkle树的叶子节点哈希值;
对所述叶子节点进行哈希处理,得到所述第一Merkle树的非叶子节点哈希值;
对所述非叶子节点进行哈希处理,得到所述第一Merkle树的根节点哈希值;
将所述叶子节点哈希值、非叶子节点哈希值与所述根节点哈希值按照预设顺序进行排序,得到所述第一Merkle树。
此外,获取模块52,还用于:
接收所述存储节点在所述区块链上发出的第二广播消息,所述第二广播消息中携带所述第二Merkle树;或者,
接收所述存储节点发送的私信消息,所述私信消息中携带所述第二Merkle树。
其中,所述第二Merkle树是所述存储节点利用自身私钥签名后发送的。
一种设计中,验证模块53,具体用于:
比较所述第一Merkle树与所述第二Merkle树是否一致。
一种可能的设计中,广播模块54,具体用于:
根据所述第二Merkle树生成所述第一广播消息;
在所述区块链上广播所述第一广播消息,以使得所述挖矿节点根据所述第二Merkle树生成新区块。
另一种可能的设计中,广播模块54,还具体用于:
对所述第一广播消息进行私钥签名;
在所述区块链上广播所述私钥签名后的所述第一广播消息。
一种可能的设计中,存储模块51,具体用于:
通过有线连接方式或无线连接方式,将所述存证信息存储至所述存储节点。
此外,一种设计中,该基于区块链的存证装置500还包括:
记录模块(图5未示出),用于记录所述新区块的区块号。
此外,另一设计中,基于区块链的存证装置500,还包括:
支付模块(图5未示出),用于向所述存储节点进行存证支付;
广播模块54,还用于若支付成功,在区块链上广播所述第一广播消息。
图5所示实施例的基于区块链的存证装置500可用于执行上述方法实施例的技术方案,其实现原理和技术效果可以进一步参考方法实施例中的相关描述,可选的,该区块链的存证装置500可以是数据节点,可进一步表现为用户终端。
应理解以上图5所示区块链的存证装置500的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块以软件通过处理元件调用的形式实现,部分模块通过硬件的形式实现。例如,广播模块54可以为单独设立的处理元件,也可以集成在基于区块链的存证装置500,例如终端的某一个芯片中实现,此外,也可以以程序的形式存储于基于区块链的存证装置500的存储器中,由基于区块链的存证装置500的某一个处理元件调用并执行以上各个模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
并且,本发明实施例提供了一种基于区块链的存证装置,请参考图6,该基于区块链的存证装置500,包括:
存储器510;
处理器520;以及
计算机程序;
其中,计算机程序存储在存储器510中,并被配置为由处理器520执行以实现如上述实施例所述的方法。
此外,如图5所示,在该基于区块链的存证装置500中还设置有收发器530,用于与其他设备进行数据传输或通信,在此不再赘述。其中,如图6所示,存储器510、处理器520与收发器530之间通过总线连接。
此外,本发明实施例提供了一种可读存储介质,其上存储有计算机程序,
该计算机程序被处理器执行以实现如实施例一任一实现方式所述的方法。
以及,本发明实施例提供了一种基于区块链的存证系统,请参考图1与图7,该基于区块链的存证系统100包括:
数据节点110,用于执行如实施例一任一实现方式所述的方法;
存储节点120,用于存储存证信息,以及,用于获取所述存证信息的第二Merkle树并发送给所述数据节点;
挖矿节点130,用于根据所述第二Merkle树生成新区块。
其中,图1可参考前述说明不再赘述,图7还进一步示出了该数据节点110与图4或图5所示的基于区块链的存证装置500之间的关系,图4或图5所示的基于区块链的存证装置500设置于数据节点110侧。
由于本实施例中的各模块能够执行实施例一所示的方法,本实施例未详细描述的部分,可参考对实施例一的相关说明。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本发明旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求书指出。

Claims (12)

1.一种基于区块链的存证方法,其特征在于,包括:
数据节点将存证信息存储至存储节点;
所述数据节点获取第一Merkle树与第二Merkle树;所述第一Merkle树为所述数据节点根据所述存证信息获取到的,所述第二Merkle树是所述存储节点根据所述存证信息获取到的;
所述数据节点利用所述第一Merkle树对所述第二Merkle树进行验证;
若验证通过,所述数据节点在区块链上广播第一广播消息,所述第一广播消息用于指示挖矿节点根据所述第二Merkle树生成新区块;
其中,所述数据节点获取所述第一Merkle树,包括:
所述数据节点将所述存证信息进行碎片化处理,得到至少两个存证碎片;
所述数据节点对所述至少两个存证碎片进行哈希处理,得到所述第一Merkle树;
所述数据节点获取所述第二Merkle树,包括:
所述数据节点接收所述存储节点在所述区块链上发出的第二广播消息,所述第二广播消息中携带所述第二Merkle树;或者,
所述数据节点接收所述存储节点发送的私信消息,所述私信消息中携带所述第二Merkle树;
所述第二Merkle树是所述存储节点利用自身私钥签名后发送的。
2.根据权利要求1所述的方法,其特征在于,所述数据节点对所述至少两个存证碎片进行哈希处理,得到所述第一Merkle树,包括:
所述数据节点分别获取各所述存证碎片的哈希值,以作为所述第一Merkle树的叶子节点哈希值;
所述数据节点对所述叶子节点进行哈希处理,得到所述第一Merkle树的非叶子节点哈希值;
所述数据节点对所述非叶子节点进行哈希处理,得到所述第一Merkle树的根节点哈希值;
所述数据节点将所述叶子节点哈希值、非叶子节点哈希值与所述根节点哈希值按照预设顺序进行排序,得到所述第一Merkle树。
3.根据权利要求1至2任一项所述的方法,其特征在于,所述数据节点利用所述第一Merkle树对所述第二Merkle树进行验证,包括:
所述数据节点比较所述第一Merkle树与所述第二Merkle树是否一致。
4.根据权利要求1至2任一项所述的方法,其特征在于,所述数据节点在区块链上广播第一广播消息,包括:
所述数据节点根据所述第二Merkle树生成所述第一广播消息;
所述数据节点在所述区块链上广播所述第一广播消息,以使得所述挖矿节点根据所述第二Merkle树生成新区块。
5.根据权利要求1至2任一项所述的方法,其特征在于,所述数据节点在区块链上广播第一广播消息,包括:
所述数据节点对所述第一广播消息进行私钥签名;
所述数据节点在所述区块链上广播所述私钥签名后的所述第一广播消息。
6.根据权利要求1所述的方法,其特征在于,所述数据节点将存证信息存储至存储节点,包括:
所述数据节点通过有线连接方式或无线连接方式,将所述存证信息存储至所述存储节点。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述数据节点记录所述新区块的区块号。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述数据节点向所述存储节点进行存证支付;
若支付成功,所述数据节点在区块链上广播所述第一广播消息。
9.一种基于区块链的存证装置,其特征在于,包括:
存储模块,用于将存证信息存储至存储节点;
获取模块,用于获取第一Merkle树与第二Merkle树;所述第一Merkle树为自身根据所述存证信息获取到的,所述第二Merkle树是所述存储节点根据所述存证信息获取到的;
验证模块,用于利用所述第一Merkle树对所述第二Merkle树进行验证;
广播模块,用于若验证通过,在区块链上广播第一广播消息,所述第一广播消息用于指示挖矿节点根据所述第二Merkle树生成新区块;
所述获取模块,具体用于将所述存证信息进行碎片化处理,得到至少两个存证碎片;对所述至少两个存证碎片进行哈希处理,得到所述第一Merkle树;
以及,接收所述存储节点在所述区块链上发出的第二广播消息,所述第二广播消息中携带所述第二Merkle树;或者,接收所述存储节点发送的私信消息,所述私信消息中携带所述第二Merkle树;所述第二Merkle树是所述存储节点利用自身私钥签名后发送的。
10.一种基于区块链的存证装置,其特征在于,包括:
存储器;
处理器;以及
计算机程序;
其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如权利要求1至8任一项所述的方法。
11.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,
所述计算机程序被处理器执行以实现如权利要求1至8任一项所述的方法。
12.一种基于区块链的存证系统,其特征在于,包括:
数据节点,用于执行如权利要求1至8任一项所述的方法;
存储节点,用于存储存证信息,以及,用于获取所述存证信息的第二Merkle树并发送给所述数据节点;
挖矿节点,用于根据所述第二Merkle树生成新区块。
CN201910053732.XA 2019-01-21 2019-01-21 基于区块链的存证方法及装置、系统与存储介质 Active CN109840769B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910053732.XA CN109840769B (zh) 2019-01-21 2019-01-21 基于区块链的存证方法及装置、系统与存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910053732.XA CN109840769B (zh) 2019-01-21 2019-01-21 基于区块链的存证方法及装置、系统与存储介质

Publications (2)

Publication Number Publication Date
CN109840769A CN109840769A (zh) 2019-06-04
CN109840769B true CN109840769B (zh) 2022-01-25

Family

ID=66883956

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910053732.XA Active CN109840769B (zh) 2019-01-21 2019-01-21 基于区块链的存证方法及装置、系统与存储介质

Country Status (1)

Country Link
CN (1) CN109840769B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110851448B (zh) * 2019-11-08 2022-05-03 四川长虹电器股份有限公司 一种基于区块链智能合约的本地数据存储优化方法
CN113407361B (zh) * 2021-05-27 2023-07-11 中国联合网络通信集团有限公司 桌面访问控制方法和系统
CN114710297B (zh) * 2022-05-25 2022-09-06 深圳天谷信息科技有限公司 基于聚合签名的区块链存证方法、装置、设备及存储介质
CN115439118B (zh) * 2022-08-02 2023-11-21 上海网商电子商务有限公司 一种基于区块链的数字存证管理方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107077674A (zh) * 2016-12-29 2017-08-18 深圳前海达闼云端智能科技有限公司 交易验证处理方法、装置及节点设备
CN108923932A (zh) * 2018-07-10 2018-11-30 东北大学 一种去中心化协同验证模型及验证算法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105790954B (zh) * 2016-03-02 2019-04-09 布比(北京)网络技术有限公司 一种构建电子证据的方法和系统
CN106055597B (zh) * 2016-05-24 2022-05-20 布比(北京)网络技术有限公司 数字交易系统、及用于其的账户信息查询方法
KR20180089682A (ko) * 2017-02-01 2018-08-09 삼성전자주식회사 블록체인 기반의 데이터의 무결성을 검증하는 전자 장치 및 방법
CN107172135A (zh) * 2017-05-03 2017-09-15 施瑞琦 基于区块链的收视率统计方法及系统
CN108009810A (zh) * 2017-12-27 2018-05-08 光载无限(北京)科技有限公司 一种可信数字资产交易方法
CN108696511A (zh) * 2018-04-24 2018-10-23 深圳市元征科技股份有限公司 一种基于区块链的信息公示方法、装置及相关设备
CN108711052B (zh) * 2018-05-18 2021-04-30 电子科技大学 一种基于区块链的信息验证系统
CN108647361B (zh) * 2018-05-21 2021-12-03 中国工商银行股份有限公司 一种基于区块链的数据存储方法、装置及系统
CN109165221A (zh) * 2018-08-16 2019-01-08 北京京东尚科信息技术有限公司 区块链的数据存储方法、装置、区块链节点及存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107077674A (zh) * 2016-12-29 2017-08-18 深圳前海达闼云端智能科技有限公司 交易验证处理方法、装置及节点设备
CN108923932A (zh) * 2018-07-10 2018-11-30 东北大学 一种去中心化协同验证模型及验证算法

Also Published As

Publication number Publication date
CN109840769A (zh) 2019-06-04

Similar Documents

Publication Publication Date Title
CN109840769B (zh) 基于区块链的存证方法及装置、系统与存储介质
US11461773B2 (en) Blockchain-based node management methods and apparatuses
US20210027289A1 (en) Asset transaction method, storage medium, and computer device
CN111556120B (zh) 基于区块链的数据处理方法、装置、存储介质及设备
CN106960165B (zh) 一种基于区块链智能合约实现电子合同多方会签的方法
CN106452785B (zh) 区块链网络、分支节点及区块链网络应用方法
CN109936620B (zh) 基于区块链的存储方法及装置、系统与存储介质
CN107342867B (zh) 签名验签方法和装置
CN111416808A (zh) 跨区块链的数据互存方法、装置、设备及存储介质
CN111476572B (zh) 基于区块链的数据处理方法、装置、存储介质及设备
US20230316273A1 (en) Data processing method and apparatus, computer device, and storage medium
CN111314172B (zh) 基于区块链的数据处理方法、装置、设备及存储介质
CN113228076A (zh) 区块链管理系统
CN109743182B (zh) 基于区块链的智能合约核准方法及系统
CN113255014B (zh) 一种基于区块链的数据处理方法以及相关设备
CN111767569A (zh) 区块链的访问授权方法及节点
CN111275555A (zh) 区块链交易处理方法、交易节点以及区块链系统
CN111324661A (zh) 基于区块链的用户合作方法、设备及介质
CN113315745A (zh) 一种数据处理方法、装置、设备及介质
CN110008739B (zh) 一种基于群组的区块链系统、群组管理方法及装置
CN113328854B (zh) 基于区块链的业务处理方法及系统
CN113206746B (zh) 一种数字证书管理方法和装置
CN115705601A (zh) 数据处理方法、装置、计算机设备及存储介质
KR20210014084A (ko) 블록체인을 이용한 전자 데이터 제공 방법 및 그 시스템
CN115037472A (zh) 基于双层dag共识机制的交易处理方法及系统、服务设备

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