CN109508987A - 一种区块链的构建方法、系统及相关组件 - Google Patents
一种区块链的构建方法、系统及相关组件 Download PDFInfo
- Publication number
- CN109508987A CN109508987A CN201811487689.XA CN201811487689A CN109508987A CN 109508987 A CN109508987 A CN 109508987A CN 201811487689 A CN201811487689 A CN 201811487689A CN 109508987 A CN109508987 A CN 109508987A
- Authority
- CN
- China
- Prior art keywords
- block
- miner
- node
- new
- trade
- 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
- 238000010276 construction Methods 0.000 title claims abstract description 21
- 238000000034 method Methods 0.000 claims abstract description 30
- 230000009977 dual effect Effects 0.000 claims abstract description 25
- 230000008569 process Effects 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 9
- 238000004364 calculation method Methods 0.000 claims description 4
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 238000012545 processing Methods 0.000 description 8
- 230000006399 behavior Effects 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000005242 forging Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 238000012795 verification Methods 0.000 description 4
- 238000012790 confirmation Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- RTZKZFJDLAIYFH-UHFFFAOYSA-N Diethyl ether Chemical compound CCOCC RTZKZFJDLAIYFH-UHFFFAOYSA-N 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 241000205585 Aquilegia canadensis Species 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000002459 sustained effect Effects 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/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3825—Use of electronic signatures
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Computer Security & Cryptography (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请公开了一种区块链的构建方法,应用于矿工节点,包括从本地交易池中选取大额交易,并构建包含大额交易的新区块;当完成新区块的工作量证明时,将新区块单播至超级节点,以便超级节点判断新区块中的大额交易符合第一预设条件和第二预设条件时向矿工节点返回签名信息;判断收到的签名信息的数量是否大于预设签名数;若是,则向其他矿工节点发送签名后的新区块的主广播,以便其他矿工节点将签名后的新区块加入至其他矿工节点的本地区块链主链。本方法能够抵御双重支付攻击,提供区块链网络的安全性。本申请还公开了一种区块链的构建系统、一种计算机可读存储介质及一种电子设备,具有以上有益效果。
Description
技术领域
本申请涉及区块链技术领域,特别涉及一种区块链的构建方法、系统、一种计算机可读存储介质及一种电子设备。
背景技术
区块链技术是密码学、计算机科学、经济学等多个学科发展到一定阶段后的产物,有效融合了多个学科的杰出成果。区块链技术的出现为解决人类社会的信任问题提供了有力工具,进而将人类社会带入群智时代。
区块链中价值最高的比特币、以太币和莱特币等等,都是使用工作量证明(POW)算法来达成区块链网络的共识。自09年开始,POW算法经历了多年的实践检验,是一种可行的共识算法。但是,POW算法难以抵御51%算力攻击。近期以来,一些规模不太大的区块链多次遭受二次支付攻击,给区块链带来了严重的负面影响。
因此,如何抵御双重支付攻击,提供区块链网络的安全性是本领域技术人员目前需要解决的技术问题。
发明内容
本申请的目的是提供一种区块链的构建方法、系统、一种计算机可读存储介质及一种电子设备,能够抵御双重支付攻击,提供区块链网络的安全性。
为解决上述技术问题,本申请提供一种区块链的构建方法,应用于矿工节点,该构建方法包括:
从本地交易池中选取大额交易,并构建包含所述大额交易的新区块;其中,所述大额交易为交易数额大于预设值的交易;
当完成所述新区块的工作量证明时,将所述新区块单播至超级节点,以便所述超级节点判断所述新区块中的所述大额交易符合第一预设条件和第二预设条件时向所述矿工节点返回签名信息;
判断收到的所述签名信息的数量是否大于预设签名数;若是,则向其他矿工节点发送签名后的新区块的主广播,以便所述其他矿工节点将所述签名后的新区块加入至所述其他矿工节点的本地区块链主链;
其中,所述第一预设条件为所述大额交易满足大额交易标准,所述第二预设条件为所述大额交易输入部分的每一个UTXO不在所述超级节点的签名记录中或每一个所述UTXO的签名时间早于当前时间预设时长。
可选的,在将所述新区块单播至超级节点之前,还包括:
从所述区块链网络中选取持有区块币币值大于预设币值且提供签名服务的节点作为所述超级节点。
可选的,当所述矿工节点完成所述新区块的工作量证明时,还包括:
向区块链网络中的所述其他矿工节点预广播所述新区块。
可选的,在所述矿工节点完成所述新区块的工作量证明之前,还包括:
判断是否接收到所述其他矿工节点发送其他新区块的主广播;
若是,则停止所述新区块的工作量证明流程,并将所述其他新区块加入至本地区块链主链。
可选的,所述预设值为当前全网算力下执行一次双重支付攻击的费用。
可选的,在构建包含所述大额交易的新区块时,还包括:
取消所述新区块的优先级交易区域。
可选的,还包括:
当所述本地区块链主链存在多条高度相同的分支时,保留包含大额交易数量最多的分支并消除其他分支。
本申请还提供了一种区块链的构建系统,应用于矿工节点,该构建系统包括:
新区块构建模块,用于从本地交易池中选取大额交易,并构建包含所述大额交易的新区块;其中,所述大额交易为交易数额大于预设值的交易;
单播模块,用于当完成所述新区块的工作量证明时,将所述新区块单播至超级节点,以便所述超级节点判断所述新区块中的所述大额交易符合第一预设条件和第二预设条件时向所述矿工节点返回签名信息;
区块链构建模块,用于判断收到的所述签名信息的数量是否大于预设签名数;若是,则向其他矿工节点发送签名后的新区块的主广播,以便所述其他矿工节点将所述签名后的新区块加入至所述其他矿工节点的本地区块链主链;
其中,所述第一预设条件为所述大额交易满足大额交易标准,所述第二预设条件为所述大额交易输入部分的每一个UTXO不在所述超级节点的签名记录中或每一个所述UTXO的签名时间早于当前时间预设时长。
本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序执行时实现上述区块链的构建方法执行的步骤。
本申请还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现上述区块链的构建方法执行的步骤。
本申请提供了一种区块链的构建方法,包括从本地交易池中选取大额交易,并构建包含所述大额交易的新区块;其中,所述大额交易为交易数额大于预设值的交易;当完成所述新区块的工作量证明时,将所述新区块单播至超级节点,以便所述超级节点判断所述新区块中的所述大额交易符合第一预设条件和第二预设条件时向所述矿工节点返回签名信息;判断收到的所述签名信息的数量是否大于预设签名数;若是,则向其他矿工节点发送签名后的新区块的主广播,以便所述其他矿工节点将所述签名后的新区块加入至所述其他矿工节点的本地区块链主链。
本申请针对大额交易的构建新区块的过程,从区块链网络中选取可以提供签名服务的超级节点。当矿工节点完成新区块的工作量证明时,将新区块单播至超级节点,由超级节点对新区块进行验证操作,只有新区块中的大额交易满足大额交易标准,且大额交易输入部分的每一个UTXO不在所述超级节点的签名记录中或每一个所述UTXO的签名时间早于当前时间预设时长,超级节点才对新区块对应的矿工节点签名。当矿工节点接收到的签名数量大于预设值时,向其他矿工节点广播新区块已完成区块链的构建操作。由于本申请存在超级节点的验证、签名操作,因此大额交易的同一UTXO只能间隔预设时长后才能重复签名,使得伪造链落后于主链多个高度,大大降低了双重支付攻击的成功率。本申请可以有效抵御双重支付攻击,提供区块链网络的安全性。本申请同时还提供了一种区块链的构建系统、一种计算机可读存储介质和一种电子设备,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例所提供的一种区块链的构建方法的流程图;
图2为本申请实施例所提供的一种区块链的构建系统的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面请参见图1,图1为本申请实施例所提供的一种区块链的构建方法的流程图。
具体步骤可以包括:
S101:从本地交易池中选取大额交易,并构建包含所述大额交易的新区块;
其中,本实施例的执行主体可以为矿供节点,本地交易池中可以包括多个交易,当矿供节点从本地交易池中选取大额交易之后,矿供节点按构建包含该大额交易的新区块。本实施例中所提到的大额交易是指交易数额大于预设值的交易,进一步的,由于本实施例的目的是防止双重支付攻击(又称二次支付攻击或双花攻击),因此通常来讲大额交易的交易数额应大于当前全网算力下执行一次双重支付攻击所需要消耗的费用。此处不对大额交易的具体交易数额进行限定,本领域的技术人员可以灵活限定。
需要说明的是,本实施例是以区块链网络中某一个特定的矿工节点作为执行主体描述的,在本矿工节点选取大额交易并构建包含大额交易的新区块的同时,也可以存在其他矿工节点选取相同的大额交易构建其他新区块。一般的,可以将包含大额交易的新区块称为大额区块。在构建新区块后,矿工节点还需要完成工作量证明,如:使用双重HASH256算法计算新区块的区块头的HASH值,直到发现一个足够小的HASH值满足当前难度要求。进行新区块的工作量证明为目前已经非常成熟的技术,此处不进行过多的赘述。
S102:当完成所述新区块的工作量证明时,将所述新区块单播至超级节点,以便所述超级节点判断所述新区块中的所述大额交易符合第一预设条件和第二预设条件时向所述矿工节点返回签名信息;
其中,当矿供节点完成新区块的工作量证明时,需要向区块链网络中的超级节点单播该新区块,以便完成签名操作。本实施例默认在S102之前存在设置超级节点的操作,超级节点可以从持有区块币币值较大(如大于预设币值)且承诺提供签名服务的节点中选择,一般的超级节点的数量可以为多个,此处不限定超级节点的数量,因此本步骤实际上是向多个超级节点单播新区块。本步骤中矿工节点通过单播的形式将新区块发送至超级节点,由于单播使用TCP/IP协议,而不使用P2P网络,因此速度会快于区块链网络。
在将新区块单播至超级节点之后,本步骤默认存在超级节点对新区块进行验证操作,即判断新区块中的所述大额交易是否同时符合第一预设条件和第二预设条件。具体的,第一预设条件为所述大额交易满足大额交易标准,即只有大额交易的交易数额大于预设值时才判定符合第一预设条件。第二预设条件为所述大额交易输入部分的每一个UTXO不在所述超级节点的签名记录中或每一个所述UTXO的签名时间早于当前时间预设时长,大额交易中可以包括多个UTXO(Unspent Transaction Output,未花费的交易输出)。判断是否符合第二预设条件的操作包括以下流程:
步骤1:判断所述大额交易输入部分的每一个UTXO是否在所述超级节点的签名记录中;若是,则进入步骤2;若否,则进入步骤3;
步骤2:判断签名记录中每一个所述UTXO的签名时间是否早于当前时间预设时长;若是,则判定符合第二预设条件;若否,则判定不符合第二预设条件;
步骤3:判定符合第二预设条件。
本实施例默认超级节点中都有记录本超级节点对某一UTXO对应的区块进行签名的签名记录,通过查找该签名记录可以了解是否对某一UTXO所在新区块的大额交易签过名。若未签过名,则说明该新区块不存在双重支付攻击的嫌疑,可以判定符合第二预设条件;若签过名,需要保持本次签名与上一次签名距离预设时长(如60分钟)以上,以便伪造的区块链落后真正的区块链多个高度,即使对伪造区块进行签名也使得伪造链的高度难以追上真正的主链,大大降低了双重支付攻击的成功率。可以理解的是,如果上述超级节点验证的过程中判断不符合第一预设条件和/或第二预设条件,超级节点可以向请求节点发送验证失败消息。
可以理解的是,本实施例默认将签名请求信息单播至超级节点,签名请求信息中包括新区块的相关信息。当超级节点判断新区块中的大额交易同时符合第一预设条件和第二预设条件时,则对新区块执行签名操作,此处默认超级节点将签名信息发送至矿工节点。
S103:判断收到的所述签名信息的数量是否大于预设签名数;若是,则进入S104;若否,则结束流程。
其中,由于单一超级节点的签名信息可能会存在误判状况,因此在本步骤中需要判断矿工节点收到的签名信息是否大于预设签名数,若大于,则进入S104中的主广播操作;若不大于,则可以结束流程,说明该新区块可能是双重支付攻击构造的新区块。本步骤中不限定预设签名数的值,本领域的技术人员可以灵活设定,优选的预设签名数可以为超级节点数量的二分之一。
S104:向其他矿工节点发送签名后的新区块的主广播,以便所述其他矿工节点将所述签名后的新区块加入至所述其他矿工节点的本地区块链主链;
其中,本步骤建立在矿工节点接收到的超级节点签名数大于预设签名数的基础上,说明该新区块可以被信任。向区块链网络中的其他矿工节点广播签名后的新区块,以便其他矿工节点将签名后的新区块添加至其他矿工节点的本地区块链主链。
本实施例针对大额交易的构建新区块的过程,从区块链网络中选取可以提供签名服务的超级节点。当矿工节点完成新区块的工作量证明时,将新区块单播至超级节点,由超级节点对新区块进行验证操作,只有新区块中的大额交易满足大额交易标准,且大额交易输入部分的每一个UTXO不在所述超级节点的签名记录中或每一个所述UTXO的签名时间早于当前时间预设时长,超级节点才对新区块对应的矿工节点签名。当矿工节点接收到的签名数量大于预设值时,向其他矿工节点广播新区块已完成区块链的构建操作。由于本申请存在超级节点的验证、签名操作,因此大额交易的同一UTXO只能间隔预设时长后才能重复签名,使得伪造链落后于主链多个高度,大大降低了双重支付攻击的成功率。本实施例可以有效抵御双重支付攻击,提供区块链网络的安全性。
作为对于图1对应的实施例的进一步优化,图1对应的实施例还可以包括以下操作:在所述矿工节点完成所述新区块的工作量证明之前,向区块链网络中的所述其他矿工节点预广播所述新区块。
其中,当矿工节点在构建好包括大额交易的新区块并且完成工作量证明后,该矿工节点可以将该新区块在区块链网络中预广播至其他矿工节点。其他矿工节点在接收到新区块的预广播时,可以采取以下两种处理方式:(1)选择立即将该区块加入本地的区块链主链并基于此进行下一个区块的计算;(2)暂时保留该新区块,待收到主广播后,再将该新区块加入本地的区块链主链。上述第一种处理方式在其他矿工节点接收到新区块的预广播时,即使其他矿工节点正在完成相同大额交易的其他新区块工作证明,也可以停止计算操作而将新区块作添加至其他矿工节点的本地区块链主链,以便其他矿工节点进行下一个区块的计算,可以提高区块计算的效率。上述第二处理方式,矿工节点只有在收到超过预设数量的超级节点签名后的主广播时,才将新区块加入本地的区块链主链,这种处理方式具有更高的可靠性。
作为对于图1对应的实施例的进一步优化,图1对应的实施例还可以包括以下操作:在所述矿工节点完成所述新区块的工作量证明之前,判断是否接收到所述其他矿工节点发送其他新区块的主广播;若是,则停止所述新区块的工作量证明流程,并将所述其他新区块加入至本地区块链主链。
其中,上述操作是针对图1对应实施例的执行主体矿工节点而言的,在矿工节点完成新区块的工作量证明之前若接收到了其他矿工节点主广播的其他新区块,说明其他矿工节点关于包含该大额交易的区块的计算比本矿工节点快且通过大于预设数量个超级节点的签名,因此此时可以停止所述新区块的工作量证明流程,并将所述其他新区块加入至本地区块链主链。
作为对于图1对应的实施例的进一步优化,图1对应的实施例还可以包括以下操作:在构建包含所述大额交易的新区块时,取消所述新区块的优先级交易区域。
上述操作实际上是在构建包含大额交易的新区块是采取了优先级奖励机制。同比特币一致,本实施例的区块链中的交易有优先级属性。交易的优先级等于输入值和输入的“币龄”乘积之和除以交易的总长度,即:优先级=sum(输入币值*输入UTXO币龄)/交易字节数。其中,UTXO币龄是记录该UTXO的区块的后继区块数量,即该UTXO被确认的次数。同比特币协议一样,本发明中每个区块的前50KB为优先级交易区,该区域中的交易没有矿工费的要求。即如果一个交易优先级足够高,可以不提供矿工费。
为了促进大额交易的尽快确认,上述操作设置了优先级奖励机制。即:如果一个新区块中保含了一个大额交易,则该区块中可以没有优先级交易区。这样,原本无偿提供的50KB字节就可以用来容纳高矿工费的交易,从而获取更多收益。
作为对于图1对应的实施例的进一步优化,图1对应的实施例还可以包括以下操作:当所述本地区块链主链存在多条高度相同的分支时,保留包含大额交易数量最多的分支并消除其他分支。
上述操作实际上是在区块链构建过程中设置同高度优先的原则,当区块链主链出现两条高度相同的分支时,节点优先选择包含较多大额区块的分支。大额区块拥有超级节点的签名,拥有高的安全性。将大额区块作为区块链分支消除时的判断依据。
可以理解的是,将上述四点对于图1对应实施例进行的优化与图1对应的实施例进行结合可以得到更为优选的实施方式,此处不对具体过程进行赘述。将上述实施方式进行结合之后,若超级节点对于同一个输入UTXO的签名时间间隔是预设时长为60分钟。攻击者发起二次支付攻击,必须使用大额交易,否则就无法弥补成本。而大额交易签名只能在多个确认时间后获得,由于区块链每隔10分钟产生一个新区块,因此使得伪造链落后主链6个高度以上,双重支付攻击的成功率大大减少。
下面通过三个实际应用中的实施例说明上述实施例描述的流程,以下几个实施例可以对大额交易进行签名保护,大幅增强了区块链POW算法抗击二次支付攻击的能力。
实例一:矿工节点消息处理过程
步骤A、矿工节点构造包含大额交易的新区块,因为大额交易的优惠机制(上述提到的优先级奖励机制),矿工会在本地交易池中优先选择大额交易,如果找到,则将其作为新区块中的第二个交易(第一个交易是coinbase交易)。包含大额交易的新区块为大额区块。节点还需要完成工作量证明,即使用双重HASH256算法计算新区块得区块头的HASH值,直到发现一个足够小的HASH值满足当前难度要求。
步骤B、矿工节点将新区块预广播及单播。预广播是指在区块链网络中广播该没有签名的新区块,其他矿工节点根据自己的策略来决定如何处理收到的预广播消息。另外,为加速签名过程,每个矿工节点可以保存有一个超级节点列表。节点会同时将新区块单播给超级节点。因为单播使用TCP/IP协议,而不使用P2P网络,因此速度会快于区块链网络。
矿工节点等待来自超级节点的签名消息。如果收到签名消息的数量大于超级节点数量的二分之一,则矿工节点可以立即进行主广播。
步骤C、主广播:节点构造主广播消息,并在区块链网络中广播。主广播消息中包含了新区块和全部已经收到的超级节点的签名。该矿工节点等待超级节点的签名确认,若收到6个以上的签名确认,则该节点将新区块,签名列表与超级节点公钥列表封装到主广播消息中,并在区块链网络中广播。
步骤D、节点将一直等待来自超级节点的签名,除非收到了更高高度的新区块广播消息。如果等待时间收到了相同高度的普通新区块广播,则仅仅需要保存下来,因为在同一高度,大额区块具有优先权。
步骤E、更高高度的新区块意味着本地区块链主链已经落后于区块链网络了,必须要放弃等待,及时切换到新的区块链主链上,并基于新的主链开始下一个新区块的计算。
实例二:超级节点的签名过程
步骤A、超级节点会收到区块链网络中的广播消息。超级节点收到预广播消息或者单播给自己的签名请求消息后,首先对消息中的新区块进行验证。除了区块链网络中的一般性验证之外,增加了对大额交易的验证。超级节点保存了自己签名过的大额交易所有输入UTXO及对应的签名时间。增加的大额验证内容有:
1)区块中第二个交易满足大额交易标准。
2)第二个交易中输入部分的每一个UTXO,没有出现在自己的签名记录中;或者在签名记录中但是签名时间距离当前60分钟以上。
如果大额验证失败,超级节点将向请求节点发送验证失败消息。
步骤B、验证通过后,超级节点会对新区块的区块头进行签名,签名使用自己的私钥。超级节点后将区块头,签名及自己的公钥一起返回给签名请求节点。
其中,此处可以在区块链网络中设置13个超级节点。超级节点从持有区块币币值较大且承诺提供签名服务的节点中选择。因为签名机制是防止二次支付攻击的手段,因此,区块币的主要持有者为自身利益会积极担当签名任务。
实例三:区块链网络节点的消息处理过程
预广播消息处理:其他矿工节点在收到预广播消息后,首先进行超级节点中的验证操作。如果验证通过且该新区块与自己的当前区块在同一高度,则其他矿工节点有以下选择:
1)立即接受该区块,将其加入本地的区块链主链,并开始下一个区块的计算。因为,大额区块获得半数以上签名是大概率事件。
2)保存该新区块,但是继续进行自己的工作量证明。
主广播消息处理:节点首先对消息中的每个签名进行验证:
1)超级签名公钥与自己获取的该超级节点的公钥一致。如果不一致,则需要通过其他手段进行验证。
2)用公钥对新区块的区块头进行签名运算,得到与消息中相同的签名。
如果新区块与自己正在计算的区块高度相同,则立即切换到新区块;如果新区块来自一条不同的分支的比自己正在计算区块低一个高度,但该新区块所在的链上包括大额交易的区块数量大于本矿工节点所在的链包括大额交易的区块数量的话,则可以立即切换到新区块。上述切换的原因为:包括大额交易区块数量较多的链可信度更高。
普通广播消息处理:如果收到了相同高度的预广播消息,则可以存在以下两种选择:
1)立即切换到新区块。
2)等待主广播消息,若收到主广播消息或者更高高度的普通广播消息,则立即进行本地区块链主链的切换。
请参见图2,图2为本申请实施例所提供的一种区块链的构建系统的结构示意图;
该系统应用于矿工节点,具体结构可以包括:
新区块构建模块100,用于从本地交易池中选取大额交易,并构建包含所述大额交易的新区块;其中,所述大额交易为交易数额大于预设值的交易;
单播模块200,用于当完成所述新区块的工作量证明时,将所述新区块单播至超级节点,以便所述超级节点判断所述新区块中的所述大额交易符合第一预设条件和第二预设条件时向所述矿工节点返回签名信息;
区块链构建模块300,用于判断收到的所述签名信息的数量是否大于预设签名数;若是,则向其他矿工节点发送签名后的新区块的主广播,以便所述其他矿工节点将所述签名后的新区块加入至所述其他矿工节点的本地区块链主链;
其中,所述第一预设条件为所述大额交易满足大额交易标准,所述第二预设条件为所述大额交易输入部分的每一个UTXO不在所述超级节点的签名记录中或每一个所述UTXO的签名时间早于当前时间预设时长。
本实施例针对大额交易的构建新区块的过程,从区块链网络中选取可以提供签名服务的超级节点。当矿工节点完成新区块的工作量证明时,将新区块单播至超级节点,由超级节点对新区块进行验证操作,只有新区块中的大额交易满足大额交易标准,且大额交易输入部分的每一个UTXO不在所述超级节点的签名记录中或每一个所述UTXO的签名时间早于当前时间预设时长,超级节点才对新区块对应的矿工节点签名。当矿工节点接收到的签名数量大于预设值时,向其他矿工节点广播新区块已完成区块链的构建操作。由于本申请存在超级节点的验证、签名操作,因此大额交易的同一UTXO只能间隔预设时长后才能重复签名,使得伪造链落后于主链多个高度,大大降低了双重支付攻击的成功率。本实施例可以有效抵御双重支付攻击,提供区块链网络的安全性。
进一步的,还包括:
超级节点选取模块,用于从所述区块链网络中选取持有区块币币值大于预设币值且提供签名服务的节点作为所述超级节点。
进一步的,还包括:
预广播模块,用于向区块链网络中的所述其他矿工节点预广播所述新区块。
进一步的,还包括:
判断模块,用于判断是否接收到所述其他矿工节点发送其他新区块的主广播;若是,则停止所述新区块的工作量证明流程,并将所述其他新区块加入至本地区块链主链。
进一步的,所述预设值为当前全网算力下执行一次双重支付攻击的费用。
进一步的,还包括:
优先区域取消模块,用于取消所述新区块的优先级交易区域。
进一步的,还包括:
分支确定模块,用于当所述本地区块链主链存在多条高度相同的分支时,保留包含大额交易数量最多的分支并消除其他分支。
由于系统部分的实施例与方法部分的实施例相互对应,因此系统部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
本申请还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请还提供了一种电子设备,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然所述电子设备还可以包括各种网络接口,电源等组件。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种区块链的构建方法,其特征在于,应用于矿工节点,包括:
从本地交易池中选取大额交易,并构建包含所述大额交易的新区块;其中,所述大额交易为交易数额大于预设值的交易;
当完成所述新区块的工作量证明时,将所述新区块单播至超级节点,以便所述超级节点判断所述新区块中的所述大额交易符合第一预设条件和第二预设条件时向所述矿工节点返回签名信息;
判断收到的所述签名信息的数量是否大于预设签名数;若是,则向其他矿工节点发送签名后的新区块的主广播,以便所述其他矿工节点将所述签名后的新区块加入至所述其他矿工节点的本地区块链主链;
其中,所述第一预设条件为所述大额交易满足大额交易标准,所述第二预设条件为所述大额交易输入部分的每一个UTXO不在所述超级节点的签名记录中或每一个所述UTXO的签名时间早于当前时间预设时长。
2.根据权利要求1所述构建方法,其特征在于,在将所述新区块单播至超级节点之前,还包括:
从所述区块链网络中选取持有区块币币值大于预设币值且提供签名服务的节点作为所述超级节点。
3.根据权利要求1所述构建方法,其特征在于,当所述矿工节点完成所述新区块的工作量证明时,还包括:
向区块链网络中的所述其他矿工节点预广播所述新区块。
4.根据权利要求1所述构建方法,其特征在于,在所述矿工节点完成所述新区块的工作量证明之前,还包括:
判断是否接收到所述其他矿工节点发送其他新区块的主广播;
若是,则停止所述新区块的工作量证明流程,并将所述其他新区块加入至本地区块链主链。
5.根据权利要求1所述构建方法,其特征在于,所述预设值为当前全网算力下执行一次双重支付攻击的费用。
6.根据权利要求1所述构建方法,其特征在于,在构建包含所述大额交易的新区块时,还包括:
取消所述新区块的优先级交易区域。
7.根据权利要求1所述构建方法,其特征在于,还包括:
当所述本地区块链主链存在多条高度相同的分支时,保留包含大额交易数量最多的分支并消除其他分支。
8.一种区块链的构建系统,其特征在于,应用于矿工节点,包括:
新区块构建模块,用于从本地交易池中选取大额交易,并构建包含所述大额交易的新区块;其中,所述大额交易为交易数额大于预设值的交易;
单播模块,用于当完成所述新区块的工作量证明时,将所述新区块单播至超级节点,以便所述超级节点判断所述新区块中的所述大额交易符合第一预设条件和第二预设条件时向所述矿工节点返回签名信息;
区块链构建模块,用于判断收到的所述签名信息的数量是否大于预设签名数;若是,则向其他矿工节点发送签名后的新区块的主广播,以便所述其他矿工节点将所述签名后的新区块加入至所述其他矿工节点的本地区块链主链;
其中,所述第一预设条件为所述大额交易满足大额交易标准,所述第二预设条件为所述大额交易输入部分的每一个UTXO不在所述超级节点的签名记录中或每一个所述UTXO的签名时间早于当前时间预设时长。
9.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述区块链的构建方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述区块链的构建方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811487689.XA CN109508987B (zh) | 2018-12-06 | 2018-12-06 | 一种区块链的构建方法、系统及相关组件 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811487689.XA CN109508987B (zh) | 2018-12-06 | 2018-12-06 | 一种区块链的构建方法、系统及相关组件 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109508987A true CN109508987A (zh) | 2019-03-22 |
CN109508987B CN109508987B (zh) | 2021-09-17 |
Family
ID=65751747
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811487689.XA Active CN109508987B (zh) | 2018-12-06 | 2018-12-06 | 一种区块链的构建方法、系统及相关组件 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109508987B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110322245A (zh) * | 2019-07-08 | 2019-10-11 | 匿名科技(重庆)集团有限公司 | 一种基于区块链的智能硬件系统 |
CN110490588A (zh) * | 2019-08-23 | 2019-11-22 | 深圳前海环融联易信息科技服务有限公司 | 身份证书管理方法、装置、计算机设备及存储介质 |
CN110717762A (zh) * | 2019-12-16 | 2020-01-21 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、节点设备及存储介质 |
CN111611311A (zh) * | 2020-05-11 | 2020-09-01 | 芜湖明轩科技有限公司 | 去中心化分布式数据库的形成方法及系统、电子设备及计算机可读存储介质 |
CN111885032A (zh) * | 2020-07-14 | 2020-11-03 | 重庆广播电视大学重庆工商职业学院 | 一种区块链系统以及区块链超级节点的防攻击装置 |
CN112667621A (zh) * | 2020-12-31 | 2021-04-16 | 杭州趣链科技有限公司 | 区块链监管方法、设备和计算机可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160358135A1 (en) * | 2015-06-05 | 2016-12-08 | DiQi, Inc. | Digital currency management method and digital currency node apparatus |
CN106656974A (zh) * | 2016-10-17 | 2017-05-10 | 江苏通付盾科技有限公司 | 区块链的分组共识方法及系统 |
CN106780032A (zh) * | 2016-12-16 | 2017-05-31 | 杭州云象网络技术有限公司 | 一种多链场景下的区块链链间资产转移方法 |
CN108764922A (zh) * | 2018-05-24 | 2018-11-06 | 深圳前海益链网络科技有限公司 | 一种基于区块链的对象交易和验证方法 |
CN108876377A (zh) * | 2018-07-06 | 2018-11-23 | 杭州复杂美科技有限公司 | 一种防止重复支付的方法和系统 |
-
2018
- 2018-12-06 CN CN201811487689.XA patent/CN109508987B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160358135A1 (en) * | 2015-06-05 | 2016-12-08 | DiQi, Inc. | Digital currency management method and digital currency node apparatus |
CN106656974A (zh) * | 2016-10-17 | 2017-05-10 | 江苏通付盾科技有限公司 | 区块链的分组共识方法及系统 |
CN106780032A (zh) * | 2016-12-16 | 2017-05-31 | 杭州云象网络技术有限公司 | 一种多链场景下的区块链链间资产转移方法 |
CN108764922A (zh) * | 2018-05-24 | 2018-11-06 | 深圳前海益链网络科技有限公司 | 一种基于区块链的对象交易和验证方法 |
CN108876377A (zh) * | 2018-07-06 | 2018-11-23 | 杭州复杂美科技有限公司 | 一种防止重复支付的方法和系统 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110322245A (zh) * | 2019-07-08 | 2019-10-11 | 匿名科技(重庆)集团有限公司 | 一种基于区块链的智能硬件系统 |
CN110490588A (zh) * | 2019-08-23 | 2019-11-22 | 深圳前海环融联易信息科技服务有限公司 | 身份证书管理方法、装置、计算机设备及存储介质 |
CN110717762A (zh) * | 2019-12-16 | 2020-01-21 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、节点设备及存储介质 |
CN111611311A (zh) * | 2020-05-11 | 2020-09-01 | 芜湖明轩科技有限公司 | 去中心化分布式数据库的形成方法及系统、电子设备及计算机可读存储介质 |
CN111611311B (zh) * | 2020-05-11 | 2023-09-08 | 徐皓 | 去中心化分布式数据库的形成方法及系统、电子设备及计算机可读存储介质 |
CN111885032A (zh) * | 2020-07-14 | 2020-11-03 | 重庆广播电视大学重庆工商职业学院 | 一种区块链系统以及区块链超级节点的防攻击装置 |
CN112667621A (zh) * | 2020-12-31 | 2021-04-16 | 杭州趣链科技有限公司 | 区块链监管方法、设备和计算机可读存储介质 |
CN112667621B (zh) * | 2020-12-31 | 2023-03-10 | 杭州趣链科技有限公司 | 区块链监管方法、设备和计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109508987B (zh) | 2021-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109508987A (zh) | 一种区块链的构建方法、系统及相关组件 | |
CN109360100B (zh) | 基于区块链技术的交易快速确认方法及装置 | |
CN107147501B (zh) | 时间戳处理方法及装置 | |
CN107846278A (zh) | 智能合约处理方法及装置 | |
CN108647965B (zh) | 跨链交易方法、装置、存储介质及电子设备 | |
CN110351133A (zh) | 用于区块链系统中的主节点切换处理的方法及装置 | |
CN107464106A (zh) | 区块链主链与侧链间交易的方法及系统 | |
CN108881163A (zh) | 一种带区块发布机制的多中心区块链系统 | |
CN110046896A (zh) | 一种区块处理方法和节点以及系统 | |
CN109379429A (zh) | 一种基于区块链的多链管理方法及系统 | |
CN109981279B (zh) | 一种区块链系统、通信方法、装置、设备及介质 | |
CN102148832B (zh) | 边界网关路由协议路径鉴定方法 | |
CN110599177A (zh) | 一种交易验证方法及相关设备 | |
CN112069550B (zh) | 一种基于智能合约方式的电子合同存证系统 | |
CN110187831B (zh) | 区块链联盟链的区块数据存储系统及方法 | |
CN108305156A (zh) | 基于区块链的实时竞价方法、装置、设备和存储介质 | |
CN110019103B (zh) | 一种基于区块链的跨链系统和跨链实现方法 | |
CN112184229A (zh) | 基于区块链的子账户交易处理方法、系统及设备 | |
CN114881648A (zh) | 面向跨链资产置换场景的基于预言机的区块链互联方法和设备 | |
CN105227317A (zh) | 一种支持认证器隐私的云数据完整性检测方法和系统 | |
CN109214817A (zh) | 一种基于算力寄生的区块链共识装置 | |
CN110347689A (zh) | 数据存储方法、设备及计算机可读存储介质 | |
Zhao et al. | Fuzzy identity-based dynamic auditing of big data on cloud storage | |
CN113409145A (zh) | 一种跨区块链的交易同步方法和装置 | |
CN109840769A (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 |