CN116074310A - 基于环签名的改进的委托权益证明的区块链共识方法 - Google Patents
基于环签名的改进的委托权益证明的区块链共识方法 Download PDFInfo
- Publication number
- CN116074310A CN116074310A CN202211235100.3A CN202211235100A CN116074310A CN 116074310 A CN116074310 A CN 116074310A CN 202211235100 A CN202211235100 A CN 202211235100A CN 116074310 A CN116074310 A CN 116074310A
- Authority
- CN
- China
- Prior art keywords
- node
- block
- nodes
- consensus
- malicious
- 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
- 238000000034 method Methods 0.000 title claims abstract description 33
- 238000012795 verification Methods 0.000 claims description 11
- 238000005065 mining Methods 0.000 claims description 2
- 230000007246 mechanism Effects 0.000 abstract description 16
- 238000005516 engineering process Methods 0.000 abstract description 5
- 238000005265 energy consumption Methods 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000007726 management method 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
- 238000012550 audit Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000006227 byproduct Substances 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 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
-
- 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
-
- 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/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
-
- 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/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3255—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using group based signatures, e.g. ring or threshold signatures
-
- 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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本发明请求保护一种基于环签名的改进的委托权益证明的区块链共识方法,属于区块链技术领域,其包括以下步骤:步骤1、共识节点的选取步骤;步骤2、共识达成步骤;步骤3、恶意节点处罚步骤。此共识方法结合了工作量证明共识机制,但能耗远比工作量共识机制要小的多,每个节点不需要像工作量证明共识机制一样,需要不停的竞争记账权。同时在达成公式的投票阶段使用环签名来对区块生成者的身份进行加密,见证者节点并不知道区块生成节点的具体身份,使其见证者节点不能合伙作恶。增加了匿名性与安全性。
Description
技术领域
本发明属于计算机与互联网领域,是一种基于环签名改进的委托权益证明的区块链共识机制。改善了原有共识机制高能耗与低安全性的问题,有利于提高区块链的性能。
背景技术
分布式账本主要指的是交易的账本不是保存在一个地方,而是分布在许多个节点,每个节点都保存完整的账本,各个节点之间可以监督交易的合法性,也可以验证交易的合法性。区块链分布式存储的独特性在于所有的节点都有完整的账本,所有不像传统的分布式存储一样,要向特性的中心节点备份数据。
链式结构,区块链采用链表式数据结构,区块由区块头和区块体组成,所有的区块根据散列值形成一条链状结构,这些区块一起就构成了区块链的分布式账本。其中每个区块的散列值由区块内的交易数据散列构成Makle树(默克尔树)的根和上一个区块的散列值再散列构成,所以任何交易数据的变动不但会影响本区块而且会相继影响后面的区块,从而可以防止数据的篡改。
环签名是一种简化的群签名,环签名中只有环成员没有管理者,不需要环成员间的合作,签名者利用自己的私钥和集合中其他成员的公钥就能独立的进行签名,集合中的其他成员可能不知道自己被包含在其中。环签名的优势除了能够对前者进行无条件匿名外,环中的其他成员也不能伪造真实的签名者签名。环签名在强调匿名性的同时,增加了审计监管的难度。
智能合约是基于这些可信的不可篡改的数据,可以自动化的执行一些预先定义好的规则和条款。以保险为例,如果说每个人的信息(包括医疗信息和风险发生的信息)都是真实可信的,那就很容易的在一些标准化的保险产品中,去进行自动化的理赔。在保险公司的日常业务中,虽然交易不像银行和证券行业那样频繁,但是对可信数据的依赖是有增无减。因此,笔者认为利用区块链技术,从数据管理的角度切入,能够有效地帮助保险公司提高风险管理能力。具体来讲主要分投保人风险管理和保险公司的风险监督。
CN112003820A,一种基于环签名和聚合签名的区块链共识优化方法,系统里的任意节点向区块链网络进行广播交易数据并附上签名;聚合签名者通过聚合签名算法得到聚合签名;所有记账节点均独立监听全网的交易数据,并将其记录在内存中;共识主节点对等待共识的提议发起共识提议,当任意共识丛节点收到s条议案后与s条议案发送者的聚合节点生成环签名;共识丛节点对s议案进行交易验证向全网广播;任意共识节点在收到正常的共识丛节点的环签名并验证后达成共识并发布新的区块,普通节点同步账本信息;任意共识节点在收到新的区块后,将包含的交易从内存中删除,进行下一轮共识。该专利中,委托权益证明共识机制的弊端就是权利的高度集中化,会导致贫富差距加剧,普通节点很少可以获得区块生成的权利,基于环签名的改进的委托权益证明的区块链共识方法中,普通节点可以在共识节点选取阶段竞争成为共识节点。委托权益证明共识机制的弊端另一个弊端是主节点之间容易存在伙同作弊的情况,基于环签名的改进的委托权益证明的区块链共识方法中,在共识阶段使用环签名进行了匿名处理,共识的主节点之间互相不知道对方的身份,不存在伙同作弊的情况。
发明内容
本发明旨在解决以上现有技术的问题。提出了一种基于环签名的改进的委托权益证明的区块链共识方法。本发明的技术方案如下:
一种基于环签名的改进的委托权益证明的区块链共识方法,其包括以下步骤:
步骤1、共识节点的选取步骤;用于选出共识达成步骤中的投票节点与区块生成节点。
步骤2、共识达成步骤;用于生成新区块,并且对新区块进行验证与投票。
步骤3、恶意节点处罚步骤;用于处罚恶意节点。
进一步的,所述步骤1共识节点的选取步骤具体包括:
(1.1)区块链系统广播选举消息;
(1.2)节点计算自己的Diffvalue值;Diffvalue表示根据基础难度值计算出的符合要求的难度值。
(1.3)节点回应选举消息;
(1.4)系统监管者筛选选举消息;
(1.5)系统监管者选取见证者与候选者。
进一步的,所述步骤(1.1)区块链系统广播选举消息,具体包括:
区块链系统向整个网络中的每个节点广播消息<nonce、D>
节点Ni收到消息<nonce,D>后,从区块链中获取上一个区块头PreBlockHead,计算HASH(HASH(PreBlockHead),nonce)作为自己的Diffvalue发送给系统监管者;D表示系统设置的难度值,难度与工作量证明相比可以设置的小一些,但不能不设置难度值。
进一步的,所述步骤(1.2)节点计算Diffvalue值,具体包括:
Diffvalue=HASH(HASH(PreBlockHead),nonce)
进一步的,所述步骤(1.3)节点回应选举消息,具体包括:
节点Ni观察比较公式Diffvalue<D的值,如果该值为假,则重复步骤(1.2),如果这是真的,那么将<Diffvalue,Ni>发给系统监管者。
进一步的,所述步骤(1.4)系统监管者筛选选举消息,具体包括:
系统监管者解密后剔除状态为ERROR的块后按照接收到选举消息的时间排序,选取前201个节点,并返回其标志位;
所述步骤(1.5)系统监管者选取见证者与候选者,具体包括:
前一百个节点为见证者节点,对其赋予第几轮次共识生成节点的权利,然后将节点Ni分配到见证者节点集合NC中,集合NC中的节点作为一个社区来进行共识。101-201节点为候选者节点,然后将节点Ni分配到一致节点集合NA中此类节点作为见证者节点的候补节点。
进一步的,所述步骤2共识达成步骤具体包括:
系统监管者向区块见证者节点发送环签名的公钥集PKSet,与私钥SKc Rsign;
(2.1)每一个见证者节点都收集上一个块生成到目前的交易,并生成MekleTree;
(2.2)区块生成者节点生成区块表达式;
(2.3)区块生成者节点广播新区块信息;
(2.4)见证者节点根据新区块信息进行投票;
(2.5)见证者节点生成投票信息;
(2.6)区块生成者节点统计投票信息,并广播结果;若不同意该新区块进入恶意节点处罚阶段。
进一步的,所述步骤(2.1)-(2.6)具体为:
每一个见证者节点都收集上一个块生成到目前的交易,并生成MakleTree;
(2.1)排名第一的节点生成块的表达式
Block=<<NORMAL,HASH(PreBlock),MekleTreeRoot,Time,D,Diffvalue,>,txs>,Time表示时间,txs表示最近交易。
用SKRsign对其进行匿名环签名,然后在区块见证者之间广播,NORMAL代表该块的状态是默认的;如果该块达成了共识,该块的状态变为Good;其他的区块都会在此区块的后面挖掘新的区块,如果区块的状态为ERROR,那就说明没有达成共识,进入恶意节点处罚阶段后,重新进行共识;
(2.2)排名第一的节点使用环签名FRsign(PKSet,SKc Rsign,order)对order值进行加密,输出环签名σc Rsign并生成广播消息,PKSet是环签名的公钥;σc Rsign表示排名第一的节点的环签名。
messc=(σc Rsign,Time,D,order,MekleTreeRoot,PKSet),
(2.3)其他见证者节点收到广播消息,选取最小order的进行验证签名的合法性,FRsign·verify(PKSet,order,σc Rsign),如果正确则证明广播消息确实来自于排名第一的节点。FRsign·verify表示环签名验证。
(2.4)每个见证者节点将收到的MekleTreeRoot与自己生成的验证MekleTreeRootverify相比较,如果相同,投赞成票,如果不同,投反对票;见证节点Nc i用私钥加密投票信息;
(2.5)区块生成者接受到广播消息后比较order值,如果与自身order值相同则用解密该消息,然后统计票数.
countagree=∑voteagree,countdisagree=∑votedisagree
countagree、countdisagree分别表示同意的票数与不同意的票数。
若countagree<countdisagree,说明大部分见证者节点不同意该区域块的生成,则节点广播消息;
BlockERROR<<ERROR,HASH(PreBlock),MekleTreeRoot,Time,D,Diffvalue,>,txs>
(2.6)所有的共识节点收到BlockERROR,后,区块生成节点被视作恶意节点,进入恶意节点处罚阶段;
(2.7)进入恶意节点处罚阶段;
(2.8)恶意节点处罚阶段结束后,重新进行共识阶段;
(2.9)若同意该新区块,系统监管者验证新区块。
(2.10)区块生成节点见证者节点集合;
(2.11)系统监管者补全见证者集合与候选者集合。
进一步的,所述步骤(3)恶意节点处罚阶段具体包括:
(3.1)系统监管者终止共识阶段;
(3.2)系统监管者检查恶意操作;
(3.3)对恶意节点进行处罚;
(3.4)系统监管者补全见证者集合;
(3.5)系统监管者补全候选者集合;
(3.6)重新启动共识阶段。
进一步的,所述步骤(3.1)-(3.6)具体包括以下步骤:
(3.1)系统监管者终止共识阶段;
(3.2)监管者收集所有的恶意节点的投票信息,并用其公钥解密该消息,验证该节点确实进行了恶意操作;
(3.3)将恶意节点的信息全网广播,并设置其不能参加此后的7日内公式节点的选取,并对其进行罚款操作;所以说如果恶意节点作恶,那么将收到极其严重的惩罚;节点被视作恶意节点处罚后,7日内不能竞争共识节点,只能作为普通的交易节点;
(3.4)若总共有m个恶意节点,系统监管者将m个作恶节点剔除出见证者节点集合,然后选取候选者节点的前m个节点,进入见证者节点集合;系统监管者对见证者集合重新排序,并对各个节点返回其顺序标识;
(3.5)系统监管者进行公式节点选取阶段,选取前m名进入候补队列,其他节点依旧是普通节点标志位返回T;
(3.6)进行完如上操作,系统监管者重新启动共识阶段。
本发明的优点及有益效果如下:
本发明设计了一种基于环签名改进的委托权益证明的区块链共识机制,此共识机制结合了工作量证明共识机制,但能耗远比工作量共识机制要小的多,每个节点不需要像工作量证明共识机制一样,每个节点需要不停的竞争记账权。委托权益证明共识机制的弊端就是权利的高度集中化,会导致贫富差距加剧,普通节点很少可以获得区块生成的权利,为了解决这个问题,本发明设计了一种共识节点的选取方法,所有的节点都可以竞争成为共识节点,就算不能成为下一轮的区块生成者节点,也有几率加入到见证者集合与候选者集合中,在以后成为区块生成者节点。
在原有的委托权益证明共识机制中,共识节点都知道对方的身份,存在伙同作弊的情况,为了使共识节点之间不能进行伙同作弊,本发明在达成共识的投票阶段使用环签名来对区块生成者的身份进行加密,见证者节点并不知道区块生成节点的具体身份,使其见证者节点不能合伙作恶,增加了匿名性与安全性。
附图说明
图1是本发明提供优选实施例三个阶段的示意图;
图2为共识节点选取的示意图;
图3为共识阶段的示意图;
图4为恶意节点处罚的示意图;
图5为本方法所用到的一些符号的说明。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、详细地描述。所描述的实施例仅仅是本发明的一部分实施例。
本发明解决上述技术问题的技术方案是:
一种基于环签名改进的委托权益证明的区块链共识机制,其特征在于,包括以下几个步骤:共识节点选取、共识与恶意节点处罚这三个阶段,三个阶段的关系如图1所示。
(1)共识节点选取,如图2所示,其过程如下:
(1.1)区块链系统向整个网络中的每个节点广播消息<nonce、D>,nonce是基础难度值,D是符合要求的难度值,难度与工作量证明相比可以设置的小一些,但不能不设置难度值。
(1.2)节点Ni收到消息<nonce,D>后,从区块链中获取上一个区块头PreBlockHead,计算HASH(HASH(PreBlockHead),nonce)作为自己的Diffvalue。
(1.3)节点Ni观察比较Diffvalue<D的值,如果该值为假,则重复步骤2。如果这是真的,那么将<Diffvalue,Ni>发给系统监管者
(1.4)系统监管者解密后剔除状态为ERROR的块后根据接收到<Diffvalue,Ni>的时间排序,选取前201个节点,并返回其标志位。
(1.5)前一百个节点为见证者节点,对其返回排序值order与排名,作为其拥有第几轮生成新节点的权利。然后将节点Ni分配到见证者节点集合NC中,集合NC中的节点作为一个社区来进行共识。例如其order排名为10,此节点拥有共识开始后的第10个新节点的记账权,还拥有前9轮共识的投票权,当此节点在第10轮生成新节点后,此节点将退出见证者节点集合,作为普通节点。见证者节点集合中的每个节点的排序值order是不连续的,例如{3,7,10,19,20,35....},这样可以防止恶意节点假冒区块生成者节点。每个节点都知道自己的order与排名,但不知道其他节点的order。排名为101-201的节点为候选者节点,然后将节点Ni分配到一致节点集合NA中此类节点作为见证者节点的候补节点,当见证者节点作恶被处罚后,候补节点可以递补成见证者节,为候选者返回C;其他的节点为普通交易节点,只能进行普通节点的转账,对其返回T(见证者节点与候选者的数量可以依据情况设定,此处的数量用来举例说明)。
(2)共识阶段,如图3所示,其过程如下:
系统监管者向区块见证者节点发送环签名的公钥集PKSet,与私钥SKc Rsign。
(2.1)每一个见证者节点都收集上一个块生成到目前的交易,并生成MakleTree。
(2.2)排名第一的节点生成块的表达式
Block=<<NORMAL,HASH(PreBlock),MekleTreeRoot,Time,D,Diffvalue,>,txs>,
Time表示时间,txs表示最近交易。
用SKRsign对其进行匿名环签名,然后在区块见证者之间广播,NORMAL代表该块的状态是默认的。如果该块达成了共识,该块的状态变为Good。其他的区块都会在此区块的后面挖掘新的区块,如果区块的状态为ERROR,那就说明没有达成共识,进入恶意节点处罚阶段后,重新进行共识。
(2.3)排名第一的节点使用环签名FRsign(PKSet,SKc Rsign,order)对其身份进行加密,输出环签名σc Rsign并生成广播消息,PKSet是环签名的公钥集。order是监管者设置见证者集合中节点的不连续的顺序值。
messc=(σc Rsign,Time,D,order,MekleTreeRoot,PKSet),
(2.4)其他见证者节点收到广播消息,验证签名的合法性,FRsign·verify(PKSet,order,σc Rsign),如果正确则证明广播消息确实来自于排名第一的节点,验证错误不对其进行投票。
(2.5)每个见证者节点将收到的MekleTreeRoot与自己生成的验证MekleTreeRootverify相比较。如果相同,投赞成票,如果不同,投反对票。见证节点Nc i用私钥加密投票信息
(2.6)区块生成者接受到广播消息后检查广播消息,如果order与自己的顺序值相同,则用解密该消息。然后统计票数。
countagree=∑voteagree,countdisagree=∑votedisagree
若countagree<countdisagree,说明大部分见证者节点不同意该区域块的生成,则节点广播消息
BlockERROR=<<ERROR,HASH(PreBlock),MekleTreeRoot,Time,D,Diffvalue,>,txs>
(2.7)所有的节点收到BlockERROR,后,区块生成节点被视作恶意节点,进入恶意节点处罚阶段。
(2.8)恶意节点处罚阶段结束后,重新进行共识阶段。
(2.9)若countagree>countdisagree,向系统监管者提交新区块。系统监管者进行验证,系统监管者验证失败后,将区块生成节点视为恶意节点,进入恶意节点处罚阶段。如果系统监管者验证成功,将其状态为设置为Good,向全部的网络节点广播新区块
Block=<<Good,HASH(PreBlock),MekleTreeRoot,Time,D,Diffvalue,>,txs>。
区块生成者得到系统的新生成区块奖励。并向投赞成票的节点发放奖励,并向系统监管者发送不赞成的节点的信息,将不投赞成票的节点视为恶意节点。
(2.10)节点生成新节点后,区块生成节点退出见证者节点集合。
(2.11)系统监管者从候选者集合NA中选取第一个候补节点进入见证者节点集合NC。重新执行共识节点选取,选取一个节点进入候选者集合NA
(3)恶意节点处罚阶段,如图4所示,其过程如下:
(3.1)系统监管者终止共识阶段
(3.2)监管者收集所有的恶意节点的投票信息,并用其公钥解密该消息,验证该节点确实进行了恶意操作。
(3.3)将恶意节点的信息全网广播,并设置其不能参加此后的7日内公式节点的选取,并对其进行罚款操作。所以说如果恶意节点作恶,那么将收到极其严重的惩罚。节点被视作恶意节点处罚后,7日内不能竞争共识节点,只能作为普通的交易节点。
(3.4)若总共有m个恶意节点,系统监管者将m个作恶节点剔除出见证者节点集合,然后选取候选者节点的前m个节点,进入见证者节点集合。系统监管者对见证者集合重新排序,并对各个节点返回其顺序标识
(3.5)系统监管者进行公式节点选取阶段,选取前m名进入候补队列,其他节点依旧是普通节点标志位返回T。
(3.6)进行完如上操作,系统监管者重新启动共识阶段
区块链是一种按照时间顺序来将数据区块顺序相连组合而成的链式数据结构,并且以密码学方式保证数据区块不可篡改和不可伪造。区块链中的每个区块通过包括该区块链中紧接其之前的前一个区块的加密散列而链接到该前一个区块。每个区块还包括时间戳、该区块的加密哈希以及一个或多个交易。对已经被区块链网络的节点验证的交易进行哈希处理并形成Merkle树。在Merkle树中,对叶节点处的数据进行哈希处理,并且针对Merkle树的每个分支,在该分支的根处级联该分支的所有哈希值。针对Merkle树执行上述处理,直到整个Merkle树的根节点。Merkle树的根节点存储代表该Merkle树中的所有数据的哈希值。当一个哈希值声称是Merkle树中存储的交易时,可以通过判断该哈希值是否与Merkle树的结构一致来进行快速验证。
区块链网络是用于管理、更新和维护一个或多个区块链结构的计算节点网络。在本说明书中,区块链网络可以包括公有区块链网络、私有区块链网络或联盟区块链网络。
在公有区块链网络中,共识过程由共识网络的节点控制。例如,在公有区块链网络中可以存在成千上万个实体协作处理,每个实体操作该公有区块链网络中的至少一个节点。因此,公有区块链网络可以被认为是参与实体的公有网络。在一些示例中,大多数实体(节点)必须按序对每个区块进行签名,并且将签名后的区块添加到区块链网络的区块链中。公有区块链网络的示例可以包括特定对等支付网络。
公有区块链网络支持公有交易。公有交易在公有区块链网络内的所有节点之间共享,并且存储在全局区块链中。全局区块链是指跨所有节点复制的区块链。为了达成共识(例如,同意向区块链添加区块),在公有区块链网络内实现共识协议。共识协议的示例包括但不限于:工作量证明(POW,proof-of-work),权益证明(POS,proof-of-stake)和权威证明(POA,proof-of-authority)。
私有区块链网络被提供来用于特定实体。私有区块链网络中的各个节点的读写权限被严格控制。因此,私有区块链网络通常也称为许可网络,其对允许谁参与网络以及的网络参与水平(例如,仅在某些交易情形下)进行限制。在私有区块链网络中,可以使用各种类型的访问控制机制(例如,现有参与方对添加新实体进行投票,监管机构控制许可等)。
联盟区块链网络在参与实体之间是私有的。在联盟区块链网络中,共识过程由授权节点控制。例如,由若干个(例如,10个)实体(例如,金融机构,保险公司)组成的联盟可以操作联盟区块链网络,每个实体操作该联盟区块链网络中的至少一个节点。因此,联盟区块链网络可以被认为是参与实体的私有网络。在一些示例中,每个参与实体(节点)必须按序对每个区块进行签名,并将该区块添加到区块链。在一些示例中,可以由参与实体(节点)的子集(例如,至少7个实体)来对每个区块进行签名,并将该区块添加到区块链。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范围。在阅读了本发明的记载的内容之后,技术人员可以对本发明作各种改动或修改,这些等效变化和修饰同样落入本发明权利要求所限定的范围。
Claims (10)
1.一种基于环签名的改进的委托权益证明的区块链共识方法,其特征在于,包括以下步骤:
步骤1、共识节点的选取步骤;用于选出共识达成步骤中的投票节点与区块生成节点。
步骤2、共识达成步骤;用于生成新区块,并且对新区块进行验证与投票。
步骤3、恶意节点处罚步骤;用于处罚恶意节点。
2.根据权利要求1所述的一种基于环签名的改进的委托权益证明的区块链共识方法,其特征在于,所述步骤1共识节点的选取步骤具体包括:
(1.1)区块链系统广播选举消息;
(1.2)节点计算Diffvalue值;Diffvalue表示根据基础难度值计算出的符合要求的难度值;
(1.3)节点回应选举消息;
(1.4)系统监管者筛选选举消息;
(1.5)系统监管者选取见证者与候选者。
3.根据权利要求2所述的一种基于环签名的改进的委托权益证明的区块链共识方法,其特征在于,所述步骤(1.1)区块链系统广播选举消息,具体包括:
区块链系统向整个网络中的每个节点广播消息<nonce、D>
节点Ni收到消息<nonce,D>后,从区块链中获取上一个区块头PreBlockHead,计算HASH(HASH(PreBlockHead),nonce)作为自己的Diffvalue发送给系统监管者。
4.根据权利要求3所述的一种基于环签名的改进的委托权益证明的区块链共识方法,其特征在于,所述步骤(1.2)节点计算Diffvalue值,具体包括:
Diffvalue=HASH(HASH(PreBlockHead),nonce)。
5.根据权利要求2所述的一种基于环签名的改进的委托权益证明的区块链共识方法,其特征在于,所述步骤(1.3)节点回应选举消息,具体包括:
节点Ni观察比较公式Diffvalue<D的值,如果该值为假,则重复步骤(1.2),如果这是真的,那么将<Diffvalue,Ni>发给系统监管者。
6.根据权利要求2所述的一种基于环签名的改进的委托权益证明的区块链共识方法,其特征在于,所述步骤(1.4)系统监管者筛选选举消息,具体包括:系统监管者解密后剔除状态为ERROR的块后,按照接收到选举消息的时间排序,选取前201个节点,并返回其标志位;
所述步骤(1.5)系统监管者选取见证者与候选者,具体包括:
前一百个节点为见证者节点,对其赋予第几轮次共识生成节点的权利,然后将节点Ni分配到见证者节点集合NC中,集合NC中的节点作为一个社区来进行共识。101-201节点为候选者节点,然后将节点Ni分配到一致节点集合NA中此类节点作为见证者节点的候补节点。
7.根据权利要求1所述的一种基于环签名的改进的委托权益证明的区块链共识方法,其特征在于,所述步骤2共识达成步骤具体包括:
系统监管者向区块见证者节点发送环签名的公钥集PKSet,与私钥SKc Rsign;
(2.1)每一个见证者节点都收集上一个块生成到目前的交易,并生成MakleTree;
(2.2)区块生成者节点生成区块表达式;
(2.3)区块生成者节点广播新区块信息;
(2.4)见证者节点根据新区块信息进行投票;
(2.5)见证者节点生成投票信息;
(2.6)区块生成者节点统计投票信息,并广播结果;若不同意该新区块进入恶意节点处罚阶段。
8.根据权利要求7所述的一种基于环签名的改进的委托权益证明的区块链共识方法,其特征在于,所述步骤(2.1)-(2.6)具体为:
每一个见证者节点都收集上一个块生成到目前的交易,并生成MakleTree;
(2.1)排名第一的节点生成块的表达式
Block=<<NORMAL,HASH(PreBlock),MakleTreeRoot,Time,D,Diffvalue>,txs>,
Time表示时间,txs表示最近交易;
用SKRsign对其进行匿名环签名,然后在区块见证者之间广播,NORMAL代表该块的状态是默认的;如果该块达成了共识,该块的状态变为Good;其他的区块都会在此区块的后面挖掘新的区块,如果区块的状态为ERROR,那就说明没有达成共识,进入恶意节点处罚阶段后,重新进行共识;
(2.2)排名第一的节点使用环签名FRsign(PKSet,SKc Rsign,order)对order值进行加密,输出环签名ρc Rsign并生成广播消息,PKSet是环签名的公钥;ρc Rsign表示排名第一的节点的环签名;
messc=(σc Rsign,Time,D,order,MakleTreeRoot,PKSet),
(2.3)其他见证者节点收到广播消息,选取最小order的进行验证签名的合法性,FRsign·verify(PKSet,order,σc Rsign),FRsign·verify表示环签名验证。如果正确则证明广播消息确实来自于排名第一的节点,验证错误不对其进行投票,选取下一个order验证;
(2.4)每个见证者节点将收到的MakleTreeRoot与自己生成的验证MakleTreeRootverify相比较,如果相同,投赞成票,如果不同,投反对票;见证节点Nc i用私钥加密投票信息;
(2.5)区块生成者接受到广播消息后比较order值,如果与自身order值相同则用解密该消息,然后统计票数.
countagree=∑voteagree,countdisagree=∑votedisagree
countagree、countdisagree分别表示同意的票数与不同意的票数。
若countagree<countdisagree,说明大部分见证者节点不同意该区域块的生成,则节点广播消息;
BlockERROR=<<ERROR,HASH(PreBlock),MekleTreeRoot,Time,D,Diffvalue>,txs>
(2.6)所有的节点收到BlockERROR,后,区块生成节点被视作恶意节点,进入恶意节点处罚阶段;
(2.7)进入恶意节点处罚阶段;
(2.8)恶意节点处罚阶段结束后,重新进行共识阶段;
(2.9)若同意该新区块,系统监管者验证新区块。
(2.10)区块生成节点退出见证者节点集合;
(2.11)系统监管者补全见证者集合与候选者集合。
9.根据权利要求8所述的一种基于环签名的改进的委托权益证明的区块链共识方法,其特征在于,所述步骤(3)恶意节点处罚阶段具体包括:
(3.1)系统监管者终止共识阶段;
(3.2)系统监管者检查恶意操作;
(3.3)对恶意节点进行处罚;
(3.4)系统监管者补全见证者集合;
(3.5)系统监管者补全候选者集合;
(3.6)重新启动共识阶段。
10.根据权利要求9所述的一种基于环签名的改进的委托权益证明的区块链共识方法,其特征在于,所述步骤(3.1)-(3.6)具体包括以下步骤:
(3.1)系统监管者终止共识阶段;
(3.2)监管者收集所有的恶意节点的投票信息,并用其公钥解密该消息,验证该节点确实进行了恶意操作;
(3.3)将恶意节点的信息全网广播,并设置其不能参加此后的7日内公式节点的选取,并对其进行罚款操作;所以说如果恶意节点作恶,那么将收到极其严重的惩罚;节点被视作恶意节点处罚后,7日内不能竞争共识节点,只能作为普通的交易节点;
(3.4)若总共有m个恶意节点,系统监管者将m个作恶节点剔除出见证者节点集合,然后选取候选者节点的前m个节点,进入见证者节点集合;系统监管者对见证者集合重新排序,并对各个节点返回其顺序标识;
(3.5)系统监管者进行公式节点选取阶段,选取前m名进入候补队列,其他节点依旧是普通节点标志位返回T;
(3.6)进行完如上操作,系统监管者重新启动共识阶段。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202211235100.3A CN116074310B (zh) | 2022-10-10 | 2022-10-10 | 基于环签名的改进的委托权益证明的区块链共识方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202211235100.3A CN116074310B (zh) | 2022-10-10 | 2022-10-10 | 基于环签名的改进的委托权益证明的区块链共识方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN116074310A true CN116074310A (zh) | 2023-05-05 |
| CN116074310B CN116074310B (zh) | 2024-04-26 |
Family
ID=86173823
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202211235100.3A Active CN116074310B (zh) | 2022-10-10 | 2022-10-10 | 基于环签名的改进的委托权益证明的区块链共识方法 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN116074310B (zh) |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20200059369A1 (en) * | 2017-05-16 | 2020-02-20 | Peking University Shenzhen Graduate School | Determining consensus by parallel proof of voting in consortium blockchain |
| CN111683121A (zh) * | 2020-05-22 | 2020-09-18 | 哈尔滨工程大学 | 基于DPoS的云端数据溯源区块链共识机制改进方法 |
| CN112541821A (zh) * | 2020-11-18 | 2021-03-23 | 齐鲁工业大学 | 一种具有动态信任的委托权益证明共识算法 |
| CN113395164A (zh) * | 2021-04-22 | 2021-09-14 | 江苏大学 | 一种基于环签名和区块链的电子投票方法 |
-
2022
- 2022-10-10 CN CN202211235100.3A patent/CN116074310B/zh active Active
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20200059369A1 (en) * | 2017-05-16 | 2020-02-20 | Peking University Shenzhen Graduate School | Determining consensus by parallel proof of voting in consortium blockchain |
| CN111683121A (zh) * | 2020-05-22 | 2020-09-18 | 哈尔滨工程大学 | 基于DPoS的云端数据溯源区块链共识机制改进方法 |
| CN112541821A (zh) * | 2020-11-18 | 2021-03-23 | 齐鲁工业大学 | 一种具有动态信任的委托权益证明共识算法 |
| CN113395164A (zh) * | 2021-04-22 | 2021-09-14 | 江苏大学 | 一种基于环签名和区块链的电子投票方法 |
Non-Patent Citations (2)
| Title |
|---|
| MAHBUB ALAM MAJUMDAR: "Blockchain based land registry with delegated proof of stake (DPoS) consensus in Bangladesh", 《IEEEXPLORE》, 2 November 2020 (2020-11-02) * |
| 段靓;吕鑫;刘凡;: "基于信任委托的区块链分层共识优化", 计算机工程, no. 10, 15 October 2020 (2020-10-15) * |
Also Published As
| Publication number | Publication date |
|---|---|
| CN116074310B (zh) | 2024-04-26 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Bilal et al. | Blockchain technology: Opportunities & challenges | |
| JP7292365B2 (ja) | ブロックチェーンからのデータのセキュアな抽出のための暗号方法及びシステム | |
| US11669811B2 (en) | Blockchain-based digital token utilization | |
| US10944624B2 (en) | Changing a master node in a blockchain system | |
| US10942994B2 (en) | Multicomputer processing for data authentication using a blockchain approach | |
| US11126458B2 (en) | Method, apparatus, and electronic device for resource allocation based on blockchain | |
| Çabuk et al. | A survey on feasibility and suitability of blockchain techniques for the e-voting systems | |
| US12348642B2 (en) | Token-based identity validation via blockchain | |
| US11387979B2 (en) | Partially-ordered blockchain | |
| CN111133463B (zh) | 使用分布式协调的智能合约执行 | |
| US11165589B2 (en) | Trusted agent blockchain oracle | |
| US11153069B2 (en) | Data authentication using a blockchain approach | |
| US11159537B2 (en) | Multicomputer processing for data authentication and event execution using a blockchain approach | |
| US20200028667A1 (en) | Blockchain-Based Unexpected Data Detection | |
| US11710129B2 (en) | Blockchain-based method and apparatus for managing biological asset object | |
| WO2020147568A1 (zh) | 基于区块链的存证方法和装置 | |
| US20220276996A1 (en) | Assessment node and token assessment container | |
| US10693646B2 (en) | Event execution using a blockchain approach | |
| CN110363527A (zh) | 基于区块链的存证、监管方法和装置 | |
| CN111241593A (zh) | 用于区块链节点的数据同步方法及装置 | |
| Menon et al. | A comparatıve analysis on three consensus algorithms: proof of burn, proof of elapsed time, proof of authority | |
| Ouattara et al. | Blockchain consensus protocols: Towards a review of practical constraints for implementation in developing countries | |
| US11394544B2 (en) | Validation of blockchain activities based on proof of hardware | |
| US20230087602A1 (en) | Privacy-preserving state reference | |
| CN112801778A (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 |