CN110768798B - 面向物联网的轻量级区块链共识方法、***及介质 - Google Patents
面向物联网的轻量级区块链共识方法、***及介质 Download PDFInfo
- Publication number
- CN110768798B CN110768798B CN201911017871.3A CN201911017871A CN110768798B CN 110768798 B CN110768798 B CN 110768798B CN 201911017871 A CN201911017871 A CN 201911017871A CN 110768798 B CN110768798 B CN 110768798B
- Authority
- CN
- China
- Prior art keywords
- members
- information
- block
- internet
- things
- 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.)
- Active
Links
Images
Classifications
-
- 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/3263—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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
- H04L9/3268—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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
-
- 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/3263—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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
- H04L2209/463—Electronic voting
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种面向物联网的轻量级区块链共识方法、***及介质,本发明方法包括各个节点成员按照层级选举形成委员会,首席p打包区块B并向所有中枢成员发送预发布信息;首席p根据各中枢成员确认整合成确认发布证书并广播给所有执行官;执行官对区块B进行验证;首席p如果收到f+1个验证通过信息,则首席p发布区块B并附加确认发布证书和验证通过证书;若收到f+1个验证不通过信息,则发布空白区块B并附加验证不通过证书。本发明综合了区块链去中心化的分布式网络结构和物联网天然的层级结构的优势,能够很好的适应多样的物联网设备,提高了节点容错率的同时尽可能的减少了网络通信,能够减少网络带宽的压力以及提高共识效率。
Description
技术领域
本发明涉及物联网的区块链技术,具体涉及一种面向物联网的轻量级区块链共识方法、***及介质。
背景技术
区块链的共识机制能够很好的解决物联网分布式网络的信任和安全等问题。然而物联网设备的计算机性能的多样性,使得直接在物联网中应用区块链变得很复杂。同时,物联网固有的层级结构和区块链的去中心化的分布式网络结构也存在一定冲突。
因此,如何面向物联网实现轻量级的区块链共识,已经成为将区块链技术应用到物联网时亟待解决的关键技术问题。
发明内容
本发明要解决的技术问题:针对现有技术的上述问题,提供一种面向物联网的轻量级区块链共识方法、***及介质,本发明综合了区块链去中心化的分布式网络结构和物联网天然的层级结构的优势,能够很好的适应多样的物联网设备,提高了节点容错率的同时尽可能的减少了网络通信,能够减少网络带宽的压力以及提高共识效率。
为了解决上述技术问题,本发明采用的技术方案为:
一种面向物联网的轻量级区块链共识方法,实施步骤包括:
1)各个节点成员按照层级选举形成委员会,所述委员会中的成员上限数量为2f+3g+2个且包括一个首席p、含首席p在内一共上限数量为3g+1个中枢成员,上限数量为2f+1个执行官,f+1名执行官为激活的执行官,剩余f名执行官为观察的执行官,其中g为达成共识所允许的最大中枢成员错误节点数,f为最大执行官错误节点数;需要进入区块B的共识时执行下一步;
2)首席p打包区块B,并向所有中枢成员发送预发布信息;
3)各中枢成员对收到的预发布信息检查其序列号n是否连续,如果连续则返回确认发布信息给首席p;
4)首席p在设定的超时时间tp1内统计收到的确认发布信息数,如果不少于2g+1个则将其整合成确认发布证书并广播给所有执行官;否则如果首席p在超时时间tp1内,无法收集到2g+1个确认发布信息,则发起中枢成员视图变更;
5)执行官收到确认发布证书后,对其中区块B进行验证,如果验证通过则广播验证信息给首席p以及所有中枢成员,否则广播验证不通过信息给首席p以及所有中枢成员;
6)首席p在设定的超时时间tp2内统计收到的验证信息,如果收到f+1个一致的验证通过信息,则生成验证通过证书、发布区块B并附加确认发布证书和验证通过证书;若收到f+1个一致的验证不通过信息,则生成验证不通过证书,发布空白区块B并附加验证不通过证书。
可选地,步骤3)中枢成员对收到的预发布信息检查其序列号n是否连续时还包括下述处理步骤:如果中枢成员发现序列号n和本地存储的历史序列号nh不满足n=nh+1则序列号n不连续,向其他中枢成员及首席p请求中间缺少的区块信息;当中枢成员收到缺失请求时,则将自身nh之后的所有区块打包发给缺失成员;如果中枢成员拿到的区块信息中,证书无效,则不予采信该区块;如果中枢成员无法补足nh至n的所有区块,则发起中枢成员视图变更;如果中枢成员发现序列号n小于等于本地存储的历史序列号nh,则发起中枢成员视图变更。
可选地,步骤6)中首席p在设定的超时时间tp2内统计收到的验证信息时还包括下述处理步骤:如果首席p收到了不一致的验证信息,直接激活观察的执行官;观察的执行官接收到激活请求后,将验证结果返回给中枢,首席选取其中f+1个相同的验证结果,并选取对应的执行官成为激活的执行官,广播区块信息;执行官收到区块后,检查自己是否被包含在验证证书内,如果是,则为激活的执行官,不是则为观察的执行官;执行官如果超过指定时间没有收到区块信息,则向其他委员会成员申请区块信息。
可选地,所述发起中枢成员视图变更的详细步骤包括:
S1)发起中枢成员视图变更的首席p或者中枢成员广播消息,此时该发起中枢成员视图变更的首席p或者中枢成员不会暂停工作;
S2)当一个中枢成员收到g+1个不同的中枢成员发出的发起中枢成员视图变更的广播消息时,广播视图变更请求,同时在该视图中停止工作;
S3)当一个中枢成员收到视图变更请求后,生成自己的视图变更请求,广播给其他中枢成员并停止工作;
S4)当一个中枢成员收到含自己在内的2g+1个的视图变更请求后,成为新的首席,广播给所有委员会新视图信息;
S5)中枢成员收到新视图信息后,将检查自己本地的区块和新视图信息中的是否一致,如发现缺失则广播缺失请求,更新视图信息后,中枢成员开始为新视图进行工作。
可选地,步骤S1)中发起中枢成员视图变更的首席p或者中枢成员判断当前中枢成员视图是否完成一个有效区块的步骤,如果发现当前视图没有完成一个有效区块,则执行步骤1)重新选举。
可选地,步骤1)中各个节点成员按照层级选举形成委员会的步骤包括下述三个阶段的步骤:
1.1)在设定的超时时间t1内,首先高层级的成员互相广播存活消息以验证其活性;可竞选的成员向下层的、不参与委员会选举的成员发起竞选请求并收集选票信息;其他成员收到第一个竞选请求后向该请求成员投递选票且仅投一张选票;若超时时间t1达到则执行下一步;
1.2)在设定的超时时间t2内,首先确定高层活动的全部成员,且这些成员全部进委员会,并组成临时委员会;临时委员会统计当前委员会成员名单以及剩余席位数并广播;竞选成员将收集到的选票信息发送给临时委员会;若超时时间t2达到则执行下一步;
1.3)在设定的超时时间t3内,当临时委员会统计竞选成员的票数后,按照票数>权值的方式排序补缺,同时选取权值最重的成员作为首轮中枢首席;含首席外的前10名权值最重的成员作为委员会的中枢且按照权值排序;接下来选取前f+1名作为激活的执行官,剩余f名执行官为观察的执行官。
可选地,步骤1.1)中向该请求成员投递选票时对该请求成员可竞选的成员评判标准为:给视图内所有成员按照权值从重至轻排序,假设最高层成员数为x,计算出第(A-x)*2个节点在第y层,则可竞选成员为不低于y层的所有非最高层节点,其中A为委员会上限数量。
此外,本发明还提供一种面向物联网的轻量级区块链共识***,包括呈层级拓扑结构相连的多个物联网节点,所述多个物联网节点被编程或配置以执行所述面向物联网的轻量级区块链共识方法的步骤,或所述多个物联网节点的存储介质上存储有被编程或配置以执行所述面向物联网的轻量级区块链共识方法的计算机程序。
此外,本发明还提供一种计算机可读存储介质,该计算机可读存储介质上存储有被编程或配置以执行所述面向物联网的轻量级区块链共识方法的计算机程序。
和现有技术相比,本发明具有下述优点:
1、本发明采用各个节点成员按照层级选举形成委员会,因此可基于分布式网络结构和物联网天然的层级结构来实现委员会的选举。
2、本发明在公式阶段,首席p打包区块B并向所有中枢成员发送预发布信息;各中枢成员对收到的预发布信息检查其序列号n是否连续,如果连续则返回确认发布信息给首席p;首席p在设定的超时时间tp1内统计收到的确认发布信息数,如果不少于2g+1个则将其整合成确认发布证书并广播给所有执行官;否则如果首席p在超时时间tp1内,无法收集到2g+1个确认发布信息,则发起中枢成员视图变更;执行官收到确认发布证书后,对其中区块B进行验证,如果验证通过则广播验证信息给所有中枢成员,否则广播验证不通过信息给所有中枢成员;首席p在设定的超时时间tp2内统计收到的验证信息,如果收到f+1个一致的验证通过信息,则生成验证通过证书、发布区块B并附加确认发布证书和验证通过证书;若收到f+1个一致的验证不通过信息,则生成验证不通过证书,发布空白区块B并附加验证不通过证书。通过上述方式,可基于分布式网络结构和物联网天然的层级结构来达成区块共识。
综上所述,本发明综合了区块链去中心化的分布式网络结构和物联网天然的层级结构的优势,能够很好的适应多样的物联网设备,提高了节点容错率的同时尽可能的减少了网络通信,能够减少网络带宽的压力以及提高共识效率。
附图说明
图1为本发明实施例的共识原理示意图。
图2为本发明实施例中按照层级选举形成委员会的流程示意图。
具体实施方式
如图1所示,本实施例面向物联网的轻量级区块链共识方法的实施步骤包括:
1)各个节点成员按照层级选举形成委员会,所述委员会中的成员上限数量为2f+3g+3个且包括一个首席p、含首席p在内一共上限数量为3g+1个中枢成员,上限数量为2f+1个执行官,f+1名执行官为激活的执行官,剩余f名执行官为观察的执行官,其中g为达成共识所允许的最大中枢成员错误节点数,f为最大执行官错误节点数;需要进入区块B的共识时执行下一步。
2)首席p打包区块B,并向所有中枢成员发送预发布信息,参见图1中步骤①;
参见图1,本实施例中预发布信息的格式为:
<PRE-REQUEST, n, v, r, B>p
其中PRE-REQUEST表示预发布信息,n为区块B的序列号,v为当前视图号,r为当前选举轮次,< >p表示信息被首席p用其私钥加密。本实施例具体以<X>Y表示用Y的公钥加密信息X,因此此处< >p表示信息被首席p用其私钥加密,下同。
3)各中枢成员对收到的预发布信息检查其序列号n是否连续,如果连续则返回确认发布信息给首席p,参见图1中步骤②;
参见图1,本实施例中确认发布信息的格式为:
<COMMIT, n, v, r, j, B>j
其中n为区块B的序列号,v为当前视图号,r为当前选举轮次,j表示中枢成员节点编号,< >j表示信息被中枢成员j用其私钥加密。
4)首席p在设定的超时时间tp1内统计收到的确认发布信息数,如果不少于2g+1个则将其整合成确认发布证书并广播给所有执行官,参见图1中步骤③;否则如果首席p在超时时间tp1内,无法收集到2g+1个确认发布信息,则发起中枢成员视图变更;
参见图1,本实施例中确认发布证书的格式为:
{<COMMIT, n, v, r, j, B>j },j∈{A|2g+1}
其中,<COMMIT, n, v, r, j, B>j为步骤3)中确认发布信息{<COMMIT, n, v, r,j, B>j },j∈{A|2g+1}表示首席p收到的2g+1个确认发布信息的集合,该集合即为确认发布证书。
5)执行官收到确认发布证书后,对其中区块B进行验证,如果验证通过则广播验证信息给首席p以及所有中枢成员,否则广播验证不通过信息给首席p以及所有中枢成员,参见图1中步骤④;
参见图1,本实施例中如果验证通过则广播验证信息的格式为:
<REPLY, n, v, r, i, |B|, YES>i
上式中,REPLY表示验证信息,n为区块B的序列号,v为当前视图号,r为当前选举轮次,i表示成员节点编号,|B|表示区块B的熵值,YES表示验证通过标识符,< > i表示被执行官节点i用私钥加密,E表示所有执行官成员组成的集合,f为最大执行官错误节点数;
参见图1,本实施例中如果验证不通过则广播验证信息的格式为:
<REPLY, n, v, r, i, |B|, NO>i
上式中,REPLY表示验证信息,n为区块B的序列号,v为当前视图号,r为当前选举轮次,i表示成员节点编号,|B|表示区块B的熵值,NO表示验证不通过标识符,< > i表示被执行官节点i用私钥加密,E表示所有执行官成员组成的集合,f为最大执行官错误节点数;
6)首席p在设定的超时时间tp2内统计收到的验证信息,如果收到f+1个一致的验证通过信息,则生成验证通过证书,即f+1个一致的验证通过信息的合集,然后发布区块B并附加确认发布证书和验证通过证书,参见图1中步骤⑤;若收到f+1个一致的验证不通过信息,则生成验证不通过证书,即f+1个一致的验证不通过信息的合集,发布空白区块B并附加验证不通过证书。
本实施例中,发布的区块的格式为:
<BLOCK, n, v, r, B, CC, RC>p
上式中,BLOCK表示区块发布信息,n为区块B的序列号,v为当前视图号,r为当前选举轮次,CC为确认发布证书,RC为相应验证通过证书,p表示首席节点,<>p表示被首席p用私钥加密。
本实施例中,发布的空白区块的格式为:
<BLOCK, n, v, r, BLANK, RC>p
上式中,BLOCK表示区块发布信息,n为区块的序列号,v为当前视图号,r为当前选举轮次,BLANK表示空区块,RC为相应验证不通过证书,p表示首席节点,<>p表示被首席p用私钥加密。
本实施例中,步骤3)中枢成员对收到的预发布信息检查其序列号n是否连续时还包括下述处理步骤:如果中枢成员发现序列号n和本地存储的历史序列号nh不满足n=nh+1则序列号n不连续,向其他中枢成员及首席p请求中间缺少的区块信息;当中枢成员收到缺失请求时,则将自身nh之后的所有区块打包发给缺失成员;如果中枢成员拿到的区块信息中,证书无效,则不予采信该区块;如果中枢成员无法补足nh至n的所有区块,则发起中枢成员视图变更;如果中枢成员发现序列号n小于等于本地存储的历史序列号nh,则发起中枢成员视图变更。通过上述方式,能够有效验证区块的连续性。
本实施例中,中枢成员向其他中枢成员及首席p请求中间缺少的区块信息的格式为:
<HOLE, nh, v, r, j>j
上式,HOLE表示中间缺少的区块信息请求,nh为本地存储的历史序列号,r为当前选举轮次,j表示中枢成员节点编号,< > j表示被中枢成员j用私钥加密。
本实施例中,步骤6)中首席p在设定的超时时间tp2内统计收到的验证信息时还包括下述处理步骤:如果首席p收到了不一致的验证信息,直接激活观察的执行官;观察的执行官接收到激活请求后,将验证结果返回给中枢,首席选取其中f+1个相同的验证结果,并选取对应的执行官成为激活的执行官,广播区块信息;执行官收到区块后,检查自己是否被包含在验证证书内,如果是,则为激活(active)的执行官,不是则为观察(observe)的执行官;执行官如果超过指定时间没有收到区块信息,则向其他委员会成员申请区块信息。
本实施例中,激活观察的执行官的消息格式为:
<WAKE-UP, n, v, r, COMMIT-CERTIFICATE>p
上式中,WAKE-UP表示激活观察的执行官的消息,n为区块B的序列号,v为当前视图号,r为当前选举轮次,COMMIT-CERTIFICATE表示步骤4)中的确认发布证书,p表示首席节点,<>p表示被首席p用私钥加密。
本实施例中,发起中枢成员视图变更的详细步骤包括:
S1)发起中枢成员视图变更的首席p或者中枢成员广播消息,此时该发起中枢成员视图变更的首席p或者中枢成员不会暂停工作;
本实施例中,广播消息的格式为:
<PRE-VIEWCHANGE, v, r, j>j/p
上式中,PRE-VIEWCHANGE表示中枢成员视图变更请求,v为当前视图号,r为当前选举轮次,j表示中枢成员的节点编号,p表示首席p的节点编号,<> j/p表示被首席p或者中枢成员j用私钥加密。
S2)当一个中枢成员收到g+1个不同的中枢成员发出的发起中枢成员视图变更的广播消息时,广播视图变更请求,同时在该视图中停止工作;
本实施例中,广播视图变更请求的格式为:
<VIEW-CHANGE, n, B, v, r, j>j
上式中,VIEW-CHANGE表示广播视图变更请求,n为区块B的序列号,v为当前视图号,r为当前选举轮次,j表示中枢成员节点编号,< > j表示被中枢成员j用私钥加密。
S3)当一个中枢成员收到视图变更请求后,生成自己的视图变更请求,广播给其他中枢成员并停止工作;
S4)当一个中枢成员收到含自己在内的2g+1个的视图变更请求后,成为新的首席,广播给所有委员会新视图信息;
本实施例中,新视图信息的格式为:
<NEW-VIEW, n’, B’, v+1, j, VCC>j
上式中,NEW-VIEW表示给所有委员会新视图信息的请求,n’为所有其收到的视图变更请求中所有合法区块B的最大序列号,B’为最大序列号n’对应的区块,v+1为新视图号,j为新首席的编号,VCC 为其收到的所有的视图变更请求的集合,j表示中枢成员节点编号,< > j表示被中枢成员j用私钥加密。
S5)中枢成员收到新视图信息后,将检查自己本地的区块和新视图信息中的是否一致,如发现缺失则广播缺失请求,更新视图信息后,中枢成员开始为新视图进行工作。
本实施例中,步骤S1)中发起中枢成员视图变更的首席p或者中枢成员判断当前中枢成员视图是否完成一个有效区块的步骤,如果发现当前视图没有完成一个有效区块,则执行步骤1)重新选举。
本实施例中,达成共识所允许的最大中枢成员错误节点数g取值为3,最大执行官错误节点数f取值为20,因此委员会上限数量为51个,中枢上限数量为10个(3*3+1=10 (g=3)),委员会选举按层级选举,只有高层级无法满足的时候开启竞选。如图2所示,本实施例中步骤1)中各个节点成员按照层级选举形成委员会的步骤包括下述三个阶段的步骤:
1.1)在设定的超时时间t1内,首先高层级的成员互相广播存活消息以验证其活性;可竞选的成员向下层的、不参与委员会选举的成员发起竞选请求并收集选票信息;其他成员收到第一个竞选请求后向该请求成员投递选票且仅投一张选票;若超时时间t1达到则执行下一步;
本实施例中,存活消息的格式为:
<ALIVE, i, r>i
上式中,ALIVE表示活性验证广播,i为节点编号,r为选举轮次,< > i表示被成员i用私钥加密。
本实施例中,成员发起的竞选请求格式为:
<REQ-VOTE, i, r>i
上式中,REQ-VOTE表示竞选请求,i为节点编号,r为选举轮次,< > i表示被成员i用私钥加密。
本实施例中,其他成员收到第一个竞选请求后向该请求成员投递的选票格式为:
<VOTE, i, r, RV>i
上式中,VOTE表示选票,i为节点编号,r为选举轮次,RV为其收到的第一个竞选请求,< > i表示被成员i 用私钥加密。
1.2)在设定的超时时间t2内,首先确定高层活动的全部成员,且这些成员全部进委员会,并组成临时委员会;临时委员会统计当前委员会成员名单以及剩余席位数并广播;竞选成员将收集到的选票信息发送给临时委员会;若超时时间t2达到则执行下一步;
1.3)在设定的超时时间t3内,当临时委员会统计竞选成员的票数后,按照票数>权值的方式排序补缺,同时选取权值最重的成员作为首轮中枢首席;含首席外的前10名权值最重的成员作为委员会的中枢且按照权值排序;接下来选取前f+1名作为激活的执行官,剩余f名执行官为观察的执行官。
本实施例中,步骤1.1)中向该请求成员投递选票时对该请求成员可竞选的成员评判标准为:给视图内所有成员按照权值从重至轻排序,假设最高层成员数为x,计算出第(A-x)*2个节点在第y层,则可竞选成员为不低于y层的所有非最高层节点,其中A为委员会上限数量。
针对物联网的层级结构,本实施例面向物联网的轻量级区块链共识方法在选举和共识过程中采用高层管理底层的做法,低级节点服从高级节点的结果,且基于树-图结构表达节点的拓扑结构,每个节点均有层级之分;层级越高权值越大,同一层级的权值也有大小之分;高层级权值绝对高于低层级。且本实施例面向物联网的轻量级区块链共识方法基于下述假设:假定密码学手段可靠,保证数据不被篡改,签名可信;假设忠诚的节点的计算结果是唯一的;假设节点出现网络通信异常、节点关机、节点逻辑错误等则均将其视为错误节点。
此外,本实施例还提供一种面向物联网的轻量级区块链共识***,包括呈层级拓扑结构相连的多个物联网节点,所述多个物联网节点被编程或配置以执行本实施例前述面向物联网的轻量级区块链共识方法的步骤,或所述多个物联网节点的存储介质上存储有被编程或配置以执行本实施例前述面向物联网的轻量级区块链共识方法的计算机程序。
此外,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有被编程或配置以执行本实施例前述面向物联网的轻量级区块链共识方法的计算机程序。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (9)
1.一种面向物联网的轻量级区块链共识方法,其特征在于实施步骤包括:
1)各个节点成员按照层级选举形成委员会,所述委员会中的成员上限数量为2f+3g+2个且包括一个首席p、含首席p在内一共上限数量为3g+1个中枢成员,上限数量为2f+1个执行官,其中f+1名执行官为激活的执行官,剩余f名执行官为观察的执行官,其中g为达成共识所允许的最大中枢成员错误节点数,f为最大执行官错误节点数;需要进入区块B的共识时执行下一步;
2)首席p打包区块B,并向所有中枢成员发送预发布信息;
3)各中枢成员对收到的预发布信息检查其序列号n是否连续,如果连续则返回确认发布信息给首席p;
4)首席p在设定的超时时间tp1内统计收到的确认发布信息数,如果不少于2g+1个则将其整合成确认发布证书并广播给所有执行官;否则如果首席p在超时时间tp1内,无法收集到2g+1个确认发布信息,则发起中枢成员视图变更;
5)执行官收到确认发布证书后,对其中区块B进行验证,如果验证通过则广播验证信息给首席p以及所有中枢成员,否则广播验证不通过信息给首席p以及所有中枢成员;
6)首席p在设定的超时时间tp2内统计收到的验证信息,如果收到f+1个一致的验证通过信息,则生成验证通过证书、发布区块B并附加确认发布证书和验证通过证书;若收到f+1个一致的验证不通过信息,则生成验证不通过证书,发布空白区块B并附加验证不通过证书。
2.根据权利要求1所述的面向物联网的轻量级区块链共识方法,其特征在于,步骤3)中枢成员对收到的预发布信息检查其序列号n是否连续时还包括下述处理步骤:如果中枢成员发现序列号n和本地存储的历史序列号nh不满足n=nh+1则序列号n不连续,向其他中枢成员及首席p请求中间缺少的区块信息;当中枢成员收到缺失请求时,则将自身nh之后的所有区块打包发给缺失成员;如果中枢成员拿到的区块信息中,证书无效,则不予采信该区块;如果中枢成员无法补足nh至n的所有区块,则发起中枢成员视图变更;如果中枢成员发现序列号n小于等于本地存储的历史序列号nh,则发起中枢成员视图变更。
3.根据权利要求1所述的面向物联网的轻量级区块链共识方法,其特征在于,步骤6)中首席p在设定的超时时间tp2内统计收到的验证信息时还包括下述处理步骤:如果首席p收到了不一致的验证信息,直接激活观察的执行官;观察的执行官接收到激活请求后,将验证结果返回给中枢,首席选取其中f+1个相同的验证结果,并选取对应的执行官成为激活的执行官,广播区块信息;执行官收到区块后,检查自己是否被包含在验证证书内,如果是,则为激活的执行官,不是则为观察的执行官;执行官如果超过指定时间没有收到区块信息,则向其他委员会成员申请区块信息。
4.根据权利要求1所述的面向物联网的轻量级区块链共识方法,其特征在于,所述发起中枢成员视图变更的详细步骤包括:
S1)发起中枢成员视图变更的首席p或者中枢成员广播消息,此时该发起中枢成员视图变更的首席p或者中枢成员不会暂停工作;
S2)当一个中枢成员收到g+1个不同的中枢成员发出的发起中枢成员视图变更的广播消息时,广播视图变更请求,同时在该视图中停止工作;
S3)当一个中枢成员收到视图变更请求后,生成自己的视图变更请求,广播给其他中枢成员并停止工作;
S4)当一个中枢成员收到含自己在内的2g+1个的视图变更请求后,成为新的首席,广播给所有委员会新视图信息;
S5)中枢成员收到新视图信息后,将检查自己本地的区块和新视图信息中的是否一致,如发现缺失则广播缺失请求,更新视图信息后,中枢成员开始为新视图进行工作。
5.根据权利要求4所述的面向物联网的轻量级区块链共识方法,其特征在于,步骤S1)中发起中枢成员视图变更的首席p或者中枢成员判断当前中枢成员视图是否完成一个有效区块的步骤,如果发现当前视图没有完成一个有效区块,则执行步骤1)重新选举。
6.根据权利要求1~5中任意一项所述的面向物联网的轻量级区块链共识方法,其特征在于,步骤1)中各个节点成员按照层级选举形成委员会的步骤包括下述三个阶段的步骤:
1.1)在设定的超时时间t1内,首先高层级的成员互相广播存活消息以验证其活性;可竞选的成员向下层的、不参与委员会选举的成员发起竞选请求并收集选票信息;其他成员收到第一个竞选请求后向该请求成员投递选票且仅投一张选票;若超时时间t1达到则执行下一步;
1.2)在设定的超时时间t2内,首先确定高层活动的全部成员,且这些成员全部进委员会,并组成临时委员会;临时委员会统计当前委员会成员名单以及剩余席位数并广播;竞选成员将收集到的选票信息发送给临时委员会;若超时时间t2达到则执行下一步;
1.3)在设定的超时时间t3内,当临时委员会统计竞选成员的票数后,按照票数>权值的方式排序补缺,同时选取权值最重的成员作为首轮中枢首席;含首席外的前10名权值最重的成员作为委员会的中枢且按照权值排序;接下来选取前f+1名作为激活的执行官,剩余f名执行官为观察的执行官。
7.根据权利要求6所述的面向物联网的轻量级区块链共识方法,其特征在于,步骤1.1)中向该请求成员投递选票时对该请求成员可竞选的成员评判标准为:给视图内所有成员按照权值从重至轻排序,假设最高层成员数为x,计算出第(A-x)*2个节点在第y层,则可竞选成员为不低于y层的所有非最高层节点,其中A为委员会上限数量。
8.一种面向物联网的轻量级区块链共识***,包括呈层级拓扑结构相连的多个物联网节点,其特征在于,所述多个物联网节点被编程或配置以执行权利要求1~7中任意一项所述面向物联网的轻量级区块链共识方法的步骤,或所述多个物联网节点的存储介质上存储有被编程或配置以执行权利要求1~7中任意一项所述面向物联网的轻量级区块链共识方法的计算机程序。
9.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有被编程或配置以执行权利要求1~7中任意一项所述面向物联网的轻量级区块链共识方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911017871.3A CN110768798B (zh) | 2019-10-24 | 2019-10-24 | 面向物联网的轻量级区块链共识方法、***及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911017871.3A CN110768798B (zh) | 2019-10-24 | 2019-10-24 | 面向物联网的轻量级区块链共识方法、***及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110768798A CN110768798A (zh) | 2020-02-07 |
CN110768798B true CN110768798B (zh) | 2022-06-28 |
Family
ID=69333572
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911017871.3A Active CN110768798B (zh) | 2019-10-24 | 2019-10-24 | 面向物联网的轻量级区块链共识方法、***及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110768798B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113938494B (zh) * | 2021-10-13 | 2023-09-12 | 中国人民解放军国防科技大学 | 一种面向大规模物联网场景的链网分割重组方法及*** |
CN114070733B (zh) * | 2022-01-17 | 2023-01-31 | 清华大学 | 一种基于区块链网络的共识方法、装置及*** |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107395403A (zh) * | 2017-07-07 | 2017-11-24 | 北京区块链云科技有限公司 | 一种适用于大规模电子商务的基于信用的区块链共识方法 |
CN108200203A (zh) * | 2018-02-06 | 2018-06-22 | 北京奇虎科技有限公司 | 基于双层网络的区块链*** |
CN109447795A (zh) * | 2018-09-11 | 2019-03-08 | 中国人民解放军国防科技大学 | 一种支持快速达成最终确认性的拜占庭共识方法 |
WO2019119034A1 (en) * | 2017-12-19 | 2019-06-27 | Blockchain It Solutions Pty Ltd | A system and method for implementing a computer network |
CN110069345A (zh) * | 2019-04-23 | 2019-07-30 | 江苏大学 | 基于区块链的众包资源分布式匿名配给方法及其配给*** |
-
2019
- 2019-10-24 CN CN201911017871.3A patent/CN110768798B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107395403A (zh) * | 2017-07-07 | 2017-11-24 | 北京区块链云科技有限公司 | 一种适用于大规模电子商务的基于信用的区块链共识方法 |
WO2019119034A1 (en) * | 2017-12-19 | 2019-06-27 | Blockchain It Solutions Pty Ltd | A system and method for implementing a computer network |
CN108200203A (zh) * | 2018-02-06 | 2018-06-22 | 北京奇虎科技有限公司 | 基于双层网络的区块链*** |
CN109447795A (zh) * | 2018-09-11 | 2019-03-08 | 中国人民解放军国防科技大学 | 一种支持快速达成最终确认性的拜占庭共识方法 |
CN110069345A (zh) * | 2019-04-23 | 2019-07-30 | 江苏大学 | 基于区块链的众包资源分布式匿名配给方法及其配给*** |
Non-Patent Citations (3)
Title |
---|
Blockchain-based trusted data sharing among trusted stakeholders in IoT;Peichang Shi et al.;《WILEY》;20190709;全文 * |
区块链技术在物联网工程中的应用研究;赵满等;《信息与电脑》;20190615;全文 * |
物联网下的区块链访问控制综述;史锦山等;《软件学报》;20190327;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110768798A (zh) | 2020-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11411721B2 (en) | Systems and methods for selecting and utilizing a committee of validator nodes in a distributed system | |
CN110113388B (zh) | 一种基于改进型聚类算法的区块链***共识的方法和装置 | |
CN106406896A (zh) | 一种并行PipeLine技术的区块链建块方法 | |
CN113642019A (zh) | 一种双层分组拜占庭容错共识方法及*** | |
CN108632362A (zh) | 一种私有区块链建块节点选举的方法 | |
CN112235379B (zh) | 一种区块链底层共享存储方法 | |
CN110768798B (zh) | 面向物联网的轻量级区块链共识方法、***及介质 | |
CN110602217B (zh) | 基于区块链的联盟管理方法、装置、设备及存储介质 | |
US20200286049A1 (en) | Systems and methods of self-administered protocols on a blockchain platform | |
CN108512667A (zh) | 一种基于区块链的认证证书生成方法 | |
CN111935207A (zh) | 基于改进型c4.5算法区块链***共识方法 | |
WO2021135934A1 (zh) | 一种区块链记账方法、装置、节点及存储介质 | |
CN113783899B (zh) | 节点退出方法和区块链*** | |
CN108881476A (zh) | 区块链部署方法与*** | |
CN112116349B (zh) | 面向高吞吐率的图式账本的随机化共识方法和装置 | |
CN111107103B (zh) | 一种联盟链的性能维持方法、***及存储介质 | |
CN110730241B (zh) | 面向全局规模的区块链基础设施 | |
CN110071966B (zh) | 基于云平台的区块链组网及数据处理方法 | |
CN115412263B (zh) | 一种基于双重盲化的拜占庭容错共识方法 | |
WO2021204220A1 (en) | Rapid ledger consensus system and method for distributed wireless networks | |
CN115720227A (zh) | 区块链的共识节点的竞选方法及装置和电子设备 | |
CN113377869B (zh) | 一种区块链共享信息均衡存储方法 | |
CN115065689A (zh) | 一种基于历史评价的联盟链区块数据存储方法及*** | |
Sun et al. | Mosaic-a blockchain consensus algorithm based on random number generation | |
CN114820183B (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 |