基于置换证明的多链领导者隐蔽分配方法及装置

文档序号:33128337发布日期:2023-02-01 06:31阅读:36来源:国知局
基于置换证明的多链领导者隐蔽分配方法及装置

1.本技术涉及信息安全技术领域,特别涉及一种基于置换证明的多链领导者隐蔽分配方法及装置。


背景技术:

2.区块链技术是在分布式、不可信环境下所有节点通过一定的共识机制就公共账本达成一致的技术,它解决了传统信息系统架构中对第三方机构的信任问题,在金融、经济、军事、科技、社会等众多领域激发着颠覆式创新,引发了新一轮信息技术的变革和应用。
3.共识机制作为区块链技术的核心,从根本上决定了整个区块链系统的安全性、可用性和系统性能等重要特征。常见的共识机制可以分为4类,分别是经典分布式共识机制、工作量证明共识机制、权益证明共识机制和混合共识机制。经典分布式共识机制是指在授权网络中,一组节点实现状态机复制,常见的方案有pbft、hotstuff等。工作量证明共识机制的典型代表包括比特币、以太坊和bitcoinng等公链中,参与竞争出块的节点会持续进行哈希运算,计算结果符合条件的节点可以提议出块并获得收益。为了解决工作量证明共识机制带来的大量能源消耗,权益证明共识机制被提出并应用,此类系统中节点需要质押资产竞争出块,质押资产越多,出块概率越高。混合共识是为将能力证明共识机制与经典分布式共识机制相结合,通常采用工作量证明共识机制或权益证明共识机制选举委员会。委员会内部运行经典分布式共识,大部分的混合共识同时在委员会中选举出块人,常见的方案有polkadot、byzcoin等。
4.为了解决区块链处理交易的可扩展性,工业界和学术界提出了分片方案,利用多个并行的委员会处理网络中不同分片的交易。分片方案目前包括通信分片、计算分片及存储分片。通信分片根据网络位置将全网划分为不同的片区,每个片区大部分时间内由内部委员会进行通信并处理交易;计算分片根据交易id划分片区,使不同交易以并行的方式进行处理;存储分片中不同分片委员会可以将处理后的交易信息分片存储,降低节点的存储开销。学术界的分片方案主要有omniledger、chainspace、rapidchain、monoxide等,工业界的分片方案主要有ethereum 2.0、near、polkadot、cosmos等。
5.在采用分片方案的多链系统中,系统的流程主要包括:节点身份建立,选举分片委员会领导者,分片内运行分布式一致性算法,广播区块与跨片交易,重配置分片委员会。其中领导者的合理选择对于区块链系统的安全性和可用性具有重要的影响。
6.现有的多链系统中,领导者选举的方法通常有以下几种:
7.(1)按照节点编号顺序替换
8.以pbft为代表的经典分布式共识机制中,按照编号排好节点顺序,当主节点遇到攻击或网络超时时,其他备份节点发起视图转换,视图转换成功后新的主节点开始工作。主节点以轮转(round robin)的方式交替更换。
9.这种方案的缺点是:
10.a.领导者身份提前暴露,恶意节点可能会对于接下来的领导者节点进行拒绝服务
攻击,造成频繁的viewchange,根据honeybadger中的模拟攻击实验结果,此类攻击可导致pbft协议永远无法成功达成共识。
11.b.得知领导者身份后,敌手可以对出块节点进行贿赂,即通过贿赂领导者来使出块的结果有利于自己,即发动mev攻击或审查交易,破坏系统的公平性。
12.(2)将选举融合到的共识的主流程中
13.分片内可以使用hotstuff共识协议,通过在viewchange的过程融合进达成共识的过程中,并使用将各个阶段串联在一起的方法,将系统的viewchange的复杂度降低到o(n)。但是这种方式依然会有领导者的身份可预测带来的拒绝服务攻击和贿赂攻击问题。
14.(3)pow领导者选举
15.在rapidchain等系统中采用pow进行委员会的重配置,将最早找到使区块的哈希值符合要求的临时值(nonce)的节点作为当前的领导者。这种方式有以下缺点:
16.a.消耗能源,通过穷举的方式遍历nonce的过程中需要进行大量的哈希运算,而这些的无意义的运算的会消耗大量的能源;
17.b.分叉,可能出现有多个节点在相近的时间内找到nonce的情况,此时多个节点可能都会出块,导致区块链的分叉问题。分叉问题导致区块中的数据需要等待一定的区块数目才可以被确认,增加了区块链的延迟。
18.(4)利用分布式随机数的领导者选举
19.多链系统中,以太坊2.0中使用基于可验证延迟函数的方案,由信标链为分片链节点进行随机分配。由于随机数全局可知,负责出块的领导者身份会提前暴露,存在被攻击或贿赂的风险。


技术实现要素:

20.本技术提供一种基于置换证明的多链领导者隐蔽分配方法及装置,解决了多链架构下领导者身份的隐蔽和区块链的确定性出块不分叉之间的矛盾。
21.本技术第一方面实施例提供一种基于置换证明的多链领导者隐蔽分配方法,包括以下步骤:在时代e
m-2
之前,将e
m-2
完成抵押或将仍在抵押列表的节点集合进行表示,以使信标链对抵押成功的节点建立抵押金额表;基于所述抵押金额表,对选举参数进行初始化;基于初始化后的选举参数进行混淆和置换,并使得领导者出块的同时附带身份证明;以及验证出块人身份是否满足预设合法性,在所选举的领导者出块后进行置换揭示和惩罚。
22.可选地,在本技术的一个实施例中,所述对选举参数进行初始化,包括:在所述时代e
m-2
第一个slot,根据所述抵押金额表的用户节点数,随机选出k个节点并进行排序;k个节点运行秘密采样向所述信标链提交一个关于随机数的承诺;对成功参与抵押的节点公布该轮选举的系统参数。
23.可选地,在本技术的一个实施例中,所述基于初始化后的选举参数进行混淆和置换,包括:对于所述k个节点的每个节点,按编号顺序串行运行协议;在节点正确执行所述协议后,对选举列表执行预设操作的同时,给出关于shuffle中的置换证明,并广播本轮的计算结果及所述置换证明;验证上一个节点的置换证明是否正确,其中,如果不正确,则终止所述协议;所述时代e
m-1
节点i遍历listk,找到节点i是第j个领导者的二元组。
24.可选地,在本技术的一个实施例中,所述验证出块人身份是否满足预设合法性,包
括:在其他节点收到区块后,从所述区块中提取出xi,并验证list
final
中是否存在且位置j是否对应当前分片的当前时隙,如果相等,则领导者身份合法,否则说明领导者身份不合法,丢弃所述区块。
25.可选地,在本技术的一个实施例中,所述在所选举的领导者出块后进行置换揭示和惩罚,包括:在该轮运行抽签的节点揭示自己选择的randi,且其他节点验证randi是否和承诺一致及置换的正确性,其中,若不正确,对不按规定运行协议的节点予以惩罚。
26.本技术第二方面实施例提供一种基于置换证明的多链领导者隐蔽分配装置,包括:建立模块,用于在时代e
m-2
之前,将e
m-2
完成抵押或将仍在抵押列表的节点集合进行表示,以使信标链对抵押成功的节点建立抵押金额表;初始化模块,用于基于所述抵押金额表,对选举参数进行初始化;出块模块,用于基于初始化后的选举参数进行混淆和置换,并使得领导者出块的同时附带身份证明;以及置换模块,用于验证出块人身份是否满足预设合法性,在所选举的领导者出块后进行置换揭示和惩罚。
27.可选地,在本技术的一个实施例中,所述初始化模块具体用于:在所述时代e
m-2
第一个slot,根据所述抵押金额表的用户节点数,随机选出k个节点并进行排序;k个节点运行秘密采样向所述信标链提交一个关于随机数的承诺;对成功参与抵押的节点公布该轮选举的系统参数。
28.可选地,在本技术的一个实施例中,所述基于初始化后的选举参数进行混淆和置换,包括:对于所述k个节点的每个节点,按编号顺序串行运行协议;在节点正确执行所述协议后,对选举列表执行预设操作的同时,给出关于shuffle中的置换证明,并广播本轮的计算结果及所述置换证明;验证上一个节点的置换证明是否正确,其中,如果不正确,则终止所述协议;所述时代e
m-1
节点i遍历listk,找到节点i是第j个领导者的二元组。
29.可选地,在本技术的一个实施例中,所述验证出块人身份是否满足预设合法性,包括:在其他节点收到区块后,从所述区块中提取出xi,并验证list
final
中是否存在且位置j是否对应当前分片的当前时隙,如果相等,则领导者身份合法,否则说明领导者身份不合法,丢弃所述区块。
30.可选地,在本技术的一个实施例中,所述在所选举的领导者出块后进行置换揭示和惩罚,包括:在该轮运行抽签的节点揭示自己选择的randi,且其他节点验证randi是否和承诺一致及置换的正确性,其中,若不正确,对不按规定运行协议的节点予以惩罚。
31.本技术实施例的基于置换证明的多链领导者隐蔽分配方法及装置,解决了多链架构下领导者身份的隐蔽和区块链的确定性出块不分叉之间的矛盾。在分片链领导者出块之前,其他节点无法确定分片链领导者的身份,而且同时可以保证分片链f领导者的身份的唯一性,不会在同一轮中出现2个或以上分片链的领导者,从而保证了区块链不分叉的性质。
32.本技术附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本技术的实践了解到。
附图说明
33.本技术上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
34.图1为根据本技术实施例提供的一种基于置换证明的多链领导者隐蔽分配方法的流程图;
35.图2为根据本技术实施例提供的一种基于置换证明的多链领导者隐蔽分配方法的实现系统示意图;
36.图3为根据本技术实施例提供的一种基于置换证明的多链领导者隐蔽分配装置的示例图。
具体实施方式
37.下面详细描述本技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本技术,而不能理解为对本技术的限制。
38.本技术的基于置换证明的多链领导者隐蔽分配方法主要解决以下问题:
39.(1)区块链出块之前领导者身份暴露导致的拒绝服务攻击问题。如果在区块链一轮的领导者在出块之前身份就已经被其他人所了解到的话,就可能会出现拒绝服务攻击,即攻击者对于领导者发起大量的连接请求,消耗的领导者的网络资源或者计算资源,迫使领导者暂时离线,使领导者无法出块,区块链网络卡死。
40.(2)区块链出块之前领导者身份暴露导致的贿赂攻击问题。领导者的身份在出块之前暴露,恶意节点可能通过贿赂领导者来使得区块的内容对自己有利,破坏区块链网络的公平性。
41.贿赂可以从改变交易顺序和审查交易两方面破坏区块链网络的安全性。
42.(3)区块带有的领导者身份证明的共识机制所产生的能源消耗以及分叉问题。pow类的共识机制会导致的巨大的能源消耗。而且概率性产生的领导者可能会出现同一轮中存在多个领导者的问题。这导致区块的内容需要等待一定的时间的才可以被确认,导致区块链系统的高延迟。
43.本技术的实施例进行如下假设:
44.系统为多链环境,由信标链和多个分片链构成,信标链主要用于确定参与领导者竞选的群体,同时所产生的区块负责锚定分片链的区块,起到同步的作用。第二层的分片链采用确定性共识,由信标链运行分配方法产生的分片链领导者打包交易出块,为正式区块。设系统中的分片链数量为z。
45.系统的运行分时代(epoch)进行,epoch具有从0开始的唯一的编号,使用ei表示第i个epoch。一个时代中存在s个时隙(slot),设信标链每个epoch中有s
beacon
个时隙,分片链中每个epoch有s
shard
个时隙,s
shard
=t*s
beacon
,(t为正整数)。每个分片在一个时隙内由分片领导者出一个区块。使用ski,pki分别表示第i个节点的私钥和公钥,在本系统中采用使用公钥来标识节点。系统的恶意节点数量为f,系统节点数量为v,经典拜占庭容错环境下恶意节点的比例小于1/3。可选地,业务链的时隙数可与分片链相等也可成倍数关系。
46.为提高系统安全性和鲁棒性,应随机指派委员会领导者并进行定期轮换。一般的随机数方案需在领导者出块前对其身份进行公示,此类方案安全性仍然不足,敌手仍可以在公示后出块前对领导者进行攻击或腐蚀;令外有些方案如algorand等采用vrf进行领导者随机指派,可以做到出块前有且仅有领导者知道自己的身份,然而vrf无法指定符合条件
的领导者数量,可能造成当前slot无人出块或多人出块造成分叉。
47.因此本技术的实施例要达到以下设计目标:
48.1、每次协议可一次性为多个分片安排多轮slot领导者;
49.2、每个slot出块前有且仅有领导者知道自己的身份;
50.3、每个slot有且仅有一个领导者出块。
51.具体而言,图1为本技术实施例所提供的一种基于置换证明的多链领导者隐蔽分配方法的流程示意图。
52.如图1所示,该基于置换证明的多链领导者隐蔽分配方法包括以下步骤:
53.在步骤s101中,在时代e
m-2
之前,将e
m-2
完成抵押或将仍在抵押列表的节点集合进行表示,以使信标链对抵押成功的节点建立抵押金额表。
54.以分片链em中的各个slot的领导者选取为例进行说明。
55.在时代e
m-2
之前,参与em中的各个slot的领导者,将e
m-2
完成抵押或仍在抵押列表的节点集合表示为stake
m-2
。信标链在对抵押成功节点的建立抵押金额表,在抵押金额表中的节点为成功注册的用户节点。
56.在步骤s102中,基于抵押金额表,对选举参数进行初始化。
57.可选地,在本技术的一个实施例中,对选举参数进行初始化,包括:在时代e
m-2
第一个slot,根据抵押金额表的用户节点数,随机选出k个节点并进行排序;k个节点运行秘密采样向信标链提交一个关于随机数的承诺;对成功参与抵押的节点公布该轮选举的系统参数。
58.在时代e
m-2
第一个slot,抵押金额表的用户节点数即参与选举的节点数为n,信标链随机选出k个节点并进行排序,这k个节点为负责运行秘密采样的节点,k也代表了秘密抽签所需运行的轮数,需要满足(f/v)k《∈,∈是可忽略的概率值,以保证选举过程至少存在一个诚实节点。信标链对运行秘密抽签的k个用户进行排序,序号为1~k。
59.k个节点运行秘密采样需要向信标链提交一个关于随机数的承诺,该随机数用于之后指定置换,设第i个节点选择伪随机数randi,以形式承诺上链,h为事先给定的哈希函数,信标链采用公钥验证后上链。
60.之后信标链对成功参与抵押的节点公布该轮选举的系统参数,参数包含一个随机的大素数p,modp的原根g,参与竞选的用户i选择一次性私钥xi,计算一次性公钥信标链依照提交一次性公钥顺序初始化选举列表:
61.list0=((g,y0),(g,y1),

,(g,y
n-1
))=(s
0,0
,s
1,0
,

,s
n-1,0
)。
62.在步骤s103中,基于初始化后的选举参数进行混淆和置换,并使得领导者出块的同时附带身份证明。
63.可选地,在本技术的一个实施例中,基于初始化后的选举参数进行混淆和置换,包括:对于k个节点的每个节点,按编号顺序串行运行协议;在节点正确执行协议后,对选举列表执行预设操作的同时,给出关于shuffle中的置换证明,并广播本轮的计算结果及置换证明;验证上一个节点的置换证明是否正确,其中,如果不正确,则终止协议;时代e
m-1
节点i遍历listk,找到节点i是第j个领导者的二元组。
64.其中,只要在选举之前确定各个采样节点对shuffle的操作即可,不限于本技术实施例的方式。
65.首先,k个节点按编号顺序串行运行协议,如上一轮节点正确执行协议,第i个节点对选举列表:
66.list
i-1
=(s
0,i-1
,s
1,i-1
,

,s
n-1,i-1
)
67.进行如下操作:
68.a.第i个节点用事先承诺的随机数randi,由vrf(randi)带入shuffle中计算出确定的置换πi;
69.b.对元组list
i-1
进行置换,得到list
temp
=πi(list
i-1
)。
70.c.选择随机数序列(r0,r1,..r
n-1
),对元组list
temp
进行混淆(在shuffle中为加密),得到密文:
[0071][0072]
同时给出关于shuffle中的置换证明nizki,该零知识证明可确保在非交互的情况下保证置换的秘密性和新的密文中选票未被篡改或丢弃。
[0073]
为减小置换证明开销,节点可以采用vrf(randi)modq的方式仅对同余位置的二元组运行计算出的置换,置换证明的大小仅为原来的1/q。为缩减置换证明开销也可用其他方法,不一定采用同余分配的形式。
[0074]
d.广播本轮的计算结果及置换证明(listi,nizki)。
[0075]
其次,第i(i≥2)个节点验证上一个节点所发出的置换证明的正确性,若不正确则终止协议并举报。时代e
m-1
节点i遍历listk,找到二元组s
j,k
=(s
j,k
[0],s
j,k
[1]),使得则说明节点i是第j个领导者,节点i所处的分片编号为shardi=jmodz,节点i的所处时隙编号为
[0076]
在时代em中,对于节点i来说,如果存在一个位置j使得置换结果的第j个位置可由自己的xi解密,则由d中的计算方式确定自己所属的分片号和时隙号,并在对应分片的对应时隙打包交易并生成区块b,同时在b中附上自己的xi。
[0077]
在步骤s104中,验证出块人身份是否满足预设合法性,在所选举的领导者出块后进行置换揭示和惩罚。
[0078]
可选地,在本技术的一个实施例中,验证出块人身份是否满足预设合法性,包括:在其他节点收到区块后,从区块中提取出xi,并验证list
final
中是否存在且位置j是否对应当前分片的当前时隙,如果相等,则领导者身份合法,否则说明领导者身份不合法,丢弃区块。
[0079]
可选地,在本技术的一个实施例中,在所选举的领导者出块后进行置换揭示和惩罚,包括:在该轮运行抽签的节点揭示自己选择的randi,且其他节点验证randi是否和承诺一致及置换的正确性,其中,若不正确,对不按规定运行协议的节点予以惩罚。如禁止参与选举或扣除现有抵押等。
[0080]
下面介绍一种多链区块链领导者隐蔽选举方法的实现系统,如图2所示,包括注册模块,参数初始化模块,采样模块,洗牌模块,区块生成模块,区块验证与置换揭示模块。
[0081]
a.注册模块
[0082]
注册模块初始化一个抵押金额空表,当收到一个注册的请求时,进行以下操作。
[0083]
1)验证节点是否还在抵押中,如是,则不需要再进行注册;
[0084]
2)验证抵押金额是否高于节点的余额,如果抵押的金额高于节点的余额,则将请求标记为失败;
[0085]
3)验证抵押金额是否低于的设定的最低抵押阈值,如果低于,说明抵押金额过少,将请求标记为失败;
[0086]
4)在节点的余额中扣除抵押金额,将节点和抵押金额写入表中,将请求标记为成功。
[0087]
当收到一个撤回抵押的请求时,进行以下操作:
[0088]
1)判断节点是否在表中,如不在,说明节点没有抵押,将请求标记为失败;
[0089]
2)读取节点的抵押的金额,判断节点抵押是否已过有效期,即该轮抵押对应的时代选举是否已经结束,若未结束,将请求标记为失败;
[0090]
3)若抵押出块已结束,将节点和抵押金额从表中删除,将抵押金额加到节点账户余额中,并将请求标记为已完成。
[0091]
b.参数初始化模块
[0092]
参数初始化模块用于对设定选举所需的密码学参数以及建立选举初始化列表:
[0093]
1)参数初始化开始于每个epoch的第一个slot,信标链委员会生成(p,g)二元组并进行广播;
[0094]
2)信标链选择的k个节点按顺序编号,第i个节点选择randi,以发给信标链,信标链验证签名后上链。若签名不通过,指定其他节点代替该节点运行采样;
[0095]
3)节点收到(p,g)后,验证自己是否已在抵押表中,若没有,流程终止,在抵押表的节点i选择一次性私钥xi,并计算一次性公钥返回给信标链
[0096]
4)信标链收到yi后,采用公钥对签名验证,通过验证后再验证是否在抵押表中,若不在抵押表中或已经收到过同一个节点的一次性公钥,附加到区块中并标记为无效,若在抵押表中,附加到区块中。下一个slot的信标链区块中应包含之前收集到的所有yi;
[0097]
5)若当前slot信标链已收集到足够数量的yi,则生成选举初始化列表并广播:
[0098]
list0=((g,y0),(g,y1),

,(g,y
n-1
))=(s
0,0
,s
1,0
,

,s
n-1,0
);
[0099]
6)若运行采样的节点编号为1,收到list0后进入采样模块工作。
[0100]
c.采样模块
[0101]
采样模块用于对参与竞选的节点进行混淆与置换。运行秘密采样的节点已按1~k进行编号;
[0102]
1)编号为i的节点(除第一个节点)收到(list
i-1
,nizk
i-1
)检查nizki,若未通过验证,终止协议并举报;
[0103]
2)编号为i的节点将事先承诺的randi代入vrf中得vrf(randi),将该结果代入shuffle中计算置换顺序;
[0104]
3)编号为i的节点选择随机数序列对置换过的序列list
temp
进行混淆,并给出(listi,nizki)检查,nizki在非交互情况下保证了置换顺序和混淆后信息未被篡改。
[0105]
d.洗牌模块
[0106]
洗牌模块中内置了一种给定的shuffle方法,该shuffle方法可以为任意包含nizk的shuffle方法。洗牌模块中,任意一种论文中给出的线性复杂度的shuffle均可,只要该
shuffle可以给出置换与混淆后的零知识证明。
[0107]
e.区块生成模块
[0108]
区块生成模块用于产生分片链的区块,同时附加了领导者身份认证功能和信标链同步功能。
[0109]
通过竞选并计算出分片编号和时隙编号的节点i在该位置打包交易,并生成区块,区块中附加的信息为节点在竞选时选择的一次性私钥xi以及在10个slot之前对应的信标链区块哈希,以实现同步。
[0110]
f.区块验证与置换揭示模块
[0111]
区块验证模块用于领导者身份验证。
[0112]
1)位于分片链和某个时隙的节点收到当前领导者发出的区块后,提取出xi并带回list
final
中验证领导者的合法性,若验证不通过,丢弃区块;
[0113]
2)通过验证领导者身份后验证区块内容,不正确则丢弃区块,正确则执行区块内容;
[0114]
3)该轮选举产生的领导者完成出块工作后运行秘密采样的节点公布randi,其他节点验证承诺并代入shuffle中计算,以验证运行秘密采样的节点是否诚实置换,若未按规定置换,则举报,被举报的节点之后被剥夺抵押和参与选举的权利。
[0115]
根据本技术实施例提出的基于置换证明的多链领导者隐蔽分配方法,可以解决区块链在出块之前领导者的身份隐藏和区块链确定性出块不分叉之间的矛盾,利用代币抵押进行注册的方式解决了区块链中的女巫攻击问题,采用信标链公布初始化参数解决离散对数问题中公共参数不可信的问题,同时不依赖各个节点交互产生时代随机性,本地产生的随机数在选举列表未出现前无法知道shuffle之后的结果,多轮采样确保有诚实节点进行采样。同时与置换证明技术相结合使得采样者无法操纵置换顺序。应用于区块链系统中,可以实现多链环境下领导者的隐蔽分配,领导者出块前其他节点无法知晓身份,避免由于领导者身份过早暴露出现的拒绝服务攻击和贿赂攻击,同时所产生的的分片链领导者唯一,避免了分片链中区块分叉的问题。同时置换证明事后揭示的方式使得恶意节点操作选举不可行且代价大,鼓励节点诚实工作。
[0116]
其次参照附图描述根据本技术实施例提出的基于置换证明的多链领导者隐蔽分配装置。
[0117]
图3为根据本技术实施例的基于置换证明的多链领导者隐蔽分配装置的示例图。
[0118]
如图3所示,该基于置换证明的多链领导者隐蔽分配装置10包括:建立模块100、初始化模块200、出块模块300和置换模块400。
[0119]
其中,建立模块100,用于在时代e
m-2
之前,将e
m-2
完成抵押或将仍在抵押列表的节点集合进行表示,以使信标链对抵押成功的节点建立抵押金额表。初始化模块200,用于基于抵押金额表,对选举参数进行初始化。出块模块300,用于基于初始化后的选举参数进行混淆和置换,并使得领导者出块的同时附带身份证明。置换模块400,用于验证出块人身份是否满足预设合法性,在所选举的领导者出块后进行置换揭示和惩罚。
[0120]
可选地,在本技术的一个实施例中,初始化模块200具体用于:在时代e
m-2
第一个slot,根据抵押金额表的用户节点数,随机选出k个节点并进行排序;k个节点运行秘密采样向信标链提交一个关于随机数的承诺;对成功参与抵押的节点公布该轮选举的系统参数。
[0121]
可选地,在本技术的一个实施例中,基于初始化后的选举参数进行混淆和置换,包括:对于k个节点的每个节点,按编号顺序串行运行协议;在节点正确执行协议后,对选举列表执行预设操作的同时,给出关于shuffle中的置换证明,并广播本轮的计算结果及置换证明;验证上一个节点的置换证明是否正确,其中,如果不正确,则终止协议;时代e
m-1
节点i遍历listk,找到节点i是第j个领导者的二元组。
[0122]
可选地,在本技术的一个实施例中,验证出块人身份是否满足预设合法性,包括:在其他节点收到区块后,从区块中提取出xi,并验证list
final
中是否存在且位置j是否对应当前分片的当前时隙,如果相等,则领导者身份合法,否则说明领导者身份不合法,丢弃区块。
[0123]
可选地,在本技术的一个实施例中,在所选举的领导者出块后进行置换揭示和惩罚,包括:在该轮运行抽签的节点揭示自己选择的randi,且其他节点验证randi是否和承诺一致及置换的正确性,其中,若不正确,对不按规定运行协议的节点予以惩罚。
[0124]
需要说明的是,前述对基于置换证明的多链领导者隐蔽分配方法实施例的解释说明也适用于该实施例的基于置换证明的多链领导者隐蔽分配装置,此处不再赘述。
[0125]
根据本技术实施例提出的基于置换证明的多链领导者隐蔽分配装置,可以解决区块链在出块之前领导者的身份隐藏和区块链确定性出块不分叉之间的矛盾,利用代币抵押进行注册的方式解决了区块链中的女巫攻击问题,采用信标链公布初始化参数解决离散对数问题中公共参数不可信的问题,同时不依赖各个节点交互产生时代随机性,本地产生的随机数在选举列表未出现前无法知道shuffle之后的结果,多轮采样确保有诚实节点进行采样。同时与置换证明技术相结合使得采样者无法操纵置换顺序。应用于区块链系统中,可以实现多链环境下领导者的隐蔽分配,领导者出块前其他节点无法知晓身份,避免由于领导者身份过早暴露出现的拒绝服务攻击和贿赂攻击,同时所产生的的分片链领导者唯一,避免了分片链中区块分叉的问题。同时置换证明事后揭示的方式使得恶意节点操作选举不可行且代价大,鼓励节点诚实工作。
[0126]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本技术的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或n个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0127]
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本技术的描述中,“n个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1