CN113114613A - 一种区块链容错共识的流水线处理方法 - Google Patents
一种区块链容错共识的流水线处理方法 Download PDFInfo
- Publication number
- CN113114613A CN113114613A CN202011588749.4A CN202011588749A CN113114613A CN 113114613 A CN113114613 A CN 113114613A CN 202011588749 A CN202011588749 A CN 202011588749A CN 113114613 A CN113114613 A CN 113114613A
- Authority
- CN
- China
- Prior art keywords
- block
- round
- lock
- node
- height
- 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
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/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
-
- 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
-
- 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
-
- 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)
- Hardware Redundancy (AREA)
Abstract
本发明利用一种区块链容错共识的流水线处理方法,流水线多轮投票容错协议被用在区块链上,每个高度运行共识协议,同时每个高度的区块头里带上上个区块的块头的哈希值,这样每个高度的共识能否确认当前高度的区块,和确认这个区块之前的所有区块,本发明保证一个共识算法的存活性是需要证明一个节点在任何情况下都能够有办法能继续,不会被卡住。否则,即便这个协议是安全的,不会分叉的,系统存在脑裂和卡死的风险。
Description
技术领域
本发明属于区块链领域, 具体涉及基于一种区块链容错共识的流水线处理方法的方法。
背景技术
流水线多轮投票容错协议是一个拜占庭容错共识协议, 分为多轮, 每轮有两个投票阶段, 预投票阶段和预承诺阶段。如果一共有n个参与方, 其中有f个参与方是拜占庭节点, 即它们可以不遵守协议, 可以在需要投票的时候不投票, 或在同一轮投出两个不同的票。拜占庭容错协议一般最多允许拜占庭节点小于所有节点数的1/3, 即n必须>=3f+1。
流水线多轮投票容错协议被用在区块链上, 每个高度运行共识协议, 同时每个高度的区块头里带上上个区块的块头的哈希值, 这样每个高度的共识能否确认当前高度的区块, 和确认这个区块之前的所有区块,以满足在n+1高度, n高度的块一定被确认的共识算法的即时最终性。
发明内容
为克服现有技术的不足, 本发明提供一种区块链容错共识的流水线处理方法,为达此目的, 本发明采用以下技术方案:
1.流水线多轮投票容错协议, 包括以下步骤:步骤一:在区块链系统中流水线多轮投票容错协议分为多轮, 将多轮中的每轮设两个投票阶段:预投票阶段和预承诺阶段;步骤二:设定有n个参与方,n为自然数, 其中有f个参与方是拜占庭节点, f为自然数;步骤三:开始设定f个参与方可以不遵守协议, 可以在需要投票的时候不投票, 或在同一轮投出两个不同的票;步骤四:设定流水线多轮投票容错协议最多允许拜占庭节点小于所有节点数的1/3, 即必须n>=3f+1;将流水线多轮投票容错协议用于在区块链系统上, 在区块链系统上的每个区块高度运行流水线多轮投票容错协议, 同时每个区块高度的区块头里带上上个区块的块头的哈希值, 用以保证每个区块高度的共识不仅确认当前区块高度的区块, 也用以确认这个区块高度之前的所有区块, 即用以确认一条链,将满足在m+1高度, m高度的区块一定被确认的共识的算法设定为满足即时最终性,m为实数;步骤五:为提高流水线多轮投票容错协议的算法吞吐量,将流水线特性扩展到确认一条链上的后续区块中,从而将流水线多轮投票容错协议之前一个高度多轮只能确认一个区块变为多个高度多轮能确认多个区块;步骤六:在流水线多轮投票容错协议需要多轮确定一个区块的情况下,转到步骤四确定多个区块;步骤七:设定每一轮的两个阶段的投票过程, 设定区块的广播和执行并行;步骤八:设定证明锁,证明锁步骤为:在某一轮的超过或等于n-f个对同一个区块的预投票叫做一个投票集;步骤九:允许能收到所述投票集,并将同一个区块锁住的节点称为锁节点;并且锁节点可以对外广播投票集作为可以锁住所述同一个区块的证明;步骤十:当某个锁节点A在某一轮b锁住了某个提案k, 设定在某一轮b的后续轮b',锁节点A必须继续投预投票给提案k, 即便锁节点A收到某一轮的后续轮b'的其他提案也不能投, 除非锁节点A有某一轮的后续轮b对其他区块的证明锁;步骤十一,设定流水线多轮投票容错协议在同一个高度的多轮协议中不能有两个不同的区块能获得共识, 即不能有两个不同的区块都满足可提交提案的条件,设同时满足n-f个预承诺的两个区块为P和Q, 区块A的轮次为R和区块B的轮次为R';步骤十二:当两个轮次的数值R==R'时,则区块P和区块Q的两个n-f集合的和超过f个节点,即超过f个节点在同一轮投出了两个不同的票, 则中止共识过程;步骤十三:根据锁节点A所在的某一轮a进行判断;如果R'>R 或 R'=R 且在当前轮还未投出对之前锁住提案的预投票, 锁节点更新所锁定的区块为收到的证明锁的区块;步骤十四:如果R'<R,此时不允许更新锁节点A的本地锁定块,仅允许将锁节点A置空,此时锁节点A回到无锁定块的状态,即允许锁节点A在某一轮a之后的轮中投票给任意区块;步骤十五:锁节点在首次锁住以及后续变更锁定块时需要往外发送一个预承诺,预承诺作用用于发出锁节点A发送在某一轮c锁定一个提案的声明;步骤十六:设定一旦收到了某一轮d对同一个提案的n-f个预承诺,所述提案视为已获得共识,可以被执行;并且确定没有两个互相矛盾的提案都能获得共识,以保证在同一个高度的流水线多轮投票容错协议中不会有两个不同的区块能获得共识,即不能有两个不同高度的区块都满足可提交提案的条件;步骤十七:设定同时满足n-f个预承诺的两个区块A和区块B,区块A的轮数为R、区块B的轮数为R';若当R<R'时,寻找在R'轮n-f个对B的预承诺,则在R'轮存在n-f个对B的预投票;循环寻找在R和R'之间存在一个最小的轮R*,R<R*<=R',在R*轮存在n-f个对其他区块的预投票,能让之前在R轮锁在区块W上的锁节点A能改锁或解锁;若不能寻找最小的轮R*,则没有任何锁证明的集合和n-f个在R轮预承诺的区块A的集合存在至少f个节点的交集,以防止至少有1个诚实的锁节点违背锁节点的锁的承诺;步骤十八:设定当前区块链网络中的所有锁证明的集合中,实时的最高轮数的是T;T为自然数;步骤十九:当有一半n-f个诚实节点在第R1轮锁在区块A,另一半在第R2轮锁在区块B;使R1<R2<=R,R1、R2为自然数; 步骤二十:判断在第R轮的锁证明对应的提案和区块A或区块B中的一个提案相同时,则锁住相同提案的锁节点将更新锁节点的锁的轮数,并继续投锁节点锁住的提案;另一部分的没锁住相同提案的锁节点将改锁或解锁,从而锁节点也能够接受当前提案或能够投别的提案;步骤二十一:判断在第R轮的锁证明对应提案和区块A或区块B中的一个提案都不相同时,则n-f个诚实的锁节点在收到锁证明后都进行改锁或解锁,使n-f个诚实的锁节点能够接受当前提案或能够投别的提案;步骤二十二:允许锁节点在上一轮未达到共识时进行下一轮投票,下一轮投票时要继续投在此之前轮次被锁住的区块,允许不对本轮进行预承诺的情况下进入下一轮,在本轮未锁定块的情况下先投该块相同链上的后续块,而在后续收到之前轮的锁证明的情况下再补投之前的预承诺,从而让后续轮的块的广播和投票的广播和当前轮的投票的广播可以并行;步骤二十三:判断区块链链系统中的出块是否分叉,若出块不分叉,则能够通过把串行的过程变成并行而提高吞吐量,若出块分叉,开始使用时序自调整的策略能让不同的锁节点能调整各自的节拍,尽量同步在临近的高度附近;步骤二十四:设定投票策略,以便锁节点看到对之前某个区块的锁证明时,能投出对锁证明的预承诺,以保证锁节点投过的预承诺和之后区块高度的预投票不相违背;步骤二十五:若锁证明缺锁节点的预承诺时,也可以让锁节点投和之前投的一样的分支,从而在不够n-f个预承诺时不放弃后续补投某个区块的预承诺;步骤二十六:当一个锁节点C进入高度h后,如果高度h的出块者出一个和锁节点C之前投票不在一个分支上的区块Y:如果区块Y不在锁节点C当前锁定块所在的分支上,立即放弃区块Y,进入高度h的下个高度准备收下个区块;否则,在高度h时,在锁节点C之前投票所在的分支上,对分支的当前区块投预投票并广播,等待一个小超时后进入h+1高度,小超时为设定的非常短的时间段,h为实数,并等待一个超时t,t为时间段,等待是否超时;步骤二十七:如果等来本分支某个区块U的锁证明,投更新锁定区块U为这个区块U并广播对这个区块U的预承诺,并放弃投h高度所在的出块的预投票;步骤二十八:如果等来h高度块分支的锁证明,投对h高度的区块的预投票,锁节点C的锁定块保持不变,如果等来了另一条分支的锁证明,但这个锁证明的块还是延续了锁节点C的锁定块,不投对h高度出块的预投票,锁节点C的锁定块保持不变,允许锁节点C可以接受原先投票的分支当前收到锁证明的分支;步骤二十九:如果等来和锁节点C锁定块不同分支的锁证明i,且锁证明i的高度>锁定块的高度,将自己的锁定块回退到前一个和收到锁证明i不矛盾的锁定点,并进入h+1高度。
具体实施方式
下面结合具体实施方式来进一步说明本发明的技术方案。
本发明技术方案基于流水线多轮投票容错协议过程为:在区块链系统中流水线多轮投票容错协议分为多轮, 将多轮中的每轮设两个投票阶段:预投票阶段和预承诺阶段;通过一些时序自调整的策略能让不同的节点能调整各自的节拍,尽量同步在临近的高度附近。 并且通过规定投票策略,能够尽量避免“看到了对之前某个块的PoLC,却又不能投出对它的预承诺,因为这个预承诺和之后高度的自己投过的预投票相违背”这样的情况。本发明在如果投和自己之前投的不一样的分支,相当于放弃了后续补投那些块的预承诺,虽然那些块仍然可能够n-f个预承诺(在缺这个节点的一票预承诺的情况下)。
设定有n个参与方,n为自然数, 其中有f个参与方是拜占庭节点, f为自然数;
开始设定f个参与方可以不遵守协议, 可以在需要投票的时候不投票, 或在同一轮投出两个不同的票;
设定流水线多轮投票容错协议最多允许拜占庭节点小于所有节点数的1/3, 即必须n>=3f+1;将流水线多轮投票容错协议用于在区块链系统上, 在区块链系统上的每个区块高度运行流水线多轮投票容错协议, 同时每个区块高度的区块头里带上上个区块的块头的哈希值, 用以保证每个区块高度的共识不仅确认当前区块高度的区块, 也用以确认这个区块高度之前的所有区块, 即用以确认一条链,将满足在m+1高度, m高度的区块一定被确认的共识的算法设定为满足即时最终性,m为实数;
为提高流水线多轮投票容错协议的算法的吞吐量,将流水线特性扩展到确认一条链上的后续区块中, 从而将流水线多轮投票容错协议之前一个高度多轮只能确认一个区块变为多个高度多轮能确认多个区块;
在流水线多轮投票容错协议需要多轮确定一个区块的情况下, 确定多个区块;
设定每一轮的两个阶段的投票过程, 设定区块的广播和执行并行;
本发明认定如果链不分叉,本发明能够通过把串行的过程变成并行而提高吞吐量。但如果链分叉(这里的分叉是指后续的出块者没有看到最新的区块而选择基于旧的区块后面出块,是出块的分叉,而非共识的分叉),涉及到投票策略的问题,比如当节点看到一个新高度的块不是基于他之前投票的分支出的,会影响共识安全性的问题,比如如果他已经投过别的分叉了,而之前分叉的前面的块的锁证明来了,允许补投之前块的预承诺;
设定证明锁,证明锁步骤为:在某一轮的超过或等于n-f个对同一个区块的预投票叫做一个投票集;
允许能收到这个投票集,并将同一个区块锁住的节点称为锁节点;并且锁节点可以对外广播投票集作为可以锁住同一个区块的证明;
当某个锁节点A在某一轮b锁住了某个提案k, 设定在某一轮b的后续轮b',锁节点A必须继续投预投票给提案k, 即便锁节点A收到某一轮的后续轮b'的其他提案也不能投,除非锁节点A有某一轮的后续轮b对其他区块的证明锁;
设定流水线多轮投票容错协议在同一个高度的多轮协议中不能有两个不同的区块能获得共识, 即不能有两个不同的区块都满足可提交提案的条件,设同时满足n-f个预承诺的两个区块为P和Q, 区块A的轮次为R和区块B的轮次为R';
当两个轮次的数值R==R'时,则区块P和区块Q的两个n-f集合的和超过f个节点,即超过f个节点在同一轮投出了两个不同的票, 则中止共识过程;
根据锁节点A所在的某一轮a进行判断;如果R'>R 或 R'=R 且在当前轮还未投出对之前锁住提案的预投票, 锁节点更新所锁定的区块为收到的证明锁的区块;
如果R'<R,此时不允许更新锁节点A的本地锁定块,仅允许将锁节点A置空,此时锁节点A回到无锁定块的状态,即允许锁节点A在某一轮a之后的轮中投票给任意区块;
锁节点在首次锁住以及后续变更锁定块时需要往外发送一个预承诺,预承诺作用用于发出锁节点A发送在某一轮c锁定一个提案的声明;
设定一旦收到了某一轮d对同一个提案的n-f个预承诺,提案视为已获得共识,可以被执行;并且确定没有两个互相矛盾的提案都能获得共识,以保证在同一个高度的流水线多轮投票容错协议中不会有两个不同的区块能获得共识,即不能有两个不同高度的区块都满足可提交提案的条件;
设定同时满足n-f个预承诺的两个区块A和区块B,区块A的轮数为R、区块B的轮数为R';若当R<R'时,寻找在R'轮n-f个对B的预承诺,则在R'轮存在n-f个对B的预投票;循环寻找在R和R'之间存在一个最小的轮R*,R<R*<=R',在R*轮存在n-f个对其他区块的预投票,能让之前在R轮锁在区块W上的锁节点A能改锁或解锁。若不能寻找最小的轮R*,则没有任何锁证明的集合和n-f个在R轮预承诺的区块A的集合存在至少f个节点的交集,以防止至少有1个诚实的锁节点违背锁节点的锁的承诺。
设定当前区块链网络中的所有锁证明的集合中,实时的最高轮数的是T;T为自然数;
当有一半n-f个诚实节点在第R1轮锁在区块A,另一半在第R2轮锁在区块B;使R1<R2<=R,R1、R2为自然数;
判断在第R轮的锁证明对应的提案和区块A或区块B中的一个提案相同时,则锁住相同提案的锁节点将更新锁节点的锁的轮数,并继续投锁节点锁住的提案。另一部分的没锁住相同提案的锁节点将改锁或解锁,从而锁节点也能够接受当前提案或能够投别的提案。
判断在第R轮的锁证明对应提案和区块A或区块B中的一个提案都不相同时,则n-f个诚实的锁节点在收到锁证明后都进行改锁或解锁,使n-f个诚实的锁节点能够接受当前提案或能够投别的提案。
允许锁节点在上一轮未达到共识时进行下一轮投票,下一轮投票时要继续投在此之前轮次被锁住的区块,允许不对本轮进行预承诺的情况下进入下一轮,在本轮未锁定块的情况下先投该块相同链上的后续块,而在后续收到之前轮的锁证明的情况下再补投之前的预承诺,从而让后续轮的块的广播和投票的广播和当前轮的投票的广播可以并行。
判断区块链链系统中的出块是否分叉,若出块不分叉,则能够通过把串行的过程变成并行而提高吞吐量,若出块分叉,开始使用时序自调整的策略能让不同的锁节点能调整各自的节拍,尽量同步在临近的高度附近;
设定投票策略,以便锁节点看到对之前某个区块的锁证明时,能投出对锁证明的预承诺,以保证锁节点投过的预承诺和之后区块高度的预投票不相违背;
若锁证明缺锁节点的预承诺时,也可以让锁节点投和之前投的一样的分支,从而在不够n-f个预承诺时不放弃后续补投某个区块的预承诺;
当一个节点进入高度h后,如果这个高度的出块者出了一个和这个节点之前投票不在一个分支上的块:
如果这个块不在这个节点当前锁定块所在的分支上,
立即放弃该块,进入下个高度准备收下个块
否则
如果这个块在和这个节点之前投票所在的分支上,
对它投预投票并广播,等待一个小超时后进入h+1高度
等待一个超时t
如果等来了本分支某个块的PoLC,投更新锁定块为这个块并广播对它的预承诺,并放弃投h高度的出块的预投票
如果等来了h高度块分支的PoLC, 投对h高度出的块的预投票,自己的锁定块保持不变
如果等来了另一条分支的PoLC,但这个PoLC的块还是延续了自己的锁定块,不投对h高度出块的预投票,自己的锁定块保持不变。此时该节点可以接受自己原先投票的分支当前收到PoLC的分支
如果等来了和自己锁定块不同分支的PoLC,且该PoLC的高度>锁定块的高度
将自己的锁定块回退到前一个和收到这个PoLC不矛盾的锁定点
进入h+1高度
当一个锁节点C进入高度h后,如果高度h的出块者出一个和锁节点C之前投票不在一个分支上的区块Y:如果区块Y不在锁节点C当前锁定块所在的分支上,立即放弃区块Y,进入高度h的下个高度准备收下个区块;否则,在高度h时,在锁节点C之前投票所在的分支上,对分支的当前区块投预投票并广播,等待一个小超时后进入h+1高度,小超时为设定的非常短的时间段,h为实数,并等待一个超时t,t为时间段,等待是否超时;
如果等来本分支某个区块U的锁证明,投更新锁定区块U为这个区块U并广播对这个区块U的预承诺,并放弃投h高度所在的出块的预投票;
如果等来h高度块分支的锁证明,投对h高度的区块的预投票,锁节点C的锁定块保持不变,如果等来了另一条分支的锁证明,但这个锁证明的块还是延续了锁节点C的锁定块,不投对h高度出块的预投票,锁节点C的锁定块保持不变,允许锁节点C可以接受原先投票的分支当前收到锁证明的分支;
如果等来和锁节点C锁定块不同分支的锁证明i,且锁证明i的高度>锁定块的高度,将自己的锁定块回退到前一个和收到锁证明i不矛盾的锁定点,并进入h+1高度。
以上所述, 仅为本发明较佳的具体实施方式, 但本发明的保护范围并不局限于此, 任何熟悉该技术的人在本发明所揭露的技术范围内, 可轻易想到的变化或替换, 都应涵盖在本发明的保护范围之内。因此, 本发明的保护范围应该以权利要求的保护范围为准。
有益效果:在流水线多轮投票容错协议需要多轮确定一个区块的情况下, 本发明的流水线协议可以确定多个区块;每一轮的两个阶段的投票过程, 在本发明的流水线协议里可以和区块的广播和执行并行。
Claims (1)
1.一种区块链容错共识的流水线处理方法, 其特征在于, 包括步骤一:在区块链系统中流水线多轮投票容错协议分为多轮, 将多轮中的每轮设两个投票阶段:预投票阶段和预承诺阶段;步骤二:设定有n个参与方,n为自然数, 其中有f个参与方是拜占庭节点, f为自然数;步骤三:开始设定f个参与方可以不遵守协议, 可以在需要投票的时候不投票, 或在同一轮投出两个不同的票;步骤四:设定流水线多轮投票容错协议最多允许拜占庭节点小于所有节点数的1/3, 即必须n>=3f+1;将流水线多轮投票容错协议用于在区块链系统上,在区块链系统上的每个区块高度运行流水线多轮投票容错协议, 同时每个区块高度的区块头里带上上个区块的块头的哈希值, 用以保证每个区块高度的共识不仅确认当前区块高度的区块, 也用以确认这个区块高度之前的所有区块, 即用以确认一条链,将满足在m+1高度, m高度的区块一定被确认的共识的算法设定为满足即时最终性,m为实数;步骤五:为提高流水线多轮投票容错协议的算法吞吐量,将流水线特性扩展到确认一条链上的后续区块中, 从而将流水线多轮投票容错协议之前一个高度多轮只能确认一个区块变为多个高度多轮能确认多个区块;步骤六:在流水线多轮投票容错协议需要多轮确定一个区块的情况下, 转到步骤四确定多个区块;步骤七:设定每一轮的两个阶段的投票过程, 设定区块的广播和执行并行;步骤八:设定证明锁,证明锁步骤为:在某一轮的超过或等于n-f个对同一个区块的预投票叫做一个投票集;步骤九:允许能收到所述投票集,并将同一个区块锁住的节点称为锁节点;并且锁节点可以对外广播投票集作为可以锁住所述同一个区块的证明;步骤十:当某个锁节点A在某一轮b锁住了某个提案k, 设定在某一轮b的后续轮b',锁节点A必须继续投预投票给提案k, 即便锁节点A收到某一轮的后续轮b'的其他提案也不能投, 除非锁节点A有某一轮的后续轮b对其他区块的证明锁;步骤十一,设定流水线多轮投票容错协议在同一个高度的多轮协议中不能有两个不同的区块能获得共识, 即不能有两个不同的区块都满足可提交提案的条件,设同时满足n-f个预承诺的两个区块为P和Q, 区块A的轮次为R和区块B的轮次为R';步骤十二:当两个轮次的数值R==R'时,则区块P和区块Q的两个n-f集合的和超过f个节点,即超过f个节点在同一轮投出了两个不同的票, 则中止共识过程;步骤十三:根据锁节点A所在的某一轮a进行判断;如果R'>R 或 R'=R 且在当前轮还未投出对之前锁住提案的预投票, 锁节点更新所锁定的区块为收到的证明锁的区块;步骤十四:如果R'<R,此时不允许更新锁节点A的本地锁定块,仅允许将锁节点A置空,此时锁节点A回到无锁定块的状态,即允许锁节点A在某一轮a之后的轮中投票给任意区块;步骤十五:锁节点在首次锁住以及后续变更锁定块时需要往外发送一个预承诺,预承诺作用用于发出锁节点A发送在某一轮c锁定一个提案的声明;步骤十六:设定一旦收到了某一轮d对同一个提案的n-f个预承诺,所述提案视为已获得共识,可以被执行;并且确定没有两个互相矛盾的提案都能获得共识,以保证在同一个高度的流水线多轮投票容错协议中不会有两个不同的区块能获得共识,即不能有两个不同高度的区块都满足可提交提案的条件;步骤十七:设定同时满足n-f个预承诺的两个区块A和区块B,区块A的轮数为R、区块B的轮数为R';若当R<R'时,寻找在R'轮n-f个对B的预承诺,则在R'轮存在n-f个对B的预投票;循环寻找在R和R'之间存在一个最小的轮R*,R<R*<=R',在R*轮存在n-f个对其他区块的预投票,能让之前在R轮锁在区块W上的锁节点A能改锁或解锁;若不能寻找最小的轮R*,则没有任何锁证明的集合和n-f个在R轮预承诺的区块A的集合存在至少f个节点的交集,以防止至少有1个诚实的锁节点违背锁节点的锁的承诺;步骤十八:设定当前区块链网络中的所有锁证明的集合中,实时的最高轮数的是T;T为自然数;步骤十九:当有一半n-f个诚实节点在第R1轮锁在区块A,另一半在第R2轮锁在区块B;使R1<R2<=R,R1、R2为自然数; 步骤二十:判断在第R轮的锁证明对应的提案和区块A或区块B中的一个提案相同时,则锁住相同提案的锁节点将更新锁节点的锁的轮数,并继续投锁节点锁住的提案;另一部分的没锁住相同提案的锁节点将改锁或解锁,从而锁节点也能够接受当前提案或能够投别的提案;步骤二十一:判断在第R轮的锁证明对应提案和区块A或区块B中的一个提案都不相同时,则n-f个诚实的锁节点在收到锁证明后都进行改锁或解锁,使n-f个诚实的锁节点能够接受当前提案或能够投别的提案;步骤二十二:允许锁节点在上一轮未达到共识时进行下一轮投票,下一轮投票时要继续投在此之前轮次被锁住的区块,允许不对本轮进行预承诺的情况下进入下一轮,在本轮未锁定块的情况下先投该块相同链上的后续块,而在后续收到之前轮的锁证明的情况下再补投之前的预承诺,从而让后续轮的块的广播和投票的广播和当前轮的投票的广播可以并行;步骤二十三:判断区块链链系统中的出块是否分叉,若出块不分叉,则能够通过把串行的过程变成并行而提高吞吐量,若出块分叉,开始使用时序自调整的策略能让不同的锁节点能调整各自的节拍,尽量同步在临近的高度附近;步骤二十四:设定投票策略,以便锁节点看到对之前某个区块的锁证明时,能投出对锁证明的预承诺,以保证锁节点投过的预承诺和之后区块高度的预投票不相违背;步骤二十五:若锁证明缺锁节点的预承诺时,也可以让锁节点投和之前投的一样的分支,从而在不够n-f个预承诺时不放弃后续补投某个区块的预承诺;步骤二十六:当一个锁节点C进入高度h后,如果高度h的出块者出一个和锁节点C之前投票不在一个分支上的区块Y:如果区块Y不在锁节点C当前锁定块所在的分支上,立即放弃区块Y,进入高度h的下个高度准备收下个区块;否则,在高度h时,在锁节点C之前投票所在的分支上,对分支的当前区块投预投票并广播,等待一个小超时后进入h+1高度,小超时为设定的非常短的时间段,h为实数,并等待一个超时t,t为时间段,等待是否超时;步骤二十七:如果等来本分支某个区块U的锁证明,投更新锁定区块U为这个区块U并广播对这个区块U的预承诺,并放弃投h高度所在的出块的预投票;步骤二十八:如果等来h高度块分支的锁证明,投对h高度的区块的预投票,锁节点C的锁定块保持不变,如果等来了另一条分支的锁证明,但这个锁证明的块还是延续了锁节点C的锁定块,不投对h高度出块的预投票,锁节点C的锁定块保持不变,允许锁节点C可以接受原先投票的分支当前收到锁证明的分支;步骤二十九:如果等来和锁节点C锁定块不同分支的锁证明i,且锁证明i的高度>锁定块的高度,将自己的锁定块回退到前一个和收到锁证明i不矛盾的锁定点,并进入h+1高度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011588749.4A CN113114613B (zh) | 2020-12-29 | 2020-12-29 | 一种区块链容错共识的流水线处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011588749.4A CN113114613B (zh) | 2020-12-29 | 2020-12-29 | 一种区块链容错共识的流水线处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113114613A true CN113114613A (zh) | 2021-07-13 |
CN113114613B CN113114613B (zh) | 2023-05-02 |
Family
ID=76709504
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011588749.4A Active CN113114613B (zh) | 2020-12-29 | 2020-12-29 | 一种区块链容错共识的流水线处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113114613B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114338677A (zh) * | 2021-12-30 | 2022-04-12 | 中山大学 | 一种区块链系统中的区块生成方法和相关装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019004480A1 (ja) * | 2017-06-30 | 2019-01-03 | 株式会社bitFlyer | ネットワークにおける合意形成方法及び当該ネットワークを構成するノード |
CN110289966A (zh) * | 2019-06-19 | 2019-09-27 | 西南交通大学 | 基于拜占庭容错的抗自适应攻击联盟链共识方法 |
JP2019181149A (ja) * | 2018-04-17 | 2019-10-24 | パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America | 制御方法、情報処理装置、管理システム、及び、プログラム |
CN111342971A (zh) * | 2020-02-07 | 2020-06-26 | 数据通信科学技术研究所 | 一种拜占庭共识方法和系统 |
CN111416708A (zh) * | 2020-03-16 | 2020-07-14 | 北京有链科技有限公司 | 一种区块链拜占庭容错共识方法及系统 |
CN111698315A (zh) * | 2020-06-09 | 2020-09-22 | 腾讯科技(深圳)有限公司 | 针对区块的数据处理方法、数据处理装置及计算机设备 |
CN112104482A (zh) * | 2020-08-11 | 2020-12-18 | 佛山赛思禅科技有限公司 | 一种基于并行投票的共识方法 |
-
2020
- 2020-12-29 CN CN202011588749.4A patent/CN113114613B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019004480A1 (ja) * | 2017-06-30 | 2019-01-03 | 株式会社bitFlyer | ネットワークにおける合意形成方法及び当該ネットワークを構成するノード |
JP2019181149A (ja) * | 2018-04-17 | 2019-10-24 | パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America | 制御方法、情報処理装置、管理システム、及び、プログラム |
CN110289966A (zh) * | 2019-06-19 | 2019-09-27 | 西南交通大学 | 基于拜占庭容错的抗自适应攻击联盟链共识方法 |
CN111342971A (zh) * | 2020-02-07 | 2020-06-26 | 数据通信科学技术研究所 | 一种拜占庭共识方法和系统 |
CN111416708A (zh) * | 2020-03-16 | 2020-07-14 | 北京有链科技有限公司 | 一种区块链拜占庭容错共识方法及系统 |
CN111698315A (zh) * | 2020-06-09 | 2020-09-22 | 腾讯科技(深圳)有限公司 | 针对区块的数据处理方法、数据处理装置及计算机设备 |
CN112104482A (zh) * | 2020-08-11 | 2020-12-18 | 佛山赛思禅科技有限公司 | 一种基于并行投票的共识方法 |
Non-Patent Citations (2)
Title |
---|
李洋等: "区块链扩容技术研究综述", 《电力信息与通信技术》 * |
潘晨等: "区块链可扩展性研究:问题与方法", 《计算机研究与发展》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114338677A (zh) * | 2021-12-30 | 2022-04-12 | 中山大学 | 一种区块链系统中的区块生成方法和相关装置 |
CN114338677B (zh) * | 2021-12-30 | 2022-10-21 | 中山大学 | 一种区块链系统中的区块生成方法和相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113114613B (zh) | 2023-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111371877B (zh) | 一种异构联盟链的共识方法 | |
CN108600353B (zh) | 一种区块链节点的并行块同步方法 | |
CN109886681B (zh) | 区块链共识方法及共识系统 | |
CN110798499B (zh) | 一种分布式服务的协调系统及方法 | |
CN113114613A (zh) | 一种区块链容错共识的流水线处理方法 | |
CN113132401B (zh) | 基于区块链的数据处理方法和装置 | |
CN110298754B (zh) | 一种应用于区块链的共识方法 | |
CN101465707B (zh) | 一种在同步网中保护时间传递的方法及其系统 | |
CN115065468B (zh) | 一种基于分组信誉值的pbft共识优化方法 | |
CN111342971A (zh) | 一种拜占庭共识方法和系统 | |
US11907010B2 (en) | Multi-clock synchronization in power grids | |
CN101442370B (zh) | 专用于公共突发事件的广播系统的发送器和接收器 | |
CN111179087A (zh) | 一种基于网格仲裁的联盟链共识方法 | |
CN111865469A (zh) | 一种基于区块链的工业物联网容错时间同步方法和系统 | |
CN111652617B (zh) | 跨区块链平台的业务处理系统 | |
CN112468255A (zh) | 基于网络共识结合vrf算法的区块链节点时间同步方法 | |
CN111586102A (zh) | 一种基于bft共识的联盟链组网方法 | |
CN113010903A (zh) | 一种基于区块链的饮食业油烟在线监控方法及系统 | |
CN112929186A (zh) | 一种基于通信模式结构的联盟链共识优化方法 | |
CN111917748B (zh) | 基于ipfs+联盟链的智能激光器远程控制系统和方法 | |
CN116707759B (zh) | 一种面向数据流通高并发场景的轻量级联盟链共识方法 | |
CN106254150A (zh) | 网络故障处理方法与系统 | |
CN113377869A (zh) | 一种区块链共享信息均衡存储方法 | |
CN109787702B (zh) | 一种基于时分空分复用的无线传感网时间同步的方法 | |
CN117119461B (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 200,135 Building C3, No. 101, Eshan Road, China (Shanghai) Pilot Free Trade Zone, Pudong New Area, Shanghai Applicant after: Shanghai Lingshuzhonghe Information Technology Co.,Ltd. Address before: 18ef, China Resources Times Plaza, 500 Zhangyang Road, Pudong New Area, Shanghai, 200120 Applicant before: NENG LIAN TECH. LTD. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |