CN108984789A - 分布式记账的方法、装置、存储介质及电子设备 - Google Patents
分布式记账的方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN108984789A CN108984789A CN201810854150.7A CN201810854150A CN108984789A CN 108984789 A CN108984789 A CN 108984789A CN 201810854150 A CN201810854150 A CN 201810854150A CN 108984789 A CN108984789 A CN 108984789A
- Authority
- CN
- China
- Prior art keywords
- transaction
- events
- transaction events
- event
- clue
- 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 66
- 125000002015 acyclic group Chemical group 0.000 claims abstract description 82
- 238000012545 processing Methods 0.000 claims abstract description 29
- 230000008569 process Effects 0.000 claims description 26
- 230000001186 cumulative effect Effects 0.000 claims description 22
- 238000012790 confirmation Methods 0.000 abstract description 8
- 230000000694 effects Effects 0.000 abstract description 2
- 238000012795 verification Methods 0.000 description 24
- 238000010586 diagram Methods 0.000 description 12
- 230000007246 mechanism Effects 0.000 description 12
- 238000004422 calculation algorithm Methods 0.000 description 11
- RTZKZFJDLAIYFH-UHFFFAOYSA-N Diethyl ether Chemical compound CCOCC RTZKZFJDLAIYFH-UHFFFAOYSA-N 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 235000019013 Viburnum opulus Nutrition 0.000 description 5
- 244000071378 Viburnum opulus Species 0.000 description 5
- 238000004806 packaging method and process Methods 0.000 description 5
- 238000005295 random walk Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 230000003071 parasitic effect Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000010485 coping Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012856 packing Methods 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 206010010356 Congenital anomaly Diseases 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000803 paradoxical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- 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/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
-
- 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
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- Strategic Management (AREA)
- Theoretical Computer Science (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种分布式记账的方法、装置、存储介质及电子设备,其中,该方法包括:获取交易事件,并以有向无环结构存储交易事件,交易事件包括一项或多项交易记录;根据当前阶段以有向无环结构存储的所有交易事件生成当前轮的阶段区块,并对当前轮的阶段区块进行共识处理;在当前轮的阶段区块完成共识后,将当前轮的阶段区块以链状结构连接至上一轮的阶段区块。该方法将有向无环结构和链状结构有机结合,通过有向无环结构记录交易事件,从而可以并行处理交易事件,提高了交易吞吐量,减小了交易确认延时;利用链状结构存储每一轮的阶段区块,可以使得区块中的交易事件达成一个确定的共识状态,为智能合约的执行提供了保障,提高系统安全性。
Description
技术领域
本发明涉及数据处理技术领域,特别涉及一种分布式记账的方法、装置、存储介质及电子设备。
背景技术
区块链是一个基于共识机制的,去中心化公开数据库。所谓共识机制是指在分布式系统中保证数据一致性的算法;去中心化是指所有节点可自由选择参与或离开,参与的节点权利对等;公开数据库是指所有人都可以随时查看区块链上的历史数据。所以,区块链是由许多对等节点组成,通过共识机制保证数据的一致性,从而形成的一个统一的分布式账本。
以比特币和以太坊为代表的传统的区块链采用链状结构,本质是形成一颗哈希树用于检索,通过在树中查找一条合法的最长链来确认交易。其他类似的公链,虽然可以通过改进共识机制,来提高区块链的共识效率。但是由于链状结构的效率低下,传统区块链不可避免的面临低吞吐量,交易确认延时,区块膨胀等先天性悖论问题。
传统区块链的共识性能和可扩展性已经成为严重阻碍区块链发展的瓶颈,而有向无环图(Directed Acyclic Graph,DAG)由于其独特的拓扑结构,在与区块链技术相结合后将有可能真正意义上突破现有的瓶颈。DAG结构与传统链状结构相比存在诸多方面的优势,但是,目前DAG在区块链领域的应用还存在很多亟待解决的问题,例如安全性风险、无法实现智能合约等。
DAG是一种有向无环图结构,所谓无环是指从任意一个节点出发,沿着有序边任意移动,都不可能回到出发的节点。图是树的一种泛化,通过深度优先或广度优先算法可以将图拆分成“森林”,而DAG图由于其规则的定义,可以被更容易的拆分成“森林”用于实际的搜索过程,所以DAG图应用最为广泛。将DAG结构应用于区块链领域,颠覆了传统区块链的链状结构,赋予了区块链系统并行处理的能力。现有将DAG应用于分布式记账的研究团队包括:IOTA(一种用于物联网IOT行业的加密货币)团队、Byteball(字节雪球)团队等。
在IOTA的设计原则中,节点发布交易之前必须在全网挑选两个交易作为父交易,通过验证两个父交易是否合法,来加入DAG结构。新加入的交易虽然只验证了两个父交易,但是通过父交易之间的验证关系,相当于间接验证了这个交易的之前所有的祖先交易。IOTA采用权重积分的策略来选择父交易,即通过权重的高低来确定交易被选中的概率,权重越高的交易,越容易被选为父交易,也就越容易被确认。
但是IOTA存在一些众所周知的问题。例如,IOTA使用权重积分的策略来为新加入的交易选择父交易,但是单纯的权重积分策略不能解决寄生链攻击的问题,攻击者总是可以构建比他要推翻的交易权重更高的交易来形成双花问题。例如,某笔交易A经过一段时间后,获得较高权重而被确认。但是,攻击者可以在本地发起一笔与交易A冲突的双花交易B,并且伪造一个较高的自身权重给B。一旦该双花交易B进入DAG网络中,就可能推翻交易A。而且交易A所在的分支也会因为权重较低而得不到后续新加入交易的确认,从而权重越来越低。另外,IOTA在实施层面也存在一些问题。为了使交易得到确认,IOTA在系统中加入一个协调者的角色,这个协调者其实就是一个频繁发交易的中心化服务器。IOTA默认协调者发出的交易不能被伪造,且只有被协调者发出的交易认证过的交易才会得到确认。一旦系统移除协调服务器,则网络中不会有交易得到确认,整个系统就也无法运行了。而且,一旦协调器被攻击或伪造,则整个网络都会受到影响。这显然与区块链去中心化的理念不符。
字节雪球团队在DAG结构中引入主链和见证人的概念,同时鼓励新加入的交易验证多个父辈交易单元。但是由于每个节点都需要维护一个见证人列表,这不仅会造成单元数据变大,攻击者也可以伪造见证人列表来形成双花的局面。另外,由于字节雪球复杂的见证人机制,使得它的TPS(Transaction Per Second,每秒事务处理量)只有千余,效率比较低下。字节雪球还规定了中心化的见证人机制,只能由公众信任的见证人执行交易确认,一旦见证人中存在恶意的节点,会造成整个系统的崩溃,这有违去中心化的初衷。
将DAG应用于区块链领域,无疑是一项伟大的创新。然而,目前DAG结构在区块链领域的应用还存在很多亟待解决的问题。
1、安全性问题:区块链本质是一个价值交换网络,所以追求高安全性成为了区块链技术设计的原则和前提。区块链必须保证能够解决拜占庭问题,同时能够抵抗公共网络上的各种攻击。IOTA的权重积分策略无法解决寄生链攻击的问题,攻击者总是可以构建比它要推翻的节点权重更高的交易,从而形成双花问题。字节雪球中每个节点都需要维护一个见证人列表,这不仅会造成单元数据变大,攻击者也可以伪造见证人列表来形成双花的局面。
2、存在中心化风险:IOTA和字节雪球都存在一个中心化节点,控制网络的同步进程。在一旦这些中心化节点崩溃或遭到恶意攻击,会影响整个系统的运行。
3、缺乏智能合约的实现:比特币的脚本系统使用非图灵完备的堆栈语言,只能实现非常有限的功能,无法满足在区块链上开发应用的需求。如何在有限的存储空间中设计一个完备合约语言和高效的底层虚拟机,甚至将传统的开发语言移植到区块链上,一直是重要的研究方向。以太坊的智能合约和以太坊虚拟机给分布式应用的发展提供了无限可能,因此成为了第二代区块链技术的代表。
发明内容
本发明提供一种分布式记账的方法、装置、存储介质及电子设备,用以解决现有区块链交易吞吐量低的缺陷。
本发明实施例提供的一种分布式记账的方法,包括:
获取交易事件,并以有向无环结构存储所述交易事件,所述交易事件包括一项或多项交易记录;
根据当前阶段以有向无环结构存储的所有交易事件生成当前轮的阶段区块,并对所述当前轮的阶段区块进行共识处理;
在当前轮的阶段区块完成共识后,将所述当前轮的阶段区块以链状结构连接至上一轮的阶段区块。
在一种可能的实现方式中,所述对所述当前轮的阶段区块进行共识处理包括:
确定所述当前轮的阶段区块中的线索交易事件,并确定所述线索交易事件中的有效线索交易事件,所述线索交易事件为当前阶段以有向无环结构存储的所有的交易事件中未被其他交易事件验证过的叶子交易事件,且所述有效线索交易事件可直接或间接验证所述当前轮的阶段区块中的其他交易事件;
将所有的所述有效线索交易事件的集合作为当前轮的线索区块,根据所述当前轮的线索区块与其他节点执行共识处理,当所述当前轮的线索区块完成共识时,所述当前轮的阶段区块完成共识。
在一种可能的实现方式中,所述确定所述线索交易事件中的有效线索交易事件包括:
确定当前阶段以有向无环结构存储的非法交易事件,并将与所述非法交易事件相关的线索交易事件作为无效线索交易事件;
将除所述无效线索交易事件以外的其他线索交易事件作为有效线索交易事件。
在一种可能的实现方式中,所述以有向无环结构存储所述交易事件包括:
选择待验证的一个或多个历史交易事件作为所述交易事件的父交易事件,并对所有的所述父交易事件进行验证;
在所有的父交易事件验证通过后,将所述交易事件有向连接至所有的父交易事件。
在一种可能的实现方式中,所述选择待验证的一个或多个历史交易事件作为所述交易事件的父交易事件包括:
确定每个历史交易事件的累积权重,所述历史交易事件的累积权重为所述历史交易事件的自身权重和所述历史交易事件的所有子交易事件的自身权重之和,所述历史交易事件的子交易事件为可直接或间接验证所述历史交易事件的其他交易事件;
根据所述历史交易事件的累积权重选择一个或多个历史交易事件作为所述交易事件的父交易事件;历史交易事件的累积权重越大,所述历史交易事件被选中的概率越大。
在一种可能的实现方式中,所述根据当前阶段以有向无环结构存储的所有交易事件生成当前轮的阶段区块包括:
确定当前阶段以有向无环结构存储的所有的交易事件和其中的非法交易事件;
移除所述非法交易事件以及直接或间接验证所述非法交易事件的所有子交易事件,并将与所述非法交易事件相关的线索交易事件作为无效线索交易事件,所述线索交易事件为当前阶段以有向无环结构存储的所有的交易事件中未被其他交易事件验证过的叶子交易事件;
将除所述无效线索交易事件以外的其他线索交易事件作为有效线索交易事件,并移除不能被所述有效线索交易事件直接或间接验证的交易事件;
将执行移除过程后剩余的交易事件作为有效交易事件,并将以有向无环结构存储的所有有效交易事件作为当前轮的阶段区块。
基于同样的发明构思,本发明实施例还提供一种分布式记账的装置,包括:
交易模块,用于获取和处理交易事件,以有向无环结构存储所述交易事件,所述交易事件包括一项或多项交易记录;
共识模块,用于根据当前阶段以有向无环结构存储的所有交易事件生成当前轮的阶段区块,并对所述当前轮的阶段区块进行共识处理;
区块链模块,用于在当前轮的阶段区块完成共识后,将所述当前轮的阶段区块以链状结构连接至上一轮的阶段区块。
本发明还提供一种计算机存储介质,所述计算机存储介质存储有计算机可执行指令,所述计算机可执行指令用于上述任意一项的方法。
本发明实施例还提供一种电子设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述任意一项所述的方法。
本发明实施例提供的一种分布式记账的方法、装置、存储介质及电子设备,以有向无环结构记录交易事件,并以链状结构连接每个共识阶段的阶段区块,从而将有向无环结构和链状结构有机结合;通过有向无环结构记录交易事件,从而可以并行处理交易事件,提高了交易吞吐量,减小了交易确认时延,大大提高了系统的可扩展性。同时,利用链状结构存储每一轮的阶段区块,可以使得区块中的交易事件达成一个确定的共识状态和顺序,为智能合约的执行提供了保障。此外,该方法不仅可以保留有向无环结构的高效性,也具备链状结构的安全性,从而可以有效应对点对点网络中的各种攻击。使用线索区块来代替整个阶段区块完成共识过程,即只需要提供少量的有效线索交易事件即可替代原本需要共识的所有交易事件,有效减小了共识区块的大小,降低了共识对网络带宽和机器性能的影响,大大提高了共识机制的共识效率。通过移除所有的非法交易事件以及具有非法嫌疑的交易事件,从而有效保证本轮生成的阶段区块的有效性,并保证系统的安全性。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例中分布式记账的方法的流程图;
图2为本发明实施例中交易事件的示意图;
图3为本发明实施例中生成线索区块和阶段区块的示意图;
图4为本发明实施例中账本结构的整体示意图;
图5为本发明实施例中移除非法交易事件的示意图;
图6为本发明实施例中交易事件的权重示意图;
图7为本发明实施例中交易事件的排序示意图;
图8为本发明实施例中分布式记账的装置的结构图;
图9为本发明实施例中实施分布式记账方法的电子设备的结构示意图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
本发明实施例提供的一种分布式记账的方法,用于利用网络中的多个节点实现分布式记账,参见图1所示,该方法包括步骤101-103:
步骤101:获取交易事件,并以有向无环结构存储交易事件,交易事件包括一项或多项交易记录。
本发明实施例中,每笔交易对应一个交易记录,一个交易事件中可以包含一项交易记录,也可以将多个交易记录合并处理,以提高处理效率。本地节点获取交易事件具体可以包括两种情况:本地节点自身生成一个交易事件;或者本地节点接收其他节点发送至本地节点的一个交易事件。
此外,本地节点以有向无环结构存储交易事件。在本地节点获取到交易事件后,将本次获取到的交易记录以有向无环结构连接至历史交易记录,该历史交易记录指的是在本次的交易记录之前已经存在的其他交易记录。例如,本次获取的交易记录为交易记录A,在交易记录A之前存在交易记录B和C,即B和C为历史交易记录,此时存储交易记录A时可以连接至交易记录B上,或者连接至交易记录C上,或者同时连接至交易记录B和C上,具体可根据实际情况而定。当再次获取到一个交易记录D时,此时交易记录A也为历史交易记录,则交易记录D连接至历史交易记录A、B、C中的一个或多个。
本发明实施例中,可以通过连接至历史交易事件的方式来表示验证该历史交易事件,所连接的历史交易事件为本次交易记录的父交易事件;交易事件的一种结构参见图2所示,其中,右侧的圆表示整个交易事件,该交易事件包括n项交易记录,每个交易记录是已签名的交易;该交易事件以有向无环结构连接了两个父交易事件;具体的,该交易事件中可包含父交易事件的地址指针,或者包含父交易事件的哈希值,通过地址指针或哈希值确定该交易事件连接了哪个历史交易事件。
需要说明的是,有向无环结构中的“有向”指的是本次的交易记录连接至历史交易记录是有向的,“无环”指的是所有的有向连接不会形成有向环。可选的,该有向无环结构具体可以为有向无环图。
步骤102:根据当前阶段以有向无环结构存储的所有交易事件生成当前轮的阶段区块,并对当前轮的阶段区块进行共识处理。
本发明实施例中,记账过程是分阶段的,每个阶段对应一轮,具体可以根据时间长度划分阶段(比如每10分钟作为一个阶段),也可以根据交易事件的数量划分阶段(比如交易事件的数量达到预设数量后当前阶段结束,并进入下一个阶段重新统计交易事件的数量),也可采用其他划分阶段的方式,本实施例对此不做限定。在当前阶段结束时(比如交易事件的数量达到预设数量),说明本轮的记账过程结束,此时确定当前轮中以有向无环结构存储的所有的交易事件,并生成当前轮的阶段区块,该当前轮的阶段区块包含当前轮中所有的有效交易事件;该有效交易事件为当前轮中除了无效交易事件(例如双花交易事件等)之外的交易事件。即,当前轮的阶段区块以区块形式存储了当前轮的所有有效交易事件,且有效交易事件之间是以有向无环结构存储的。之后利用共识算法对当前轮的阶段区块进行共识处理,即可完成对当前轮的所有有效交易事件的共识。其中,该共识过程为分布式网络中各个节点之间的共识过程,具体可采用现有的共识算法。
步骤103:在当前轮的阶段区块完成共识后,将当前轮的阶段区块以链状结构连接至上一轮的阶段区块。
本发明实施例中,若当前轮的阶段区块完成共识,说明网络中的所有节点均承认该阶段区块,即承认该阶段区块内所有的有效交易事件。同时,在上一轮(上一阶段)中也会生成一个完成共识的阶段区块,即上一轮的阶段区块,此时将当前轮的阶段区块以链状结构连接至上一轮的阶段区块,完成对阶段区块的存储。通过链状结构记录阶段区块,可以有效保证阶段区块中的交易不被攻击者推翻,从而解决寄生链攻击的问题;其中,以链状结构存储当前轮的阶段区块时,具体可为当前轮的阶段区块添加上一轮的阶段区块的区块标识,该区块标识可以为上一轮的阶段区块的哈希值;利用该区块标识实现当前轮的阶段区块与连接上一轮的阶段区块之间的链式连接。
同时,智能合约的执行建立在共识和有序的基础之上。一方面,合约必须进行全网共识之后才能出发自动状态机的执行;另一方面,必须要能够确定合约之间的顺序,才能保证合约的正确执行。而单纯的有向无环结构(比如DAG结构)通过权重来判断交易状态,所达成的共识都是暂时的,没有一个确定的状态,任何权重的交易都可能会被推翻,所以无法确定智能合约在全网达成共识的时机。基于区块链技术的智能合约,能够避免恶意行为对智能合约的干扰,发挥智能合约在成本效率方面的优势。将智能合约以数字化的形式写入区块链中,由区块链技术的特性来保障智能合约的存储、读取、执行等整个过程透明、可跟踪且不可篡改。
本发明实施例将有向无环结构与链状结构结合,保持了有向无环结构的高并发性和高吞吐量,同时对有向无环结构中的交易进行打包共识,连成链状结构,由于链状结构可以确定交易的确认状态和先后顺序,从而可以在系统中实现和部署智能合约。
本发明实施例提供的一种分布式记账的方法,以有向无环结构记录交易事件,并以链状结构连接每个阶段的阶段区块,从而将有向无环结构和链状结构有机结合;通过有向无环结构记录交易事件,从而可以并行处理交易事件,提高了交易吞吐量,减小了交易确认延时;随着交易速度的增加,交易确认速度更快,大大提高了系统的可扩展性。利用链状结构存储每一轮的阶段区块,可以使得区块中的交易事件达成一个确定的共识状态,为智能合约的执行提供了保障。此外,该方法不仅可以保留有向无环结构的高效性,也具备链状结构的安全性,从而可以有效应对点对点网络中的各种攻击。
本发明另一实施例提供一种分布式记账的方法,该方法包括上述实施例中的步骤101-103,其实现原理以及技术效果参见图1对应的实施例。同时,本发明实施例中基于部分交易事件实现阶段区块的共识,以提高共识效率。
现有传统的区块链技术(比如比特币和以太坊等采用的技术)有多方原因限制了区块链分布式节点之间的共识速度,导致共识效率较低。具体原因如下:
(1)、区块大小限制了共识速度:
共识的要求是每个节点都可以及时同步到区块的完整信息。以比特币、以太坊等为代表的区块链都使用轮次的概念来增长区块,每一轮所有节点会对一个区块达成共识,所以每一轮都必须完成这个区块的同步。目前,由于每一个区块共识的时间和每一个区块大小对包含交易数量的限制,最高TPS(Transaction Per Second,每秒事务处理量)也只能达到千级。
(2)、网络带宽限制了区块所能包含的交易数量:
传统区块链中,一个区块通常会包含很多交易,区块的大小可以根据共识策略自由选择。如果区块过小,会增加共识的频率和成本;如果区块过大,则会因为网络原因,降低共识效率。所以,区块的大小需要在共识的时间和网络同步速度之间达到一个平衡。区块大小的限制影响了区块中能包含的交易数量的多少,一个大小为2M的区块最多只能包含6万条交易的哈希。
(3)、机器性能影响了交易验证的速度:
除了网络同步时延以外,另一个影响共识效率的主要因素是:交易验证的速度。所有节点不仅需要同步本轮共识的区块,还需要对当前区块进行验证,以证明该区块的合法性。如果节点性能较差,则会严重降低节点的共识速度。而很多基于投票的共识机制(如PBFT,Practical Byzantine Fault Tolerance,意为实用拜占庭容错算法)通常需要等待大部分节点验证完成才能生效,所以这些共识机制在面临大部分节点出现验证性能瓶颈的情况下,通常表现很差。
本发明实施例中,步骤102“对当前轮的阶段区块进行共识处理”具体包括步骤A1-A2:
步骤A1:确定当前轮的阶段区块中的线索交易事件,并确定线索交易事件中的有效线索交易事件,线索交易事件为当前阶段以有向无环结构存储的所有的交易事件中未被其他交易事件验证过的叶子交易事件,且有效线索交易事件可直接或间接验证当前轮的阶段区块中的其他交易事件。
步骤A2:将所有的有效线索交易事件的集合作为当前轮的线索区块,根据当前轮的线索区块与其他节点执行共识处理,当当前轮的线索区块完成共识时,当前轮的阶段区块完成共识。
本发明实施例中,由于每个阶段区块中的交易事件是以有向无环结构(例如有向无环图)记录的,每个新增的交易事件连接至之前存在的历史交易事件,故在当前阶段结束时,该阶段区块中会存在未被其他交易事件连接的事件,即存在未被其他交易事件验证过的交易事件;此时,该类交易事件在整个有向无环结构中处于叶子位置,即为线索交易事件。如图3所示,图3中的每个圆表示一个交易事件,共12个交易事件(交易事件A-交易事件K);图3中的箭头表示指向父交易事件的方向、或表示当前的交易事件的连接方向、或表示交易事件之间的验证关系(或父子关系,箭头指向的交易事件为父交易事件)。以交易事件K为例,将交易事件H和I作为交易事件K的父交易事件,即交易事件K(生成交易事件K的节点)验证交易事件H和I,在验证通过后即将交易事件K连接至交易事件H和交易事件I。同时,由于没有交易事件验证交易事件K和I,则交易事件K和I为线索交易事件(叶子交易事件)。每个交易事件都通过验证他们的父交易事件来间接验证它所有的祖先交易事件的有效性。
图3中的左图表示本轮中所有待确认的交易事件集合,在确定有效交易事件(即不存在双花交易事件等无效交易事件)后即可确定有效线索交易事件;图3中以所有的交易事件均为有效交易事件为例,如图3的中间图所示,有效线索交易事件K和I组成线索区块。此时,可将所有的有效交易事件(包括有效线索交易事件)作为当前轮的阶段区块,如图3的右图所示。即,阶段区块包含线索区块,线索区块是阶段区块的一个子集或子区块。
同时,有效线索交易事件可直接或间接验证当前轮的阶段区块中的其他交易事件,以保证阶段区块中的所有交易事件均是与有效线索交易事件相关,即曾被有效线索交易事件直接或间接验证过,或者就是有效线索交易事件本身,即阶段区块中所有的交易都是线索区块中交易或线索区块中交易的祖先交易。当对阶段区块进行共识处理时,由于阶段区块中所有的交易事件都是线索交易事件的祖先交易,即都可以通过线索交易索引得到,故此时可以利用线索区块执行共识处理,若线索区块完成共识,则也可以说明其他节点均承认与该线索区块相关的所有交易事件,即承认该阶段区块;即,当前轮的线索区块完成共识时,说明当前轮的阶段区块完成共识。由于有向无环结构的特性,线索区块通常比阶段区块小很多。在不考虑其他影响因素的情况下,假设线索区块的大小是阶段区块的1/1000,则每次共识的效率都被提高了1000倍,即TPS相应的提高了1000倍,而这在有向无环结构(如DAG结构)中是非常容易实现的。本发明实施例中的“直接验证”指的是在有向无环结构中两个交易事件是相邻的(二者之间的路径长度为1),由其中一个交易事件直接验证另一个交易事件,如图3中交易事件K直接验证H,交易事件F直接验证交易事件B。“间接验证”指的是在有向无环结构中两个交易事件之间的路径长度大于1;如图3中交易事件K与交易事件E之间的路径长度为2,即交易事件K直接验证H,交易事件H直接验证E,即交易事件K可通过H间接验证交易事件E;同时,交易事件K也可间接验证交易事件D、E、F、B、C、A。被直接验证的交易事件称为当前交易事件的父交易事件;例如交易事件H被K直接验证,则H为K的一个父交易事件。可以被间接验证的交易事件称为当前交易事件祖先交易事件;例如,交易事件E可被交易事件K间接验证,即交易事件E为交易事件K的一个祖先交易。
需要说明的是,本地节点生成当前交易事件时,需要通过验证历史交易事件的方式接入有向无环结构(如DAG结构),此时一定会验证(直接验证)选择的父交易事件,同时可有选择性的验证(间接验证)当前交易事件的祖先交易。如图3所示,本地节点生成交易事件K,此时选择交易事件H和I作为父交易事件,本地节点必须验证H和I、且H和I通过验证后才有可能将K连接至H和I;同时,本地节点可选择性验证其他的祖先交易事件,比如D、E、甚至A,只有本地节点验证所选择父交易事件和祖先交易事件均是有效的交易事件时,才会将K接入有向无环结构中,即K连接至父交易事件H和I。本地节点验证的祖先交易事件越多,则当前交易事件所连接的父交易事件越可靠,从而可以更有效地保证当前交易事件连接到有向无环结构后不会因在先存在非法交易事件(比如双花)而轻易地被剔除。为方便描述,本发明实施例中以新生成的交易事件验证所有的祖先交易为例进行说明。
本发明实施例中,链状结构和传统的区块链一样,每个区块都包含一系列交易,从创世区块开始,后一个区块包含前一个区块的哈希值,表示区块之间的连接关系。与传统区块链不一样的地方在于,在每一轮中将交易事件组成的有向无环结构打包成一个阶段区块,并连接到区块链结构中;所有的交易事件都存在一轮的有向无环结构中,此时只需要同步包含本轮待打包交易事件全部信息的线索区块即可。本发明实施例中的有向无环结构+链状结构的整体结果示意图参见图4所示。
本发明实施例提供的分布式记账的方法,使用线索区块来代替整个阶段区块完成共识过程,即只需要提供少量的有效线索交易事件即可替代原本需要共识的所有交易事件,有效减小了传统公式区块的大小,降低了网络带宽和机器性能的影响,大大提高了共识机制的共识效率。
在上述实施例的基础上,步骤A1“确定线索交易事件中的有效线索交易事件”具体包括步骤A11-A12:
步骤A11:确定当前阶段以有向无环结构存储的非法交易事件,并将与非法交易事件相关的线索交易事件作为无效线索交易事件。
步骤A12:将除无效线索交易事件以外的其他线索交易事件作为有效线索交易事件。
本发明实施例中,实际中可能存在非法交易事件,非法交易事件具体可以包括双花(double spend,双重支付)交易事件、寄生链交易事件、异常交易事件(比如签名验证不通过,发送或接收地址无效,发送金额超过发送方的余额)等,由于非法交易事件的存在,使得某个线索交易事件可能直接或间接验证过该非法交易事件,甚至该非法交易事件本身就是一个线索交易事件,该类线索交易事件应该被认为是无效的。即,在确定当前阶段的所有交易事件中的非法交易事件后,将与该非法交易事件相关的线索交易事件作为无效线索交易事件;其中,“与该非法交易事件相关的线索交易事件”指的是可直接或间接验证该非法交易事件的线索交易事件,或者本身就是非法交易事件的线索交易事件。除无效线索交易事件以外的其他线索交易事件所直接或间接验证的交易事件均是合法的,故剩余的线索交易事件可以作为有效线索交易事件,并生成线索区块以执行共识过程。如图5所示,图5中的交易事件M为非法交易事件,此时由于线索交易事件N直接验证过非法交易事件M,故线索交易事件N也有可能存在问题,此时生成线索区块时去除线索交易事件N以保证线索区块和整个阶段区块的有效性。
在上述实施例的基础上,上述步骤102“根据当前阶段以有向无环结构存储的所有交易事件生成当前轮的阶段区块”也包含去除非法交易事件的过程,此时,生成阶段区块的过程具体包括步骤B1-B4:
步骤B1:确定当前阶段以有向无环结构存储的所有的交易事件和其中的非法交易事件。
步骤B2:移除非法交易事件以及可直接或间接验证非法交易事件的所有子交易事件,并将与非法交易事件相关的线索交易事件作为无效线索交易事件,线索交易事件为当前阶段以有向无环结构存储的所有的交易事件中未被其他交易事件验证过的叶子交易事件。
本发明实施例中,如上所述,当前阶段的交易事件中可能存在非法交易事件,直接或间接验证该非法交易事件的交易事件也存在非法嫌疑,故需要移除。以双花交易事件为例,如图5所示,假如交易事件M和交易事件J为两个冲突的交易事件,由于验证交易事件M和交易事件J的子交易事件分别为交易事件N和交易事件L(交易事件的子交易事件指的是直接或间接验证过该交易事件的其他交易事件),由于单独的N或L并不能同时验证M和J,故在生成有向无环结构时,N验证M以及L验证J时均是可以通过验证的;但是当在生成阶段区块时需要确认所有交易事件的有效性,此时即可发现交易事件M和交易事件J是存在冲突的,此时基于预设算法或规则(例如权重大小等)可以确定哪个交易事件为有效的。假如,验证J的交易事件L具有更高的权重(比交易事件N的权重大),此时可以将被N验证的M作为非法交易事件。同时,交易事件N将非法交易事件M作为父交易事件,即非法交易事件M的子交易事件包括交易事件N(交易事件N同时还未线索交易事件),此时需要移除该子交易事件N。
步骤B3:将除无效线索交易事件以外的其他线索交易事件作为有效线索交易事件,并移除不能被有效线索交易事件直接或间接验证的交易事件。
本发明实施例中,验证非法交易事件的交易事件是存在非法嫌疑的;同时,只被无效线索交易事件直接或间接验证的交易事件也是存在非法嫌疑的,因为该类交易事件的验证过程可能存在问题。如图5所示,假如交易事件K未验证H,且H也未验证E(即图5中不存在K至H的有向箭头和H至E的有向箭头),此时若交易事件E为非法交易事件,交易事件M和交易事件N作为直接或间接验证过非法交易事件E的子交易事件,均需要被移除;同时,交易事件N为线索交易事件,且交易事件H只被无效的线索交易事件N验证过,即H没有其他有效线索交易事件验证过,此时的交易事件H也需要被移除。
步骤B4:将执行移除过程后剩余的交易事件作为有效交易事件,并将以有向无环结构存储的所有有效交易事件作为当前轮的阶段区块。
上述步骤B2-B3中的移除过程可以移除当前轮中所有的无效交易事件,从而剩下有效交易事件,该有效交易事件包括有效线索交易事件和被有效线索交易事件直接或间接验证过的交易事件,进而根据所有的有效交易事件即可生成当前轮的阶段区块。
本发明实施例中,在每轮打包线索区块之前,会验证所有交易事件的有效性,如果存在非法交易事件,将该非法交易事件以及验证过该非法交易事件的所有子交易事件从本轮打包的区块中移除;且上述移除的子交易事件中一定包含一个或多个无效线索交易事件,此时还需将所有未被其他有效线索交易验证过的父交易事件从本轮阶段区块中移除,剩余后的交易事件所形成的阶段区块才为最终的本轮阶段区块。通过移除所有的非法交易事件以及具有非法嫌疑的交易事件,从而有效保证本轮生成的阶段区块的有效性,并保证系统的安全性。
在上述实施例的基础上,步骤101中“以有向无环结构存储交易事件”具体包括步骤C1-C2:
步骤C1:选择待验证的一个或多个历史交易事件作为交易事件的父交易事件,并对所有的父交易事件进行验证。
本发明实施例中,在获取到交易事件后需要存储该交易事件,此时需要确定之前已经存在的历史交易事件;若本次获取的交易事件是第一个交易事件,则该交易事件称为创世交易,此时不存在父交易事件;同样的,若完成共识的阶段区块为链状结构的第一个区块,则该区块称为创世区块。当前的交易事件可以选择一个或多个历史交易事件作为父交易事件,可选的,可以选择两个或三个父交易事件,图2中以选择两个父交易事件为例。通过交易事件之间的父子关系互相联结,组成有向无环结构(图2中的有向无环图)。
步骤C2:在所有的父交易事件验证通过后,将交易事件有向连接至所有的父交易事件。
本发明实施例中,具体基于交易事件的权重值来选择父交易事件。可选的,上述步骤C1“选择待验证的一个或多个历史交易事件作为交易事件的父交易事件”包括步骤C11-C12:
步骤C11:确定每个历史交易事件的累积权重,历史交易事件的累积权重为历史交易事件的自身权重和历史交易事件的所有子交易事件的自身权重之和,历史交易事件的子交易事件为可直接或间接验证历史交易事件的所他交易事件。
本发明实施例中,每个交易事件具有两个权重,分别是自身权重wi和累积权重Wi;其中,自身权重wi可以由当前交易事件包含交易的发起账户安全等级决定,或者由发送交易的节点的安全等级来确定;累积权重Wi为当前交易事件的自身权重wi和可直接或间接验证该当前交易事件的所有其他历史交易事件的自身权重wj之和,即其中,P为当前交易事件的所有子交易事件的集合。参见图6所示,每个圆表示一个交易事件,圆中右下角表示的是自身权重,圆中的中间位置表示累积权重;对于交易事件E,由于其没有被其他交易事件验证过,不存在子交易事件,故交易事件E的累积权重即为自身权重;对于交易事件B,其自身权重为2,交易事件D和E验证过B,且交易事件D和E的自身权重分别是8和4,故B的累积权重为2+4+8=14,以此类推……交易事件O可被图6中的所有其他交易事件验证,故交易事件O的累积权重即为1+1+2+2+2+8+4=20。
步骤C12:根据历史交易事件的累积权重选择一个或多个历史交易事件作为交易事件的父交易事件;历史交易事件的累积权重越大,历史交易事件被选中的概率越大。
本发明实施例中,在确定历史交易事件的累积权重后,可以通过权重的加权随机游走算法选择待验证的历史交易事件,并在验证通过后将该历史交易事件作为当前交易事件的父交易事件。在加权随机游走每一次选择的过程中,根据交易事件的权重来随机选择游走路径,交易事件的累积权重越大,越容易被选中,即累积权重高的历史交易事件有更大的可能性被选中。具体的,通过权重的加权随机游走算法,为新加入的交易事件选择累积权重更高的交易事件作为父节点。从有向无环结构最早或最起始的交易事件(如图6中的交易事件O,累积权重最大)出发,在所有以该交易事件作为父交易事件的其他交易事件(如图6中的交易事件F、A、C)中随机选择,且累积权重高的交易事件有更大的可能被选中(即A最有可能被选中,其次是F,再其次是C),之后再确定以被选中的交易事件作为父交易事件的其他交易事件,并同样基于累积权重再次确定被选中的交易事件(假如本次选中的是交易事件A,则交易事件B和C将交易事件A作为父交易事件,即再根据累积权重从B和C中选择一个)……以此规律依次向下,直到找到一个没有子交易事件的交易事件(即当前时间的叶子交易事件,图6中只有交易事件E;在当前阶段结束时,该类交易事件即为线索交易事件,如图5中的N、K、L),将这个没有子交易事件的交易事件作为新加入交易事件的一个父交易事件;并继续按照同样的方法寻找到其他的父交易事件。
同时,在将当前的交易事件连接至选择的父交易事件之前,需要对父交易事件进行验证,主要验证父交易事件中所有交易的哈希值是否合法;验证父交易事件是否是懒惰交易;验证交易所处的账户余额是否充足;验证交易的序号是否正确等。如果父交易验证验证不通过,节点可以再次通过随机游走算法继续寻找其他的父交易事件,直到找到一个到多个验证通过的父交易事件;当前新的交易事件只连接至通过验证的父交易事件,此时才能将一个新的交易事件连接到有向无环的账本结构中。节点有动力去验证父交易事件,以保证自己所发起的交易事件能够最大可能在一轮共识中被确认。同时,节点也有动力去进一步验证父交易事件的祖先交易事件,保证当前发起的交易事件所在子树上的所有祖先交易事件的合法性,可以增加当前交易事件被确认的概率。同时,在DAG网络中进行权重累积过程,每一轮将阶段交易打包成一个区块,将区块在节点之间进行共识,然后连成链状结构。区块中的交易可以达成一个确定的共识状态和确定的交易顺序,为智能合约的执行提供了保障。
下面通过一个实施例详细介绍该分布式记账的方法流程。
本发明实施例中,以有向无环结构为有向无环图DAG为例说明:首先在DAG结构中完成交易事件之间互相验证以及权重的累加。新加入的交易事件需要直接验证一到三个父交易事件,从而间接验证了它之前所有的祖先交易。每轮共识,将DAG结构中合法的叶子节点打包成线索区块。线索区块在各节点之间达成共识,表明线索区块所对应的阶段区块内的全部交易都不能被推翻,从而获得最终一致性。区块与区块之间通过引用连成链状结构,链状结构的尾部继续跟随DAG结构。新加入的交易继续连接到DAG结构的尾部,每一轮共识都会将DAG结构中的线索交易打包成一个线索区块,连接到链状结构的尾部,从而组成了本发明实施例的分布式账本结构。本发明实施例中,既保留了DAG结构并行快速的处理性能,也获得了链状结构的稳定性和安全性。该分布式记账的过程主要包括:
步骤D1:创建新的交易事件。
首先需要创建一个交易对象,该交易对象包含发送方钱包地址、接收方钱包地址、交易金额等。交易对象是一个可签名结构,发起交易前,账户需要使用私钥对交易对象进行签名。多个交易对象会被打包进一个交易事件。
步骤D2:发起交易事件。
节点每发起一个新的交易事件,都需要在DAG结构中寻找该新的交易事件的父交易事件,具体可通过加权随机游走寻找一到三个合法的父交易事件,通过验证父交易事件来加入DAG网络。验证完成后,将该交易事件及其与父交易事件之间的验证关系(或父子关系)广播给其他节点。寻找以及验证父交易事件的过程具体可参见上述实施例中的步骤C11-C12。
步骤D3:验证交易事件。
本发明实施例中,打包节点需要验证本轮等待完成共识的交易事件中是否存在非法交易,比如双花交易。如果存在非法交易,需要将包含这些非法交易的交易事件,以及它所有子交易事件从本轮的阶段区块中移除,并移除未被其他有效线索交易事件验证过的交易事件,剩下的交易组成本轮待共识的阶段区块。其中,移除非法交易事件的过程具体可参见上述的步骤B1-B4。
步骤D4:打包线索区块。
完成交易验证的同时,找到本轮待打包的所有交易事件中的线索交易事件(即有效线索交易事件),将这些线索交易事件打包成一个线索区块进行后续的共识流程。由于本发明实施例所提出的特殊账本结构,线索区块可以包含阶段区块的全部信息。所以,后续只需要节点间对线索区块达成共识即可。
步骤D5:共识线索区块。
完成打包之后,使用选定的共识算法在各节点之间完成线索区块的共识。共识完成的阶段区块会连接到链状结构上,并写入本地数据库。此时,基本的记账过程结束。
此外,在本发明实施例中,还包括更新懒惰交易事件的过程。
懒惰交易事件通常会在两种情况下出现,一种是当本轮待打包的DAG结构中存在无效交易事件(如双花交易事件),这些交易事件在步骤D3交易验证中会被从阶段区块中移除,事实上这些交易仍然存在于网络中,只是失去了被其他交易事件验证的意义,所以可以被标记成懒惰交易事件。另一种会出现在更新不及时的节点中,如果节点发出的交易连接到了已在全网完成打包和共识的区块之上,则在本地完成区块同步之后,需要将这些交易事件标记成懒惰交易事件,防止后续的交易事件再连接到懒惰交易事件上,影响整个系统的共识效率。
本发明实施例提供的一种分布式记账的方法,在每轮打包线索区块之前,会验证整个阶段区块中所有交易的有效性。如果存在无效交易,会将验证过该无效交易的线索区块从本轮打包的区块中移除,同时将该交易事件,以及它所有未被其他有效线索交易验证过的父交易事件从本轮阶段区块中移除。在本轮完成区块完成共识之后,将这些无效交易事件标记为懒惰交易事件,使得这些懒惰交易事件不会被之后的新加入的交易事件所验证。
另外,本发明的结构设计为智能合约的实施提供了保障。首先通过链状结构让区块中的交易得到确定的共识状态;同时通过特殊的存储结构,使得交易之间的顺序能够确认。本发明所述的分布式记账方法中,每一个区块包含的交易事件都有如下特征:
1.在线索区块中的交易事件以列表的方式存储,是有先后顺序的;
2.交易事件所引用的父级,也是以列表的方式存储,是有先后顺序的;
3.交易事件中的交易,使用列表的方式存储,也是有先后顺序的。
如图7所示,图7中的左图表示已共识完成的阶段区块中的交易,在经过排序算法后,可以产生了右图所示的顺序。而该顺序的逆序,则是此轮阶段区块中交易事件的先后顺序。
本发明实施例中,将DAG结构与区块链有机结合。DAG部分由交易事件组成,交易一旦发生就可以开始记账,交易的写入、验证、双花检测都是异步完成的。在链状部分,基于DAG的验证图状结构,使用同步线索区块的方式来代替同步所有交易,有效降低了共识区块的大小,大大提高了共识机制的共识效率,让基于链状结构的百万级TPS成为可能。应用可根据安全性需求,选择不同的TPS策略,从百万到无限。
本发明实施例所使用的DAG网状结构具有链状结构不具备的超强可扩展性,且交易数量越多,达成共识速度越快。适用于参与节点量级巨大的应用场景。将DAG网状结构与链状结构有机得结合在一起,不仅保留了DAG结构的高效性,也具备了链状结构的安全性,保证系统能够有效应对点对点网络中的各种攻击。
以上详细介绍了分布式记账的方法流程,该方法也可以通过相应的装置实现,下面详细介绍该装置的结构和功能。
本发明实施例提供的一种分布式记账的装置,参见图8所示,包括:
交易模块81,用于获取和处理交易事件,以有向无环结构存储所述交易事件,所述交易事件包括一项或多项交易记录;
共识模块82,用于根据当前阶段以有向无环结构存储的所有交易事件生成当前轮的阶段区块,并对所述当前轮的阶段区块进行共识处理;
区块链模块83,用于在当前轮的阶段区块完成共识后,将所述当前轮的阶段区块以链状结构连接至上一轮的阶段区块。
在一种可能的实现方式中,所述共识模块包括:
第一确定单元,用于确定所述当前轮的阶段区块中的线索交易事件,并确定所述线索交易事件中的有效线索交易事件,所述线索交易事件为当前阶段以有向无环结构存储的所有的交易事件中未被其他交易事件验证过的叶子交易事件,且所述有效线索交易事件可直接或间接验证所述当前轮的阶段区块中的其他交易事件;
共识单元,用于将所有的所述有效线索交易事件的集合作为当前轮的线索区块,根据所述当前轮的线索区块与其他节点执行共识处理,当所述当前轮的线索区块完成共识时,所述当前轮的阶段区块完成共识。
在一种可能的实现方式中,所述第一确定单元用于:
确定当前阶段以有向无环结构存储的非法交易事件,并将与所述非法交易事件相关的线索交易事件作为无效线索交易事件;
将除所述无效线索交易事件以外的其他线索交易事件作为有效线索交易事件。
在一种可能的实现方式中,所述交易模块包括:
选择单元,用于选择待验证的一个或多个历史交易事件作为所述交易事件的父交易事件,并对所有的所述父交易事件进行验证;
处理单元,用于在所有的父交易事件验证通过后,将所述交易事件有向连接至所有的父交易事件。
在一种可能的实现方式中,所述选择单元用于:
确定每个历史交易事件的累积权重,所述历史交易事件的累积权重为所述历史交易事件的自身权重和历史交易事件的所有子交易事件的自身权重之和,所述历史交易事件的子交易事件为可直接或间接验证所述历史交易事件的其他交易事件;
根据所述历史交易事件的累积权重选择一个或多个历史交易事件作为所述交易事件的父交易事件;历史交易事件的累积权重越大,所述历史交易事件被选中的概率越大。
在一种可能的实现方式中,所述共识模块包括:
第二确定单元,用于确定当前阶段以有向无环结构存储的所有的交易事件和其中的非法交易事件;
移除单元,用于移除所述非法交易事件以及可直接或间接验证所述非法交易事件的所有子交易事件,并将与所述非法交易事件相关的线索交易事件作为无效线索交易事件,所述线索交易事件为当前阶段以有向无环结构存储的所有的交易事件中未被其他交易事件验证过的叶子交易事件;将除所述无效线索交易事件以外的其他线索交易事件作为有效线索交易事件,并移除不能被所述有效线索交易事件直接或间接验证的交易事件;
处理单元,用于将执行移除过程后剩余的交易事件作为有效交易事件,并将以有向无环结构存储的所有有效交易事件作为当前轮的阶段区块。
本发明实施例提供的一种分布式记账的装置,以有向无环结构记录交易事件,并以链状结构连接每个阶段的阶段区块,从而将有向无环结构和链状结构有机结合;通过有向无环结构记录交易事件,从而可以并行处理交易事件,提高了交易吞吐量,减小了交易确认延时;随着交易速度的增加,交易确认速度更快,大大提高了系统的可扩展性。利用链状结构存储每一轮的阶段区块,可以使得区块中的交易事件达成一个确定的共识状态,为智能合约的执行提供了保障。此外,该方法不仅可以保留有向无环结构的高效性,也具备链状结构的安全性,从而可以有效应对点对点网络中的各种攻击。使用线索区块来代替整个阶段区块完成共识过程,即只需要提供少量的有效线索交易事件即可替代原本需要共识的所有交易事件,有效减小了传统公式区块的大小,降低了网络带宽和机器性能的影响,大大提高了共识机制的共识效率。通过移除所有的非法交易事件以及具有非法嫌疑的交易事件,从而有效保证本轮生成的阶段区块的有效性,并保证系统的安全性。
本申请实施例还提供了一种计算机存储介质,所述计算机存储介质存储有计算机可执行指令,其包含用于执行上述处理邮件的方法的程序,该计算机可执行指令可执行上述任意方法实施例中的方法。
其中,所述计算机存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(MO)等)、光学存储器(例如CD、DVD、BD、HVD等)、以及半导体存储器(例如ROM、EPROM、EEPROM、非易失性存储器(NANDFLASH)、固态硬盘(SSD))等。
图9示出了本发明的另一个实施例的一种电子设备的结构框图。所述电子设备1100可以是具备计算能力的主机服务器、个人计算机PC、或者可携带的便携式计算机或终端等。本发明具体实施例并不对电子设备的具体实现做限定。
该电子设备1100包括至少一个处理器(processor)1110、通信接口(Communications Interface)1120、存储器(memory array)1130和总线1140。其中,处理器1110、通信接口1120、以及存储器1130通过总线1140完成相互间的通信。
通信接口1120用于与网元通信,其中网元包括例如虚拟机管理中心、共享存储等。
处理器1110用于执行程序。处理器1110可能是一个中央处理器CPU,或者是专用集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器1130用于可执行的指令。存储器1130可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1130也可以是存储器阵列。存储器1130还可能被分块,并且所述块可按一定的规则组合成虚拟卷。存储器1130存储的指令可被处理器1110执行,以使处理器1110能够执行上述任意方法实施例中的方法。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (9)
1.一种分布式记账的方法,其特征在于,包括:
获取交易事件,并以有向无环结构存储所述交易事件,所述交易事件包括一项或多项交易记录;
根据当前阶段以有向无环结构存储的所有交易事件生成当前轮的阶段区块,并对所述当前轮的阶段区块进行共识处理;
在当前轮的阶段区块完成共识后,将所述当前轮的阶段区块以链状结构连接至上一轮的阶段区块。
2.根据权利要求1所述的方法,其特征在于,所述对所述当前轮的阶段区块进行共识处理包括:
确定所述当前轮的阶段区块中的线索交易事件,并确定所述线索交易事件中的有效线索交易事件,所述线索交易事件为当前阶段以有向无环结构存储的所有的交易事件中未被其他交易事件验证过的叶子交易事件,且所述有效线索交易事件可直接或间接验证所述当前轮的阶段区块中的其他交易事件;
将所有的所述有效线索交易事件的集合作为当前轮的线索区块,根据所述当前轮的线索区块与其他节点执行共识处理,当所述当前轮的线索区块完成共识时,所述当前轮的阶段区块完成共识。
3.根据权利要求2所述的方法,其特征在于,所述确定所述线索交易事件中的有效线索交易事件包括:
确定当前阶段以有向无环结构存储的非法交易事件,并将与所述非法交易事件相关的线索交易事件作为无效线索交易事件;
将除所述无效线索交易事件以外的其他线索交易事件作为有效线索交易事件。
4.根据权利要求1-3任一所述的方法,其特征在于,所述以有向无环结构存储所述交易事件包括:
选择待验证的一个或多个历史交易事件作为所述交易事件的父交易事件,并对所有的所述父交易事件进行验证;
在所有的父交易事件验证通过后,将所述交易事件有向连接至所有的父交易事件。
5.根据权利要求4所述的方法,其特征在于,所述选择待验证的一个或多个历史交易事件作为所述交易事件的父交易事件包括:
确定每个历史交易事件的累积权重,所述历史交易事件的累积权重为所述历史交易事件的自身权重和所述历史交易事件的所有子交易事件的自身权重之和,所述历史交易事件的子交易事件为可直接或间接验证所述历史交易事件的其他交易事件;
根据所述历史交易事件的累积权重选择一个或多个历史交易事件作为所述交易事件的父交易事件;历史交易事件的累积权重越大,所述历史交易事件被选中的概率越大。
6.根据权利要求1-3任一所述的方法,其特征在于,所述根据当前阶段以有向无环结构存储的所有交易事件生成当前轮的阶段区块包括:
确定当前阶段以有向无环结构存储的所有的交易事件和其中的非法交易事件;
移除所述非法交易事件以及可直接或间接验证所述非法交易事件的所有子交易事件,并将与所述非法交易事件相关的线索交易事件作为无效线索交易事件,所述线索交易事件为当前阶段以有向无环结构存储的所有的交易事件中未被其他交易事件验证过的叶子交易事件;
将除所述无效线索交易事件以外的其他线索交易事件作为有效线索交易事件,并移除不能被所述有效线索交易事件直接或间接验证的交易事件;
将执行移除过程后剩余的交易事件作为有效交易事件,并将以有向无环结构存储的所有有效交易事件作为当前轮的阶段区块。
7.一种分布式记账的装置,其特征在于,包括:
交易模块,用于获取和处理交易事件,以有向无环结构存储所述交易事件,所述交易事件包括一项或多项交易记录;
共识模块,用于根据当前阶段以有向无环结构存储的所有交易事件生成当前轮的阶段区块,并对所述当前轮的阶段区块进行共识处理;
区块链模块,用于在当前轮的阶段区块完成共识后,将所述当前轮的阶段区块以链状结构连接至上一轮的阶段区块。
8.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机可执行指令,所述计算机可执行指令用于执行权利要求1-6任意一项所述的方法。
9.一种电子设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-6任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810854150.7A CN108984789B (zh) | 2018-08-15 | 2018-08-15 | 分布式记账的方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810854150.7A CN108984789B (zh) | 2018-08-15 | 2018-08-15 | 分布式记账的方法、装置、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108984789A true CN108984789A (zh) | 2018-12-11 |
CN108984789B CN108984789B (zh) | 2021-07-13 |
Family
ID=64551614
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810854150.7A Active CN108984789B (zh) | 2018-08-15 | 2018-08-15 | 分布式记账的方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108984789B (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109377232A (zh) * | 2018-12-20 | 2019-02-22 | 众安信息技术服务有限公司 | 基于dag的区块链的交易定序方法及设备 |
CN109672733A (zh) * | 2018-12-20 | 2019-04-23 | 众安信息技术服务有限公司 | 基于dag的区块链的账本同步方法及设备 |
CN109783699A (zh) * | 2019-01-29 | 2019-05-21 | 众安信息技术服务有限公司 | 用于监控区块链网络的分布式账本的方法和装置 |
CN109872161A (zh) * | 2019-03-01 | 2019-06-11 | 山东大学 | 一种加速iota子链交易验证过程的芯片及系统 |
CN109961364A (zh) * | 2019-02-19 | 2019-07-02 | 众安信息技术服务有限公司 | 一种基于有向无环图的交易方法及系统 |
CN110224840A (zh) * | 2019-06-17 | 2019-09-10 | 北京艾摩瑞策科技有限公司 | 基于区块链的打包方法及装置 |
CN110431579A (zh) * | 2019-01-08 | 2019-11-08 | 张季恒 | 基于结构化有向无环图的交易分配方法和装置 |
CN110506285A (zh) * | 2019-01-08 | 2019-11-26 | 张季恒 | 基于有向无环图的区块创建、添加、账本建立方法和装置 |
CN111049658A (zh) * | 2019-12-12 | 2020-04-21 | 北京信息科技大学 | 一种基于dag的全网统一信任锚系统、建立方法和认证方法 |
CN111080288A (zh) * | 2019-10-18 | 2020-04-28 | 湖南天河国云科技有限公司 | 一种基于有向无环图的区块链共识达成方法及装置 |
CN111080445A (zh) * | 2019-10-28 | 2020-04-28 | 北京大学 | 一种基于图结构的可信存证方法与系统 |
CN111861459A (zh) * | 2019-04-28 | 2020-10-30 | 常州一仙智能科技有限公司 | 一种基于DPoS共识算法的Iota账本优化系统及方法 |
CN116112502A (zh) * | 2022-11-20 | 2023-05-12 | 重庆理工大学 | 一种面向动态物联网环境的分布式账本优化部署方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106897351A (zh) * | 2016-12-29 | 2017-06-27 | 北京瑞卓喜投科技发展有限公司 | 有向无环图型区块链的生成方法及系统 |
US20170212781A1 (en) * | 2016-01-26 | 2017-07-27 | International Business Machines Corporation | Parallel execution of blockchain transactions |
CN107423978A (zh) * | 2017-06-16 | 2017-12-01 | 郑州大学 | 一种基于联盟区块链的分布式能源交易认证方法 |
CN108256337A (zh) * | 2018-02-26 | 2018-07-06 | 北京阿尔山金融科技有限公司 | 智能合约漏洞检测方法、装置及电子设备 |
CN108389129A (zh) * | 2018-02-27 | 2018-08-10 | 阿里巴巴集团控股有限公司 | 基于区块链的交易执行方法及装置、电子设备 |
-
2018
- 2018-08-15 CN CN201810854150.7A patent/CN108984789B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170212781A1 (en) * | 2016-01-26 | 2017-07-27 | International Business Machines Corporation | Parallel execution of blockchain transactions |
CN106897351A (zh) * | 2016-12-29 | 2017-06-27 | 北京瑞卓喜投科技发展有限公司 | 有向无环图型区块链的生成方法及系统 |
CN107423978A (zh) * | 2017-06-16 | 2017-12-01 | 郑州大学 | 一种基于联盟区块链的分布式能源交易认证方法 |
CN108256337A (zh) * | 2018-02-26 | 2018-07-06 | 北京阿尔山金融科技有限公司 | 智能合约漏洞检测方法、装置及电子设备 |
CN108389129A (zh) * | 2018-02-27 | 2018-08-10 | 阿里巴巴集团控股有限公司 | 基于区块链的交易执行方法及装置、电子设备 |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109672733A (zh) * | 2018-12-20 | 2019-04-23 | 众安信息技术服务有限公司 | 基于dag的区块链的账本同步方法及设备 |
CN109377232A (zh) * | 2018-12-20 | 2019-02-22 | 众安信息技术服务有限公司 | 基于dag的区块链的交易定序方法及设备 |
CN109672733B (zh) * | 2018-12-20 | 2022-06-07 | 众安信息技术服务有限公司 | 基于dag的区块链的账本同步方法及设备 |
CN109377232B (zh) * | 2018-12-20 | 2021-08-24 | 众安信息技术服务有限公司 | 基于dag的区块链的交易定序方法及设备 |
CN110431579A (zh) * | 2019-01-08 | 2019-11-08 | 张季恒 | 基于结构化有向无环图的交易分配方法和装置 |
CN110506285A (zh) * | 2019-01-08 | 2019-11-26 | 张季恒 | 基于有向无环图的区块创建、添加、账本建立方法和装置 |
CN109783699A (zh) * | 2019-01-29 | 2019-05-21 | 众安信息技术服务有限公司 | 用于监控区块链网络的分布式账本的方法和装置 |
CN109961364B (zh) * | 2019-02-19 | 2021-04-06 | 众安信息技术服务有限公司 | 一种基于有向无环图的交易方法及系统 |
CN109961364A (zh) * | 2019-02-19 | 2019-07-02 | 众安信息技术服务有限公司 | 一种基于有向无环图的交易方法及系统 |
CN109872161A (zh) * | 2019-03-01 | 2019-06-11 | 山东大学 | 一种加速iota子链交易验证过程的芯片及系统 |
CN109872161B (zh) * | 2019-03-01 | 2021-05-04 | 山东大学 | 一种加速iota子链交易验证过程的芯片及系统 |
CN111861459A (zh) * | 2019-04-28 | 2020-10-30 | 常州一仙智能科技有限公司 | 一种基于DPoS共识算法的Iota账本优化系统及方法 |
CN110224840A (zh) * | 2019-06-17 | 2019-09-10 | 北京艾摩瑞策科技有限公司 | 基于区块链的打包方法及装置 |
CN111080288A (zh) * | 2019-10-18 | 2020-04-28 | 湖南天河国云科技有限公司 | 一种基于有向无环图的区块链共识达成方法及装置 |
CN111080288B (zh) * | 2019-10-18 | 2023-08-18 | 湖南天河国云科技有限公司 | 一种基于有向无环图的区块链共识达成方法及装置 |
CN111080445A (zh) * | 2019-10-28 | 2020-04-28 | 北京大学 | 一种基于图结构的可信存证方法与系统 |
CN111080445B (zh) * | 2019-10-28 | 2022-06-17 | 北京大学 | 一种基于图结构的可信存证方法与系统 |
CN111049658A (zh) * | 2019-12-12 | 2020-04-21 | 北京信息科技大学 | 一种基于dag的全网统一信任锚系统、建立方法和认证方法 |
CN111049658B (zh) * | 2019-12-12 | 2022-09-16 | 北京信息科技大学 | 一种基于dag的全网统一信任锚系统、和建立方法 |
CN116112502A (zh) * | 2022-11-20 | 2023-05-12 | 重庆理工大学 | 一种面向动态物联网环境的分布式账本优化部署方法 |
CN116112502B (zh) * | 2022-11-20 | 2024-07-19 | 重庆理工大学 | 一种面向动态物联网环境的分布式账本优化部署方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108984789B (zh) | 2021-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108984789B (zh) | 分布式记账的方法、装置、存储介质及电子设备 | |
JP7472333B2 (ja) | バリデータノードにより提供されるブロックチェーントランザクションをマイニングする方法及びシステム | |
JP7053677B2 (ja) | ブロックチェーン・ネットワークにおいてトランザクションを管理するためのコンピュータ実装システム及び方法 | |
CN110868440B (zh) | 区块链公链 | |
JP7477576B2 (ja) | ブロックチェーンネットワークにおける整合性のある分散型メモリプールのための方法及びシステム | |
CN113570466B (zh) | 一种交易数据处理方法、装置以及可读存储介质 | |
JP2022185070A (ja) | ブロックチェーン・ネットワークにおける高速伝搬のための方法及び特殊ネットワーク・ノード | |
US11676135B2 (en) | Blockchain consensus protocol using predictive proof of metrics | |
CN110235162B (zh) | 区块链系统数据处理方法和区块的生成方法 | |
US20230275771A1 (en) | Pre-execution of block chain transaction in parallel during block consensus | |
CN113626875B (zh) | 一种区块链分片赋能的知识图谱文件存储方法 | |
CN112765137B (zh) | 基于区块分布式区块链的区块同步方法及电子设备 | |
CN115988001A (zh) | 区块链系统的共识投票处理方法、装置、设备以及介质 | |
Yi et al. | Research on a suitable blockchain for IoT platform | |
CN117040792A (zh) | 一种gpu用抗量子攻击sphincs+签名算法并行实现方法及系统 | |
Painter et al. | Descriptor based consensus for blockchain transactions | |
WO2024007856A1 (zh) | 数据处理方法、装置及设备、介质、产品 | |
US20240211941A1 (en) | Blockchain provision system and method using non-competitive consensus algorithm and micro-chain architecture to ensure transaction processing speed, scalability, and security suitable for commercial services | |
KR102447289B1 (ko) | 피어 단말기 및 피어 단말기가 블록 데이터를 처리하는 방법 | |
CN116975121A (zh) | 布隆过滤器构建方法、装置、设备及介质 | |
CN111709735A (zh) | 一种基于区块链的可信交易处理系统及方法 | |
CN117421369A (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN117235122A (zh) | 数据处理方法、装置、设备、可读存储介质及程序产品 | |
CN117614601A (zh) | 实现二层网络卷叠的方法、二层网络和证明器 | |
CN117439728A (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 |