CN111191294A - 基于区块链的单节点记账方法、系统、设备和存储介质 - Google Patents

基于区块链的单节点记账方法、系统、设备和存储介质 Download PDF

Info

Publication number
CN111191294A
CN111191294A CN201911380564.1A CN201911380564A CN111191294A CN 111191294 A CN111191294 A CN 111191294A CN 201911380564 A CN201911380564 A CN 201911380564A CN 111191294 A CN111191294 A CN 111191294A
Authority
CN
China
Prior art keywords
backup
node
block
accounting
nodes
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
CN201911380564.1A
Other languages
English (en)
Other versions
CN111191294B (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.)
Chengyong Technology Guangzhou Co Ltd
Original Assignee
Chengyong Technology Guangzhou 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 Chengyong Technology Guangzhou Co Ltd filed Critical Chengyong Technology Guangzhou Co Ltd
Priority to CN201911380564.1A priority Critical patent/CN111191294B/zh
Publication of CN111191294A publication Critical patent/CN111191294A/zh
Application granted granted Critical
Publication of CN111191294B publication Critical patent/CN111191294B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • G06F21/645Protecting data integrity, e.g. using checksums, certificates or signatures using a third party
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Bioethics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及一种基于区块链的单节点记账方法、系统、设备和存储介质。该方法包括:记账节点发起备份请求;备份请求用于指示区块链网络中的核心节点,将备份请求记录至传统区块链后,根据备份请求与相应区块标识从区块链网络中选取多个备份节点;记账节点获取多个备份节点,并与每个备份节点建立网络连接;当获取到目标数据时,记账节点触发生成相应的目标区块,并记录至自身对应的单节点记账区块链;目标区块包括前一个区块的区块哈希值与目标数据的数据哈希值,以及与区块哈希值和数据哈希值对应的数字签名;记账节点通过网络连接将目标区块发送至相应备份节点进行备份。采用本方法能够在保证数据可靠性与不可篡改的情况下,提高每秒钟交易数量。

Description

基于区块链的单节点记账方法、系统、设备和存储介质
技术领域
本申请涉及区块链技术领域,特别是涉及一种基于区块链的单节点记账方法、系统、设备和存储介质。
背景技术
现有的区块链技术中,区块链网络通过共识机制选取记账节点,将经由各个节点验证合法的交易数据打包成区块并记录至区块链中,以保证交易数据的不可篡改性。然而,该种记账方式对网络传输、节点运算与数据存储能力有很高的要求,且在TPS(Transactions per second,每秒钟交易数量)与交易数据量上存在较大限制。尤其是在高频次、大容量数据存储的应用场景中,该种记账方式进一步提高了对网络传输、节点运算与数据存储能力的要求,以及降低了区块链网络的每秒钟交易数量。
发明内容
基于此,有必要针对上述技术问题,提供一种基于区块链的单节点记账方法、系统、设备和存储介质。
一种基于区块链的单节点记账方法,所述方法包括:
记账节点发起备份请求;所述备份请求用于指示区块链网络中的核心节点,将所述备份请求记录至传统区块链后,根据所述备份请求与相应的区块标识从所述区块链网络中选取多个备份节点;
所述记账节点获取所述多个备份节点,并与每个备份节点建立网络连接;
当获取到待记录的目标数据时,所述记账节点触发生成与所述目标数据对应的目标区块,并将所述目标区块记录至自身对应的单节点记账区块链;所述目标区块包括前一个区块对应的区块哈希值与所述目标数据的数据哈希值,以及与所述区块哈希值和所述数据哈希值对应的数字签名;
所述记账节点通过所述网络连接将所述目标区块发送至相应备份节点进行备份。
在其中一个实施例中,所述核心节点根据所述备份请求与相应的区块标识从所述区块链网络中选取多个备份节点,包括:
所述核心节点根据所述备份请求与相应的区块标识,从所述区块链网络中确定候选备份节点;
当所述候选备份节点包括与自身相连的边缘节点时,所述核心节点将所述备份请求发送至所述候选备份节点中与自身相连的边缘节点;
当接收到与自身相连的边缘节点针对所述备份请求发送的参与备份确认信息时,所述核心节点通过所述区块链网络中的各核心节点将所述参与备份确认信息记录至所述传统区块链;
所述核心节点从在所述传统区块链中已记录相应参与备份确认信息的候选备份节点中,筛选多个备份节点。
在其中一个实施例中,所述核心节点根据所述备份请求与相应的区块标识从所述区块链网络中选取多个备份节点,还包括:
当所述候选备份节点包括核心节点自身时,所述核心节点根据所述备份请求判断自身是否参与备份;
当判定核心节点自身参与备份时,所述核心节点触发生成与所述备份请求对应的参与备份确认信息,并通过所述区块链网络中的各核心节点将所生成的参与备份确认信息记录至所述传统区块链。
在其中一个实施例中,所述备份请求包括候选备份节点数;所述核心节点根据所述备份请求与相应的区块标识,从所述区块链网络中确定候选备份节点,包括:
所述核心节点根据所述备份请求对应的请求标识与区块标识生成随机数种子;
所述核心节点根据所述随机数种子与所述候选备份节点数,从所述区块链网络中确定所述候选备份节点数的候选备份节点。
在其中一个实施例中,所述备份请求包括备份节点数;所述核心节点从在所述传统区块链中已记录相应参与备份确认信息的候选备份节点中,筛选多个备份节点,包括:
当在所述传统区块链中已记录相应参与备份确认信息的候选备份节点的数量大于所述备份节点数时,所述核心节点确定在所述传统区块链中已记录的各参与备份确认信息所对应的信息哈希值,并
从在所述传统区块链中已记录相应参与备份确认信息的候选备份节点中,按照所确定的信息哈希值筛选所述备份节点数的备份节点。
在其中一个实施例中,所述记账节点触发生成与所述目标数据对应的目标区块,包括:
所述记账节点计算所述目标数据的数据哈希值;
所述记账节点获取前一个区块对应的区块哈希值与备份确认信息;所述前一个区块为自身对应的单节点记账区块链中的区块;
所述记账节点生成与所述数据哈希值、所述区块哈希值和所述备份确认信息对应的数字签名;
所述记账节点根据所述数据哈希值、所述区块哈希值、所述备份确认信息与所述数字签名,生成与所述目标数据对应的目标区块。
在其中一个实施例中,所述记账节点通过所述网络连接将所述目标区块发送至相应备份节点进行备份,包括:
所述记账节点通过所述网络连接将所述目标区块发送至相应备份节点;发送的所述目标区块用于指示所述备份节点判断所述记账节点是否存在篡改行为,在判定所述记账节点不存在篡改行为时,将所述目标区块备份在本地,并触发生成并反馈与所述目标区块对应的备份确认信息。
一种基于区块链的单节点记账系统,所述系统包括:核心节点与边缘节点;所述核心节点作为记账节点或备份节点;所述边缘节点作为记账节点或备份节点;
所述记账节点,用于发起备份请求;所述备份请求用于指示区块链网络中的核心节点,将所述备份请求记录至传统区块链后,根据所述备份请求与相应的区块标识从所述区块链网络中选取多个备份节点;
所述记账节点,还用于获取所述多个备份节点,并与每个备份节点建立网络连接;当获取到待记录的目标数据时,触发生成与所述目标数据对应的目标区块,并将所述目标区块记录至自身对应的单节点记账区块链;通过所述网络连接将所述目标区块发送至相应备份节点;所述目标区块包括前一个区块对应的区块哈希值与所述目标数据的数据哈希值,以及与所述区块哈希值和所述数据哈希值对应的数字签名;
所述备份节点,用于将所述目标区块进行备份。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述各个实施例中所述的基于区块链的单节点记账方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述各个实施例中所述的基于区块链的单节点记账方法的步骤。
上述基于区块链的单节点记账方法、系统、计算机设备和存储介质,由区块链网络中的核心节点根据记账节点发起的备份请求,从区块链网络中动态选取多个备份节点,通过该多个备份节点对该记账节点记录的目标区块进行备份,以防止记账节点篡改所记录的目标区块,从而保证数据的不可篡改性。记账节点在获取到待记录的目标数据时,触发生成包括前一个区块对应的区块哈希值、目标数据的数据哈希值,以及与区块哈希值与目标数据对应的数字签名的目标区块,将所生成的目标区块记录至自身对应的单节点记账区块链中,并将该目标区块发送至基于自身发起的备份请求所确定的多个备份节点进行备份,以便于备份节点基于目标区块判断记账节点是否存在篡改行为。这样,每个目标区块由多个动态选取的备份节点进行传输与备份,且目标区块无需经由各备份节点进行共识,能够在保证数据可靠性与不可篡改的情况下,降低对各备份节点与记账节点的网络传输、节点运算及数据存储能力的要求。而且,该种记账方式下,区块链网络中可同时存在由多个记账节点各自记录的单节点记账区块链,能够降低对每秒钟交易数量与目标数据量的限制,从而能够应用于高频次、大容量数据存储的应用场景。
附图说明
图1为一个实施例中基于区块链的单节点记账方法的应用场景图;
图2为一个实施例中基于区块链的单节点记账方法的流程示意图;
图3为另一个实施例中基于区块链的单节点记账方法的流程示意图;
图4为一个实施例中基于记账节点发起的备份请求选取备份节点的流程示意图;
图5为一个实施例中单记账节点记账、多备份节点备份与判定篡改行为的原理示意图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
图1为一个实施例中基于区块链的单节点记账方法的应用环境图。参照图1,该基于区块链的单节点记账方法应用于区块链网络100。该区块链网络100包括核心节点102与边缘节点104。如图1所示,该区块链网络100中的核心节点102与边缘节点104均有多个。核心节点102可作为记账节点或备份节点,边缘节点104也可作为记账节点或备份节点。边缘节点104通过与一个或多个核心节点相连加入区块链网络100。
在一个实施例中,区块链网络中的所有核心节点共同维护一条传统区块链,每个核心节点均存储有该传统区块链上的所有信息。
在一个实施例中,记账节点与备份节点相对应。当核心节点作为记账节点时,该核心节点可同时作为其它记账节点的备份节点。相应地,当边缘节点作为记账节点时,该边缘节点也可同时作为其它记账节点的备份节点。
在一个实施例中,区块链网络中的核心节点与边缘节点可以是终端或服务器。其中,终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种基于区块链的单节点记账方法,包括以下步骤:
S202,记账节点发起备份请求;备份请求用于指示区块链网络中的核心节点,将备份请求记录至传统区块链后,根据备份请求与相应的区块标识从区块链网络中选取多个备份节点。
其中,备份请求是用于触发备份节点选取操作的请求。区块标识用于唯一标识区块。备份请求对应的区块标识,用于标识备份请求在传统区块链中所处的区块。
具体地,记账节点发起备份请求。当记账节点为区块链网络中的核心节点时,记账节点将所发起的备份请求广播至区块链网络中的各核心节点。当记账节点为区块链网络中的边缘节点时,记账节点将所发起的备份请求发送至与自身相连的一个或多个核心节点,以通过该一个或多个核心节点将该备份请求广播至区块链网络中的各核心节点。区块链网络中的各核心节点在接收到由记账节点发起的备份请求后,通过共识机制将该备份请求记录至传统区块链中。每个核心节点在确认备份请求已被记录至传统区块链后,获取该备份请求在传统区块链中所对应的区块标识,并根据备份请求与相应的区块标识从区块链网络中选取多个备份节点。可以理解,区块链网络中的每个核心节点根据备份请求与相应区块标识,分别从区块链网络中选取多个备份节点,且各核心节点所选取出的备份节点一致。
在一个实施例中,备份请求对应有请求标识,备份请求中包括候选备份节点数与备份节点数。区块链网络中的每个核心节点根据备份请求对应的请求标识与区块标识,从区块链网络中确定候选备份节点数的候选备份节点,并从候选备份节点中选取备份节点数的备份节点。
S204,记账节点获取多个备份节点,并与每个备份节点建立网络连接。
具体地,当记账节点为核心节点时,记账节点按照本申请中一个或多个实施例中核心节点选取备份节点的方式,从区块链网络中确定多个备份节点。当记账节点为边缘节点时,记账节点向与自身相连的一个或多个核心节点发送备份节点确定请求,接收一个或多个核心节点针对备份节点确定请求反馈的多个备份节点标识,并根据所接收的备份节点标识确定相应的备份节点。记账节点在确定备份请求对应的多个备份节点后,建立与每个备份节点的网络连接。
在一个实施例中,当记账节点与备份节点已存在网络连接,则无需再额外建立网络连接。记账节点可通过现有技术中的网络连接建立方式,与备份节点建立网络连接,在此不再赘述。记账节点与各备份节点建立网络连接,以确保记账节点与备份节点能够进行双向通信。
S206,当获取到待记录的目标数据时,记账节点触发生成与目标数据对应的目标区块,并将目标区块记录至自身对应的单节点记账区块链;目标区块包括前一个区块对应的区块哈希值与目标数据的数据哈希值,以及与区块哈希值和数据哈希值对应的数字签名。
其中,目标数据是指待记录至记账节点本地的数据。目标区块是指待记录至记账节点对应的单节点记账区块链上的区块。单节点记账区块链与传统区块链相对应,传统区块链由所有核心节点共同记账,单节点记账区块链由固定的单个记账节点进行记账。
具体地,当获取到待记录的目标数据时,记账节点获取前一个区块对应的区块哈希值,以及该目标数据的数据哈希值,并对所获取到的区块哈希值与数据哈希值进行签名,得到相应的数字签名。记账节点触发生成携带有该区块哈希值、数据哈希值与数字签名的目标区块,将该目标区块确定为目标数据所对应的目标区块,并将所生成的目标区块记录至自身对应的单节点记账区块链中。其中,前一个区块为记账节点自身对应的单节点记账区块链中的区块;
在一个实施例中,当获取到待记录的目标数据时,记账节点对所获取到的目标数据的合法性进行验证,当合法性验证通过时,触发生成与该目标数据对应的目标区块。
在一个实施例中,记账节点通过哈希算法对目标区块进行哈希计算,得到该目标区块对应的区块标识,并将目标区块与相应的区块标识对应记录至自身对应的单节点记账区块链中。
在一个实施例中,记账节点触发生成与目标数据对应的目标区块,包括:记账节点计算目标数据的数据哈希值;记账节点获取前一个区块对应的区块哈希值与备份确认信息;前一个区块为自身对应的单节点记账区块链中的区块;记账节点生成与数据哈希值、区块哈希值和备份确认信息对应的数字签名;记账节点根据数据哈希值、区块哈希值、备份确认信息与数字签名,生成与目标数据对应的目标区块。
具体地,记账节点通过哈希算法对目标数据进行哈希计算,得到相应的数据哈希值。记账节点从自身对应的单节点记账区块链中获取已记录的前一个区块,通过哈希算法对该前一个区块进行哈希计算,得到相应的区块哈希值。记账节点从本地获取备份请求所对应的各备份节点,针对该前一个区块反馈的备份确认信息。记账节点通过签名算法对所得到的数据哈希值、区块哈希值与备份确认信息进行签名,得到相应的数字签名,并根据该数据哈希值、区块哈希值、备份确认信息与数字签名,生成与目标数据对应的目标区块。
常用的哈希算法比如,MD5(Message Digest Algorithm,消息摘要算法第五版)、SHA1(Secure Hash Algorithm 1,安全哈希算法1)、SHA2(Secure Hash Algorithm 2,安全哈希算法1)和SHA256(一种哈希值长度为256位的安全哈希算法)等,本实施例在此不做具体限定。常用的数字签名比如,ECDSA(一种椭圆曲线数字签名算法)、SM2(一种椭圆曲线公钥密码算法)与RSA(公钥密码算法)等。
在一个实施例中,记账节点在首次获取到与备份请求对应的待记录的目标数据时,计算该目标数据的数据哈希值,对该数据哈希值进行签名得到数字签名,并根据该数据哈希值与数字签名生成与该目标数据对应的目标区块。
在一个实施例中,前一个区块是记账节点自身对应的单节点记账区块链中,最新记录的区块,也就是该单节点记账区块链中当前记录的最后一个区块。
S208,记账节点通过网络连接将目标区块发送至相应备份节点进行备份。
具体地,记账节点将所生成的目标区块通过已建立的网络连接分别发送至相应的备份节点,以指示备份节点对该目标区块进行备份。
在一个实施例中,当目标区块由记账节点根据对应于备份请求首次获取到的目标数据触发生成时,也就是当记账节点本地不存在与备份请求对应的单节点记账区块链时,记账节点通过网络连接直接将所生成的目标区块发送至相应备份节点进行备份。
在一个实施例中,当记账节点在本地存储的单节点记账区块链中存在目标区块的前一个区块时,记账节点将所生成的目标区块记录至自身对应的单节点记账区块链后,将该目标区块通过网络连接发送至相应备份节点进行备份。记账节点也可并行的执行将目标区块记录至单节点记账区块链,与将该目标区块发送至备份节点的相关步骤。
上述基于区块链的单节点记账方法,由区块链网络中的核心节点根据记账节点发起的备份请求,从区块链网络中动态选取多个备份节点,通过该多个备份节点对该记账节点记录的目标区块进行备份,以防止记账节点篡改所记录的目标区块,从而保证数据的不可篡改性。记账节点在获取到待记录的目标数据时,触发生成包括前一个区块对应的区块哈希值、目标数据的数据哈希值,以及与区块哈希值与目标数据对应的数字签名的目标区块,将所生成的目标区块记录至自身对应的单节点记账区块链中,并将该目标区块发送至基于自身发起的备份请求所确定的多个备份节点进行备份,以便于备份节点基于目标区块判断记账节点是否存在篡改行为。这样,每个目标区块由多个动态选取的备份节点进行传输与备份,且目标区块无需经由各备份节点进行共识,能够在保证数据可靠性与不可篡改的情况下,降低对各备份节点与记账节点的网络传输、节点运算及数据存储能力的要求。而且,该种记账方式下,区块链网络中可同时存在由多个记账节点各自记录的单节点记账区块链,能够降低对TPS与目标数据量的限制,从而能够应用于高频次、大容量数据存储的应用场景。
在一个实施例中,核心节点根据备份请求与相应的区块标识从区块链网络中选取多个备份节点,包括:核心节点根据备份请求与相应的区块标识,从区块链网络中确定候选备份节点;当候选备份节点包括与自身相连的边缘节点时,核心节点将备份请求发送至候选备份节点中与自身相连的边缘节点;当接收到与自身相连的边缘节点针对备份请求发送的参与备份确认信息时,核心节点通过区块链网络中的各核心节点将参与备份确认信息记录至传统区块链;核心节点从在传统区块链中已记录相应参与备份确认信息的候选备份节点中,筛选多个备份节点。
具体地,区块链网络中的每个核心节点根据所接收到的备份请求,以及该备份请求在传统区块链中对应的区块标识,从该区块链网络中确定多个候选备份节点,并判断所确定的候选备份节点中是否包括与自身相连的边缘节点。当判定候选备份节点中包括与自身相连的边缘节点时,核心节点将相应备份请求发送至所确定的候选备份节点中与自身相连的边缘节点,以使得边缘节点根据所接收到的备份请求判断自身是否参与备份,并在判定参与备份时触发参与备份确认信息。当接收到与自身相连的边缘节点针对所接收到的备份请求发送的参与备份确认信息时,核心节点将所接收到的参与备份确认信息广播至区块链网络中的各核心节点。区块链网络中的各核心节点通过共识机制,将所接收到的参与备份确认信息记录至传统区块链中。每个核心节点从备份请求所对应的候选备份节点中,选取在传统区块链中已记录有与该备份请求对应的参与备份确认信息的候选备份节点,并从所选取出的候选备份节点中筛选多个备份节点。
在一个实施例中,备份请求中包括最大记账次数、最大记账时长与备份报酬等。边缘节点对所接收到的备份请求进行解析,并根据解析得到的最大记账次数、最大记账时长与备份报酬,判断是否参与该备份请求所对应的账本的备份。当判定参与备份时,边缘节点触发生成与该备份请求对应的参与备份确认信息,并将所生成的参与备份确认信息发送至与自身相连的核心节点。其中,最大记账次数是指备份请求对应的账本链条的最大长度,也就是指备份请求对应的单节点记账区块链所包括的区块数。由于单节点记账区块链中每个区块的数据量是固定的,最大记账次数可用于计算备份相应账本所需的最大存储空间。最大记账时长是指账本备份所需要的最大时长。若超出最大记账时长,所有备份节点在确认此次记账无篡改行为后,可以自动删除备份,并清空相关的存储空间。一个备份请求对应一条单节点记账区块链,一条单节点记账区块链可理解为一个账本,生成与备份请求对应的账本的过程可理解为一次记账。
可以理解,若将备份请求发送至边缘节点的核心节点仍然与该边缘节点保持连接,该边缘节点则可将所生成的参与备份确认信息反馈至该核心节点。若将备份请求发送至边缘节点的核心节点与该边缘节点断开连接,该边缘节点则可将参与备份确认信息发送至其他与自身相连的核心节点。若与边缘节点相连的多个核心节点均将备份请求发送至该边缘节点,该边缘节点可将参与备份确认信息反馈至仍然与自身保持连接的任一核心节点。
在一个实施例中,备份请求中包括备份节点数。每个核心节点自获取到备份请求起至达到预设时长后,统计在传统区块链中已记录与该备份请求对应的参与备份确认信息的候选备份节点的数量。当统计的数量大于或等于该备份请求所指定的备份节点数时,每个核心节点从在传统区块链中已记录与该备份请求对应的参与备份确认信息的候选备份节点中,筛选备份节点数的备份节点。当统计的数量小于备份节点数时,各核心节点则不会执行上述筛选备份节点的相关步骤。若发起该备份请求的记账节点为核心节点,记账节点在判定统计的数量小于备份节点数时,重新发起备份请求。若发起该备份请求的记账节点为边缘节点,边缘节点在通过与自身相连的核心节点确定所统计的数量小于备份节点数时,重新发起备份请求。
上述实施例中,根据备份请求与相应区块标识动态确定候选备份节点,能够保证候选备份节点选取的随机性,从在传统区块链中已记录相应参与备份确认信息的候选备份节点中筛选备份节点,以保证备份节点选取的随机性、可靠性与可追溯性。
在一个实施例中,核心节点根据备份请求与相应的区块标识从区块链网络中选取多个备份节点,还包括:当候选备份节点包括核心节点自身时,核心节点根据备份请求判断自身是否参与备份;当判定核心节点自身参与备份时,核心节点触发生成与备份请求对应的参与备份确认信息,并通过区块链网络中的各核心节点将所生成的参与备份确认信息记录至传统区块链。
具体地,区块链网络中的每个核心节点在确定与备份请求对应的多个候选备份节点后,判断所确定的候选备份节点中是否包括核心节点自身。当判定候选备份节点中包括核心节点自身时,该核心节点根据备份请求判断自身是否参与该备份请求所对应的账本的备份。当判定自身参与备份时,核心节点触发生成与该备份请求对应的参与备份确认信息,并将所生成的参与备份确认信息广播至区块链网络中的其他核心节点,以通过区块链网络中的各核心节点基于共识机制将该参与备份确认信息记录至传统区块链中。
在一个实施例中,核心节点判断自身是否参与备份的方式,与上述边缘节点判断自身是否参与备份的方式类似,在此不再赘述。
在一个实施例中,当核心节点判定自身不参与备份时,可触发生成参与备份拒绝信息,也可针对相应备份请求不反馈任何信息。
上述实施例中,当根据备份请求与相应区块标识动态确定的候选备份节点包括核心节点自身时,核心节点在根据备份请求判定自身参与备份时,将触发生成的参与备份确认信息记录至传统区块链中,以将核心节点自身作为可供选作为备份节点的候选备份节点,进一步保证备份节点选取的随机性与可追溯性。
在一个实施例中,备份请求包括候选备份节点数;核心节点根据备份请求与相应的区块标识,从区块链网络中确定候选备份节点,包括:核心节点根据备份请求对应的请求标识与区块标识生成随机数种子;核心节点根据随机数种子与候选备份节点数,从区块链网络中确定候选备份节点数的候选备份节点。
其中,候选备份节点数是指针对备份请求所需确定的候选备份节点的数量。候选备份节点是指区块链网络中对备份请求对应的账本具有备份资格的节点,候选备份节点包括核心节点和/或边缘节点。
具体地,区块链网络中的每个核心节点获取备份请求对应的请求标识与区块标识,并根据所获取到的请求标识与区块标识生成随机数种子。每个核心节点解析备份请求得到候选备份节点数,根据随机数种子生成该候选备份节点数的伪随机数,并根据所生成的伪随机数从该区块链网络中确定候选备份节点数的候选备份节点。
在一个实施例中,核心节点根据随机数种子所生成的每个伪随机数为取值范围为[0,1)的实数。每个核心节点根据所生成的伪随机数与区块链网络中的节点数,从该区块链网络中确定候选备份节点数的候选备份节点。区块链网络中的节点数是指区块链网络中的核心节点与边缘节点的总数。按照每个节点(包括核心节点与边缘节点)加入区块链网络的先后顺序为每个节点编号。每个核心节点将所生成的每个伪随机数分别与区块链网络中的节点数相乘并向上取整,得到候选备份节点数的整数,并将编号与所得到的整数一致的节点确定为候选备份节点。在一个实施例中,区块链网络中的节点数是指区块链网络中当前在线的节点的总数。
在一个实施例中,每个核心节点基于请求标识与区块标识,按照相同的随机数种子生成算法生成相应的随机数种子,随机数种子生成算法在此不做具体限定。相应地,每个核心节点按照相同的伪随机数生成算法,基于相同的随机数种子分别生成候选备份节点数的伪随机数,伪随机数生成算法在此不做具体限定。
上述实施例中,根据请求标识与区块标识生成随机数种子,由于备份请求对应的区块标识可理解为绝对随机数,故根据随机数种子动态确定候选备份节点,能够保证候选备份节点的随机性。
在一个实施例中,备份请求包括备份节点数;核心节点从在传统区块链中已记录相应参与备份确认信息的候选备份节点中,筛选多个备份节点,包括:当在传统区块链中已记录相应参与备份确认信息的候选备份节点的数量大于备份节点数时,核心节点确定在传统区块链中已记录的各参与备份确认信息所对应的信息哈希值,并从在传统区块链中已记录相应参与备份确认信息的候选备份节点中,按照所确定的信息哈希值筛选备份节点数的备份节点。
其中,备份节点数是对备份请求对应的账本进行备份所需的备份节点的数量。备份节点是指实际对备份请求所对应的账本进行备份的节点,备份节点包括核心节点和/或边缘节点。
具体地,当在传统区块链中已记录与备份请求对应的参与备份确认信息的候选备份节点的数量,大于该备份请求所指定的备份节点数时,对于传统区块链中与该备份请求对应的每个参与备份确认信息,每个核心节点根据每个参与备份确认信息对应的信息标识,以及该参与备份确认信息在传统区块链中对应的区块标识生成相应的信息哈希值。每个核心节点按照所生成的信息哈希值,从在传统区块链中已记录与该备份请求对应的参与备份确认信息的候选备份节点中,筛选备份节点数的备份节点。
在一个实施例中,每个核心节点按照信息哈希值从小至大的顺序,或者,按照信息哈希值从大至小的顺序,从在传统区块链中已记录与该备份请求对应的参与备份确认信息的候选备份节点中,筛选备份节点数的备份节点。
在一个实施例中,每个核心节点通过相同的哈希算法,生成在传统区块链中已记录的各参与备份确认信息所对应的信息哈希值。
在一个实施例中,当在传统区块链中已记录相应参与备份确认信息的候选备份节点的数量等于备份节点数时,核心节点将在传统区块链中已记录相应参与备份确认信息的候选备份节点确定为备份节点。
在一个实施例中,由于区块链网络中的节点不能保证100%在线,且在线的候选备份节点也有可能拒绝参与备份,故备份请求中的候选备份节点数大于备份节点数。记账节点在发起记账请求时,可根据区块链网络中的节点在线率动态确定候选备份节点数。比如,假设节点在线率为1/3,区块链网络中的节点数为N,则候选备份节点数可确定为N/3。这样,能够保证从区块链网络中选取出满足备份节点数要求的备份节点。
上述实施例中,当传统区块链中对应于备份请求已记录的参与备份确认信息的数量大于备份节点数时,基于该已记录的每个参与备份确认信息对应的信息哈希值,动态选取备份节点,以进一步保证备份节点选取的随机性,从而能够进一步提高相应账本防篡改的鲁棒性。
在一个实施例中,步骤S208包括:记账节点通过网络连接将目标区块发送至相应备份节点;发送的目标区块用于指示备份节点判断记账节点是否存在篡改行为,在判定记账节点不存在篡改行为时,将目标区块备份在本地,并触发生成并反馈与目标区块对应的备份确认信息。
其中,备份确认信息是备份节点在判定目标区块不存在篡改行为时触发生成的。目标区块对应的备份确认信息,具体可包括该目标区块在单节点记账区块链中对应的区块标识、触发生成该备份确认信息的备份节点对应的备份节点标识,以及该备份节点在本地备份该目标区块的备份时间。备份确认信息还可包括备份节点对区块标识、备份节点标识与备份时间进行签名得到的数字签名。
具体地,记账节点通过已建立的网络连接,将所生成的目标区块发送至相应备份节点。备份节点根据所接收到的目标区块,判断发送该目标区块的记账节点是否存在篡改行为,也就是判断该目标区块是否为篡改后的区块。当根据所接收到的目标区块判定相应记账节点不存在篡改行为时,备份节点将该目标区块备份在本地,获取该目标区块对应的区块标识与备份时间,以及备份节点自身对应的备份节点标识,并触发生成与该区块标识、备份时间与备份节点标识对应的备份确认信息,将所生成的备份确认信息反馈至相应记账节点。
在一个实施例中,记账节点将各备份节点针对目标区块反馈的备份确认信息缓存在本地,在下一次获取到待记录的目标数据时,基于下一次获取到的目标数据触发生成携带有当前缓存的备份确认信息的目标区块,并删除该当前缓存的备份确认信息。备份确认信息是目标区块已被相应备份节点判定不存在篡改行为的凭证。由于网络连接断开等原因,记账节点在触发生成下一个目标区块时,可能尚未接收到自身对应的所有备份节点针对当前的目标区块分别反馈的备份确认信息。
在一个实施例中,当判定记账节点存在篡改行为时,备份节点则停止对所接收到的目标区块的备份,判定针对记账节点的此次记账无效。当备份节点为核心节点时,备份节点将记账节点的篡改行为广播至区块链网络。当备份节点为边缘节点时,备份节点通过自身相连的核心节点将记账节点的篡改行为广播至区块链网络。备份节点还可将由存在篡改行为的记账节点篡改的区块信息广播至区块链网络。
在一个实施例中,单节点记账区块链中的每个区块中包括前一个区块的区块哈希值。备份节点从所接收到的目标区块中获取该目标区块的前一个区块的区块哈希值,并将该区块哈希值与本地已备份的各区块中所包括的区块哈希值进行比较。若判定目标区块中的区块哈希值与本地已备份的区块中的区块哈希值一致时,则判定记账节点对应的单节点记账区块链存在分叉,从而判定该记账节点存在篡改行为。当判定单节点记账区块链存在分叉时,备份节点将存在分叉的两个区块,以及该两个区块的前一个区块的区块信息,通过核心节点记录至传统区块链中。由于单节点记账区块链中的各个区块中包括记账节点的数字签名,基于数字签名即可确定记账节点的篡改行为。
上述实施例中,通过备份节点判断相应记账节点是否存在篡改行为,并在判定记账节点不存在篡改行为时,将相应目标区块备份在本地,并反馈相应的备份确认信息,以保证单节点记账区块链中的数据的不可篡改性。
如图3所示,提供了一种基于区块链的单节点记账方法,该方法具体包括以下步骤:
S302,记账节点发起备份请求;备份请求用于指示区块链网络中的核心节点,将备份请求记录至传统区块链后,根据备份请求与相应的区块标识从区块链网络中选取多个备份节点。
S304,记账节点获取多个备份节点,并与每个备份节点建立网络连接。
S306,当获取到待记录的目标数据时,记账节点计算目标数据的数据哈希值。
S308,记账节点获取前一个区块对应的区块哈希值与备份确认信息;前一个区块为自身对应的单节点记账区块链中的区块。
S310,记账节点生成与数据哈希值、区块哈希值和备份确认信息对应的数字签名。
S312,记账节点根据数据哈希值、区块哈希值、备份确认信息与数字签名,生成与目标数据对应的目标区块,并将目标区块记录至自身对应的单节点记账区块链。
S314,记账节点通过网络连接将目标区块发送至相应备份节点;发送的目标区块用于指示备份节点判断记账节点是否存在篡改行为,在判定记账节点不存在篡改行为时,将目标区块备份在本地,并触发生成并反馈与目标区块对应的备份确认信息。
在一个实施例中,现有的全节点记账及备份的区块链网络中,若共识组内有超过50%的节点被一方控制,则存在51%攻击,若共识组内所有节点均被一方控制,则存在100%攻击。若实现了51%攻击,则意味着该全节点记账及备份的整个区块链网络不再安全,不具有不可篡改性。
而本申请提供的区块链网络中包括维护传统区块链的核心节点,以及与一个或多个核心节点相连的边缘节点,该区块链网络可理解为分布式网络。在该分布式网络中,即使某一方控制了全网络超过50%的节点,即实现了51%攻击,对于随机选取的N个节点也仅有21N的几率实现“100%攻击”。比如,当N=10时,机率为千分之一,概率极低。由此基于本申请提供的区块链网络结构,通过随机选取的备份节点来备份相应记账节点记录的账本,能够提高防篡改能力。
在一个实施例中,现有的区块链技术中,为了提高全节点记账及备份的区块链网络的每秒钟交易数量,通常采用分链方式,也就是从区块链网络中选取多个固定节点组成小共识群体,每个小共识群体共同维护一个分链账本,并按照预设周期将分链账本并入总链中。然而,该种记账方式,虽然能够提高区块链网络的每秒钟交易数量,但是由于每个分链上节点数量少,实现51%攻击的难度较总链大大降低,安全性较低。
图4为一个实施例中基于记账节点发起的备份请求选取备份节点的流程示意图。发起备份请求的记账节点也可理解为请求节点,备份请求中包括请求节点标识、候选备份节点数、备份节点数、最大记账次数、最大记账时长与备份报酬等请求信息,备份请求还对应有请求标识。通过区块链网络中的核心节点将备份请求记录至由核心节点维护的传统区块链中,能够得到该备份请求在传统区块链中对应的区块标识。传统区块链中的区块标识可通过区块ID1、….、区块IDm、…、区块IDn来表征,其中m与n用于表征相应区块在传统区块链中的序号,比如区块IDm表示第m个区块。如图4所示,备份请求在传统区块链中对应的区块标识为区块IDm。每个核心节点根据备份请求的请求标识与该备份请求在传统区块链中对应的区块标识生成随机数种子。
由于区块链网络中的每个核心节点与边缘节点都有可能作为记账节点发起备份请求,图4中以一个记账节点发起的备份请求为例,该备份请求对应的请求标识记为请求ID1。每个核心节点根据随机数种子生成候选备份节点数的候选备份节点,并将备份请求发送至候选备份节点中与自身相连的边缘节点。这样,获取到备份请求的每个候选备份节点均会根据所获取到的备份请求判断自身是否参与备份,若判定参与备份则触发相应的参与备份确认信息。当候选备份节点为边缘节点时,该候选备份节点将所生成的参与备份确认信息,通过与自身相连的核心节点广播至区块链网络中的各核心节点,进而通过各核心节点将该参与备份确认信息写入传统区块链中。
如图4所示,候选备份节点1触发生成的参与备份确认信息对应的信息标识记为确认ID1,核心节点通过共识机制将该参与备份确认信息记录传统区块链中区块标识为区块IDn的区块中,并根据该参与备份确认信息对应的确认ID1与区块IDn生成相应的信息哈希值,该信息哈希值记为哈希值1。候选备份节点3触发生成的参与备份确认信息对应的信息标识记为确认ID2,核心节点通过共识机制将该参与备份确认信息记录传统区块链中区块标识为区块IDn的区块中,并根据该参与备份确认信息对应的确认ID2与区块IDn生成相应的信息哈希值,该信息哈希值记为哈希值2。若区块链网络中所有的核心节点均为获取到某个候选备份节点针对备份请求发送的参与备份确认信息,则判定该候选备份节点拒绝参与备份,也就是判定该候选备份节点拒绝加入备份请求对应的备份节点集群。由此,每个核心节点根据由各候选备份节点生成的参与备份确认信息对应的信息哈希值,按照信息哈希值的排序从多个候选备份节点中选取前候选备份节点数的候选备份节点作为备份节点。候选备份节点数可记为N。
可以理解,按照上述流程从区块链网络中动态选取备份请求对应的多个备份节点,保证了备份节点选取是完全随机的,不可由少数节点操纵,从而能够提高防篡改能力。
图5为一个实施例中,单记账节点记账、多备份节点备份与判定篡改行为的原理示意图。如图5所示,记账节点发起的备份请求的请求标识记为请求ID。记账节点在首次获取到待记录的目标数据时,将备份请求的请求ID作为创世区块中的区块哈希值,创世区块的区块标识记为区块1,创世区块中包括目标数据对应的数据哈希值。记账节点将所生成的创世区块作为当前生成的目标区块,并发送至各备份节点进行备份,各备份节点根据所接收到的目标区块判断记账节点是否存在篡改行为,若判定不存在篡改行为,则将目标区块备份在本地,并向记账节点反馈表示确认/确认无篡改行为的备份确认信息。
记账节点第二次获取到待记录的目标数据时,触发生成携带有该目标数据对应的数据哈希值、前一个区块对应的区块哈希值(区块1对应的区块哈希值),以及各备份节点针对前一个区块反馈的备份确认信息的目标区块,生成相应的区块标识,记为区块2,并将该目标区块记录至自身对应的单节点记账区块链中。按照上述类似的流程,记账节点将当前生成的目标区块发送至各备份节点进行备份,并接收各备份节点在判定记账节点无篡改行为时反馈的备份确认信息,依次类推。如图5所示,目标数据对应的数据哈希值可理解为内容哈希值。
备份节点在判定记账节点记录的单节点记账区块存在分叉,也就是发现记账节点存在篡改行为时,通过广播存在分叉的分叉区块的方式广播分叉。如图5所示,区块2对应的区块中中包括区块1的区块哈希值,备份节点在接收到区块2’对应的目标区块后,判定区块2’与区块2各自对应的区块中均包括区块1的区块哈希值,由此判定相应单节点记账区块链存在分叉。
在一个实施例中,记账节点在单节点记账区块链中的区块中记录目标数据的数据哈希值,而将目标数据存储在本地,以降低目标区块的数据量,从而减少备份过程中的传输数据量与备份数据量。
在一个实施例中,将区块链网络中绝对可信的节点作为备份节点,无需根据备份请求动态选取备份节点。绝对可信的节点比如由政府运营的服务器。
上述实施例中,将区块链网络中的节点(包括核心节点与边缘节点)分成多个记账、备份组,能够显著提高全网的TPS。由于记账、备份流程无需采用复杂的共识机制,且仅备份数据哈希值,可以减小节点消耗、在组内实现高频率大容量的数据备份。若想实现篡改,记账节点必须实现100%攻击,难度较传统的分链方式所需的“51%攻击”大大提高,从而在少数节点形成的组内也能实现高安全性与极低的篡改可能。
可以理解,通过哈希算法SHA256生成的哈希值长度为256位,碰撞概率为
Figure BDA0002342119070000191
由此,碰撞概率极低,若两个输入值的SHA256输出结果相同,可认为该两个输入值相同。数字签名算法SM2(一种椭圆曲线公钥密码算法),使用一对公私钥,私钥仅由用户保管,用于生成数字签名;公钥可向全网公开,用于验证签名的正确性。在上述一个或多个实施例中,若通过哈希算法SHA256生成各个哈希值,并通过数字签名算法SM2得到各个数字签名,能够进一步保证数据的可靠性。
应该理解的是,虽然图2-3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图1所示,提供了一种基于区块链的单节点记账系统,该系统包括:核心节点与边缘节点;核心节点作为记账节点或备份节点;边缘节点作为记账节点或备份节点;
记账节点,用于发起备份请求;备份请求用于指示区块链网络中的核心节点,将备份请求记录至传统区块链后,根据备份请求与相应的区块标识从区块链网络中选取多个备份节点;
记账节点,还用于获取多个备份节点,并与每个备份节点建立网络连接;当获取到待记录的目标数据时,触发生成与目标数据对应的目标区块,并将目标区块记录至自身对应的单节点记账区块链;通过网络连接将目标区块发送至相应备份节点;所述目标区块包括前一个区块对应的区块哈希值与所述目标数据的数据哈希值,以及与所述区块哈希值和所述数据哈希值对应的数字签名;
备份节点,用于将目标区块进行备份。
在一个实施例中,核心节点,还用于根据备份请求与相应的区块标识,从区块链网络中确定候选备份节点;当候选备份节点包括与自身相连的边缘节点时,将备份请求发送至候选备份节点中与自身相连的边缘节点;当接收到与自身相连的边缘节点针对备份请求发送的参与备份确认信息时,通过区块链网络中的各核心节点将参与备份确认信息记录至传统区块链;从在传统区块链中已记录相应参与备份确认信息的候选备份节点中,筛选多个备份节点。
在一个实施例中,核心节点,还用于当候选备份节点包括核心节点自身时,根据备份请求判断自身是否参与备份;当判定核心节点自身参与备份时,触发生成与备份请求对应的参与备份确认信息,并通过区块链网络中的各核心节点将所生成的参与备份确认信息记录至传统区块链。
在一个实施例中,备份请求包括候选备份节点数;核心节点,还用于根据备份请求对应的请求标识与区块标识生成随机数种子;根据随机数种子与候选备份节点数,从区块链网络中确定候选备份节点数的候选备份节点。
在一个实施例中,备份请求包括备份节点数;核心节点,还用于当在传统区块链中已记录相应参与备份确认信息的候选备份节点的数量大于备份节点数时,确定在传统区块链中已记录的各参与备份确认信息所对应的信息哈希值,并从在传统区块链中已记录相应参与备份确认信息的候选备份节点中,按照所确定的信息哈希值筛选备份节点数的备份节点。
在一个实施例中,记账节点,还用于计算目标数据的数据哈希值;获取前一个区块对应的区块哈希值与备份确认信息;前一个区块为自身对应的单节点记账区块链中的区块;生成与数据哈希值、区块哈希值和备份确认信息对应的数字签名;根据数据哈希值、区块哈希值、备份确认信息与数字签名,生成与目标数据对应的目标区块。
在一个实施例中,记账节点,还用于通过网络连接将目标区块发送至相应备份节点;
备份节点,还用于判断记账节点是否存在篡改行为,在判定记账节点不存在篡改行为时,将目标区块备份在本地,并触发生成并反馈与目标区块对应的备份确认信息。
关于基于区块链的单节点记账系统的具体限定可以参见上文中对于基于区块链的单节点记账方法的限定,在此不再赘述。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是记账节点或备份节点,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储单节点记账区块链。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于区块链的单节点记账方法。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现上述各个实施例中的基于区块链的单节点记账方法的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各个实施例中的基于区块链的单节点记账方法的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种基于区块链的单节点记账方法,所述方法包括:
记账节点发起备份请求;所述备份请求用于指示区块链网络中的核心节点,将所述备份请求记录至传统区块链后,根据所述备份请求与相应的区块标识从所述区块链网络中选取多个备份节点;
所述记账节点获取所述多个备份节点,并与每个备份节点建立网络连接;
当获取到待记录的目标数据时,所述记账节点触发生成与所述目标数据对应的目标区块,并将所述目标区块记录至自身对应的单节点记账区块链;所述目标区块包括前一个区块对应的区块哈希值与所述目标数据的数据哈希值,以及与所述区块哈希值和所述数据哈希值对应的数字签名;
所述记账节点通过所述网络连接将所述目标区块发送至相应备份节点进行备份。
2.根据权利要求1所述的方法,其特征在于,所述核心节点根据所述备份请求与相应的区块标识从所述区块链网络中选取多个备份节点,包括:
所述核心节点根据所述备份请求与相应的区块标识,从所述区块链网络中确定候选备份节点;
当所述候选备份节点包括与自身相连的边缘节点时,所述核心节点将所述备份请求发送至所述候选备份节点中与自身相连的边缘节点;
当接收到与自身相连的边缘节点针对所述备份请求发送的参与备份确认信息时,所述核心节点通过所述区块链网络中的各核心节点将所述参与备份确认信息记录至所述传统区块链;
所述核心节点从在所述传统区块链中已记录相应参与备份确认信息的候选备份节点中,筛选多个备份节点。
3.根据权利要求2所述的方法,其特征在于,所述核心节点根据所述备份请求与相应的区块标识从所述区块链网络中选取多个备份节点,还包括:
当所述候选备份节点包括核心节点自身时,所述核心节点根据所述备份请求判断自身是否参与备份;
当判定核心节点自身参与备份时,所述核心节点触发生成与所述备份请求对应的参与备份确认信息,并通过所述区块链网络中的各核心节点将所生成的参与备份确认信息记录至所述传统区块链。
4.根据权利要求2所述的方法,其特征在于,所述备份请求包括候选备份节点数;所述核心节点根据所述备份请求与相应的区块标识,从所述区块链网络中确定候选备份节点,包括:
所述核心节点根据所述备份请求对应的请求标识与区块标识生成随机数种子;
所述核心节点根据所述随机数种子与所述候选备份节点数,从所述区块链网络中确定所述候选备份节点数的候选备份节点。
5.根据权利要求2所述的方法,其特征在于,所述备份请求包括备份节点数;所述核心节点从在所述传统区块链中已记录相应参与备份确认信息的候选备份节点中,筛选多个备份节点,包括:
当在所述传统区块链中已记录相应参与备份确认信息的候选备份节点的数量大于所述备份节点数时,所述核心节点确定在所述传统区块链中已记录的各参与备份确认信息所对应的信息哈希值,并
从在所述传统区块链中已记录相应参与备份确认信息的候选备份节点中,按照所确定的信息哈希值筛选所述备份节点数的备份节点。
6.根据权利要求1至5任意一项所述的方法,其特征在于,所述记账节点触发生成与所述目标数据对应的目标区块,包括:
所述记账节点计算所述目标数据的数据哈希值;
所述记账节点获取前一个区块对应的区块哈希值与备份确认信息;所述前一个区块为自身对应的单节点记账区块链中的区块;
所述记账节点生成与所述数据哈希值、所述区块哈希值和所述备份确认信息对应的数字签名;
所述记账节点根据所述数据哈希值、所述区块哈希值、所述备份确认信息与所述数字签名,生成与所述目标数据对应的目标区块。
7.根据权利要求6所述的方法,其特征在于,所述记账节点通过所述网络连接将所述目标区块发送至相应备份节点进行备份,包括:
所述记账节点通过所述网络连接将所述目标区块发送至相应备份节点;发送的所述目标区块用于指示所述备份节点判断所述记账节点是否存在篡改行为,在判定所述记账节点不存在篡改行为时,将所述目标区块备份在本地,并触发生成并反馈与所述目标区块对应的备份确认信息。
8.一种基于区块链的单节点记账系统,其特征在于,所述系统包括:核心节点与边缘节点;所述核心节点作为记账节点或备份节点;所述边缘节点作为记账节点或备份节点;
所述记账节点,用于发起备份请求;所述备份请求用于指示区块链网络中的核心节点,将所述备份请求记录至传统区块链后,根据所述备份请求与相应的区块标识从所述区块链网络中选取多个备份节点;
所述记账节点,还用于获取所述多个备份节点,并与每个备份节点建立网络连接;当获取到待记录的目标数据时,触发生成与所述目标数据对应的目标区块,并将所述目标区块记录至自身对应的单节点记账区块链;通过所述网络连接将所述目标区块发送至相应备份节点;所述目标区块包括前一个区块对应的区块哈希值与所述目标数据的数据哈希值,以及与所述区块哈希值和所述数据哈希值对应的数字签名;
所述备份节点,用于将所述目标区块进行备份。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
CN201911380564.1A 2019-12-27 2019-12-27 基于区块链的单节点记账方法、系统、设备和存储介质 Active CN111191294B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911380564.1A CN111191294B (zh) 2019-12-27 2019-12-27 基于区块链的单节点记账方法、系统、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911380564.1A CN111191294B (zh) 2019-12-27 2019-12-27 基于区块链的单节点记账方法、系统、设备和存储介质

Publications (2)

Publication Number Publication Date
CN111191294A true CN111191294A (zh) 2020-05-22
CN111191294B CN111191294B (zh) 2022-05-24

Family

ID=70707649

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911380564.1A Active CN111191294B (zh) 2019-12-27 2019-12-27 基于区块链的单节点记账方法、系统、设备和存储介质

Country Status (1)

Country Link
CN (1) CN111191294B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111836268A (zh) * 2020-07-10 2020-10-27 全链通有限公司 终端设备接入信息处理方法、设备及存储介质
CN112883028A (zh) * 2021-02-09 2021-06-01 浙江数秦科技有限公司 一种基于区块链的医疗数据可信存管系统
CN112953715A (zh) * 2021-01-27 2021-06-11 北京众享比特科技有限公司 一种区块链节点动态识别密码算法的方法
CN113722545A (zh) * 2021-06-30 2021-11-30 电子科技大学 一种许可链环境下的数据编校方法
CN115185972A (zh) * 2022-09-13 2022-10-14 北京大学 一种数字对象的存证副本的管理方法与装置
CN116932656A (zh) * 2023-09-18 2023-10-24 中孚安全技术有限公司 基于区块链的数据血缘存储方法、系统、设备及介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170097916A1 (en) * 2015-10-02 2017-04-06 International Business Machines Corporation Handling CPU Hotplug Events In RCU Without Sleeplocks
CN107819749A (zh) * 2017-10-26 2018-03-20 平安科技(深圳)有限公司 基于以太坊的区块链系统和交易数据处理方法
CN108848055A (zh) * 2018-05-03 2018-11-20 中国银联股份有限公司 一种区块链共识方法、记账节点及节点
CN109711836A (zh) * 2018-11-15 2019-05-03 远光软件股份有限公司 一种交易的存储方法、存储网络和电子设备
CN109885423A (zh) * 2019-01-04 2019-06-14 上海七印信息科技有限公司 一种区块链源数据备份方法
CN110009338A (zh) * 2018-12-25 2019-07-12 阿里巴巴集团控股有限公司 基于区块链的记账方法及装置、电子设备
CN110019972A (zh) * 2017-09-25 2019-07-16 航天信息股份有限公司 电子发票的存储方法、记账链的恢复方法及电子装置
CN110213737A (zh) * 2019-05-23 2019-09-06 广西大学 基于联盟链建立体域网信息安全机制的方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170097916A1 (en) * 2015-10-02 2017-04-06 International Business Machines Corporation Handling CPU Hotplug Events In RCU Without Sleeplocks
CN110019972A (zh) * 2017-09-25 2019-07-16 航天信息股份有限公司 电子发票的存储方法、记账链的恢复方法及电子装置
CN107819749A (zh) * 2017-10-26 2018-03-20 平安科技(深圳)有限公司 基于以太坊的区块链系统和交易数据处理方法
CN108848055A (zh) * 2018-05-03 2018-11-20 中国银联股份有限公司 一种区块链共识方法、记账节点及节点
CN109711836A (zh) * 2018-11-15 2019-05-03 远光软件股份有限公司 一种交易的存储方法、存储网络和电子设备
CN110009338A (zh) * 2018-12-25 2019-07-12 阿里巴巴集团控股有限公司 基于区块链的记账方法及装置、电子设备
CN109885423A (zh) * 2019-01-04 2019-06-14 上海七印信息科技有限公司 一种区块链源数据备份方法
CN110213737A (zh) * 2019-05-23 2019-09-06 广西大学 基于联盟链建立体域网信息安全机制的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
董蓉 等: "基于区块链的云制造信息数据记录技术", 《计算机技术与发展》 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111836268A (zh) * 2020-07-10 2020-10-27 全链通有限公司 终端设备接入信息处理方法、设备及存储介质
CN111836268B (zh) * 2020-07-10 2023-04-28 全链通有限公司 终端设备接入信息处理方法、设备及存储介质
CN112953715A (zh) * 2021-01-27 2021-06-11 北京众享比特科技有限公司 一种区块链节点动态识别密码算法的方法
CN112953715B (zh) * 2021-01-27 2023-03-14 北京众享比特科技有限公司 一种区块链节点动态识别密码算法的方法
CN112883028A (zh) * 2021-02-09 2021-06-01 浙江数秦科技有限公司 一种基于区块链的医疗数据可信存管系统
CN112883028B (zh) * 2021-02-09 2023-07-07 浙江数秦科技有限公司 一种基于区块链的医疗数据可信存管系统
CN113722545A (zh) * 2021-06-30 2021-11-30 电子科技大学 一种许可链环境下的数据编校方法
CN113722545B (zh) * 2021-06-30 2023-04-28 电子科技大学 一种许可链环境下的数据编校方法
CN115185972A (zh) * 2022-09-13 2022-10-14 北京大学 一种数字对象的存证副本的管理方法与装置
CN116932656A (zh) * 2023-09-18 2023-10-24 中孚安全技术有限公司 基于区块链的数据血缘存储方法、系统、设备及介质
CN116932656B (zh) * 2023-09-18 2024-01-09 中孚安全技术有限公司 基于区块链的数据血缘存储方法、系统、设备及介质

Also Published As

Publication number Publication date
CN111191294B (zh) 2022-05-24

Similar Documents

Publication Publication Date Title
CN111191294B (zh) 基于区块链的单节点记账方法、系统、设备和存储介质
CN109936457B (zh) 区块链多方见证方法、装置、设备及计算机可读存储介质
US10762479B2 (en) Method and system for processing blockchain-based real-time transaction
US11349674B2 (en) Digital certificate management method and apparatus, computer device, and storage medium
CN110598448B (zh) 基于区块链的操作数据处理方法、装置、设备及存储介质
CN111200641B (zh) 数据跨链共享方法、系统,计算机设备和存储介质
CN108964924B (zh) 数字证书校验方法、装置、计算机设备和存储介质
CN107171810B (zh) 区块链的验证方法及装置
US20180293557A1 (en) Method of charging electronic currency automatically based on blockchain and system thereof
CN110647582A (zh) 区块链网络共识校验的方法、装置、存储介质和计算机设备
CN110598446A (zh) 基于区块链的测试方法、装置、存储介质和计算机设备
CN111556120A (zh) 基于区块链的数据处理方法、装置、存储介质及设备
CN113301114B (zh) 区块链共识节点选择方法、装置、计算机设备和存储介质
CN111211911B (zh) 一种协同签名方法、装置、设备及系统
CN110119390B (zh) 基于区块链的金融信息外包管理系统
CN110286849B (zh) 数据存储系统的数据处理方法和装置
CN111131336B (zh) 多方授权场景下的资源访问方法、装置、设备及存储介质
CN109936620B (zh) 基于区块链的存储方法及装置、系统与存储介质
CN109840769B (zh) 基于区块链的存证方法及装置、系统与存储介质
CN111522874A (zh) 区块链共识方法、装置、计算机设备和存储介质
CN108616362B (zh) 投票信息生成方法和装置
CN111461799B (zh) 数据处理方法、装置、计算机设备及介质
CN111314066B (zh) 基于区块链的数据转移方法、终端及计算机可读存储介质
CN110597820B (zh) 基于区块链的信息处理方法、装置、存储介质和设备
CN110011796B (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