CN111371768A - 共识处理方法、验证发起节点、验证节点、设备和介质 - Google Patents
共识处理方法、验证发起节点、验证节点、设备和介质 Download PDFInfo
- Publication number
- CN111371768A CN111371768A CN202010123140.3A CN202010123140A CN111371768A CN 111371768 A CN111371768 A CN 111371768A CN 202010123140 A CN202010123140 A CN 202010123140A CN 111371768 A CN111371768 A CN 111371768A
- Authority
- CN
- China
- Prior art keywords
- verification
- output data
- information
- verification information
- node
- 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
- 230000000977 initiatory effect Effects 0.000 title claims abstract description 65
- 238000003672 processing method Methods 0.000 title claims abstract description 29
- 238000012795 verification Methods 0.000 claims abstract description 778
- 238000012545 processing Methods 0.000 claims abstract description 126
- 238000000034 method Methods 0.000 claims abstract description 48
- 230000006870 function Effects 0.000 claims description 128
- 238000004364 calculation method Methods 0.000 claims description 35
- 238000004891 communication Methods 0.000 claims description 17
- 238000003860 storage Methods 0.000 claims description 13
- 230000008569 process Effects 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 11
- 230000007246 mechanism Effects 0.000 claims description 11
- 238000009825 accumulation Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/145—Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- 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/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Abstract
本申请实施例提供了一种共识处理方法、验证发起节点、验证节点、设备和介质,其中,该方法应用于验证发起节点中,包括:向区块链网络广播验证信息;其中验证信息包括基于预设的可验证延时函数,对从前一个区块中获取的输入数据进行处理得到的输出数据和输出数据的验证信息;输出数据的验证信息中的时间参数记录了前一个区块达成共识的时间;接收区块链网络中验证节点广播的验证结果信息;其中验证节点对验证信息进行验证处理,得到验证结果信息;根据验证结果信息得到通过验证的验证节点的数量,若通过验证的验证节点的数量符合预设条件,则将验证信息中输出数据和输出数据的验证信息存入当前区块中。本申请实施例可以有效防御长程攻击。
Description
技术领域
本申请涉及区块链安全技术领域,尤其涉及一种可以防御长程攻击的共识处理方法、验证发起节点、验证节点、电子设备和计算机可读存储介质。
背景技术
区块链(Blockchain)是一种由多方共同维护,使用密码学保证传输和访问安全,能够实现数据一致存储、难以篡改、防止抵赖的记账技术,也称为分布式账本技术(Distributed Ledger Technology,简称DLT)。共识方法是以去中心化的方式就网络的状态达成统一协议的过程,是区块链的核心技术之一。
在典型的区块链系统中,区块链网络中的节点按照事先约定的规则共同存储信息并达成共识。为了防止共识信息被篡改,系统以区块(Block)为单位存储数据,区块之间按照时间顺序、结合密码学算法构成链式(Chain)数据结构,通过共识机制选出记录节点,由该节点决定最新区块的数据,其他节点共同参与最新区块数据的验证、存储和维护,数据一经确认,就难以删除和更改,只能进行授权查询操作。
长程攻击(Long Range Attack)是攻击者通过创建一条从创世区块开始的长区块链分支,并试图替换掉当前的合法主链的攻击方式。该分支上可能存有和主链不同的交易和区块,所以这种攻击又被称为替换历史攻击或历史覆写攻击。目前主要是通过在共识结果中加入时间戳的方式来防御长程攻击。然而,时间戳很容易被攻击者伪造,因而使得伪造的共识结果无法被识别出来,可见,现有的防御长程攻击的方法仍然存在进一步改进的空间。
发明内容
本申请实施例提供一种共识处理方法、验证发起节点、验证节点、电子设备和计算机可读存储介质,可以有效防御长程攻击。
为了解决上述技术问题,本发明实施例是这样实现的:
第一个方面,本申请实施例提供了一种共识处理方法,应用于验证发起节点中,包括:
向区块链网络广播验证信息;其中,所述验证信息包括基于预设的可验证延时函数,对从前一个区块中获取的输入数据进行处理得到的输出数据和所述输出数据的验证信息;所述输出数据的验证信息中的时间参数记录了所述前一个区块达成共识的时间;
接收所述区块链网络中验证节点广播的验证结果信息;其中,所述验证节点对所述验证信息进行验证处理,得到所述验证结果信息;
根据所述验证结果信息得到通过验证的所述验证节点的数量,若通过验证的所述验证节点的数量符合预设条件,则将所述验证信息中输出数据和输出数据的验证信息存入当前区块中。
第二各方面,本申请实施例提供了一种共识方法,应用于验证节点中,包括:
接收区块链网络中验证发起节点广播的验证信息;其中,所述验证信息包括基于预设的可验证延时函数,对从前一个区块中获取的输入数据进行处理得到的输出数据和所述输出数据的验证信息;所述输出数据的验证信息中的时间参数记录了所述前一个区块达成共识的时间;
对所述验证信息进行验证处理,得到验证结果信息;并向所述区块链网络广播所述验证结果信息;
接收所述区块链网络中其它验证节点广播的验证结果信息;
根据所述验证结果信息得到通过验证的所述验证节点的数量,若通过验证的所述验证节点的数量符合预设条件,则将所述验证信息中的输出数据和输出数据的验证信息存入当前区块中。
第三个方面,本申请实施例提供了一种验证发起节点,包括:
第一发送模块,用于向区块链网络广播验证信息;其中,所述验证信息包括基于预设的可验证延时函数,对从前一个区块中获取的输入数据进行处理得到的输出数据和所述输出数据的验证信息;所述输出数据的验证信息中的时间参数记录了所述前一个区块达成共识的时间;
第一接收模块,用于接收所述区块链网络中验证节点广播的验证结果信息;其中,所述验证节点对所述验证信息进行验证处理,得到所述验证结果信息;
第一处理模块,用于根据所述验证结果信息得到通过验证的所述验证节点的数量,若通过验证的所述验证节点的数量符合预设条件,则将所述输出数据和所述输出数据的验证信息存入当前区块中。
第四个方面,本申请实施例提供了一种验证节点,包括:
第二接收模块,用于接收区块链网络中验证发起节点广播的验证信息;其中,所述验证信息包括基于预设的可验证延时函数,对从前一个区块中获取的输入数据进行处理得到的输出数据和所述输出数据的验证信息;所述输出数据的验证信息中的时间参数记录了所述前一个区块达成共识的时间;
第二处理模块,用于对所述验证信息进行验证处理,得到验证结果信息;
第二发送模块,用于向所述区块链网络广播所述验证结果信息;
所述第二接收模块,还用于接收所述区块链网络中其它验证节点广播的验证结果信息;
所述第二处理模块,还用于根据所述验证结果信息得到通过验证的所述验证节点的数量,若通过验证的所述验证节点的数量符合预设条件,则将所述输出数据和所述输出数据的验证信息存入当前区块中。
第五个方面,本申请实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线;其中,所述处理器、所述通信接口以及所述存储器通过总线完成相互间的通信;所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的程序,实现如第一方面所述的共识处理方法。
第六个方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的共识处理方法。
本申请实施例提供的共识处理方法、验证发起节点、验证节点、电子设备和计算机可读存储介质,通过向区块链网络广播验证信息;其中,验证信息包括基于预设的可验证延时函数,对从前一个区块中获取的输入数据进行处理得到的输出数据和输出数据的验证信息;输出数据的验证信息中的时间参数记录了前一个区块达成共识的时间;接收区块链网络中验证节点广播的验证结果信息;其中,验证节点对验证信息进行验证处理,得到验证结果信息;根据验证结果信息得到通过验证的验证节点的数量,若通过验证的验证节点的数量符合预设条件,则将验证信息中输出数据和输出数据的验证信息存入当前区块中;在进行共识处理时,利用可验证延时函数通过验证信息,在所形成的区块中增加了可验证延时函数的输出数据和输出数据的验证信息,由于可验证延时函数具有时间不可被缩短的特性,通过使可验证延时函数的输出数据的验证信息中的时间参数包括前一个区块达成共识的时间,可以在判断主链时,通过将各区块中可验证延时函数的输出数据的验证信息中的时间参数累加,即可将累加时间相对较长的链判断为真正的主链,由此可以有效防御长程攻击。
附图说明
为了更清楚地说明本申请一个或多个实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例的共识处理方法的一种实现方式的流程示意图;
图2为本申请实施例的共识处理方法的另一种实现方式的流程示意图;
图3为本申请实施例的共识处理方法的又一种实现方式的流程示意图;
图4为本申请实施例对验证信息进行验证处理的一种实现方式的流程示意图;
图5为本申请实施例的共识处理方法的一个应用场景的示意图;
图6为本申请实施例的验证发起节点的一种组成结构示意图;
图7为本申请实施例的验证节点的一种组成结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请一个或多个实施例中的技术方案,下面将结合本申请一个或多个实施例中的附图,对本申请一个或多个实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。基于本申请一个或多个实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本文件的保护范围。
图1为本申请实施例的共识处理方法的一种实现方式的流程示意图,图1所示的方法应用于区块链网络中的验证发起节点,验证发起节点可以为连接于区块链网络中具备计算能力的设备,例如:手机、计算机、车载设备、可穿戴设备等,本申请实施例对验证发起节点的实现方式不作限定,如图1所示,该方法至少包括:
S102,向区块链网络广播验证信息;其中,验证信息包括基于预设的可验证延时函数,对从前一个区块中获取的输入数据进行处理得到的输出数据和输出数据的验证信息;输出数据的验证信息中的时间参数记录了前一个区块达成共识的时间。
在本申请实施例中,可验证延时函数((Verifiable Random Function,简称VDF),可以是指在给定的延迟时间t内必须同时保证连续性和可高效验证性的一类函数;其中,连续性是指对于给定的输入x,任何人都需要至少通过一段时间t计算出f(x),而无法通过少于t的时间计算出f(x);可高效验证性是指对于给定的输出y,任何人都可以通过少于t的时间验证y=f(x)。也就是说,可验证延时函数可以包括计算过程,即计算出f(x),和验证过程,即验证y=f(x),两个处理过程,因此,可以将可验证延时函数表示为:y,proof=VDF(x,t);其中,t为延迟时间,也可以称为时间参数;x为输入数据;y为输出数据,proof为对VDF计算过程的证明,任何人都可以通过proof验证y是否正确,因此proof也可以称为y的验证信息。
可选地,可以采用现有的方法来构造可验证延时函数,例如:可以采用单射有理映射(injective rational maps)来构造可验证延时函数,或者可以采用基于RSA群重复平方运算(repeated squaring)来构造可验证延时函数,又或者可以采用基于虚二次域的类群(The class group of an imaginary quagratic number field)的重复平方运算来构造可验证延时函数;或者,也可以采用根据本申请实施例的要求设计的其它方法来构造可验证延时函数;本申请实施例对可验证延时函数的实现方式不作限定。
在本申请实施例中,可以通过在区块链网中的各节点预设相同的可验证延时函数y,proof=VDF(x,t),在验证发起节点形成当前区块,并向区块链网络广播验证信息时,在验证信息中可以包括基于预设的可验证延时函数y,proof=VDF(x,t),对从当前区块的前一个区块中获取的输入数据x进行处理得到的输出数据y和输出数据的验证信息proof,其中,可验证延时函数的时间参数t可以为记录区块链中前一个区块达成共识的时间的时间参数,即记录验证发起节点从接收到前一个区块到将前一个区款连接到区块链中的时间;当前区块可以为区块链中除第一个区块以外的区块,例如:第二个区块、第三个区块等等。
在本申请实施例中,可以先基于预设的选举机制从区块链网络的各节点中选举出验证发起节点,再由选举出的验证发起节点向区块链网络广播验证信息,例如:预设的选举机制可以为追随中本聪(Follow-the-Satoshi)算法、循环调度(Round Robin)算法、可验证随机函数(VerifiableRandom Function,简称VRF)等,本申请实施例对选举出验证发起节点的选举机制的实现方式不作限定。可选地,验证发起节点向区块链网络广播的验证信息除了包括基于预设的可验证延时函数得到的输出数据和输出数据的验证信息外,还可以包括验证发起节点所形成的当前区块,当前区块可以包括验证发起节点获取的交易信息和签名信息,可以通过验证信息中的交易信息和签名信息对交易的合法性、签名的正确性、交易账户的余额等进行验证,本申请实施例对验证信息的内容不作限定。
S104,接收区块链网络中验证节点广播的验证结果信息;其中,验证节点对验证信息进行验证处理,得到验证结果信息。
在本申请实施例中,区块链网络中的验证节点可以为连接于区块链网路中具备计算能力的设备,例如:手机、计算机、车载设备、可穿戴设备等,本申请实施例对验证节点的实现方式不作限定。可选地,验证节点可以是区块链网络中与验证发起节点直接连接的节点,也可以是区块链网络中通过其他验证节点与验证发起节点连接的节点,本申请对验证节点与验证发起节点的连接方式不作限定。
在本申请实施例中,区块链网络中的验证节点在通过区块链网络接收到验证发起节点广播的验证信息后,可以对验证信息进行验证处理得到验证结果信息,并向区块链网络广播所得到的验证结果信息。
在一些可选的例子中,验证节点可以从验证信息中的输出数据的验证信息中获取时间参数,基于预设的可验证延时函数对验证信息,利用所获取的时间参数对从前一个区块中获取的输入数据进行处理得到输出数据和输出数据的验证信息,并通过处理得到的输出数据和输出数据的验证信息,分别对验证信息中的输出数据和输出数据的验证信息进行验证。在另一些可选的例子中,验证节点可以从存储的时间信息中获取时间参数,例如:从存储的时间信息中获取从接到前一个区块到将前一个区块连接到区块链中的时间,基于预设的可验证延时函数对验证信息,利用所获取的时间参数对从前一个区块中获取的输入数据进行处理得到输出数据和输出数据的验证信息,并通过处理得到的输出数据和输出数据的验证信息,分别对验证信息中的输出数据和输出数据的验证信息进行验证。本申请实施例对验证节点对输出数据和输出数据的验证信息进行验证处理的实现方式不作限定。
可选地,验证结果信息可以包括接受验证信息和拒绝验证信息;当通过处理得到的输出数据和输出数据的验证信息,分别对验证信息中的输出数据和输出数据的验证信息进行验证时,若通过处理得到的输出数据和输出数据的验证信息,分别与验证信息中的输出数据和输出数据的验证信息一致,则接受验证信息;否则,拒绝验证信息。本申请实施例对验证结果信息的形式不作限定。
可选地,当验证信息中除了包括基于预设的可验证延时函数得到的输出数据和输出数据的验证信息外,还包括验证发起节点所形成的当前区块,且当前区块包括交易信息和签名信息时,验证节点还可以对验证信息中的交易信息和签名信息进行验证,以通过验证信息中的交易信息和签名信息对交易的合法性、签名的正确性、交易账户的余额等进行验证,本申请实施例对验证节点对交易信息和签名信息进行验证的实现方式不作限定。可选地,当验证结果信息包括接受验证信息和拒绝验证信息时,若通过处理得到的输出数据和输出数据的验证信息,分别与验证信息中的输出数据和输出数据的验证信息一致,且交易的合法性、签名的正确性、交易账户的余额等验证通过,则接受验证信息;否则,拒绝验证信息。
S106,根据验证结果信息得到通过验证的验证节点的数量,若通过验证的验证节点的数量符合预设条件,则将验证信息中的输出数据和输出数据的验证信息存入当前区块中。
在本申请实施例中,验证发起节点在通过区块链网络接收到验证节点广播的验证结果信息后,可以根据验证结果信息确定验证节点是否通过验证,可以通过统计通过验证的验证节点的数量,基于预设条件对通过验证的验证节点的数量进行判断,若通过验证的验证节点的数量符合预设条件,则将验证信息中的输出数据和输出数据的验证信息存入验证发起节点所形成的当前区块中。其中,预设条件可以根据需求、网络规模等设定,本申请实施例对预设条件不作限定。
在一些可选的例子中,当验证结果信息包括接受验证信息和拒绝验证信息时,验证发起节点可以根据验证结果信息中的接受验证信息,确定验证节点通过验证,而根据验证结果中的拒绝验证信息,确定验证节点未通过验证。
可选地,当验证信息中除了包括基于预设的可验证延时函数得到的输出数据和输出数据的验证信息外,还包括验证发起节点所形成的当前区块,且当前区块包括交易信息和签名信息时,验证发起节点在确定通过验证的验证节点的数量符合预设条件时,除了将验证信息中的输出数据和输出数据的验证信息存入验证发起节点所形成的当前区块中外,还确定当前区块达成共识,将当前区块连接到区块链中。
本申请实施例提供的共识处理方法,通过向区块链网络广播验证信息;其中,验证信息包括基于预设的可验证延时函数,对从前一个区块中获取的输入数据进行处理得到的输出数据和输出数据的验证信息;输出数据的验证信息中的时间参数记录了前一个区块达成共识的时间;接收区块链网络中验证节点广播的验证结果信息;其中,验证节点对验证信息进行验证处理,得到验证结果信息;根据验证结果信息得到通过验证的验证节点的数量,若通过验证的验证节点的数量符合预设条件,则将验证信息中输出数据和输出数据的验证信息存入当前区块中;在进行共识处理时,利用可验证延时函数通过验证信息,在所形成的区块中增加了可验证延时函数的输出数据和输出数据的验证信息,由于可验证延时函数具有时间不可被缩短的特性,通过使可验证延时函数的输出数据的验证信息中的时间参数包括前一个区块达成共识的时间,可以在判断主链时,通过将各区块中可验证延时函数的输出数据的验证信息中的时间参数累加,即可将累加时间相对较长的链判断为真正的主链,由此可以有效防御长程攻击。
图2为本申请实施例的共识处理方法的另一种实现方式的流程示意图,图2所示的方法应用于区块链网络中的验证发起节点,验证发起节点可以为连接于区块链网络中具备计算能力的设备,例如:手机、计算机、车载设备、可穿戴设备等,本申请实施例对验证发起节点的实现方式不作限定,如图2所示,该方法至少包括:
S202,从前一个区块中获取输入数据,将输入数据输入可验证延时函数进行计算处理。
在本申请实施例中,区块链网络中的各节点在接收到前一个区块后,即从前一个区块中获取输入数据,将输入数据输入预设的可验证延时函数进行计算处理。可选地,可以将从前一个区块中的验证信息中获取的输出数据,作为输入数据输入可验证延时函数进行计算处理;或者,可以将从前一个区块中获取的预设随机数,作为输入数据输入可验证延时函数进行计算处理。
在一些可选的例子中,从区块链中的第二个区块开始采用本申请实施例的方法进行共识处理,由于采用本申请实施例的方法对当前区块进行共识处理的验证信息包括:基于预设的可验证延时函数对从前一区块获取的输入数据进行处理得到的输出数据和输出数据的验证信息。因此,在采用本申请实施例的方法对第二个区块进行共识处理时,可以通过在区块链中的第一个区块中预设随机数,将从第一个区块中获取的该预设随机数作为输入数据,输入预设的可验证延时函数进行处理,得到验证信息中的输出数据和输出数据的验证信息;在采用本申请实施例的方法对第三个区块及其以后的区块进行共识处理时,由于在采用本申请实施例的方法对第二个区块及其以后的区块进行共识处理时,基于预设的可验证延时函数得到了验证信息中的输出数据和输出数据的验证信息,因此可以将从第二个区块及其以后的区块中的验证信息中获取的输出数据作为输入数据,输入预设的可验证延时函数进行处理,得到验证信息中的输出数据和输出数据的验证信息。
S204,若基于预设的选举机制被选举为验证发起节点,则向区块链网络广播验证信息;其中,根据验证信息的发送时间和接收到前一个区块的时间,确定时间参数;根据时间参数确定运算处理得到的输出数据;根据输出数据、输入数据和时间参数通过可验证延时函数进行验证处理,得到输出数据的验证信息;并将输出数据和输出数据的验证信息加入验证信息中。
在本申请实施例中,基于预设的选举机制从区块链网络的各节点中选举验证发起节点,若节点被选举为验证发起节点,则向区块链网络广播验证信息,此时,验证发起节点可以根据验证信息的发送时间和接收到前一个区块的时间,确定可验证延时函数的时间参数,由于可验证延时函数是从接收到前一个区块开始即从前一个区块中获取输入数据进行计算处理,因此在可验证延时函数的时间参数中包含了前一个区块达成共识的时间,在确定可验证延时函数的时间参数的同时,还可以根据验证信息的发送时间,确定可验证延时函数对从前一个区块中获取的输入数据进行计算处理得到的输出数据,同时,基于可验证延时函数可高效验证性的特点,还可以根据输出数据、输入数据和时间参数通过可验证延时函数进行验证处理,得到输出数据的验证信息,并将输出数据和输出数据的验证信息加入验证信息中。
S206,接收区块链网络中验证节点广播的验证结果信息;其中,验证节点对验证信息进行验证处理,得到验证结果信息。
S208,根据验证结果信息得到通过验证的验证节点的数量,若通过验证的验证节点的数量符合预设条件,则将验证信息中的输出数据和输出数据的验证信息存入当前区块中。
在本申请实施例中,关于S206、S208的说明可以参见图1中关于S104、S106的说明,故在此不再复述。
本实施例的方法通过在接收到前一个区块时,即从前一个区块中获取输入数据,将输入数据输入可验证延时函数中进行计算处理,在发送验证信息时,根据验证信息的发送时间,确定可验证延时函数的时间参数,并得到可验证延时函数计算处理的输出数据,同时利用可验证延时函数可高效验证性的特点,根据输出数据、输入数据和时间参数通过可验证延时函数进行验证处理,得到可验证延时函数输出数据的验证信息,可以使可验证延时函数的时间参数记录从接收前一个区块到发送验证信息的时间,由于该时间包含前一个区块达成的共识时间,在利用该时间参数进行主链的判断时,可以保证主链的不可替代性。
图3为本申请实施例的共识处理方法的又一种实现方式的流程示意图,图3所示的方法应用于区块链网络中的验证节点,验证节点可以为连接于区块链网络中具备计算能力的设备,例如:手机、计算机、车载设备、可穿戴设备等,本申请实施例对区块链网络中各节点的实现方式不作限定,如图3所示,该方法至少包括:
S302,接收区块链网络中验证发起节点广播的验证信息;其中,验证信息包括基于预设的可验证延时函数,对从前一个区块中获取的输入数据进行处理得到的输出数据和输出数据的验证信息;输出数据的验证信息中的时间参数记录了前一个区块达成共识的时间。
S304,对验证信息进行验证处理,得到验证结果信息;并向区块链网络广播验证结果信息。
S306,接收区块链网络中其它验证节点广播的验证结果信息。
在本申请实施例中,关于S302、S304、S306的说明可以参见图1中关于S102和S104的说明,故在此不再复述。
S308,根据验证结果信息得到通过验证的验证节点的数量,若通过验证的验证节点的数量符合预设条件,则将验证信息中的输出数据和输出数据的验证信息存入当前区块中。
在本申请实施例中,S308中验证节点对验证结果信息进行的处理与图1的S106中验证发起节点对验证结果信息进行的处理相似,因此,关于S308的说明可以参见图1中关于S106的说明,故在此不再复述。
本申请实施例提供的共识处理方法,通过接收区块链网络中验证发起节点广播的验证信息;其中,验证信息包括基于预设的可验证延时函数,对从前一个区块中获取的输入数据进行处理得到的输出数据和输出数据的验证信息;输出数据的验证信息中的时间参数记录了前一个区块达成共识的时间;对验证信息进行验证处理,得到验证结果信息;并向区块链网络广播验证结果信息;接收区块链网络中其它验证节点广播的验证结果信息;根据验证结果信息得到通过验证的验证节点的数量,若通过验证的验证节点的数量符合预设条件,则将验证信息中的输出数据和输出数据的验证信息存入当前区块中;在进行共识处理时,利用可验证延时函数通过验证信息,在所形成的区块中增加了可验证延时函数的输出数据和输出数据的验证信息,由于可验证延时函数具有时间不可被缩短的特性,通过使可验证延时函数的输出数据的验证信息中的时间参数包括前一个区块达成共识的时间,可以在判断主链时,通过将各区块中可验证延时函数的输出数据的验证信息中的时间参数累加,即可将累加时间相对较长的链判断为真正的主链,由此可以有效防御长程攻击。
图4为本申请实施例对验证信息进行验证处理的一种实现方式的流程示意图,图4所示的方法为验证节点对验证信息中的输出数据和输出数据的验证信息进行验证处理的一种实现方法,如图4所示,该方法至少包括:
S402,根据接收到验证信息的时间和接收到前一个区块的时间,确定参考时间。
S404,判断参考时间与验证信息中输出数据的验证信息中的时间参数之间的时间差是否小于预设时间阈值。
若参考时间与验证信息中输出数据的验证信息中的时间参数之间的时间差小于预设时间阈值,则执行S406;否则,执行S416,拒绝验证信息。
在本申请实施例中,验证节点在通过区块链网络接收到验证信息后,首先根据接收到验证信息的时间和接收到前一个区块的时间,确定参考时间,通过判断参考时间与验证信息中输出数据的验证信息中的时间参数之间的时间差是否小于预设时间阈值,来对验证信息中输出数据的验证信息中的时间参数进行验证;若参考时间与验证信息中输出数据的验证信息中的时间参数之间的时间差小于预设时间阈值,则表明验证节点接收到的验证信息可以用来对当前区块进行共识处理,可以继续对验证信息中的其它信息进行验证;若参考时间与验证信息中输出数据的验证信息中的时间参数之间的时间大于或等于预设时间阈值,则表明验证节点接收到的验证信息不能用来对当前区块进行共识处理,不需要再继续对验证信息中的其它信息进行验证。其中预设时间阈值可以根据需求、网络规模等设定,本申请实施例对预设时间阈值不作限定。
S406,基于接收前一个区块,并从前一个区块中获取输入数据,将输入数据输入预设的可验证延时函数进行计算处理,根据时间参数确定计算处理得到的输出数据。
S408,判断计算处理得到的输出数据与验证信息中的输出数据是否一致。
若计算处理得到的输出数据与验证信息中的输出数据一致,则执行S410;否则,执行S416,拒绝验证信息。
在本申请实施例中,由于验证区块在接收到前一个区块后,即从前一个区块中获取输入数据,将输入数据输入预设的可验证延时函数进行计算处理,因此在时间参数通过验证后,可以根据时间参数,即验证信息的发送时间,确定可验证延时函数对从前一个区块中获取的输入数据进行计算处理得到的输出数据,并通过判断计算处理得到的输出数据与验证信息中的输出数据是否一致,来对验证信息中的输出数据进行验证;若计算处理得到的输出数据与验证信息中的输出数据一致,则可以继续对验证信息中的其它信息进行验证;若计算处理得到的输出数据与验证信息中的输出数据不一致,则不需要再继续对验证信息中的其它信息进行验证,验证节点拒绝该验证信息。
S410,根据计算处理得到的输出数据、输入数据和时间参数通过预设的可验证延时函数进行验证处理,得到输出数据的验证信息。
S412,判断验证处理得到的输出数据的验证信息与验证信息中的输出数据的验证信息是否一致。
若验证处理得到的输出数据的验证信息与验证信息中的输出数据的验证信息一致,则执行S414,接受验证信息;否则,执行S416,拒绝验证信息。
在本申请实施例中,基于可验证延时函数可高效验证性的特点,验证区块在通过计算处理得到的输出数据后,可以根据计算处理得到的输出数据、输入数据和时间参数通过预设的可验证延时函数进行验证处理,得到输出数据的验证信息,并通过判断验证处理得到的输出数据的验证信息与验证信息中的输出数据的验证信息是否一致,来对验证信息中的输出数据的验证信息进行验证;若验证处理得到的输出数据的验证信息与验证信息中的输出数据的验证信息一致,则可以继续对验证信息中的其它信息进行验证,或者验证节点接收该验证信息;若验证处理得到的输出数据的验证信息与验证信息中的输出数据的验证信息不一致,则验证节点拒绝该验证信息,如果验证信息中还有其它未验证的信息,则不需要再继续对验证信息中的其它信息进行验证。
本实施例的方法通过先利用根据接收到验证信息的时间和接收到前一个区块的时间确定的参考时间,对验证信息中可验证延时函数输出数据的验证信息中的时间参数进行验证,可以将由于网络阻塞等因素而接收到的不符合共识处理要求的验证信息滤除,可以节约验证节点的处理资源,提升共识处理的效率。
图5为本申请实施例的共识处理方法的一个应用场景的示意图,如图5所示,在区块链中的第i-1个区块中存储有验证信息中的输出数据alpha_(i-1)和输出数据的验证信息proof_(i-1),第i-1个区块的共识时间为t_(i-1),在第i-1个区块连接到区块链上后,开始第i个区块的共识过程,其中,i为整数,且i>1。
区块链网络中的n个节点,即p1、p2、······pn,参与第i个区块的共识过程,若基于预设的选举机制pj被选举为验证发起节点,则pj向区块链网络广播验证信息Cj,其中,j为整数,且1≤j≤n。验证信息Cj包括基于预设的可验证延时函数y,proof=VDF(x,t),对从第i-1个区块中获取的输入数据alpha_(i-1),进行处理得到的输出数据alpha_i和输出数据的验证信息proof_i,即alpha_i,proof_i=VDF(alpha_(i-1),t_r),其中,t_r为pj从接收到第i-1个区块到发送验证信息Cj的时间,因此在t_r中包含第i-1个区块的共识时间t_(i-1)。
区块链网络中验证节点,即p1、p2、······pn中除pj以外的节点,在通过区块链网络接收到验证信息Cj后,根据接收到验证信息Cj的时间和接收到第i-1个区块的时间对t_r进行验证,若t_r通过验证,则从第i-1个区块中获取的输入数据alpha_(i-1),根据alpha_(i-1)和t_r基于预设的可验证延时函数y,proof=VDF(x,t)对验证信息Cj中的输出数据alpha_i和输出数据的验证信息proof_i进行验证,若alpha_i和proof_i通过验证,则接受验证信息Cj,否则,拒绝验证信息Cj,验证信息Cj还包括pj基于交易信息和签名信息形成的第i个区块,在alpha_i和proof_i通过验证后,验证节点还对Cj中的交易信息和签名信息进行交易的合法性、签名的正确性等验证,在交易信息和签名信息通过验证后,验证节点向区块链网络广播对验证信息Cj进行验证得到的验证结果信息。
pj在通过区块链网络接收到验证节点广播的验证结果信息后,根据验证结果信息得到通过验证的验证节点的数量,当通过验证的验证节点的数量大于预设阈值时,则判断第i个区块达成共识,将验证信息中的alpha_i和proof_i存入第i个区块中,并将第i个区块连接到区块链上。
对应上述图1至图2描述的共识处理方法,基于相同的技术构思,本申请实施例还提供了一种验证发起节点,该验证发起节点可以为连接于区块链网络中具备计算能力的设备,例如:手机、计算机、车载设备、可穿戴设备等,本申请实施例对验证发起节点的实现方式不作限定,图6为本申请实施例的验证发起节点的一种组成结构示意图,该验证发起节点用于执行图1至图2描述的共识处理方法,如图6所示,该验证发起节点包括:第一发送模块610、第一接收模块620和第一处理模块630,其中,第一发送模块610和第一接收模块620分别与第一处理模块630连接。
第一发送模块610,用于向区块链网络广播验证信息;其中,验证信息包括基于预设的可验证延时函数,对从前一个区块中获取的输入数据进行处理得到的输出数据和输出数据的验证信息;输出数据的验证信息中的时间参数记录了前一个区块达成共识的时间。
第一接收模块620,用于接收区块链网络中验证节点广播的验证结果信息;其中,验证节点对验证信息进行验证处理,得到验证结果信息。
第一处理模块630,用于根据验证结果信息得到通过验证的验证节点的数量,若通过验证的验证节点的数量符合预设条件,则将验证信息中的输出数据和输出数据的验证信息存入当前区块中。
在本申请实施例中,关于第一发送模块610、第一接收模块620和第一处理模块630的说明可以参见图1中关于S102、S104、S106的说明,故在此不再复述。
本申请实施例提供的验证发起节点,通过向区块链网络广播验证信息;其中,验证信息包括基于预设的可验证延时函数,对从前一个区块中获取的输入数据进行处理得到的输出数据和输出数据的验证信息;输出数据的验证信息中的时间参数记录了前一个区块达成共识的时间;接收区块链网络中验证节点广播的验证结果信息;其中,验证节点对验证信息进行验证处理,得到验证结果信息;根据验证结果信息得到通过验证的验证节点的数量,若通过验证的验证节点的数量符合预设条件,则将验证信息中输出数据和输出数据的验证信息存入当前区块中;在进行共识处理时,利用可验证延时函数通过验证信息,在所形成的区块中增加了可验证延时函数的输出数据和输出数据的验证信息,由于可验证延时函数具有时间不可被缩短的特性,通过使可验证延时函数的输出数据的验证信息中的时间参数包括前一个区块达成共识的时间,可以在判断主链时,通过将各区块中可验证延时函数的输出数据的验证信息中的时间参数累加,即可将累加时间相对较长的链判断为真正的主链,由此可以有效防御长程攻击。
可选地,第一发送模块610,还用于若基于预设的选举机制被选举为验证发起节点,则向区块链网络广播验证信息。
可选地,第一处理模块620,还用于从前一个区块中获取输入数据,将输入数据输入可验证延时函数进行计算处理。
第一发送模块630,用于若基于预设的选举机制被选举为验证发起节点,则向区块链网络广播验证信息。
第一处理模块620,还用于根据验证信息的发送时间和接收到前一个区块的时间,确定时间参数;根据时间参数确定运算处理得到的输出数据;根据输出数据、输入数据和时间参数通过可验证延时函数进行验证处理,得到输出数据的验证信息;并将输出数据和输出数据的验证信息加入验证信息中。
对应上述图3至图4描述的共识处理方法,基于相同的技术构思,本申请实施例还提供了一种验证节点,该验证节点可以为连接于区块链网络中具备计算能力的设备,例如:手机、计算机、车载设备、可穿戴设备等,本申请实施例对验证节点的实现方式不作限定,图7为本申请实施例的验证节点的一种组成结构示意图,该验证节点用于执行图3至图4描述的共识处理方法,如图7所示,该验证节点包括第二接收模块710、第二处理模块720和第二发送模块730,其中,第二接收模块710和第二发送模块730分别与第二处理模块720连接。
第二接收模块710,用于接收区块链网络中验证发起节点广播的验证信息;其中,验证信息包括基于预设的可验证延时函数,对从前一个区块中获取的输入数据进行处理得到的输出数据和输出数据的验证信息;输出数据的验证信息中的时间参数记录了前一个区块达成共识的时间。
第二处理模块720,用于对验证信息进行验证处理,得到验证结果信息.
第二发送模块730,用于向区块链网络广播验证结果信息。
第二接收模块710,还用于接收区块链网络中其它验证节点广播的验证结果信息。
第二处理模块720,还用于根据验证结果信息得到通过验证的验证节点的数量,若通过验证的验证节点的数量符合预设条件,则将验证信息中的输出数据和输出数据的验证信息存入当前区块中。
在本申请实施例中,关于第二接收模块710、第二处理模块720和第二发送模块730的说明可以参见图3中关于S302、S304、S306和S308的说明,故在此不再复述。
本申请实施例提供的验证节点,通过接收区块链网络中验证发起节点广播的验证信息;其中,验证信息包括基于预设的可验证延时函数,对从前一个区块中获取的输入数据进行处理得到的输出数据和输出数据的验证信息;输出数据的验证信息中的时间参数记录了前一个区块达成共识的时间;对验证信息进行验证处理,得到验证结果信息;并向区块链网络广播验证结果信息;接收区块链网络中其它验证节点广播的验证结果信息;根据验证结果信息得到通过验证的验证节点的数量,若通过验证的验证节点的数量符合预设条件,则将验证信息中的输出数据和输出数据的验证信息存入当前区块中;在进行共识处理时,利用可验证延时函数通过验证信息,在所形成的区块中增加了可验证延时函数的输出数据和输出数据的验证信息,由于可验证延时函数具有时间不可被缩短的特性,通过使可验证延时函数的输出数据的验证信息中的时间参数包括前一个区块达成共识的时间,可以在判断主链时,通过将各区块中可验证延时函数的输出数据的验证信息中的时间参数累加,即可将累加时间相对较长的链判断为真正的主链,由此可以有效防御长程攻击。
可选地,第二处理模块720,用于根据接收到验证信息的时间和接收到前一个区块的时间,确定参考时间;判断参考时间与验证信息中输出数据的验证信息中的时间参数之间的时间差是否小于预设时间阈值;若参考时间与验证信息中输出数据的验证信息中的时间参数之间的时间差小于预设时间阈值,则基于接收前一个区块,并从前一个区块中获取输入数据,将输入数据输入预设的可验证延时函数进行计算处理,根据时间参数确定计算处理得到的输出数据;判断计算处理得到的输出数据与验证信息中的输出数据是否一致;若计算处理得到的输出数据与验证信息中的输出数据一致,则根据计算处理得到的输出数据、输入数据和时间参数通过预设的可验证延时函数进行验证处理,得到输出数据的验证信息;判断验证处理得到的输出数据的验证信息与验证信息中的输出数据的验证信息是否一致;若验证处理得到的输出数据的验证信息与验证信息中的输出数据的验证信息一致,则接受验证信息;否则,拒绝验证信息。
对应上述图1至图2描述的共识处理方法,基于相同的技术构思,本申请实施例还提供了一种电子设备,该电子设备包括处理器、通信接口、存储器和通信总线;其中,处理器、通信接口以及存储器通过总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序,实现以下方法:
向区块链网络广播验证信息;其中,所述验证信息包括基于预设的可验证延时函数,对从前一个区块中获取的输入数据进行处理得到的输出数据和所述输出数据的验证信息;所述输出数据的验证信息中的时间参数记录了所述前一个区块达成共识的时间;
接收所述区块链网络中验证节点广播的验证结果信息;其中,所述验证节点对所述验证信息进行验证处理,得到所述验证结果信息;
根据所述验证结果信息得到通过验证的所述验证节点的数量,若通过验证的所述验证节点的数量符合预设条件,则将所述验证信息中输出数据和输出数据的验证信息存入当前区块中。
本申请实施例提供的电子设备,通过向区块链网络广播验证信息;其中,验证信息包括基于预设的可验证延时函数,对从前一个区块中获取的输入数据进行处理得到的输出数据和输出数据的验证信息;输出数据的验证信息中的时间参数记录了前一个区块达成共识的时间;接收区块链网络中验证节点广播的验证结果信息;其中,验证节点对验证信息进行验证处理,得到验证结果信息;根据验证结果信息得到通过验证的验证节点的数量,若通过验证的验证节点的数量符合预设条件,则将验证信息中输出数据和输出数据的验证信息存入当前区块中;在进行共识处理时,利用可验证延时函数通过验证信息,在所形成的区块中增加了可验证延时函数的输出数据和输出数据的验证信息,由于可验证延时函数具有时间不可被缩短的特性,通过使可验证延时函数的输出数据的验证信息中的时间参数包括前一个区块达成共识的时间,可以在判断主链时,通过将各区块中可验证延时函数的输出数据的验证信息中的时间参数累加,即可将累加时间相对较长的链判断为真正的主链,由此可以有效防御长程攻击。
对应上述图1至图2描述的共识处理方法,基于相同的技术构思,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现以下方法:
向区块链网络广播验证信息;其中,所述验证信息包括基于预设的可验证延时函数,对从前一个区块中获取的输入数据进行处理得到的输出数据和所述输出数据的验证信息;所述输出数据的验证信息中的时间参数记录了所述前一个区块达成共识的时间;
接收所述区块链网络中验证节点广播的验证结果信息;其中,所述验证节点对所述验证信息进行验证处理,得到所述验证结果信息;
根据所述验证结果信息得到通过验证的所述验证节点的数量,若通过验证的所述验证节点的数量符合预设条件,则将所述验证信息中输出数据和输出数据的验证信息存入当前区块中。
本申请实施例提供的计算机可读存储介质,通过向区块链网络广播验证信息;其中,验证信息包括基于预设的可验证延时函数,对从前一个区块中获取的输入数据进行处理得到的输出数据和输出数据的验证信息;输出数据的验证信息中的时间参数记录了前一个区块达成共识的时间;接收区块链网络中验证节点广播的验证结果信息;其中,验证节点对验证信息进行验证处理,得到验证结果信息;根据验证结果信息得到通过验证的验证节点的数量,若通过验证的验证节点的数量符合预设条件,则将验证信息中输出数据和输出数据的验证信息存入当前区块中;在进行共识处理时,利用可验证延时函数通过验证信息,在所形成的区块中增加了可验证延时函数的输出数据和输出数据的验证信息,由于可验证延时函数具有时间不可被缩短的特性,通过使可验证延时函数的输出数据的验证信息中的时间参数包括前一个区块达成共识的时间,可以在判断主链时,通过将各区块中可验证延时函数的输出数据的验证信息中的时间参数累加,即可将累加时间相对较长的链判断为真正的主链,由此可以有效防御长程攻击。
对应上述图3至图4描述的共识处理方法,基于相同的技术构思,本申请实施例还提供了一种电子设备,该电子设备包括处理器、通信接口、存储器和通信总线;其中,处理器、通信接口以及存储器通过总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序,实现以下方法:
接收区块链网络中验证发起节点广播的验证信息;其中,所述验证信息包括基于预设的可验证延时函数,对从前一个区块中获取的输入数据进行处理得到的输出数据和所述输出数据的验证信息;所述输出数据的验证信息中的时间参数记录了所述前一个区块达成共识的时间;
对所述验证信息进行验证处理,得到验证结果信息;并向所述区块链网络广播所述验证结果信息;
接收所述区块链网络中其它验证节点广播的验证结果信息;
根据所述验证结果信息得到通过验证的所述验证节点的数量,若通过验证的所述验证节点的数量符合预设条件,则将所述验证信息中的输出数据和输出数据的验证信息存入当前区块中。
本申请实施例提供的电子设备,通过接收区块链网络中验证发起节点广播的验证信息;其中,验证信息包括基于预设的可验证延时函数,对从前一个区块中获取的输入数据进行处理得到的输出数据和输出数据的验证信息;输出数据的验证信息中的时间参数记录了前一个区块达成共识的时间;对验证信息进行验证处理,得到验证结果信息;并向区块链网络广播验证结果信息;接收区块链网络中其它验证节点广播的验证结果信息;根据验证结果信息得到通过验证的验证节点的数量,若通过验证的验证节点的数量符合预设条件,则将验证信息中的输出数据和输出数据的验证信息存入当前区块中;在进行共识处理时,利用可验证延时函数通过验证信息,在所形成的区块中增加了可验证延时函数的输出数据和输出数据的验证信息,由于可验证延时函数具有时间不可被缩短的特性,通过使可验证延时函数的输出数据的验证信息中的时间参数包括前一个区块达成共识的时间,可以在判断主链时,通过将各区块中可验证延时函数的输出数据的验证信息中的时间参数累加,即可将累加时间相对较长的链判断为真正的主链,由此可以有效防御长程攻击。
对应上述图3至图4描述的共识处理方法,基于相同的技术构思,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现以下方法:
接收区块链网络中验证发起节点广播的验证信息;其中,所述验证信息包括基于预设的可验证延时函数,对从前一个区块中获取的输入数据进行处理得到的输出数据和所述输出数据的验证信息;所述输出数据的验证信息中的时间参数记录了所述前一个区块达成共识的时间;
对所述验证信息进行验证处理,得到验证结果信息;并向所述区块链网络广播所述验证结果信息;
接收所述区块链网络中其它验证节点广播的验证结果信息;
根据所述验证结果信息得到通过验证的所述验证节点的数量,若通过验证的所述验证节点的数量符合预设条件,则将所述验证信息中的输出数据和输出数据的验证信息存入当前区块中。
本申请实施例提供的计算机可读存储介质,通过接收区块链网络中验证发起节点广播的验证信息;其中,验证信息包括基于预设的可验证延时函数,对从前一个区块中获取的输入数据进行处理得到的输出数据和输出数据的验证信息;输出数据的验证信息中的时间参数记录了前一个区块达成共识的时间;对验证信息进行验证处理,得到验证结果信息;并向区块链网络广播验证结果信息;接收区块链网络中其它验证节点广播的验证结果信息;根据验证结果信息得到通过验证的验证节点的数量,若通过验证的验证节点的数量符合预设条件,则将验证信息中的输出数据和输出数据的验证信息存入当前区块中;在进行共识处理时,利用可验证延时函数通过验证信息,在所形成的区块中增加了可验证延时函数的输出数据和输出数据的验证信息,由于可验证延时函数具有时间不可被缩短的特性,通过使可验证延时函数的输出数据的验证信息中的时间参数包括前一个区块达成共识的时间,可以在判断主链时,通过将各区块中可验证延时函数的输出数据的验证信息中的时间参数累加,即可将累加时间相对较长的链判断为真正的主链,由此可以有效防御长程攻击。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本申请一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请的一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本文件的实施例而已,并不用于限制本文件。对于本领域技术人员来说,本文件可以有各种更改和变化。凡在本文件的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本文件的权利要求范围之内。
Claims (10)
1.一种共识处理方法,其特征在于,应用于验证发起节点中,包括:
向区块链网络广播验证信息;其中,所述验证信息包括基于预设的可验证延时函数,对从前一个区块中获取的输入数据进行处理得到的输出数据和所述输出数据的验证信息;所述输出数据的验证信息中的时间参数记录了所述前一个区块达成共识的时间;
接收所述区块链网络中验证节点广播的验证结果信息;其中,所述验证节点对所述验证信息进行验证处理,得到所述验证结果信息;
根据所述验证结果信息得到通过验证的所述验证节点的数量,若通过验证的所述验证节点的数量符合预设条件,则将所述验证信息中输出数据和输出数据的验证信息存入当前区块中。
2.根据权利要求1所述的方法,其特征在于,所述向区块链网络广播验证信息,包括:
若基于预设的选举机制被选举为验证发起节点,则向所述区块链网络广播所述验证信息。
3.根据权利要求2所述的方法,其特征在于,所述向区块链网络广播验证信息之前,包括:
从所述前一个区块中获取所述输入数据,将所述输入数据输入所述可验证延时函数进行计算处理;
所述向区块链网络广播验证信息,包括:
若基于预设的选举机制被选举为验证发起节点,则向所述区块链网络广播所述验证信息;其中,根据所述验证信息的发送时间和接收到所述前一个区块的时间,确定所述时间参数;根据所述时间参数确定所述计算处理得到的所述输出数据;根据所述输出数据、所述输入数据和所述时间参数通过所述可验证延时函数进行验证处理,得到所述输出数据的验证信息;并将所述输出数据和所述输出数据的验证信息加入所述验证信息中。
4.根据权利要求3所述的方法,其特征在于,所述从所述前一个区块中获取所述输入数据,包括:
从所述前一个区块中的验证信息中获取输出数据,作为所述输入数据输入所述可验证延时函数进行计算处理;或者,
从所述前一个区块中获取预设随机数,作为所述输入数据输入所述可验证延时函数进行计算处理。
5.一种共识方法,其特征在于,应用于验证节点中,包括:
接收区块链网络中验证发起节点广播的验证信息;其中,所述验证信息包括基于预设的可验证延时函数,对从前一个区块中获取的输入数据进行处理得到的输出数据和所述输出数据的验证信息;所述输出数据的验证信息中的时间参数记录了所述前一个区块达成共识的时间;
对所述验证信息进行验证处理,得到验证结果信息;并向所述区块链网络广播所述验证结果信息;
接收所述区块链网络中其它验证节点广播的验证结果信息;
根据所述验证结果信息得到通过验证的所述验证节点的数量,若通过验证的所述验证节点的数量符合预设条件,则将所述验证信息中的输出数据和输出数据的验证信息存入当前区块中。
6.根据权利要求5所述的方法,其特征在于,所述对所述验证信息进行验证处理,得到验证结果信息,包括:
根据接收到所述验证信息的时间和接收到所述前一个区块的时间,确定参考时间;
判断所述参考时间与所述验证信息中输出数据的验证信息中的时间参数之间的时间差是否小于预设时间阈值;
若所述参考时间与所述验证信息中输出数据的验证信息中的时间参数之间的时间差小于预设时间阈值,则基于接收所述前一个区块,并从所述前一个区块中获取所述输入数据,将所述输入数据输入预设的所述可验证延时函数进行计算处理,根据所述时间参数确定所述计算处理得到的输出数据;
判断所述计算处理得到的输出数据与所述验证信息中的输出数据是否一致;
若所述计算处理得到的输出数据与所述验证信息中的输出数据一致,则根据所述计算处理得到的输出数据、所述输入数据和所述时间参数通过预设的所述可验证延时函数进行验证处理,得到输出数据的验证信息;
判断所述验证处理得到的输出数据的验证信息与所述验证信息中的输出数据的验证信息是否一致;若所述验证处理得到的输出数据的验证信息与所述验证信息中的输出数据的验证信息一致,则接受所述验证信息。
7.一种验证发起节点,其特征在于,包括:
第一发送模块,用于向区块链网络广播验证信息;其中,所述验证信息包括基于预设的可验证延时函数,对从前一个区块中获取的输入数据进行处理得到的输出数据和所述输出数据的验证信息;所述输出数据的验证信息中的时间参数记录了所述前一个区块达成共识的时间;
第一接收模块,用于接收所述区块链网络中验证节点广播的验证结果信息;其中,所述验证节点对所述验证信息进行验证处理,得到所述验证结果信息;
第一处理模块,用于根据所述验证结果信息得到通过验证的所述验证节点的数量,若通过验证的所述验证节点的数量符合预设条件,则将所述输出数据和所述输出数据的验证信息存入当前区块中。
8.一种验证节点,其特征在于,包括:
第二接收模块,用于接收区块链网络中验证发起节点广播的验证信息;其中,所述验证信息包括基于预设的可验证延时函数,对从前一个区块中获取的输入数据进行处理得到的输出数据和所述输出数据的验证信息;所述输出数据的验证信息中的时间参数记录了所述前一个区块达成共识的时间;
第二处理模块,用于对所述验证信息进行验证处理,得到验证结果信息;
第二发送模块,用于向所述区块链网络广播所述验证结果信息;
所述第二接收模块,还用于接收所述区块链网络中其它验证节点广播的验证结果信息;
所述第二处理模块,还用于根据所述验证结果信息得到通过验证的所述验证节点的数量,若通过验证的所述验证节点的数量符合预设条件,则将所述输出数据和所述输出数据的验证信息存入当前区块中。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线;其中,所述处理器、所述通信接口以及所述存储器通过总线完成相互间的通信;所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的程序,实现如权利要求1-4任一项所述的共识处理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-4任一项所述的共识处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010123140.3A CN111371768B (zh) | 2020-02-27 | 2020-02-27 | 共识处理方法、验证发起节点、验证节点、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010123140.3A CN111371768B (zh) | 2020-02-27 | 2020-02-27 | 共识处理方法、验证发起节点、验证节点、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111371768A true CN111371768A (zh) | 2020-07-03 |
CN111371768B CN111371768B (zh) | 2022-03-08 |
Family
ID=71211505
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010123140.3A Expired - Fee Related CN111371768B (zh) | 2020-02-27 | 2020-02-27 | 共识处理方法、验证发起节点、验证节点、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111371768B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112417393A (zh) * | 2020-11-02 | 2021-02-26 | 深圳依时货拉拉科技有限公司 | 一种身份验证的方法、装置、计算机设备及计算机可读存储介质 |
CN112613726A (zh) * | 2020-12-18 | 2021-04-06 | 深圳前海微众银行股份有限公司 | 基于联邦学习的风险检测方法、客户端、设备和存储介质 |
CN112835854A (zh) * | 2021-02-01 | 2021-05-25 | 北京百度网讯科技有限公司 | 文件存储方法、装置、电子设备和存储介质 |
CN112988894A (zh) * | 2021-03-22 | 2021-06-18 | 广东工业大学 | 一种基于分布式可验证延迟函数的区块链共识系统和方法 |
US20230044605A1 (en) * | 2019-05-20 | 2023-02-09 | Chia Network, Inc. | Methods for extending a proof-of-space-time blockchain |
US11582333B2 (en) | 2020-10-23 | 2023-02-14 | Nokia Technologies Oy | Methods and devices in a blockchain network |
CN116090020A (zh) * | 2023-04-13 | 2023-05-09 | 中国人民解放军海军潜艇学院 | 基于区块链的信息存储方法和装置、电子设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109639837A (zh) * | 2019-01-31 | 2019-04-16 | 东南大学 | 基于信任机制的区块链DPoS共识方法 |
US20190312734A1 (en) * | 2018-04-05 | 2019-10-10 | Ares Technologies, Inc. | Systems and methods authenticating a digitally signed assertion using verified evaluators |
WO2019241359A1 (en) * | 2018-06-13 | 2019-12-19 | Dynamic Blockchain, Inc. | Blockchain distributed access, storage and transport |
-
2020
- 2020-02-27 CN CN202010123140.3A patent/CN111371768B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190312734A1 (en) * | 2018-04-05 | 2019-10-10 | Ares Technologies, Inc. | Systems and methods authenticating a digitally signed assertion using verified evaluators |
WO2019241359A1 (en) * | 2018-06-13 | 2019-12-19 | Dynamic Blockchain, Inc. | Blockchain distributed access, storage and transport |
CN109639837A (zh) * | 2019-01-31 | 2019-04-16 | 东南大学 | 基于信任机制的区块链DPoS共识方法 |
Non-Patent Citations (3)
Title |
---|
KASHIF MEHBOOB KHAN,ET AL.: "Investigating performance constraints for blockchain based secure e-voting system", 《FUTURE GENERATION COMPUTER SYSTEMS》 * |
刘懿中: "区块链共识机制研究综述", 《密码学报》 * |
马圣泓等: "一种认知无线电仿冒主用户攻击的防御方案", 《计算机工程》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230044605A1 (en) * | 2019-05-20 | 2023-02-09 | Chia Network, Inc. | Methods for extending a proof-of-space-time blockchain |
US11582333B2 (en) | 2020-10-23 | 2023-02-14 | Nokia Technologies Oy | Methods and devices in a blockchain network |
CN112417393A (zh) * | 2020-11-02 | 2021-02-26 | 深圳依时货拉拉科技有限公司 | 一种身份验证的方法、装置、计算机设备及计算机可读存储介质 |
CN112613726A (zh) * | 2020-12-18 | 2021-04-06 | 深圳前海微众银行股份有限公司 | 基于联邦学习的风险检测方法、客户端、设备和存储介质 |
CN112835854A (zh) * | 2021-02-01 | 2021-05-25 | 北京百度网讯科技有限公司 | 文件存储方法、装置、电子设备和存储介质 |
CN112988894A (zh) * | 2021-03-22 | 2021-06-18 | 广东工业大学 | 一种基于分布式可验证延迟函数的区块链共识系统和方法 |
CN112988894B (zh) * | 2021-03-22 | 2023-07-07 | 广东工业大学 | 一种基于分布式可验证延迟函数的区块链共识系统和方法 |
CN116090020A (zh) * | 2023-04-13 | 2023-05-09 | 中国人民解放军海军潜艇学院 | 基于区块链的信息存储方法和装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111371768B (zh) | 2022-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111371768B (zh) | 共识处理方法、验证发起节点、验证节点、设备和介质 | |
CN109743173B (zh) | 区块链中出块节点确定方法、区块验证方法及区块链系统 | |
CN110633963B (zh) | 电子票据处理方法、装置、计算机可读存储介质和设备 | |
CN108769230B (zh) | 交易数据存储方法、装置、服务器及存储介质 | |
CN108320155B (zh) | 一种实现区块链共识机制的方法 | |
WO2017079652A1 (en) | Cryptographic transactions system | |
CN113129518B (zh) | 电动车辆充电系统及其资源管理方法 | |
CN111523890A (zh) | 基于区块链的数据处理方法、装置、存储介质及设备 | |
CN112600678A (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN110177109B (zh) | 一种基于标识密码和联盟链的双代理跨域认证系统 | |
CN112950201A (zh) | 一种应用于区块链系统的节点管理方法及相关装置 | |
CN110460536B (zh) | 用于区块链的数据处理方法和装置、介质和电子设备 | |
CN113657898A (zh) | 联盟链中的共识方法和系统 | |
CN111260475A (zh) | 一种数据处理方法、区块链节点设备及存储介质 | |
CN112910661B (zh) | 适用于电子签约的区块链共识方法、装置、设备及介质 | |
CN113795008B (zh) | V2x验签方法、装置、电子设备及可读存储介质 | |
CN112037055B (zh) | 交易处理方法、装置、电子设备及可读存储介质 | |
CN111224782A (zh) | 基于数字签名的数据校验方法、智能设备及存储介质 | |
CN112468465B (zh) | 一种基于担保派生的零信任环境下终端账户身份认证方法和系统 | |
CN113609533A (zh) | 一种面向智能电网数据的完整性审计方法 | |
CN111371769B (zh) | 共识处理方法、共识节点、电子设备和可读存储介质 | |
CN111275417B (zh) | 交易背书处理方法、服务器及计算机可读存储介质 | |
CN112436944A (zh) | 一种基于pow的区块链共识方法及装置 | |
CN114401091B (zh) | 基于区块链的设备跨域认证管理方法及装置 | |
CN112037062B (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210118 Address after: 100080 1120-64, 11 / F, 18 Zhongguancun Street, Haidian District, Beijing Applicant after: Beijing Lianhua Future Technology Co.,Ltd. Address before: 310026 808, office building 2, Xixi Yintai, Xihu District, Hangzhou City, Zhejiang Province Applicant before: ZHEJIANG ULTRAIN SPACE TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20220308 |