CN111429122A - 基于dag区块链的数据验证方法、装置和计算机设备 - Google Patents
基于dag区块链的数据验证方法、装置和计算机设备 Download PDFInfo
- Publication number
- CN111429122A CN111429122A CN202010526973.4A CN202010526973A CN111429122A CN 111429122 A CN111429122 A CN 111429122A CN 202010526973 A CN202010526973 A CN 202010526973A CN 111429122 A CN111429122 A CN 111429122A
- Authority
- CN
- China
- Prior art keywords
- target node
- transaction
- node
- verification
- target
- 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.)
- Pending
Links
Images
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/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
- G06Q20/065—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
-
- 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/3823—Payment protocols; Details thereof insuring higher security of transaction combining multiple encryption tools for 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
- 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
- G06Q20/4014—Identity check for transactions
-
- 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)
- Engineering & Computer Science (AREA)
- Finance (AREA)
- Physics & Mathematics (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本申请涉及一种基于DAG区块链的数据验证方法、装置、计算机设备和存储介质。所述方法包括:获取DAG区块链中各节点的资源转移参数,根据资源转移参数,选择目标节点,发送交易选择消息至目标节点,目标节点选择两个未验证交易,发布随机字符串,当检测到目标节点基于随机字符串和工作量证明机制进行持续哈希运算得到的哈希值小于或等于预设阈值时,判定目标节点通过验证。本方法以目标节点替代DAG区块链中的coordinator节点以实现去中心化,通过竞争的方式,使得交易的验证不再局限于coordinator节点,提高交易验证的效率,且使得DAG网络被攻击的概率大大降低,提高网络的数据安全性。
Description
技术领域
本申请涉及区块链技术领域,特别是涉及一种基于DAG区块链的数据验证方法、装置、计算机设备和存储介质。
背景技术
DAG(Directed Acyclic Graph,有向无环图)区块链中没有区块概念,每个用户都可以提交一个数据单元,这个数据单元里可以有很多东西,比如交易、消息等等。数据单元间通过引用关系链接起来,从而形成具有半序关系的DAG(有向无环图)。DAG区块链的特点是把数据单元的写入操作异步化,大量的钱包客户端可以自主异步地把交易数据写入DAG,从而可以支持极大的并发量和极高的速度。
在IOTA提出的DAG网络中,存在coordinator(协管员)节点,coordinator每分钟会发一条交易,称为milestone,所有被milestone间接确认的交易都是100%确认的状态,从而解决在高负载的情况下,大量落后交易无法被确认的问题。
但是,由于coordinator的存在,使得整个DAG网络成了coordinator“一个人说的算”,成为一个中心化的系统。攻击者完全可以攻击coordinator,发送大量空交易,致使整个网络瘫痪;不发送空交易,使得网络中大量落后交易得不到验证;制造假的milestone,形成“双花攻击”。由此可见,DAG网络中交易验证滞后,存在数据安全性不高的问题。
发明内容
基于此,本申请为了解决coordinator节点的中心化问题,提出目标节点取代coordinator节点以实现去中心化的问题,提供一种能够提高交易验证效率保障数据安全性的基于DAG区块链的数据验证方法、装置、计算机设备和存储介质。
一种基于DAG区块链的数据验证方法,所述方法包括:
获取DAG区块链中各节点的资源转移参数;
根据资源转移参数,选择目标节点;
发送交易选择消息至目标节点,目标节点选择两个未验证交易,发布随机字符串;
当检测到目标节点基于随机字符串和工作量证明机制进行持续哈希运算得到的哈希值小于或等于预设阈值时,判定目标节点通过验证。
在其中一个实施例中,根据资源转移参数,选择目标节点包括:
统计DAG区块链中各节点的资源转移参数之和;
当检测到当前节点的资源转移参数之和排列在预设名次范围内,则为该各节点添加目标身份,得到目标节点。
在其中一个实施例中,检测目标节点基于随机字符串和工作量证明机制进行持续哈希运算得到的哈希值小于或等于预设阈值时,判定目标节点通过验证包括:
检测各目标节点基于随机字符串和工作量证明机制进行持续哈希运算得到的哈希值是否小于或等于预设目标值;
若首次检测到待验证哈希值小于或等于预设目标值,则判定上传该待验证哈希值对应的目标节点通过验证;
其中,预设目标值基于目标节点完成单笔交易验证的平均时间和交易的首次被验证的预估时间确定。
在其中一个实施例中,当检测到目标节点基于随机字符串和工作量证明机制进行持续哈希运算得到的哈希值小于或等于预设阈值时,判定目标节点通过验证之后,还包括:
当接收到该目标节点发送的交易验证完成消息时,分配奖励至该目标节点。
在其中一个实施例中,分配奖励至该目标节点包括:
获取基础奖励数据、该目标节点验证的交易的产生时间以及交易的首次被验证的预估时间;
根据基础奖励数据、交易的产生时间以及交易的首次被验证的预估时间,确定奖励数据;
根据奖励数据,分配奖励至该目标节点。
在其中一个实施例中,根据奖励数据,分配奖励至该目标节点包括:
根据奖励数据发送奖励支付消息至该目标节点所验证的交易对应的交易发起者,以使交易发起者支付奖励。
在其中一个实施例中,目标节点选择两个未验证的交易包括:
查询DAG区块链中未验证交易的交易时间;
根据交易时间,选择两个未验证交易。
一种基于DAG区块链的数据验证装置,所述装置包括:
参数获取模块,用于获取DAG区块链中各节点的资源转移参数;
目标节点选择模块,用于根据资源转移参数,选择目标节点;
交易选择通知模块,用于发送交易选择消息至目标节点,目标节点选择两个未验证交易,发布随机字符串;
验证模块,用于当检测到目标节点基于随机字符串和工作量证明机制进行持续哈希运算得到的哈希值小于或等于预设阈值时,判定目标节点通过验证。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取DAG区块链中各节点的资源转移参数;
根据资源转移参数,选择目标节点;
发送交易选择消息至目标节点,目标节点选择两个未验证交易,发布随机字符串;
当检测到目标节点基于随机字符串和工作量证明机制进行持续哈希运算得到的哈希值小于或等于预设阈值时,判定目标节点通过验证。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取DAG区块链中各节点的资源转移参数;
根据资源转移参数,选择目标节点;
发送交易选择消息至目标节点,目标节点选择两个未验证交易,发布随机字符串;
当检测到目标节点基于随机字符串和工作量证明机制进行持续哈希运算得到的哈希值小于或等于预设阈值时,判定目标节点通过验证。
上述基于DAG区块链的数据验证方法、装置、计算机设备和存储介质,获取DAG区块链中各节点的资源转移参数,根据资源转移参数,选择目标节点,发送交易选择消息至目标节点,目标节点选择两个未验证交易,发布随机字符串,当检测到目标节点基于随机字符串和工作量证明机制进行持续哈希运算得到的哈希值小于或等于预设阈值时,判定目标节点通过验证。上述方案,根据资源转移参数确认目标节点身份,能够确保拥有交易验证权限的目标节点都是进行过大量权重交易对系统产生巨大贡献的各节点,保证交易验证的可靠性,同时,以目标节点替代DAG区块链中的coordinator节点以实现去中心化,通过竞争的方式,使得交易的验证不再局限于coordinator节点,提高交易验证的效率,且使得DAG网络被攻击的概率大大降低,提高网络的数据安全性。
附图说明
图1为一个实施例中基于DAG区块链的数据验证方法的应用环境图;
图2为一个实施例中基于DAG区块链的数据验证方法的流程示意图;
图3为另一个实施例中基于DAG区块链的数据验证方法的流程示意图;
图4为一个实施例中分配挖矿奖励至矿工节点步骤的流程示意图;
图5为一个实施例中基于DAG区块链的数据验证装置的结构框图;
图6为另一个实施例中基于DAG区块链的数据验证装置的结构框图;
图7为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的基于DAG区块链的数据验证方法,可以应用于如图1所示的应用环境中。其中,DAG区块链中分布有多个区块链节点102(以下简称节点),各节点的身份默认为“普通”身份,各节点通过网络与区块链服务器104(以下简称服务器)进行通信。当服务器104接收到验证指令时,便获取DAG区块链中各节点的资源转移参数,根据资源转移参数,选择目标节点,发送交易选择消息至目标节点,目标节点选择两个未验证交易,发布随机字符串,当检测到目标节点基于随机字符串和工作量证明机制进行持续哈希运算得到的哈希值小于或等于预设阈值时,判定目标节点通过验证,以使其可验证选择的未验证交易。其中,区块链节点102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种基于DAG区块链的数据验证方法,以该方法应用于图1中的服务器104为例进行说明,包括以下步骤:
步骤202,获取DAG区块链中各节点的资源转移参数。
区块链是加密的分布式数据存储网络,信息被添加到区块链并存储在块中。简而言之,其是一个块链,所有块都相互链接,每个块包含多个交易。而在DAG区块链网络即Tangle(缠绕)中,交易相互关联,就像一个大的网络纠缠在一起,没有块的概念,该技术本身基于有向Acylic图。DAG是有向图,由有限数量的边和顶点组成。在Tangle这种架构中,每个顶点都代表一笔交易,单个顶点永远无法回到前面的同一个顶点。在Tangle中,无需等待块开采,交易几乎会实时进行验证,一次可以提供更快的交易速度和更多的交易。用户在发起一笔交易前,需要验证2笔交易。
资源转移参数可以是交易权重参数(如交易积分)和通证等数据。本实施例中,资源转移参数以交易积分为例,交易积分即为score,其代表着由该笔交易直接或间接认证的所有交易的权重以及自身权重之和。节点的交易积分能够表征该节点对区块链系统所做的贡献程度。具体实施时,若当前DAG区块链中有各节点发起交易时,便获取各节点的交易积分,以便于判断是否该为该节点添加矿工身份。
步骤204,根据交易积分,选择目标节点。
本实施例中,目标节点可以是矿工节点。在实际应用中,系统采用基于POW(ProofOf Work,工作量证明机制)的矿工机制代替了coordinator节点。具体的,系统为各节点设置有两种身份,一种是“普通”身份,一种是“矿工”身份,一个各节点可拥有双重身份,即“普通”身份 +“矿工”身份。各节点所创建的节点的交易积分能够作为该节点是否有资格添加“矿工”身份的判断条件,各节点所拥有的交易积分越多,则表示其在系统中产生过大量有权重的交易,该各节点对系统产生有巨大的贡献。当根据交易积分判断当前各节点符合预设的“矿工”身份添加条件时,则自动为该各节点添加“矿工”身份,得到目标节点(亦可称为矿工节点)。
步骤206,发送交易选择消息至目标节点,目标节点选择两个未验证交易,发布随机字符串。
具体实施时,所有未被验证(认证)的交易定义为“tip”。当为区块链中满足矿工身份添加条件的各节点添加“矿工”身份,得到矿工节点后,则发送交易选择消息至矿工节点,以便矿工节点自行选择感兴趣的未验证的tip交易。具体的,可以矿工节点可根据tip交易的产生时间来选择。
步骤208,当检测到目标节点基于随机字符串和工作量证明机制进行持续哈希运算得到的哈希值小于或等于预设阈值时,判定目标节点通过验证。
当多个矿工节点选择好两个未验证的tip交易后,可通过发送挖矿任务请求,请求挖矿,以竞争验证未被验证的交易的权限。接收矿工节点的挖矿任务请求,便开启挖矿任务,使得矿工节点们开始挖矿。具体的,若某个矿工节点最先挖矿成功,则认为仅该矿工节点通过验证,具备验证交易的权限,其他矿工节点后续挖矿成功也视为无效。具体的,K个矿工节点挖矿过程可以是:要求在前序发布的随机字符串后面添加一个叫做nonce的整数值,对变更后(添加nonce)的字符串进行SHA256运算,如果得到的哈希结果(以16进制的形式表示)小于或等于目标值,则验证通过,表明该矿工节点挖矿成功,可验证其选择的两个未验证交易;若得到的哈希结果大于目标值,则重复添加nonce再进行哈希运算,直至寻找到满足哈希结果小于或等于目标值的nonce。
具体实施时,当某个矿工节点最先寻找到满足条件的nonce挖矿成功时,则判定该矿工节点通过验证,具备验证tip交易的权限,可进一步发送交易验证消息至该矿工节点,以便矿工节点验证交易,具体的,矿工节点验证交易可以是验证交易的数字签名是否一致,若不一致,则认为该交易验证不通过,可将该笔交易视为无效交易,进一步的,可清理该笔交易。
上述基于DAG区块链的数据验证方法中,获取DAG区块链中各节点的资源转移参数,根据资源转移参数,选择目标节点,发送交易选择消息至目标节点,目标节点选择两个未验证交易,发布随机字符串,当检测到目标节点基于随机字符串和工作量证明机制进行持续哈希运算得到的哈希值小于或等于预设阈值时,判定目标节点通过验证。上述方案,根据资源转移参数确认目标节点身份,能够确保拥有交易验证权限的目标节点都是进行过大量权重交易对系统产生巨大贡献的各节点,保证交易验证的可靠性,同时,以目标节点替代DAG区块链中的coordinator节点以实现去中心化,通过竞争的方式,使得交易的验证不再局限于coordinator节点,提高交易验证的效率,且使得DAG网络被攻击的概率大大降低,提高网络的数据安全性。
在其中一个实施例中,目标节点选择两个未验证的交易包括:查询DAG区块链中未验证交易的交易时间;根据交易时间,选择两个未验证交易。
具体实施时,矿工节点选择tip交易时,会选择感兴趣的tip交易,而一般的,验证tip交易的挖矿手续费与交易时间相关,tip交易产生时间越早,矿工节点能获的挖矿手续费也会相应的越高,诱惑越大,使得交易时间越早的tip交易越有可能被矿工节点验证。具体的,矿工节点自行选择tip交易可以是:查看DAG区块链网络中各tip交易的交易时间,根据tip交易的交易时间,选择交易时间产生较早的交易,可以选择交易时间最早的tip交易也可以选择时间相对较早的tip交易。本实施例中,挖矿手续费与交易时间相关,能够使得矿工节点验证交易时间较早的未验证的tip交易,起到及时清理库存的效果。
在其中一个实施例中,如图3所示,根据交易积分,选择目标节点包括:步骤224,统计DAG区块链中各节点的资源转移参数之和,当检测到当前各节点的资源转移参数之和排列在预设名次范围内,则为该各节点添加目标身份,得到目标节点。
本实施例中,预设名次范围可以是排名前10%。“矿工”身份的添加可以是统计DAG区块链中各节点的交易积分之和,判断各节点的交易积分之和是否处于所有各节点中排名前10%,若处于前10%中,则为该各节点添加“矿工”身份,筛选出矿工节点。可以理解的是,名次范围还可以是排名前8%、前20%等,具体可根据实际情况而定,在此不做限定。按照前10%的排名筛选矿工节点,使得在N名各节点中,拥有“矿工”身份的各节点的数量K为K=N/10,且能够保证拥有矿工身份的各节点都是为系统做出贡献的,提高可靠性。
在其中一个实施例中,检测目标节点基于随机字符串和工作量证明机制进行持续哈希运算得到的哈希值小于或等于预设阈值时,判定目标节点通过验证包括:
检测各目标节点基于随机字符串和工作量证明机制进行持续哈希运算得到的哈希值是否小于或等于预设目标值;
若首次检测到待验证哈希值小于或等于预设目标值,则判定上传该待验证哈希值对应的目标节点通过验证;
其中,预设目标值基于目标节点完成单笔交易验证的平均时间和交易的首次被验证的预估时间确定。
具体实施时,tip交易的首次被验证的预估时间的确定方式可以是:假设交易由大量独立的个体发出,因此,节点接受交易的流程可以用泊松点过程进行模拟。我们定义λ作为整个泊松过程速率,即平均的单位时间交易到达率。为了简单起见,假设这个速率λ在时间上保持不变。同时,假设所有设备的计算能力大致相同,并定义h为节点完成交易传播所需的平均耗时。然后,继续假设所有节点的行为如下:在发起交易前,节点需要随机选择两个tip交易并认证。接下来,做一个进一步的简化假设,即任何节点发起的交易,只有经过了h个单位时间后,才会被别的节点看见。同时,假设tip 数量随着时间的推移也同样大致保持稳定,并且集中数字L周围。按照上述假设,推导L 与λ和h的数学关系:给定时间戳t,那么系统将有λh个 tip 交易是“不可见”的;同样,假定这里有r个“可见”tip(在t-h 前加入tangle的交易,并且在时刻t 仍然是tip 交易),因此,可以得到 L = r +λh。接着,在时刻t,有一笔新的交易到来,然后选择两笔交易进行认证,那么,选择到tip 交易的概率为r/(r+λh)(根据上述假设,r 才是正真可见的tip,尽管节点会认为λh 也是tip),所以,选择到tip 的数量为2r/(r+λh)。根据模拟的观察结果,在平稳状态下,所选tip的平均数量应该等于1,因为平均而言,新交易不应该改变tip的数量。因此,解方程2r / (r +λh) = 1,得到r=λh,进一步得到L =2λh,如此,可得交易首次被验证的预估时间为 h= L/2λ。
具体的,发布随机字符串S,如“hello world”,矿工节点在字符串后面拼接整数值nonce,对拼接后(添加nonce)的字符串进行SHA256哈希运算,得到结果SHA256(S|nonce),如果SHA256(S|nonce)小于或等于target(目标值),则验证通过,认为挖矿成功。其中,target = max_target/难度值;target表示目标值,max_target表示最大目标值,新难度值=旧难度值*(预设时间内1笔tip交易验证通过的平均时间/(L/2λ))。最大目标值为恒定值即0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF,实质上,SHA256(S|nonce)<target也就是得到的哈希结果SHA256(S|nonce)的前几位为0x000…。可以理解的是,预设时间内可以是一小时、两小时或其他时长等。本实施例中,基于矿工节点完成单笔tip交易验证的平均时间和tip交易的首次被验证的预估时间确定目标值,决定挖矿难度,能使得“矿工”验证通过的时间大致等于过去一段时间(如一个小时)内1笔tip验证通过的平均时间,即挖矿速率于约等于tip交易验证速率。
在其中一个实施例中,当检测到目标节点基于随机字符串和工作量证明机制进行持续哈希运算得到的哈希值小于或等于预设阈值时,判定目标节点通过验证之后,还包括:步骤210,当接收到该目标节点发送的交易验证完成消息时,分配奖励至该目标节点。
具体实施时,为维护区块链网络的环境,提高节点验证交易的积极性,在目标节点完成其选择的未验证交易的验证后,需要分配对应数额的挖矿奖励(也就是挖矿手续费)至该目标节点。具体的,不管矿工节点对tip交易的验证是否通过,都需要分配相应的挖矿手续费至矿工节点,以增加交易验证的成本,减少不合法的交易的发起。
在其中一个实施例中,如图4所示,分配奖励至该目标节点包括:
步骤212,获取基础奖励数据、该目标节点验证的交易的产生时间以及交易的首次被验证的预估时间;
步骤214,根据基础奖励数据、交易的产生时间以及交易的首次被验证的预估时间,确定奖励数据;
步骤216,根据奖励数据,分配奖励至该目标节点。
在IOTA网络中,节点coordinator每分钟会发一条交易,为了区别这个特殊交易和别的交易,coordinator发出的交易称为milestone。本实施例中,当K个“矿工”中某个矿工节点挖矿成功时,则生成一笔空的milestone交易,该milestone交易会验证2笔tip交易,为确保落后的交易能够及时被验证,需分配对应的奖励至目标节点。具体的,可获取基础奖励数据、该目标节点验证的交易的产生时间以及交易的首次被验证的预估时间,确定milestone交易手续费也就是挖矿手续费(挖矿奖励)如下:挖矿手续费=fee * (tip产生时间- L/2λ),其中,fee为基础手续费(基础奖励数据),可以由tip的金额确定,也可以是固定值。可根据上述公式,确定相应的挖矿手续费。在另一个实施例中,挖矿奖励由矿工节点验证的tip交易的交易发起者支付;为矿工节点分配挖矿奖励包括:发送挖矿奖励支付消息至矿工节点验证的tip交易的交易发起者,以使交易发起者支付挖矿奖励。具体的,矿工节点生成milestone交易验证tip交易后,会发送挖矿奖励支付消息至该笔tip交易的发起者,该笔tip交易的发起者接收消息,支付对应的挖矿手续费给生成milestone交易的矿工节点,作为其回报和奖励。如此,tip交易的产生时间越早(越落后的交易),其挖矿手续费“诱惑”越大,越有可能被矿工节点生成的milestone交易所验证,同时,该tip交易的验证的手续费越高,使得交易发起者的交易成本也就越高,能够一定程度上减少非法交易的发起和产生。
应该理解的是,虽然图2-4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-4中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在其中一个实施例中,如图5所示,提供了一种基于DAG区块链的数据验证装置,包括:参数获取模块510、目标节点选择模块520、交易选择通知模块530和节点验证模块540,其中:
参数获取模块510,用于获取DAG区块链中各节点的资源转移参数。
目标节点选择模块520,用于根据资源转移参数,选择目标节点。
交易选择通知模块530,用于发送交易选择消息至目标节点,目标节点选择两个未验证交易,发布随机字符串。
节点验证模块540,用于当检测到目标节点基于随机字符串和工作量证明机制进行持续哈希运算得到的哈希值小于或等于预设阈值时,判定目标节点通过验证。
在其中一个实施例中,目标节点选择模块520还用于统计DAG区块链中各节点的资源转移参数之和,当检测到当前节点的资源转移参数之和排列在预设名次范围内,则为该各节点添加目标身份,得到目标节点。
在其中一个实施例中,如图6所示,装置还包括哈希值验证模块550,用于检测各目标节点基于随机字符串和工作量证明机制进行持续哈希运算得到的哈希值是否小于或等于预设目标值,若首次检测到待验证哈希值小于或等于预设目标值,则判定上传该待验证哈希值对应的目标节点通过验证,其中,预设目标值基于目标节点完成单笔交易验证的平均时间和交易的首次被验证的预估时间确定。
在其中一个实施例中,如图6所示,装置还包括奖励分配模块560,用于当接收到该目标节点发送的交易验证完成消息时,分配奖励至该目标节点。
在其中一个实施例中,奖励分配模块560还用于获取基础奖励数据、该目标节点验证的交易的产生时间以及交易的首次被验证的预估时间,根据基础奖励数据、交易的产生时间以及交易的首次被验证的预估时间,确定奖励数据,根据奖励数据,分配奖励至该目标节点。
在其中一个实施例中,奖励分配模块560还用于根据奖励数据发送奖励支付消息至该目标节点所验证的交易对应的交易发起者,以使交易发起者支付奖励。
关于基于DAG区块链的数据验证装置的具体限定可以参见上文中对于基于DAG区块链的数据验证方法的限定,在此不再赘述。上述基于DAG区块链的数据验证装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储各区块链节点的交易数据以及交易积分等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于DAG区块链的数据验证方法。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在其中一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:获取DAG区块链中各节点的资源转移参数,根据资源转移参数,选择目标节点,发送交易选择消息至目标节点,目标节点选择两个未验证交易,发布随机字符串,当检测到目标节点基于随机字符串和工作量证明机制进行持续哈希运算得到的哈希值小于或等于预设阈值时,判定目标节点通过验证。
在其中一个实施例中,处理器执行计算机程序时还实现以下步骤:统计DAG区块链中各节点的资源转移参数之和,当检测到当前节点的资源转移参数之和排列在预设名次范围内,则为该各节点添加目标身份,得到目标节点。
在其中一个实施例中,处理器执行计算机程序时还实现以下步骤:检测各目标节点基于随机字符串和工作量证明机制进行持续哈希运算得到的哈希值是否小于或等于预设目标值,若首次检测到待验证哈希值小于或等于预设目标值,则判定上传该待验证哈希值对应的目标节点通过验证,其中,预设目标值基于目标节点完成单笔交易验证的平均时间和交易的首次被验证的预估时间确定。
在其中一个实施例中,处理器执行计算机程序时还实现以下步骤:
当接收到该目标节点发送的交易验证完成消息时,分配奖励至该目标节点。
在其中一个实施例中,处理器执行计算机程序时还实现以下步骤:获取基础奖励数据、该目标节点验证的交易的产生时间以及交易的首次被验证的预估时间,根据基础奖励数据、交易的产生时间以及交易的首次被验证的预估时间,确定奖励数据,根据奖励数据,分配奖励至该目标节点。
在其中一个实施例中,处理器执行计算机程序时还实现以下步骤:根据奖励数据发送奖励支付消息至该目标节点所验证的交易对应的交易发起者,以使交易发起者支付奖励。
在其中一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取DAG区块链中各节点的资源转移参数,根据资源转移参数,选择目标节点,发送交易选择消息至目标节点,目标节点选择两个未验证交易,发布随机字符串,当检测到目标节点基于随机字符串和工作量证明机制进行持续哈希运算得到的哈希值小于或等于预设阈值时,判定目标节点通过验证。
在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:统计DAG区块链中各节点的资源转移参数之和,当检测到当前节点的资源转移参数之和排列在预设名次范围内,则为该各节点添加目标身份,得到目标节点。
在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:检测各目标节点基于随机字符串和工作量证明机制进行持续哈希运算得到的哈希值是否小于或等于预设目标值,若首次检测到待验证哈希值小于或等于预设目标值,则判定上传该待验证哈希值对应的目标节点通过验证,其中,预设目标值基于目标节点完成单笔交易验证的平均时间和交易的首次被验证的预估时间确定。
在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:当接收到该目标节点发送的交易验证完成消息时,分配奖励至该目标节点。
在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取基础奖励数据、该目标节点验证的交易的产生时间以及交易的首次被验证的预估时间,根据基础奖励数据、交易的产生时间以及交易的首次被验证的预估时间,确定奖励数据,根据奖励数据,分配奖励至该目标节点。
在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据奖励数据发送奖励支付消息至该目标节点所验证的交易对应的交易发起者,以使交易发起者支付奖励。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种基于DAG区块链的数据验证方法,其特征在于,所述方法包括:
获取DAG区块链中各节点的资源转移参数;
根据所述资源转移参数,选择目标节点;
发送交易选择消息至所述目标节点,所述目标节点选择两个未验证交易,发布随机字符串;
当检测到所述目标节点基于所述随机字符串和工作量证明机制进行持续哈希运算得到的哈希值小于或等于预设阈值时,判定所述目标节点通过验证。
2.根据权利要求1所述的方法,其特征在于,所述根据所述资源转移参数,选择目标节点包括:
统计所述DAG区块链中各节点的资源转移参数之和;
当检测到当前节点的资源转移参数之和排列在预设名次范围内,则为该各节点添加目标身份,得到目标节点。
3.根据权利要求1所述的方法,其特征在于,检测所述目标节点基于所述随机字符串和工作量证明机制进行持续哈希运算得到的哈希值小于或等于预设阈值时,判定所述目标节点通过验证包括:
发布随机字符串;
检测各目标节点基于所述随机字符串和工作量证明机制进行持续哈希运算得到的哈希值是否小于或等于预设目标值;
若首次检测到待验证哈希值小于或等于预设目标值,则判定上传该待验证哈希值对应的目标节点通过验证;
其中,所述预设目标值基于目标节点完成单笔交易验证的平均时间和所述交易的首次被验证的预估时间确定。
4.根据权利要求1所述的方法,其特征在于,当检测到所述目标节点基于所述随机字符串和工作量证明机制进行持续哈希运算得到的哈希值小于或等于预设阈值时,判定所述目标节点通过验证之后,还包括:
当接收到该目标节点发送的交易验证完成消息时,分配奖励至该目标节点。
5.根据权利要求4所述的方法,其特征在于,所述分配奖励至该目标节点包括:
获取基础奖励数据、该目标节点验证的交易的产生时间以及所述交易的首次被验证的预估时间;
根据所述基础奖励数据、所述交易的产生时间以及所述交易的首次被验证的预估时间,确定奖励数据;
根据所述奖励数据,分配奖励至该目标节点。
6.根据权利要求5所述的方法,其特征在于,所述根据所述奖励数据,分配奖励至该目标节点包括:
根据所述奖励数据发送奖励支付消息至该目标节点所验证的交易对应的交易发起者,以使所述交易发起者支付奖励。
7.根据权利要求1至5任意一项所述的方法,其特征在于,目标节点选择两个未验证的交易包括:
查询所述DAG区块链中未验证交易的交易时间;
根据所述交易时间,选择两个未验证交易。
8.一种基于DAG区块链的数据验证装置,其特征在于,所述装置包括:
参数获取模块,用于获取DAG区块链中各节点的资源转移参数;
目标节点选择模块,用于根据所述资源转移参数,选择目标节点;
交易选择通知模块,用于发送交易选择消息至所述目标节点,所述目标节点选择两个未验证交易,发布随机字符串;
验证模块,用于当检测到所述目标节点基于所述随机字符串和工作量证明机制进行持续哈希运算得到的哈希值小于或等于预设阈值时,判定所述目标节点通过验证。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010526973.4A CN111429122A (zh) | 2020-06-11 | 2020-06-11 | 基于dag区块链的数据验证方法、装置和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010526973.4A CN111429122A (zh) | 2020-06-11 | 2020-06-11 | 基于dag区块链的数据验证方法、装置和计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111429122A true CN111429122A (zh) | 2020-07-17 |
Family
ID=71551445
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010526973.4A Pending CN111429122A (zh) | 2020-06-11 | 2020-06-11 | 基于dag区块链的数据验证方法、装置和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111429122A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112615846A (zh) * | 2020-12-14 | 2021-04-06 | 重庆邮电大学 | 一种基于dag的区块链系统认证门限的更新方法 |
CN113055496A (zh) * | 2021-04-01 | 2021-06-29 | 浙江永旗区块链科技有限公司 | 一种基于dag的区块链的交易系统及其方法 |
CN113297569A (zh) * | 2021-05-06 | 2021-08-24 | 湖南兆物信链科技集团有限公司 | 基于哈希图的攻击处理方法、设备及存储介质 |
CN113746908A (zh) * | 2021-08-19 | 2021-12-03 | 卓尔智联(武汉)研究院有限公司 | 数据处理方法及系统、电子设备及计算机存储介质 |
CN114003552A (zh) * | 2021-12-30 | 2022-02-01 | 中科声龙科技发展(北京)有限公司 | 工作量证明运算方法、工作量证明芯片及上位机 |
CN117592990A (zh) * | 2024-01-04 | 2024-02-23 | 恒生电子股份有限公司 | 区块链交易认证方法以及装置、计算设备以及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109697606A (zh) * | 2018-09-30 | 2019-04-30 | 贝克链区块链技术有限公司 | 基于创新性的信誉证明共识协议的分布式网络及生态系统 |
CN110276613A (zh) * | 2019-06-20 | 2019-09-24 | 卓尔智联(武汉)研究院有限公司 | 基于区块链的数据处理装置、方法及计算机可读存储介质 |
US20200044854A1 (en) * | 2018-08-03 | 2020-02-06 | National Taiwan University | Estimable proof-of-work for blockchain |
CN111080289A (zh) * | 2019-10-25 | 2020-04-28 | 武汉瑞盈通网络技术有限公司 | 一种基于PoW和PoS改进的区块链共识机制 |
CN111090694A (zh) * | 2018-10-24 | 2020-05-01 | 成都高新信息技术研究院 | 一种基于移动用户权重的区块链系统 |
-
2020
- 2020-06-11 CN CN202010526973.4A patent/CN111429122A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200044854A1 (en) * | 2018-08-03 | 2020-02-06 | National Taiwan University | Estimable proof-of-work for blockchain |
CN109697606A (zh) * | 2018-09-30 | 2019-04-30 | 贝克链区块链技术有限公司 | 基于创新性的信誉证明共识协议的分布式网络及生态系统 |
CN111090694A (zh) * | 2018-10-24 | 2020-05-01 | 成都高新信息技术研究院 | 一种基于移动用户权重的区块链系统 |
CN110276613A (zh) * | 2019-06-20 | 2019-09-24 | 卓尔智联(武汉)研究院有限公司 | 基于区块链的数据处理装置、方法及计算机可读存储介质 |
CN111080289A (zh) * | 2019-10-25 | 2020-04-28 | 武汉瑞盈通网络技术有限公司 | 一种基于PoW和PoS改进的区块链共识机制 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112615846A (zh) * | 2020-12-14 | 2021-04-06 | 重庆邮电大学 | 一种基于dag的区块链系统认证门限的更新方法 |
CN112615846B (zh) * | 2020-12-14 | 2022-03-22 | 重庆邮电大学 | 一种基于dag的区块链系统认证门限的更新方法 |
CN113055496A (zh) * | 2021-04-01 | 2021-06-29 | 浙江永旗区块链科技有限公司 | 一种基于dag的区块链的交易系统及其方法 |
CN113297569A (zh) * | 2021-05-06 | 2021-08-24 | 湖南兆物信链科技集团有限公司 | 基于哈希图的攻击处理方法、设备及存储介质 |
CN113746908A (zh) * | 2021-08-19 | 2021-12-03 | 卓尔智联(武汉)研究院有限公司 | 数据处理方法及系统、电子设备及计算机存储介质 |
CN114003552A (zh) * | 2021-12-30 | 2022-02-01 | 中科声龙科技发展(北京)有限公司 | 工作量证明运算方法、工作量证明芯片及上位机 |
CN117592990A (zh) * | 2024-01-04 | 2024-02-23 | 恒生电子股份有限公司 | 区块链交易认证方法以及装置、计算设备以及存储介质 |
CN117592990B (zh) * | 2024-01-04 | 2024-04-26 | 恒生电子股份有限公司 | 区块链交易认证方法以及装置、计算设备以及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111429122A (zh) | 基于dag区块链的数据验证方法、装置和计算机设备 | |
JP6689946B2 (ja) | ネットワークを介して互いに通信する複数のノードのいずれか1つで資源を運営する方法、および、ネットワークを介して互いに通信する複数のノードのいずれか1つとして動作するコンピュータ装置 | |
EP3896633B1 (en) | Task processing method, system and device, and storage medium | |
CN109075964B (zh) | 支持用于区块验证的多个单向函数的区块链 | |
CN108984645B (zh) | 区块链处理方法、装置、设备及存储介质 | |
KR20200099149A (ko) | 낮은 엔트로피 패스워드로 블록체인 트랜잭션을 승인하기 위한 컴퓨터 구현 시스템 및 방법 | |
CN108985732A (zh) | 基于无区块的dag技术的共识和账本数据组织方法及系统 | |
US20210176058A1 (en) | Consensus method used for miner node in blockchain system and blockchain system | |
EP3669493B1 (en) | Computer-implemented systems and methods relating to a binary blockchain comprising a pair of coupled blockchains | |
CN111144866B (zh) | 数据转移方法、装置、节点设备及存储介质 | |
CN110363512B (zh) | 区块链红包的处理、创建、领取方法和装置、介质及计算机程序 | |
CN110597916B (zh) | 基于区块链的数据处理方法、装置、存储介质及终端 | |
CN110084596B (zh) | 一种处理区块链混合共识的方法和装置 | |
KR102407187B1 (ko) | 블록체인 기반 전자 화폐 자동 충전 방법 및 그 시스템 | |
EP3889867A1 (en) | Block chain-based asset processing method, device, apparatus and storage medium | |
CN111541756B (zh) | 区块生成方法、装置、节点设备及存储介质 | |
CN111383021A (zh) | 基于区块链网络的节点管理方法、装置、设备及介质 | |
CN111275448A (zh) | 人脸数据处理方法、装置和计算机设备 | |
CN110060161A (zh) | 用于区块链交易防重的客户端服务实现方法及服务组件 | |
CN110557403A (zh) | 基于区块链的资源分配方法、装置、存储介质及节点设备 | |
CN109035011A (zh) | 一种区块链dag宽度的控制方法与系统 | |
CN111597567B (zh) | 数据处理方法、装置、节点设备及存储介质 | |
CN112347184A (zh) | 分叉处理方法以及区块链节点 | |
JP2017207860A (ja) | 仮想通貨管理方法及び仮想通貨管理プログラム | |
WO2019153660A1 (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200717 |
|
RJ01 | Rejection of invention patent application after publication |