CN116389040A - 基于信誉的区块链共识方法、装置和计算机设备 - Google Patents
基于信誉的区块链共识方法、装置和计算机设备 Download PDFInfo
- Publication number
- CN116389040A CN116389040A CN202310050815.XA CN202310050815A CN116389040A CN 116389040 A CN116389040 A CN 116389040A CN 202310050815 A CN202310050815 A CN 202310050815A CN 116389040 A CN116389040 A CN 116389040A
- Authority
- CN
- China
- Prior art keywords
- reputation
- consensus
- round
- node
- current
- 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 39
- 238000012937 correction Methods 0.000 claims abstract description 35
- 238000004364 calculation method Methods 0.000 claims abstract description 15
- 238000007477 logistic regression Methods 0.000 claims abstract description 15
- 230000006399 behavior Effects 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 17
- 230000006870 function Effects 0.000 claims description 16
- 230000001186 cumulative effect Effects 0.000 claims description 4
- 230000002159 abnormal effect Effects 0.000 claims description 3
- 238000009937 brining Methods 0.000 abstract description 5
- 238000004422 calculation algorithm Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000002360 preparation method Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000013475 authorization Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 229920006395 saturated elastomer Polymers 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000003698 anagen phase Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000012010 growth Effects 0.000 description 1
- 238000012417 linear regression Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000012795 verification Methods 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/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
-
- 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/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/102—Entity profiles
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/30—Decision processes by autonomous network management units using voting and bidding
-
- 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 Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Complex Calculations (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及区块链技术领域,提供了一种基于信誉的区块链共识方法、装置和计算机设备,所述方法包括:统计节点的历史共识投票信息,根据所述历史共识投票信息和恶意投票惩罚权重进行逻辑回归计算,得到所述节点的当前信任度;利用信誉修正阈值对所述节点的上一轮信誉值和所述当前信任度进行权重均衡,确定当前轮信誉值;根据各所述节点的所述当前轮信誉值进行当前轮的共识。采用本方法能够避免权益粉碎攻击、贿赂攻击以及Sybil攻击等而提高健壮性且保证去中心化特性。
Description
技术领域
本发明属于区块链技术领域,尤其涉及一种基于信誉的区块链共识方法。
背景技术
区块链技术也被称为分布式账本技术,可以解决不受信任的各方达成协议的问题。它具有去中心化、可追溯、匿名性、可审计性等特点。共识协议用于保证区块链网络中所有节点维护的数据副本的一致性,避免数据不统一和信息不对称问题的发生,是一种用于驱动区块链向前推进的算法。目前,区块链技术使用三种主流共识协议,包括PoW(Proof ofWork,工作量证明机制)协议,PoS(Proof of Stake,权益证明机制)协议和PBFT(PracticalByzantine Fault Tolerance,拜占庭容错协议)协议。其中,PoW协议通常被称为中本聪共识,共识内节点必须反复计算哈希值以达成共识。哈希值的计算使得在PoW中生成区块必须消耗算力,并且随着区块高度的增加,所消耗的算力也在增加,这就造成了不必要的浪费。此外,为了确保安全,PoW中的交易必须等待六个区块被确认,这大大降低了PoW协议的吞吐量。
PoS协议达成共识的核心原则是基于节点持有的股权而非PoW中的计算能力,已经被应用于PPCoin中,其能有效避免PoW共识中算力浪费的问题。但是,由于PPCoin使用币龄作为权重,所以即使节点没有连接到网络,硬币的“年龄”也会增加。如图1所示,节点J通过故意网络离线,积累了高达70%的权重。它允许节点J逐渐主导了共识,甚至决定了新区块的生成。也就是说,一个节点主导了区块链的记账,这不符合区块链的去中心化特性。衍生协议PoA将PoS与中本聪共识结合起来,使得只有在线节点才能获得采矿收入和交易费用。然而,这些协议都是依靠节点的权益来达成共识的,这不能保证区块链的稳健性。如图2所示,低权益的节点O可以尝试不同的利益相关者的序列(分叉)来最大化自身利益,因为分叉不消耗任何资源,这在区块链中被称为权益粉碎攻击。高权益的节点P则会不断贿赂其他节点,而一旦他们的股权达到50%以上,就可以控制整个区块链来发动双花攻击,这只要在贿赂金额小于商品交易价格的情况下总是有利可图,这在区块链中被称为贿赂攻击。另外还有一种随机选举竞争机制Follow-the-satoshi算法,它与PoS不同在于其使用安全的多方计算来保持领导人的不可预测性,但它假设了大多数参与联合炒币协议的节点在相当长的时间内不会被对手破坏。总的来说,上述基于PoS协议所衍生出来的几个协议都存在易遭受权益粉碎攻击、贿赂攻击、需要安全假设等问题。
而PBFT协议由BFT(拜占庭容错)协议改进而来,相比PoW协议和PoS协议来说,能够实现良好的容错性和出色的性能。但是在PBFT协议中,区块链中的节点是平等的,可以随意参与。因此就容易导致恶意节点可以创建任意数量的假名,如图3所示,然后就可以利用这些假名为自己的不正当利益投票(即双重消费),从而容易破坏网络的安全性,甚至控制整个网络***,这在区块链中被称为Sybil攻击。虽然已有人提出将中本聪共识与PoS或BFT协议结合,以及用BFT协议完全取代中本聪共识的方式来规避Sybil攻击。然而,所有这些协议都是基于节点最近的资源、股权或外部信任来实现共识,可能会潜在地在节点之间建立了不理想的等级制度,并损害了区块链***的去中心化。
发明内容
基于此,有必要针对上述技术问题,提供一种能够避免权益粉碎攻击、贿赂攻击以及Sybil攻击等而提高健壮性且保证去中心化特性的基于信誉的区块链共识方法、装置、计算机设备和存储介质。
本发明提供一种基于信誉的区块链共识方法,包括:
统计节点的历史共识投票信息,根据所述历史共识投票信息和恶意投票惩罚权重进行逻辑回归计算,得到所述节点的当前信任度;
利用信誉修正阈值对所述节点的上一轮信誉值和所述当前信任度进行权重均衡,确定当前轮信誉值;
根据各所述节点的所述当前轮信誉值进行当前轮的共识。
在其中一个实施例中,所述利用信誉修正阈值对所述节点的上一轮信誉值和所述当前信任度进行权重均衡,确定当前轮信誉值,包括:
计算所述当前信任度与所述上一轮信誉值的绝对值之差,根据所述绝对值之差和上一轮共识确定的累计偏差计算当前轮累计偏差;
根据所述绝对值之差和所述当前轮累计偏差计算信誉修正阈值;
利用信誉修正阈值对所述上一轮信誉值和所述当前信任度进行权重均衡,确定当前轮信誉值。
在其中一个实施例中,所述利用信誉修正阈值对所述节点的上一轮信誉值和所述当前信任度进行权重均衡,确定当前轮信誉值之前,还包括:
根据所述历史共识投票信息判断所述节点在历史共识投票中是否存在离线未投票行为;
当确定存在离线未投票行为时,保留所述当前信任度,当确定不存在离线未投票行为时,利用区块生成时间对所述当前信任度进行信誉消耗。
在其中一个实施例中,所述逻辑回归计算公式如下:
其中,repu(i)cur是当前信任度;n表示当前第n轮共识;μ是节点i累计参与的共识轮数;表示节点i在第x轮共识中是否正常参与投票,正常投票为1,未正常投票为0;τ x表示节点i在第x轮共识中是否恶意投票,恶意投票为1,未恶意投票为0;υ表示恶意投票惩罚权重;e为自然对数。
在其中一个实施例中,信誉消耗函数如下:
在其中一个实施例中,所述权重均衡的计算公式如下:
其中,t表示当前第t轮共识;repu(i)t表示第t轮共识的信誉值;repu(i)t-1表示第t-1轮的信誉值;γ表示信誉修正阈值,γ的初始值为1。
在其中一个实施例中,所述信誉修正阈值的计算公式如下:
其中,thershold为设置的阈值,thershold=0.25;c为定义参数,c=0.6;φ trepu(i)表示节点i的绝对值之差,ψ trepu(i)表示当前轮累计偏差,ψ t-1repu(i)表示上一轮共识确定的累计偏差。
一种基于信誉的区块链共识装置,包括:
信誉确定模块,用于统计节点的历史共识投票信息,根据所述历史共识投票信息和恶意投票惩罚权重进行逻辑回归计算,得到所述节点的当前信任度;
信誉修正模块,用于利用信誉修正阈值对所述节点的上一轮信誉值和所述当前信任度进行权重均衡,确定当前轮信誉值;
共识模块,用于根据各所述节点的所述当前轮信誉值进行当前轮的共识。
本发明还提供一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器存储由计算机程序,所述处理器执行所述计算机程序时实现上述基于信誉的区块链共识方法的步骤。
本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述基于信誉的区块链共识方法的步骤。
上述基于信誉的区块链共识方法、装置、计算机设备和存储介质,通过引入信誉作为共识节点的投票权重来达成共识,由于节点的总信誉不会改变,所以能够有效抵御Sybil攻击。并且,利用逻辑回归基于节点的行为动态更新节点的信誉,惩罚恶意节点以减少它们发起权益粉碎攻击和贿赂攻击的概率。同时,利用信誉修正阈值对信誉进行修正,使得信誉增长的非常缓慢,这就保证了区块链的去中心化性质。
附图说明
图1为一个实施例中币龄累积导致区块链节点权益中心化的示意图。
图2为一个实施例中低权益节点尝试分叉高权益节点执行贿赂的示意图。
图3为一个实施例中恶意节点实施Sybil攻击的示意图。
图4为一个实施例中基于信誉的区块链共识方法的流程示意图。
图5为一个实施例中在区块大小变化下,本发明共识协议与PBFT协议比对时延性能的曲线示意图。
图6为一个实施例中在区块大小变化下,本发明共识协议与PBFT协议比对吞吐量性能的曲线示意图。
图7为一个实施例中在节点数量变化下,本发明共识协议与PBFT协议比对时延性能的曲线示意图。
图8为一个实施例中在节点数量变化下,本发明共识协议与PBFT协议比对吞吐量性能的曲线示意图。
图9为一个实施例中基于信誉的区块链共识装置的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在一个实施例中,如图4所示,提供一种基于信誉的区块链共识方法,包括以下步骤:
步骤S101,统计节点的历史共识投票信息,根据历史共识投票信息和恶意投票惩罚权重进行逻辑回归计算,得到节点的当前信任度。
步骤S103,利用信誉修正阈值对节点的上一轮信誉值和当前信任度进行权重均衡,确定当前轮信誉值。
其中,历史共识投票信息是指节点在当前这一轮共识之前已经共识过的投票情况,包括每一轮共识中是否正常参与投票、每一轮共识中是否恶意投票等。恶意投票惩罚权重是对于恶意投票预设的惩罚权重,基于实际需求设置,恶意投票惩罚权重越大,对节点恶意投票的惩罚就越大。逻辑回归模型是研究二分法问题的主要常用模型,该模型描述了一组自变量与二元因变量之间的关系。它使用一个基于线性回归的sigmoid函数,使预测结果位于[0,1]区间内,本实施例通过建立逻辑回归模型来评估节点信誉的变化与它的共识行为能够实现信誉的动态授权。作为共识协议的一部分,该模型可以在参与共识的每个节点中执行。而信誉是独立计算的,信誉的计算由节点在执行共识时的行为决定,并且可以与共识信息同时广播。根据节点行为对区块共识结果的影响程度,本实施例将节点的行为分为以下三种类型:#good:正常接收和广播网络中的交易信息列表,并向其他节点发送相同的信息列表。#bad:正常接收和广播网络中的交易信息列表,并向其他节点发送不同的信息列表或自身伪造的信息列表。以及#offline:不接收和广播网络中的交易信息列表。由于节点在每一轮共识的行为不是固定的,所以本实施例信誉是一个动态变化的过程。在模型中,设定的信誉值R是0~1的实数,信誉值越大,可信度越高。对于***新添加的共识节点,其初始信誉值都设为 0.5。
信誉修正阈值是用于对信誉的增长速率进行修正而设定的阈值,通过信誉修正阈值使得节点的信誉值增长不会太快,避免在网络初期阶段的信誉中心化,由于刚开始并不知道节点是否有作恶倾向,所以初始时信誉修正阈值γ设为1。上一轮信誉值是节点在上一轮共识时的信誉,节点在第t轮共识开始时的信誉与第t-1轮共识结束时的信誉相等。当前轮信誉值就是最终确定的当前轮共识的信誉,当前信任度就是没有进行修正之前所确定的信誉。
具体的,首先利用历史共识投票信息和恶意投票惩罚权重等参数根据逻辑回归模型计算得到节点的当前信任度。然后利用信誉修正阈值对当前信任度和上一轮信誉值进行权重均衡得到修正后的信誉值作为该节点当前这一轮共识的信誉值,即当前轮信誉值,通过修正能够避免逻辑回归模型导致信誉值快速增长而破坏共识协议的稳定。
在一个实施例中,步骤S101, 基于逻辑回归模型的节点信誉度量函数的计算公式如下:
其中,repu(i)cur是当前信任度;n表示当前第n轮共识;μ是节点i累计参与的共识轮数,即轮长;表示节点i在第x轮共识中是否正常参与投票,正常投票为1,未正常投票为0;τ x表示节点i在第x轮共识中是否恶意投票,恶意投票为1,未恶意投票为0;υ表示恶意投票惩罚权重;e为自然对数。本实施例共识协议的运行从时间上被划分为一系列轮数,每一轮产生一个区块,执行相同的步骤。信誉则以每轮开始前的历史值进行计算,通过节点在每轮中的诚实签名和恶意签名行为的判别,进行动态的信任度授信。
在一个实施例中,步骤S103包括:计算当前信任度与上一轮信誉值的绝对值之差,根据绝对值之差和上一轮共识确定的累计偏差计算当前轮累计偏差;根据绝对值之差和当前轮累计偏差计算信誉修正阈值;利用信誉修正阈值对上一轮信誉值和当前信任度进行权重均衡,确定当前轮信誉值。
具体的,由于逻辑回归这样的模型在对数增长期节点的信誉值的增长是相当快的,从而无法惩罚共识前期故意表现好的恶意节点,不利于共识协议稳定的实施。因此,为了避免出现这种情况,本实施例进一步对模型进行了修正,根据节点的当前信誉和上一轮共识时的信誉,对在共识投票时的信誉进行权重均衡,修正后的信誉度量函数,即权重均衡的计算公式如下:
其中,t表示当前第t轮共识;repu(i)t表示第t轮共识的信誉值;repu(i)t-1表示第t-1轮的信誉值;γ表示信誉修正阈值,γ的初始值为1,通过γ可以对信誉的增加速率进行修正,使其增长不会太快,避免在网络初期阶段的信誉中心化。其中,信誉修正阈值γ的计算公式如下:
其中,thershold为设置的阈值,是为了防止γ过于饱和趋近于1而设置的阈值,本实施例优选thershold设置为0.25,可以防止γ过于饱和趋近于1的同时,也能让repu(i)t不会过分倚重一种当前信誉函数直接评价所得的信誉。c为定义参数,用于控制对节点的最近行为的反应权重。c越大,说明用户给予的最近的信誉偏差的权重比之前累计信誉偏差要高,本实施例优选c=0.6。φ trepu(i)则表示节点i当前信任度与上一轮信誉值的绝对值之差。ψ trepu(i)表示当前轮累计偏差,ψ t-1repu(i)表示上一轮共识确定的累计偏差,即节点前t轮最终的累计偏差。
在一个实施例中,在步骤S101之后步骤S103之前还包括:根据历史共识投票信息判断节点在历史共识投票中是否存在离线未投票行为;当确定存在离线未投票行为时,保留当前信任度,当确定不存在离线未投票行为时,利用区块生成时间对当前信任度进行信誉消耗。
其中,由于信誉是节点被选择成为委员会概率及共识投票权重的表现形式,信誉越大,参与生成区块的概率就越高,由此带来不菲的效益。为了保持网络中在线节点的数量,本实施例进一步引入信誉消耗函数。即,本实施例动态授予信誉的方法由信誉度量函数与信誉消耗函数两个函数组成。信誉消耗是为了保证节点的参与度而设置,而不是为了让节点以消耗信誉的方式参与区块的生成。因为当委员会中在线成员数量过少时,网络的安全与稳定就得不到保证。
具体的,节点的信誉消耗在对信誉进行修正之前进行,主要基于节点的历史投票情况来决定。当根据历史共识投票信息判断节点在历史共识投票中存在离线未投票行为时,则保留当前信任度不进行信誉消耗,而当确定不存在离线未投票行为时,利用区块生成时间对当前信任度进行信誉消耗。
在一个实施例中,信誉消耗函数如下:
其中,=0表示节点i在第x轮共识中离线未投票;e为自然对数;ΔB表示区块生成时间。提高区块生成时间,意味着区块上链的难度增加,这时候理性节点可能会选择暂时离线(#offline),以寻求上链难度更低、机会更大的时候参与区块生成。越来越多的节点开始离线,节点参与共识的比例也越来越低,恶意节点成功的概率就会变得很大。因此在区块生成时间增高的同时,也增大对于不参与区块生成的节点的信誉消耗,将有助于提高节点的参与度,维护区块链网络的运行安全。
步骤S105,根据各节点的当前轮信誉值进行当前轮的共识。
具体的,当得到个节点的当前轮信誉值后,在共识过程中即可以基于该信誉值进行当前轮的共识。应当理解的是,各个节点的当前轮信誉值可以在共识之前预先进行计算,也可以在共识过程中当需要用到时由各个节点进行实时计算。本实施例共识分为两个过程:主节点更新算法和改进的PBFT共识算法。
主节点更新算法是根据节点的信誉进行主节点的替换。假设节点的信誉值越高,则在主节点更新过程中被选为主节点的概率就越高,比如:。其中,N是共识节点的集合,N={N1 , N2 ,... NQ }。在每一轮的共识中,有一个主要的主节点Np,其他节点为备份节点。所有的共识节点首先在本地缓存收到的交易信息。而Np将客户端发送的有效交易打包成一个区块。每个节点都会维护一个更新的节点信息表NIL。NIL包含了当前区块链***中的相邻节点的集合与该节点的信息、信誉(对应于投票权重)以及节点ID,节点的初始信誉为0.5。P是被选为主节点的概率。D是指数分布(C2C网络和大多数社会网络中的信誉分布网络中的声誉分布是指数型)。主节点更新主要在副本节点怀疑主节点或主节点在共识开始后的设置时间内没有发起共识提议时进行,副本节点选择当前节点中信誉值最大的节点作为主节点,并向其他节点广播主节点变更消息。而节点收到主节点变更消息后,计算收到的消息数量是否超过2f(f为拜占庭节点数量),超过后即对主节点进行更新。
在改进的PBFT共识算法中,本实施例基于每个共识节点所提供的信息列表NIL评估每个节点的信誉值,这不仅可以检测出其中的恶意节点,还可以从NIL中删除这些节点。而因为对于恶意节点高的惩罚,诚实节点的信誉将会逐渐积累起来,从而使得在共识过程中的发言权将逐渐增加,进而恶意节点的影响将逐渐减少。本实施例改进的PBFT算法如下:
输入:交易Tx。
输出:包含交易Tx的新区块Bn。
步骤1:客户端c:广播交易簇TxCluster到主节点0。
步骤2:主节点0:验证交易簇内交易Tx是否有效,若无效直接将其删除。然后将有效交易打包到区块中,并根据区块体内的消息生成区块头Bhead 。
步骤3:主节点0:广播预准备(pre-prepare)消息到各副本节点,内容为,其中h是当前新区块的高度,d是区块头Bhead的摘要,t是当前的时间戳,D0是当前主节点0的ID,NIL0是主节点0的节点信息列表。
步骤7:副本节点1,2:完成提交状态后,更新本地共识节点信息列表,并将共识结果反馈给客户端,以便为下一轮的共识过程做准备。
另外,本实施例节点更新其共识状态的条件是共识节点向其发送消息的信誉值R足够大。R应不低于设定的阈值Rthershold,阈值Rthershold的计算公式如下:
由此可知,本实施例改进的PBFT共识算法的共识过程分为四个主要阶段:预准备、准备、预提交和提交。通过在共识协议中增加了一个预提交阶段,这不仅能够保证各节点正确达成共识,同时还能提高性能。
与现有技术相比较,上述基于信誉的区块链共识方法具有以下优点:
抵御Sybil攻击:通过引入信誉作为共识节点的投票权重来达成共识,由于这些节点的总信誉不会改变,所以恶意节点无法创造大量假节点提高影响力来破坏网络安全,从而能够有效避免Sybil攻击。
避免权益粉碎攻击和贿赂攻击:由于惩罚权重的存在恶意节点无法承担高额的信誉惩罚。比如在第一轮共识中,一个节点在投出恶意票后的信誉只有其投出诚实票的36%。而且信誉惩罚随着共识轮数的增加会迅速上升,这种惩罚力度的存在对任何理性的节点来说都是不可接受的,从而能够减少它们发起权益粉碎攻击和贿赂攻击的概率达到避免攻击。
保证去中心化性质:通过信誉修正阈值进行修正,使得信誉增长非常缓慢,而且信誉位于0~1之间有一个上限,这就保证了区块链的去中心化性质。
低通信开销:在节点共识过程中增加了节点信誉的动态授权,并在节点共识的过程中增加了预提交阶段,虽然本发明的时间复杂度仍为O(N2),但是总通信量为(n2+2n-3),相比PBFT的通信总数(2n2-n-1)来说本发明节点间的通信数量减少了。
另外,上述基于信誉的区块链共识方法还具备高性能优点。如图5、图6、图7和图8所示,提供了本发明共识协议(以下称为RIPPB)与传统PBFT协议的性能实验结果示意图。
参考图5和图6,其为节点数量固定为20个,通过改变区块大小来比对时延和吞吐量等性能的曲线示意图。可以发现,RIPPB和PBFT的延迟(Latency)随着块大小的增加而显著增加,但是RIPPB的增长率比PBFT的增长率低30%。另外,区块大小的增加意味着区块内交易数量的增加,这就增加了PBFT和RIPPB协议的吞吐量(TPS),显然RIPPB的吞吐量高于PBFT。然而,因为网络容量的限制,当区块大小接近或超过4M时,吞吐量的增长速度都明显变慢。
参考图7和图8,其为区块大小固定为1/8MB,通过改变节点数量来比对时延和吞吐量等性能的曲线示意图。可以发现,与PBFT协议相比,RIPPB协议大大减少了由共识节点生成区块的延迟。而且共识节点的块生成的延迟的减少随着共识节点数量的增加而更加明显。与PBFT相比协议相比,RIPPB的吞吐量全面提高,最高达到28%,吞吐量的下降速度随着共识节点数量增加而减慢。
在一个实施例中,如图9所示,提供一种基于信誉的区块链共识装置,包括:
信誉确定模块901,用于统计节点的历史共识投票信息,根据历史共识投票信息和恶意投票惩罚权重进行逻辑回归计算,得到节点的当前信任度。
信誉修正模块903,用于利用信誉修正阈值对节点的上一轮信誉值和当前信任度进行权重均衡,确定当前轮信誉值。
共识模块905,用于根据各节点的当前轮信誉值进行当前轮的共识。
在一个实施例中,信誉修正模块903还用于计算当前信任度与上一轮信誉值的绝对值之差,根据绝对值之差和上一轮共识确定的累计偏差计算当前轮累计偏差;根据绝对值之差和当前轮累计偏差计算信誉修正阈值;利用信誉修正阈值对上一轮信誉值和当前信任度进行权重均衡,确定当前轮信誉值。
在一个实施例中,还包括信誉消耗模块,用于根据历史共识投票信息判断节点在历史共识投票中是否存在离线未投票行为;当确定存在离线未投票行为时,保留当前信任度,当确定不存在离线未投票行为时,利用区块生成时间对当前信任度进行信誉消耗。
关于基于信誉的区块链共识装置的具体限定可以参见上文中对于基于信誉的区块链共识方法的限定,在此不再赘述。上述基于信誉的区块链共识装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个基于信誉的区块链共识方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。
在一个实施例中,提供一种计算机设备,该计算机设备可以是服务器,包括处理器,存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***和计算机程序。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于信誉的区块链共识方法。示例性的,计算机程序可以被分割成一个或多个模块,一个或者多个模块被存储在存储器中,并由处理器执行以完成本发明。一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序在计算机装置中的执行过程。所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器 (Digital Signal Processor,DSP)、专用集成电路 (Application SpecificIntegrated Circuit,ASIC)、现成可编程门阵列 (Field-Programmable Gate Array,FPGA) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述计算机装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card, SMC),安全数字(Secure Digital, SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种基于信誉的区块链共识方法,其特征在于,包括:
统计节点的历史共识投票信息,根据所述历史共识投票信息和恶意投票惩罚权重进行逻辑回归计算,得到所述节点的当前信任度;
利用信誉修正阈值对所述节点的上一轮信誉值和所述当前信任度进行权重均衡,确定当前轮信誉值;
根据各所述节点的所述当前轮信誉值进行当前轮的共识。
2.根据权利要求1所述的方法,其特征在于,所述利用信誉修正阈值对所述节点的上一轮信誉值和所述当前信任度进行权重均衡,确定当前轮信誉值,包括:
计算所述当前信任度与所述上一轮信誉值的绝对值之差,根据所述绝对值之差和上一轮共识确定的累计偏差计算当前轮累计偏差;
根据所述绝对值之差和所述当前轮累计偏差计算信誉修正阈值;
利用信誉修正阈值对所述上一轮信誉值和所述当前信任度进行权重均衡,确定当前轮信誉值。
3.根据权利要求1或2所述的方法,其特征在于,所述利用信誉修正阈值对所述节点的上一轮信誉值和所述当前信任度进行权重均衡,确定当前轮信誉值之前,还包括:
根据所述历史共识投票信息判断所述节点在历史共识投票中是否存在离线未投票行为;
当确定存在离线未投票行为时,保留所述当前信任度,当确定不存在离线未投票行为时,利用区块生成时间对所述当前信任度进行信誉消耗。
8.一种基于信誉的区块链共识装置,其特征在于,包括:
信誉确定模块,用于统计节点的历史共识投票信息,根据所述历史共识投票信息和恶意投票惩罚权重进行逻辑回归计算,得到所述节点的当前信任度;
信誉修正模块,用于利用信誉修正阈值对所述节点的上一轮信誉值和所述当前信任度进行权重均衡,确定当前轮信誉值;
共识模块,用于根据各所述节点的所述当前轮信誉值进行当前轮的共识。
9.一种计算机设备,包括处理器和存储器,所述存储器存储有计算机程序,其特征在于,所述处理器用于执行所述计算机程序时实现权利要求1-7中任意一项所述的信誉的区块链共识方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7中任意一项所述的信誉的区块链共识方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310050815.XA CN116389040A (zh) | 2023-02-01 | 2023-02-01 | 基于信誉的区块链共识方法、装置和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310050815.XA CN116389040A (zh) | 2023-02-01 | 2023-02-01 | 基于信誉的区块链共识方法、装置和计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116389040A true CN116389040A (zh) | 2023-07-04 |
Family
ID=86979472
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310050815.XA Pending CN116389040A (zh) | 2023-02-01 | 2023-02-01 | 基于信誉的区块链共识方法、装置和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116389040A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116709341A (zh) * | 2023-07-31 | 2023-09-05 | 中国人民解放军军事科学院***工程研究院 | 针对无人蜂群的实用拜占庭容错共识算法优化方法及*** |
-
2023
- 2023-02-01 CN CN202310050815.XA patent/CN116389040A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116709341A (zh) * | 2023-07-31 | 2023-09-05 | 中国人民解放军军事科学院***工程研究院 | 针对无人蜂群的实用拜占庭容错共识算法优化方法及*** |
CN116709341B (zh) * | 2023-07-31 | 2024-04-30 | 中国人民解放军军事科学院***工程研究院 | 针对无人蜂群的实用拜占庭容错共识算法优化方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10355869B2 (en) | Private blockchain transaction management and termination | |
Sompolinsky et al. | Phantom | |
CN111131209B (zh) | 一种改进的高效共识方法、***、计算机设备及存储介质 | |
EP3399448B1 (en) | Methods and apparatus for a distributed database within a network | |
US20210014042A1 (en) | Lightweight Blockchain Based on Split-Trust | |
CN112073483B (zh) | 基于信誉与委员会背书机制的权威证明共识方法及*** | |
US11729001B2 (en) | Distributed proof-of-work for sharded or parallel blockchains | |
CN112468302A (zh) | 基于可验证多方秘密分享的可编辑区块链 | |
CN112163856A (zh) | 用于区块链与物联网融合场景的共识方法及*** | |
US11275564B2 (en) | Decentralized random number generator | |
CN109743182B (zh) | 基于区块链的智能合约核准方法及*** | |
Wang et al. | Beh-Raft-Chain: a behavior-based fast blockchain protocol for complex networks | |
CN116389040A (zh) | 基于信誉的区块链共识方法、装置和计算机设备 | |
CN112651830A (zh) | 应用于电力资源共享网络的区块链共识方法 | |
Aluko et al. | Proof-of-reputation: an alternative consensus mechanism for blockchain systems | |
Hentschel et al. | Flow: Separating Consensus and Compute--Block Formation and Execution | |
CN115499379A (zh) | 一种基于区块链的信息交互方法、装置、设备及介质 | |
CN117527834A (zh) | 一种基于信誉评分机制的改进pbft共识方法 | |
Xu et al. | A blockchain-based federated learning scheme for data sharing in industrial internet of things | |
CN113420323B (zh) | 数据共享方法及终端设备 | |
CN111970370B (zh) | 基于面向通信设备体系的多层区块链协议拓展***及方法 | |
CN115378788B (zh) | 基于分层共识和强化学习的区块链性能自适应优化方法 | |
CN116015672B (zh) | 一种基于信誉模型的pbft共识机制 | |
CN114861233B (zh) | 一种无需可信第三方的分片异步拜占庭容错共识方法和装置 | |
CN116614519A (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 |