CN109785130A - 区块链随机共识方法、装置、计算机设备和存储介质 - Google Patents
区块链随机共识方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN109785130A CN109785130A CN201811542399.0A CN201811542399A CN109785130A CN 109785130 A CN109785130 A CN 109785130A CN 201811542399 A CN201811542399 A CN 201811542399A CN 109785130 A CN109785130 A CN 109785130A
- Authority
- CN
- China
- Prior art keywords
- block
- node
- random number
- verify
- sequence
- 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
Links
Landscapes
- Mobile Radio Communication Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种区块链随机共识方法、装置、计算机设备和存储介质。所述方法包括:获取各节点的数字签名和可验证随机数;对获取到的各节点的数字签名和可验证随机数进行验证;当验证通过时,根据获取到的可验证随机数生成当前节点对应的出块节点顺序提案,并同步各节点分别对应的出块节点顺序提案;根据各节点分别对应的节点权重值和出块节点顺序提案,确定出块节点顺序;按照确定的出块节点顺序由各节点创建数据区块;将创建的数据区块添加到当前区块链。本方法通过验证各节点的可验证随机数,对出块节点顺序形成共识,确定了区块链系统在一段时间内的出块节点顺序,减少了各节点之间的通信,提高了区块链的创建效率。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种区块链随机共识方法、装置、计算机设备和存储介质。
背景技术
随着计算机技术的发展,出现了区块链技术。区块链技术(Blockchaintechnology,BT),也被称为分布式账本技术,是一种互联网数据库技术,其特点是去中心化、公开透明,让每个人均可参与数据库记录。区块链是由多个分布式节点共同参与维护的数据存储系统,多个数据块连接成链式数据结构,并通过共识机制以传输和同步数据,从而保障各个节点数据的一致性,且各节点数据不可被修改。在区块链技术中,共识机制尤为重要。
然而,传统的区块链技术中,通常采用拜占庭容错算法实现各节点之间的共识。一个节点创建区块后,各节点为了达成对已发布区块以及后次出块节点的共识,必须互相进行多轮广播通信确认,共识过程复杂,当区块链系统中的节点数目较多时,区块链创建效率低下。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高区块链创建效率的区块链随机共识方法、装置、计算机设备和存储介质。
一种区块链随机共识方法,所述方法包括:
获取各节点的数字签名和可验证随机数;
对获取到的各节点的数字签名和可验证随机数进行验证;
当验证通过时,根据获取到的可验证随机数生成当前节点对应的出块节点顺序提案,并同步各节点分别对应的出块节点顺序提案;
根据各节点分别对应的节点权重值和出块节点顺序提案,确定出块节点顺序;
按照确定的出块节点顺序由各节点创建数据区块;
将创建的数据区块添加到当前区块链。
一种区块链随机共识装置,其特征在于,所述装置包括:
获取模块,用于获取各节点的数字签名和可验证随机数;
验证模块,用于对获取到的各节点的数字签名和可验证随机数进行验证;
提案生成模块,用于根据获取到的可验证随机数生成当前节点对应的出块节点顺序提案,并同步各节点分别对应的出块节点顺序提案;
顺序确定模块,用于根据各节点分别对应的节点权重值和出块节点顺序提案,确定出块节点顺序;
区块创建模块,用于按照确定的出块节点顺序由各节点创建数据区块;
区块添加模块,用于将创建的数据区块添加到当前区块链。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取各节点的数字签名和可验证随机数;
对获取到的各节点的数字签名和可验证随机数进行验证;
当验证通过时,根据获取到的可验证随机数生成当前节点对应的出块节点顺序提案,并同步各节点分别对应的出块节点顺序提案;
根据各节点分别对应的节点权重值和出块节点顺序提案,确定出块节点顺序;
按照确定的出块节点顺序由各节点创建数据区块;
将创建的数据区块添加到当前区块链。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取各节点的数字签名和可验证随机数;
对获取到的各节点的数字签名和可验证随机数进行验证;
当验证通过时,根据获取到的可验证随机数生成当前节点对应的出块节点顺序提案,并同步各节点分别对应的出块节点顺序提案;
根据各节点分别对应的节点权重值和出块节点顺序提案,确定出块节点顺序;
按照确定的出块节点顺序由各节点创建数据区块;
将创建的数据区块添加到当前区块链。
上述区块链随机共识方法、装置、计算机设备和存储介质,获取各节点的数字签名和可验证随机数,对获取到的各节点的数字签名和可验证随机数进行验证,当验证通过时,对获取到的可验证随机数达成共识,根据获取到的可验证随机数生成当前节点对应的出块节点顺序提案,并同步各节点分别对应的出块节点顺序提案,根据各节点分别对应的节点权重值和出块节点顺序提案,确定出块节点顺序,出块节点顺序可以确定一段时间内节点创建数据区块的顺序,无需每次出块后都通过多轮广播通信确定出块节点;按照确定的出块节点顺序由各节点创建数据区块,将创建的数据区块添加到当前区块链,提高了区块链的创建效率。
附图说明
图1为一个实施例中区块链随机共识方法的应用环境图;
图2为一个实施例中区块链随机共识方法的流程示意图;
图3为一个实施例中获取数字签名和可验证随机数的步骤的流程示意图;
图4为一个实施例中验证数字签名和可验证随机数的步骤的流程示意图;
图5为一个实施例中确定出块节点顺序的步骤的流程示意图;
图6为一个实施例中校验区块数据的步骤的流程示意图;
图7为一个实施例中确定后次出块节点顺序的步骤的流程示意图;
图8为一个实施例中区块链随机共识的流程示意图;
图9为一个实施例中区块链随机共识装置的结构框图;
图10为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的区块链随机共识方法,可以应用于如图1所示的应用环境中。其中,区块链系统100可以包括多个节点,具体可以包括节点102、节点104、节点106、节点108、节点110和节点112,图1中的各节点通过网络进行通信。可以理解,图1中举例说明的6个节点仅仅是示例性的,而非限制性的,区块链系统100可以包括更多节点,也可以包括更少节点。图1中的每个节点可以是独立的服务器、终端设备、多个服务器组成的服务器集群中的单个服务器,还可以是服务器或终端设备中运行的虚拟机。
在一个实施例中,如图2所示,提供了一种区块链随机共识方法,以该方法应用于图1中由服务器实现的节点为例进行说明,包括以下步骤:
步骤202,获取各节点的数字签名和可验证随机数。
其中,数字签名是各节点根据各自的私钥对区块链中最新区块的区块创建时间和区块哈希值进行加密得到的字符串。最新区块是区块链中最新创建的区块。各节点第一次生成数字签名时,最新区块为创世区块。可验证随机数是由各节点对数字签名、区块创建时间和区块哈希值进行哈希运算得到的字符串,用于确定各节点的出块顺序。
具体地,服务器根据区块链中最新区块的区块创建时间和区块哈希值得到数字签名,对数字签名、区块创建时间和区块哈希值进行哈希运算得到可验证随机数。服务器将数字签名和可验证随机数发送至区块链系统中的各节点,并接收与各节点分别对应的数字签名和可验证随机数。各节点是区块链系统中的节点,服务器可以实现区块链系统中的任一节点。
在一个实施例中,区块链可以是企业级的联盟链。各节点在经过各用户的共同协商后加入区块链系统。表格1为一个实施例中各用户协商得到的节点管理信息。每个节点以非对称加密算法生成各自对应的公私密钥对,各节点保存各自对应的私钥,并存储区块链系统中各节点的公钥。节点权重值是节点在区块链系统中权重的量化评估值,节点权重值与区块链系统的总权重值的比值代表了节点在区块链系统中的权重。网络地址用于各节点之间点对点的网络通信。各节点在加入区块链系统时,均存储有表格1中的全部信息。其中,各节点的节点权重值可以进行调整。
表格1
节点名称 | 私钥 | 公钥 | 节点权重值 | 网络地址 |
节点A | PriKeyA | PubKeyA | 50 | IP_A |
节点B | PriKeyB | PubKeyB | 40 | IP_B |
节点C | PriKeyC | PubKeyC | 30 | IP_C |
节点D | PriKeyD | PubKeyD | 20 | IP_D |
步骤204,对获取到的各节点的数字签名和可验证随机数进行验证。
具体地,对于获取到的各节点的数字签名和可验证随机数,服务器先根据预存的最新区块的区块创建时间和区块哈希值,验证获取到的数字签名是否正确;当获取到的数字签名正确时,再根据数字签名、数字签名中的区块创建时间和区块哈希值,验证可验证随机数是否正确。当获取到的各节点的数字签名和可验证随机数均正确时,验证通过。
步骤206,当验证通过时,根据获取到的可验证随机数生成当前节点对应的出块节点顺序提案,并同步各节点分别对应的出块节点顺序提案。
其中,出块节点顺序提案是各节点生成的,区块链系统中各节点创建区块的顺序。当前节点是由服务器实现的节点。
具体地,服务器对获取到的各节点的数字签名和可验证随机数验证通过时,,读取预设的排列方式,按照预设的排列方式对可验证随机数进行排列,得到当前节点对应的出块节点顺序提案。出块节点顺序提案中可验证随机数的排列顺序,代表与可验证随机数对应的节点的出块顺序。服务器将生成的出块节点顺序提案发送至各节点,并接收与各节点分别对应的出块节点顺序提案。
在一个实施例中,服务器可以按照从小到大的顺序对各节点的可验证随机数进行排列,也可以按照从大到小的顺序对各节点的可验证随机数进行排列。
在一个实施例中,服务器可以根据各节点各自对应的节点权重值,对可验证随机数进行加权处理,得到加权可验证随机数,按照预设的排列方式对加权可验证随机数进行排列,得到当前节点对应的出块节点顺序提案。
步骤208,根据各节点分别对应的节点权重值和出块节点顺序提案,确定出块节点顺序。
具体地,服务器提取各节点分别对应的节点权重值,并将各节点分别对应的节点权重值相加得到各节点的总权重值。服务器将不同的出块节点顺序提案进行归类,每接收到一个出块节点顺序提案,确定接收到的出块节点顺序提案的提案类别,并更新该类别出块节点顺序提案的权重值之和,具体可以是将该类别中出块节点顺序提案所对应节点的节点权重值相加,并及时更新该类别出块节点顺序提案的权重值之和与总权重值的比值。当更新后的比值大于等于预设的比值阈值时,服务器将该类别的出块节点顺序提案确定为区块链系统中各节点的出块节点顺序。
在一个实施例中,当任何一类的出块节点顺序提案的权重值之和与总权重值的比值都小于预设的比值阈值时,服务器重新生成数字签名和可验证随机数,同步各节点的数字签名和可验证随机数,并确定出块节点顺序。
步骤210,按照确定的出块节点顺序由各节点创建数据区块。
其中,数据区块是由节点创建的数据包,包括区块链系统中各节点一定时间内的节点数据。节点数据是由各节点产生的,需要存入数据区块的数据。
具体地,区块链系统中的各节点按照确定的出块节点顺序,确定当前出块节点,将各自对应的节点数据发送至当前出块节点,当前出块节点根据各节点的节点数据,创建数据区块,并将创建的数据区块发送至区块链系统中的每一个节点。当前出块节点是按照出块节点顺序,需要创建新的数据区块的节点。
在一个实施例中,区块链系统中的各节点按照出块节点顺序,依次发布一个数据区块。
在一个实施例中,各节点根据确定的出块节点顺序,得到出块节点子序列,出块节点子序列中包括预设数量的节点,各节点将各自对应的节点数据分别发送至出块节点子序列中的各个节点。
步骤212,将创建的数据区块添加到当前区块链。
其中,当前区块链是保存在各节点中的,由数据区块组成的区块链。
具体地,服务器获取到创建的数据区块后,对数据区块中的区块数据进行校验,当对区块数据校验通过后,将创建的数据区块添加到当前区块链中。区块数据是存储在数据区块中的,来自各节点的节点数据。
本实施例中,获取各节点的数字签名和可验证随机数,对获取到的各节点的数字签名和可验证随机数进行验证,当验证通过时,对获取到的可验证随机数达成共识,根据获取到的可验证随机数生成当前节点对应的出块节点顺序提案,并同步各节点分别对应的出块节点顺序提案,根据各节点分别对应的节点权重值和出块节点顺序提案,确定出块节点顺序,出块节点顺序可以确定一段时间内节点创建数据区块的顺序,无需每次出块后都通过多轮广播通信确定出块节点;按照确定的出块节点顺序由各节点创建数据区块,将创建的数据区块添加到当前区块链,提高了区块链的创建效率。
如图3所示,在一个实施例中,步骤204具体还包括获取数字签名和可验证随机数的步骤,该步骤具体包括如下步骤:
步骤302,获取当前区块链中最新区块的区块创建时间和区块哈希值。
其中,最新区块是区块链中最新的区块,各节点组成的区块链系统第一次运行时,最新区块为预先配置好的创世区块。创世区块是区块链系统创建的第一个数据区块。区块创建时间是最新区块的创建时间,区块哈希值是用于标识最新区块的哈希字符串。区块创建时间和区块哈希值存储在最新区块中。
具体地,各节点组成的区块链系统第一次运行,服务器启动后,获取当前区块链中的创世区块,从创世区块中提取创世区块的区块创建时间和区块哈希值。
步骤304,对区块创建时间和区块哈希值进行加密,生成当前节点的数字签名。
具体地,服务器提取到创世区块的区块创建时间和区块哈希值后,将区块创建时间和区块哈希值进行拼接得到待签名字符串,提取保存的私钥,对待签名字符串进行加密,得到数字签名。
步骤306,根据当前节点的数字签名、区块创建时间和区块哈希值,生成当前节点的可验证随机数。
其中,哈希值是对数字签名、区块创建时间和区块哈希值进行哈希运算后得到的字符串。
具体地,服务器将得到的数字签名、区块创建时间和区块哈希值进行拼接,得到待哈希字符串。服务器通过哈希函数对待哈希字符串进行计算,得到可验证随机数。
步骤308,同步各节点分别对应的数字签名和可验证随机数。
具体地,服务器向区块链系统中的各节点发送数字签名和可验证随机数,并接收各节点发送的与各节点各自对应的数字签名和可验证随机数。
本实施例中,获取当前区块链中最新区块的区块创建时间和区块哈希值,对区块创建时间和区块哈希值进行加密,生成当前节点的数字签名,根据当前节点的数字签名、区块创建时间和区块哈希值,生成当前节点的可验证随机数,确保了可验证随机数的随机性,再同步各节点分别对应的数字签名和可验证随机数,提高了获取数字签名和可验证随机数的效率。
如图4所示,在一个实施例中,步骤206具体还包括验证数字签名和可验证随机数的步骤,该步骤具体包括如下步骤:
步骤402,验证预存的最新区块的区块创建时间和区块哈希值,分别与各节点的数字签名中的区块创建时间和区块哈希值是否一致。具体地,最新区块是创世区块。对于获取到的每一对数字签名和可验证随机数,服务器提取与数字签名对应的节点的公钥,根据提取到的公钥对数字签名进行解密得到区块创建时间和区块哈希值。服务器比较预存的创世区块的区块创建时间和区块哈希值,与解密数字签名得到的区块创建时间和区块哈希值是否一致。若一致,验证数字签名有效。
步骤404,当验证为一致时,根据数字签名、数字签名中的区块创建时间和区块哈希值生成可验证随机数。
具体地,当预存的创世区块的区块创建时间和区块哈希值,与数字签名中的区块创建时间和区块哈希值一致时,服务器将数字签名、数字签名中的区块创建时间和区块哈希值进行拼接得到检验字符串,通过哈希函数对检验字符串进行计算,生成可验证随机数。
步骤406,比较生成的可验证随机数和获取到的可验证随机数,当一致时,对获取到的各节点的数字签名和可验证随机数验证通过。
具体地,服务器比较生成的可验证随机数,和获取到的可验证随机数是否一致。当生成的各节点的可验证随机数和获取到的可验证随机数均一致时,服务器验证获取到的各节点的数字签名和可验证随机数有效,验证通过。
当预存的最新区块的区块创建时间和区块哈希值,分别与各节点的数字签名中的区块创建时间和区块哈希值不一致,或生成的可验证随机数,与当前节点对应的出块节点顺序提案中的可验证随机数不一致时,验证未通过。
本实施例中,验证预存的最新区块的区块创建时间和区块哈希值,分别与各节点的数字签名中的区块创建时间和区块哈希值是否一致;当验证为一致时,根据数字签名、数字签名中的区块创建时间和区块哈希值生成可验证随机数;比较生成的可验证随机数和获取到的可验证随机数是否一致,当一致时,对获取到的各节点的数字签名和可验证随机数验证通过,两步验证提高了验证的准确性,并实现对获取到的可验证随机数的共识。
如图5所示,在一个实施例中,步骤208具体还包括确定出块节点顺序的步骤,该步骤具体包括如下步骤:
步骤502,对各节点分别对应的出块节点顺序提案进行分类。
具体地,服务器同步各节点分别对应的出块节点顺序提案后,比较各出块节点顺序提案,对出块节点顺序提案进行分类。不同类别的出块节点顺序提案的区别,可以是可验证随机数的数量不同和可验证随机数的排列顺序不同中的至少一种。
步骤504,提取各节点分别对应的节点权重值。
具体地,服务器读取节点权重值列表,从节点权重值列表中读取各节点分别对应的节点权重值。对于同步得到的每一个出块节点顺序提案,服务器在列表中查询与出块节点顺序提案所对应节点的节点权重值。
步骤506,统计各类出块节点顺序提案所对应节点的权重值之和与各节点总权重值的比值。
具体地,对于每一类出块节点顺序提案,服务器将对应的各个节点的节点权重值相加得到节点权重值之和,并将全部节点的节点权重值相加得到总权重值。服务器分别计算各类出块节点顺序提案的权重值之和与总权重值的比值。
步骤508,筛选比值符合预设比值条件的出块节点顺序提案。
其中,预设比值条件是指权重值之和与各节点总权重值的比值大于等于预设的比值阈值。
具体地,服务器获取预设的比值阈值,将计算得到的比值分别与预设的比值阈值相比较,筛选大于等于预设的比值阈值的比值,并查询与筛选到的比值所对应的出块节点顺序提案。比如,预设的比值阈值可以是50%,即区块链系统中权重值占比超过50%的节点的出块节点顺序提案相同。预设的比值阈值可以进行调整。
步骤510,将筛选到的出块节点顺序提案,确定为出块节点顺序。
具体地,服务器筛选到出块节点顺序提案后,将筛选到的出块节点顺序提案作为区块链系统各节点的出块节点顺序。
在一个实施例中,服务器获取到出块节点顺序提案后,比较获取到的出块节点顺序提案和当前节点对应的出块节点顺序提案进行比较,当不一致时,服务器对接收到的出块节点顺序提案进行验证。服务器首先验证接收到的出块节点顺序提案中的可验证随机数是否有效,再验证可验证随机数的排列是否满足预设的排列方式。服务器可以只验证接收到的出块节点顺序提案中,与当前节点对应的出块节点顺序提案中不同的可验证随机数。当接收到的出块节点顺序提案中存在无效的可验证随机数,或可验证随机数不满足预设的排列方式时,服务器对接收到的出块节点顺序提案验证未通过,不统计此类出块节点顺序提案所对应节点的权重值之和。
在一个实施例中,当服务器未筛选到符合预设比值条件的出块节点顺序提案时,服务器重新生成数字签名和可验证随机数,并重新获取各节点的数字签名和可验证随机数。
本实施例中,对各节点分别对应的出块节点顺序提案进行分类,提取各节点分别对应的节点权重值,统计各类出块节点顺序提案所对应节点的权重值之和与各节点总权重值的比值,再筛选比值符合预设比值条件的出块节点顺序提案;筛选到的出块节点顺序提案是区块链系统中,权重值之和占比为多数的节点的出块节点顺序提案;将筛选到的出块节点顺序提案,确定为出块节点顺序,提高了确定出块节点顺序的可靠性。
如图6所示,在一个实施例中,步骤210之后还包括校验区块数据的步骤,该步骤具体包括如下步骤:
步骤602,对创建的数据区块中的区块数据进行校验。
其中,区块数据是将各节点的节点数据存入数据区块后得到的数据。
具体地,各节点发送节点数据时,根据各自对应的私钥对每份节点数据进行加密,生成数据签名。服务器接收到创建的数据区块后,根据每个数据签名对数据区块中与数据签名对应的区块数据进行校验。服务器对区块数据的校验包括校验区块数据是否正确以及是否存在重复的区块数据。
在一个实施例中,当前出块节点接收到各节点的节点数据后,根据数据签名对接收到的节点数据进行校验,删除错误以及重复的节点数据后,生成数据区块。
在一个实施例中,节点数据为节点交易数据,可以包括交易内容、交易时间中的至少一种。节点通过私钥对交易内容和交易时间进行加密得到交易数据签名,通过哈希函数对交易数据签名、交易内容和交易时间进行哈希运算得到交易标识。服务器接收到数据区块后,提取与交易数据签名对应的公钥,对交易数据签名进行解密得到交易内容和交易时间,验证解密得到的交易内容和交易时间,与区块数据中的交易内容和交易时间是否一致;当一致时,将交易数据签名、解密得到的交易内容和交易时间进行哈希运算生成交易标识,比较生成的交易标识和区块数据中的交易标识是否一致;当一致时,服务器查询数据区块内是否存在相同的交易标识,若不存在,服务器对区块数据校验通过。
步骤604,当对区块数据校验未通过时,按照预设调整权重值减少创建的数据区块所对应节点的节点权重值。
其中,预设调整权重值是对节点进行权重值调整时,增加或减少的权重值数值。预设调整权重值可以进行调整。
具体地,当服务器校验到数据区块中存在不正确或重复的区块数据时,对区块数据校验未通过。服务器查询与创建的数据区块所对应的节点,获取预设调整权重值以及与查询到的节点所对应的节点权重值,从查询到的节点所对应的节点权重值中,减去预设调整权重值。
在一个实施例中,当校验未通过时,服务器提取数据区块中校验通过的区块数据,再删除数据区块并扣除数据区块所对应的节点的全部节点权重值。服务器根据出块节点顺序确定出块节点子序列,将提取到的区块数据和节点数据发送至出块节点子序列中的各个节点。
在一个实施例中,当校验未通过时,服务器根据创建的数据区块所对应的节点,生成节点错误通知,并通过终端展示节点错误通知,以提醒用户对创建的数据区块所对应的节点进行处理。
在一个实施例中,节点创建数据区块后,根据出块节点顺序,优先将创建的数据区块发送至后一个出块节点。后一个出块节点接收到数据区块后,对数据区块中的区块数据进行校验,根据校验结果生成校验结果通知,并将校验结果通知发送至各节点。
在一个实施例中,当节点因宕机或网络等原因,未能在预设时间点创建数据区块时,根据出块节点顺序,由后次出块节点创建数据区块。各节点按照预设调整权重值减少未及时创建数据区块的节点所对应的节点权重值。
步骤606,当对区块数据校验通过时,按照预设调整权重值增加创建的数据区块所对应节点的节点权重值,执行将创建的数据区块添加到当前区块链的步骤。
具体地,当服务器对数据区块中的区块数据全部校验通过时,查询与创建的数据区块所对应的节点,获取预设调整权重值以及与查询到的节点所对应的节点权重值,从查询到的节点所对应的节点权重值中,增加预设调整权重值,并将创建的数据区块添加到当前区块链的尾部。
在一个实施例中,当服务器对数据区块中的区块数据全部校验通过后,统计数据区块中区块数据的数据量,根据数据量调整创建的数据区块所对应节点的节点权重值。
本实施例中,对创建的数据区块中的区块数据进行校验,当校验未通过时,按照预设调整权重值减少创建的数据区块所对应节点的节点权重值,当校验通过时,按照预设调整权重值增加创建的数据区块所对应节点的节点权重值,并将创建的数据区块添加到当前区块链,通过对出块节点的激励或处罚,解决了各节点的共识问题,提高了区块链系统的工作效率。
如图7所示,在一个实施例中,区块链随机共识方法还包括确定后次出块节点顺序的步骤,该步骤具体包括如下步骤:
步骤702,按照预设数量生成当前节点对应的多个可验证随机数。
具体地,当区块链系统中的各节点按照出块节点顺序创建数据区块时,服务器获取预设数列,从预设数列中提取预设数量的数列成员,预设数列中的各数列成员不可重复。服务器读取当前区块链中的最新区块,获取最新区块的区块创建时间和区块哈希值,其中最新区块不再是创世区块。服务器分别将最新区块的区块创建时间和区块哈希值同提取到的数列成员进行拼接,得到预设数量的待签名字符串,提取保存的私钥,对各待签名字符串进行加密,得到预设数量的数字签名。服务器将各数字签名、区块创建时间和区块哈希值拼接后输入哈希函数,得到预设数量的可验证随机数。
步骤704,获取各个节点分别对应的可验证随机数;每个节点对应多个可验证随机数。
具体地,服务器将生成的预设数量的数字签名和可验证随机数发送至区块链系统中的各节点,并接收各节点发送的数字签名和可验证随机数。每个节点均发送相同预设数量的数字签名和可验证随机数。
步骤706,根据获取到的可验证随机数,确定后次出块节点顺序。
其中,后次出块节点顺序是区块链系统中各节点创建区块的顺序,由各节点各自生成的预设数量的可验证随机数按照预设的排列方式进行排列生成。
具体地,服务器获取到各节点的数字签名和可验证随机数后,按照预设的排列方式对获取到的可验证随机数进行排列,生成当前节点对应的后次出块节点顺序提案。后次出块节点顺序提案中可验证随机数的排列顺序,代表与可验证随机数对应的节点的出块顺序。
服务器同步各节点分别对应的后次出块节点顺序提案,提取各节点分别对应的节点权重值,并将各节点分别对应的节点权重值相加得到各节点的总权重值。服务器将后次出块节点顺序提案进行归类,每接收到一个后次出块节点顺序提案,确定接收到的后次出块节点顺序提案的提案类别,并更新该类别后次出块节点顺序提案的权重值之和,具体可以是将该类别中后次出块节点顺序提案所对应节点的节点权重值相加,并及时更新该类别后次出块节点顺序提案的权重值之和与总权重值的比值。当更新后的比值大于等于预设的比值阈值时,服务器将该类别的后次出块节点顺序提案确定为区块链系统中各节点的后次出块节点顺序。
在一个实施例中,服务器生成预设数量的数字签名Sign=Encrypt(PriKey,T,H,n),其中PriKey为服务器的私钥,T为最新区块的区块创建时间,H为区块哈希值,n分别取预设数列0,1,2…(N-1)中每个数列成员的值(N为大于等于2的正整数),Encrypt表示服务器使用私钥PriKey对T、H和n组成的整体进行加密,Sign表示加密后生成的数字签名。服务器通过哈希函数得到预设数量的可验证随机数Rn=Hash(Sign,T,H,n),其中Sign为服务器生成的数字签名,T为最新区块的区块创建时间,H为区块哈希值,n分别取预设数列0,1,2…(N-1)中每个数列成员的值(N为大于等于2的正整数),Hash表示通过哈希函数对Sign、T、H和n组成的整体进行哈希运算,Rn表示服务器生成的可验证随机数。服务器可以限制后次出块节点顺序提案中的总出块次数和各节点的出块次数,具体地,服务器可以取排列中前M个可验证随机数(M为大于0的正整数)得到后次出块节点顺序提案,其中每个节点的出块次数不超过设置的阈值N,M和N的数值可以进行调整。
步骤708,当按照确定的出块节点顺序创建数据区块完毕时,按照后次出块节点顺序由各节点创建数据区块,执行将创建的数据区块添加到当前区块链的步骤。
具体地,区块链系统中的各节点按照确定的出块节点顺序创建数据区块完毕后,按照后次出块节点顺序创建数据区块。当各节点对创建的数据区块中的区块数据验证通过后,将创建的数据区块添加到当前区块链。
本实施例中,按照预设数量生成当前节点对应的多个可验证随机数,获取各个节点分别对应的可验证随机数,每个节点对应多个可验证随机数,根据获取到的可验证随机数,确定后次出块节点顺序,按照后次出块节点顺序,每个节点有多次出块机会;当按照确定的出块节点顺序创建数据区块完毕时,按照确定的后次出块节点顺序由各节点创建数据区块,并将创建的数据区块添加到当前区块链,通过后次出块节点顺序确定了区块链系统较长时间内的节点出块顺序,减少了各节点之间的通信次数,提高了区块链的创建效率。
图8为一个实施例中区块链随机共识的流程示意图,具体地,参照图8,区块链的随机共识具体包括如下步骤:
步骤802,获取各节点的数字签名和可验证随机数。
步骤804,对获取到的各节点的数字签名和可验证随机数进行验证。
步骤806,当验证通过时,根据获取到的可验证随机数生成当前节点对应的出块节点顺序提案,并同步各节点分别对应的出块节点顺序提案。
步骤808,根据各节点分别对应的节点权重值和出块节点顺序提案,确定出块节点顺序。
步骤810,按照确定的出块节点顺序由各节点创建数据区块。
步骤812,对创建的数据区块中的区块数据进行校验。
步骤814,当对区块数据校验未通过时,按照预设调整权重值减少创建的数据区块所对应节点的节点权重值。
步骤816,当对区块数据校验通过时,按照预设调整权重值增加创建的数据区块所对应节点的节点权重值,将创建的数据区块添加到当前区块链。
步骤818,按照预设数量生成当前节点对应的多个可验证随机数。
步骤820,获取各个节点分别对应的可验证随机数;每个节点对应多个可验证随机数。
步骤822,根据获取到的可验证随机数,确定后次出块节点顺序。
步骤824,当按照确定的出块节点顺序创建数据区块完毕时,按照后次出块节点顺序由各节点创建数据区块,将创建的数据区块添加到当前区块链。
应该理解的是,虽然图2-8的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-8中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图9所示,提供了一种区块链随机共识装置900,包括:获取模块902、验证模块904、提案生成模块906、顺序确定模块908、区块创建模块910和区块添加模块912,其中:
获取模块902,用于获取各节点的数字签名和可验证随机数。
验证模块904,用于对获取到的各节点的数字签名和可验证随机数进行验证。
提案生成模块906,用于根据获取到的可验证随机数生成当前节点对应的出块节点顺序提案,并同步各节点分别对应的出块节点顺序提案。
顺序确定模块908,用于根据各节点分别对应的节点权重值和出块节点顺序提案,确定出块节点顺序。
区块创建模块910,用于按照确定的出块节点顺序由各节点创建数据区块。
区块添加模块912,用于将创建的数据区块添加到当前区块链。
本实施例中,获取各节点的数字签名和可验证随机数,对获取到的各节点的数字签名和可验证随机数进行验证,当验证通过时,对获取到的可验证随机数达成共识,根据获取到的可验证随机数生成当前节点对应的出块节点顺序提案,并同步各节点分别对应的出块节点顺序提案,根据各节点分别对应的节点权重值和出块节点顺序提案,确定出块节点顺序,出块节点顺序可以确定一段时间内节点创建数据区块的顺序,无需每次出块后都通过多轮广播通信确定出块节点;按照确定的出块节点顺序由各节点创建数据区块,将创建的数据区块添加到当前区块链,提高了区块链的创建效率。
在一个实施例中,获取模块902用于获取当前区块链中最新区块的区块创建时间和区块哈希值;对区块创建时间和区块哈希值进行加密,生成当前节点的数字签名;根据当前节点的数字签名、区块创建时间和区块哈希值,生成当前节点的可验证随机数;同步各节点分别对应的数字签名和可验证随机数。
本实施例中,获取当前区块链中最新区块的区块创建时间和区块哈希值,对区块创建时间和区块哈希值进行加密,生成当前节点的数字签名,根据当前节点的数字签名、区块创建时间和区块哈希值,生成当前节点的可验证随机数,确保了可验证随机数的随机性,再同步各节点分别对应的数字签名和可验证随机数,提高了获取数字签名和可验证随机数的效率。
在一个实施例中,验证模块904具体包括:预存验证模块、随机数生成模块和随机数比较模块,其中:
预存验证模块,用于验证预存的最新区块的区块创建时间和区块哈希值,分别与各节点的数字签名中的区块创建时间和区块哈希值是否一致。
随机数生成模块,用于当验证为一致时,根据数字签名、数字签名中的区块创建时间和区块哈希值生成可验证随机数。
随机数比较模块,用于比较生成的可验证随机数和获取到的可验证随机数,当一致时,对获取到的各节点的数字签名和可验证随机数验证通过。
本实施例中,验证预存的最新区块的区块创建时间和区块哈希值,分别与各节点的数字签名中的区块创建时间和区块哈希值是否一致;当验证为一致时,根据数字签名、数字签名中的区块创建时间和区块哈希值生成可验证随机数;比较生成的可验证随机数和获取到的可验证随机数是否一致,当一致时,对获取到的各节点的数字签名和可验证随机数验证通过,两步验证提高了验证的准确性,并实现对获取到的可验证随机数的共识。
在一个实施例中,顺序确定模块908用于对各节点分别对应的出块节点顺序提案进行分类;提取各节点分别对应的节点权重值;统计各类出块节点顺序提案所对应节点的权重值之和与各节点总权重值的比值;筛选比值符合预设比值条件的出块节点顺序提案;将筛选到的出块节点顺序提案,确定为出块节点顺序。
本实施例中,对各节点分别对应的出块节点顺序提案进行分类,提取各节点分别对应的节点权重值,统计各类出块节点顺序提案所对应节点的权重值之和与各节点总权重值的比值,再筛选比值符合预设比值条件的出块节点顺序提案;筛选到的出块节点顺序提案是区块链系统中,权重值之和占比为多数的节点的出块节点顺序提案;将筛选到的出块节点顺序提案,确定为出块节点顺序,提高了确定出块节点顺序的可靠性。
在一个实施例中,区块链随机共识装置900还包括:数据校验模块、权重值减少模块和权重值增加模块,其中:
数据校验模块,用于对创建的数据区块中的区块数据进行校验。
权重值减少模块,用于当对区块数据校验未通过时,按照预设调整权重值减少创建的数据区块所对应节点的节点权重值。
权重值增加模块,用于当对区块数据校验通过时,按照预设调整权重值增加创建的数据区块所对应节点的节点权重值,将创建的数据区块添加到当前区块链。
本实施例中,对创建的数据区块中的区块数据进行校验,当校验未通过时,按照预设调整权重值减少创建的数据区块所对应节点的节点权重值,当校验通过时,按照预设调整权重值增加创建的数据区块所对应节点的节点权重值,并将创建的数据区块添加到当前区块链,通过对出块节点的激励或处罚,解决了各节点的共识问题,提高了区块链系统的工作效率。
在一个实施例中,区块链随机共识装置900还包括:随机数生成模块、随机数获取模块、后次确定模块和创建模块,其中:
随机数生成模块,用于按照预设数量生成当前节点对应的多个可验证随机数。
随机数获取模块,用于获取各个节点分别对应的可验证随机数;每个节点对应多个可验证随机数。
后次确定模块,用于根据获取到的可验证随机数,确定后次出块节点顺序。
创建模块,用于当按照确定的出块节点顺序创建数据区块完毕时,按照确定的后次出块节点顺序由各节点创建数据区块,执行将创建的数据区块添加到当前区块链的步骤。
本实施例中,按照预设数量生成当前节点对应的多个可验证随机数,获取各个节点分别对应的可验证随机数,每个节点对应多个可验证随机数,根据获取到的可验证随机数,确定后次出块节点顺序,按照后次出块节点顺序,每个节点有多次出块机会;当按照确定的出块节点顺序创建数据区块完毕时,按照确定的后次出块节点顺序由各节点创建数据区块,并将创建的数据区块添加到当前区块链,通过后次出块节点顺序确定了区块链系统较长时间内的节点出块顺序,减少了各节点之间的通信次数,提高了区块链的创建效率。
关于区块链随机共识装置的具体限定可以参见上文中对于区块链随机共识方法的限定,在此不再赘述。上述区块链随机共识装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储用于区块链随机共识的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种区块链随机共识方法。
本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述区块链随机共识方法的步骤。此处区块链随机共识方法的步骤可以是上述各个实施例的区块链随机共识方法中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述区块链随机共识方法的步骤。此处区块链随机共识方法的步骤可以是上述各个实施例的区块链随机共识方法中的步骤。
本实施例中,获取各节点的数字签名和可验证随机数,对获取到的各节点的数字签名和可验证随机数进行验证,当验证通过时,对获取到的可验证随机数达成共识,根据获取到的可验证随机数生成当前节点对应的出块节点顺序提案,并同步各节点分别对应的出块节点顺序提案,根据各节点分别对应的节点权重值和出块节点顺序提案,确定出块节点顺序,出块节点顺序可以确定一段时间内节点创建数据区块的顺序,无需每次出块后都通过多轮广播通信确定出块节点;按照确定的出块节点顺序由各节点创建数据区块,将创建的数据区块添加到当前区块链,提高了区块链的创建效率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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.根据权利要求1所述的方法,其特征在于,所述对获取到的各节点的数字签名和可验证随机数进行验证包括:
验证预存的最新区块的区块创建时间和区块哈希值,分别与各节点的数字签名中的区块创建时间和区块哈希值是否一致;
当验证为一致时,根据所述数字签名、所述数字签名中的区块创建时间和区块哈希值生成可验证随机数;
比较生成的可验证随机数和获取到的可验证随机数,当一致时,对所述获取到的各节点的数字签名和可验证随机数验证通过。
4.根据权利要求1所述的方法,其特征在于,所述根据各节点分别对应的节点权重值和出块节点顺序提案,确定出块节点顺序包括:
对各节点分别对应的出块节点顺序提案进行分类;
提取各节点分别对应的节点权重值;
统计各类出块节点顺序提案所对应节点的权重值之和与各节点总权重值的比值;
筛选比值符合预设比值条件的出块节点顺序提案;
将筛选到的出块节点顺序提案,确定为出块节点顺序。
5.根据权利要求1所述的方法,其特征在于,所述按照确定的出块节点顺序由各节点创建数据区块之后,还包括:
对创建的数据区块中的区块数据进行校验;
当对所述区块数据校验未通过时,按照预设调整权重值减少所述创建的数据区块所对应节点的节点权重值;
当对所述区块数据校验通过时,按照预设调整权重值增加所述创建的数据区块所对应节点的节点权重值,执行所述将创建的数据区块添加到当前区块链的步骤。
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述方法还包括:
按照预设数量生成当前节点对应的多个可验证随机数;
获取各个节点分别对应的可验证随机数;每个节点对应多个可验证随机数;
根据获取到的可验证随机数,确定后次出块节点顺序;
当按照所述确定的出块节点顺序创建数据区块完毕时,按照所述确定的后次出块节点顺序由各节点创建数据区块,执行所述将创建的数据区块添加到当前区块链的步骤。
7.一种区块链随机共识装置,其特征在于,所述装置包括:
获取模块,用于获取各节点的数字签名和可验证随机数;
验证模块,用于对获取到的各节点的数字签名和可验证随机数进行验证;
提案生成模块,用于根据获取到的可验证随机数生成当前节点对应的出块节点顺序提案,并同步各节点分别对应的出块节点顺序提案;
顺序确定模块,用于根据各节点分别对应的节点权重值和出块节点顺序提案,确定出块节点顺序;
区块创建模块,用于按照确定的出块节点顺序由各节点创建数据区块;
区块添加模块,用于将创建的数据区块添加到当前区块链。
8.根据权利要求7所述的装置,其特征在于,所述验证模块包括:
预存验证模块,用于验证预存的最新区块的区块创建时间和区块哈希值,分别与各节点的数字签名中的区块创建时间和区块哈希值是否一致;
随机数生成模块,用于当验证为一致时,根据所述数字签名、所述数字签名中的区块创建时间和区块哈希值生成可验证随机数;
随机数比较模块,用于比较生成的可验证随机数和获取到的可验证随机数,当一致时,对所述获取到的各节点的数字签名和可验证随机数验证通过。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811542399.0A CN109785130B (zh) | 2018-12-17 | 2018-12-17 | 区块链随机共识方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811542399.0A CN109785130B (zh) | 2018-12-17 | 2018-12-17 | 区块链随机共识方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109785130A true CN109785130A (zh) | 2019-05-21 |
CN109785130B CN109785130B (zh) | 2021-05-28 |
Family
ID=66497123
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811542399.0A Active CN109785130B (zh) | 2018-12-17 | 2018-12-17 | 区块链随机共识方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109785130B (zh) |
Cited By (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110210865A (zh) * | 2019-06-17 | 2019-09-06 | 北京艾摩瑞策科技有限公司 | 基于区块链的打包方法及装置 |
CN110213059A (zh) * | 2019-06-20 | 2019-09-06 | 腾讯科技(深圳)有限公司 | 一种随机数的生成方法、生成装置及存储介质 |
CN110225043A (zh) * | 2019-06-17 | 2019-09-10 | 北京艾摩瑞策科技有限公司 | 应用于区块链的打包方法及装置 |
CN110223070A (zh) * | 2019-06-17 | 2019-09-10 | 北京艾摩瑞策科技有限公司 | 基于区块链节点网络的验证方法及装置 |
CN110225044A (zh) * | 2019-06-17 | 2019-09-10 | 北京艾摩瑞策科技有限公司 | 在区块链上的验证方法及装置 |
CN110247753A (zh) * | 2019-06-17 | 2019-09-17 | 北京艾摩瑞策科技有限公司 | 基于区块链节点网络的出块方法及装置 |
CN110245950A (zh) * | 2019-06-17 | 2019-09-17 | 北京艾摩瑞策科技有限公司 | 涉及区块链的出块方法及装置 |
CN110445616A (zh) * | 2019-07-15 | 2019-11-12 | 杭州复杂美科技有限公司 | 一种区块打包节点的打包顺序确定方法、设备及存储介质 |
CN110460471A (zh) * | 2019-08-15 | 2019-11-15 | 广州蚁比特区块链科技有限公司 | 一种超级节点竞选方法、装置及存储介质 |
CN110601834A (zh) * | 2019-09-30 | 2019-12-20 | 深圳市网心科技有限公司 | 一种共识方法、装置、设备及可读存储介质 |
CN110661656A (zh) * | 2019-09-20 | 2020-01-07 | 广东卓启投资有限责任公司 | 一种区块链快速共识方法及装置 |
CN111083221A (zh) * | 2019-12-13 | 2020-04-28 | 北京菲林方德科技有限公司 | 一种交易验证方法及装置 |
CN111339569A (zh) * | 2020-02-26 | 2020-06-26 | 百度在线网络技术(北京)有限公司 | 区块链数据处理方法、装置、电子设备和介质 |
CN111368343A (zh) * | 2020-03-31 | 2020-07-03 | 北京俩撇科技有限公司 | 一种区块链系统、数据存储方法及装置 |
CN111414373A (zh) * | 2020-03-18 | 2020-07-14 | 深圳市网心科技有限公司 | 一种共识方法和共识系统 |
CN111443895A (zh) * | 2020-03-12 | 2020-07-24 | 杭州泛链科技有限公司 | 一种应用于区块链的可验证随机数生成方法 |
CN111865894A (zh) * | 2020-05-27 | 2020-10-30 | 布比(北京)网络技术有限公司 | 区块有效性的验证方法及装置 |
CN111930840A (zh) * | 2020-08-06 | 2020-11-13 | 平安科技(深圳)有限公司 | 基于Paxos算法的共识机制优化方法、系统以及区块链网络 |
CN112100171A (zh) * | 2020-08-12 | 2020-12-18 | 北京大学 | 一种对随机共识的图式账本建立内容索引的方法和装置 |
CN112118107A (zh) * | 2020-08-12 | 2020-12-22 | 北京大学 | 一种实现数据可信的自适应执行方法 |
CN112184244A (zh) * | 2020-09-29 | 2021-01-05 | 壹链盟生态科技有限公司 | 基于区块链的共识达成方法、装置及存储介质 |
CN112487084A (zh) * | 2019-06-03 | 2021-03-12 | 创新先进技术有限公司 | 一种块链式账本的授时认证方法、装置及设备 |
CN112487496A (zh) * | 2020-12-07 | 2021-03-12 | 合肥达朴汇联科技有限公司 | 一种区块链共识系统 |
CN112583908A (zh) * | 2020-12-07 | 2021-03-30 | 合肥达朴汇联科技有限公司 | 应用于出块节点的区块链共识方法、系统、设备及介质 |
CN113052596A (zh) * | 2019-12-28 | 2021-06-29 | 中移(成都)信息通信科技有限公司 | 基于区块链的出块方法、装置、设备和介质 |
CN113612614A (zh) * | 2021-07-19 | 2021-11-05 | 上海浦东发展银行股份有限公司 | 基于区块链网络的共识容灾方法、装置、设备和存储介质 |
CN114650145A (zh) * | 2022-03-31 | 2022-06-21 | 中国工商银行股份有限公司 | 生成区块链中区块的方法、装置及电子设备 |
CN115242802A (zh) * | 2022-08-10 | 2022-10-25 | 上海柚子工道物联技术有限公司 | 一种区块链的溯源链路构建方法、系统和电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106878000A (zh) * | 2017-03-06 | 2017-06-20 | 中钞信用卡产业发展有限公司北京智能卡技术研究院 | 一种联盟链共识方法及系统 |
CN108182581A (zh) * | 2017-12-29 | 2018-06-19 | 北京欧链科技有限公司 | 一种区块链的记账方法及装置 |
CN108269090A (zh) * | 2018-01-19 | 2018-07-10 | 中国科学院软件研究所 | 基于无协商随机抽签的用于区块链系统的共识方法和装置 |
KR20180113140A (ko) * | 2017-04-05 | 2018-10-15 | 삼성에스디에스 주식회사 | 블록체인 기반의 데이터 처리 시스템 및 그 동작 방법 |
CN108769173A (zh) * | 2018-05-21 | 2018-11-06 | 阿里体育有限公司 | 运行智能合约的区块链实现方法及设备 |
-
2018
- 2018-12-17 CN CN201811542399.0A patent/CN109785130B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106878000A (zh) * | 2017-03-06 | 2017-06-20 | 中钞信用卡产业发展有限公司北京智能卡技术研究院 | 一种联盟链共识方法及系统 |
KR20180113140A (ko) * | 2017-04-05 | 2018-10-15 | 삼성에스디에스 주식회사 | 블록체인 기반의 데이터 처리 시스템 및 그 동작 방법 |
CN108182581A (zh) * | 2017-12-29 | 2018-06-19 | 北京欧链科技有限公司 | 一种区块链的记账方法及装置 |
CN108269090A (zh) * | 2018-01-19 | 2018-07-10 | 中国科学院软件研究所 | 基于无协商随机抽签的用于区块链系统的共识方法和装置 |
CN108769173A (zh) * | 2018-05-21 | 2018-11-06 | 阿里体育有限公司 | 运行智能合约的区块链实现方法及设备 |
Cited By (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112487084A (zh) * | 2019-06-03 | 2021-03-12 | 创新先进技术有限公司 | 一种块链式账本的授时认证方法、装置及设备 |
CN110245950A (zh) * | 2019-06-17 | 2019-09-17 | 北京艾摩瑞策科技有限公司 | 涉及区块链的出块方法及装置 |
CN110225043A (zh) * | 2019-06-17 | 2019-09-10 | 北京艾摩瑞策科技有限公司 | 应用于区块链的打包方法及装置 |
CN110223070A (zh) * | 2019-06-17 | 2019-09-10 | 北京艾摩瑞策科技有限公司 | 基于区块链节点网络的验证方法及装置 |
CN110225044A (zh) * | 2019-06-17 | 2019-09-10 | 北京艾摩瑞策科技有限公司 | 在区块链上的验证方法及装置 |
CN110247753A (zh) * | 2019-06-17 | 2019-09-17 | 北京艾摩瑞策科技有限公司 | 基于区块链节点网络的出块方法及装置 |
CN110245950B (zh) * | 2019-06-17 | 2020-08-04 | 北京瑞策科技有限公司 | 涉及区块链的出块方法及装置 |
CN110225043B (zh) * | 2019-06-17 | 2021-04-02 | 北京瑞策科技有限公司 | 应用于区块链的打包方法及装置 |
CN110210865A (zh) * | 2019-06-17 | 2019-09-06 | 北京艾摩瑞策科技有限公司 | 基于区块链的打包方法及装置 |
CN110225044B (zh) * | 2019-06-17 | 2020-11-27 | 北京瑞策科技有限公司 | 在区块链上的验证方法及装置 |
CN110213059B (zh) * | 2019-06-20 | 2021-07-06 | 腾讯科技(深圳)有限公司 | 一种随机数的生成方法、生成装置及存储介质 |
CN110213059A (zh) * | 2019-06-20 | 2019-09-06 | 腾讯科技(深圳)有限公司 | 一种随机数的生成方法、生成装置及存储介质 |
CN110445616A (zh) * | 2019-07-15 | 2019-11-12 | 杭州复杂美科技有限公司 | 一种区块打包节点的打包顺序确定方法、设备及存储介质 |
CN110445616B (zh) * | 2019-07-15 | 2022-03-04 | 杭州复杂美科技有限公司 | 一种区块打包节点的打包顺序确定方法、设备及存储介质 |
CN110460471A (zh) * | 2019-08-15 | 2019-11-15 | 广州蚁比特区块链科技有限公司 | 一种超级节点竞选方法、装置及存储介质 |
CN110661656B (zh) * | 2019-09-20 | 2022-03-04 | 广东卓启投资有限责任公司 | 一种区块链快速共识方法及装置 |
CN110661656A (zh) * | 2019-09-20 | 2020-01-07 | 广东卓启投资有限责任公司 | 一种区块链快速共识方法及装置 |
CN110601834A (zh) * | 2019-09-30 | 2019-12-20 | 深圳市网心科技有限公司 | 一种共识方法、装置、设备及可读存储介质 |
CN111083221B (zh) * | 2019-12-13 | 2023-08-04 | 北京菲林方德科技有限公司 | 一种交易验证方法及装置 |
CN111083221A (zh) * | 2019-12-13 | 2020-04-28 | 北京菲林方德科技有限公司 | 一种交易验证方法及装置 |
CN113052596A (zh) * | 2019-12-28 | 2021-06-29 | 中移(成都)信息通信科技有限公司 | 基于区块链的出块方法、装置、设备和介质 |
CN113052596B (zh) * | 2019-12-28 | 2024-04-09 | 中移(成都)信息通信科技有限公司 | 基于区块链的出块方法、装置、设备和介质 |
CN111339569B (zh) * | 2020-02-26 | 2023-05-26 | 百度在线网络技术(北京)有限公司 | 区块链数据处理方法、装置、电子设备和介质 |
CN111339569A (zh) * | 2020-02-26 | 2020-06-26 | 百度在线网络技术(北京)有限公司 | 区块链数据处理方法、装置、电子设备和介质 |
CN111443895A (zh) * | 2020-03-12 | 2020-07-24 | 杭州泛链科技有限公司 | 一种应用于区块链的可验证随机数生成方法 |
CN111414373B (zh) * | 2020-03-18 | 2023-09-19 | 深圳市迅雷网络技术有限公司 | 一种共识方法和共识系统 |
CN111414373A (zh) * | 2020-03-18 | 2020-07-14 | 深圳市网心科技有限公司 | 一种共识方法和共识系统 |
CN111368343A (zh) * | 2020-03-31 | 2020-07-03 | 北京俩撇科技有限公司 | 一种区块链系统、数据存储方法及装置 |
CN111368343B (zh) * | 2020-03-31 | 2022-11-01 | 北京俩撇科技有限公司 | 一种区块链系统、数据存储方法及装置 |
CN111865894A (zh) * | 2020-05-27 | 2020-10-30 | 布比(北京)网络技术有限公司 | 区块有效性的验证方法及装置 |
CN111865894B (zh) * | 2020-05-27 | 2022-07-01 | 布比(北京)网络技术有限公司 | 区块有效性的验证方法及装置 |
CN111930840A (zh) * | 2020-08-06 | 2020-11-13 | 平安科技(深圳)有限公司 | 基于Paxos算法的共识机制优化方法、系统以及区块链网络 |
CN112118107A (zh) * | 2020-08-12 | 2020-12-22 | 北京大学 | 一种实现数据可信的自适应执行方法 |
CN112100171A (zh) * | 2020-08-12 | 2020-12-18 | 北京大学 | 一种对随机共识的图式账本建立内容索引的方法和装置 |
CN112118107B (zh) * | 2020-08-12 | 2021-08-27 | 北京大学 | 一种实现数据可信的自适应执行方法 |
CN112184244A (zh) * | 2020-09-29 | 2021-01-05 | 壹链盟生态科技有限公司 | 基于区块链的共识达成方法、装置及存储介质 |
CN112583908A (zh) * | 2020-12-07 | 2021-03-30 | 合肥达朴汇联科技有限公司 | 应用于出块节点的区块链共识方法、系统、设备及介质 |
CN112487496A (zh) * | 2020-12-07 | 2021-03-12 | 合肥达朴汇联科技有限公司 | 一种区块链共识系统 |
CN112583908B (zh) * | 2020-12-07 | 2024-04-16 | 合肥达朴汇联科技有限公司 | 应用于出块节点的区块链共识方法、系统、设备及介质 |
CN112487496B (zh) * | 2020-12-07 | 2024-04-16 | 合肥达朴汇联科技有限公司 | 一种区块链共识系统 |
CN113612614A (zh) * | 2021-07-19 | 2021-11-05 | 上海浦东发展银行股份有限公司 | 基于区块链网络的共识容灾方法、装置、设备和存储介质 |
CN113612614B (zh) * | 2021-07-19 | 2023-10-27 | 上海浦东发展银行股份有限公司 | 基于区块链网络的共识容灾方法、装置、设备和存储介质 |
CN114650145A (zh) * | 2022-03-31 | 2022-06-21 | 中国工商银行股份有限公司 | 生成区块链中区块的方法、装置及电子设备 |
CN114650145B (zh) * | 2022-03-31 | 2023-12-05 | 中国工商银行股份有限公司 | 生成区块链中区块的方法、装置及电子设备 |
CN115242802A (zh) * | 2022-08-10 | 2022-10-25 | 上海柚子工道物联技术有限公司 | 一种区块链的溯源链路构建方法、系统和电子设备 |
CN115242802B (zh) * | 2022-08-10 | 2023-11-24 | 上海柚子工道物联技术有限公司 | 一种区块链的溯源链路构建方法、系统和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109785130B (zh) | 2021-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109785130A (zh) | 区块链随机共识方法、装置、计算机设备和存储介质 | |
CN109191272B (zh) | 关于电子票据的数据处理方法、装置、存储介质和设备 | |
WO2021203586A1 (zh) | 报关数据处理方法、装置、计算机设备和存储介质 | |
CN107147501A (zh) | 时间戳处理方法及装置 | |
WO2020093565A1 (zh) | 区块链区块删除方法、装置以及终端设备 | |
EP3566389B1 (en) | Distributed privacy-preserving verifiable computation | |
CN109740384A (zh) | 基于区块链的数据存证方法和装置 | |
CN110224833B (zh) | 票据数据处理方法和系统 | |
CN110427424A (zh) | 业务数据核对方法、装置、计算机设备和存储介质 | |
CN113315630B (zh) | 区块链、量子密钥分发方法和装置 | |
CN110633071B (zh) | 一种随机数生成方法及装置 | |
CN109246130A (zh) | 数据加密方法、装置、计算机设备及存储介质 | |
US10630471B1 (en) | System and method for enforcement of correctness for key derivation | |
CN112801307B (zh) | 基于区块链的联邦学习方法、装置和计算机设备 | |
CN112613601A (zh) | 神经网络模型更新方法、设备及计算机存储介质 | |
CN110011796A (zh) | 证书更新方法、装置、计算机设备和存储介质 | |
CN109410049A (zh) | 区块链记账方法、装置、计算机设备和存储介质 | |
CN112182009A (zh) | 区块链的数据更新方法及装置、可读存储介质 | |
CN109412813B (zh) | 椭圆曲线的签名方法、验签方法和装置 | |
CN115001719B (zh) | 隐私数据处理系统、方法、装置、计算机设备及存储介质 | |
CN113507528B (zh) | 数据处理方法及电子设备 | |
EP3609120B1 (en) | Distributed data storage | |
CN110245126A (zh) | 区块处理方法、装置、计算机设备和存储介质 | |
CN115834694A (zh) | 数据存储方法、装置、存储芯片及计算机可读存储介质 | |
CN110599386B (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 |