一种基于TEE的DAG投票共识方法技术

技术编号:38753768 阅读:27 留言:0更新日期:2023-09-10 09:38
本发明专利技术公开了一种基于TEE的DAG投票共识方法,属于信息技术领域;具体为:当节点a需要发布交易时,通过构建区块并在全网广播进行共识计算。当其他节点收到区块申请时进行校验,通过后各节点分别在全网广播自己的赞同投票,当各节点累积的其他节点的赞同票的数量大于总节点数的一半,即可在本地增加各自的区块,从而所有区块构建了有向无环图结构。之后各节点广播区块状态的确认消息,表明自己已经增加了该区块。若此时各节点累积的区块状态确认信息的数量大于总节点数的一半时,则表明达成共识,各个节点均保存了一个相同的更新后的账本。本发明专利技术使用了TEE来降低算法的复杂度,保证共识过程的安全性,并提升了算法的容错度。并提升了算法的容错度。并提升了算法的容错度。

【技术实现步骤摘要】
一种基于TEE的DAG投票共识方法


[0001]本专利技术属于信息
,涉及一种基于TEE(Trusted execution environment,可信执行环境)的DAG(区块链新式账本)投票共识方法。

技术介绍

[0002]共识算法是指在分布式系统中,各个节点就某个数据达成一致的一种算法。在区块链技术中,共识算法经常被用来解决区块链网络中节点之间的数据一致性问题。而在基于DAG的分布式账本中,同样也需要用到共识算法来让所有节点间的区块保持一致。共识算法是分布式系统的核心技术,对于分布式系统的去中心化性、交易吞吐量、可扩展性和安全性等方面具有相当重要的影响。
[0003]共识算法是为了实现分布式一致性协议而产生的一系列流程与规则。当分布在不同地域的节点都按照这套规则进行协商交互之后,最终总能就某个问题得到一致的决策,从而实现分布式系统中不同节点的一致性。
[0004]分布式帐本技术(Distributed ledger Technology,DLT)是能实现分布式记账的技术统称,包含了区块链、有向无环图、分布式哈希表(Distributed Hash Table,DHT)以及Tempo等一系列技术。
[0005]由于DAG天然的结构优势,基于DAG的分布式账本相较于传统的区块链有更高的吞吐量和更好的可扩展性。但是有向无环图的结构相较于链式结构更为复杂,同时共识算法也需要特定设计以适应图的结构,这就需要在现有共识算法的基础上进行创新和发展。

技术实现思路

[0006]针对上述问题,本专利技术提出一种基于TEE的DAG投票共识方法,当节点a需要发布交易时,通过构建区块并在全网广播进行共识计算。当其他节点收到这个区块申请时校验区块中的hash、签名和权限等信息,校验通过后,各节点分别在全网广播自己的赞同投票,通过使用可信执行环境(TEE)来保证共识过程的安全性。各节点在广播自己赞同投票的同时,也会收到其他节点发送的赞同投票,当各节点累积的其他节点的赞同票的数量大于总节点数的一半,即可在本地增加各自的区块,从而所有区块构建有向无环图结构。之后各节点广播区块状态的确认消息,表明自己已经增加了该区块。若此时各节点累积的区块状态确认信息的数量大于总节点数的一半时,则表明达成共识,各个节点均保存了一个相同的更新后的账本。
[0007]所述基于TEE的DAG投票共识方法,分为以下步骤:
[0008]步骤一、针对分布式账本系统中,初始状态下,该系统中的每个节点都有一个相同的本地DAG账本,各节点达成共识。
[0009]步骤二、针对节点a,打包自己要发布的交易来构建区块,并使用基于TEE的可信签名进行发布。
[0010]所述区块包括区块头和区块体;区块头包含自父哈希字段、证明哈希字段、区块哈
希字段、时间戳字段、版本字段和公钥字段。区块体则包含交易列表字段和交易信息字段。
[0011]其中区块头的版本字段和公钥字段根据节点的信息设置,时间戳根据本地时间戳获得,区块哈希字段通过对区块体的信息计算得到,自父哈希字段和证明哈希字段通过调用TEE计算得到。区块体的交易列表和交易信息字段根据交易的相关信息设置。
[0012]签名过程具体为:
[0013]首先,节点a调用可信执行环境TEE,分别计算区块的时间戳、区块头的自父哈希selfProof和证明哈希proofHash并赋值,对该区块进行签名获得signature。
[0014]自父哈希引用节点自己维护的平行链中的最新区块的哈希;
[0015]证明哈希的计算过程如下:
[0016]首先统计当前系统中节点的数量n,然后计算截取区块哈希值的位数x:
[0017]x=log2n
[0018]通过区块哈希值最后的x个bit来获得证明哈希所指向的链编号的二进制数y:
[0019]y=(hash(10101010
···
111101011)|[x])
[0020]在获得二进制数y后,将其转换为十进制数z,即为证明哈希所指向的链编号,此时引用该链中最新区块的哈希,即可构成基于自引用平行链的DAG结构:
[0021]z=Decimal(y
binary
)
[0022]然后,判断区块的时间戳、区块头的自父哈希selfProof和证明哈希proofHash中是否存在空值,如果是,则抛出异常。否则,使用TEE进行签名并返回。
[0023]步骤三、当其他节点接收到节点a发送的区块消息,每个节点分别独立地进行验证和投票。
[0024]当每个节点接收到该发布的区块消息后,先判断区块消息是否为空,如果是,则结束;否则,进一步验证区块消息中的公钥和签名信息是否也不为空,如果为空,则结束。否则调用TEE的可信验证技术校验该发布区块的签名、时间戳和权限等信息是否正确,且通过本地账本检验区块的自父哈希selfProof和证明哈希proofHash是否与自身保存的信息一致,然后对该区块消息进行投票。
[0025]每个节点校验通过后,将自己针对该区块消息的赞同票发送给网络中的其他节点,否则就丢弃该消息。
[0026]步骤四、各个节点从网络中接收到其他节点的投票后进行验证和统计。
[0027]首先,每个节点验证投票是否合法:
[0028]主要验证投票区块的时间戳是否符合当前时间戳并大于已发布区块时间按戳,验证投票区块是否已经收集足够的投票进入下一阶段或已经发布。
[0029]步骤五、各节点统计本节点收到的赞同投票vote的数量,当赞同票数大于系统中总节点数的一半,则在各节点本地DAG账本中增加该区块;同时生成区块状态确认消息,并全网广播该区块的区块状态确认消息。
[0030]步骤六、各节点接收到其他节点返回的区块状态确认消息后进行验证和统计。
[0031]各节点先对收集到的其他节点的各区块状态确认进行验证,然后统计合法状态消息的数量,来确定是否已经达到共识。
[0032]步骤七、当统计的合法状态消息数量大于网络中总节点数的一半,则认为全系统节点关于该区块的构建达成了一致性共识,在DAG分布式账本网络中确认该区块,所有节点
在本地分别构建同一个DAG账本。
[0033]本专利技术的优点在于:
[0034]1.本专利技术一种基于TEE的DAG投票共识方法,提出了一种基于自引用的平行链结构,每个区块都拥有自父哈希和证明哈希。自父哈希通过引用自己平行链的最后一个区块来保持链式结构,而证明哈希则是通过区块哈希的计算来增加引用的随机性。这种结构可以有效地增加节点间的并发性,减少交易的确认时间,是链式结构的扩展。
[0035]2.本专利技术一种基于TEE的DAG投票共识方法,通过提高节点间的并发程度来提升DAG账本的吞吐量,并使用了TEE来降低算法的复杂度,提升算法的容错度。
[0036]3.本专利技术一种基于TEE的DAG投票共识方法,提高了基于DAG的分布式账本的安全性本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于TEE的DAG投票共识方法,其特征在于,具体步骤如下:步骤一、针对分布式账本系统中,初始状态下,该系统中的每个节点都有一个相同的本地DAG账本,各节点达成共识;步骤二、针对节点a,打包自己要发布的交易来构建区块,并使用基于TEE的可信签名进行发布;区块包括区块头和区块体;区块头包含自父哈希字段、证明哈希字段、区块哈希字段、时间戳字段、版本字段和公钥字段;区块体则包含交易列表字段和交易信息字段;签名过程具体为:首先,节点a调用可信执行环境TEE,分别计算区块的时间戳、区块头的自父哈希selfProof和证明哈希proofHash并赋值,对该区块进行签名获得signature;自父哈希引用节点自己维护的平行链中的最新区块的哈希;证明哈希的计算过程如下:首先统计当前系统中节点的数量n,然后计算截取区块哈希值的位数x:x=log2n通过区块哈希值最后的x个bit来获得证明哈希所指向的链编号的二进制数y:y=(hash(10101010
···
111101011)|[x])在获得二进制数y后,将其转换为十进制数z,即为证明哈希所指向的链编号,此时引用该链中最新区块的哈希,即可构成基于自引用平行链的DAG结构:z=Decimal(y
binary
)然后,判断区块的时间戳、区块头的自父哈希selfProof和证明哈希proofHash中是否存在空值,如果是,则抛出异常;否则,使用TEE进行签名并返回;步骤三、当其他节点接收到节点a发送的区块消息,每个节点分别独立地进行验证和投票;每个节点校验通过后,将自己针对该区块消息的赞同票发送给网络中的其他节点,否则就丢弃该消息;步骤四、各个节点从网络中接收到其他节点的投票后进行验证和统计;首先,每个节点验证投票是否合法:主要...

【专利技术属性】
技术研发人员:芦效峰许岽
申请(专利权)人:北京邮电大学
类型:发明
国别省市:

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

1