CN112468255A - 基于网络共识结合vrf算法的区块链节点时间同步方法 - Google Patents
基于网络共识结合vrf算法的区块链节点时间同步方法 Download PDFInfo
- Publication number
- CN112468255A CN112468255A CN202011435708.1A CN202011435708A CN112468255A CN 112468255 A CN112468255 A CN 112468255A CN 202011435708 A CN202011435708 A CN 202011435708A CN 112468255 A CN112468255 A CN 112468255A
- Authority
- CN
- China
- Prior art keywords
- node
- time
- nodes
- network
- consensus
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0638—Clock or time synchronisation among nodes; Internode synchronisation
- H04J3/0658—Clock or time synchronisation among packet nodes
-
- 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/104—Peer-to-peer [P2P] networks
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
- H04L67/1065—Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT]
Abstract
本发明属于区块链网络技术领域,具体涉及一种基于网络共识结合VRF算法的区块链节点时间同步方法,包括节点分片步骤、待同步节点选举步骤、分片时间同步步骤、全节点时间同步步骤和系统时间确认步骤是一种利用VRF与共识相结合的时间同步方式,使时间同步的成本大大降低,同时还可以根据需求来确定时间同步的规模。
Description
技术领域
本发明属于区块链网络技术领域,具体涉及一种基于网络共识结合VRF算法的区块链节点时间同步方法。
背景技术
区块链技术在近些年有着突飞猛进的发展,但是也有着许许多多的局限性。由于参与区块链的节点并不都是可靠节点,也存在着节点恶意攻击区块链的可能,所以为了减小这种可能,区块链一般会使用“网络共识”的方式去避免恶意节点去篡改区块,网络共识是区块链系统的重要组成部分,共识机制的设计直接关系着区块链系统的性能和安全。
以比特币为例,比特币使用PoW(ProofofWork,工作证明)的共识方式。能获得多少货币,取决于挖矿贡献的有效工作,也就是说,电脑性能越好,分得的矿就会越多,这就是根据PoW来执行货币的分配,大部分的虚拟货币,比如比特币、莱特币等等,都是基于PoW模式的虚拟货币(算力越高、挖矿时间越长,你获得的货币就越多)。早期的虚拟币都是以PoW方式为基本原理,通过修改货币总量、出块时间间隔、每个块产生新币的数量等参数发行而来的新虚拟币,这些虚拟币在原理上相对比特币并没有创新,共识方式都存在着浪费资源、节点数量无法控制、节点质量参差不齐、有51%攻击风险等缺点,其中,51%攻击风险,简单来说,就是当你拥有了超过全球51%的比特币算力时,你将能伪造比特币网络的任何数据,因此,这种方案中,除非节点拥有51%以上的算力,不然基本没有可能去控制发布几个连续的区块,从而可以通过篡改这些区块内的信息达成对这区间内的交易自由掌控的目的。
但是众所周知PoW的计算过程非常复杂,所有节点都在进行PoW共识会消耗大量算力,造成了资源和能源的浪费,但是共识的复杂度和安全性成反比,越复杂的共识方式,对于区块链来说就越安全。如果通过一种方式能够共识过程得到一个保障,从而使节点得到一个可靠证明,这样就能够使用较为简单的共识方式来完成共识,并保证区块结构的安全性。
在一个区块链系统中,有若干个节点,在时间点0(即起始时间)时,对系统中的所有节点需要进行一次时间同步,每有一个新节点加入网络时,可以根据需求进行不同规模的时间同步;经过全网节点时间同步之后,全网的节点时间在此时变为一致,但是随着时间的变化,可能有一些节点的时间会重新变为不同步的其他值,所以需要判断哪些节点的时间发生了偏差,需要重新同步,判断的方式为:节点会随机发出和接受beacon,从而获取到目标结点的系统时间,当获取到的大部分目标节点时间与自己的系统时间相差过多时,则认为自己的系统时间出现了误差,需要进行时间同步。
发明内容
本发明针对上述时间同步需求,提供了一种利用VRF与共识相结合的时间同步方式,使时间同步的成本大大降低,同时还可以根据需求来确定时间同步的规模。
本发明所公开的基于网络共识结合VRF算法的区块链节点时间同步方法,包括以下步骤:
节点分片步骤,利用Kademlia路由协议计算出P2P网络下的区块链系统中每个节点到其他各个节点之间的逻辑距离,并根据设定阈值范围判断每个节点与其他各个节点的逻辑距离,并将逻辑距离在设定阈值范围内的其他各个节点保存为对应每个节点的节点列表,完成对区块链系统中节点的分片;这里的Kademlia路由协议本身即是一种路由协议,在本方案中可以认为是分布式哈希表(DHT)的一种实现。
所述节点分片步骤中,是利用Kademlia路由协议计中分布式哈希表DHT的路由表K-Bucket来保存所有的节点列表的,比如Bucket0,Bucket1,Bucket2分别记录距离为[1,2)、[2,4)、[4,8)范围内的节点列表;按照每个节点和起始节点之间的逻辑距离远近对保存有节点列表的K-Bucket进行分组,即有n个k-bucket则分为n组,K-Bucke俗称K桶,是Kademlia算法中的路由表,其中的路由表K-bucket存储其他节点到节点i的距离范围。
待同步节点选举步骤,由于P2P网络下区块链系统中所包含的节点数目非常庞大,所以使用每个分片对应的节点列表中所有节点进行基准时间同步是不现实的,必须去选举出其中的部分节点作为样本来进行时间同步,具体的,是通过区块链VRF算法,从区块链系统的节点网络中选择用于对网络内的所有节点进行节点时间同步的备选提案节点,以及从区块链系统的共识网络中选择用于利用节点同步的时间完成共识的验证节点,它们的选择借助选举算法。其中,区块链系统的节点网络包含所有的节点,共识网络包含所有的验证节点,在本方案中,P2P网络本身即可以是节点网络。
所述待同步节点选举步骤中,具体的:
通过区块链VRF算法从区块链系统中的节点网络选择若干备选提案节点,并继续通过区块链VRF算法在所述备选提案节点中独立提出备选区块;以及从区块链系统中的共识网络中选择若干验证节点和确认节点;
提案节点是分片中参与时间同步的节点,区块链VRF算法从区块链系统中的节点网络选择若干备选提案节点,具体过程是:备选成为提案节点的节点在本地执行计算一次区块链VRF算法,然后发起一次全网时间同步,当其他节点收到多条发起全网同步的消息时,只对区块链VRF算法计算结果中最小的节点所发出的请求予以响应,最终确定一个节点作为提案节点,例如作为此次时间同步的发起人。
所述备选区块是提取区块链VRF算法的结果中值最小的节点。
所述验证节点通过区块链系统所在的P2P网络收集所述备选区块并进行验证,然后对优先级最高的备选区块进行投票,再通过所述确认节点对验证节点的投票结果进行统计验证,并确定出最终的共识结果;所述验证节点,是在生成第一个区块时,参与共识的验证节点(验证人)由创世区块指定的,在生成其他区块时,先从参与共识的节点群中踢出在上个周期中没有完成其任务的节点(例如没有按照要求打包区块或者打包发布区块数量没有达到要求),之后使用区块链VRF算法选举新的节点填补空缺;所述确认节点的选举仍然基于VRF,从系统中选能够减小已被选择的节点被再次选择的概率,从而增加安全性;确认节点不是必需的,它们是该系统中设立的最后一道安全防护,一旦确认节点也确认了结果,新区块就会正式生成,这是基于此,确认节点最好从更大范围的P2P网络选择。
验证节点对备选区块进行验证然后对优先级最高的备选区块进行投票,是通过验证节点收集未打包的最新区块,并验证最新区块与前一区块的时间差是否符合系统的容忍度来进行验证,其中系统的容忍度为可设定的先验阈值,时间差异越合理,备选区块的优先级越高,而每个验证节点有投票权,每个验证节点按自己验证的结果对备选区块的优先级进行投票即可,投票结果决定一个备选区块能不能上位。
将最终的共识结果发送给区块链系统中的所有节点。
通过区块链VRF算法,每个节点均会得到一个计算结果,我们需要去确定每次验证需要多少的节点参与,计算的结果是一个十六进制数字,如果我们需要大约四分之一的节点参与共识,则可以将结果高两位为0X00的结果选中,以此类推。
在Kademlia中,对于任意一个有[2(n−1),2n)个节点的网络,最多只需要n步搜索即可找到目标节点。那么每个节点查找的平均时间应该为n/2所以遍历整个网络的时间应该为2n*n/2,即算法复杂度为0(n*logn)。
分片时间同步步骤,将所述待同步节点选举步骤中每个分片里被选中参与共识的节点,按照其位于同一个P2P网络中的方式进行节点时间的网络共识并得出一个共识后的时间结果,将该时间结果作为该分片对应的系统时间;
以其中一个节点的分片为例,该分片内被选中参与共识的节点进行网络共识并产生分片的系统时间的过程如下:
对分片中经过所述待同步节点选举步骤被选中参与共识的节点,分别以每一个节点的节点时间t为基础、通过发送beacon信标的方式获取其他各个节点的节点时间,beacon信标作为身份证明,借以表明该节点具有选举权,根据其他各个节点的节点时间tʹ与作为基础的节点时间t之间的差值|t-tʹ|是否在设定阈值δ内判断其他各个节点的节点时间tʹ的合理性并将判断结果广播至其他所有节点,即,当|t-tʹ|≦δ时判断该节点的节点时间相对于作为基础的节点是合理的,每个节点均得到其他节点判断出的哪些节点时间为可靠的这一信息,利用实用拜占庭容错算法PBFT对得到的被判断为可靠的节点时间进行拜占庭共识,最终得到一个大多数人同意的该分片内可靠的节点时间的集合,计算集合中所有节点时间的平均值作为期望值,该期望值即该分片的系统时间。
具体的,将分片中经过所述待同步节点选举步骤被选中参与共识的节点按照0、1、2...N的顺序进行标号,即有N个节点被选中参与共识;比如对于节点0,通过发送beacon信标的方式获取到节点1,2,3....N的节点时间,然后利用自己的节点时间对其他节点的节点时间进行合理性判断,即判断节点1,2,3....N的节点时间哪些是可靠的。
这里以节点1为例,设节点1的时间为t1,节点0的时间为t0,当|t0-t1|≦δ时,节点0认为节点1的时间是可靠的,并向节点1,2,3,4广播哪些节点是判断可靠的。
其中设定阈值δ不大于当前区块链系统生成参与共识的区块所需的时间,有N个节点参与共识,最好的情况是每个节点所要验证的区块都符合要求,不需要剔除,只要按第1个到第N个区块的顺序顺次排列。“当前区块链生成N个区块所需的时间”即“当前区块链能接受最多区块的情况下所用的时间”,根据鸽笼原理,最终被打包区块的时长总和不可能大于该时间,δ过大会导致同步后的系统时间与实际时间差值较大,但是也不宜过小,过小的话会使许多正常的节点时间也被其他节点不信任,导致没有足够的可信任的节点时间,造成同步的困难。
系统时间确认步骤,将所述分片时间同步步骤中得到的每个分片对应的系统时间再次进行网络共识,得到整个P2P网络最终的系统时间;
同样,上述系统时间确认步骤,也是对各个分片的系统时间,分别以每一个分片的系统时间T为基础、通过发送beacon信标的方式获取其他各个分片的系统时间,根据其他分片的系统时间Tʹ与作为基础的分片的系统时间T之间的差值|T-Tʹ|是否在设定阈值δ内判断其他分片的系统时间Tʹ的合理性并将判断结果广播至其他所有节点,每个分片均得到其他分片判断出的哪些分片的系统时间为可靠的这一信息,利用实用拜占庭容错算法PBFT对得到的被判断为可靠的分片的系统时间进行拜占庭共识,最终得到一个大多数人同意的可靠的系统时间集合,计算集合中所有节点时间的平均值作为期望值,该期望值即整个P2P网络的系统时间。
全节点时间同步步骤,将所述系统时间确认步骤中得到的整个P2P网络最终的系统时间广播至全网区块链系统中的每个节点即完成一次全网时间同步。
由于进行一次全网时间同步所需要的开销较大,对所有操作均进行全网时间同步开销过大,进行了首次的全网时间同步之后,当有节点需要再次同步时间时,可以根据需求减少时间同步参与节点的规模,即只利用随机选出的某几个分片参与时间同步,而不需要所有分片参与。
同时为了提高系统安全性,需要定期进行全网的所有节点的时间同步,经过一个规定的时间间隔T后,系统需要将所有节点再次进行全网时间同步。
与现有技术相比,本发明所达到的有益效果如下:
利用VRF将节点进行分片,然后对每个分片内节点做时间同步,再将各个分片的时间进行同步,这样做相对直接对全网所有节点进行时间同步可以极大的减小同步时间;经过时间同步的子链节点的共识可以使用更高效率的方式,相当于时间同步为共识做了一道安全保障;区块链内交易时间精确度和先后性更强,解决了双花问题出现的可能,同时令区块链在实时交易(如股票,期货)等活动中的应用出现了可能。
附图说明
本发明的前述和下文具体描述在结合以下附图阅读时变得更清楚,附图中:
图1是本发明技术方案流程示意图。
具体实施方式
下面通过具体的实施例来进一步说明实现本发明目的技术方案,需要说明的是,本发明要求保护的技术方案包括但不限于以下实施例。
实施例1
本实施例公开了基于网络共识结合VRF算法的区块链节点时间同步方法,包括以下步骤:
节点分片步骤,利用Kademlia路由协议计算出P2P网络下的区块链系统中每个节点到其他各个节点之间的逻辑距离,并根据设定阈值范围判断每个节点与其他各个节点的逻辑距离,并将逻辑距离在设定阈值范围内的其他各个节点保存为对应每个节点的节点列表,完成对区块链系统中节点的分片;这里的Kademlia路由协议本身即是一种路由协议,在本方案中可以认为是分布式哈希表(DHT)的一种实现。
待同步节点选举步骤,由于P2P网络下区块链系统中所包含的节点数目非常庞大,所以使用每个分片对应的节点列表中所有节点进行基准时间同步是不现实的,必须去选举出其中的部分节点作为样本来进行时间同步,具体的,是通过区块链VRF算法,从区块链系统的节点网络中选择用于对网络内的所有节点进行节点时间同步的备选提案节点,以及从区块链系统的共识网络中选择用于利用节点同步的时间完成共识的验证节点,它们的选择借助选举算法。其中,区块链系统的节点网络包含所有的节点,共识网络包含所有的验证节点,在本方案中,P2P网络本身即可以是节点网络。
分片时间同步步骤,将所述待同步节点选举步骤中每个分片里被选中参与共识的节点,按照其位于同一个P2P网络中的方式进行节点时间的网络共识并得出一个共识后的时间结果,将该时间结果作为该分片对应的系统时间。
全节点时间同步步骤,将所述系统时间确认步骤中得到的整个P2P网络最终的系统时间广播至全网区块链系统中的每个节点即完成一次全网时间同步。
系统时间确认步骤,将所述分片时间同步步骤中得到的每个分片对应的系统时间再次进行网络共识,得到整个P2P网络最终的系统时间。
利用VRF将节点进行分片,然后对每个分片内节点做时间同步,再将各个分片的时间进行同步,这样做相对直接对全网所有节点进行时间同步可以极大的减小同步时间;经过时间同步的子链节点的共识可以使用更高效率的方式,相当于时间同步为共识做了一道安全保障;区块链内交易时间精确度和先后性更强,解决了双花问题出现的可能,同时令区块链在实时交易(如股票,期货)等活动中的应用出现了可能。
实施例2
作为本发明一种优选的实时方案,本实施例公开了基于网络共识结合VRF算法的区块链节点时间同步方法,包括节点分片步骤、待同步节点选举步骤、分片时间同步步骤、全节点时间同步步骤和系统时间确认步骤。
节点分片步骤,利用Kademlia路由协议计算出P2P网络下的区块链系统中每个节点到其他各个节点之间的逻辑距离,并根据设定阈值范围判断每个节点与其他各个节点的逻辑距离,并将逻辑距离在设定阈值范围内的其他各个节点保存为对应每个节点的节点列表,完成对区块链系统中节点的分片;这里的Kademlia路由协议本身即是一种路由协议,在本方案中可以认为是分布式哈希表(DHT)的一种实现。
具体的,所述节点分片步骤中,是利用Kademlia路由协议计中分布式哈希表DHT的路由表K-Bucket来保存所有的节点列表的,比如Bucket0,Bucket1,Bucket2分别记录距离为[1,2)、[2,4)、[4,8)范围内的节点列表;按照每个节点和起始节点之间的逻辑距离远近对保存有节点列表的K-Bucket进行分组,即有n个k-bucket则分为n组,K-Bucke俗称K桶,是Kademlia算法中的路由表,其中的路由表K-bucket存储其他节点到节点i的距离范围。
待同步节点选举步骤,由于P2P网络下区块链系统中所包含的节点数目非常庞大,所以使用每个分片对应的节点列表中所有节点进行基准时间同步是不现实的,必须去选举出其中的部分节点作为样本来进行时间同步,具体的,是通过区块链VRF算法,从区块链系统的节点网络中选择用于对网络内的所有节点进行节点时间同步的备选提案节点,以及从区块链系统的共识网络中选择用于利用节点同步的时间完成共识的验证节点,它们的选择借助选举算法。其中,区块链系统的节点网络包含所有的节点,共识网络包含所有的验证节点,在本方案中,P2P网络本身即可以是节点网络。
进一步的,优选地,所述待同步节点选举步骤中,具体的:
通过区块链VRF算法从区块链系统中的节点网络选择若干备选提案节点,并继续通过区块链VRF算法在所述备选提案节点中独立提出备选区块;以及从区块链系统中的共识网络中选择若干验证节点和确认节点;
提案节点是分片中参与时间同步的节点,区块链VRF算法从区块链系统中的节点网络选择若干备选提案节点,具体过程是:备选成为提案节点的节点在本地执行计算一次区块链VRF算法,然后发起一次全网时间同步,当其他节点收到多条发起全网同步的消息时,只对区块链VRF算法计算结果中最小的节点所发出的请求予以响应,最终确定一个节点作为提案节点,例如作为此次时间同步的发起人。
所述备选区块是提取区块链VRF算法的结果中值最小的节点。
所述验证节点通过区块链系统所在的P2P网络收集所述备选区块并进行验证,然后对优先级最高的备选区块进行投票,再通过所述确认节点对验证节点的投票结果进行统计验证,并确定出最终的共识结果;所述验证节点,是在生成第一个区块时,参与共识的验证节点(验证人)由创世区块指定的,在生成其他区块时,先从参与共识的节点群中踢出在上个周期中没有完成其任务的节点(例如没有按照要求打包区块或者打包发布区块数量没有达到要求),之后使用区块链VRF算法选举新的节点填补空缺;所述确认节点的选举仍然基于VRF,从系统中选能够减小已被选择的节点被再次选择的概率,从而增加安全性;确认节点不是必需的,它们是该系统中设立的最后一道安全防护,一旦确认节点也确认了结果,新区块就会正式生成,这是基于此,确认节点最好从更大范围的P2P网络选择。
验证节点对备选区块进行验证然后对优先级最高的备选区块进行投票,是通过验证节点收集未打包的最新区块,并验证最新区块与前一区块的时间差是否符合系统的容忍度来进行验证,其中系统的容忍度为可设定的先验阈值,时间差异越合理,备选区块的优先级越高,而每个验证节点有投票权,每个验证节点按自己验证的结果对备选区块的优先级进行投票即可,投票结果决定一个备选区块能不能上位。
将最终的共识结果发送给区块链系统中的所有节点。
通过区块链VRF算法,每个节点均会得到一个计算结果,我们需要去确定每次验证需要多少的节点参与,计算的结果是一个十六进制数字,如果我们需要大约四分之一的节点参与共识,则可以将结果高两位为0X00的结果选中,以此类推。
而区块链VRF算法(可验证随机函数)是一种选举方法,包括四个部分:
1、生成密钥,生成一个公钥私钥对;
2、生成随机数输出;
3、计算零知识证明;
4、验证随机数输出。
每个节点可以根据VRF的函数算出一个随机数,可以人为规定该随机数符合一个预期条件则认为该节点被选中,并且VRF提供一个零知识证明,当一个节点声称自己被选中时,其他节点可以对其证明信息进行验证。通过VRF算法可以随机且有效的选出部分节点,并且由于VRF提供的零知识证明,该结果具有不可抵赖性。
在Kademlia中,对于任意一个有[2(n−1),2n)个节点的网络,最多只需要n步搜索即可找到目标节点。那么每个节点查找的平均时间应该为n/2所以遍历整个网络的时间应该为2n*n/2,即算法复杂度为0(n*logn)。
分片时间同步步骤,将所述待同步节点选举步骤中每个分片里被选中参与共识的节点,按照其位于同一个P2P网络中的方式进行节点时间的网络共识并得出一个共识后的时间结果,将该时间结果作为该分片对应的系统时间。
以其中一个节点的分片为例,该分片内被选中参与共识的节点进行网络共识并产生分片的系统时间的过程如下:
对分片中经过所述待同步节点选举步骤被选中参与共识的节点,分别以每一个节点的节点时间t为基础、通过发送beacon信标的方式获取其他各个节点的节点时间,beacon信标作为身份证明,借以表明该节点具有选举权,根据其他各个节点的节点时间tʹ与作为基础的节点时间t之间的差值|t-tʹ|是否在设定阈值δ内判断其他各个节点的节点时间tʹ的合理性并将判断结果广播至其他所有节点,即,当|t-tʹ|≦δ时判断该节点的节点时间相对于作为基础的节点是合理的,每个节点均得到其他节点判断出的哪些节点时间为可靠的这一信息,利用实用拜占庭容错算法PBFT对得到的被判断为可靠的节点时间进行拜占庭共识,最终得到一个大多数人同意的该分片内可靠的节点时间的集合,计算集合中所有节点时间的平均值作为期望值,该期望值即该分片的系统时间。
具体的,将分片中经过所述待同步节点选举步骤被选中参与共识的节点按照0、1、2...N的顺序进行标号,即有N个节点被选中参与共识;比如对于节点0,通过发送beacon信标的方式获取到节点1,2,3....N的节点时间,然后利用自己的节点时间对其他节点的节点时间进行合理性判断,即判断节点1,2,3....N的节点时间哪些是可靠的。
这里以节点1为例,设节点1的时间为t1,节点0的时间为t0,当|t0-t1|≦δ时,节点0认为节点1的时间是可靠的,并向节点1,2,3,4广播哪些节点是判断可靠的。
其中设定阈值δ不大于当前区块链系统生成参与共识的区块所需的时间,有N个节点参与共识,最好的情况是每个节点所要验证的区块都符合要求,不需要剔除,只要按第1个到第N个区块的顺序顺次排列。“当前区块链生成N个区块所需的时间”即“当前区块链能接受最多区块的情况下所用的时间”,根据鸽笼原理,最终被打包区块的时长总和不可能大于该时间,δ过大会导致同步后的系统时间与实际时间差值较大,但是也不宜过小,过小的话会使许多正常的节点时间也被其他节点不信任,导致没有足够的可信任的节点时间,造成同步的困难。
全节点时间同步步骤,将所述系统时间确认步骤中得到的整个P2P网络最终的系统时间广播至全网区块链系统中的每个节点即完成一次全网时间同步。
系统时间确认步骤,将所述分片时间同步步骤中得到的每个分片对应的系统时间再次进行网络共识,得到整个P2P网络最终的系统时间。同样,上述系统时间确认步骤,也是对各个分片的系统时间,分别以每一个分片的系统时间T为基础、通过发送beacon信标的方式获取其他各个分片的系统时间,根据其他分片的系统时间Tʹ与作为基础的分片的系统时间T之间的差值|T-Tʹ|是否在设定阈值δ内判断其他分片的系统时间Tʹ的合理性并将判断结果广播至其他所有节点,每个分片均得到其他分片判断出的哪些分片的系统时间为可靠的这一信息,利用实用拜占庭容错算法PBFT对得到的被判断为可靠的分片的系统时间进行拜占庭共识,最终得到一个大多数人同意的可靠的系统时间集合,计算集合中所有节点时间的平均值作为期望值,该期望值即整个P2P网络的系统时间。
由于进行一次全网时间同步所需要的开销较大,对所有操作均进行全网时间同步开销过大,进行了首次的全网时间同步之后,当有节点需要再次同步时间时,可以根据需求减少时间同步参与节点的规模,即只利用随机选出的某几个分片参与时间同步,而不需要所有分片参与。
同时为了提高系统安全性,需要定期进行全网的所有节点的时间同步,经过一个规定的时间间隔T后,系统需要将所有节点再次进行全网时间同步。
Claims (10)
1.基于网络共识结合VRF算法的区块链节点时间同步方法,其特征在于,包括以下步骤:
节点分片步骤,利用Kademlia路由协议计算出P2P网络下的区块链系统中每个节点到其他各个节点之间的逻辑距离,并根据设定阈值范围判断每个节点与其他各个节点的逻辑距离,并将逻辑距离在设定阈值范围内的其他各个节点保存为对应每个节点的节点列表,完成对区块链系统中节点的分片;
待同步节点选举步骤,是通过区块链VRF算法,从区块链系统的节点网络中选择用于对网络内的所有节点进行节点时间同步的备选提案节点,以及从区块链系统的共识网络中选择用于利用节点同步的时间完成共识的验证节点;
分片时间同步步骤,将所述待同步节点选举步骤中每个分片里被选中参与共识的节点,按照其位于同一个P2P网络中的方式进行节点时间的网络共识并得出一个共识后的时间结果,将该时间结果作为该分片对应的系统时间;
系统时间确认步骤,将所述分片时间同步步骤中得到的每个分片对应的系统时间再次进行网络共识,得到整个P2P网络最终的系统时间;
全节点时间同步步骤,将所述系统时间确认步骤中得到的整个P2P网络最终的系统时间广播至全网区块链系统中的每个节点即完成一次全网时间同步。
2.如权利要求1所述的基于网络共识结合VRF算法的区块链节点时间同步方法,其特征在于:所述节点分片步骤中,是利用Kademlia路由协议计中分布式哈希表DHT的路由表K-Bucket来保存所有的节点列表的;按照每个节点和起始节点之间的逻辑距离远近对保存有节点列表的K-Bucket进行分组。
3.如权利要求1所述的基于网络共识结合VRF算法的区块链节点时间同步方法,其特征在于:所述待同步节点选举步骤中,具体的,是通过区块链VRF算法从区块链系统中的节点网络选择若干备选提案节点,并继续通过区块链VRF算法在所述备选提案节点中独立提出备选区块;以及从区块链系统中的共识网络中选择若干验证节点和确认节点;
所述验证节点通过区块链系统所在的P2P网络收集所述备选区块并进行验证,然后对优先级最高的备选区块进行投票,再通过所述确认节点对验证节点的投票结果进行统计验证,并确定出最终的共识结果;
将最终的共识结果发送给区块链系统中的所有节点。
4.如权利要求3所述的基于网络共识结合VRF算法的区块链节点时间同步方法,其特征在于:所述备选区块是提取区块链VRF算法的结果中值最小的节点。
5.如权利要求3或4所述的基于网络共识结合VRF算法的区块链节点时间同步方法,其特征在于:验证节点对备选区块进行验证然后对优先级最高的备选区块进行投票,是通过验证节点收集未打包的最新区块,并验证最新区块与前一区块的时间差是否符合系统的容忍度来进行验证,时间差异越合理,备选区块的优先级越高,每个验证节点按自己验证的结果对备选区块的优先级进行投票。
6.如权利要求3或4所述的基于网络共识结合VRF算法的区块链节点时间同步方法,其特征在于,提案节点是分片中参与时间同步的节点,区块链VRF算法从区块链系统中的节点网络选择若干备选提案节点,具体过程是:备选成为提案节点的节点在本地执行计算一次区块链VRF算法,然后发起一次全网时间同步,当其他节点收到多条发起全网同步的消息时,只对区块链VRF算法计算结果中最小的节点所发出的请求予以响应,最终确定一个节点作为提案节点。
7.如权利要求1或3所述的基于网络共识结合VRF算法的区块链节点时间同步方法,其特征在于,节点的分片内被选中参与共识的节点进行网络共识并产生节点时间的过程如下:
对分片中经过所述待同步节点选举步骤被选中参与共识的节点,分别以每一个节点的节点时间t为基础、通过发送beacon信标的方式获取其他各个节点的节点时间,根据其他各个节点的节点时间tʹ与作为基础的节点时间t之间的差值|t-tʹ|是否在设定阈值δ内判断其他各个节点的节点时间tʹ的合理性并将判断结果广播至其他所有节点,每个节点均得到其他节点判断出的哪些节点时间为可靠的这一信息,利用实用拜占庭容错算法PBFT对得到的被判断为可靠的节点时间进行拜占庭共识,得到该分片内可靠的节点时间的集合,计算集合中所有节点时间的平均值作为期望值,该期望值即该分片的系统时间。
8.如权利要求7所述的基于网络共识结合VRF算法的区块链节点时间同步方法,其特征在于,其中设定阈值δ不大于当前区块链系统生成参与共识的区块所需的时间。
9.如权利要求1所述的基于网络共识结合VRF算法的区块链节点时间同步方法,其特征在于:所述述系统时间确认步骤,也是对各个分片的系统时间,分别以每一个分片的系统时间T为基础、通过发送beacon信标的方式获取其他各个分片的系统时间,根据其他分片的系统时间Tʹ与作为基础的分片的系统时间T之间的差值|T-Tʹ|是否在设定阈值δ内判断其他分片的系统时间Tʹ的合理性并将判断结果广播至其他所有节点,每个分片均得到其他分片判断出的哪些分片的系统时间为可靠的这一信息,利用实用拜占庭容错算法PBFT对得到的被判断为可靠的分片的系统时间进行拜占庭共识,得到可靠的系统时间集合,,计算集合中所有节点时间的平均值作为期望值,该期望值即整个P2P网络的系统时间。
10.如权利要求1所述的基于网络共识结合VRF算法的区块链节点时间同步方法,其特征在于:经过一个规定的时间间隔T后,系统需要将所有节点再次进行全网时间同步。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011435708.1A CN112468255B (zh) | 2020-12-10 | 2020-12-10 | 基于网络共识结合vrf算法的区块链节点时间同步方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011435708.1A CN112468255B (zh) | 2020-12-10 | 2020-12-10 | 基于网络共识结合vrf算法的区块链节点时间同步方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112468255A true CN112468255A (zh) | 2021-03-09 |
CN112468255B CN112468255B (zh) | 2022-03-15 |
Family
ID=74801223
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011435708.1A Active CN112468255B (zh) | 2020-12-10 | 2020-12-10 | 基于网络共识结合vrf算法的区块链节点时间同步方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112468255B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113411376A (zh) * | 2021-05-12 | 2021-09-17 | 精英数智科技股份有限公司 | 基于区块链分片存储的传感器数据处理方法及装置 |
CN114047899A (zh) * | 2022-01-12 | 2022-02-15 | 南京金宁汇科技有限公司 | 一种区块链的视图同步方法及系统 |
CN114463009A (zh) * | 2022-04-13 | 2022-05-10 | 成都理工大学 | 一种用于提高大规模能源节点交易安全性的方法 |
CN115834087A (zh) * | 2023-02-21 | 2023-03-21 | 中国科学院合肥物质科学研究院 | 基于层叠网络的区块链分片方法、系统、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110505305A (zh) * | 2019-08-27 | 2019-11-26 | 深圳市网心科技有限公司 | 一种区块链分片方法、装置及区块链系统 |
CN110851537A (zh) * | 2019-11-28 | 2020-02-28 | 蒋勇 | 一种基于区块链分片技术的共识方法 |
CN111163148A (zh) * | 2019-12-24 | 2020-05-15 | 腾讯科技(深圳)有限公司 | 一种区块链系统的共识状态的同步方法及相关设备 |
US20200192886A1 (en) * | 2018-12-13 | 2020-06-18 | Schneider Electric Industries Sas | Time stamping of data in an offline node |
-
2020
- 2020-12-10 CN CN202011435708.1A patent/CN112468255B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200192886A1 (en) * | 2018-12-13 | 2020-06-18 | Schneider Electric Industries Sas | Time stamping of data in an offline node |
CN110505305A (zh) * | 2019-08-27 | 2019-11-26 | 深圳市网心科技有限公司 | 一种区块链分片方法、装置及区块链系统 |
CN110851537A (zh) * | 2019-11-28 | 2020-02-28 | 蒋勇 | 一种基于区块链分片技术的共识方法 |
CN111163148A (zh) * | 2019-12-24 | 2020-05-15 | 腾讯科技(深圳)有限公司 | 一种区块链系统的共识状态的同步方法及相关设备 |
Non-Patent Citations (2)
Title |
---|
GUANGSHENG YU,XU WANG,KAN YU: "Survey: Sharding in Blockchains", 《 IEEE ACCESS 》 * |
刘家稷,杨挺,汪文勇: "使用双区块链的防伪溯源系统", 《信息安全学报》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113411376A (zh) * | 2021-05-12 | 2021-09-17 | 精英数智科技股份有限公司 | 基于区块链分片存储的传感器数据处理方法及装置 |
CN114047899A (zh) * | 2022-01-12 | 2022-02-15 | 南京金宁汇科技有限公司 | 一种区块链的视图同步方法及系统 |
CN114047899B (zh) * | 2022-01-12 | 2022-03-18 | 南京金宁汇科技有限公司 | 一种区块链的视图同步方法及系统 |
CN114463009A (zh) * | 2022-04-13 | 2022-05-10 | 成都理工大学 | 一种用于提高大规模能源节点交易安全性的方法 |
CN114463009B (zh) * | 2022-04-13 | 2022-06-28 | 成都理工大学 | 一种用于提高大规模能源节点交易安全性的方法 |
CN115834087A (zh) * | 2023-02-21 | 2023-03-21 | 中国科学院合肥物质科学研究院 | 基于层叠网络的区块链分片方法、系统、设备及存储介质 |
CN115834087B (zh) * | 2023-02-21 | 2023-06-06 | 中国科学院合肥物质科学研究院 | 基于层叠网络的区块链分片方法、系统、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112468255B (zh) | 2022-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112468255B (zh) | 基于网络共识结合vrf算法的区块链节点时间同步方法 | |
US11177939B2 (en) | Blockchain system including a distributed network of a plurality of nodes and a method for achieving an agreement between the plurality of nodes executed by processors of the block chain system | |
CN109150972B (zh) | 一种双层分片的高效区块链的共识机制的工作方法 | |
CN109842606B (zh) | 基于一致性哈希算法的区块链共识算法和系统 | |
CN109165945B (zh) | 代表节点设备选举方法、装置、计算机设备及存储介质 | |
CN108512652B (zh) | 基于时间证明的去中心化共识方法、系统及区块链系统 | |
CN110351067B (zh) | 针对主从多链的区块链共识方法 | |
CN109039646B (zh) | 一种基于节点能力的区块链区块打包和验证方法及系统 | |
CN111988137B (zh) | 一种基于门限签名和公平奖励的DPoS共识方法及其系统 | |
CN112804101B (zh) | 一种基于投票与信用机制的主从多链跨链方法及系统 | |
KR102230471B1 (ko) | 블록체인 네트워크 상에서 효율적인 트랜젝션을 수행하기 위한 그룹 증명 생성 방법 | |
Hari et al. | Accel: Accelerating the bitcoin blockchain for high-throughput, low-latency applications | |
CN109087105A (zh) | 用于挖矿的哈希搜索方法、挖矿机及区块链系统 | |
CN113568972A (zh) | 一种面向图式区块链的混合共识实现装置及实现方法 | |
CN114463009B (zh) | 一种用于提高大规模能源节点交易安全性的方法 | |
CN114490020A (zh) | 一种区块链分片方法、系统及电子设备 | |
Sohrabi et al. | On the scalability of blockchain systems | |
Islam et al. | A comparative analysis of proof-of-authority consensus algorithms: Aura vs Clique | |
Xi et al. | A comprehensive survey on sharding in blockchains | |
CN115022326A (zh) | 基于协同过滤推荐的区块链拜占庭容错共识方法 | |
Xu et al. | Improved PBFT algorithm based on vague sets | |
CN114615281A (zh) | 基于小规模委员会的区块链出块方法及PoS协议确认方法 | |
CN114449476A (zh) | 一种用于车联网中安全通信的区块链节点共识方法 | |
CN113570365A (zh) | 一种基于社区发现的dag网络拓扑构建方法及交易方法 | |
CN111865595A (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 |