CN110689345A - 调整区块权重的无许可区块链共识方法、系统、p2p网络 - Google Patents
调整区块权重的无许可区块链共识方法、系统、p2p网络 Download PDFInfo
- Publication number
- CN110689345A CN110689345A CN201910842087.XA CN201910842087A CN110689345A CN 110689345 A CN110689345 A CN 110689345A CN 201910842087 A CN201910842087 A CN 201910842087A CN 110689345 A CN110689345 A CN 110689345A
- Authority
- CN
- China
- Prior art keywords
- block
- weight
- blocks
- judging
- parent
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1834—Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
- G06F16/1837—Management specially adapted to peer-to-peer storage networks
-
- 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/3236—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 using cryptographic hash functions
- H04L9/3239—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 using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
- H04L67/1078—Resource delivery mechanisms
- H04L67/108—Resource delivery mechanisms characterised by resources being split in blocks or fragments
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- 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/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种调整区块权重的无许可区块链共识方法,包括:为无许可区块链中所有区块的权重设定初始值;确定任一区块的父边、子边和向前引用边;检测新增区块的父边所包含的区块中,是否存在第一判断区块;若是则判断该新增区块为失稳区块并转入下一步,反之则判断该新增区块为稳定区块并选出主链;检测该新增区块的父边所包含的稳定区块中,是否存在第二判断区块;若是则判断该新增区块为待调区块并进入下一步,反之则判断该新增区块为稳定区块并选出主链;调整该待调区块的权重;根据区块链共识规则,以各区块的权重选出该无许可区块链的主链。本发明采用调整区块权重的方法以提升平衡攻击成本,同时让全网能快速达成共识而提升系统吞吐量。
Description
技术领域
本发明属于互联网技术领域,具体涉及一种无许可区块链的共识方法及系统。
背景技术
在无许可区块链系统中,每个人都可以在无需获得授权的情况下搭建节点,自由竞争产生新区块。在此情况下,可能存在有人恶意地在不同分叉链上同时出块进行平衡攻击(Balance Attack),保持两条链权重相当,让全网难以共识到一条链上,进而进行双花攻击(Double Spend Attack)。为了避免平衡攻击频繁发生,本发明提出了一种在无许可区块链中根据链上区块拓扑关系动态调整区块权重以提升平衡攻击成本的方法。当平衡攻击成本提升后,全网能够更快地对主链达成共识,提升无许可区块链系统的吞吐量。
目前区块链系统可分为无许可,公共许可和私有许可三种:
(1)无许可:人人可参与竞争出块,如BTC和Ethereum等典型基于PoW的共识协议
(2)公共许可:人人可参与投票来选出授权对象,如EOS和Tron等典型基于DPoS的共识协议,
(3)私有许可:中心化选出授权对象,如Quorum和Hyper Ledger等基于PBFT的共识协议
在无许可区块链系统中,涉及彼此竞争出块,目前被市场验证有效的仅有基于PoW的共识协议。而在基于PoW的共识协议中,无论是最长链规则还是最重链规则,提升平衡攻击成本的方式都是通过提高出块难度来降低出块速度。
最长链规则:典型的如BTC的共识规则,区块Hash值小于某个阈值的区块才是合法区块,合法的链只由合法区块组成,每个合法区块的权重都为1。从创世区块开始,永远从子区块中选择子链权重之和最大的子区块作为主链上的区块,依次往下可以确认主链,各个节点按此方案对主链达成共识。图1展示了在一种典型的拓扑结构下,根据最长链规则选择的主链情况。
最重链规则:典型的如Ethereum的共识规则,区块Hash值小于某个阈值的区块才是合法区块,合法的链只由合法区块组成,每个合法区块的权重都为1。从创世区块开始,永远从子区块中选择子树权重之和最大的子区块作为主链上的区块,依次往下可以确认主链,各个节点按此方案对主链达成共识。图2展示了在一种典型的拓扑结构下,根据最重链规则选择的主链情况。
图3是一种典型处于平衡攻击下的区块拓扑结构示意图。如图3所示,无论哪种方式,都有可能出现平衡攻击,即存在两个分支以不分伯仲的速度增长,主链选择摇摆不定。
在无许可区块链中为了避免平衡攻击过于频繁,无论是最长链规则还是最重链规则,都选择了通过提升出块难度以降低出块速度的方案。在出块速度很慢时,一个区块产生后,网络中各个出块节点能有足够的时间对当前最长链或者最终链有一个共识,诚实节点将会在最长链或者最重链后面接着出块,此时攻击者要想继续进行平衡攻击将需要掌握全网51%的资源用于出块,成本很高。
这种采用降低出块速度的方案虽然能提升平衡攻击成本,但是也极大地限制了吞吐量,使得无许可区块链系统的TPS(TransactionsPerSecond)被严重制约。
发明内容
针对现有技术中存在的问题,本发明通过对新增区块的权重进行动态调整,使得无许可区块链系统在不降低出块速度的前提下,增加平衡攻击的成本。
具体来说,本发明提出一种调整区块权重的无许可区块链共识方法,该方法包括:初始化步骤,将无许可区块链中任一区块的权重设定为相同的初始值;关联关系步骤,由区块链拓扑结构,确定任一区块的父边、子边和向前引用边;第一判断步骤,检测某一区块的父边所包含的区块中,是否存在第一判断区块;若是则判断该区块为失稳区块并转入第二判断步骤,反之则判断该区块为稳定区块并进入主链共识步骤;第二判断步骤,检测新增区块的父边所包含的稳定区块中,是否存在第二判断区块;若是则判断该新增区块为待调区块并进入权重调整步骤,反之则判断该新增区块为稳定区块并进入主链共识步骤;权重调整步骤,调整该待调区块的权重;主链共识步骤,根据区块链共识规则,以各区块的权重选出该无许可区块链的主链。
本发明所述的无许可区块链共识方法,其中对于该无许可区块链的区块集合B,以任一区块的父边及向前引用边所能到达的所有区块,为该任一区块的向前区块集合Past(·),以Past(·)中所有区块的权重之和为该任一区块的向前权重和PastW(·);以通过该任一区块的子边所引用的所有区块,为该任一区块的向后区块集合SubT(·),以SubT(·)中所有区块的权重之和为该任一区块的向后权重和SubTW(B,·);该第一判断步骤具体包括:检测区块a的父边所包含的区块中存在第一判断区块x,使得f(x)>β,g(x)/f(x)<α;若存在,则判断a为失稳区块,反之则判断a为稳定区块;其中,α、β为判断阈值,f(x)=PastW(a)-PastW(x.parent)-x.weight,g(x)=SubTW(B,x),x.parent为x的父区块,x.weight为x的权重。
本发明所述的无许可区块链共识方法,其中对于区块集合B,以通过任一区块的子边所引用的所有区块中的所有稳定区块的权重之和,为该任一区块的向后稳定权重和SubTStableW(B,·);该第二判断步骤具体包括:检测新增区块b的父边所包含的稳定区块中,是否存在第二判断区块y,使得SubTW(B,y.parent)>β,SubTStableW(B,y)/SubTW(B,y.parent)<α;若存在,则判断新增区块b为待调区块,反之则判断为稳定区块;其中,y.parent为y的父区块。
本发明所述的无许可区块链共识方法,其中该权重调整步骤具体包括:将该待调区块b的难度b.pow_quality与该无许可区块链的难度阈值h·D进行比较;若b.pow_quality≥h·D,则将该待调区块的权重调整为h;若b.pow_quality<h·D,则将该待调区块的权重调整为0;其中,D为该无许可区块链的所有区块的平均难度,h为倍率,h>0。
本发明还提出一种调整区块权重的无许可区块链共识系统,包括:初始化模块,用于将无许可区块链中任一区块的权重设定为相同的初始值;关联关系模块,用于通过区块链拓扑结构,确定任一区块的父边、子边和向前引用边;第一判断模块,用于检测某一区块的父边所包含的区块中,是否存在第一判断区块;若是则判断该区块为失稳区块并调用第二判断模块,反之则判断该区块为稳定区块并调用主链共识模块;第二判断模块,用于检测新增区块的父边所包含的稳定区块中,是否存在第二判断区块;若是则判断该新增区块为待调区块并调用权重调整模块,反之则该新增区块为稳定区块并调用主链共识模块;权重调整模块,用于调整该待调区块的权重;主链共识模块,用于根据区块链共识规则,以各区块的权重选出该无许可区块链的主链。
本发明所述的无许可区块链共识系统,其中对于该无许可区块链的区块集合B,以任一区块的父边及向前引用边所能到达的所有区块,为该任一区块的向前区块集合Past(·),以Past(·)中所有区块的权重之和为该任一区块的向前权重和PastW(·);以通过该任一区块的子边所引用的所有区块,为该任一区块的向后区块集合SubT(·),以SubT(·)中所有区块的权重之和为该任一区块的向后权重和SubTW(B,·);该第一判断模块具体包括:检测区块a的父边所包含的区块中存在第一判断区块x,使得f(x)>β,g(x)/f(x)<α;若存在,则判断a为失稳区块,反之则判断a为稳定区块;其中,α、β为判断阈值,f(x)=PastW(a)-PastW(x.parent)-x.weight,g(x)=SubTW(B,x),x.parent为x的父区块,x.weight为x的权重。
本发明所述的无许可区块链共识系统,其中对于区块集合B,以通过任一区块的子边所引用的所有区块中的所有稳定区块的权重之和,为该任一区块的向后稳定权重和SubTStableW(B,·);该第二判断模块具体包括:检测新增区块b的父边所包含的稳定区块中,是否存在第二判断区块y,使得SubTW(B,y.parent)>β,SubTStableW(B,y)/SubTW(B,y.parent)<α;若存在,则判断新增区块b为待调区块,反之则判断为稳定区块;其中,y.parent为y的父区块。
本发明所述的无许可区块链共识系统,其中该权重调整模块具体包括:将该待调区块b的难度b.pow_quality与该无许可区块链的难度阈值h·D进行比较;若b.pow_quality≥h·D,则将该待调区块的权重调整为h;若b.pow_quality<h·D,则将该待调区块的权重调整为0;其中,D为该无许可区块链的所有区块的平均难度,h为倍率,h>0。
本发明还提出一种可读存储介质,存储有可执行指令,该可执行指令用于执行一种调整区块权重的无许可区块链共识方法。
本发明还提出一种数据处理终端,用于作为P2P网络的共识节点,接收、共识验证并存储该P2P网络中的区块,该数据处理终端包括:可读存储介质;处理器,用于调取并执行该可读存储介质中的可执行指令,以执行调整区块权重的无许可区块链共识方法。
本发明还提出一种P2P网络,其中该P2P网络的共识节点为前述的数据处理终端。
本发明的调整区块权重的无许可区块链共识方法,采用链上区块拓扑关系动态调整区块权重以提升平衡攻击成本,使得在出块速度很快的情况下也能让平衡攻击(BalanceAttack)的成本和出块速度很慢时一样高,让全网也能快速达成共识,而且提升系统吞吐量。
附图说明
图1是现有技术的最长链选择规则的实例示意图。
图2是现有技术的最重链选择规则的实例示意图。
图3是一种典型处于平衡攻击下的区块拓扑结构示意图。
图4A、4B是本发明的加入引用边前后区块n携带的拓扑信息的对比图。
图5是本发明的调整区块权重的无许可区块链共识方法流程图。
图6是本发明的Past(a)区块集合示意图。
图7是本发明的SubT(a)区块集合示意图。
图8是本发明的典型拓扑结构下区块x的f(x)和g(x)示意图。
图9是本发明的典型拓扑结构下区块y的SubTW(B,y.parent)和SubTStableW(B,y)示意图。
图10是本发明实施例的动态确认新增区块权重流程图。
图11是本发明的数据处理终端结构示意图。
图12是本发明的P2P网络结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明提出了一种在无许可区块链中根据链上区块拓扑关系动态调整区块权重以提升平衡攻击成本的方法,使得在出块速度很快的情况下也能让平衡攻击(BalanceAttack)的成本和出块速度很慢时一样高,让全网也能快速达成共识。而且,由于出块速度变快,系统吞吐量也能得到极大的提升。
仅有父子边的区块链系统,每个新区块产生后包含的区块拓扑信息非常有限,所以在本发明中除了父子边以外,还增加了引用边,任何一个区块都可以引用和当前区块有共同祖先但又不在一条分叉链上的区块。图4A、4B是本发明的加入引用边前后区块n携带的拓扑信息的对比图。如图4A所示,展示了仅有父子边没有引用边的无许可区块链拓扑图,在节点接收到第n个区块时,该区块携带的拓扑信息只有灰色标出的所有祖先区块;如图4B所示,展示了加入引用边的无许可区块链拓扑图,在节点接收到第n个区块时,该区块携带的拓扑信息除了所有祖先区块,还有其观察到的其他分支的区块。
基于上述的具有父子边和引用边拓扑结构的无许可区块链,本发明提出了一种调整区块权重的无许可区块链共识方法,图5是本发明的调整区块权重的无许可区块链共识方法流程图。如图5所示,本方法具体包括:
步骤S1,权重的初始化,以无许可区块链中所有区块为区块集合B,对集合B进行初始化设置,以使集合B中的每个区块的权重均为相同的初始值;通常情况下,初始值取值为1;
步骤S2,确定集合B中各区块之间的关联关系,即相对于无许可区块链拓扑结构中的某一区块,确定这个区块的父子边(包括父边和子边)及引用边,其中,对应父边和子边的拓扑结构,引用边也分为父引用边(向前引用边)和子引用边(向后引用边),当所有区块的父子边和引用边均确定后,区块之间的关联关系也确定下来;
步骤S3,判断集合B中的新增区块b是否为失稳区块,本发明以IsStable(b)表示,判断过程具体包括:
步骤S31,定义区块集合Past(b),Past(b)=(∪i∈b.pred_blocksPast(i))∪b.pred_blocks,指从区块b通过父边以及向前引用边可以抵达的所有区块集合,且不包含区块b自身;
图6是本发明的Past(a)区块集合示意图。对于区块集合B中的任一区块a,其区块集合Past(a)的范围如图6所示;
步骤S32,定义权重和PastW(b),PastW(b)=∑i∈Past(b)i.weight,指区块集合Past(b)中所有区块的权重之和;
步骤S33,定义区块集合SubT(B,b),SubT(B,b)=(∪i∈Child(B,b)SubT(B,i))∪{b},指在区块集合B中,从区块b的子边可以抵达的所有区块集合,包含区块b;
图7是本发明的SubT(a)区块集合示意图。对于区块集合B中的任一区块a,其区块集合SubT(B,a)的范围如图7所示;
步骤S34,定义权重和SubTW(B,b),SubTW(B,b)=∑i∈SubT(B,b)i.weight,指区块集合SubT(B,a)中所有区块的权重之和;
步骤S35,根据区块b向前所观察到的拓扑结构来判断其是否稳定,即从区块b的父区块开始,沿着区块b的父边向前依次检测是否存在某个区块x,使得f(x)>β且g(x)/f(x)<α成立;
其中,f(x)=PastW(b)-PastW(x.parent)-x.weight,g(x)=SubTW(B,x),x.parent为第一判断区块x的父区块,x.weight为第一判断区块x的权重,α、β为判断阈值;
如果存在区块x,则IsStable(b)不成立,新增区块b不稳定,为失稳区块,进入步骤S4;
如果不存在区块x,则IsStable(b)成立,新增区块b稳定,为稳定区块,保持新增区块b的权重仍为初始值并进入步骤S6;
图8展示了一个典型拓扑结构下区块x的f(x)和g(x)的集合实例;
步骤S4,判断新增区块b是否为待调区块,本发明以IsAdaptive(b)表示,判断过程具体包括:
步骤S41,定义权重和SubTStableW(B,b),指SubT(b)中所有稳定区块的权值之和,SubTStableW(B,b)=∑i∈SubT(B,b),i.stable=Truei.weight;
步骤S42,根据新增区块b向前所观察的拓扑结构来判断其是否需要自适应调节权重,即从新增区块b的父区块开始,沿着父边向前依次检测是否存在某个区块y,使得SubTW(B,y.parent)>β且SubTStable(B,y)/SubTW(B,y.parent)<α成立;
如果存在满足条件的区块y,则IsAdaptive(b)成立,区块b为待调区块,需要进行权重调节,进入步骤S5;
如果不存在区块y,则IsAdaptive(b)不成立,区块b为稳定区块,保持区块b的权重为初始值并进入步骤S6。
图9展示了一个典型拓扑结构下区块y的SubTW(B,y.parent)和SubTStable(B,y)的集合实例。
步骤S5,判断待调区块b的属性,本发明以IsHeavyBlock(b)表示,判断过程具体包括:
判断区块b的难度,对于区块b的难度b.pow_quality,将其与无许可区块链的难度阈值h·D进行比较;若b.pow_quality≥h·D,则IsHeavyBlock(b)成立,区块b为高难度区块,若b.pow_quality<h·D,则IsHeavyBlock(b)不成立,区块b为普通难度区块;其中,D为无许可区块链的所有区块的平均难度,h为倍率,h>0;
步骤S6,调整区块权重,对于高难度区块,将其权重由初始值调整为h;对于普通难度区块,将其权重由初始值调整为0;
步骤S7,根据调整后的新增区块的权重,以最长链规则或最重链规则,或任一使用区块权重选择主链的共识规则,选取无许可区块链的主链。
图10是本发明实施例的动态确认新增区块权重流程图。如图10所示,本发明的调整区块权重的的无许可区块链共识方法可以归纳为对新增区块b的属性判断和权重调整,即:
首先判断IsStable(b)是否成立,如果b是稳定的,代表目前大部分资源都集中在b所在的主链竞争出块,那么b大概率是诚实区块,权重定为1;如果b是不稳定的,那么需要进一步判断b是否需要动态调节权重;
接着判断IsAdaptive(b)是否成立,如果b不需要动态调节权重,代表b所在主链的祖先区块都比较稳定,b大概率是诚实区块,权重也定为1;如果b需要自适应调节权重,则需要进一步判断b是否为高难度区块;
最后判断IsHeavyBlock(b)是否成立,此时可知b所在主链不稳定,为了让全网诚实节点能够快速共识到一条稳定的主链上,此时会增加不同难度区块的权重差,如此一来,高难度区块权重增加到h,低难度区块权重衰减为0,让高难度区块多的主链能够快速胜出,形成新的共识后主链将会趋于稳定。
图11是本发明的数据处理终端结构示意图。如图11所示,本发明还提出一种数据处理终端,包括处理器和可读存储介质,其中处理器通过读取可读存储介质存储的可执行指令,以接收、共识验证并存储该P2P网络中的区块;可读存储介质存储有可执行指令,可执行指令被处理器执行时,实现上述调整区块权重的无许可区块链共识方法。本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件(例如处理器)完成,所述程序可以存储于可读存储介质中,如只读存储器、磁盘或光盘等。上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块可以采用硬件的形式实现,例如通过集成电路来实现其相应功能,也可以采用软件功能模块的形式实现,例如通过处理器执行存储于存储器中的程序/指令来实现其相应功能。本发明实施例不限制于任何特定形式的硬件和软件的结合。
图12是本发明的P2P网络结构示意图。如图12所示,本发明的P2P网络包括多个共识节点,本发明的P2P网络共识节点为前述的数据处理终端。
为了直观展示此方法的优势,以最长链规则举例,对比传统固定区块权重的方法和本发明描述的自适应调节区块权重的方法的区别。在2.3GHz Intel Core i5,8GB内存的MacBook Pro下,模拟100个随机互联的节点以及200ms的网络延迟,统计在不同出块难度下,攻击者要在5分钟内至少维持两个长度相同的分叉链所需的全网计算资源百分比,其对比结果如表1所示。
平均出块时间 | 60s | 30s | 10s | 1s | 0.25s |
传统方法 | 50% | 47.6% | 42.9% | 27.3% | 4.35% |
新方法 | 50% | 50% | 47.7% | 40.5% | 38.1% |
表1
在传统固定区块权重的方法下,随着出块难度的下降,出块时间的缩短,攻击者发起平衡攻击所需的资源急剧下降。而同样的场景,在使用本发明描述的调整区块权重的共识方法下,攻击者发起平衡攻击所需的资源受出块时间缩短的干扰较小,一直维持在一个较高的水平。
本发明可使用在任意无许可区块链系统中,通过链上区块拓扑关系动态调整区块权重,提升平衡攻击成本,使得在出块速度很快的情况下也能让平衡攻击(BalanceAttack)的成本和出块速度很慢时一样高,让全网也能快速达成共识。而且,由于出块速度变快,系统吞吐量也能得到极大的提升。
本发明的优势正在于采用链上区块拓扑关系动态调整区块权重以提升平衡攻击成本,使得在出块速度很快的情况下也能让平衡攻击(Balance Attack)的成本和出块速度很慢时一样高,让全网也能快速达成共识,而且提升系统吞吐量。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (11)
1.一种调整区块权重的无许可区块链共识方法,其特征在于,包括:
初始化步骤,将无许可区块链中所有区块的权重设定为相同的初始值;
关联关系步骤,由区块链拓扑结构,确定任一区块的父边、子边和向前引用边;
第一判断步骤,检测新增区块的父边所包含的区块中,是否存在第一判断区块;若是则判断该新增区块为失稳区块并转入第二判断步骤,反之则判断该新增区块为稳定区块并进入主链共识步骤;
第二判断步骤,检测该新增区块的父边所包含的稳定区块中,是否存在第二判断区块;若是则判断该新增区块为待调区块并进入权重调整步骤,反之则判断该新增区块为稳定区块并进入主链共识步骤;
权重调整步骤,调整该待调区块的权重;
主链共识步骤,根据区块链共识规则,以各区块的权重选出该无许可区块链的主链。
2.如权利要求1所述的无许可区块链共识方法,其特征在于,对于该无许可区块链的区块集合B,以任一区块的父边及向前引用边所能到达的所有区块,为该任一区块的向前区块集合Past(·),以Past(·)中所有区块的权重之和为该任一区块的向前权重和PastW(·);以通过该任一区块的子边所引用的所有区块,为该任一区块的向后区块集合SubT(·),以SubT(·)中所有区块的权重之和为该任一区块的向后权重和SubTW(B,·);
该第一判断步骤具体包括:
检测新增区块b的父边所包含的区块中存在第一判断区块x,使得f(x)>β,g(x)/f(x)<α;若存在,则判断b为失稳区块,反之则判断b为稳定区块;
其中,α、β为判断阈值,f(x)=PastW(b)-PastW(x.parent)-x.weight,g(x)=SubTW(B,x),x.parent为x的父区块,x.weight为x的权重。
3.如权利要求2所述的无许可区块链共识方法,其特征在于,对于区块集合B,以通过任一区块的子边所引用的所有区块中的所有稳定区块的权重之和,为该任一区块的向后稳定权重和SubTStableW(B,·);
该第二判断步骤具体包括:
检测新增区块b的父边所包含的稳定区块中,是否存在第二判断区块y,使得SubTW(B,y.parent)>β,SubTStableW(B,y)/SubTW(B,y.parent)<α;
若存在,则判断新增区块b为待调区块,反之则判断为稳定区块;
其中,y.parent为y的父区块。
4.如权利要求1所述的无许可区块链共识方法,其特征在于,该权重调整步骤具体包括:
将该待调区块b的难度b.pow_quality与该无许可区块链的难度阈值h·D进行比较;
若b.pow_quality≥h·D,则将该待调区块的权重调整为h;
若b.pow_quality<h·D,则将该待调区块的权重调整为0;
其中,D为该无许可区块链的所有区块的平均难度,h为倍率,h>0。
5.一种调整区块权重的无许可区块链共识系统,其特征在于,包括:
初始化模块,用于将无许可区块链中所有区块的权重设定为相同的初始值;
关联关系模块,用于通过区块链拓扑结构,确定任一区块的父边、子边和向前引用边;
第一判断模块,用于检测新增区块的父边所包含的区块中,是否存在第一判断区块;若是则判断该新增区块为失稳区块并调用第二判断模块,反之则判断该新增区块为稳定区块并调用主链共识模块;
第二判断模块,用于检测新增区块的父边所包含的稳定区块中,是否存在第二判断区块;若是则判断该新增区块为待调区块并调用权重调整模块,反之则该新增区块为稳定区块并调用主链共识模块;
权重调整模块,用于调整该待调区块的权重;
主链共识模块,用于根据区块链共识规则,以各区块的权重选出该无许可区块链的主链。
6.如权利要求5所述的无许可区块链共识系统,其特征在于,对于该无许可区块链的区块集合B,以任一区块的父边及向前引用边所能到达的所有区块,为该任一区块的向前区块集合Past(·),以Past(·)中所有区块的权重之和为该任一区块的向前权重和PastW(·);以通过该任一区块的子边所引用的所有区块,为该任一区块的向后区块集合SubT(·),以SubT(·)中所有区块的权重之和为该任一区块的向后权重和SubTW(B,·);
该第一判断模块具体包括:
检测区块a的父边所包含的区块中存在第一判断区块x,使得f(x)>β,g(x)/f(x)<α;若存在,则判断a为失稳区块,反之则判断a为稳定区块;
其中,α、β为判断阈值,f(x)=PastW(a)-PastW(x.parent)-x.weight,g(x)=SubTW(B,x),x.parent为x的父区块,x.weight为x的权重。
7.如权利要求6所述的无许可区块链共识系统,其特征在于,对于区块集合B,以通过任一区块的子边所引用的所有区块中的所有稳定区块的权重之和,为该任一区块的向后稳定权重和SubTStableW(B,·);
该第二判断模块具体包括:
检测新增区块b的父边所包含的稳定区块中,是否存在第二判断区块y,使得SubTW(B,y.parent)>β,SubTStableW(B,y)/SubTW(B,y.parent)<α;
若存在,则判断新增区块b为待调区块,反之则判断为稳定区块;
其中,y.parent为y的父区块。
8.如权利要求5所述的无许可区块链共识系统,其特征在于,该权重调整模块具体包括:
将该待调区块b的难度b.pow_quality与该无许可区块链的难度阈值h·D进行比较;
若b.pow_quality≥h·D,则将该待调区块的权重调整为h;
若b.pow_quality<h·D,则将该待调区块的权重调整为0;
其中,D为该无许可区块链的所有区块的平均难度,h为倍率,h>0。
9.一种可读存储介质,存储有可执行指令,该可执行指令用于执行如权利要求1~4任一项所述的调整区块权重的无许可区块链共识方法。
10.一种数据处理终端,用于作为P2P网络的共识节点,接收、共识验证并存储该P2P网络中的区块,该数据处理终端包括:
如权利要求9所述的可读存储介质;
处理器,该处理器调取并执行该可读存储介质中的可执行指令,以执行调整区块权重的无许可区块链共识方法。
11.一种P2P网络,其特征在于,该P2P网络的共识节点为权利要求10所述的数据处理终端。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910842087.XA CN110689345B (zh) | 2019-09-06 | 2019-09-06 | 调整区块权重的无许可区块链共识方法、系统、p2p网络 |
US16/727,977 US11507543B2 (en) | 2019-09-06 | 2019-12-27 | Permissionless blockchain consensus method with adjusting block weight, system and P2P network |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910842087.XA CN110689345B (zh) | 2019-09-06 | 2019-09-06 | 调整区块权重的无许可区块链共识方法、系统、p2p网络 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110689345A true CN110689345A (zh) | 2020-01-14 |
CN110689345B CN110689345B (zh) | 2022-03-18 |
Family
ID=69107891
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910842087.XA Active CN110689345B (zh) | 2019-09-06 | 2019-09-06 | 调整区块权重的无许可区块链共识方法、系统、p2p网络 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11507543B2 (zh) |
CN (1) | CN110689345B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111445247A (zh) * | 2020-04-09 | 2020-07-24 | 堡垒科技有限公司 | 用于防止区块链分叉的方法和设备 |
CN112926053A (zh) * | 2021-01-26 | 2021-06-08 | 上海树图区块链研究院 | 无许可区块链系统中恶意区块的探测方法、系统及p2p网络 |
CN113222590A (zh) * | 2020-01-21 | 2021-08-06 | 鸿富锦精密电子(天津)有限公司 | 预防双花攻击的方法、装置及计算机可读存储介质 |
US20240163121A1 (en) * | 2021-10-30 | 2024-05-16 | China Unionpay Co., Ltd. | Blockchain consensus method, apparatus, and device, and storage medium |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11556618B2 (en) | 2020-02-18 | 2023-01-17 | At&T Intellectual Property I, L.P. | Split ledger software license platform |
US20210256487A1 (en) * | 2020-02-18 | 2021-08-19 | At&T Intellectual Property I, L.P. | Split Ledger Cryptocurrency |
CN114285860B (zh) * | 2021-10-30 | 2023-07-07 | 中国银联股份有限公司 | 一种调整区块生成难度的方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180198604A1 (en) * | 2017-01-10 | 2018-07-12 | Trustonic Limited | Event attestation for an electronic device |
CN108647963A (zh) * | 2018-05-02 | 2018-10-12 | 百度在线网络技术(北京)有限公司 | 区块链主链的确定方法、装置、服务器和存储介质 |
US20190020629A1 (en) * | 2017-07-11 | 2019-01-17 | Swirlds, Inc. | Methods and apparatus for efficiently implementing a distributed database within a network |
CN109377232A (zh) * | 2018-12-20 | 2019-02-22 | 众安信息技术服务有限公司 | 基于dag的区块链的交易定序方法及设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102409819B1 (ko) * | 2016-05-04 | 2022-06-16 | 실비오 미칼리 | 분산 거래 전파 및 검증 시스템 |
US11257073B2 (en) * | 2018-01-31 | 2022-02-22 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for implementing machine learning models for smart contracts using distributed ledger technologies in a cloud based computing environment |
-
2019
- 2019-09-06 CN CN201910842087.XA patent/CN110689345B/zh active Active
- 2019-12-27 US US16/727,977 patent/US11507543B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180198604A1 (en) * | 2017-01-10 | 2018-07-12 | Trustonic Limited | Event attestation for an electronic device |
US20190020629A1 (en) * | 2017-07-11 | 2019-01-17 | Swirlds, Inc. | Methods and apparatus for efficiently implementing a distributed database within a network |
CN108647963A (zh) * | 2018-05-02 | 2018-10-12 | 百度在线网络技术(北京)有限公司 | 区块链主链的确定方法、装置、服务器和存储介质 |
CN109377232A (zh) * | 2018-12-20 | 2019-02-22 | 众安信息技术服务有限公司 | 基于dag的区块链的交易定序方法及设备 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113222590A (zh) * | 2020-01-21 | 2021-08-06 | 鸿富锦精密电子(天津)有限公司 | 预防双花攻击的方法、装置及计算机可读存储介质 |
CN113222590B (zh) * | 2020-01-21 | 2023-10-31 | 富联精密电子(天津)有限公司 | 预防双花攻击的方法、装置及计算机可读存储介质 |
CN111445247A (zh) * | 2020-04-09 | 2020-07-24 | 堡垒科技有限公司 | 用于防止区块链分叉的方法和设备 |
CN111445247B (zh) * | 2020-04-09 | 2021-05-28 | 堡垒科技有限公司 | 用于防止区块链分叉的方法和设备 |
CN112926053A (zh) * | 2021-01-26 | 2021-06-08 | 上海树图区块链研究院 | 无许可区块链系统中恶意区块的探测方法、系统及p2p网络 |
CN112926053B (zh) * | 2021-01-26 | 2023-11-28 | 上海树图区块链研究院 | 无许可区块链系统中恶意区块的探测方法、系统及p2p网络 |
US20240163121A1 (en) * | 2021-10-30 | 2024-05-16 | China Unionpay Co., Ltd. | Blockchain consensus method, apparatus, and device, and storage medium |
Also Published As
Publication number | Publication date |
---|---|
US20210073186A1 (en) | 2021-03-11 |
CN110689345B (zh) | 2022-03-18 |
US11507543B2 (en) | 2022-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110689345B (zh) | 调整区块权重的无许可区块链共识方法、系统、p2p网络 | |
CN109064348B (zh) | 一种在社交网络中封锁谣言社区并抑制谣言传播的方法 | |
CN109976901B (zh) | 一种资源调度方法、装置、服务器及可读存储介质 | |
CN110460650B (zh) | 多边缘服务器场景下计算卸载的决策方法及装置 | |
CN110177356B (zh) | 一种基于信任模型的车载命名数据网络转发方法 | |
US8195662B2 (en) | Density-based data clustering method | |
CN110876072B (zh) | 一种批量注册用户识别方法、存储介质、电子设备及系统 | |
CN110049474A (zh) | 一种无线资源分配方法、装置及基站 | |
CN107240100A (zh) | 一种基于遗传算法的图像分割方法和系统 | |
CN110059405A (zh) | X结构下带差分进化的高质量Steiner最小树构建方法 | |
CN110049018B (zh) | 基于增强学习的spma协议参数优化方法、系统及介质 | |
CN116614516A (zh) | 基于声誉改进的pbft共识方法 | |
CN112596910A (zh) | 一种多用户mec系统中的云计算资源调度方法 | |
Wang et al. | Dynamic balance tip selection algorithm for IOTA | |
CN110213261B (zh) | 对抗链路预测的用于网络结构隐私保护的链路删除方法 | |
CN110505681B (zh) | 基于遗传方法的非正交多址接入场景用户配对方法 | |
CN114710374B (zh) | 一种数据广播与共识解耦的异步区块链共识方法和系统 | |
CN114866558A (zh) | 基于数字服务技术的区块链认证平台与方法 | |
CN112395059A (zh) | 一种改进萤火虫算法的cmp任务调度方法 | |
CN109300032B (zh) | 区块生成方法、装置、设备及计算机可读存储介质 | |
CN111696245B (zh) | 一种基于p2p网络的投票方法 | |
CN105681112A (zh) | 一种实现多级承诺访问速率控制的方法及相关设备 | |
CN111290849A (zh) | 一种服务资源动态调整方法、装置、设备及介质 | |
CN112085179A (zh) | 一种加大深度学习训练数据量的方法 | |
CN110162400B (zh) | 复杂网络环境下实现mas系统中智能体合作的方法和系统 |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230706 Address after: Room 3901, No. 701, Yunjin Road, Xuhui District, Shanghai, 200030 Patentee after: Shanghai Shutu blockchain Research Institute Address before: 100084 6 / F, East Building, block D, Tsinghua Tongfang science and Technology Plaza, Haidian District, Beijing Patentee before: Beijing Qinghong Weigu Technology Development Co.,Ltd. |
|
TR01 | Transfer of patent right |