一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

分片区块链安全跨片视图转换方法及装置与流程

2022-03-05 09:16:48 来源:中国专利 TAG:


1.本技术涉及信息安全技术领域,特别涉及一种分片区块链安全跨片视图转换方法及装置。


背景技术:

2.区块链技术结合了密码学、分布式系统、计算机科学和其他技术,在不可信环境中建立公开、可信的账本。区块链具有的透明性、不可篡改性、去中心化和隐私保护特性使其在众多领域,如物联网、金融、供应链、电子商务、电子政务、数字医疗等,拥有非常广泛深入的应用价值。
3.区块链共识机制从基础上决定了整个区块链系统的安全性和性能表现。区块链共识机制通过某些既定的规则约束网络中参与节点的行为,所有参与节点通过相互通信、计算实现对区块链的一致视图,并将其存储在本地。目前的区块链共识机制主要可以分为基于工作量证明的区块链共识机制、基于权益的区块链共识机制、采用单一委员会的区块链共识机制、分片区块链共识机制等。区块链共识机制通常需要满足两个重要特性,即一致性和活性。一致性指的是所有诚实节点对账本的视图完全相同。一致性又可以分为两种,弱一致性和强一致性。弱一致性指的是需要去除掉区块链末尾一定数量的区块才能得到诚实节点的一致视图,即诚实节点对区块链末尾区块的视图可能存在不同,去除掉末尾一定数量的区块得到的通常被称为稳定区块。而强一致性指的是不需要去除任何末尾区块,诚实节点对整个区块链的视图完全相同。活性指的是用户上传的交易在经过一段时间之后一定会被区块链系统处理,这里的处理指的是接受或拒绝。合法的交易在一段时间后会被所有诚实节点接受,并且出现在区块链上。交易从被用户提交到出现在区块链稳定区块上的时间通常被成为交易确认时间。而整个区块链系统每单位时间(通常以每秒计算)内能够处理的交易数量被称为交易吞吐量。交易吞吐量和交易确认时间是评价区块链系统性能的重要指标,区块链要实现大规模深入应用,就必须要设计并实现高交易吞吐量、低交易确认时间的区块链共识机制。
4.分片区块链在提升交易吞吐量、降低交易确认时间方面有很大的潜力。分片区块链结合了数据库领域的分片技术和区块链技术,实现了通信、计算和存储分片。通信分片指的是网络中参与协议的节点被划分为不同的片区,每个片区节点通常只需要进行片内通信;计算分片指的是网络中的交易或事务被分配到不同分片,分片节点通常只需要处理片内交易;存储分片指的是分片节点只需要维护、存储该分片对应的区块链。分片区块链能够实现交易处理能力的可扩展性,当网络中节点数量增加时,可以通过增加分片数量的方式,提升整个网络的交易处理能力。完整的分片区块链包括多个组成部分,如分片成员选择、随机数生成、片内共识算法、跨片通信、分片重配置等。其中片内共识算法和跨片通信是最基本的部分。
5.在每个分片内部,需要片内共识算法来处理不同类型的提议。片内共识算法以拜占庭容错类型算法为代表,能够实现强一致性特性。强一致性指的是交易一旦出现在区块
链上,则可以被大概率认定为合法交易,无需等待区块到达一定的深度。而在不同的分片之间,需要某种跨片通信方式来处理跨片交易。跨片交易指的是交易输入被超过一个分片管理的交易。在分片区块链中,跨片交易的数量通常占据很大的比例。
6.目前大多数跨片交易处理方式都是基于两阶段承诺协议。该协议包含准备阶段和承诺阶段。首先,客户端上传交易至所有相关分片,交易输入所在的分片通常被称为输入分片,与此对应,交易输出所在的分片通常被称为输出分片。在准备阶段,所有输入分片需要运行片内共识算法产生证明,证明交易输入是可用的。该证明通常为成为输入可用性证明。输入分片在此时将可用的输入进行锁定,以防止其他交易对其花费,阻止双花攻击。接下来,输入分片将生成的输入可用性证明发送给每个相关的分片,包括输入分片和输出分片。在承诺阶段,在收到该交易所有相关的可用性证明后,分片可以判断该交易是否合法。如果该交易所有输入都是可用的,那么交易是合法的。如果交易的一个或一个以上输入是不可用的,那么交易是非法的。对于合法交易,输出分片运行片内共识算法将交易写入到输出分片区块链。同样,输入分片需要运行片内共识算法确认交易合法性,将合法交易的输入进行花费。对于非法交易,输出分片拒绝交易;输入分片将之前锁定的输入进行解锁,以便后续交易的使用。
7.在两阶段承诺协议中,分片之间交易输入可用性的传输是非常重要的。通常情况下,可信的协调者负责分片之间信息传输。在实际中,协调者的工作不能被所有分片成员承担,因为那样就违背了通信分片的原则,降低了系统的可扩展性。因此,通常是每个分片的领导者扮演协调者的角色,在这种情况下,协调者可能会有恶意行为。研究跨片交易中领导者可能发起的攻击以及防止该攻击的方法,是分片区块链需要解决的重要问题。


技术实现要素:

8.本技术旨在至少在一定程度上解决相关技术中的技术问题之一。
9.为此,本技术的第一目的在于提出一种分片区块链安全跨片视图转换方法。
10.本技术的第二个目的在于提出一种分片区块链安全跨片视图转换装置。
11.本技术的第三个目的在于提出一种电子设备。
12.本技术的第四个目的在于提出一种非临时性计算机可读存储介质。
13.为达到上述目的,本技术第一方面实施例提供一种分片区块链安全跨片视图转换方法,方法用于分片区块链领导者替换,其中,所述方法包括以下步骤:分别对系统模型、分片成员和领导者、分片内共识算法进行确认,完成初始化过程;通过拜占庭容错算法生成任一个输入分片领导者恶意行为的跨片视图转换证明;在恶意领导者所在输入分片成员收到所述跨片视图转换证明后,通过分片内拜占庭容错算法进行视图转换,将恶意领导者替换,并通过主动视图转换防止自身分片领导者审查交易。
14.可选地,在本技术的实施例中,所述分别对系统模型、分片成员和领导者、分片内共识算法进行确认,完成初始化过程,包括:确认分片区块链网络模型和敌手模型,其中,敌手算力不超过预设安全阈值;确认分片成员和分片领导者,其中,所述分片成员的身份由认证机构颁发,且所述分片成员每隔预设时长进行更新,并通过轮转的方式担任分片领导者;确认分片内共识算法,其中,所述分片内采用实用拜占庭容错算法,使得所述分片领导者将提议广播给分片成员,所述分片成员进行本地验证后,进行投票。
15.可选地,在本技术的实施例中,所述通过拜占庭容错算法生成任一个输入分片领导者恶意行为的跨片视图转换证明,包括:在用户上传交易至相关分片成员后,输入分片成员运行拜占庭容错算法判断该交易在当前分片的输入是否可用,并生成可用性证明给其他相关分片,且输出分片成员检查是否收到所有分片的可用性证明,完成两阶段承诺-准备;对未发送可用性证明的相关分片,输出分片领导者构建跨片视图转换消息并签名,在本分片内进行广播,对未提议跨片转换的领导者,输出分片成员发起片内视图转换,完成跨片视图转换-提议;由所述输出分片成员对未发送可用性证明的相关分片的领导者发送可用性证明请求,其中,若仍未收到,则视为恶意领导者,投票支持跨片视图转换,否则进行两阶段承诺准备,完成输入可用性证明请求;由所述输出分片领导者收集投票构建跨片视图转换承诺证明,完成拜占庭算法-承诺。
16.可选地,在本技术的实施例中,所述在恶意领导者所在输入分片成员收到所述跨片视图转换证明后,通过分片内拜占庭容错算法进行视图转换,将恶意领导者替换,并通过主动视图转换防止自身分片领导者审查交易,包括:由所述输出分片领导者将证明发给相关输入分片成员,其中,所述输入分片成员验证合法性,若验证通过,则发起片内视图转换替换领导者,完成跨片视图转换证明传输;由所述输入分片成员构建视图转换确认消息,并发送给新领导者,其中,输入分片新领导者收集确认消息构建新视图消息,并在片内广播进入下一个视图,完成跨片视图转换;在两阶段承诺协议准备阶段,所述输入分片成员进行片内视图转换替换未发起提议领导者,且在两阶段承诺协议承诺阶段,所述输入分片成员进行片内视图转换替换未发送解锁或花费交易的领导者,以及所述输出分片成员进行片内视图转换替换未发送接受或拒绝证明的领导者,完成分片内主动视图转换。
17.为达到上述目的,本技术第二方面实施例提供一种分片区块链安全跨片视图转换装置,用于分片区块链领导者替换,其中,所述装置包括:初始化模块,用于分别对系统模型、分片成员和领导者、分片内共识算法进行确认,完成初始化过程;跨片视图转换证明生成模块,用于通过拜占庭容错算法生成任一个输入分片领导者恶意行为的跨片视图转换证明;跨片视图转换模块,用于在恶意领导者所在输入分片成员收到所述跨片视图转换证明后,通过分片内拜占庭容错算法进行视图转换,将恶意领导者替换,并通过主动视图转换防止自身分片领导者审查交易。
18.可选地,在本技术的实施例中,所述始化过程模块,具体用于,包括:确认分片区块链网络模型和敌手模型,其中,敌手算力不超过预设安全阈值;确认分片成员和分片领导者,其中,所述分片成员的身份由认证机构颁发,且所述分片成员每隔预设时长进行更新,并通过轮转的方式担任分片领导者;确认分片内共识算法,其中,所述分片内采用实用拜占庭容错算法,使得所述分片领导者将提议广播给分片成员,所述分片成员进行本地验证后,进行投票。
19.可选地,在本技术的实施例中,所述跨片视图转换证明生成模块,具体用于,在用户上传交易至相关分片成员后,输入分片成员运行拜占庭容错算法判断该交易在当前分片的输入是否可用,并生成可用性证明给其他相关分片,且输出分片成员检查是否收到所有分片的可用性证明,完成两阶段承诺-准备;对未发送可用性证明的相关分片,输出分片领导者构建跨片视图转换消息并签名,在本分片内进行广播,对未提议跨片转换的领导者,输出分片成员发起片内视图转换,完成跨片视图转换-提议;由所述输出分片成员对未发送可
用性证明的相关分片的领导者发送可用性证明请求,其中,若仍未收到,则视为恶意领导者,投票支持跨片视图转换,否则进行两阶段承诺准备,完成输入可用性证明请求;由所述输出分片领导者收集投票构建跨片视图转换承诺证明,完成拜占庭算法-承诺。
20.可选地,在本技术的实施例中,所述跨片视图转换模块,具体用于,由所述输出分片领导者将证明发给相关输入分片成员,其中,所述输入分片成员验证合法性,若验证通过,则发起片内视图转换替换领导者,完成跨片视图转换证明传输;由所述输入分片成员构建视图转换确认消息,并发送给新领导者,其中,输入分片新领导者收集确认消息构建新视图消息,并在片内广播进入下一个视图,完成跨片视图转换;在两阶段承诺协议准备阶段,所述输入分片成员进行片内视图转换替换未发起提议领导者,且在两阶段承诺协议承诺阶段,所述输入分片成员进行片内视图转换替换未发送解锁或花费交易的领导者,以及所述输出分片成员进行片内视图转换替换未发送接受或拒绝证明的领导者,完成分片内主动视图转换。
21.为达到上述目的,本技术第三方面实施例提供一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被设置为用于执行如上述实施例所述的分片区块链安全跨片视图转换方法。
22.为达到上述目的,本技术第四方面实施例提供一种非临时性计算机可读存储介质,所述非临时性计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上述实施例所述的分片区块链安全跨片视图转换方法。
23.本技术实施例的分片区块链安全跨片视图转换方法及装置,具有以下有益效果:
24.1),能够抵抗跨片交易审查攻击。当某个输入分片领导者在其所在分片内行为诚实,而在分片间进行恶意行为,该分片领导者不会被检举和替代。当输入分片领导者收到某个交易,它运行拜占庭容错算法产生该交易输入的可用性证明,却并不将该证明发送给相应分片,此种行为被称为跨片交易审查。在此情况下,恶意分片领导者在分片内行为诚实,所以分片内成员并不会察觉其在分片间的恶意行为,因此也不会发起视图转换替换掉该领导者。恶意领导者可以不处理一些交易,破坏系统活性。通过跨片视图转换技术能够替换掉恶意领导者。
25.2),提出的跨片视图转换技术能够确保系统的活性。当领导者在分片之间行为恶意,即不将输入可用性证明提供给其他相关分片,其他相关分片的成员可以共同产生关于该领导者恶意行为的证明,并将其发送给该领导者对应分片成员,分片成员验证证明的合法性,并发起片内视图转换将恶意领导者替换。在此基础上,系统中用户上传的交易在一定时间之后一定会被处理,确保了系统的活性。
26.3),能够确保分片区块链系统一致性。每个分片内委员会通过运行拜占庭容错算法产生交易输入可用性证明、领导者恶意行为证明,并且将合法交易写入到区块链中,只要每个分片委员会成员中诚实节点数量占比超过安全阈值(通常是2/3或1/2,由不同网络模型的拜占庭算法决定),就能确保每个分片产生的区块链具有一致性,且多个分片产生的区块链不会冲突,保证整个分片区块链系统的一致性。
27.本技术附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本技术的实践了解到。
附图说明
28.本技术上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
29.图1为根据本技术实施例提供的一种分片区块链安全跨片视图转换方法的流程图;
30.图2为根据本技术实施例提供的一种分片区块链安全跨片视图转换方法执行逻辑图;
31.图3为根据本技术实施例提供的一种采用聚合签名技术的实用拜占庭容错算法流程图;
32.图4为根据本技术实施例提供的一种跨片视图转换流程图;
33.图5为根据本技术实施例提供的一种主动视图转换流程图;
34.图6为根据本技术实施例的分片区块链安全跨片视图转换装置的示例图;
35.图7为本技术实施例提供的电子设备的结构示意图;
36.附图标记:初始化模块-100、跨片视图转换证明生成模块-200、跨片视图转换模块-300、存储器-701、处理器-702和通信接口-703。
具体实施方式
37.下面详细描述本技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本技术,而不能理解为对本技术的限制。
38.在介绍本技术的具体方案之前首先对本技术中的名词进行解释。
39.本技术结合了拜占庭容错算法和分片区块链技术,本技术的方案中包含四种实体:(1)用户(user):用户根据自身需要生成交易,并将其发送给交易相关的分片成员。用户能够根据区块链上的信息确认交易的合法性。(2)分片(shard):分片区块链参与成员被划分到不同的分片,每个分片负责维护各自的区块链,系统中共包含m个分片。(3)分片成员(shard members):每个分片内包含u个成员,分片成员在分片内运行拜占庭容错算法处理提议,提议类型可能为交易或交易输入可用性证明等。分片成员可能是诚实的,也可能是恶意的。(4)分片领导者(shard leader):分片领导者即分片内拜占庭容错算法的领导者,负责在每一轮中发起待处理的提议,并且根据拜占庭容错算法的具体要求,收集分片成员的消息并进行运算,通过聚合签名等方法生成每一轮的证明。与此同时,分片领导者作为分片之间通信的协调者,负责分片间消息的转发,分片间消息主要是交易输入可用性证明。
40.为了确保在某个分片领导者出现恶意行为时,能够通过分片视图转换将恶意领导者替换,确保系统处理交易的活性,本技术将整个过程分为三个阶段。第一阶段为初始化阶段,包括系统模型确认、分片成员和领导者确认、分片内共识算法确认。
41.阶段一包括:步骤1:系统模型确认:确认网络模型,假设为同步网络。确认敌手模型,敌手算力不超过安全阈值。步骤2:分片成员和分片领导者确认:分片成员的身份由统一的ca颁发。分片成员定期更新,通过轮转的方式担任分片领导者。步骤3:分片内共识算法确认:分片内采用实用拜占庭容错算法,分片领导者将提议广播给分片成员,分片成员本地验证,进行投票。
42.第二阶段为跨片视图转换证明生成阶段,包括两阶段承诺-准备、跨片视图转换-提议、输入可用性证明请求、拜占庭算法-承诺步骤,交易输出分片通过拜占庭容错算法生成某个输入分片领导者恶意行为的跨片视图转换证明。
43.阶段二包括:步骤4:两阶段承诺-准备:用户上传交易至相关分片成员,输入分片检查并生成ac给其他相关分片,输出分片成员检查是否收到所有分片的ac。步骤5:跨片视图转换-提议:对未发送ac的相关分片,输出分片领导者构建跨片视图转换消息并签名,在本分片内进行广播。对未提议跨片转换的领导者,输出分片成员发起片内视图转换。步骤6:输入可用性证明请求:输出分片成员对未发送ac的相关分片的领导者发送ac请求,若仍未收到,则视为恶意领导者,投票支持跨片视图转换;否则,进行两阶段承诺准备。步骤7:拜占庭算法-承诺:输出分片领导者收集投票构建跨片视图转换承诺证明。
44.第三阶段为跨片视图转换阶段,包括跨片视图转换证明传输、跨片视图转换、分片内主动视图转换。恶意领导者所在输入分片成员收到合法跨片视图转换证明后,通过分片内拜占庭容错算法视图转换将恶意领导者替换,并通过主动视图转换防止自身分片领导者审查交易。
45.阶段三包括:步骤8:跨片视图转换证明传输:输出分片领导者将证明发给相关输入分片成员。输入分片成员验证合法性,若验证通过,发起片内视图转换替换领导者。步骤9:跨片视图转换:输入分片成员构建视图转换确认消息并发送给新领导者。输入分片新领导者收集确认消息构建新视图消息并在片内广播进入下一个视图。步骤10:分片内主动视图转换:两阶段承诺协议准备阶段,输入分片成员进行片内视图转换替换未发起提议领导者。两阶段承诺协议承诺阶段,输入分片成员进行片内视图转换替换未发送解锁或花费交易的领导者。输出分片成员进行片内视图转换替换未发送接受或拒绝证明的领导者。
46.下面对本技术的方案进行详细介绍。
47.图1为根据本技术实施例提供的一种分片区块链安全跨片视图转换方法的流程图。
48.如图1所示,该分片区块链安全跨片视图转换方法,用于分片区块链领导者替换,包括以下步骤:
49.在步骤s1中,分别对系统模型、分片成员和领导者、分片内共识算法进行确认,完成初始化过程。
50.在本技术的实施例中,分别对系统模型、分片成员和领导者、分片内共识算法进行确认,完成初始化过程,包括:确认分片区块链网络模型和敌手模型,其中,敌手算力不超过预设安全阈值;确认分片成员和分片领导者,其中,分片成员的身份由认证机构颁发,且分片成员每隔预设时长进行更新,并通过轮转的方式担任分片领导者;确认分片内共识算法,其中,分片内采用实用拜占庭容错算法,使得分片领导者将提议广播给分片成员,分片成员进行本地验证后,进行投票。
51.具体地,本技术在初始化过程中,包括三步,系统模型确认、分片成员和分片领导者确认、分片内共识算法确认,具体为:
52.步骤1:系统模型确认:首先需要确认分片区块链网络模型。网络模型决定了网络中消息传输方式,本分片区块链系统采用同步网络模型,网络中消息以轮的形式传输。与此同时,系统模型还包括敌手模型,对敌手算力进行限制。敌手算力不能超过一定的阈值。在
每个分片内部,恶意节点由敌手控制,敌手控制的恶意节点数量与分片总节点数量比值不能超过某个安全阈值,以保证分片内共识算法的安全性。
53.步骤2:分片成员和分片领导者确认。需确认系统包括的分片数量,每个分片的成员需要通过身份认证方式确认其身份,由统一的机构为其颁发认证的公钥。每个分片内需要采用一定的方式选择出分片领导者。分片领导者用来在分片内共识中发起提议、收集消息、计算签名等。
54.步骤3:分片内共识算法确认。每个分片需要运行一定的状态机复制算法来处理不同类型的提议。分片内采用实用拜占庭容错算法处理交易和交易输入可用性等。实用拜占庭容错算法满足一致性和活性。一致性指的是诚实成员对区块链的视图能够保持一致,活性指的是用户上传的交易在经过一定时间之后一定会被处理。
55.在步骤s2中,通过拜占庭容错算法生成任一个输入分片领导者恶意行为的跨片视图转换证明。
56.在本技术的实施例中,通过拜占庭容错算法生成任一个输入分片领导者恶意行为的跨片视图转换证明,包括:在用户上传交易至相关分片成员后,输入分片成员运行拜占庭容错算法判断该交易在当前分片的输入是否可用,并生成可用性证明给其他相关分片,且输出分片成员检查是否收到所有分片的可用性证明,完成两阶段承诺-准备;对未发送可用性证明的相关分片,输出分片领导者构建跨片视图转换消息并签名,在本分片内进行广播,对未提议跨片转换的领导者,输出分片成员发起片内视图转换,完成跨片视图转换-提议;由输出分片成员对未发送可用性证明的相关分片的领导者发送可用性证明请求,其中,若仍未收到,则视为恶意领导者,投票支持跨片视图转换,否则进行两阶段承诺准备,完成输入可用性证明请求;由输出分片领导者收集投票构建跨片视图转换承诺证明,完成拜占庭算法-承诺。
57.具体地,跨片视图转换证明生成包括四个步骤:交易输出分片成员通过两阶段承诺-准备、跨片视图转换-提议和输入可用性证明请求,运行拜占庭容错算法生成某个输入分片领导者恶意行为的证明。具体为:
58.步骤4:两阶段承诺-准备:用户上传交易tx至相关分片的成员。交易tx的输入分片为s1,s2,输出分片为s3。作为交易tx的输入分片,输入分片成员运行拜占庭容错算法判断该交易在当前分片的输入是否可用,并且生成可用性证明ac,将ac发送给所有其他相关分片,包括输入和输出分片。ac包含了交易tx输入是否可用的信息和其证明。在时间t
bft
δ之后,每个相关分片都应当收到相应的ac,如果此时输出分片的成员并没有收到某个分片的可用性证明,则认定该分片领导者进行了跨片交易审查攻击,需发起跨片视图转换操作将该领导者替换。
59.步骤5:跨片视图转换-提议:作为输出分片sc的诚实领导者lc,如果在收到交易tx时间t
bft
δ之后,没有收到来自分片sc′
的交易输入可用性证明ac,那么领导者lc构建跨片视图转换消息m
csvc
,并对其进行签名得到《m
csvc
》。领导者lc将签名后的消息《m
csvc
》在当前分片sc内广播。作为输出分片的诚实成员,如果在收到交易tx之后的t
bft
2δ时间,没有从当前领导者lc收到关于交易tx的跨片视图转换消息,那么诚实成员将发起分片内视图转换操作,即拜占庭容错算法中的视图转换,来替换当前分片sc的领导者。
60.步骤6:输入可用性证明请求:作为分片sc的成员,收到有效的跨片视图转换消息mcsvc
之后,向分片sc′
的领导者lc′
发送请求,要求其返回关于交易tx的输入可用性证明ac。在2δ时间后,如果仍然没有从lc′
收到ac,则视lc′
为恶意领导者,该分片成员投票支持跨片视图转换。否则,即领导者lc′
发送了交易tx的可用性证明ac,分片成员在分片内广播ac,通过正常的两阶段承诺协议来处理交易tx。
61.步骤7:拜占庭算法-承诺:如果在步骤6中,分片sc的成员在2δ时间内没有从领导者lc′
收到有效的响应,该成员在拜占庭算法中对视图转换消息m
csvc
进行准备投票和承诺投票。在两轮投票后,分片领导者lc能够收集到2f 1个有效的投票《m
vote
》,并且利用这些投票信息构建跨片视图转换承诺证明csvc-cc。csvc-cc包含2f 1个有效的签名信息。在此,也可以采用聚合签名或门限签名方法,将2f 1个签名聚合为1个总签名。
62.在步骤s3中,在恶意领导者所在输入分片成员收到跨片视图转换证明后,通过分片内拜占庭容错算法进行视图转换,将恶意领导者替换,并通过主动视图转换防止自身分片领导者审查交易。
63.在本技术的实施例中,在恶意领导者所在输入分片成员收到跨片视图转换证明后,通过分片内拜占庭容错算法进行视图转换,将恶意领导者替换,并通过主动视图转换防止自身分片领导者审查交易,包括:由输出分片领导者将证明发给相关输入分片成员,其中,输入分片成员验证合法性,若验证通过,则发起片内视图转换替换领导者,完成跨片视图转换证明传输;由输入分片成员构建视图转换确认消息,并发送给新领导者,其中,输入分片新领导者收集确认消息构建新视图消息,并在片内广播进入下一个视图,完成跨片视图转换;在两阶段承诺协议准备阶段,输入分片成员进行片内视图转换替换未发起提议领导者,且在两阶段承诺协议承诺阶段,输入分片成员进行片内视图转换替换未发送解锁或花费交易的领导者,以及输出分片成员进行片内视图转换替换未发送接受或拒绝证明的领导者,完成分片内主动视图转换。
64.具体地,跨片视图转换一共包括三步:分片领导者将视图转换证明发送给相应分片成员,分片成员验证其合法性,并发起分片内拜占庭容错算法视图转换。具体为:
65.步骤8:跨片视图转换证明传输:在分片sc中,lc利用收集到的2f 1个合法签名构造视图转换证明csvc-cc之后,lc将该证明csvc-cc发送给分片sc′
至少f 1个成员。作为分片sc′
的成员,首先应当通过验证签名的合法性来判断收到的跨片视图转换证明是否合法。由于验证签名需要以其他分片成员的公钥或其它分片的群公钥为输入,因此每个成员应当在本地维护其它分片的公钥列表。如果验证通过,则认定其所处分片sc′
的当前领导者lc′
是恶意的,即lc′
并没有向交易tx其他相关分片提供输入可用性证明ac。此时,分片sc′
的诚实成员发起分片内视图转换操作来替换掉领导者lc′

66.步骤9:跨片视图转换:在分片sc′
内,诚实成员构建视图转换确认消息m
csvc-ack
,包括自身当前状态、签名等信息,并将视图转换确认消息发送给下一任领导者,下一任领导者由轮转的方式决定。新的领导者收集到2f 1个(包含其自身)合法的视图转换确认消息,构建新视图消息m
csvc-nview
,新视图消息包含了分片当前所处的状态、下一轮将要处理的提议等。新领导者将新视图消息在当前分片内广播,分片sc′
进入下一个视图。
67.步骤10:分片内主动视图转换:在两阶段承诺协议的准备阶段,如果某个输入分片成员在收到交易tx之后的δ时间内,没有收到领导者关于tx的提议消息,则该成员发起分片内拜占庭容错算法视图转换操作。在两阶段承诺协议的承诺阶段,如果某个输入分片成
员在交易tx被提交之后的t
bft
2δ时间内,没有收到来自分片领导者发送的解锁或花费交易tx相应输入的请求,则发起分片内拜占庭容错算法视图转换操作。在输出分片,如果输出分片成员在收到交易tx之后的t
bft
2δ时间内,没有收到来自领导者的关于交易tx的接受或拒绝证明,则同样发起分片内拜占庭容错算法视图转换。
68.下面结合附图2、图3、图4和图5和具体实施例对本技术的分片区块链安全跨片视图转换非法进行详细描述。
69.1、初始化阶段
70.步骤1:系统模型确认:假设网络模型为同步网络。诚实节点发送的消息在δ时间之后一定能够到达彼此,即一轮的时间为δ。敌手负责消息传输,敌手能够将诚实节点发送的消息延迟、重新排序,但必须遵循δ的时间限制。敌手控制有限的算力ρ。算力限制是为了确保在每个分片内,诚实节点占比等于或超过一个预设的安全阈值q,q的值由片内共识算法决定。如果采用实用拜占庭容错算法,q的值为2/3。ρ的值应当小于q,以确保在分片成员选择过程中,上述安全条件成立,因为敌手能够在此过程中,利用其自身掌握的网络时延等优势扩大其成员数量占比。
71.步骤2:分片成员和分片领导者确认。系统参与节点被划分为m个分片s1,s2…
sm,每个分片包含u个成员,其中恶意成员数量为f,并且满足u≥3f 1。每个分片成员的身份由统一的认证机构(certificate authority)颁发。为了防止敌手的腐化攻击,分片成员会定期进行更新。在每个分片中,分片成员通过轮转的方式担任分片领导者。
72.步骤3:分片内共识算法确认。分片内采用实用拜占庭容错算法处理交易和交易输入可用性等。每个分片成员通过提议、准备、承诺等步骤处理分片内事务。分片领导者负责每一轮需要处理事务的提议,将提议消息广播给分片内成员。分片成员通过在本地验证提议是否合法,对提议进行投票。
73.2、跨片视图转换证明生成
74.步骤4:两阶段承诺-准备:
75.(1)用户上传交易tx至其相关分片s1,s2,s3的f 1个分片成员,其中分片s1,s2为输入分片,s3为输出分片;
76.(2)s1和s2分片领导者在分片内运行实用拜占庭算法,提议交易tx至分片成员;
77.(3)分片成员判断交易tx输入是否可用,如果可用,则在实用拜占庭容错算法内对其进行准备准备、承诺,并且将投票广播;
78.(4)在准备和承诺阶段,分片成员收集到2f 1个对当前提议的投票,则认为进入已准备、已承诺阶段。领导者收集到2f 1个承诺消息,将其组成交易tx的输入可用性证明ac;
79.(5)领导者将可用性证明ac发送给其他分片,如s1分片领导者将ac发送给s2和s3分片领导者将ac发送给s1和s3。
80.步骤5:跨片视图转换-提议:
81.(1)下面用sc代表输出分片,sc′
代表没有发送ac的输入分片。作为输出分片sc的领导者,在收到交易tx后的t
bft
δ时间内,如果没有从tx输入分片sc′
的领导者lc′
收到交易可用性证明,则构建跨片视图转换消息:m
csvc
:=(
″sc-sc′-csvc",lc′
,tx)。
82.(2)领导者lc将消息m
csvc
签名得到《m
csvc
》,将其在当前分片sc内广播,作为实用拜占庭容错协议的提议。
83.步骤6:输入可用性证明请求:
84.(1)作为分片sc的成员,收到领导者lc的提议《m
csvc
》后,首先验证领导者签名的合法性;
85.(2)如果签名非法,忽略消息;如果签名合法,则向分片sc′
的领导者lc′
发送请求:<m
req
:=(ask-for-response,tx)》,要求lc′
返回关于交易tx的输入可用性证明ac;
86.(3)如果2δ时间后,仍然没从分片sc′
的领导者lc′
收到交易tx的合法可用性证明ac,则在当前分片sc的实用拜占庭容错算法的准备和承诺阶段,分别构建投票<m
prepare-vote
》和<m
commit-vote
》,发送给分片领导者lc;否则,即在2δ时间内收到lc′
的ac,将ac在当前分片内广播。
87.步骤7:拜占庭算法-承诺:
88.(1)作为分片sc的领导者lc,在实用拜占庭容错算法的准备阶段,收到2 1个成员的合法投票<m
prepare-vote
》,采用聚合签名算法将2f 1个签名聚合为1个总签名,在当前分片sc内广播;
89.(2)作为分片sc的领导者lc,在实用拜占庭容错算法的承诺阶段,收到2 1个成员的合法投票<m
commit-vote
》,采用聚合签名算法将2 1个签名聚合为1个总签名sig
csvc
,构建跨片视图转换证明csvc-cc:=(
″sc-sc′-csvc",lc′
,tx,sig
csvc
)。
90.3、跨片视图转换
91.步骤8:跨片视图转换证明传输
92.(1)分片sc的领导者lc将交易tx相关的跨片视图转换证明csvc-cc发送至分片sc′
至少f 1个成员;
93.(2)分片sc′
的成员收到csvc-cc后,通过保存的分片sc的公钥验证签名sig
csvc
的合法性;
94.(3)如果验证不通过,忽略该消息;验证通过,则认为当前分片sc′
领导者lc′
为恶意,发实用拜占庭容错算法的视图转换操作。
95.步骤9:跨片视图转换:
96.(1)分片sc′
成员判定当前领导者lc′
为恶意领导者后,构建视图转换确认消息m
csvc-ack
:=(
″sc-sc′-csvc",state,v 1),其中state表示当前成员所处的状态,v表示当前视图编号,将其签名得到《m
csvc-ack
》;
97.(2)分片sc′
成员将视图转换确认消息《m
csvc-ack
》发送给当前分片的下一任领导者lc″

98.(3)分片sc′
下一任领导者lc″
在收集到2f 1个合法视图转换确认消息《m
csvc-ack
》后,构建新视图消息m
csvc-nview
:=(
″sc-sc′-csvc",state

,p,v 1,sig
2f 1
),其中state

表示当前分片已承诺的状态,p表示下一个待处理的提议,sig
2f 1
表示2f 1个分片成员的合法视图转换确认消息签名。新领导者lc″
在分片内广播新视图消息m
csvc-nview

99.(4)分片sc’成员收到新视图消息m
csvc-nview
后,验证sig
2f 1
中包含签名的合法性。验证通过后,进入新视图v 1,开始按照实用拜占庭算法正常操作处理提议p。
100.步骤10:分片内主动视图转换:
101.(1)作为交易tx的输入分片sc的成员,在交易tx被上传δ时间后,如果仍然没有收到领导者lc关于tx输入的提议,则构建主动视图转换消息m
csvc-vc
:=("proactive-vc","
input-δ",tx,state,v 1),其中"input-δ"表示是在交易txtx的输入分片,且交易被上传δ后没有收到ac,并将其发送给当前分片的下一任领导者;
102.(2)作为交易txtx的输入分片sc的成员,在交易tx被上传2δ时间后,如果仍然没有收到领导者lc关于tx的解锁或花费的提议,则构建主动视图转换消息m
csvc-vc
:=("proactive-vc","input-2δ",tx,state,v 1),并将其发送给当前分片的下一任领导者;
103.(3)作为交易tx的输出分片成员,在交易tx被上传2δ时间后,如果仍然没有收到领导者关于tx的承诺/拒绝提议,或是关于tx的跨片视图转换消息m
csvc
,则发起主动视图转换消息m
csvc-vc
:=("proactive-vc","output-2δ",tx,state,v 1),并将其发送给当前分片的下一任领导者;
104.(4)作为交易tx的输入或输出分片领导者,在收到主动视图转换消息m
csvc-vc
后,验证消息的合法性;验证通过后,构建新视图消息m
csvc-nview
:=(

proactive-vc",state

,p,v 1,sig
2f 1
),并将其在分片内广播;
105.(5)分片成员收到新视图消息m
csvc-nview
后,验证其包含签名sig
2f 1
的合法性。验证通过后进入新视图,按照实用拜占庭容错算法正常操作处理新提议。
106.根据本技术实施例提出的分片区块链安全跨片视图转换方法,涉及区块链技术和拜占庭容错技术,其优点和功效是:1)能够抵抗恶意领导者的分片内和跨片交易审查攻击。恶意领导者在处理跨片交易时,可能会对部分对其自身不利的交易不进行处理,即对其交易审查,导致用户上传的合法交易不能被及时处理。而本发明利用输出分片成员运行拜占庭容错算法,共同生成某个输入分片领导者恶意行为的证明,利用该证明实现分片内视图转换,能够将恶意领导者替换。2)适用于不同类型的分片区块链系统。现有分片区块链系统在每个分片内大多数采用拜占庭容错类型算法,本发明设计的跨片视图转换协议能够在不同的分片区块链中采用。3)确保了分片区块链系统的活性。用户提交到分片区块链系统的交易在一段时间之内一定会被处理。
107.其次参照附图描述根据本技术实施例提出的分片区块链安全跨片视图转换装置。
108.图6为根据本技术实施例的分片区块链安全跨片视图转换装置的示例图。
109.如图6所示,该分片区块链安全跨片视图转换装置10用于分片区块链领导者替换,包括:初始化模块100、跨片视图转换证明生成模块200和跨片视图转换模块300。
110.其中,初始化模块100,用于分别对系统模型、分片成员和领导者、分片内共识算法进行确认,完成初始化过程。跨片视图转换证明生成模块200,用于通过拜占庭容错算法生成任一个输入分片领导者恶意行为的跨片视图转换证明。跨片视图转换模块300,用于在恶意领导者所在输入分片成员收到跨片视图转换证明后,通过分片内拜占庭容错算法进行视图转换,将恶意领导者替换,并通过主动视图转换防止自身分片领导者审查交易。
111.可选地,在本技术的实施例中,初始化过程模块100,具体用于,包括:确认分片区块链网络模型和敌手模型,其中,敌手算力不超过预设安全阈值;确认分片成员和分片领导者,其中,分片成员的身份由认证机构颁发,且分片成员每隔预设时长进行更新,并通过轮转的方式担任分片领导者;确认分片内共识算法,其中,分片内采用实用拜占庭容错算法,使得分片领导者将提议广播给分片成员,分片成员进行本地验证后,进行投票。
112.可选地,在本技术的实施例中,跨片视图转换证明生成模块200,具体用于,在用户上传交易至相关分片成员后,输入分片成员运行拜占庭容错算法判断该交易在当前分片的
输入是否可用,并生成可用性证明给其他相关分片,且输出分片成员检查是否收到所有分片的可用性证明,完成两阶段承诺-准备;对未发送可用性证明的相关分片,输出分片领导者构建跨片视图转换消息并签名,在本分片内进行广播,对未提议跨片转换的领导者,输出分片成员发起片内视图转换,完成跨片视图转换-提议;由输出分片成员对未发送可用性证明的相关分片的领导者发送可用性证明请求,其中,若仍未收到,则视为恶意领导者,投票支持跨片视图转换,否则进行两阶段承诺准备,完成输入可用性证明请求;由输出分片领导者收集投票构建跨片视图转换承诺证明,完成拜占庭算法-承诺。
113.可选地,在本技术的实施例中,跨片视图转换模块300,具体用于,由输出分片领导者将证明发给相关输入分片成员,其中,输入分片成员验证合法性,若验证通过,则发起片内视图转换替换领导者,完成跨片视图转换证明传输;由输入分片成员构建视图转换确认消息,并发送给新领导者,其中,输入分片新领导者收集确认消息构建新视图消息,并在片内广播进入下一个视图,完成跨片视图转换;在两阶段承诺协议准备阶段,输入分片成员进行片内视图转换替换未发起提议领导者,且在两阶段承诺协议承诺阶段,输入分片成员进行片内视图转换替换未发送解锁或花费交易的领导者,以及输出分片成员进行片内视图转换替换未发送接受或拒绝证明的领导者,完成分片内主动视图转换。
114.需要说明的是,前述对分片区块链安全跨片视图转换方法实施例的解释说明也适用于该实施例的分片区块链安全跨片视图转换装置,此处不再赘述。
115.根据本技术实施例提出的分片区块链安全跨片视图转换装置,涉及区块链技术和拜占庭容错技术,具有防止双花攻击、防止恶意领导者交易审查攻击、交易快速确认、安全高效等特点。
116.图7为本技术实施例提供的电子设备的结构示意图。该电子设备可以包括:
117.存储器701、处理器702及存储在存储器701上并可在处理器702上运行的计算机程序。
118.处理器702执行程序时实现上述实施例中提供的分片区块链安全跨片视图转换方法。
119.进一步地,电子设备还包括:
120.通信接口703,用于存储器701和处理器702之间的通信。
121.存储器701,用于存放可在处理器702上运行的计算机程序。
122.存储器701可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
123.如果存储器701、处理器702和通信接口703独立实现,则通信接口703、存储器701和处理器702可以通过总线相互连接并完成相互间的通信。总线可以是工业标准体系结构(industry standard architecture,简称为isa)总线、外部设备互连(peripheral component,简称为pci)总线或扩展工业标准体系结构(extended industry standard architecture,简称为eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
124.可选的,在具体实现上,如果存储器701、处理器702及通信接口703,集成在一块芯片上实现,则存储器701、处理器702及通信接口703可以通过内部接口完成相互间的通信。
125.处理器702可能是一个中央处理器(central processing unit,简称为cpu),或者
是特定集成电路(application specific integrated circuit,简称为asic),或者是被配置成实施本技术实施例的一个或多个集成电路。
126.本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如上的分片区块链安全跨片视图转换方法。
127.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本技术的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或n个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
128.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本技术的描述中,“n个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
129.流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更n个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本技术的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本技术的实施例所属技术领域的技术人员所理解。
130.在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或n个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
131.应当理解,本技术的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,n个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
132.本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步
骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
133.此外,在本技术各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
134.上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本技术的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本技术的限制,本领域的普通技术人员在本技术的范围内可以对上述实施例进行变化、修改、替换和变型。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献