CN113923217A - 一种基于dag的异步拜占庭共识方法及系统 - Google Patents
一种基于dag的异步拜占庭共识方法及系统 Download PDFInfo
- Publication number
- CN113923217A CN113923217A CN202111162710.0A CN202111162710A CN113923217A CN 113923217 A CN113923217 A CN 113923217A CN 202111162710 A CN202111162710 A CN 202111162710A CN 113923217 A CN113923217 A CN 113923217A
- Authority
- CN
- China
- Prior art keywords
- node
- event
- events
- nodes
- dag
- 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 59
- 230000006854 communication Effects 0.000 claims abstract description 17
- 230000008569 process Effects 0.000 claims abstract description 16
- 238000004891 communication Methods 0.000 claims abstract description 9
- 230000000644 propagated effect Effects 0.000 claims abstract description 9
- 238000004590 computer program Methods 0.000 claims description 10
- 238000003860 storage Methods 0.000 claims description 7
- 238000004806 packaging method and process Methods 0.000 claims description 2
- 238000012790 confirmation Methods 0.000 abstract description 9
- 230000008901 benefit Effects 0.000 abstract description 6
- 238000004422 calculation algorithm Methods 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 230000001186 cumulative effect Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000005265 energy consumption Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000005065 mining Methods 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 125000002015 acyclic group Chemical group 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000019771 cognition Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000009133 cooperative interaction Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 238000003892 spreading 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
-
- 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/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- 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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Accounting & Taxation (AREA)
- General Business, Economics & Management (AREA)
- Signal Processing (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于DAG的异步拜占庭共识方法及系统,本发明方法包括:在异步网络中指定用于构成参与共识的N个节点,针对源节点创建的基线事件,根据权重概率选择其他节点进行传播,且在事件传播过程中,各节点基于传播的事件和通信过程在本地生成DAG;参与共识的N个节点进行投票提交:各节点将本地的DAG划分为不同的轮次,通过连续轮次间见证人事件的可见、强可见作为投票依据,决定知名见证人,若全部或绝大多数知名见证人可见基线事件时,则当前基线事件达到最终确认状态,提交至链上。本发明具有可扩展性高、安全性高、去中心化程度高等优点,能有效降低网络通信开销,改善现有算法的可扩展性,提高系统吞吐量及降低确认延迟。
Description
技术领域
本发明涉及区块链技术,具体涉及一种基于DAG(有向无环图)的异步拜占庭共识方法及系统。
背景技术
万物互联(Internet of Everything,IOE)中,涉及到多中心、多主体之间的协作交互关系,在市场“无形之手”作用下必然演绎出复杂的数据协作。其存在网络分区、节点扰动,规模波动,以及节点计算、存储、网络等能力参差的多元异构等特殊性和复杂性问题,也将导致无法保证消息延迟,难以协作达成共同认知。同步的方案并不能非常好的服务于多领域数据协作的应用场景,一则大量数据会占用过多的系统资源,二则是分布时钟难以达成一致。还有设备自身性能和网络环境的影响。异步的实现思想基本都是基于事件驱动模型,对网络消息延迟没有保证。相比与重量级的同步操作,事件驱动模型可以在一个还不错的响应时间前提下,大幅度的降低对系统资源的依赖和占用,尤其是针对海量不活跃且反应慢的物联网设备,是优于同步模式的选择。异步模型可以更好地支持IOE的复杂交互,但是在异步环境中很难达成共识。
完全依赖中央管理和控制的模式在成本和效率方面面临一些挑战。当前物联网生态体系大部分仍依赖的是中心化的模式。利用像OneNet、Yeelink等,这样一个中心化的平台来负责收集数据信息,所有的设备都是通过中心化云服务连接。随着信息技术不断发展,万物互联的时代悄然来临。万物互联中各协作主体分布在不同地方和不同领域,缺乏天然互信关系,缺少执行跨域协调、仲裁等职能的中心化组织结构。仍旧采用集中式信任实体进行数据协作是不可行的。因此,有必要研究在一个无信任环境中实现数据的可信交换的机制去解决上述问题。
区块链技术凭借其优势和特性可以在不可信环境中低成本建立信任的新协作模式。但是,区块链目前面临可扩展性的挑战。在区块链系统中,数据由区块链网络上的节点验证,最后写入区块链,它不能被篡改。任何合法节点都可以随时访问区块链上的数据。同时,还可以对历史数据进行追溯。区块链还使用密码学方法来保护用户数据安全隐私。区块链网络上的节点能够对新增数据达成有效共识,并传递、同步整个网络的节点信息。上述特性在很大程度上可以弥补现有数据协作方法的不足。然而传统的区块链技术的性能问题一直被诟病。链结构典型代表比特币可扩展性差,吞吐量很低,存在51%算力攻击问题,并且挖矿所需能耗非常高,甚至可能会超过全球电力总消耗。有向无环图(DAG)是一种不同于区块链的分布式账本技术。将区块的链式存储结构转变为网状拓扑结构。使得事务上链的操作可以并发执行,并且达成共识的过程无需以高能耗为前提的挖矿。因此,需要探索利用DAG技术实现异步区块链可扩展性提高的问题。
万物互联背景下,复杂的异步交互的动态性和不确定性直接决定了数据流通和共识的难度。因此,在网络异步环境下如何快速达成共识,并提高区块链的可扩展性,已经成为一项亟待解决的关键技术问题。
发明内容
本发明要解决的技术问题:针对现有技术的上述问题,提供一种基于DAG(有向无环图)的异步拜占庭共识方法及系统,本发明利用DAG技术改进传统链式结构的性能局限,可在完全异步的网络环境中达成共识,具有可扩展性高、安全性高、去中心化程度高等优点,能有效降低网络通信开销,改善现有算法的可扩展性,提高系统吞吐量及降低确认延迟。
为了解决上述技术问题,本发明采用的技术方案为:
一种基于DAG的异步拜占庭共识方法,包括:
1)在异步网络中指定参与共识的N个节点,其中N取值为3f+1,其中f为拜占庭节点的数量;
2)在异步网络中针对源节点创建的基线事件,根据权重概率选择其他节点进行传播,且在事件传播过程中,各节点基于传播的事件及通信过程在本地生成DAG;
3)参与共识的N个节点进行投票提交:各个节点将本地的DAG划分为不同的轮次,如果第r+1轮的见证人事件可见第r轮的事件,则表示第r+1轮的见证人事件投赞成票,否则表示投反对票;第r+2轮的见证人事件强可见第r+1轮的见证人事件,则表示收集第r+1轮的见证人的赞成票的占比超过预设的绝大多数比例阈值,则判定第r轮的事件为知名见证人。若全部或绝大多数知名见证人可见基线事件时,则该基线事件达到确认状态。
可选地,步骤2)中在异步网络中针对源节点创建的基线事件,根据权重概率选择其他节点进行传播包括:源节点创建交易并打包成事件,首先选择k个邻居节点,获得k邻居节点视图并与其中一个节点建立通信,然后从建立通信的节点开始采用指定的传播协议传播该事件,在事件传播的过程中接收节点接收到发送节点发送的事件,判断该事件是否合法,如果合法则将生成新的事件发送给网络中其他节点,否则接收事件丢弃该事件。
可选地,所述选择k个邻居节点是指基于各个邻居节点的累加权重概率选择k个邻居节点,所述累加权重与节点被选择的概率成正比,所述累加权重是指节点被其它节点验证的次数。
可选地,所述指定的传播协议为Gossip about gossip协议。
可选地,任意所述发送节点发送的事件包括交易数据、时间戳和哈希值,所述哈希值包括本节点父顶点self-parent、其他节点父顶点other-parent两个哈希值,所述本节点父顶点指向本节点的上一个事件,所述其他节点父顶点指向发送事件的源节点中的该事件。
可选地,步骤2)中基于传播的事件及通信过程在本地生成DAG的步骤包括:将事件按照接收顺序存储,且为该事件生成本节点父顶点self-parent、其他节点父顶点other-parent两个哈希值,所述本节点父顶点指向本节点的上一个事件,所述其他节点父顶点指向发送事件的源节点中的该事件,并基于本节点的所有事件的本节点父顶点、本节点的所有事件的其他节点父顶点生成DAG。
可选地,步骤3)中第r+1轮的见证人事件可见第r轮的事件是指第r轮的事件为第r+1轮的见证人事件的祖先节点;所述第r+2轮的见证人事件强可见第r+1轮的见证人事件是指第r+2轮的见证人事件找到第r+1轮的见证人事件的所有路径经过绝大多数节点,所述绝大多数节点是指超过2N/3,其中N是参与共识的节点数;知名见证人可见基线事件是指某一源节点创建的基线事件为知名见证人的祖先节点。
可选地,步骤3)之后还包括源节点在参与共识的全部或绝大多数知名见证人可见基线事件后,将当前的基线事件提交,打包到链上的步骤。
此外,本发明还提供一种基于DAG的异步拜占庭共识系统,包括相互连接的微处理器和存储器,该微处理器被编程或配置以执行所述基于DAG的异步拜占庭共识方法的步骤。
此外,本发明还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行所述基于DAG的异步拜占庭共识方法的计算机程序。
和现有技术相比,本发明具有下述优点:
1、本发明可在完全异步的网络环境下,即网络不可靠,没有时间假设,消息延迟不能保证的情况下,达成共识。
2、本发明在步骤1)中,选择出N个节点参与共识,其中N的值为3f+1,f为拜占庭节点的个数,没有“领导者”、“仲裁者”等中心化角色的节点,使得整个区块链系统去中心化程度高,确保了算法的公平性。其拜占庭容错能力确保了算法的安全性。
3、本发明通过传播事件和投票提交分离的步骤,可以实现传播和确认过程并行进行,并行能够提高达成拜占庭共识的效率。
附图说明
图1为本发明实施例方法的核心流程示意图。
图2为本发明实施例方法的基本流程示意图。
图3为本发明实施例方法的传播事件过程模型。
图4为本发明实施例方法的投票提交过程模型。
具体实施方式
如图1和图2所示,本实施例基于DAG的异步拜占庭共识方法包括:
1)在异步网络中指定参与共识的N个节点,其中N取值为3f+1,其中f为拜占庭节点的数量;
2)在异步网络中针对源节点创建的基线事件,根据权重概率选择其他节点进行传播,且在事件传播过程中,各节点基于传播的事件及通信过程在本地生成DAG;
3)参与共识的N个节点进行投票提交:各个节点将本地的DAG划分为不同的轮次,如果第r+1轮的见证人事件可见第r轮的事件,则表示第r+1轮的见证人事件投赞成票,否则表示投反对票;第r+2轮的见证人事件强可见第r+1轮的见证人事件,则表示收集第r+1轮的见证人的赞成票的占比超过预设的绝大多数比例阈值,则判定第r轮的事件为知名见证人。若全部或绝大多数知名见证人可见基线事件时,则该基线事件达到确认状态。
本实施例步骤1)中在异步网络中指定N个节点参与共识,每个节点有唯一标识,有一个初始事件,节点初始权重设置为1,且记录当前网络中的节点成员列表和八卦传播事件的过程,即有向无环图;图3中4根柱子分别代表有4个节点参与共识,每个节点维护自己创建的事件。本实施例中,网络中的每个节点都有一对公钥和私钥,由密钥生成系统ed25519生成。公钥可以共享,对参与共识的节点可见。私钥是保密的。节点可以共享所持有的数据,多个节点可以同时创建交易。发送事件的节点对数据进行加密,接收节点使用私钥对数据进行签名。只有指定的接收者才能使用自己的私钥解密。
参见图3,本实施例步骤2)中在异步网络中针对源节点创建的基线事件,根据权重概率选择其他节点进行传播包括:源节点创建交易并打包成事件,首先选择k个邻居节点,获得k邻居节点视图并与其中一个节点建立通信,然后从建立通信的节点开始采用指定的传播协议传播该事件,在事件传播的过程中接收节点接收到发送节点发送的事件,判断该事件是否合法,如果合法则将生成新的事件发送给网络中其他节点,否则接收事件丢弃该事件。
本实施例中,所述选择k个邻居节点是指基于各个邻居节点的累加权重概率选择k个邻居节点,所述累加权重与节点被选择的概率成正比,所述累加权重是指节点被其它节点验证的次数。通过概率选择,形成具有导向型的传播事件方式,可以大幅提高共识达成效率,缩短共识确认的时间;而且,通过累加权重的属性对节点处理能力进行区别,以此剔除懒惰节点,加快共识达成效率。若一个节点被n个节点验证,累加权重为n+1,被选中的概率与累加权重成正比。这样可以剔除“懒惰”节点。选择权重大的节点原因是可以期望有很高的可能性快速传播消息,因为高W表示节点的通信频率比低W的节点多,W高的节点产生的事件多,活跃。可以判断这些节点是否是惰性的,将惰性节点更改为其他参与者或将其删除。
本实施例中,指定的传播协议为Gossip about gossip协议。发送事件的节点根据自己本地的有向无环图确定自己知道但是接收节点不知道的交易数据,并将该数据通过Gossip about gossip协议发送给接收节点。接收节点接收到发送节点发送的事件,判断该事件是否合法,如果合法则将生成新的事件发送给网络中其他节点。否则接收事件丢弃该事件;不断依次重复进行传播事件,该过程一直持续直到所有的节点收到在最开始创建和接受的信息;如图3所示,节点之间传播事件,形成DAG。每个节点的事件按创建时间顺序,由下至上排列。同一根柱子上,处在下方的事件是上面事件的祖先。如图3所示,节点B选择了邻居节点D,并将自己知道但是节点D不知道的消息发送给D,D接收到消息后,创建一个新的事件,如图3中标识a所示。
本实施例中,任意发送节点发送的事件包括交易数据、时间戳和哈希值,所述哈希值包括本节点父顶点、其他节点父顶点两个哈希值,本节点父顶点(self-parent hash)指向本节点的上一个事件,其他节点父顶点(other-parent hash)指向发送事件的源节点中的该事件,图3中每个圆点代表事件。
本实施例步骤2)中基于传播的事件及通信过程在本地生成DAG的步骤包括:将事件按照接收顺序存储,且为该事件生成本节点父顶点self-parent、其他节点父顶点other-parent两个哈希值,所述本节点父顶点指向本节点的上一个事件,所述其他节点父顶点指向发送事件的源节点中的该事件,并基于本节点的所有事件的本节点父顶点、本节点的所有事件的其他节点父顶点生成DAG。
本实施例步骤3)中第r+1轮的见证人事件可见第r轮的事件是指第r轮的事件为第r+1轮的见证人事件的祖先节点;所述第r+2轮的见证人事件强可见第r+1轮的见证人事件是指第r+2轮的见证人事件找到第r+1轮的见证人事件的所有路径经过绝大多数节点,所述绝大多数节点是指超过2N/3,其中N是参与共识的节点数;知名见证人可见基线事件是指某一源节点创建的基线事件为知名见证人的祖先节点。每个节点本地的有向无环图划分为不同的轮次,第r+1轮的见证人事件对第r轮的事件进行投票;第r+2轮的见证人收集第r+1轮的投票情况,当第r+2轮绝大多数(超过2N/3)见证人强可见第r+1轮见证人时,确定第r轮的事件为知名见证人;当全网绝大多数或全部知名见证人可见基线事件(第0轮见证人,DAG底部等待确认的事件)时,基线事件达到最终确认状态。
本实施例基于DAG,每个节点都可以创建交易,等待全网达成共识,节点将交易打包成事件,事件的内容除了交易之外,还包括两个哈希值,表示指向其他两个事件的指针。每个节点收到其他节点发送的事件之后,保存到本地,最终会根据哈希指针形成一个DAG。
本实施例中,新事件传播到下一个成员时,该成员将添加见证人信息。某一轮次创建的第一个事件x,称为见证人,该轮次记为r。见证人是一种特殊的事件。在某个轮次中,可能没有见证人,因为成员在此轮次中不发送事件。新一轮的见证人将对前一轮的见证人是否是知名见证人进行投票,然后下一轮的见证人对投票进行统计。只有见证人才能发送和接收选票。例如事件x是否是知名见证人,需要由后面轮次的见证人决定。第r+1轮的见证人构成投票委员会的成员。如果可见事件x,则为YES,否则为NO。如图4所示,A3,B3,C3,D3分别可见B2,即A3,B3,C3,D3都对B2投了YES。
本实施例中步骤3)中确认时,如果第r+2轮的见证人能够强可见第r+1轮的见证人,则收集该见证人的选票,且票数超过2/3,即收到绝对多数YES时,则确定该事件是知名见证人。如图4所示,B4分别强可见A3,B3,C3,D3,即收到4个YES,确定B2为知名见证人。如果未收集到足够的选票,则会继续进行更多轮次,直到做出决定为止。确定事件是否是知名见证人不会永远持续下去。为了保证算法的终止性,如果无法通过r+n轮(n通常为10)来确定见证人是否是知名见证人,则加一个硬币轮次。
本实施例中,步骤3)之后还包括源节点在参与共识的全部或绝大多数知名见证人可见基线事件后,将当前的基线事件提交,打包到链上的步骤。当基线事件被全部或绝大多数知名见证人可见时,打包到区块上,再对新的基线事件进行确认。使得节点可以释放部分内存,随着节点数目增多,不会导致节点同步的信息越来越多。根据链式结构中块的首尾相接排列,自然以线性方式对交易进行全排序。
为了对本实施例基于DAG的异步拜占庭共识方法进行验证,分别从活性、安全性以及可扩展性三个指标进行验证。(1)活性:应用本实施例异步拜占庭共识方法的系统中拜占庭节点小于N/3时(N为参与共识的总节点数),系统行为及状态将符合预期;(2)安全性:本实施例拜占庭共识方法防篡改、可追溯,任何已经确认的记录都不会被更改,并在记入区块后可被索引、追溯;此外,还可抵御双花攻击,分布式拒绝服务攻击(DDoS)等;(3)可扩展性:可扩展性包括吞吐量和确认延迟两个指标。在参与拜占庭共识节点规模达到30的前提下,应用本实施例拜占庭共识方法的系统吞吐量不低于1000TPS,能够达到秒级确认延时。因此,本实施例基于DAG的异步拜占庭共识方法能够实现异步网络场景下的快速达成最终确认性的拜占庭容错共识,具有可扩展性高、安全性高和去中心化程度高等优点,对于数据资源建设、数字化基础建设具有重要科学意义。
综上所述,本实施例中基于DAG的异步拜占庭共识方法预先在网络中确定参与共识的节点;某一节点概率选择其邻居节点,形成邻居节点视图,与其中节点进行通信;节点之间通过Gossip about gossip协议传播事件,在节点本地保存通信过程;根据节点本地的DAG进行投票和提交两阶段的共识确认;当基线事件达到最终确认的状态时,打包至区块,再对新的基线事件进行投票确认。本实施例基于DAG的异步拜占庭共识方法达成了下述设计决策:(1)所有非拜占庭的诚实节点输入相同,结果也必然相同;(2)节点之间的错误是独立的,互不相关;(3)一个诚实节点输出结果V,其他诚实节点也将输出V。本实施例基于DAG的异步拜占庭共识方法基于下述设计原则:(1)在完全异步网络环境中,消息可能丢失,延迟到达,以计算资源的高开销换取网络通信的低负载;(2)通过DAG技术改善传统链式结构的性能局限;(3)拜占庭节点的行为是任意的,拜占庭节点之间可以合谋,可以发送恶意信息,制造虚假消息等;(4)传播事件和投票提交的过程分离,并行进行;(5)投票时,验证方可以验证投票者是否是先验节点;(6)投票确认共识的过程不会一直进行下去,算法可终止。最终,使得本实施例方法通过利用DAG技术改进传统链式结构的性能局限,可在完全异步的环境中达成共识,具有可扩展性高、安全性高、去中心化程度高等优点。
此外,本实施例还提供一种基于DAG的异步拜占庭共识系统,包括相互连接的微处理器和存储器,该微处理器被编程或配置以执行前述基于DAG的异步拜占庭共识方法的步骤。
此外,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行前述基于DAG的异步拜占庭共识方法的计算机程序。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种基于DAG的异步拜占庭共识方法,其特征在于,包括:
1)在异步网络中指定参与共识的N个节点,其中N取值为3f+1,其中f为拜占庭节点的数量;
2)在异步网络中针对源节点创建的基线事件,根据权重概率选择其他节点进行传播,且在事件传播过程中,各节点基于传播的事件及通信过程在本地生成DAG;
3)参与共识的N个节点进行投票提交:各个节点将本地的DAG划分为不同的轮次,如果第r+1轮的见证人事件可见第r轮的事件,则表示第r+1轮的见证人事件投赞成票,否则表示投反对票;第r+2轮的见证人事件强可见第r+1轮的见证人事件,则表示收集第r+1轮的见证人的赞成票的占比超过预设的绝大多数比例阈值,则判定第r轮的事件为知名见证人;若全部或绝大多数知名见证人可见基线事件时,则该基线事件达到确认状态。
2.根据权利要求1所述的基于DAG的异步拜占庭共识方法,其特征在于,步骤2)中在异步网络中针对源节点创建的基线事件,根据权重概率选择其他节点进行传播包括:源节点创建交易并打包成事件,首先选择k个邻居节点,获得k邻居节点视图并与其中一个节点建立通信,然后从建立通信的节点开始采用指定的传播协议传播该事件,在事件传播的过程中接收节点接收到发送节点发送的事件,判断该事件是否合法,如果合法则将生成新的事件发送给网络中其他节点,否则接收事件丢弃该事件。
3.根据权利要求2所述的基于DAG的异步拜占庭共识方法,其特征在于,所述选择k个邻居节点是指基于各个邻居节点的累加权重概率选择k个邻居节点,所述累加权重与节点被选择的概率成正比,所述累加权重是指节点被其他节点验证的次数。
4.根据权利要求2所述的基于DAG的异步拜占庭共识方法,其特征在于,所述指定的传播协议为Gossip about gossip协议。
5.根据权利要求2所述的基于DAG的异步拜占庭共识方法,其特征在于,任意所述发送节点发送的事件包括交易数据、时间戳和哈希值,所述哈希值包括本节点父顶点self-parent、其他节点父顶点other-parent两个哈希值,所述本节点父顶点指向本节点的上一个事件,所述其他节点父顶点指向发送事件的源节点中的该事件。
6.根据权利要求5所述的基于DAG的异步拜占庭共识方法,其特征在于,步骤2)中基于传播的事件及通信过程在本地生成DAG的步骤包括:将事件按照接收顺序存储,且为该事件生成本节点父顶点self-parent、其他节点父顶点other-parent两个哈希值,所述本节点父顶点指向本节点的上一个事件,所述其他节点父顶点指向发送事件的源节点中的该事件,并基于本节点的所有事件的本节点父顶点、本节点的所有事件的其他节点父顶点生成DAG。
7.根据权利要求1所述的基于DAG的异步拜占庭共识方法,其特征在于,步骤3)中第r+1轮的见证人事件可见第r轮的事件是指第r轮的事件为第r+1轮的见证人事件的祖先节点;所述第r+2轮的见证人事件强可见第r+1轮的见证人事件是指第r+2轮的见证人事件找到第r+1轮的见证人事件的所有路径经过绝大多数节点,所述绝大多数节点是指超过2N/3,其中N是参与共识的节点数;知名见证人可见基线事件是指某一源节点创建的基线事件为知名见证人的祖先节点。
8.根据权利要求1所述的基于DAG的异步拜占庭共识方法,其特征在于,步骤3)之后还包括源节点在参与共识的全部或绝大多数知名见证人可见基线事件后,将当前的基线事件提交,打包到链上的步骤。
9.一种基于DAG的异步拜占庭共识系统,包括相互连接的微处理器和存储器,其特征在于,该微处理器被编程或配置以执行权利要求1~8中任意一项所述基于DAG的异步拜占庭共识方法的步骤。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质中存储有被编程或配置以执行权利要求1~8中任意一项所述基于DAG的异步拜占庭共识方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111162710.0A CN113923217B (zh) | 2021-09-30 | 2021-09-30 | 一种基于dag的异步拜占庭共识方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111162710.0A CN113923217B (zh) | 2021-09-30 | 2021-09-30 | 一种基于dag的异步拜占庭共识方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113923217A true CN113923217A (zh) | 2022-01-11 |
CN113923217B CN113923217B (zh) | 2024-04-16 |
Family
ID=79237543
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111162710.0A Active CN113923217B (zh) | 2021-09-30 | 2021-09-30 | 一种基于dag的异步拜占庭共识方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113923217B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115002221A (zh) * | 2022-06-06 | 2022-09-02 | 长春理工大学 | 一种适用于物联网的区块链共识方法及系统 |
CN116723200A (zh) * | 2023-08-11 | 2023-09-08 | 杭州趣链科技有限公司 | 集群变更方法、装置、电子设备及计算机可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109523260A (zh) * | 2018-11-28 | 2019-03-26 | 段红 | 一种动态节点选举的高并发共识机制 |
CN110198233A (zh) * | 2019-05-09 | 2019-09-03 | 中国人民解放军国防科技大学 | 基于可信执行环境和有向无环图的区块链共识方法及系统 |
WO2019222993A1 (zh) * | 2018-05-25 | 2019-11-28 | 北京大学深圳研究生院 | 一种基于信任关系的区块链共识方法 |
CN111414373A (zh) * | 2020-03-18 | 2020-07-14 | 深圳市网心科技有限公司 | 一种共识方法和共识系统 |
CN113034142A (zh) * | 2021-01-29 | 2021-06-25 | 腾讯科技(深圳)有限公司 | 一种交易数据处理方法、装置以及计算机设备 |
-
2021
- 2021-09-30 CN CN202111162710.0A patent/CN113923217B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019222993A1 (zh) * | 2018-05-25 | 2019-11-28 | 北京大学深圳研究生院 | 一种基于信任关系的区块链共识方法 |
CN109523260A (zh) * | 2018-11-28 | 2019-03-26 | 段红 | 一种动态节点选举的高并发共识机制 |
CN110198233A (zh) * | 2019-05-09 | 2019-09-03 | 中国人民解放军国防科技大学 | 基于可信执行环境和有向无环图的区块链共识方法及系统 |
CN111414373A (zh) * | 2020-03-18 | 2020-07-14 | 深圳市网心科技有限公司 | 一种共识方法和共识系统 |
CN113034142A (zh) * | 2021-01-29 | 2021-06-25 | 腾讯科技(深圳)有限公司 | 一种交易数据处理方法、装置以及计算机设备 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115002221A (zh) * | 2022-06-06 | 2022-09-02 | 长春理工大学 | 一种适用于物联网的区块链共识方法及系统 |
CN115002221B (zh) * | 2022-06-06 | 2023-06-23 | 长春理工大学 | 一种适用于物联网的区块链共识方法及系统 |
CN116723200A (zh) * | 2023-08-11 | 2023-09-08 | 杭州趣链科技有限公司 | 集群变更方法、装置、电子设备及计算机可读存储介质 |
CN116723200B (zh) * | 2023-08-11 | 2023-11-10 | 武汉趣链数字科技有限公司 | 集群变更方法、装置、电子设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113923217B (zh) | 2024-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11657036B2 (en) | Methods and apparatus for a distributed database that enables deletion of events | |
US11256823B2 (en) | Methods and apparatus for efficiently implementing a distributed database within a network | |
US11232081B2 (en) | Methods and apparatus for a distributed database within a network | |
WO2022076429A1 (en) | Methods and apparatus for a distributed database within a network | |
CN113923217B (zh) | 一种基于dag的异步拜占庭共识方法及系统 | |
Oh et al. | Graph learning BFT: A design of consensus system for distributed ledgers | |
RU2776826C2 (ru) | Способы и устройство для распределенной базы данных, которая позволяет удалять события | |
RU2775994C2 (ru) | Способы и устройство эффективной реализации распределенной базы данных в сети |
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 |