CN112116470B - 一种基于随机见证的图式账本创建方法和装置 - Google Patents
一种基于随机见证的图式账本创建方法和装置 Download PDFInfo
- Publication number
- CN112116470B CN112116470B CN202010809483.5A CN202010809483A CN112116470B CN 112116470 B CN112116470 B CN 112116470B CN 202010809483 A CN202010809483 A CN 202010809483A CN 112116470 B CN112116470 B CN 112116470B
- Authority
- CN
- China
- Prior art keywords
- block
- node
- account book
- global knowledge
- dag structure
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Finance (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种基于随机见证的图式账本创建方法和装置,涉及分布式账本技术领域。应用于分布式账本系统;所述分布式账本系统包括委员会节点维护的全局知识单链,以及所述委员会节点和普通节点维护的DAG结构。旨在提供一种基于可验证的基本账本信息创建的账本方法,以使分布式账本中每个节点的DAG结构的图式账本都是可信赖的,结合基于全局知识对写入图式账本的区块进行随机见证,保证写入图式账本的区块都是安全的,进而保证随机见证的分布式账本的安全性。
Description
技术领域
本申请涉及分布式账本技术领域,特别是涉及一种基于随机见证的图式账本创建方法和装置。
背景技术
2008年,一位自称中本聪的匿名人士提出比特币(Bitcoin),紧接着,以区块链技术(blockchain technology)为主的分布式账本技术(distributed ledger technology)相继问世。分布式账本技术本质上是一种在多站点、多地理位置或者多机构之间共享资产的数据库。分布式账本技术由于其去中心化、去信任化和防篡改的特点逐渐受到关广泛注和应用。
以比特币为代表的第一代区块链技术主要采用节点状态机复制,即全网所有节点都对指令和数据达成一致,但完整数据的数据传输过程将会占用大量网络流量开销,每个节点的数据一致更会导致分布式账本难以扩展,吞吐率难以增加。
为提高分布式账本的吞吐率,提出随机见证机制。随机见证机制是在系统的所有节点中选择部分节点对区块数据进行见证,进而使账本系统可以并行产块,提供账本系统的吞吐率。但随机见证机制导致每一份数据只被系统中的部分节点的账本存储,而存储数据的每个节点的账本是否是安全可靠的并不能确认,目前基于随机见证的账本存储数据容易被篡改,安全性较低。
发明内容
本申请实施例提出的一种基于随机见证的图式账本创建方法和装置,旨在提供一种基于可验证的基本账本信息创建的账本方法,以使分布式账本中每个节点的DAG结构的图式账本都是可信赖的,结合基于全局知识对写入图式账本的区块进行随机见证,保证写入图式账本的区块都是安全的,进而保证随机见证的分布式账本的安全性。
本申请实施例第一方面提供一种基于随机见证的图式账本创建方法,应用于分布式账本系统;所述分布式账本系统包括委员会节点维护的全局知识单链,以及所述委员会节点和普通节点维护的DAG结构;所述方法包括:
第一节点根据创建账本的操作指令,生成创建账本请求;其中,所述第一节点为所述分布式账本系统中的任意节点;
所述第一节点将所述创建账本请求广播给所述分布式账本系统中的所有节点;
所述委员会节点对接收的所述创建账本请求进行验证;
所述委员会节点在所述创建账本请求通过验证时,根据所述创建账本请求,在所述全局知识单链中写入最新全局知识区块;
所述委员会节点将所述最新全局知识区块广播给所述分布式账本系统中的剖通节点;
所述分布式账本系统中的所有节点中的每个节点根据所述最新全局知识区块,创建DAG结构的账本。
可选地,所述方法还包括:
所述第一节点利用管理员私钥,对所述创建账本请求进行数字签名;所述创建账本请求包括DAG结构的账本名称;
所述委员会节点对接收的所述创建账本请求进行验证,包括:
从所述全局知识单链的创世区块获取管理员公钥;
根据所述管理员公钥,验证所述创建账本请求的数字签名;
遍历所述全局知识单链,获取账本列表;
基于所述DAG结构的账本名称,在所述账本列表中对所述创建账本请求进行同名账本验证;
所述分布式账本系统中的所有节点中的每个节点根据所述最新全局知识区块,创建DAG结构的账本,包括:
所述分布式账本系统中的所有节点中的每个节点根据所述最新全局知识区块,在本地创建所述DAG结构的创世区块;所述创世区块包括所述DAG结构的账本名称。
可选地,所述方法还包括:
将所述分布式账本系统中达到预设的产块条件的任意节点,确定为产块节点;
所述产块节点打包收集的交易集,得到业务交易区块体;
所述产块节点根据基于所述全局知识单链获得的全局知识,在所述分布式账本系统中确定见证节点;
所述产块节点和所述见证节点对所述业务交易区块体进行随机见证;
所述产块节点在所述业务交易区块体通过随机见证时,获得与所述区块体对应的业务交易区块;
所述产块节点在本地的DAG结构中写入所述业务交易区块;
所述见证节点在本地的DAG结构中备份所述业务交易区块。
可选地,所述产块节点在本地的DAG结构中写入所述业务交易区块,包括:
在本地的DAG结构中确定第一前驱区块;所述第一前驱区块是所述产块节点生成的上一个区块或者创世区块;
在本地的DAG结构的多个末端区块中选择除所述第一前驱区块外的任意的末端区块作为第二前驱区块;
将所述业务交易区块与所述第一前驱区块和所述第二前驱区块分别连接;
所述见证节点在本地的DAG结构中备份所述业务交易区块,包括:
在本地的DAG结构中确定第三前驱区块;所述第三前驱区块是所述产块节点生成的上一个区块或者创世区块;
在本地的DAG结构的多个末端区块中选择除所述第三前驱区块外的任意的末端区块作为第四前驱区块;
将所述业务交易区块的备份区块与所述第三前驱区块和所述第四前驱区块分别连接。
可选地,所述产块节点根据基于所述全局知识单链获得的全局知识,在所述分布式账本系统中确定见证节点,包括:
所述委员会节点遍历所述全局知识单链中的所有区块,获得全局知识,并将所述全局知识对应的全局知识区块广播给所述分布式账本系统中的所有节点;所述全局知识包括可用节点列表和随机种子;
所述产块节点根据本地私钥和所述随机种子生成随机序列;
所述产块节点基于所述随机序列,在所述可用节点列表中确定见证节点。
可选地,创建DAG结构的账本后,所述方法还包括:
将所述DAG结构的账本名称和所述DAG结构的存储区域存储至本地存储系统;
所述产块节点在本地的DAG结构中写入所述业务交易区块,包括:
根据存储数据的操作指令,确定所述业务交易区块待写入的目标账本名称;
根据所述哈希表和所述目标账本名称,确定所述业务交易区块待写入的目标DAG结构;
在所述目标DAG结构写入所述业务交易区块。
本申请实施例第二方面提供一种基于随机见证的图式账本创建装置,应用于分布式账本系统;所述分布式账本系统包括委员会节点维护的全局知识单链,以及所述委员会节点和普通节点维护的DAG结构;所述装置包括:
创建账本请求模块,用于使第一节点根据创建账本的操作指令,生成创建账本请求;其中,所述第一节点为所述分布式账本系统中的任意节点;
创建账本请求广播模块,用于使所述第一节点将所述创建账本请求广播给所述分布式账本系统中的所有节点;
创建账本请求验证模块,用于使所述委员会节点对接收的所述创建账本请求进行验证;
创建账本区块生成模块,用于使所述委员会节点在所述创建账本请求通过验证时,根据所述创建账本请求,在所述全局知识单链中写入最新全局知识区块;
全局知识区块广播模块,用于使所述委员会节点将所述最新全局知识区块广播给所述分布式账本系统中的所有节点;
账本创建模块,用于使所述分布式账本系统中的所有节点中的每个节点根据所述最新全局知识区块,创建DAG结构的账本。
可选地,所述装置还包括:
创建账本请求签名模块,用于使所述第一节点利用管理员私钥,对所述创建账本请求进行数字签名;所述创建账本请求包括DAG结构的账本名称;
所述创建账本请求验证模块包括:
公钥获取子模块,用于从所述全局知识单链的创世区块获取管理员公钥;
数字签名验证子模块,用于根据所述管理员公钥,验证所述创建账本请求的数字签名;
账本列表获取子模块,用于遍历所述全局知识单链,获取账本列表;
账本名称验证子模块,用于基于所述DAG结构的账本名称,在所述账本列表中对所述创建账本请求进行同名账本验证;
所述账本创建模块包括:
创世区块创建子模块,用于使所述分布式账本系统中的所有节点中的每个节点根据所述最新全局知识区块,在本地创建所述DAG结构的创世区块;所述创世区块包括所述DAG结构的账本名称。
可选地,所述装置还包括:
产块节点确定模块,用于将所述分布式账本系统中达到预设的产块条件的任意节点,确定为产块节点;
业务交易区块生成模块,用于使所述产块节点打包收集的交易集,得到业务交易区块体;
见证节点确定模块,用于使所述产块节点根据基于所述全局知识单链获得的全局知识,在所述分布式账本系统中确定见证节点;
见证见证模块,用于使所述产块节点和所述见证节点对所述业务交易区块体进行随机见证;
业务交易区块获得模块,用于使所述产块节点在所述业务交易区块体通过随机见证时,获得与所述区块体对应的业务交易区块;
账本数据写入模块,用于使所述产块节点在本地的DAG结构中写入所述业务交易区块;
账本数据备份模块,用于使所述见证节点在本地的DAG结构中备份所述业务交易区块。
可选地,所述账本数据写入模块包括:
第一前驱区块确定子模块,用于在本地的DAG结构中确定第一前驱区块;所述第一前驱区块是所述产块节点生成的上一个区块或者创世区块;
第二前驱区块确定子模块,用于在本地的DAG结构的多个末端区块中选择除所述第一前驱区块外的任意的末端区块作为第二前驱区块;
账本数据写入子模块,用于将所述业务交易区块与所述第一前驱区块和所述第二前驱区块分别连接;
所述账本数据备份模块包括:
第三前驱区块确定子模块,用于在本地的DAG结构中确定第三前驱区块;所述第三前驱区块是所述产块节点生成的上一个区块或者创世区块;
第四前驱区块确定子模块,用于在本地的DAG结构的多个末端区块中选择除所述第三前驱区块外的任意的末端区块作为第四前驱区块;
账本数据备份子模块,用于将所述业务交易区块的备份区块与所述第三前驱区块和所述第四前驱区块分别连接。
本申请实施例第三方面提供一种可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现如本申请第一方面所述的方法中的步骤。
本申请实施例第四方面提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现本申请第一方面所述的方法的步骤。
本申请通过委员会节点验证账本创建请求,委员会节点是通过选举得到的可信赖的多个节点,保证节点创建的每一个DAG结构的图式账本都是可靠的。委员会节点还负责节点的授权、注册、注销等维护,并基于维护节点的信息生成全局知识区块,采用状态机复制的见证机制,全部的委员会节点对产生的所有全局知识区块进行见证、备份,共同维护全局知识单链,保证了全局知识的可靠性。分布式账本的产块节点基于安全可靠的全局知识中的随机种子和本地的私钥,选择对产生的新区块进行见证的见证节点,防止恶意节点对新区块的恶意见证,保证了对新区块进行验证的节点的安全性,产块节点和见证节点将新区块写入本地的DAG结构,以使同一时间分布式账本系统可以有多个区块同时写入账本,保证了分布式账本系统的写入速率,同时DAG结构是随机见证的,每个节点不必备份全部的交易数据,所以分布式账本是可扩展的。因此,基于随机见证的图式账本创建方法,在安全可靠的DAG结构的图式账本中写入安全可靠的业务交易区块,既能保证分布式账本中记录交易数据的图式账本是可扩展的,写入速率高,又能保证图式账本中生成的区块进过了安全可靠的随机见证,保证写入图式账本的区块的难以篡改性,适用于大数据存证服务场景。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提出的基于随机见证的图式账本创建方法的步骤流程图;
图2是本申请实施例中节点的结构示意图;
图3是本申请实施例中委员会节点根据创建账本请求生成最新全局知识区块的流程图;
图4本申请实施例将新区块写入DAG结构的示意图;
图5是本申请实施例提出的基于随机见证的图式账本创建装置的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
大数据存证服务场景的特点:
大数据环境中数据总量多、数据类型多、生成速度极快,因此在大数据环境下的分布式账本应具备:高吞吐率和可拓展性。数据存证指的是将电子数据以备份的形式存放在服务器,换言之利用分布式账本维护一个线性增长的日志,因此,进行数据存证的分布式账本应具备:安全性和抗抵赖、抗篡改的特性。
以比特币为代表的基于状态机复制的分布式账本,即系统中的所有节点都会对系统生成的每个区块进行验证和存储的分布式账本,能够确保分布式账本的数据一致,实现分布式账本防篡改、防抵赖、防伪造的功能,但由于系统的每个节点都会对系统生成的每个区块进行验证和存储,导致了分布式账本节点数量与整个分布式账本的存储总量无关,只有分别增加系统中每个节点的存储空间,才能扩展分布式账本整体的存储空间,换言之简单的增加分布式账本系统的节点数量,不仅不能增加分布式账本整体的存储空间,还会因为网络延迟,造成吞吐率的瓶颈。而大数据环境的数据总量多、数据类型多、生成速度快,很难由单一节点完整存储,因此,即使基于状态机复制的分布式账本具有防篡改、防抵赖等特性,也不适用于大数据存证服务场景。
应用于分布式账本系统;所述分布式账本系统包括委员会节点维护的全局知识单链,以及所述委员会节点和普通节点维护的DAG结构;
委员会节点维护全局知识单链指的是,委员会节点生成的区块在通过全部委员会节点的验证后,写入全局知识单链。委员会节点和普通节点维护的DAG结构指的是,委员会节点和普通节点都能够将采集的交易数据(存证数据)打包,生成交易数据区块,在交易数据区块通过随机见证后,写入DAG结构的图式账本。
鉴于上述问题,本申请的分布式账本使用DAG结构对交易数据(存证数据)进行存储,特别地,本申请根据分布式账本中新节点注册、新节点加入参与随机见证的节点集合、节点的注销、节点移除参与随机见证的节点集合等信息,生成全局知识单链。由于上述新节点注册、新节点加入参与随机见证的节点集合、节点的注销、节点移除参与随机见证的节点集合都会通过委员会节点的验证,所有的委员还会根据验证结果,生成相应的区块,以共同维护一条全局知识单链,所以全局知识单链中的区块数据难以篡改,进而全局知识单链的区块中记录的上述节点的管理信息数据是安全可靠的,保证了分布式账本系统中的所有节点都是通过授权,是合法的节点。利用本申请实施例提出的安全的节点对生成的区块进行随机见证,完成DAG结构的并行产块,在提高图式账本存储交易数据的吞吐率的同时,为数据安全提供了基础。
本申请的分布式账本基于通过授权的安全可靠的节点,创建DAG结构的具体步骤如下:
如图1所示,图1是本申请实施例提出的基于随机见证的图式账本创建方法的步骤流程图。
步骤S101:第一节点根据创建账本的操作指令,生成创建账本请求;其中,所述第一节点为所述分布式账本系统中的任意节点;
委员会节点是在分布式账本系统中选择的任意节点,具体可以基于密码学的抽签算法确定委员会节点,也可以在部署分布式账本系统的节点的各个机构选择任意节点,再将各个机构选择的任意节点组合,得到委员会节点。普通节点是分布式账本系统中除委员会节点外的其他节点。
第一节点是接收到用户输入的创建账本的操作的节点。
用户可以在任意节点执行创建账本的操作,接收到创建账本的操作的节点生成相应的创建账本请求。
具体地,创建账本的操作包括输入待创建的账本的名称,输入管理员私钥,输入管理员私钥包括但不限于插入私钥U盾等操作。
所述第一节点利用管理员私钥,对所述创建账本请求进行数字签名;所述创建账本请求包括DAG结构的账本名称;
在生成创建账本请求后,第一节点还会利用管理员私钥对创建账本进行数字签名。
本申请所指的节点是:多个可信赖的机构的每个机构设置的多个部署了分布式账本的计算机服务器,并对每个节点设置可以唯一标识节点的节点ID。
如图2所示,图2是本申请实施例中节点的结构示意图。各个节点在分布式账本中是对等的,借助P2P网络进行多种方式的通信。节点由应用层、协议层、数据层和网络层组成。应用层用于分布式账本系统对外提供服务,例如在业务系统工作时采集存证数据并向账本(DAG结构)写入存证数据、提供检索服务,以在分布式账本中检索得到用户需求的存证数据等。协议层用于存储分布式账本系统的共识协议、节点授权等。数据层用于存储DAG结构的图式账本、全局知识单链等账本数据、节点实名认证的凭证(凭证)、P2P组网所需凭证(凭证)、节点注册的数字签名和节点的公钥私钥(凭证)等。网络层用于负责节点之间的通信,存储P2P网络通信协议、提供节点路由、节点发现、点对点通信、广播或组播等功能。
节点实名认证的凭证是指证明节点由可信赖的机构部署的计算机服务器的凭证。
步骤S102:所述第一节点将所述创建账本请求广播给所述分布式账本系统中的所有节点;
创建账本请求是第一节点生成的请求委员会节点对待创建的账本进行验证的消息,具体可以通过第一节点网络层的P2P网络实现创建账本请求的广播。
普通节点和委员会节点都会收到节点注册请求,普通节点可以继续广播普通节点,委员会节点则对接收的节点注册请求进行验证。
步骤S103:所述委员会节点对接收的所述创建账本请求进行验证;
步骤S104:所述委员会节点在所述创建账本请求通过验证时,根据所述创建账本请求,在所述全局知识单链中写入最新全局知识区块;
所有的委员会节点收到创建账本请求都会进行验证,并对验证结果签名,将具有签名的验证结果发送给本轮产生全局知识单链中的新区块的提案节点,提案节点接收到所有委员会返回的验证结果后,识别验证结果是否具有签名,在所有验证结果都具有签名并且验证结果都是通过验证时,提案节点打包待创建账本请求中的数据,生成最新全局知识区块(全局知识单链中的新区块)。分布式账本系统基于pBFT(Practical Byzantine FaultTolerance)共识算法在委员会节点中选举出提案节点,提案节点是产生全局知识单链的当前区块的节点。即,每一轮产生新的全局知识区块,都会在委员会节点中选择任意的节点作为全局知识单链的产块节点(提案节点),由提案节点生成最新的全局知识区块,其他委员会节点对最新的全局知识区块见证,并在本地备份最新的全局知识区块。
如图3所示,图3是本申请实施例中委员会节点根据创建账本请求生成最新全局知识区块的流程图。图3中创建账本请求的内容表示的是创世区块中存储的部分信息。委员会节点从全局知识单链的创世区块获取管理员公钥,基于公钥验证创建账本请求,在创建账本请求通过验证时,生成最新全局知识区块,最新全局知识区块的区块体中记录的是待创建账本的基本信息,委员会节点一方面将生成的新全局知识区块连接到全局知识单链中,另一方面将新全局知识区块广播给分布式账本中的所有节点。由此可见,节点是基于经过验证的账本创建操作,在本地创建新的DAG结构,保证了节点具有的DAG结构都是安全的。
具体地,委员会节点验证创建账本请求的步骤如下:
步骤S103-1:从所述全局知识单链的创世区块获取管理员公钥;
管理员公钥在分布式账本系统初始化时,写入全局知识单链的创世区块。账本(全局知识单链)中第一个被构造的区块成为该账本的创世区块。
步骤S103-2:根据所述管理员公钥,验证所述创建账本请求的数字签名;
发起用户在第一节点利用管理员私钥,计算创建账本请求的加密哈希值,将创建账本请求的加密哈希值发送给其他委员会节点,其他委员会节点利用获取的管理员公钥计算创建账本请求的解密哈希值,检查加密哈希值和解密哈希值是否相等,在加密哈希值和解密哈希值相等时,创建账本请求的数字签名通过验证。
步骤S103-3:遍历所述全局知识单链,获取账本列表;
具体地,分布式账本系统将节点现有的DAG结构产块的间隔时间设置为委员会节点获取账本列表的更新周期;每隔更新周期,获取全局知识单链的每个区块记载的账本创建信息;叠加获取的多个账本创建信息,获得账本列表。
账本列表可以与可用节点列表、随机种共同组成全局知识。
可用节点列表是遍历全局知识单链中记录新节点注册、新节点加入参与随机见证的节点集合、节点的注销、节点移除参与随机见证的节点集合的信息的区块得到的。
委员机会节点可以采用全局知识单链中的任意区块的哈希值作为随机种子。
步骤S103-4:基于所述DAG结构的账本名称,在所述账本列表中对所述创建账本请求进行同名账本验证;
检查是否存在重名账本能防止重名的DAG造成冲突。
步骤S105:所述委员会节点将所述最新全局知识区块广播给所述分布式账本系统中的普通节点;
委员会节点本身就具有最新全局知识区块(生成或者验证时存储在本地的)。
步骤S106:所述分布式账本系统中的所有节点中的每个节点根据所述最新全局知识区块,创建DAG结构的账本。
所述分布式账本系统中的所有节点中的每个节点根据所述最新全局知识区块,创建DAG结构的账本,包括:
所述分布式账本系统中的所有节点中的每个节点根据所述最新全局知识区块,在本地创建所述DAG结构的创世区块;所述创世区块包括所述DAG结构的账本名称。
在本地的数据层的数据库中创建DAG结构的创世区块是构成DAG结构的图式账本的基础。分布式账本中的节点可以共同维护多个DAG结构的图式账本。DAG结构的创世区块记录有该DAG结构的图式账本的账本名称,在生成第二个关于该账本的交易数据的区块时,可以将第二区块连接创世区块,以此依次连接后续生成的区块,形成DAG结构的图式账本。
本申请还会将账本名称和账本的存储地址以键值对的形式存储在分布式哈希表,分布式哈希表也可以在本地节点的数据层设置。以使交易生成的产块节点在生成相应的区块后,可以根据账本名称,在分布式哈希表中匹配得到目标DAG结构的图式账本,进而将生成的区块连接在目标DAG结构的图式账本中。
将所述DAG结构的账本名称和所述DAG结构的存储区域存储至本地存储系统;所述产块节点在本地的DAG结构中写入所述业务交易区块,包括:
根据存储数据的操作指令,确定所述业务交易区块待写入的目标账本名称;
本地存储系统指的是基于Key-Value的存储系统。
例如,在多个金融机构维护的分布式账本系统中,交易数据可以是存款数据,也可以是转账数据或基金数据。节点根据业务类型分别建立存款图式账本、转账图式账本和基金图式账本,节点在采集的转账数据达到预设的阈值后,将转账数据打包生成新的业务交易区块,在分布式哈希表中,确定转账图式账本的目标DAG结构,在目标DAG结构中选择新的业务交易区块的前驱区块,连接新的业务交易区块和前驱区块。其中存款图式账本、转账图式账本和基金图式账本等账本名称,以及账本名称对应的账本的存储区域的信息可以存储至本地存储系统。在分布式账本系统的节点对存款数据生成业务交易区块时,可以根据本地存储系统的账本名称和存储区域确定正确的DAG结构,写入对存款数据生成的业务交易区块。
根据所述哈希表和所述目标账本名称,确定所述业务交易区块待写入的目标DAG结构;
在所述目标DAG结构写入所述业务交易区块。
本申请实施例基于随机共识机制,将交易数据写入创建的DAG结构的图式账本的具体步骤如下:
将所述分布式账本系统中达到预设的产块条件的任意节点,确定为产块节点;
本申请的分布式账本系统中各个节点设置有定时器,在节点的交易池收集的交易数据(在大数据存证服务场景下是存证数据)达到阈值数量,或者定时器到期,节点会将收集的交易数据打包生成区块体,此时生成区块体的节点是产块节点。预设的产块条件是定时器设置的时限或者交易池能存储的交易数据的阈值数量。
产块节点指的是当前时间生成写入DAG结构的图式账本的区块的节点。委员会节点和分布式账本中的非委员会节点都可以作为DAG结构的产块节点。
所述产块节点打包收集的交易集,得到业务交易区块体;
所述产块节点根据基于所述全局知识单链获得的全局知识,在所述分布式账本系统中确定见证节点;
产块节点从全局知识单链获取全局知识的方法是:所述委员会节点遍历所述全局知识单链中的所有区块,获得全局知识,并将所述全局知识对应的全局知识区块广播给所述分布式账本系统中的所有节点;所述全局知识包括可用节点列表和随机种子;
确定见证节点的方法是:所述产块节点根据本地私钥和所述随机种子生成随机序列;所述产块节点基于所述随机序列,在所述可用节点列表中确定见证节点。
确定见证节点后,可以通过发送见证请求的方法请求见证节点对其生成的新区块体见证。
所述产块节点和所述见证节点对所述业务交易区块体进行随机见证;
所述产块节点在所述业务交易区块体通过随机见证时,获得与所述区块体对应的业务交易区块;
产块节点先根据区块体,生成对应的区块头,再合并区块体和区块头得到业务交易区块。
业务交易区块是指DAG结构中的区块,即记录分布式账本系统应用场景涉及的交易数据的区块。例如:分布式账本系统应用于税务相关场景时,业务交易区块是记录相关的纳税交易的区块。
产块节点基于新区块体和新区块头生成的业务交易区块的结构如表1所示:
表1
见证节点是:产块节点基于可验证随机函数和随机种子,在分布式账本系统的节点中随机选择的用于对其产生的新区块进行验证的节点。
产块节点先根据本地私钥和随机种子生产成随机数,再使用可验证随机函数计算随机数,得到随机凭证和随机序列。随机凭证是产块节点对生成随机序列的过程的签名,以使见证节点可以根据随机凭证产块节点随机选择见证节点的过程。
产块节点是使用可验证随机函数对随机数计算得到的随机凭证。
生成随机凭证可以用公式VRF_PROVE(第一本地私钥,随机种子)=随机凭证表达。生成随机数可以用公式VRF_VALUE(第一本地私钥,随机种子)=随机数表达。随机数是任意的常数数值。假设根据第一本地私钥和随机种子得到的随机数是1,基于随机数生成的第一随机序列是1,2,3,4,5,6。其中,可验证随机函数VRF于1999年由Micali、Rabin和Vadhan三位提出,属于一类伪随机预言机(pseudorandom oracle)。
按照第一随机序列是1,2,3,4,5,6,可以在可用随机列表中确定对应的6个见证节点。
委员会节点定期广播的全局知识中具有所有节点的公钥,见证节点根据见证请求中产块节点的签名获取产块节点的节点标识,再根据产块节点的节点标识在全局知识中获取产块节点的公钥。
见证节点验证随机数可以用公式VRF_VERIFY(公钥,随机种子,随机数,随机凭证)表达,利用公式中的随机凭证验证随机数是否为VRF_VALUE(私钥,随机种子)的计算结果。
其中,随机种子可以从全局知识获取。随机数、随机凭证可以从接收的见证请求中获取。见证节点在获取随机凭证后,利用获取的产块节点的公钥验证该随机凭证是否合法,再将合法的速记凭证代入公式:VRF_VERIFY(公钥,随机种子,随机数,随机凭证)。
所述产块节点在本地的DAG结构中写入所述业务交易区块;
所述见证节点在本地的DAG结构中备份所述业务交易区块。
分布式账本的产块节点基于安全可靠的全局知识中的随机种子和本地的私钥,选择对产生的新区块进行见证的见证节点,防止恶意节点对新区块的恶意见证,保证了对新区块进行验证的节点的安全性,产块节点和见证节点将新区块写入本地的DAG结构,以使同一时间分布式账本系统可以有多个区块同时写入账本,保证了分布式账本系统的写入速率,同时DAG结构是随机见证的,每个节点不必备份全部的交易数据,所以分布式账本是可扩展的。
产块节点在本地的DAG结构中写入业务交易区块,见证节点在本地的DAG结构中备份业务交易区块的关键是分别在本地的DAG结构中确定业务交易区块的前驱区块。
业务交易区块的前驱区块应该满足以下条件:
1.除创世区块之外,所有区块应该有一个及以上的合法的前驱区块。
2.区块的时间戳必须大于或等于前驱区块的时间戳。
3.区块内的数字签名(产块节点的数据前面和见证节点的数字签名)必须是正确的。
4.除“区块是创世区块”或者“区块的前驱区块是创世区块”之外,区块的前驱区块中至少有一个满足:它的产块节点和业务交易区块的产块节点是同一节点。
条件1要求了区块满足DAG的最基本定义,否则区块无法构成一个DAG。条件2以及时间戳要求了区块必须按照时间非递减顺序排列,方便对区块构造、验证和同步。条件3基于数字签名技术进行验证。条件4规定了同一个节点构造的区块的前驱区块中至少有一个块也是该节点构造的。此条件能够确保整个DAG中区块的末端不多于节点的数量,使得DAG的结构不会过于发散。
如图4所示,图4本申请实施例将新区块写入DAG结构的示意图。DAG结构中的任意区块都有多个前驱区块。节点A将新生成的区块写入本地的DAG结构,在DAG结构原有的区块中选择同为节点A生成的区块作为新区块的前驱区块,同时选择两个末端区块作为新区块的前驱区块,将新区块分别连接三个前驱区块,完成将新区块写入DAG结构的目的。
鉴于此,产块节点在本地的DAG结构中写入业务交易区块包括:分布式账本在本地的DAG结构中确定第一前驱区块;所述第一前驱区块是所述产块节点生成的上一个区块或者创世区块;在本地的DAG结构的多个末端区块中选择除所述第一前驱区块外的任意的末端区块作为第二前驱区块;将所述业务交易区块与所述第一前驱区块和所述第二前驱区块分别连接。
见证节点在本地的DAG结构中备份业务交易区块:分布式账本在本地的DAG结构中确定第三前驱区块;所述第三前驱区块是所述产块节点生成的上一个区块或者创世区块;在本地的DAG结构的多个末端区块中选择除所述第三前驱区块外的任意的末端区块作为第四前驱区块;将所述业务交易区块的备份区块与所述第三前驱区块和所述第四前驱区块分别连接。
产块节点和见证节点分别在本地DAG结构的末端区块中选取一个或多个区块,再在本地DAG结构中选择产块节点与业务交易区块的产块节点相同的一个或多个区块作为前驱区块,在没有与业务交易区块的产块节点相同的区块时,选择创世区块作为第三前驱区块,连接业务交易区块和选择的多个前驱区块,完成将业务交易区块写入DAG结构的图式账本的目的。
本申请通过委员会节点验证账本创建请求,委员会节点是通过选举得到的可信赖的多个节点,保证节点创建的每一个DAG结构的图式账本都是可靠的。委员会节点还负责节点的授权、注册、注销等维护,并基于维护节点的信息生成全局知识区块,采用状态机复制的见证机制,全部的委员会节点对产生的所有全局知识区块进行见证、备份,共同维护全局知识单链,保证了全局知识的可靠性。分布式账本的产块节点基于安全可靠的全局知识中的随机种子和本地的私钥,选择对产生的新区块进行见证的见证节点,防止恶意节点对新区块的恶意见证,保证了对新区块进行验证的节点的安全性,产块节点和见证节点将新区块写入本地的DAG结构,以使同一时间分布式账本系统可以有多个区块同时写入账本,保证了分布式账本系统的写入速率,同时DAG结构是随机见证的,每个节点不必备份全部的交易数据,所以分布式账本是可扩展的。因此,基于随机见证的图式账本创建方法,在安全可靠的DAG结构的图式账本中写入安全可靠的业务交易区块,既能保证分布式账本中记录交易数据的图式账本是可扩展的,写入速率高,又能保证图式账本中生成的区块进过了安全可靠的随机见证,保证写入图式账本的区块的难以篡改性,适用于大数据存证服务场景。
基于同一发明构思,本申请实施例提供一种基于随机见证的图式账本创建装置。参考图5,图5是本申请实施例提出的基于随机见证的图式账本创建装置的示意图。如图5所示,应用于分布式账本系统;所述分布式账本系统包括委员会节点维护的全局知识单链,以及所述委员会节点和普通节点维护的DAG结构;该装置包括:
创建账本请求模块501,用于使第一节点根据创建账本的操作指令,生成创建账本请求;其中,所述第一节点为所述分布式账本系统中的任意节点;
创建账本请求广播模块502,用于使所述第一节点将所述创建账本请求广播给所述分布式账本系统中的所有节点;
创建账本请求验证模块503,用于使所述委员会节点对接收的所述创建账本请求进行验证;
创建账本区块生成模块504,用于使所述委员会节点在所述创建账本请求通过验证时,根据所述创建账本请求,在所述全局知识单链中写入最新全局知识区块;
全局知识区块广播模块505,用于使所述委员会节点将所述最新全局知识区块广播给所述分布式账本系统中的所有节点;
账本创建模块506,用于使所述分布式账本系统中的所有节点中的每个节点根据所述最新全局知识区块,创建DAG结构的账本。
可选地,所述装置还包括:
创建账本请求签名模块,用于使所述第一节点利用管理员私钥,对所述创建账本请求进行数字签名;所述创建账本请求包括DAG结构的账本名称;
所述创建账本请求验证模块包括:
公钥获取子模块,用于从所述全局知识单链的创世区块获取管理员公钥;数字签名验证子模块,用于根据所述管理员公钥,验证所述创建账本请求的数字签名;账本列表获取子模块,用于遍历所述全局知识单链,获取账本列表;账本名称验证子模块,用于基于所述DAG结构的账本名称,在所述账本列表中对所述创建账本请求进行同名账本验证;
所述账本创建模块包括:
创世区块创建子模块,用于使所述分布式账本系统中的所有节点中的每个节点根据所述最新全局知识区块,在本地创建所述DAG结构的创世区块;所述创世区块包括所述DAG结构的账本名称。
可选地,所述装置还包括:
产块节点确定模块,用于将所述分布式账本系统中达到预设的产块条件的任意节点,确定为产块节点;业务交易区块生成模块,用于使所述产块节点打包收集的交易集,得到业务交易区块体;见证节点确定模块,用于使所述产块节点根据基于所述全局知识单链获得的全局知识,在所述分布式账本系统中确定见证节点;见证模块,用于使所述产块节点和所述见证节点对所述业务交易区块体进行随机见证;业务交易区块获得模块,用于使所述产块节点在所述业务交易区块体通过随机见证时,获得与所述区块体对应的业务交易区块;账本数据写入模块,用于使所述产块节点在本地的DAG结构中写入所述业务交易区块;账本数据备份模块,用于使所述见证节点在本地的DAG结构中备份所述业务交易区块。
可选地,所述账本数据写入模块包括:
第一前驱区块确定子模块,用于在本地的DAG结构中确定第一前驱区块;所述第一前驱区块是所述产块节点生成的上一个区块或者创世区块;第二前驱区块确定子模块,用于在本地的DAG结构的多个末端区块中选择除所述第一前驱区块外的任意的末端区块作为第二前驱区块;账本数据写入子模块,用于将所述业务交易区块与所述第一前驱区块和所述第二前驱区块分别连接;所述账本数据备份模块包括:第三前驱区块确定子模块,用于在本地的DAG结构中确定第三前驱区块;所述第三前驱区块是所述产块节点生成的上一个区块或者创世区块;第四前驱区块确定子模块,用于在本地的DAG结构的多个末端区块中选择除所述第三前驱区块外的任意的末端区块作为第四前驱区块;账本数据备份子模块,用于将所述业务交易区块的备份区块与所述第三前驱区块和所述第四前驱区块分别连接。
可选地,所述见证节点确定模块包括:
全局知识获得子模块,用于使所述委员会节点遍历所述全局知识单链中的所有区块,获得全局知识,并将所述全局知识对应的全局知识区块广播给所述分布式账本系统中的所有节点;所述全局知识包括可用节点列表和随机种子;随机序列生成模块,用于使所述产块节点根据本地私钥和所述随机种子生成随机序列;见证节点确定子模块,用于使所述产块节点基于所述随机序列,在所述可用节点列表中确定见证节点。
可选地,所述装置还包括:
账本信息存储模块,用于将所述DAG结构的账本名称和所述DAG结构的存储区域存储至本地存储系统;
所述账本数据写入模块包括:
账本名称确定子模块,用于根据存储数据的操作指令,确定所述业务交易区块待写入的目标账本名称;标账本确定子模块,用于根据所述哈希表和所述目标账本名称,确定所述业务交易区块待写入的目标DAG结构;目标账本写入数据子模块,用于在所述目标DAG结构写入所述业务交易区块。
基于同一发明构思,本申请另一实施例提供一种可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请上述任一实施例所述的基于随机见证的图式账本创建方法中的步骤。
基于同一发明构思,本申请另一实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现本申请上述任一实施例所述的基于随机见证的图式账本创建方法中的步骤。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进或说明的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、装置、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种基于随机见证的图式账本创建方法和装置,进行了详细介绍,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (8)
1.一种基于随机见证的图式账本创建方法,其特征在于,应用于分布式账本系统;所述分布式账本系统包括委员会节点维护的全局知识单链,以及所述委员会节点和普通节点维护的DAG结构;所述方法包括:
第一节点根据创建账本的操作指令,生成创建账本请求;其中,所述第一节点为所述分布式账本系统中的任意节点;
所述第一节点将所述创建账本请求广播给所述分布式账本系统中的所有节点;
所述委员会节点对接收的所述创建账本请求进行验证;
所述委员会节点在所述创建账本请求通过验证时,根据所述创建账本请求,在所述全局知识单链中写入最新全局知识区块;
所述委员会节点将所述最新全局知识区块广播给所述分布式账本系统中的普通节点;
所述分布式账本系统中的所有节点中的每个节点根据所述最新全局知识区块,创建DAG结构的账本,以保证每个节点在本地创建的DAG结构的账本的安全性;
所述方法还包括:
将所述分布式账本系统中达到预设的产块条件的任意节点,确定为产块节点;
所述产块节点打包收集的交易集,得到业务交易区块体;
所述产块节点根据基于所述全局知识单链获得的全局知识,在所述分布式账本系统中确定见证节点;
所述产块节点和所述见证节点对所述业务交易区块体进行随机见证;
所述产块节点在所述业务交易区块体通过随机见证时,获得与所述区块体对应的业务交易区块;
所述产块节点在本地的DAG结构中写入所述业务交易区块;
所述见证节点在本地的DAG结构中备份所述业务交易区块。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一节点利用管理员私钥,对所述创建账本请求进行数字签名;所述创建账本请求包括DAG结构的账本名称;
所述委员会节点对接收的所述创建账本请求进行验证,包括:
从所述全局知识单链的创世区块获取管理员公钥;
根据所述管理员公钥,验证所述创建账本请求的数字签名;
遍历所述全局知识单链,获取账本列表;
基于所述DAG结构的账本名称,在所述账本列表中对所述创建账本请求进行同名账本验证;
所述分布式账本系统中的所有节点中的每个节点根据所述最新全局知识区块,创建DAG结构的账本,包括:
所述分布式账本系统中的所有节点中的每个节点根据所述最新全局知识区块,在本地创建所述DAG结构的创世区块;所述创世区块包括所述DAG结构的账本名称。
3.根据权利要求2所述的方法,其特征在于,所述产块节点在本地的DAG结构中写入所述业务交易区块,包括:
在本地的DAG结构中确定第一前驱区块;所述第一前驱区块是所述产块节点生成的上一个区块或者创世区块;
在本地的DAG结构的多个末端区块中选择除所述第一前驱区块外的任意的末端区块作为第二前驱区块;
将所述业务交易区块与所述第一前驱区块和所述第二前驱区块分别连接;
所述见证节点在本地的DAG结构中备份所述业务交易区块,包括:
在本地的DAG结构中确定第三前驱区块;所述第三前驱区块是所述产块节点生成的上一个区块或者创世区块;
在本地的DAG结构的多个末端区块中选择除所述第三前驱区块外的任意的末端区块作为第四前驱区块;
将所述业务交易区块的备份区块与所述第三前驱区块和所述第四前驱区块分别连接。
4.根据权利要求2所述的方法,其特征在于,所述产块节点根据基于所述全局知识单链获得的全局知识,在所述分布式账本系统中确定见证节点,包括:
所述委员会节点遍历所述全局知识单链中的所有区块,获得全局知识,并将所述全局知识对应的全局知识区块广播给所述分布式账本系统中的所有节点;所述全局知识包括可用节点列表和随机种子;
所述产块节点根据本地私钥和所述随机种子生成随机序列;
所述产块节点基于所述随机序列,在所述可用节点列表中确定见证节点。
5.根据权利要求2所述的方法,其特征在于,创建DAG结构的账本后,所述方法还包括:
将所述DAG结构的账本名称和所述DAG结构的存储区域存储至本地存储系统;
所述产块节点在本地的DAG结构中写入所述业务交易区块,包括:
根据存储数据的操作指令,确定所述业务交易区块待写入的目标账本名称;
根据哈希表和所述目标账本名称,确定所述业务交易区块待写入的目标DAG结构;
在所述目标DAG结构写入所述业务交易区块。
6.一种基于随机见证的图式账本创建装置,其特征在于,应用于分布式账本系统;所述分布式账本系统包括委员会节点维护的全局知识单链,以及所述委员会节点和普通节点维护的DAG结构;所述装置包括:
创建账本请求模块,用于使第一节点根据创建账本的操作指令,生成创建账本请求;其中,所述第一节点为所述分布式账本系统中的任意节点;
创建账本请求广播模块,用于使所述第一节点将所述创建账本请求广播给所述分布式账本系统中的所有节点;
创建账本请求验证模块,用于使所述委员会节点对接收的所述创建账本请求进行验证;
创建账本区块生成模块,用于使所述委员会节点在所述创建账本请求通过验证时,根据所述创建账本请求,在所述全局知识单链中写入最新全局知识区块;
全局知识区块广播模块,用于使所述委员会节点将所述最新全局知识区块广播给所述分布式账本系统中的普通节点;
账本创建模块,用于使所述分布式账本系统中的所有节点中的每个节点根据所述最新全局知识区块,创建DAG结构的账本,以保证每个节点在本地创建的DAG结构的账本的安全性;
所述装置还包括:
产块节点确定模块,用于将所述分布式账本系统中达到预设的产块条件的任意节点,确定为产块节点;
业务交易区块生成模块,用于使所述产块节点打包收集的交易集,得到业务交易区块体;
见证节点确定模块,用于使所述产块节点根据基于所述全局知识单链获得的全局知识,在所述分布式账本系统中确定见证节点;
共识模块,用于使所述产块节点和所述见证节点对所述业务交易区块体进行随机见证;
业务交易区块获得模块,用于使所述产块节点在所述业务交易区块体通过随机见证时,获得与所述区块体对应的业务交易区块;
账本数据写入模块,用于使所述产块节点在本地的DAG结构中写入所述业务交易区块;
账本数据备份模块,用于使所述见证节点在本地的DAG结构中备份所述业务交易区块。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
创建账本请求签名模块,用于使所述第一节点利用管理员私钥,对所述创建账本请求进行数字签名;所述创建账本请求包括DAG结构的账本名称;
所述创建账本请求验证模块包括:
公钥获取子模块,用于从所述全局知识单链的创世区块获取管理员公钥;
数字签名验证子模块,用于根据所述管理员公钥,验证所述创建账本请求的数字签名;
账本列表获取子模块,用于遍历所述全局知识单链,获取账本列表;
账本名称验证子模块,用于基于所述DAG结构的账本名称,在所述账本列表中对所述创建账本请求进行同名账本验证;
所述账本创建模块包括:
创世区块创建子模块,用于使所述分布式账本系统中的所有节点中的每个节点根据所述最新全局知识区块,在本地创建所述DAG结构的创世区块;所述创世区块包括所述DAG结构的账本名称。
8.权利要求7所述的装置,其特征在于,所述账本数据写入模块包括:
第一前驱区块确定子模块,用于在本地的DAG结构中确定第一前驱区块;所述第一前驱区块是所述产块节点生成的上一个区块或者创世区块;
第二前驱区块确定子模块,用于在本地的DAG结构的多个末端区块中选择除所述第一前驱区块外的任意的末端区块作为第二前驱区块;
账本数据写入子模块,用于将所述业务交易区块与所述第一前驱区块和所述第二前驱区块分别连接;
所述账本数据备份模块包括:
第三前驱区块确定子模块,用于在本地的DAG结构中确定第三前驱区块;所述第三前驱区块是所述产块节点生成的上一个区块或者创世区块;
第四前驱区块确定子模块,用于在本地的DAG结构的多个末端区块中选择除所述第三前驱区块外的任意的末端区块作为第四前驱区块;
账本数据备份子模块,用于将所述业务交易区块的备份区块与所述第三前驱区块和所述第四前驱区块分别连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010809483.5A CN112116470B (zh) | 2020-08-12 | 2020-08-12 | 一种基于随机见证的图式账本创建方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010809483.5A CN112116470B (zh) | 2020-08-12 | 2020-08-12 | 一种基于随机见证的图式账本创建方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112116470A CN112116470A (zh) | 2020-12-22 |
CN112116470B true CN112116470B (zh) | 2021-09-24 |
Family
ID=73804055
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010809483.5A Active CN112116470B (zh) | 2020-08-12 | 2020-08-12 | 一种基于随机见证的图式账本创建方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112116470B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115941191B (zh) * | 2022-08-24 | 2023-09-22 | 明启智能科技(广东)有限公司 | 区块链中无共识区块生成与校验方法及见证节点 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10790964B2 (en) * | 2017-11-17 | 2020-09-29 | International Business Machines Corporation | Peer voting on a blockchain |
CN111080288B (zh) * | 2019-10-18 | 2023-08-18 | 湖南天河国云科技有限公司 | 一种基于有向无环图的区块链共识达成方法及装置 |
CN110971663B (zh) * | 2019-10-28 | 2021-03-12 | 北京大学 | 一种面向数据交易的可信处理方法与系统 |
CN111414373B (zh) * | 2020-03-18 | 2023-09-19 | 深圳市迅雷网络技术有限公司 | 一种共识方法和共识系统 |
-
2020
- 2020-08-12 CN CN202010809483.5A patent/CN112116470B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112116470A (zh) | 2020-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11126458B2 (en) | Method, apparatus, and electronic device for resource allocation based on blockchain | |
US11829494B2 (en) | Distributed privately subspaced blockchain data structures with secure access restriction management | |
US20210192512A1 (en) | Method and apparatus for storing and obtaining merchant authentication data in blockchain network | |
EP3704620B1 (en) | System and method for blockchain-based notification | |
CN109327528B (zh) | 一种基于区块链的节点管理方法和装置 | |
US11930113B2 (en) | Blockchain hybrid consensus-based system for maintaining domain name information | |
Khovratovich et al. | Sovrin: digital identities in the blockchain era | |
CN111556120B (zh) | 基于区块链的数据处理方法、装置、存储介质及设备 | |
WO2021135757A1 (zh) | 用于执行交易正确性验证的方法及装置 | |
CN112073382B (zh) | 一种基于随机共识的图式账本节点维护方法和装置 | |
CN111819827A (zh) | 用于控制区块链上的资源的访问和完整性的方法和系统 | |
CN112116349B (zh) | 面向高吞吐率的图式账本的随机化共识方法和装置 | |
WO2021135857A1 (zh) | 对信任节点信息进行更新的方法及装置 | |
CN108848080A (zh) | 基于联盟链存储校验的数据共享系统 | |
CN112235323B (zh) | 基于区块链的取证方法及装置、电子设备和可读存储介质 | |
CN112235420B (zh) | 基于区块链的数据同步方法、系统及相关设备 | |
JP6495346B2 (ja) | 情報処理システム | |
US11494345B2 (en) | System and method for blockchain based decentralized storage with dynamic data operations | |
CN112801778B (zh) | 联盟式不良资产区块链系统 | |
CN113723962B (zh) | 区块链权限管理方法和区块链系统 | |
CN110289951B (zh) | 一种基于门限密钥共享及区块链的共享内容监管方法 | |
CN112448946A (zh) | 基于区块链的日志审计方法及装置 | |
JP2024509666A (ja) | ブロックチェーンデータセグリゲーション | |
CN112116470B (zh) | 一种基于随机见证的图式账本创建方法和装置 | |
CN111787034B (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 |