基于有向无环图的支持合约的分布式账本共识方法与系统技术方案

技术编号:30319790 阅读:13 留言:0更新日期:2021-10-09 23:28
本发明专利技术公开了一种基于有向无环图的支持合约的分布式账本共识方法与系统,属于区块链技术领域。本发明专利技术设计了基于有向无环图的去中心化分布式账本数据结构,通过引入强连接、弱连接关系实现有向无环图内的局部全序关系,从而支持智能合约;并通过具备权值更新的顶点添加方法,为并发添加顶点提供可验证的规则;此外,还设计了分叉剪枝方法,利用权值对顶点进行可信或不可信标记,并删除不可信顶点及相关边,解决了现实中分布式账本存在的网络延迟、黑客攻击等问题。与现有技术相比,本发明专利技术结合了有向无环图的高并发优势和区块链的全序关系优势,在支持智能合约的基础上,提高了去中心化分布式账本的并发性能,使其应用领域更为开阔。开阔。开阔。

【技术实现步骤摘要】
基于有向无环图的支持合约的分布式账本共识方法与系统


[0001]本专利技术公开了一种基于有向无环图的支持合约的分布式账本共识方法与系统,属于区块链


技术介绍

[0002]分布式账本是一种在网络节点之间共享、复制和同步的数据库。按网络节点的结构划分,可分为中心化的结构和非中心化的结构两种。中心化的结构意味着这些网络节点中存在一个核心节点,管理着其他节点,或者在数据库的运作过程中扮演重要角色,一旦该核心节点失效,一个或多个数据库操作便无法进行。去中心化的结构意味着这些网络节点地位平等,不存在一个核心节点,即在一定数量的节点失效时,数据库仍能正常运作。比特币、以太坊和超级账本等区块链平台所使用的基于区块链的数据库就属于去中心化分布式账本。
[0003]智能合约是一种旨在以信息化方式传播、验证或执行合约的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转,天然地适合与区块链等去中心化分布式账本技术结合,从而开发出去中心化的、基于智能合约的应用程序,实现自动化可信交易等功能。超级账本、以太坊和一些基于以太坊的区块链平台,都是支持智能合约的去中心化分布式账本平台。
[0004]目前,不少去中心化的分布式账本采用的是“区块链”数据结构。区块链由一个个“区块”按时间顺序连接而成,形成链表。区块包含了区块头和区块体,区块头中记录着前一个区块的哈希值、当前区块的哈希值,另外还有时间戳和交易数量等元信息。区块体中记录着交易的详细内容,如交易发起方、收款方、金额和时间戳等。一个区块体可以包含一笔或若干笔交易。根据区块链平台的不同,区块链的具体实现有所区别。
[0005]但是,去中心化分布式账本的性能问题一直是研究的热点。以以太坊为例,它的吞吐量大约为每秒15笔交易,交易确认延迟大约为10分钟。在实际应用中,这种交易处理能力是远远不足的。为了提高性能,现有一些方法放弃使用基于链表结构的区块链,转而使用基于非链表结构的分布式账本技术,如采用有向无环图。对于有向无环图来说,如果认为图中的每个顶点是一笔交易,新的交易以某种方式连接到现有的图上,由于有向无环图天然地只具备偏序关系,而不具备全序关系,在提高了交易的并发能力从而提高吞吐量的同时,严格的交易顺序变得难以确定。智能合约由于涉及数据状态的有序修改,与分布式账本的结合必然要求分布式账本具备全序关系。如何使得有向无环图具备全序关系从而支持智能合约的同时,分布式账本的性能优良,就变得十分重要。

技术实现思路

[0006]专利技术目的:针对现有技术的不足,本专利技术的目的在于提供一种基于有向无环图的支持合约的分布式账本共识方法与系统,在支持智能合约的基础上,提高去中心化分布式账本的并发性能,使得去中心化分布式账本的应用领域更为开阔。
[0007]技术方案:为实现上述专利技术目的,本专利技术采用如下技术方案:
[0008]一种基于有向无环图的支持合约的分布式账本共识方法,所述分布式账本的创世顶点不连接有向无环图的任意顶点,第二个添加到有向无环图的顶点必须连接创世顶点;从第三个添加到有向无环图的顶点开始,顶点类型包括合约定义顶点和合约交易顶点,网络节点在定义一个新的智能合约时,或者根据现有的智能合约及其状态发起一笔新的交易时,向有向无环图中添加顶点,并将账本同步到网络中的其他网络节点,具体顶点添加的步骤包括:
[0009]为即将添加到有向无环图中的新顶点赋权值,所述权值为正整数;
[0010]预选择零个或一个可被强连接的顶点,预选择一个或多个可被弱连接的顶点,然后将新顶点强连接到预选择的可被强连接的顶点上,并弱连接到所有预选择的可被弱连接的顶点上;所述强连接满足新顶点与预选择的顶点含有相同的合约编号,所述弱连接满足新顶点与预选择的顶点含有不同的合约编号;
[0011]对有向无环图中顶点的权值进行更新。
[0012]作为优选,顶点选择策略是:如果新顶点的类型是合约定义顶点,则不选择可被强连接的顶点,且预选择至少两个可被弱连接的顶点;如果新顶点类型是合约交易顶点,则预选择一个可被强连接的顶点,预选择至少一个可被弱连接的顶点。
[0013]作为优选,预选择可被强连接的顶点时,选择有向无环图中所有可被强连接的顶点集合中最新的一个顶点。
[0014]作为优选,根据如下方法预选择可被弱连接的顶点:
[0015]首先根据新顶点的合约编号和交易编号代入生成伪随机数的函数中,获取多个输出值;
[0016]然后选取前k个输出值,每个输出值均在由有向无环图中已存在的合约编号构成的集合里;其中k为配置的最大弱连接数;
[0017]再从选取的输出值中,选择一个以该输出值为合约编号的顶点,且该顶点是在所有以该输出值为合约编号的顶点中最新添加到有向无环图的,至多选择k个顶点作为预选择可被弱连接的顶点。
[0018]作为优选,所述创世顶点的合约编号、交易编号与权值均为0。
[0019]作为优选,根据如下方法更新有向无环图中顶点的权值:
[0020]新顶点所属的强连接链包含的除该新顶点以外的每个顶点的权值w修改为
[0021][0022]其中,w

为更新后的权值,th为配置的顶点可信阈值;
[0023]新顶点所属的弱连接链包含的除该新顶点以外的每个顶点的权值w修改为
[0024][0025]其中,表示自然数;新顶点所属的弱连接链指被所述新顶点弱连接的顶点所属
的强连接链的中所有顶点的集合。
[0026]作为优选,为避免由于网络延迟、黑客攻击导致网络节点并不能总是将一个合约交易顶点与最新的与其合约编号相同的顶点强连接,网络节点在添加顶点后,还根据如下方法对有向无环图进行分叉剪枝:
[0027]在新顶点添加完毕后,扫描该顶点所属的强连接链与弱连接链,将链上所有权值小于等于可信阈值的、且未标记为“可信的”顶点,标记为“可信的”;其中顶点v所属的弱连接链指被顶点v弱连接的顶点所属的强连接链的中所有顶点的集合;
[0028]然后在被新标记为“可信的”顶点所强连接的先序顶点,如果被其他顶点强连接,则将其他这些顶点标记为“不可信的”;
[0029]再将强连接被标记为“不可信的”顶点的顶点标记为“不可信的”,直至不再有顶点强连接被标记为“不可信的”顶点;
[0030]最后删除所有被标记为“不可信的”顶点,及有关的边。
[0031]基于相同的专利技术构思,本专利技术提供的一种基于有向无环图的支持合约的分布式账本共识系统,所述分布式账本的创世顶点不连接有向无环图的任意顶点,第二个添加到有向无环图的顶点必须连接创世顶点;从第三个添加到有向无环图的顶点开始,顶点类型包括合约定义顶点和合约交易顶点;所述系统包括多个网络节点,所述网络节点设有顶点添加模块,用于在定义一个新的智能合约时,或者根据现有的智能合约及其状态发起一笔新的交易时,向有向无环图中添加顶点;所述顶点添加模块包括:
[0032]新顶点赋权值单元,用于为即将添加到有本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于有向无环图的支持合约的分布式账本共识方法,其特征在于,所述分布式账本的创世顶点不连接有向无环图的任意顶点,第二个添加到有向无环图的顶点必须连接创世顶点;从第三个添加到有向无环图的顶点开始,顶点类型包括合约定义顶点和合约交易顶点,网络节点在定义一个新的智能合约时,或者根据现有的智能合约及其状态发起一笔新的交易时,向有向无环图中添加顶点,并将账本同步到网络中的其他网络节点,具体顶点添加的步骤包括:为即将添加到有向无环图中的新顶点赋权值,所述权值为正整数;预选择零个或一个可被强连接的顶点,预选择一个或多个可被弱连接的顶点,然后将新顶点强连接到预选择的可被强连接的顶点上,并弱连接到所有预选择的可被弱连接的顶点上;所述强连接满足新顶点与预选择的顶点含有相同的合约编号,所述弱连接满足新顶点与预选择的顶点含有不同的合约编号;对有向无环图中顶点的权值进行更新。2.根据权利要求1所述的基于有向无环图的支持合约的分布式账本共识方法,其特征在于,顶点选择策略是:如果新顶点的类型是合约定义顶点,则不选择可被强连接的顶点,且预选择至少两个可被弱连接的顶点;如果新顶点类型是合约交易顶点,则预选择一个可被强连接的顶点,预选择至少一个可被弱连接的顶点。3.根据权利要求1所述的基于有向无环图的支持合约的分布式账本共识方法,其特征在于,预选择可被强连接的顶点时,选择有向无环图中所有可被强连接的顶点集合中最新的一个顶点。4.根据权利要求1所述的基于有向无环图的支持合约的分布式账本共识方法,其特征在于,根据如下方法预选择可被弱连接的顶点:首先根据新顶点的合约编号和交易编号代入生成伪随机数的函数中,获取多个输出值;然后选取前k个输出值,每个输出值均在由有向无环图中已存在的合约编号构成的集合里;其中k为配置的最大弱连接数;再从选取的输出值中,选择一个以该输出值为合约编号的顶点,且该顶点是在所有以该输出值为合约编号的顶点中最新添加到有向无环图的,至多选择k个顶点作为预选择可被弱连接的顶点。5.根据权利要求1所述的基于有向无环图的支持合约的分布式账本共识方法,其特征在于,所述创世顶点的合约编号、交易编号与权值均为0。6.根据权利要求1所述的基于有向无环图的支持合约的分布式账本共识方法,其特征在于,根据如下方法更新有向无环图中顶点的权值:新顶点所属的强连接链包含的除该新顶点以外的每个顶点的权值w修改为其中,w

为更新后的权值,th为配置的顶点可信阈值;新顶点所属的弱连接链包含的除该新顶点以外的每个顶点的权值w修改为
其中,表示自然数;新顶点所属的弱连接链指被所述新顶点弱连接的顶点所属的强连接链的中所有顶点的集合。7.根据权利要求1所述的基于有向无环图的支持合约的分布式账本共识方法,其特征在于,为避免由于网络延迟、黑客攻击导致网络节点并不能总是将一个合约交易顶点与最新的与其合约编号相同的...

【专利技术属性】
技术研发人员:沈国华卞书钰黄志球杨阳李井涵张小玉
申请(专利权)人:南京航空航天大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1