CN115037472A - 基于双层dag共识机制的交易处理方法及***、服务设备 - Google Patents
基于双层dag共识机制的交易处理方法及***、服务设备 Download PDFInfo
- Publication number
- CN115037472A CN115037472A CN202210312108.9A CN202210312108A CN115037472A CN 115037472 A CN115037472 A CN 115037472A CN 202210312108 A CN202210312108 A CN 202210312108A CN 115037472 A CN115037472 A CN 115037472A
- Authority
- CN
- China
- Prior art keywords
- transaction
- verification
- account
- micro
- block
- 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
Images
Classifications
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- 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/56—Financial cryptography, e.g. electronic payment or e-cash
-
- 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 Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种基于双层DAG共识机制的交易处理方法及***、服务设备,该方法包括:交易接收方账户接收交易发送方广播的微块,交易发送方广播的微块为交易发送方根据交易通过引用自己账户下最新的微区块创建得到,交易层中的每个账户采用区块点阵结构;交易接收方账户引用接收到的微块以及对应账户链中的最新微块创建微块,并广播给验证节点;验证节点对接收到的各微块进行验证,验证成功后引用验证完成的端区块生成新的区块,以对交易进行最终确认,验证节点的账本结构采用朴素DAG结构,在交易成交结算之前由验证节点将交易进行合并。本发明具有交易确认速度快、数据吞吐量高、安全性强以及可扩展性强等优点。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种基于双层DAG共识机制的交易处理方法及 ***、服务设备。
背景技术
区块链(BlockChain)是一种按照时间顺序将数据区块(Block)以顺序相连的方式组 合成的链式数据结构,具有不可篡改、不可伪造的特点。DAG(有向无环图)即是一种面向未来的新一代区块链,从图论拓扑模型来看,DAG从单链进化到了树状和网状、从区块粒度细化到交易粒度以及从单点跃迁到了并发写入,无论是容量还是速度都有了巨大提升。相比 于传统区块链,DAG具有高并发、能够避免单链中存在的串行化写入的限制的优势,且相比 于传统区块链中分叉都会被丢弃,DAG的所有合法分支都会被收纳,因而还能够节约资源。
在订单交易过程中,为保证交易安全性,通常需要借助于中间机构平台来完成交易信 息的确认。基于DAG区块链技术可以构建安全、具有隐私保护性的网络,用户在区块链网络 中可以完成安全可靠的交易处理。基于区块链的交易处理,现有技术中通常都是直接采用单 层的DAG共识机制,共识机制即是通过特殊节点的投票完成对交易的验证和确认,但是由于 DAG结构有很多分支,如果某一个分支一直无法得到绝大多数节点的同步,会导致交易一直 无法被确认,而没有及时被绝大多数节点同步的交易有可能会被恶意篡改(例:女巫攻击双 花攻击等),因而仍然会存在安全性问题。为了提高DAG共识机制的安全性,一种解决方案 即是加入额外的同步验证过程,但是这又会造成吞吐量低、交易确认速度慢等的问题。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种交易 确认速度快、数据吞吐量高以及安全性与可扩展性强的基于双层DAG共识机制的交易处理方 法及***、服务设备。
为解决上述技术问题,本发明提出的技术方案为:
一种基于双层DAG共识机制的交易处理方法,包括:
当交易层中账户节点接收到交易发送方广播的微块(Micro block)时,将当前账户节点 作为交易接收方账户,所述交易发送方广播的微块为作为交易发送方的账户节点根据交易通 过引用自己账户下最新的微块创建得到,所述交易层中的每个账户采用区块点阵结构;
所述交易接收方账户引用接收到的微块以及对应账户链中的最新微块创建微块,并广 播给验证层中的验证节点;
各所述验证节点对接收到的各微块按照时序进行验证,验证成功后引用本地DAG视图 中验证完成的端区块生成新的区块,以对交易进行最终确认,所述验证层中各验证节点采用 朴素DAG账本结构;
在交易成交结算之前由所述验证节点将交易进行合并。
进一步的,还包括在交易接收方账户创建的微块中加入随机函数,交易接收方账户将 微块广播给验证节点时,根据所述随机函数随机选择对应的所述验证节点。
进一步的,还包括配置每个所述交易接收方账户维护自己的单链,只有帐户所有者才 能将微块签名到对应的帐户链中。
进一步的,所述微块的balance用于存放余额,以由微区块追踪交易余额,当所述交 易接收方账户中被确认的微区块达到预设阈值时对账户中的历史微区块进行分割。
进一步的,所述验证节点对接收到的各微块进行验证并生成区块的步骤包括:
验证节点从待验证池中选取微块进行验证,验证通过后等待打包,交易处于已确认状态;
当验证成功的微块数量达到阈值或达到等待时间点时打包微块,验证节点对本地DAG视 图中需要引用的端区块进行验证,验证成功后引用所验证的端区块并广播给其他验证节点, 将当前引用的端区块中交易标记交易为最终确认状态;
除当前验证节点外的其他验证节点根据接收到的广播信息对区块进行对比验证,根据对 比验证结果更新本地DAG视图和本地账本信息。。
进一步的,所述验证节点从待验证池中选取微块进行验证和/或所述验证节点对本地 DAG视图中所有端区块进行验证中进行验证的步骤包括:
验证节点随机向周围的其他验证节点请求需验证的账本同步;
当接收到超过第一预设比例的节点的同步信息时,判定账本同步成功已为最新状态;
如果成功同步的节点中超过第二预设比例的节点账本信息一致,则判定账本已为最新 状态,验证节点根据当前同步信息进行验证,并向不一致的节点发送信号;否则发起账本投 票。
进一步的,所述验证节点根据接收到的广播信息对区块进行对比验证的步骤包括:
验证节点将区块中包含的账本信息和本地存储的账本信息进行对比,如果对比一致则将 当前区块加入到本地DAG视图中,并更新本地账本信息;
如果对比不一致则向所有验证节点发起账本投票进行决策后,更新本地DAG视图和本 地账本信息。
进一步的,所述账本投票采用SPECTRE共识协议中的投票机制。
一种基于双层DAG共识机制的交易处理***,包括:
交易层,包括多个账户节点,每个所述账户节点的账号的采用区块点阵结构,当所述 账户节点接收到交易发送方广播的发送微块时,由当前账户节点作为交易接收方账户,所述 发送微块为作为交易发送方的账户节点根据交易通过引用自己账户下最新的微区块创建得 到;以及所述交易接收方账户引用接收到的微块以及对应账户链中的最新微块创建接收微块, 并广播给验证节点;
验证层,包括多个验证节点,所述验证节点对接收到的各微块按照时序进行验证,验 证成功后引用本地DAG视图中验证完成的端区块生成新的区块,以对交易进行最终确认,所 述验证节点的账本结构采用朴素DAG结构,在交易成交结算之前由所述验证节点将交易进行 合并。
一种服务设备,包括处理器以及存储器,所述存储器用于存储计算机程序,所述处理器 用于执行所述计算机程序,所述处理器用于执行所述计算机程序以执行如上述方法。
与现有技术相比,本发明的优点在于:
1、本发明通过将各验证节点划分为验证层、除验证节点以外的账户节点划分为交易层, 形成双层DAG共识机制,当交易接收方账户接收到交易发送方广播的微块时,交易接收方账 户引用接收到的微块以及对应账户链中的最新微块创建微块并广播给验证节点,由验证节点 进行验证并引用本地DAG视图生成新的区块,实现对交易的最终确认,不仅可以提高交易确 认速度、吞吐量,还可以提高交易的安全可靠性以及可扩展性,同时底层交易块具有时序性, 存在拓展智能合约的可能性,即支持智能合约。
2、本发明通过每个账户维护自己的单链,一方面交易检验工作量很低且显而易见,各 区块中交易产生冲突的概率大大减少;另一方面所有分叉都必须是帐户所有者编程不当或恶 意的结果,因而可以很轻易的追踪到攻击者账户并进行防御,验证节点可以轻松地在不影响 合法交易的情况下就如何处理分叉做出决策。
3、本发明通过验证节点对交易接收方收到的来自同一发送方的交易进行整合,有效节 约存储资源同时加快交易确认速度,从而有效抵御单节点攻击和penny-spend攻击;共识机 制的账户账本还可以精简为每个账户一个区块,所以同步和验证过程快,且可以节省大量的 存储资源。
4、本发明进一步通过在接收微块中加入可验证随机函数,根据随机数同概率随机选择 验证节点,可以防范超级节点的出现。
5、本发明进一步通过先验证再生成再检验的三次同步验证模式,可以有效极大的减少 无效区块以及双花的产生,有效利用存储资源,且虽然需要三次同步过程,但每次同步的账 本量少,只需涉及区块包含的账本,因而验证速度快、效率高,且花费的资源也较少。
附图说明
图1是本实施例基于双层DAG共识机制的交易处理方法的步骤流程示意图。
图2是本实施例基于双层DAG共识机制实现交易处理的原理示意图。
图3是本实施例中采用的账本结构示意图。
图4是本实施例中采用的区块点阵结构示意图。
图5是本实施例中采用的账本投票机制实现原理示意图。
图6是本发明具体应用实施例中共识的详细流程示意图。
具体实施方式
以下结合说明书附图和具体优选的实施例对本发明作进一步描述,但并不因此而限制 本发明的保护范围。
如图1所示,本实施例基于双层DAG共识机制的交易处理方法的步骤包括:
S01.当交易层中账户节点接收到交易发送方广播的微块(send微块)时,将当前账户节 点作为交易接收方账户,交易发送方广播的微块(send微块)为作为交易发送方的账户节点 根据交易通过引用自己账户下最新的微块创建得到,交易层中的每个账户采用区块点阵结构;
S02.交易接收方账户引用接收到的微块以及对应账户链中的最新微块创建微块(receive微块),并广播给验证层中的验证节点;
S03.各验证节点对接收到的各微块按照时序进行验证,验证成功后引用本地DAG视图 中验证完成的端区块生成新的区块,以对交易进行最终确认,验证层中各验证节点采用朴素 DAG账本结构;
S04.在交易成交结算之前由验证节点将交易进行合并。
本实施例通过将各验证节点划分为验证层、除验证节点以外的账户节点划分为交易层, 每个账户节点的账户采用区块点阵结构,验证节点采用朴素DAG账本结构,形成双层DAG 共识机制,当交易接收方账户接收到交易发送方广播的微块(send微块)时,交易接收方账 户引用接收到的微块以及对应账户链中的最新微块创建微块(receive微块)并广播给验证 节点,由验证节点进行验证并引用本地DAG视图生成新的区块,实现对交易的最终确认,不 仅可以提高交易确认速度、吞吐量,还可以提高交易的安全可靠性以及可扩展性,同时底层 交易块具有时序性,存在拓展智能合约的可能性,即支持智能合约。
如图2所示,本实施例将交易处理分交易层和验证层,在交易层的账本节点只需要存 储自己账本的微块信息,交易层的账本节点即为除验证节点以外的普通节点,账户节点当接 收到交易时即为交易接收方账户,当发送交易时则为交易发送方账户,在交易层以单个交易 作为基本单元;验证节点则需存储所有账本节点的微块(每个账本的链都可以精简为一个区 块)和最新的验证层DAG视图,以多个交易打包成的区块作为基本单元。
本实施例在交易层,各账户节点的账户具体采用Nano的区块点阵结构,包括:
每个账户维护一条链,记录该账户的所有交易历史,如图3所示;
账户每产生一笔交易即创造一个微块;
每个账户下的微块前后相继构成该账户的区块链;
不同链之间通过相互引用关系构成区块点阵(block lattice),如图4所示。
本实施例通过采用上述Nano的区块点阵结构,可以进一步提高交易确认速度,同时减 少交易确认的开销。
本实施例中一笔完整的转账交易具体由两个子交易构成:
①交易发送方产生的send微块(link。action==send)和②接收方产生的receive 微块(link。action==receive)。然后经由验证层的验证结果最终确认交易,形成双层 DAG共识机制。
本实施例微块中的balance用于存放余额,以由微块追踪交易余额,当交易接收方账户 中被确认的微区块达到预设阈值时对账户中的历史微区块进行分割。通过采用微区块追踪交 易余额而不是交易额的方式,可以抗粉尘攻击,且当账户中被确认的微区块足够多时,可以 对账户中的历史微区块可以进行一定的分割,并不需要存储账户所有的区块***也能正常完 成共识,且不需要牺牲去中心化程度。
本实施例中微块结构具体采用如下表1所示。
表1:微块结构。
Link(链表)结构具体采用如下表2所示。
表2:link结构。
本实施例中还包括配置每个交易层中账户节点维护自己的单链,只有帐户所有者才能将 微块签名到对应的帐户链中,因此所有分叉都必须是帐户所有者编程不当或恶意(双重花费) 的结果,使得验证节点可以轻松地在不影响合法交易的情况下就如何处理分叉做出决策。由 于每个账户维护自己的单链,一方面交易检验工作量很低且显而易见,各区块中交易产生冲 突的概率大大减少;另一方面所有分叉都必须是帐户所有者编程不当或恶意(双重花费)的 结果,因而可以很轻易的追踪到攻击者账户并进行防御。
本实施例中,还包括在交易接收方账户创建的微块(接收微块)中加入随机函数,交易 接收方账户将微块广播给验证节点时,根据随机函数随机选择对应的验证节点。传统Nano 节点是自主选择代表,可能会产生超级代表造成垄断,本实施例通过在接收微块中加入可验 证随机函数,根据随机数同概率随机选择验证节点,即选取验证此次交易的代表,每个节点 被选中的概率是一样的,可以防范超级节点的出现。上述随机数具体可以配置为根据一定的 间隙(如10s)发生改变,则接收方在间隙内产生的接收区块会发给同一验证节点,验证节 点可以对此接收方收到的来自同一发送方的交易进行整合,有效节约存储资源同时加快交易 确认速度,从而有效抵御单节点攻击和penny-spend攻击。
本实施例在交易层的处理流程包括:
(1)交易发送方通过引用自己账户下最新的微区块创建一个发送微块,利用私钥进行 签名后将该微块广播给交易接收方账户,此时相应金额已从当前账户中扣除,交易处于待接 收状态;
(2)交易接收方收到此发送微块后,通过引用该微块以及自己账户链中的最新微块创 建接收微块,对其进行签名后,将接收微块进行广播,交易根据随机数函数随机进入验证节 点的交易池,交易被标记为待验证状态。
此时只有帐户所有者才能将微块签名到他们的帐户链中,因此所有分叉都必须是帐户所 有者编程不当或恶意(双重花费)的结果,使得验证节点可以轻松地在不影响合法交易的情 况下就如何处理分叉做出决策。
本实施例交易处理过程中,由于需要花费一定的pow才能发起交易(即生成发送微块), 每个块都有少量与之相关的工作,大约需要5秒来生成和1微秒来验证,因而还可以有效 抵御泛洪攻击。相比于传统SPECTRE区块生成采用pow机制,大量交易确认写入区块链形成新 区块的行为会造成极大的资源浪费,本实施例上述区块生成不需要进行大规模交易确认写入 区块链形成新区块工作。
本实施例中验证节点对接收到的各微块进行验证并生成区块的步骤包括:
S301:验证节点从待验证池中选取微块进行验证,验证通过后等待打包,交易处于已确 认状态;
S302:当验证成功的微块数量达到阈值或达到等待时间点时打包微块,验证节点对本地 DAG视图中需要引用的端区块进行验证,验证成功后引用所验证的端区块并广播给其他验证 节点,将当前引用的端区块中交易标记交易为最终确认状态,其中此次区块中的交易还是处 于交易已确认状态,需要等到备下一个区块引用时才会被标为最终确认状态;
S303:除当前验证节点以外的其他验证节点根据接收到的广播信息对区块进行对比验证, 根据对比验证结果更新本地DAG视图和本地账本信息。
传统如SPECTRE等的机制中是采用先交易后解决冲突的模式,会浪费存储资源且难以 抵御penny-spend攻击,本实施例通过先验证再生成再检验的三次同步验证模式,可以有效 极大的减少无效区块以及双花的产生,有效利用存储资源,且虽然需要三次同步过程,但每 次同步的账本量少,只需涉及区块包含的账本,因而验证速度快、效率高,且花费的资源也 较少。
本实施例中,步骤S301中验证节点从待验证池中选取微块进行验证、步骤S302中验 证节点对本地DAG视图中所有端区块进行验证中,进行验证的具体步骤包括:
步骤1:验证节点随机向周围的其他验证节点请求需验证的账本同步;
步骤2:当接收到超过第一预设比例的节点的同步信息时,判定账本同步成功;
步骤3:如果成功同步的节点中超过第二预设比例的节点账本信息一致,则判定账本已 为最新状态,验证节点根据当前同步信息进行验证,并向不一致的节点发送信号,否则发起 账本投票。
本实施例中,验证节点根据接收到的广播信息对区块进行对比验证的步骤包括:
S331.验证节点将区块中包含的账本信息和本地存储的账本信息进行对比,如果对比一 致则将当前区块加入到本地DAG视图中,并更新本地账本信息;
S332.如果对比不一致则向所有验证节点发起账本投票进行决策后,更新本地DAG视图 和本地账本信息。
传统区块点阵结构的共识机制中每一笔交易都需要投票,且每笔交易进行确认的通信 成本高,会存在带宽攻击,本实施例通过每笔交易只需要“生成包含此交易的区块的验证节 点”和“后续引用此区块的验证节点”进行检验,通信和验证成本都比较低,可以大大减少 交易处理成本,且账户账本可以精简为每个账户一个区块,所以同步和验证的过程非常快, 并且可以节省很多的存储资源。
本实施例账本投票具体采用SPECTRE共识协议中的投票机制。SPECTRE是一个以区块 为基本单元的DAG账本,每个诚实节点在交易确认写入区块链形成新区块时需要引用自己 的DAG视图中所有端区块,因此账本呈现为朴素DAG形态。在验证层中各验证节点从自身交易池中按时间先后选取微块进行验证,并对同一发送方发给同一接收方的交易进行整合, 验证通过后等待打包,确认交易则采用SPECTRE共识协议中的投票机制。
在具体应用实施例中,验证层的详细验证流程包括:
(1)账本验证:
1.1)随机向周围的验证节点请求需验证的账本同步;
本实施例中共识机制的账本设计可以精简为每个账户一个区块(无论该账户发送或接受 了多少交易),可以提高同步过程的速度。
1.2)当接收到超过50%的节点的同步信息时,即认为账本已为最新状态;如果成功同步 的节点中超过80%节点账本信息一致,则同步成功,验证节点根据此次同步信息进行验证, 并向不一致的节点发送信号;否则账本可能出现双花,发起账本投票。
(2)账本投票:
采用SPECTRE共识协议中的投票机制进行账本投票,如图5所示,SPECTRE投票过程具 体为:
2.1)区块X和区块Y分别投票给自己;
2.2)区块X之后产生的区块称之为X的未来区块,回溯这些未来区块发现6,7,8只能回溯到X,所以这三个区块都投票给X,标记为蓝色。同理,回溯区块Y的未来区块发现9,10,11只能投票给Y,标记为红色。
2.3)未来区块12既回溯到X又能回溯到Y,它会投出与上一轮投票一样的结果X。图5 中虚线部分是上一轮的投票,按少数服从多数的原则可知,投票的结果是X。
2.4)X或Y之前产生的区块称为X或Y的过去区块,这些区块会分别统计自己对应的未 来区块的投票,然后跟投给得票较多的那个选项。由此,区块1~5都投给X,交易x<y认定有效,y<x被丢弃。
当前交易处于已确认状态。
(3)区块生成与验证
3.1)当验证成功的微块数量达到阈值,则进行打包;如果10s后1<=验证通过的微块数 量<打包阈值,也进行一次区块打包;验证节点在打包好的区块中对本地DAG视图中需要引 用的端区块进行验证,并引用自己的验证层DAG视图中所有端区块,然后将其广播给所有节 点;交易被标记为最终确认状态。
3.2)收到广播的账户节点只需要对比更新自己账户的信息,对于其他节点的信息可以 选择忽略;收到广播的验证节点进行对比验证后,更新自己的验证层DAG视图和本地全账本 信息,并根据gossip协议发送给周围其他验证节点进行同步。
(4)对比验证
验证节点将区块中包含的账本信息和本地存储的全账本信息进行对比,对比无误则将此 区块加入到自己的验证层DAG视图中,并在更新本地全账本信息;如果对比不一致,则有可 能出现验证层DAG视图分割,采用SPECTRE共识协议中的投票机制进行决策后,更新自己的 验证层DAG视图和本地全账本信息。
(5)Gossip谣言传播
由种子节点发起,当一个种子节点有状态需要更新到网络中的其他节点时,随机的选择 周围几个节点散播消息,收到消息的节点也会重复该过程,直至最终网络中所有的节点都收 到了消息。这个过程可能需要一定的时间,由于不能保证某个时刻所有节点都收到消息,但 是理论上最终所有节点都会收到消息,因此它是一个最终一致性协议。
如图6所示,本发明在具体应用实施例中实现共识的详细步骤为:
S1.交易发送方引用自己账户下最新的微区块创建一个发送微块,利用私钥进行签名后 将该微块广播给交易接收方账户,交易处于待接收状态;
S2.接收方账户接受到发送方账户的发送微块后,引用该微块以及自己账户链中的最新 微块创建接收微块,并对其进行签名,接收微块根据可验证的随机数函数生成的随机数广播 给对应的验证节点,交易被标记为待验证状态;
S3.验证节点从自身交易池中按时间先后选取微块进行验证,验证通过后等待打包;交 易处于已确认状态;
S4.当验证成功的微块数量达到阈值或达到等待时间点时进行打包,在打包好的区块中 对本地DAG视图中需要引用的端区块进行验证,并引用自己的验证层DAG视图中端区块,然 后将其广播给所有节点;交易被标记为最终确认状态;
S5.收到广播的账户节点对比更新自己账户的信息,收到广播的验证节点进行对比验证 后,更新自己的验证层DAG视图和本地全账本信息,并根据gossip协议发送给周围其他验 证节点进行同步,形成的第二层验证层DAG链的结构。
上述步骤S3、S4中进行验证的详细步骤为:验证节点随机向周围的验证节点请求需验 证的账本同步;当接收到超过50%的节点的同步信息时,即判定账本同步成功;如果成功同 步的节点中超过80%节点账本信息一致,则判定账本已为最新状态,验证节点根据此次同步 信息进行验证,并向不一致的节点发送信号;否则账本可能出现双花,发起账本投票。
上述对比验证过程具体为:验证节点将区块中包含的账本信息和本地存储的全账本信息 进行对比,对比无误则将此区块加入到自己的验证层DAG视图中,并在更新本地全账本信息; 如果对比不一致,则有可能出现验证层DAG视图分割,向所有验证节点发起账本投票进行决 策后,更新自己的验证层DAG视图和本地全账本信息。
本实施例还提供基于双层DAG共识机制的交易处理***,包括:
交易层,包括多个账户节点,每个普通节点的账号的采用区块点阵结构,当账户节点 接收到接收交易发送方广播的发送微块时,由当前普通节点作为交易接收方账户,发送微块 为作为交易发送方的账户节点根据交易通过引用自己账户下最新的微区块创建得到;以及交 易接收方账户引用接收到的微块以及对应账户链中的最新微块创建接收微块,并广播给验证 节点;
验证层,包括多个验证节点,验证节点对接收到的各微块进行验证,验证成功后引用 本地DAG视图中验证完成的端区块生成新的区块,以对交易进行最终确认,验证节点的账本 结构采用朴素DAG结构,在交易成交结算之前由验证节点将交易进行合并。
本实施例基于双层DAG共识机制的交易处理***与上述基于双层DAG共识机制的交易 处理方法对应,在此不再一一赘述。
本发明还提供一种服务设备,包括处理器以及存储器,存储器用于存储计算机程序,处 理器用于执行计算机程序,处理器用于执行计算机程序以执行如上述的方法。
本领域技术人员可以理解,上述服务设备的描述仅仅是示例,并不构成对服务设备的限 定,可以包括比上述描述更多或更少的部件,或者组合某些部件,或者不同的部件,例如可 以包括输入输出设备、网络接入设备、总线等。所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、 现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、 分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也 可以是任何常规的处理器等,所述处理器是所述计算机装置的控制中心,利用各种接口和线 路连接整个计算机装置的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在 所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述计算机 装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存 储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存 储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储 器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬 盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存 卡(FlashCard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
上述只是本发明的较佳实施例,并非对本发明作任何形式上的限制。虽然本发明已以 较佳实施例揭露如上,然而并非用以限定本发明。因此,凡是未脱离本发明技术方案的内容, 依据本发明技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均应落在本发明 技术方案保护的范围内。
Claims (10)
1.一种基于双层DAG共识机制的交易处理方法,其特征在于,包括:
当交易层中账户节点接收到交易发送方广播的微块时,将当前账户节点作为交易接收方账户,所述交易发送方广播的微块为作为交易发送方的账户节点根据交易通过引用自己账户下最新的微块创建得到,所述交易层中的每个账户采用区块点阵结构;
所述交易接收方账户引用接收到的微块以及对应账户链中的最新微块创建微块,并广播给验证层中的验证节点;
各所述验证节点对接收到的各微块按照时序进行验证,验证成功后引用本地DAG视图中验证完成的端区块生成新的区块,以对交易进行最终确认,所述验证层中各验证节点采用朴素DAG账本结构;
在交易成交结算之前由所述验证节点将交易进行合并。
2.根据权利要求1所述的基于双层DAG共识机制的交易处理方法,其特征在于,还包括在交易接收方账户创建的微块中加入随机函数,交易接收方账户将微块广播给验证节点时,根据所述随机函数随机选择对应的所述验证节点。
3.根据权利要求1所述的基于双层DAG共识机制的交易处理方法,其特征在于,还包括配置每个所述交易接收方账户维护自己的单链,只有帐户所有者才能将微块签名到对应的帐户链中。
4.根据权利要求1所述的基于双层DAG共识机制的交易处理方法,其特征在于,所述微块的balance用于存放余额,以由微块追踪交易余额,当所述交易接收方账户中被确认的微块达到预设阈值时对账户中的历史微块进行分割。
5.根据权利要求1所述的基于双层DAG共识机制的交易处理方法,其特征在于,所述验证节点对接收到的各微块进行验证并生成区块的步骤包括:
验证节点从待验证池中选取微块进行验证,验证通过后等待打包,交易处于已确认状态;
当验证成功的微块数量达到阈值或达到等待时间点时打包微块,验证节点对本地DAG视图中需要引用的端区块进行验证,验证成功后引用所验证的端区块并广播给其他验证节点,将当前引用的端区块中交易标记交易为最终确认状态;
除当前验证节点以外的其他验证节点根据接收到的广播信息对区块进行对比验证,根据对比验证结果更新本地DAG视图和本地账本信息。
6.根据权利要求5所述的基于双层DAG共识机制的交易处理方法,其特征在于,所述验证节点从待验证池中选取微块进行验证和/或所述验证节点对本地DAG视图中所有端区块进行验证中进行验证的步骤包括:
验证节点随机向周围的其他验证节点请求需验证的账本同步;
当接收到超过第一预设比例的节点的同步信息时,判定账本同步成功;
如果成功同步的节点中超过第二预设比例的节点账本信息一致,则判定账本已为最新状态,验证节点根据当前同步信息进行验证,并向不一致的节点发送信号;否则发起账本投票。
7.根据权利要求5所述的基于双层DAG共识机制的交易处理方法,其特征在于,所述验证节点根据接收到的广播信息对区块进行对比验证的步骤包括:
验证节点将区块中包含的账本信息和本地存储的账本信息进行对比,如果对比一致则将当前区块加入到本地DAG视图中,并更新本地账本信息;
如果对比不一致则向所有验证节点发起账本投票进行决策后,更新本地DAG视图和本地账本信息。
8.根据权利要求6或7所述的基于双层DAG共识机制的交易处理方法,其特征在于,所述账本投票采用SPECTRE共识协议中的投票机制。
9.一种基于双层DAG共识机制的交易处理***,其特征在于,包括:
交易层,包括多个账户节点,每个所述账户节点的账号的采用区块点阵结构,当所述账户节点接收到交易发送方广播的发送微块时,由当前账户节点作为交易接收方账户,所述发送微块为作为交易发送方的账户节点根据交易通过引用自己账户下最新的微区块创建得到;以及所述交易接收方账户引用接收到的微块以及对应账户链中的最新微块创建接收微块,并广播给验证节点;
验证层,包括多个验证节点,所述验证节点对接收到的各微块按照时序进行验证,验证成功后引用本地DAG视图中验证完成的端区块生成新的区块,以对交易进行最终确认,所述验证节点的账本结构采用朴素DAG结构,在交易成交结算之前由所述验证节点将交易进行合并。
10.一种服务设备,包括处理器以及存储器,所述存储器用于存储计算机程序,所述处理器用于执行所述计算机程序,其特征在于,所述处理器用于执行所述计算机程序以执行如权利要求1~8中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210312108.9A CN115037472B (zh) | 2022-03-28 | 2022-03-28 | 基于双层dag共识机制的交易处理方法及***、服务设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210312108.9A CN115037472B (zh) | 2022-03-28 | 2022-03-28 | 基于双层dag共识机制的交易处理方法及***、服务设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115037472A true CN115037472A (zh) | 2022-09-09 |
CN115037472B CN115037472B (zh) | 2023-06-23 |
Family
ID=83119469
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210312108.9A Active CN115037472B (zh) | 2022-03-28 | 2022-03-28 | 基于双层dag共识机制的交易处理方法及***、服务设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115037472B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116382815A (zh) * | 2023-06-05 | 2023-07-04 | 安徽中科晶格技术有限公司 | 基于dag模型的合约并行化方法 |
CN118018555A (zh) * | 2024-04-03 | 2024-05-10 | 湖南天河国云科技有限公司 | 基于区块链共识算法中共识节点的确定方法及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109377232A (zh) * | 2018-12-20 | 2019-02-22 | 众安信息技术服务有限公司 | 基于dag的区块链的交易定序方法及设备 |
US20190354518A1 (en) * | 2018-05-01 | 2019-11-21 | Michael Zochowski | Chain mesh network for decentralized transaction systems |
US20200065300A1 (en) * | 2018-08-24 | 2020-02-27 | Oracle International Corporation | Dag based methods and systems of transaction processing in a distributed ledger |
CN111080288A (zh) * | 2019-10-18 | 2020-04-28 | 湖南天河国云科技有限公司 | 一种基于有向无环图的区块链共识达成方法及装置 |
US20200334653A1 (en) * | 2019-04-21 | 2020-10-22 | Blockchain Foundry Inc. | System and Method for a Zero Confirmation Directed Acyclic Graph |
US20210124734A1 (en) * | 2019-10-28 | 2021-04-29 | Peking University | Trusted storage method and system based on directed acyclic graph structure |
EP3846062A1 (en) * | 2020-01-06 | 2021-07-07 | Tata Consultancy Services Limited | Method and system for processing transactions in a blockchain network |
CN113516557A (zh) * | 2021-07-14 | 2021-10-19 | 桂林电子科技大学 | 一种有向无环图结构的区块链及其实现方法 |
-
2022
- 2022-03-28 CN CN202210312108.9A patent/CN115037472B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190354518A1 (en) * | 2018-05-01 | 2019-11-21 | Michael Zochowski | Chain mesh network for decentralized transaction systems |
US20200065300A1 (en) * | 2018-08-24 | 2020-02-27 | Oracle International Corporation | Dag based methods and systems of transaction processing in a distributed ledger |
CN109377232A (zh) * | 2018-12-20 | 2019-02-22 | 众安信息技术服务有限公司 | 基于dag的区块链的交易定序方法及设备 |
US20200334653A1 (en) * | 2019-04-21 | 2020-10-22 | Blockchain Foundry Inc. | System and Method for a Zero Confirmation Directed Acyclic Graph |
CN111080288A (zh) * | 2019-10-18 | 2020-04-28 | 湖南天河国云科技有限公司 | 一种基于有向无环图的区块链共识达成方法及装置 |
US20210124734A1 (en) * | 2019-10-28 | 2021-04-29 | Peking University | Trusted storage method and system based on directed acyclic graph structure |
EP3846062A1 (en) * | 2020-01-06 | 2021-07-07 | Tata Consultancy Services Limited | Method and system for processing transactions in a blockchain network |
CN113516557A (zh) * | 2021-07-14 | 2021-10-19 | 桂林电子科技大学 | 一种有向无环图结构的区块链及其实现方法 |
Non-Patent Citations (2)
Title |
---|
戴安博;陈恭亮;: "POW区块链共识算法分析与展望", 通信技术, no. 12 * |
陈幻;王意洁;: "一种面向公有链的轻量级可扩展技术", 计算机研究与发展, no. 07 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116382815A (zh) * | 2023-06-05 | 2023-07-04 | 安徽中科晶格技术有限公司 | 基于dag模型的合约并行化方法 |
CN116382815B (zh) * | 2023-06-05 | 2023-10-10 | 安徽中科晶格技术有限公司 | 基于dag模型的合约并行化方法 |
CN118018555A (zh) * | 2024-04-03 | 2024-05-10 | 湖南天河国云科技有限公司 | 基于区块链共识算法中共识节点的确定方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN115037472B (zh) | 2023-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110288345B (zh) | 跨链通信方法、装置、主链节点及存储介质 | |
CN111681003A (zh) | 资源跨链转移方法、装置、计算机设备以及存储介质 | |
CN112541758A (zh) | 基于区块链的多轮投票式容错排序共识机制与方法 | |
CN108492108A (zh) | 区块链跨链通信方法、***和计算机可读存储介质 | |
CN110298754B (zh) | 一种应用于区块链的共识方法 | |
CN111901350A (zh) | 区块链***、数据处理方法、计算机设备及存储介质 | |
CN110177124B (zh) | 基于区块链的身份认证方法及相关设备 | |
CN109840769B (zh) | 基于区块链的存证方法及装置、***与存储介质 | |
CN112862490B (zh) | 一种异步网络下的输出共识方法 | |
CN109936620B (zh) | 基于区块链的存储方法及装置、***与存储介质 | |
CN113570466A (zh) | 一种交易数据处理方法、装置以及可读存储介质 | |
CN110930152B (zh) | 一种基于区块链的数据处理方法及相关设备 | |
CN113342838B (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN113255014B (zh) | 一种基于区块链的数据处理方法以及相关设备 | |
CN110992035A (zh) | 区块链节点管理方法、装置及*** | |
CN115037472A (zh) | 基于双层dag共识机制的交易处理方法及***、服务设备 | |
CN111970370B (zh) | 基于面向通信设备体系的多层区块链协议拓展***及方法 | |
CN112950180A (zh) | 一种基于联盟链的通证方法、***、电子设备及存储介质 | |
CN109391643B (zh) | 区块链轻量化处理方法、区块链节点及存储介质 | |
CN111369246B (zh) | 智能合约的调用鉴权方法、装置、电子设备及存储介质 | |
CN113094433A (zh) | 一种基于区块链的消费券处理方法及装置 | |
CN117540356B (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
US20240205032A1 (en) | Blockchain data processing method, apparatus, and device, computer-readable storage medium, and computer program product | |
CN110659264B (zh) | 用于计算***的业务处理方法、装置和计算*** | |
KR102494215B1 (ko) | 뉴럴 블록 신속 전파 프로토콜 기반의 블록체인을 구축하는 장치 및 그 동작 방법 |
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 |