CN116260828A - 一种区块链共识方法和装置 - Google Patents
一种区块链共识方法和装置 Download PDFInfo
- Publication number
- CN116260828A CN116260828A CN202310550599.5A CN202310550599A CN116260828A CN 116260828 A CN116260828 A CN 116260828A CN 202310550599 A CN202310550599 A CN 202310550599A CN 116260828 A CN116260828 A CN 116260828A
- Authority
- CN
- China
- Prior art keywords
- nodes
- verification
- node
- layer node
- layer
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 74
- 238000012795 verification Methods 0.000 claims abstract description 150
- 238000004364 calculation method Methods 0.000 claims abstract description 94
- 230000002787 reinforcement Effects 0.000 claims description 28
- 230000006870 function Effects 0.000 claims description 12
- 238000003860 storage Methods 0.000 claims description 12
- 230000009471 action Effects 0.000 claims description 10
- 230000001174 ascending effect Effects 0.000 claims description 9
- 230000008901 benefit Effects 0.000 claims description 9
- 230000004913 activation Effects 0.000 claims description 7
- 238000010200 validation analysis Methods 0.000 claims description 4
- 239000002699 waste material Substances 0.000 abstract description 6
- 238000013473 artificial intelligence Methods 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 20
- 238000010586 diagram Methods 0.000 description 10
- 230000006872 improvement Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 238000005265 energy consumption Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 238000012550 audit Methods 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000009440 infrastructure construction Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- 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]
-
- 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
- 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/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明实施例提供一种区块链共识方法和装置,涉及区块链和人工智能技术领域,能够解决区块链的算力集中和电力浪费问题,并提高区块链***的去中心化程度。本发明实施例的区块链共识方法包括:将区块链网络的节点分为验证层节点和计算层节点;由验证层节点确定第一数值区间以及作为第一数值区间的子区间的第二数值区间;当任一计算层节点计算出处在第一数值区间的待生产区块的哈希值时,由该计算层节点向验证层节点发出验证请求;由验证层节点对请求队列中的验证请求依次进行验证;在当前验证请求携带的哈希值处在第二数值区间时,指示验证通过,将发出当前验证请求的计算层节点确定为区块生产者。
Description
技术领域
本发明涉及区块链和人工智能技术领域,尤其涉及一种区块链共识方法和装置。
背景技术
共识算法是分布式***保持数据一致性的关键技术。近些年受到学术界和工业界广泛关注的区块链技术属于分布式***,它所使用的PoW(Proof of Work,工作量证明)共识算法也引起了学者们的广泛讨论。受PoW启发,陆续诞生了一些其它的区块链共识算法。这些算法的目的都是竞争记账权。同时,因为公链上可能存在恶意破坏共识的节点,所以区块链共识算法必须考虑“拜占庭将军问题”。
当前区块链存在一个广受诟病的问题:能耗过大。据统计,比特币***一年的耗电量相当于智利的国内用电量,用电稍少的以太坊***也相当于冰岛一年的国内耗电量,而能耗问题的根源是算力的不断集中和持续提高。为了比其它节点更早计算出符合约束条件的哈希值,各节点争相购进设备以提高算力,并且因为这个原因还诞生了“矿池”。“矿池”的出现既浪费了电力又破坏了区块链的去中心化特征。理论上来说,如果存在一个集中了全网51%算力的“矿池”,那么***将面临遭受51%攻击的风险。所以,无论从能源消耗的角度还是安全性的角度,亦或是保证区块链去中心化的角度,都应该解决当前突出的算力集中问题。
去中心化是区块链的本质特征,有研究者指出,区块链技术可以消除消费者潜在的信任危机,也有学者认为,可以构建基于区块链的融资***,用于消除投资障碍,使得私人资本可以更好地支持基础设施建设,还有研究结果表明可以将区块链用于审计溯源,确保食品供应链***的质量,而以上这些应用都是基于去中心化特征实现的,去中心化也是区块链安全性的重要保证,因此区块链与一些行业结合的时候必须充分保证其去中心化的特征。不幸的是,在过去很长时间,去中心化只是定性的描述,亟待设计合适的计算方法去衡量区块链的这一本质特征。
发明内容
有鉴于此,本发明实施例提供一种方法、装置、电子设备和存储介质,能够解决区块链的算力集中和电力浪费问题,并提高区块链***的去中心化程度。
为实现上述目的,根据本发明的一个方面,提供了一种区块链共识方法。
本发明实施例的区块链共识方法包括:将区块链网络的多个节点分为验证层节点和计算层节点;其中,所述验证层节点预先维护请求队列;由所述验证层节点确定第一数值区间以及作为第一数值区间的子区间的第二数值区间;当任一计算层节点计算出处在第一数值区间的待生产区块的哈希值时,由该计算层节点向所述验证层节点发出验证请求;其中,所述验证请求携带有所述哈希值,所述验证请求按照预设顺序排列在所述请求队列;由所述验证层节点按照所述顺序对所述请求队列中的验证请求依次进行验证;在当前验证请求携带的哈希值处在第二数值区间时,指示验证通过,将发出所述当前验证请求的计算层节点确定为区块生产者。
优选地,所述方法进一步包括:在当前验证请求携带的哈希值未处在第二数值区间时,由发出该当前验证请求的计算层节点重新计算哈希值;在计算出处在第一数值区间的哈希值时,由该计算层节点重新发出验证请求并将所述验证请求排列在所述请求队列。
优选地,所述顺序为先入先出的顺序;以及,所述方法进一步包括:在所述将发出所述当前验证请求的计算层节点确定为区块生产者之后,在区块链基于处在第二数值区间的哈希值创建相应的区块,将创建的区块同步到所述区块链网络,并为所述区块生产者发出预设数量的代币奖励。
优选地,所述方法进一步包括:统计预设时间段内所述区块链网络中每一节点的代币奖励在所述区块链网络的总代币奖励中的比例,将所述比例与第一参数的差值的绝对值确定为该节点的比例偏移;其中,第一参数为所述区块链网络中节点总数的倒数;将各节点的比例偏移之和确定为克兹涅茨比率,用于评价所述区块链网络的去中心化程度。
优选地,所述方法进一步包括:计算所述区块链网络在当前时刻的克兹涅茨比率,判断该克兹涅茨比率是否大于预设阈值:若否,将所述区块链网络的全部节点作为共识参与节点并从中选取新的验证层节点和计算层节点;若是,将所述区块链网络的全部节点按照各节点的所述比例的升序排列,将排列在前的预设占比的部分节点作为共识参与节点并从中选取新的验证层节点和计算层节点。
优选地,所述方法进一步包括:将当前时刻所述区块链网络中每一节点的代币奖励输入预先构建的强化学习模型,得到相应的共识参与模式;其中,所述共识参与模式包括第一模式和第二模式;在第一模式中,将所述区块链网络的全部节点作为共识参与节点并从中选取新的验证层节点和计算层节点;在第二模式中,将所述区块链网络的全部节点按照各节点的所述比例的升序排列,将排列在前的预设占比的部分节点作为共识参与节点并从中选取新的验证层节点和计算层节点;所述强化学习模型的状态空间由所述区块链网络中每一节点的所述比例组成,所述强化学习模型的动作空间包括第一模式和第二模式,所述强化学习模型的奖励函数是基于预设时间间隔内各节点收益的期望值构造的,任一节点的收益为该节点在所述时间间隔内每一即时奖励与相应的折扣因子乘积的累加值。
优选地,所述即时奖励是在当前的克兹涅茨比率不大于预设阈值时产生的,所述即时奖励的数值为相应的克兹涅茨比率的倒数;以及,所述强化学习模型包括依次连接的第一线性层、第一激活层、第二线性层、第二激活层和第三线性层。
为实现上述目的,根据本发明的另一方面,提供了一种区块链共识装置。
本发明实施例的区块链共识装置包括:节点选取单元,用于将区块链网络的多个节点分为验证层节点和计算层节点;其中,所述验证层节点预先维护请求队列;区间确定单元,用于由所述验证层节点确定第一数值区间以及作为第一数值区间的子区间的第二数值区间;计算单元,用于:当任一计算层节点计算出处在第一数值区间的待生产区块的哈希值时,由该计算层节点向所述验证层节点发出验证请求;其中,所述验证请求携带有所述哈希值,所述验证请求按照预设顺序排列在所述请求队列;验证单元,用于:由所述验证层节点按照所述顺序对所述请求队列中的验证请求依次进行验证;在当前验证请求携带的哈希值处在第二数值区间时,指示验证通过,将发出所述当前验证请求的计算层节点确定为区块生产者。
为实现上述目的,根据本发明的再一方面,提供了一种电子设备。
本发明的一种电子设备包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明所提供的区块链共识方法。
为实现上述目的,根据本发明的再一方面,提供了一种非暂态计算机可读存储介质。
本发明的一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行本发明所提供的区块链共识方法。
根据本发明的技术方案,上述发明中的一个实施例具有如下优点或有益效果:
本发明对区块链PoW共识算法做出了改进,在计算过程使用队列平衡了各计算节点的算力,使得节点不再单方面的追求提升算力,解决了达成共识过程中的电力浪费问题,节约了能源。并且,通过随机设置第一数值区间和作为其子区间的第二数值区间以及相应的验证策略,本发明提高了验证过程的随机性,使得拥有较高算力的“矿池”不一定具有更高的验证通过概率,一定程度上减轻了***遭受51%攻击的风险。同时,本发明使用克兹涅茨比率量化了共识过程中选择节点时的***去中心化程度,结合强化学***衡***去中心化水平。如此,通过对共识算法的改进以及对强化学习的应用既可以降低电力消耗,又保证了区块链去中心化的本质特性。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是本发明实施例中区块链共识方法的主要步骤示意图;
图2是根据本发明实施例的计算和验证分离示意图;
图3是根据本发明实施例中区块链共识方法的场景示意图;
图4是根据本发明实施例中区块链共识装置的主要部分的示意图;
图5是用来实现本发明实施例的区块链共识方法的电子设备的硬件结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是本发明实施例中区块链共识方法的主要步骤示意图,参见图1,本发明实施例的区块链共识方法具体执行以下步骤:
步骤S101:将区块链网络的多个节点分为验证层节点和计算层节点;验证层节点预先维护请求队列。
在本步骤中,可以从区块链网络的全部节点或者部分节点作为共识参与节点,并从中选取验证层节点和计算层节点。实际应用中,可以从全部的共识参与节点中随机选取多个验证层节点,剩余的共识参与节点作为计算层节点。共识参与节点的确定方式将在下文说明。以上请求队列可以是先入先出队列。
步骤S102:由验证层节点确定第一数值区间以及作为第一数值区间的子区间的第二数值区间。
在本步骤中,可以由一个验证层节点确定第一数值区间和第二数值区间,也可以由多个验证层节点共同确定第一数值区间和第二数值区间。实际应用中,可以在哈希值的取值范围内随机确定第一数值区间,进而在第一数值区间内随机确定作为其子区间的第二数值区间;也可以在一个特定的合理数值范围内随机确定第一数值区间,进而在第一数值区间内随机确定作为其子区间的第二数值区间。各计算层节点能够获知第一数值区间但是不能获知第二数值区间。
步骤S103:当任一计算层节点计算出处在第一数值区间的待生产区块的哈希值时,由该计算层节点向验证层节点发出验证请求;验证请求携带有该哈希值,验证请求按照预设顺序排列在请求队列。
在本步骤中,以上顺序为先入先出的顺序。计算层节点改变随机数来不断计算待生产区块的哈希值,当该哈希值处在第一数值区间时即发出验证请求,以上验证请求以先入先出的顺序排列在请求队列,等待验证层节点按照先入先出的顺序进行验证。
步骤S104:由验证层节点按照顺序对请求队列中的验证请求依次进行验证;在当前验证请求携带的哈希值处在第二数值区间时,指示验证通过,将发出当前验证请求的计算层节点确定为区块生产者。
在本步骤中,验证层节点从请求队列中依次验证各验证请求,当判断当前验证请求携带的哈希值处在第二数值区间时,即指示验证通过,并将相应的计算层节点确定为区块生产者。如果当前验证请求携带的哈希值未处在第二数值区间,则由发出该当前验证请求的计算层节点重新计算哈希值;并在计算出处在第一数值区间的哈希值时,由该计算层节点重新发出验证请求并将验证请求排列在请求队列重新等待验证。
在本发明实施例中,确定区块生产者之后,可以在区块链基于处在第二数值区间的哈希值创建相应的区块,将创建的区块同步到区块链网络,并为区块生产者发出预设数量的代币奖励。通过以上设置,能够基于请求队列、第一数值区间和作为其子区间的第二数值区间以及相应的验证策略实现新的区块链共识方式,弱化了强算力节点在体系中的验证通过概率,从而在一定程度上减轻了算力集中和能源浪费问题,并且,基于第一数值区间和第二数值区间带来的验证过程的高随机性,使得拥有较高算力的“矿池”不一定具有更高的验证通过概率,一定程度上减轻了***遭受51%攻击的风险。
特别地,在本发明实施例中,提供以下区块链网络的去中心化程度评价方法以及相应的去中心化优化方法。具体地,首先统计预设时间段内区块链网络中每一节点的代币奖励在区块链网络的总代币奖励中的比例,将以上比例与第一参数的差值的绝对值确定为该节点的比例偏移。其中,第一参数为区块链网络中节点总数的倒数。接着,将各节点的比例偏移之和确定为克兹涅茨比率,用于评价区块链网络的去中心化程度。此后,可以有两种方法执行去中心化程度的优化。
在第一种方法中,首先计算区块链网络在当前时刻的克兹涅茨比率,判断该克兹涅茨比率是否大于预设阈值(如0.3):若否,将区块链网络的全部节点作为共识参与节点并从中选取新的验证层节点和计算层节点;若是,将区块链网络的全部节点按照各节点的以上比例的升序排列,将排列在前的预设占比的部分节点作为共识参与节点并从中选取新的验证层节点和计算层节点。如此,能够在节点之间的代币奖励不均衡时(即去中心化程度低)针对代币奖励最少的节点执行后续的共识过程以提高其代币奖励,从而通过减小节点之间的代币奖励差距来提高区块链***的去中心化程度。
在第二种方法中,将当前时刻区块链网络中每一节点的代币奖励输入预先构建的强化学习模型,得到相应的共识参与模式。具体地,共识参与模式包括第一模式和第二模式;在第一模式中,将区块链网络的全部节点作为共识参与节点并从中选取新的验证层节点和计算层节点;在第二模式中,将区块链网络的全部节点按照各节点的以上比例的升序排列,将排列在前的预设占比的部分节点作为共识参与节点并从中选取新的验证层节点和计算层节点。
以上强化学习模型的状态空间由区块链网络中每一节点的以上比例组成,强化学习模型的动作空间包括第一模式和第二模式,强化学习模型的奖励函数是基于预设时间间隔内各节点收益的期望值构造的,任一节点的收益为该节点在时间间隔内每一即时奖励与相应的折扣因子乘积的累加值。
特别地,以上即时奖励是在当前的克兹涅茨比率不大于预设阈值时产生的,即时奖励的数值为相应的克兹涅茨比率的倒数。实际场景中,以上强化学习模型可以包括依次连接的第一线性层、第一激活层、第二线性层、第二激活层和第三线性层。
图2是根据本发明实施例的计算和验证分离示意图,图3是根据本发明实施例中区块链共识方法的场景示意图。在图2中,示出了将任意一个时间段(term)分为计算过程和验证过程的内容。在图3中,示出了包含多个区块的区块链以及验证层节点与计算层节点的交互过程,其中标记为1的节点指的是验证层节点,标记为2的节点指的是正在计算哈希值的计算层节点,标记为3的节点指的是等待验证结果的计算层节点。计算层节点将计算出的哈希值提供给验证层节点,验证层节点向计算层节点返回验证结果,计算层节点包括正在计算哈希值的节点和等待验证结果的节点。在计算层节点中确定出区块生产者之后,可以在区块链创建相应的新区块。
以下说明本发明的一个具体实施例。
现有技术中,已经提出了各种可以应用于区块链的共识算法,但是应用的比较成功的还是比特币和以太坊的PoW算法,这个算法的本质是由算力决定谁成为生产者。然而,由于这个算法消耗了大量的能源并且算力的集中可能导致51%攻击,所以它也受到了很多质疑。本发明分析了算法导致算力集中的原因,对其进行了改进,提出了基于计算与验证分离的SPoW算法。该算法将获得竞争记账权的过程分为两个阶段:
1) 计算哈希值F(blockheader | nonce),F为哈希函数,blockheader表示区块头,nonce表示随机数;
2) 向验证层节点发出请求,由验证层节点验证哈希值。
当计算层节点计算得到符合条件的哈希值之后,需要将结果提交给验证层节点,验证层节点维护请求队列,按请求的先后顺序依次验证各个节点的计算结果。验证失败的节点返回继续计算,下一次请求需要重新排队。验证通过的第一个节点成为生产者,生产者节点负责发布区块。生产者一旦确认,验证层节点立刻向全网广播新的计算要求。该算法的具体执行流程如下所示:
1.从区块链节点集合N={n1,n2,n3,…}随机选出验证层节点,余下的节点为计算层节点;
2.验证层节点随机确定a和b的值,构成第一数值区间(a,b),在(a,b)中随机确定它的子区间——第二数值区间(a1,b1);
3.计算层节点使用哈希函数F计算满足条件F(blockheader | nonce)∈(a,b)的哈希值;
4.计算层节点向验证层节点发出验证请求;
5.验证节点按照计算节点的请求顺序依次验证F(blockheader | nonce)是否属于(a1,b1);
5.1.如果不属于,该计算节点重新计算哈希值;
5.2.如果属于,选为生产者;
6.第一个通过验证的节点作为生产者发布区块并获得代币奖励,其余节点接收区块并存入本地数据库;
7.验证层节点广播下一个计算要求。返回步骤2。
从算法的过程可以看出,SPoW是对PoW算法的改进,具有良好的可扩展性和安全性。需要指出的是,该算法对算力集中化的限制措施有两个:一个是“请求队列”,即完成第一步计算后,需要在验证层节点的请求队列中排队。另一个措施是“两个区间”,即计算结果满足一个区间但不一定满足于这个区间的子区间。若结果不满足子区间,需要重新计算,这就在一定程度上弱化了算力对竞争结果的决定性影响。
去中心化是区块链技术的本质特征。在以往的研究中多是采用定性的方式去描述,其缺点是不直观,尤其是在需要对引入区块链技术的***做出评价以及判断当前节点的奖励分配是否合理时,缺乏直观的数据作为支撑。为此,提出一种简单且合理的衡量方法。考虑到加入区块链的节点获得记账权后将会得到奖励,类似于工作之后得到的工资,同时应该保证节点可以公平地竞争记账权,本实施例选择了克兹涅茨比率k_rate这一概念,将其引入并作为衡量区块链去中心化水平的工具,实现了去中心化从定性到定量的转变。公式计算如下:
其中,n代表节点数。代表第i个节点所获得的出块奖励(即代币奖励)占全网络奖励的比例,和分别代表第i和第j个节点所获得的出块奖励,代表该节点占全部节点的比例,在此为1/n,同时,本发明可以将克兹涅茨比率的阈值设置为0.3。理想情况下,和相等,即出块奖励被均匀的分配给了所有的节点。当某个节点得到的奖励多余其余节点时,由公式计算得到的累加和就会相应的增大,当存在大量的这种类型的节点时,***的克兹涅茨比率就会变大。这说明某些节点被重复选为生产者(producer),这时的***应该增加其余节点被选为生产者的概率。
一共有两种方式给出生产者节点:一是所有节点参与竞争记账权,决出生产者。另一种部分节点参与竞争记账权,决出生产者。而究竟是哪种情况则是由强化学习算法根据当前节点集的奖励状态决定。当***的克兹涅茨比率突破阈值0.3时,部分节点参与竞争,小于阈值0.3时,全部节点参与竞争。
本发明采用当前学术界最流行的pytorch深度学习框架搭建强化学习模型,该模型由3个线性层和2个激活层组成,2个激活层夹在3个线性层之间。第一个线性层输入50个特征,输出为32个特征。第二个线性层输入32个特征,输出为32个特征。第三个线性层输入32个特征,输出为1个特征。模型训练时使用交叉熵损失函数和relu激活函数,采用随机梯度下降来学习数据特征。模型的学习率设置为0.001,模型输入的50个特征是区块链计算节点所持有的代币奖励,模型的输出结果为0或者1,0代表下一次使用部分计算节点参与共识,而1代表使用全部计算节点参与共识。以此确保区块链处于一个高度的去中心化的状态中。生产者决定过程如下所示:
1.导入历史数据,训练模型;
2.计算***当前的克兹涅茨比率,并与阈值0.3作比较;
1)≤阈值0.3,计算层节点计算哈希值,决出生产者;
2)>阈值0.3,进行下一步操作;
3.下一阶段的共识过程只允许40%的节点参与,克兹涅茨比率的计算仍然涉及100%的节点;
1)≤阈值0.3,决出生产者,共识过程改为100%的节点参与;
2)>阈值0.3,这40%的节点的代币奖励数加1(该技术特征为可选),重新挑选40%的节点并计算此时的克兹涅茨比率,直到满足条件。
其中,公式(4)中的r代表某个节点已经获得的出块奖励,后面的数字是节点编号。公式(5)中的1代表下一阶段由40%的节点参与共识过程,0代表100%的节点参与共识。
其中,Q是累积奖励函数,使Q的值达到最大的决策就是模型要找到的决策,A表示执行的动作,S表示执行动作后进入的状态。是上文提到的阈值0.3。表示t时刻之后获得的及时奖励,表示t时刻的状态,表示t时刻采取的动作。即公式6。
其中,E表示期望,t表示时刻, 表示t时刻的累积折扣因子,表示t=0时刻模型所处的状态,表示 t=0时刻模型采取的动作。
本发明能够实现以下技术效果:
(1)提出了计算与验证分离的SPoW(分离的PoW)共识算法,在为区块链***提供良好的可扩展性的同时,解决了PoW算法的算力集中化问题;
(2)引入克兹涅茨比率量化去中心化的程度,为***的去中心化衡量提供可见的数据参考;
(3)应用强化学习算法实时根据当前***状态决定参与共识的节点的规模。
图4是根据本发明实施例的区块链共识装置400的主要部分的示意图。
如图4所示,本发明实施例的区块链共识装置400可以包括:节点选取单元401、区间确定单元402、计算单元403和验证单元404。
其中,节点选取单元401用于将区块链网络的多个节点分为验证层节点和计算层节点;其中,所述验证层节点预先维护请求队列;区间确定单元402用于由所述验证层节点确定第一数值区间以及作为第一数值区间的子区间的第二数值区间;计算单元403用于:当任一计算层节点计算出处在第一数值区间的待生产区块的哈希值时,由该计算层节点向所述验证层节点发出验证请求;其中,所述验证请求携带有所述哈希值,所述验证请求按照预设顺序排列在所述请求队列;验证单元404用于:由所述验证层节点按照所述顺序对所述请求队列中的验证请求依次进行验证;在当前验证请求携带的哈希值处在第二数值区间时,指示验证通过,将发出所述当前验证请求的计算层节点确定为区块生产者。
在本发明实施例中,所述验证单元404还用于:在当前验证请求携带的哈希值未处在第二数值区间时,由发出该当前验证请求的计算层节点重新计算哈希值;在计算出处在第一数值区间的哈希值时,由该计算层节点重新发出验证请求并将所述验证请求排列在所述请求队列。
具体应用中,所述顺序为先入先出的顺序;以及,所述验证单元404还用于:在所述将发出所述当前验证请求的计算层节点确定为区块生产者之后,在区块链基于处在第二数值区间的哈希值创建相应的区块,将创建的区块同步到所述区块链网络,并为所述区块生产者发出预设数量的代币奖励。
实际应用中,所述装置400可进一步包括优化单元,用于:统计预设时间段内所述区块链网络中每一节点的代币奖励在所述区块链网络的总代币奖励中的比例,将所述比例与第一参数的差值的绝对值确定为该节点的比例偏移;其中,第一参数为所述区块链网络中节点总数的倒数;将各节点的比例偏移之和确定为克兹涅茨比率,用于评价所述区块链网络的去中心化程度。
较佳地,所述优化单元还用于:计算所述区块链网络在当前时刻的克兹涅茨比率,判断该克兹涅茨比率是否大于预设阈值:若否,将所述区块链网络的全部节点作为共识参与节点并从中选取新的验证层节点和计算层节点;若是,将所述区块链网络的全部节点按照各节点的所述比例的升序排列,将排列在前的预设占比的部分节点作为共识参与节点并从中选取新的验证层节点和计算层节点。
在一个实施例中,所述优化单元还用于:将当前时刻所述区块链网络中每一节点的代币奖励输入预先构建的强化学习模型,得到相应的共识参与模式;其中,所述共识参与模式包括第一模式和第二模式;在第一模式中,将所述区块链网络的全部节点作为共识参与节点并从中选取新的验证层节点和计算层节点;在第二模式中,将所述区块链网络的全部节点按照各节点的所述比例的升序排列,将排列在前的预设占比的部分节点作为共识参与节点并从中选取新的验证层节点和计算层节点;所述强化学习模型的状态空间由所述区块链网络中每一节点的所述比例组成,所述强化学习模型的动作空间包括第一模式和第二模式,所述强化学习模型的奖励函数是基于预设时间间隔内各节点收益的期望值构造的,任一节点的收益为该节点在所述时间间隔内每一即时奖励与相应的折扣因子乘积的累加值。
此外,在本发明实施例中,所述即时奖励是在当前的克兹涅茨比率不大于预设阈值时产生的,所述即时奖励的数值为相应的克兹涅茨比率的倒数;以及,所述强化学习模型包括依次连接的第一线性层、第一激活层、第二线性层、第二激活层和第三线性层。
需要说明的是,本发明实施例的装置作为软件,可安装在计算机、移动终端等设备中。
在本发明实施例的技术方案中,对区块链PoW共识算法做出了改进,在计算过程使用队列平衡了各计算节点的算力,使得节点不再单方面的追求提升算力,解决了达成共识过程中的电力浪费问题,节约了能源。并且,通过随机设置第一数值区间和作为其子区间的第二数值区间以及相应的验证策略,本发明提高了验证过程的随机性,使得拥有较高算力的“矿池”不一定具有更高的验证通过概率,一定程度上减轻了***遭受51%攻击的风险。同时,本发明使用克兹涅茨比率量化了共识过程中选择节点时的***去中心化程度,结合强化学***衡***去中心化水平。如此,通过对共识算法的改进以及对强化学习的应用既可以降低电力消耗,又保证了区块链去中心化的本质特性。
根据本发明的实施例,本发明还提供了一种电子设备和一种可读存储介质。
本发明的电子设备包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行本发明所提供的区块链共识方法。
本发明的非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行本发明所提供的区块链共识方法。
如图5所示,是用来实现本发明实施例的业务规则管理的方法的电子设备的硬件结构示意图。如图5,该电子设备包括:一个或多个处理器51以及存储器52,图5中以一个处理器51为例。其中,存储器52即为本发明所提供的非暂态计算机可读存储介质。
本发明的电子设备还可以包括:输入装置53和输出装置54。
处理器51、存储器52、输入装置53和输出装置54可以通过总线或者其他方式连接,图5中以通过总线连接为例。
存储器52作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施例中的业务规则管理的方法对应的程序指令/模块。处理器51通过运行存储在存储器52中的非暂态软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例的区块链共识方法。
存储器52可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储数据区可存储根据业务规则管理的装置的使用所创建的数据等。此外,存储器52可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器52可选包括相对于处理器51远程设置的存储器,这些远程存储器可以通过网络连接至业务规则管理的装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置53可接收输入的数字或字符信息,以及产生与业务规则管理的装置的用户设置以及功能控制有关的键信号输入。输出装置54可包括显示屏等显示设备。
以上一个或者多个模块存储在所述存储器52中,当被所述一个或者多个处理器51执行时,执行上述任意方法实施例的区块链共识方法。
上述产品可执行本发明实施例所提供的区块链共识方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例所提供的区块链共识方法。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (10)
1.一种区块链共识方法,其特征在于,包括:
将区块链网络的多个节点分为验证层节点和计算层节点;其中,所述验证层节点预先维护请求队列;
由所述验证层节点确定第一数值区间以及作为第一数值区间的子区间的第二数值区间;
当任一计算层节点计算出处在第一数值区间的待生产区块的哈希值时,由该计算层节点向所述验证层节点发出验证请求;其中,所述验证请求携带有所述哈希值,所述验证请求按照预设顺序排列在所述请求队列;
由所述验证层节点按照所述顺序对所述请求队列中的验证请求依次进行验证;在当前验证请求携带的哈希值处在第二数值区间时,指示验证通过,将发出所述当前验证请求的计算层节点确定为区块生产者。
2.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:
在当前验证请求携带的哈希值未处在第二数值区间时,由发出该当前验证请求的计算层节点重新计算哈希值;
在计算出处在第一数值区间的哈希值时,由该计算层节点重新发出验证请求并将所述验证请求排列在所述请求队列。
3.根据权利要求1所述的方法,其特征在于,所述顺序为先入先出的顺序;以及,所述方法进一步包括:
在所述将发出所述当前验证请求的计算层节点确定为区块生产者之后,在区块链基于处在第二数值区间的哈希值创建相应的区块,将创建的区块同步到所述区块链网络,并为所述区块生产者发出预设数量的代币奖励。
4.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:
统计预设时间段内所述区块链网络中每一节点的代币奖励在所述区块链网络的总代币奖励中的比例,将所述比例与第一参数的差值的绝对值确定为该节点的比例偏移;其中,第一参数为所述区块链网络中节点总数的倒数;
将各节点的比例偏移之和确定为克兹涅茨比率,用于评价所述区块链网络的去中心化程度。
5.根据权利要求4所述的方法,其特征在于,所述方法进一步包括:
计算所述区块链网络在当前时刻的克兹涅茨比率,判断该克兹涅茨比率是否大于预设阈值:若否,将所述区块链网络的全部节点作为共识参与节点并从中选取新的验证层节点和计算层节点;若是,将所述区块链网络的全部节点按照各节点的所述比例的升序排列,将排列在前的预设占比的部分节点作为共识参与节点并从中选取新的验证层节点和计算层节点。
6.根据权利要求4所述的方法,其特征在于,所述方法进一步包括:
将当前时刻所述区块链网络中每一节点的代币奖励输入预先构建的强化学习模型,得到相应的共识参与模式;其中,
所述共识参与模式包括第一模式和第二模式;在第一模式中,将所述区块链网络的全部节点作为共识参与节点并从中选取新的验证层节点和计算层节点;在第二模式中,将所述区块链网络的全部节点按照各节点的所述比例的升序排列,将排列在前的预设占比的部分节点作为共识参与节点并从中选取新的验证层节点和计算层节点;
所述强化学习模型的状态空间由所述区块链网络中每一节点的所述比例组成,所述强化学习模型的动作空间包括第一模式和第二模式,所述强化学习模型的奖励函数是基于预设时间间隔内各节点收益的期望值构造的,任一节点的收益为该节点在所述时间间隔内每一即时奖励与相应的折扣因子乘积的累加值。
7.根据权利要求6所述的方法,其特征在于,所述即时奖励是在当前的克兹涅茨比率不大于预设阈值时产生的,所述即时奖励的数值为相应的克兹涅茨比率的倒数;以及,
所述强化学习模型包括依次连接的第一线性层、第一激活层、第二线性层、第二激活层和第三线性层。
8.一种区块链共识装置,其特征在于,包括:
节点选取单元,用于将区块链网络的多个节点分为验证层节点和计算层节点;其中,所述验证层节点预先维护请求队列;
区间确定单元,用于由所述验证层节点确定第一数值区间以及作为第一数值区间的子区间的第二数值区间;
计算单元,用于:当任一计算层节点计算出处在第一数值区间的待生产区块的哈希值时,由该计算层节点向所述验证层节点发出验证请求;其中,所述验证请求携带有所述哈希值,所述验证请求按照预设顺序排列在所述请求队列;
验证单元,用于:由所述验证层节点按照所述顺序对所述请求队列中的验证请求依次进行验证;在当前验证请求携带的哈希值处在第二数值区间时,指示验证通过,将发出所述当前验证请求的计算层节点确定为区块生产者。
9.一种电子设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的方法。
10.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310550599.5A CN116260828A (zh) | 2023-05-16 | 2023-05-16 | 一种区块链共识方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310550599.5A CN116260828A (zh) | 2023-05-16 | 2023-05-16 | 一种区块链共识方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116260828A true CN116260828A (zh) | 2023-06-13 |
Family
ID=86682950
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310550599.5A Pending CN116260828A (zh) | 2023-05-16 | 2023-05-16 | 一种区块链共识方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116260828A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108347483A (zh) * | 2018-02-06 | 2018-07-31 | 北京奇虎科技有限公司 | 基于双层网络的去中心化计算*** |
CN112102091A (zh) * | 2020-11-09 | 2020-12-18 | 南京可信区块链与算法经济研究院有限公司 | 一种基于双层链式架构的区块链激励方法 |
WO2022079431A1 (en) * | 2020-10-12 | 2022-04-21 | Cambridge Cryptographic Ltd | Block reward management in blockchain |
WO2022236406A1 (en) * | 2021-05-14 | 2022-11-17 | Dapper Labs, Inc. | Decentralized computation system based on node specialization |
-
2023
- 2023-05-16 CN CN202310550599.5A patent/CN116260828A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108347483A (zh) * | 2018-02-06 | 2018-07-31 | 北京奇虎科技有限公司 | 基于双层网络的去中心化计算*** |
WO2022079431A1 (en) * | 2020-10-12 | 2022-04-21 | Cambridge Cryptographic Ltd | Block reward management in blockchain |
CN112102091A (zh) * | 2020-11-09 | 2020-12-18 | 南京可信区块链与算法经济研究院有限公司 | 一种基于双层链式架构的区块链激励方法 |
WO2022236406A1 (en) * | 2021-05-14 | 2022-11-17 | Dapper Labs, Inc. | Decentralized computation system based on node specialization |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Segal | On the scalability of parallel UCT | |
CN111432014B (zh) | 一种区块链共识算法中主节点选取的方法和装置 | |
Fu | What you should know about simulation and derivatives | |
CN107403296A (zh) | 运力配置方法及装置 | |
CN110363661A (zh) | 银行流动性预测方法及装置 | |
JP2001357189A (ja) | 市場参入意思決定支援装置 | |
CN115396442A (zh) | 一种面向城市轨道交通的算力共享***及方法 | |
CN112333251A (zh) | 区块链共识的分布式电力交易代理节点选择方法及*** | |
CN114048515A (zh) | 一种基于联邦学习和区块链的医疗大数据共享方法 | |
Mishra et al. | Energy consumption–Bitcoin’s Achilles heel | |
CN104731709B (zh) | 一种基于jcudasa_bp算法的软件缺陷预测方法 | |
WO2020011010A1 (zh) | 一种算力交易方法及计算通道 | |
CN110599370A (zh) | 一种基于区块链的物业管理方法、装置和存储介质 | |
CN116260828A (zh) | 一种区块链共识方法和装置 | |
Zhao et al. | Design of trust blockchain consensus protocol based on node role classification | |
CN108596493A (zh) | 拆单式交易方法及装置 | |
Chan et al. | Forecasting online auctions via self‐exciting point processes | |
Zhou et al. | Data envelopment analysis models based on decentralized decision making | |
Li et al. | Simulation study on the security of consensus algorithms in DAG-based distributed ledger | |
Abbatemarco et al. | An econometric model to estimate the value of a cryptocurrency network. The Bitcoin case | |
CN108399170A (zh) | 数据挖掘方法以及装置 | |
Ma et al. | Fork probability analysis of PoUW consensus mechanism | |
Hu et al. | Layered exchange rate prediction model based on LSTM | |
JP5839662B2 (ja) | 納期達成条件自動検証システム | |
Jha et al. | The Study of the Issues Related to Orphan Blocks |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20230613 |
|
RJ01 | Rejection of invention patent application after publication |