A Coordinator-Free Cross-Shard Transaction Execution for Sharded Permissioned Blockchains
-
摘要:
区块链作为一种防篡改、去中心化的分布式系统引起了学术界和工业界的极大关注. 然而,传统区块链系统的吞吐量较低,且难以扩展到支持大规模系统,这使得其在商业中的应用范围受到限制. 为了解决这些问题,人们尝试利用分片技术把区块链网络分成多个可单独执行交易的子网,各个子网能够并行执行交易,其性能则可以随子网数成比例提升. 然而,昂贵的跨片交易执行成本阻碍了分片区块链系统性能的进一步提升. 传统的基于两阶段提交的跨片交易执行方法无论在性能上还是扩展性上都无法满足现代产业对大规模系统的需求;同时,这些方法在高冲突负载下的表现不佳,导致跨片交易的延迟急剧增加,严重影响到系统的正常运行. 为了解决此问题,提出了一个针对分片许可链的跨片交易执行方法. 该方法将确定性引入跨片交易执行,避免了额外的协调开销,同时提高了系统执行跨片交易的效率. 此外,该执行方法也配备了抗冲突的交易重排序方法,除了提高跨片执行方法在高冲突的场景下交易处理性能之外,还能优化跨片交易执行中状态传输的效率. 实验结果证明,该方法的吞吐量比基于两阶段提交协议的方法提高1.6~2.5倍;在冲突场景下,相较于优化前系统吞吐量则提高2.9~25倍.
Abstract:Recently, as blockchain technology continues to gain traction in various industries, there is an increasing need to improve the performance of permissioned blockchains in order to accommodate a wide range of applications. Sharding techniques have been proposed to optimize blockchain performance by dividing the network into committees, allowing for parallel transaction execution within each committee. However, the existence of expensive cross-shard transactions hinders the progress of sharded blockchain. Some work attempts to use the two-phase commit(2PC) protocol to process cross-shard transactions. However, these approaches suffer from substantial limitations in terms of performance and scalability, failing to meet the demands of modern industries for large-scale systems. Furthermore, these transactions demonstrate inadequate performance under high conflict scenarios, imposing additional constraints on the overall system performance. In this paper, we propose an approach for executing cross-shard transactions in sharded permissioned blockchains. The approach introduces determinism to the execution of cross-shard transactions, eliminating the need for additional coordination overhead while improving the efficiency of the system. To further improve system throughput, we utilize a transaction reordering mechanism to optimize the execution under conflicts. Experimental results show that our approach offers 1.6 times to 2.5 times higher throughput compared with the 2PC method, and 2.9 times to 25 times higher throughput compared with the non-optimized system in conflict scenarios.
-
随着数字时代的发展和人们对数据的日益重视,隐私保护、信息安全和数据所有权已成为人们关注的重要问题. 区块链[1]作为一种去中心化的分布式账本技术,其核心特性是去中心化和不可篡改性,这意味着没有单个实体可以掌控整个系统,同时也意味着区块链上的数据是无法被篡改的,这些特点使得区块链能够在众多领域都具有广泛的应用前景.
在分布式系统中,一致性是非常重要的一个问题,因为不同节点之间可能存在数据不一致的情况,导致系统出现错误. 区块链通过使用共识算法,保证了不同节点之间的数据一致性. 例如,在比特币区块链中,采用了工作量证明(proof of work,PoW)[2]算法来实现共识,这样所有的节点可以达成一致的结果. 因此,区块链能够有效地解决分布式系统中的一致性问题.
在PoW中,挖掘区块的矿工节点需要解决一道难题,获得正确答案后才能提交区块. 其他节点需要验证这个难题是否解决来决定是否接受区块,从而达成所有节点之间的数据一致性. 虽然PoW算法可以实现一致性,但是它也存在着一些问题,其中最显著的问题就是算力的过度耗费. PoW算法中矿工需要通过不断进行无意义的哈希计算来寻找正确的答案,这导致PoW算法会消耗大量的能源,目前以PoW为共识算法的比特币挖矿消耗的总能源已经超过了奥地利每年的总用电量,这造成了极大的能源浪费[3].
另外,比特币等基于PoW的公有区块链平台,为了控制区块的出块速度,会设置目标难度值. 这是一个衡量挖矿难度的参数,该参数根据比特币网络的总算力(即全网的矿机算力)来动态调整的. 目标难度值的变化对应着全网矿工的算力变化. 如果全网算力增加,目标难度值也会增加,反之亦然. 定期调整目标难度值,能够保证每个区块的挖矿难度始终保持在一个稳定的水平,但是这也导致了PoW挖矿越来越难的现象. 截止2023年3月想要得到一个比特币需要46.84万亿次哈希计算,如图1所示.
目前,大多数公有链系统采用的共识机制仍然是PoW,但是其高能耗和低吞吐量的现状已经成为了区块链发展的瓶颈.
与此同时联邦学习(federated learning,FL)[4]作为一种新兴的机器学习技术,可以在不暴露原始数据的情况下,让多个参与方通过模型的联合训练,实现模型的共同提升. 与传统的集中式机器学习相比,联邦学习具有更高的安全性和隐私保护性[5],但是联邦学习训练过程中需要大量计算资源,同时也缺乏一种公平有效的参与方激励机制,而区块链的公开透明、不可篡改等特性保证了区块链能够提供一种公平的节点激励机制. 因此,很多研究考虑将联邦学习引入区块链领域,探索一种新的共识机制和联邦学习激励机制[6].
因此,针对上文提出区块链共识算法中的算力过度耗费问题和联邦学习缺乏有效公平激励的问题,本文引入联邦学习技术,提出了一种支持自适应联邦学习任务的可信公平区块链框架(a trustworthy and fair blockchain framework supporting adaptive federated learning task)——TFchain,并设计了一种新的共识机制——PoTF(proof of trust and fair),该机制不仅可以减少算力的耗费,而且可以通过引入联邦学习和贡献度的计算,进行PoW和PoTF的共识切换,从而提高整个区块链系统的效率和安全性. 与此同时,本文基于区块链的设计架构,对联邦学习的参与方进行了合理的贡献度评估和激励. 最后,本文还设计了防止联邦学习参与方作恶的算法,有效地保证了区块链的安全性和联邦学习的效率.
本文的主要贡献包括4个方面:
1) 提出了一种支持自适应联邦学习任务的可信公平区块链框架TFchain. TFchain将服务节点和普通节点组成联邦系统,完成所有联邦学习任务发起者提出的训练任务. 通过将算力使用在联邦任务上,避免了传统PoW的算力过度耗费问题.
2) 提出新的共识机制PoTF. 在每个联邦学习训练任务开始时,将上次任务贡献度最高的节点作为服务节点. 普通节点进行训练并且上传模型更新参数,服务节点收集参数然后进行聚合,并且在聚合的同时计算普通节点的贡献度,然后生成区块,既保障了模型参数的及时更新,又提高了区块的吞吐量.
3)提出了一种基于区块链和贡献度计算的联邦学习奖励分配机制,保证服务节点的流动性,实现奖励的公平分配,鼓励参与方积极参与到联邦任务中. 同时提出了一种节点作恶检测策略,通过投票更换在训练中排除作恶的服务节点,保证TFchain的安全性和可信度. 此外,在训练中还会排除贡献度异常的普通节点,进一步提升了奖励分配的公平性.
4) 通过实验证明了TFchain的有效性和可行性,同时证明TFchain是一种可插拔联邦模型的区块链组件,可以方便地加入不同的联邦学习任务. TFchain能够在节约算力的同时,提升区块链的吞吐量,并且为联邦学习提供公平的激励机制.
1. 相关工作
1.1 区块链
在区块链中,为了确保所有节点账本数据的正确性,使得所有节点达成一致并防止恶意节点提交假数据,需要使用共识机制. 目前,主要使用的共识机制有PoW[2]、权益证明(proof of stake,PoS)[7]、代表权益证明(delegated proof of stake,DPoS)[8]和实用拜占庭容错(practical Byzantine fault tolerance,PBFT)[9]共识协议等.
在较大规模的区块链平台中,比如以比特币[2]和以太坊[10]为代表的公有链平台,使用的是PoW共识机制. 然而,这种机制中的工作量只是大量重复且无意义的哈希计算过程,导致系统中99%以上的算力被耗费,同时也浪费了大量电力[11-12],这一缺陷一直受到诟病. 此外,为了防止恶意节点进行女巫攻击,PoW中设定的哈希计算难度值往往很大,导致基于该共识机制设计的区块链平台的交易吞吐量通常很低[3]. 以比特币为例,其吞吐量一直维持在每秒6~7笔,完全无法满足需要处理大量高频交易的应用场景.
1.2 联邦学习
由于联邦学习的分散性,目前学习过程中存在客户端不积极或者作恶等问题,这些问题可能会导致模型性能下降或模型不可用等后果.
客户端不积极是指在训练过程中,有些客户端可能不愿意或者不能积极参与到模型的训练中. 联邦学习的客户端不愿意在没有回报下参与联邦学习训练,所以如何激励客户参与很重要. 客户端不积极也可能是硬件性能、网络带宽等因素造成的. 在联邦学习中,如果有太多的客户端不积极,就会导致整个模型的性能下降或者训练失败[13]. 另外一些恶意的客户端可能会恶意破坏模型更新,传输一些错误数据,导致全局模型偏离正常模型. 交换梯度对参与者来说不够安全,例如一个对抗性参与者可以推断出在其他人的训练数据中存在准确的数据点(成员推断).
为了解决客户端不积极或者作恶的问题,研究者们提出了许多方法. 常见的方法是通过设计合适的奖励机制来激励客户端积极参与训练. 文献[14]基于博弈论设计了一种有效的激励机制,选择最有可能提供可靠数据的用户,并补偿其隐私泄露的成本. 文献[15]提出了质量意识激励机制,在预算范围内,建立逆向拍卖问题的模型,以鼓励高质量学习用户的参与.
此外,还可以采用多方安全计算技术来保证模型的隐私性和安全性,从而更加公正地给参与训练的客户端提供奖励或者惩罚. 文献[16]设计一个基于贝叶斯博弈论的激励机制,确保参与者提供真实的有用预测. 文献[17]提出了一种分层的两级激励机制设计,有效地分配数据所有者和联邦学习参与者的资源,以完成编码联邦学习任务.
1.3 区块链和联邦学习结合
在联邦学习中,数据不需要集中存储在一个中心节点,而是分布在各个设备上,这与区块链的分布式存储结构相似,因此将区块链技术与联邦学习相结合是一个研究热点[18].
区块链的技术可以实现联邦学习参与者的贡献度评价和公平激励. 在区块链网络中,每个矿工的贡献度都可以通过计算能力来评价. 矿工的贡献度越高,获得奖励的概率也越高. 这样可以激励矿工提供更多的计算资源,并保证整个网络的安全和稳定. 在联邦学习中,每个设备也可以通过贡献度评价来获得相应的奖励. 例如,在联邦学习中,每个设备可以通过提供更多的数据或更准确的模型来提高贡献度,从而获得更多的奖励. 这样可以激励设备提供更多的计算资源,并保证联邦学习的分布式和公平性. 通过区块链对联邦学习参与者的贡献度进行评价的方法主要有基于信誉度和基于博弈论2种.
联邦学习中的信誉度[19]是一个用于衡量参与者参与联邦学习的贡献和表现的指标. 文献[20]提出了一种用于联邦学习的区块链激励机制,该机制通过评估参与者的信誉和贡献指标,公平奖励高效率的节点,同时惩罚恶意节点. 文献[21]提出了用于去中心化联邦学习的共识机制,通过基于信誉的激励措施,激励矿工的诚实参与并提高共识效率. 文献[22] 提出了一种用于跨设备联合学习的去中心化参数聚合链,该链利用区块链技术来保护中间参数的隐私,并使用基于信誉的激励机制来激励跨设备联合学习中的协作节点,利用智能合约来实现可靠的参与者选择和激励机制.
博弈论[23]是研究决策者之间的相互作用和影响,以及他们在这种相互作用下做出的最优决策,因此,博弈论可以用来分析和解决联邦学习中的协作和竞争问题. 文献[24]提出了一种基于区块链的支付系统FedCoin,它通过沙普利值(Shapley value,SV)评估联邦学习参与者的贡献. 文献[3] 引入了一种名为联邦学习证明的新型能量回收共识算法,该算法将最初耗费在PoW中的能量再投资于联邦学习,并且基于博弈论进行参与者的贡献度计算和激励分配. 文献[25]提出了一种基于贡献证明的共识机制,该机制避免了挖矿过程造成的区块生成延迟,并异步缓解了模型参数验证中的拥塞. 并且根据每个节点生成的区块数量以及其生成的区块被其他节点引用的次数来计算每个节点的贡献.
文献[19-25]所述的研究都是侧重于区块链对于激励的分配方面,且大部分激励是基于参与方的信誉和参与者间的博弈关系设计的,而没有将区块链的共识过程与联邦学习的训练过程进行有效地结合. 例如FedCoin,联邦学习过程仍然是在链外进行的,只是将训练完成的结果和过程参数上链记录并且计算参与方的贡献度.
另外,区块链还可以提高联邦学习的安全性,为联邦学习进行参数的记录存储和训练过程提供隐私保护. 由于联邦学习中涉及到模型数据传输,因此存在数据隐私泄露的风险. 通过将联邦学习与区块链相结合,可以实现更高的安全性. 文献[26]提出了一种名为基于区块链的异步联合学习的新方法,使用区块链来确保模型数据不会被篡改. 文献[27]提出了一种用于安全的多方机器学习的方法,该方法使用区块链和加密技术来协调对等客户之间保护隐私的机器学习过程. 文献[28]提出了一种去中心化联合学习方法,该方法使用区块链技术来存储模型. 文献[29]提出一个双层区块链驱动的联邦学习框架,该框架由多个分片网络和基于有向无环图的主链组成. 文献[30]提出一项新聚合规则,该规则使用区块链促进透明的流程和法规的实施. 文献[31]提出了一种基于区块链的声誉感知细粒度联邦学习方法,以确保在移动边缘计算系统中进行值得信赖的协作训练.
在文献[26-31],区块链更多充当记录和见证的技术,而不是将区块链的节点算力用于联邦学习的训练.
2. 预备知识
2.1 区块链的共识机制
共识机制是指在分布式系统中实现一致性的算法. 区块链共识机制是指在区块链中节点之间达成共识的算法,以决定哪个节点可以添加下一个区块到区块链中. 共识机制可以分为基于权益的共识机制、基于权威的共识机制和基于工作量的共识机制等不同类型.
PoW是一种基于工作量的共识机制,最早被用于比特币中,它要求节点通过计算一个特定难度的哈希函数来寻找一个符合要求的数字,并将其添加到区块链中,其公式为:
hash(nonce+data)=target, (1) 其中nonce是随机数,data是待添加数据,target是目标哈希值,通过不断尝试不同的nonce值,直到找到符合要求的数字,从而完成添加区块的过程. PoW机制的主要缺点是需要大量的计算资源,因此存在一定的安全性问题.
目前,基于工作量的共识机制已经被广泛应用于各种区块链系统中,如以太坊、莱特币等. 此外,还出现了其他类型的共识机制,如基于权益证明的共识机制和拜占庭容错共识机制等,以满足不同场景下的共识需求.
2.2 联邦学习的目标函数和聚合算法
联邦学习的目标函数主要作用是衡量模型的预测结果与真实结果之间的误差,并提供一个用于优化模型参数的方向. 不同的联邦学习算法和任务可能使用不同的目标函数.
在联邦学习中,模型的目标函数通常定义为
minw∈WF(w)=1nn∑i=1fi(w), (2) 其中w表示模型参数,W表示参数的取值范围,n表示客户端的数量,fi(w)表示第i个客户端的目标函数,其形式为
fi(w)=1Ni∑(x,y)∈Diℓ(w,x,y), (3) 其中,Ni表示客户端i的本地数据集的大小,(x, y)表示一个数据样本,ℓ(w, x, y)表示损失函数. 每个客户端的目标函数形式相同,但是本地的数据集是不同的.
在联邦学习中,由于每个客户端的本地数据集都不同,因此不能像传统的机器学习一样在全局数据集上进行训练,而是需要采用一些特殊的技术来解决这个问题. 其中一种常用的方法是联邦平均算法FedAvg[32],FedAvg的本地更新方式为:
wt←wt−η∇ℓ(wt,x,y). (4) FedAvg的全局更新公式为:
wt+1=m∑i=1NtNwti+1, (5) 其中,wit表示客户端i在t轮更新后的参数,m表示客户端的数量. 在每一轮更新时,客户端通过本地训练更新参数,并将更新后的参数上传到服务节点. 服务节点通过聚合算法将这些参数集成到全局模型中.
2.3 沙普利值
贡献度是指一个变量对于整个系统输出的影响程度,它在很多领域中都有着广泛的应用,例如特征选择和优化、网络分析中的节点重要性评估等. 贡献度的计算方法有很多种,其中一种常用的方法是使用沙普利值[33].
沙普利值是一种用来解决合作利益分配问题的方式,它由诺贝尔奖得主劳埃德·斯托韦尔·沙普利(Lloyd Stowell Shapley)提出. 其目标是构造一种综合考虑冲突各方要求的折中的效用分配方案,从而保证分配的公平性. 沙普利SV的定义为
SVi=m∑j=1|∂yj∂xi|m∑k=1|∂yj∂xk|, (6) 其中,系统共有 m个参与者,i代表系统的第i个参与者,i∈{1,2,…m}. xi和yi分别是第i个参与者的输入变量和输出变量. SVi则表示第i个输入变量对于系统输出的影响程度,SVi∈[0,1],SVi越大表示该变量对于系统输出的影响越大.
3. 支持自适应联邦学习任务的可信公平区块链框架TFchain
本节分为6个部分:
第1部分介绍了支持自适应联邦学习任务的可信公平区块链框架TFchain,该框架包含了链上链下的协作完成联邦学习任务的过程,以及TFchain和PoW的切换机制.
第2部分介绍了TFchain中的区块链的数据结构.
第3部分介绍了全新区块链数据结构下,一种高效且安全的共识机制PoTF,它通过引入沙普利值来正向激励参与者.
第4部分具体介绍了PoTF中不同角色的任务和运行流程.
第5部分介绍了基于联邦学习贡献度的节点奖励方法.
第6部分介绍了一种应对服务节点作恶策略,即将节点的行为记录在区块链上,以提高节点的透明度和可信度,当发现服务节点时,在训练中排除作恶的服务节点.
3.1 TFchain的整体框架
TFchain的整体架构如图2所示,TFchain可以整体划分为链上和链下2个部分,其中链上负责交易的处理、学习参数的收集和聚合、区块的打包等工作,链下负责进行联邦学习的参与方贡献度计算和本地模型训练等工作.
TFchain中区块链的共识节点同时也是联邦学习的参与方,最终会根据联邦学习的训练过程和结果对各个参与方进行贡献度评价,最终分配区块链的记账权和学习的奖励.
在每次训练任务开始时, TFchain会根据历史贡献度选择PoTF的服务节点. 服务节点负责收集训练后的参数并进行聚合,然后打包,其包含每个普通节点训练参数和普通交易的区块,在完成每次的训练任务后,服务节点会在本地计算每个普通节点的贡献度,在本次训练周期Epoch的最后一个区块中,服务节点会上传计算的所有参与方本次学习任务的最终贡献度并且分配奖励. 而在TFchain中,普通节点会作为联邦学习的参与方,使用私有数据集训练本地模型并上传训练后的模型参数,并根据贡献领取相应的奖励.
如果服务节点有作恶行为,普通节点也能够进行投票并永久排除本轮服务节点. 贡献度最高的本轮学习的参与方会成为下一轮任务的服务节点,然后进行下一轮学习任务的训练周期Epoch,直到交易池中的学习任务列表为空. TFchain可以通过奖励机制和投票机制来确保服务节点的公正性和参与方的利益. 因此基于PoTF的TFchain可以显著避免算力过度耗费,并进行公平的奖励分配.
下面介绍TFchain的共识切换策略. 本文在区块链交易池中独立建立了一个联邦学习任务列表. 学习任务发起方可以通过向区块链发送交易的方式发布学习任务,交易内容是学习任务的具体信息,包括任务名称、任务描述、任务数据集、参与方信息等. 在此处本文采用一种PoTF和PoW的共识切换机制,具体如图3所示.
在这个机制中,TFchain在运行过程中是基于交易池中的学习任务列表进行实时切换的,当新的任务加入到交易池中的学习任务列表时,应该采用先进先出的方式在交易池中进行存储. 而区块链对交易池的学习任务列表进行实时监测,当交易池中存在未训练的联邦学习任务时,将其取出,开启PoTF并且进行任务的训练,直到所有任务训练完毕. 当任务池中为空后,则切换到PoW共识.
此外,虽然本文框架主要服务于联邦学习任务的高效和安全运行,但是不参与联邦学习的普通区块链节点也可以加入到共识过程中. 这种不参与联邦学习的节点在TFchain的不同共识阶段可以执行不同的功能:在无联邦学习任务时,不参与联邦学习的节点可以参与到切换的正常PoW共识中,执行共识节点的任务;在系统中有联邦学习任务,需要进行PoTF共识时,不参与联邦学习的节点可以作为区块链的账本节点,同步共识区块链账本,并且进行交易和账本的正确性验证,进一步加强联邦学习期间的系统安全性.
以上就是TFchain的整体框架,这种框架不仅可以实现高效快速的区块链交易处理性能,确保联邦学习的数据隐私保护和模型快速更新,而且还能提供公平的联邦学习奖励以激励参与方的积极性.
3.2 PoTF共识过程中的区块结构
PoTF是本文提出的一种全新的基于联邦学习的共识算法,为了适应联邦学习的相关特性,对区块链的整体数据结构也进行了全新的设计.
由图4可知,PoTF的区块头包含7方面内容:
1)前一区块哈希(Pre_Hash);
2)当前的区块高度(Height);
3)当前区块的交易默克尔树根(Merkle_Root);
4)当前服务节点地址(Master_Node),当本次学习任务结束,结束本Epoch的PoTF时,当前Epoch的最后一个区块要进行服务节点地址的更新,更新为选定的下一轮学习任务的服务节点;
5)本轮联邦学习的聚合参数(Con_parameter),每个Epoch的区块0中设置为默认0;
6)当前的任务信息(Task);
7)其他相关信息(Additional_Data).
而PoTF中区块体主要包含的就是联邦学习中参与方每轮的本地训练参数和普通的区块链交易. 但是需要说明的是,在本Epoch的最后一个区块中,服务节点需要在区块体中公布本次学习任务中所评估的所有参与方的贡献度和奖励分配情况.
3.3 PoTF共识算法
PoTF共识算法是在TFchain检测到交易池中联邦学习任务列表中有未完成任务时开启的共识机制,该共识机制能够有效地提升区块链的吞吐量,在实际应用中,我们可以根据联邦学习应用领域的不同,依据TFchain框架建立多个基于PoTF共识的区块链分片,每个分片负责进行一个应用领域的联邦学习任务. 由于不同的应用领域学习任务差异大,也不存在跨分片交易问题,因此区块链的吞吐量与分片数量呈正相关趋势,能够大大提升区块链的可扩展性. 由于不同分片的工作流程是相同的,因此,本文统一使用单分片的架构进行描述,但是在实际应用中可以拓展到多应用场景、多分片的架构.
PoTF算法总体的共识流程在图2的TFchain的总体框架图中有所展示,具体有9个步骤:
第1步,服务节点选择交易池中未完成的一个学习任务,并打包任务的发起方发布的任务信息和相关的模型信息到本Epoch的第1个区块(区块0)中.
第2步,普通节点从区块0中同步训练任务信息及训练参数,训练参数应该包括训练轮数、学习率、损失函数等.
第3步,普通节点进行本地训练. 在本地训练过程中,客户端使用自己的数据集进行训练,然后将训练结果返回给服务节点.
第4步,服务节点收集训练后的参数并进行聚合. 在聚合过程中,服务节点记录聚合过程中的参数,然后计算参与到每次聚合的普通节点的贡献度.
第5步,服务节点发布区块. 区块包含默认信息、每个客户端的参数以及聚合后的参数. 此外,区块头还应包括前一个区块的哈希值、默克尔树根、参数的哈希值等信息.
第6步,重复第2~5步. 在每一轮训练中,客户端会使用新的训练参数进行本地训练,并将训练结果返回给服务节点. 服务节点收集这些结果,进行聚合并发布新的区块. 这个过程重复进行,直到训练轮数达到预设值.
第7步,服务节点依据参与节点的贡献度确定奖励的分配方式,并发布本Epoch的最后一个区块.
第8步,更新下一轮学习任务的服务节点(选择贡献度最高的参与方作为下一轮任务的服务节点,第一次联邦学习任务时,随机选择一个节点作为服务节点),并结束本次联邦学习任务.
第9步,当前服务节点则在下一轮任务中作为普通节点.
3.4 TFchain的节点任务划分
本节将进一步对3.3节的PoTF中服务节点和普通节点的任务进行详细描述.
如图5所示,服务节点主要有2项并行任务,其一是每轮参数的收集和区块的打包,另一项是参与方的贡献度计算. 服务节点的具体任务执行流程如算法1所示.
具体而言,算法1主要分为3部分:1)任务初始化. 从交易池的学习任务列表中获取一个任务,并将初始信息打包出块. 2)训练. 在一定的时间内,接收参与节点发送的训练数据,并按照某个联邦聚合函数(可插拔可替换)对这些数据进行聚合,计算出全局模型,同时通过沙普利值计算贡献度,然后发布区块. 3) 贡献度计算及分配奖励. 根据沙普利值计算参与方的贡献度,并且分配奖励,其中服务节点领取50%的奖励,并按照各个节点的贡献度按比例分配剩余奖励给其他节点,并且将贡献度最高的普通节点设置为新的服务节点.
算法1. 服务节点执行训练过程.
输入:交易池pool中的任务信息;
输出:经过良好训练的全局模型w,按照贡献进 行的奖励分配R.
(任务初始化)
① modelMsg ← pop(pool);/*获取任务*/
② addBlock(header(modelMsg, …), body);
/*初始信息上链*/
(训练)
③ for each round t =1,2,… do
④ Nt ← (在规定时间内响应的参与节点);
⑤ for each round k ∈Nt do
⑥ wkt ← getMsg(wt, k);
⑦ wt ← m∑i=1Niwtim∑i=1Ni; /*聚合函数可以替换*/
⑧ if MASE(SVt−timetemp,…,SVt−1)>Δ
⑨ SVNt←(Nt,f(wNt)) ; /*式(5)*/
⑩ end if /*SV计算与聚合并行*/
⑪ end for
⑫ addBlock(header(wt, …), body(wNt, …));
/*发布区块,其结构如图4所示*/
⑬ end for
(贡献度)
⑭ Rn=n∑t=1SVnt|t|; /*统计贡献度,并且发布区块*/
⑮ addBlock(header(RN, SVNT, …), body);
⑯ _Ledger += reward × 50%;
/*服务节点拿走50%的奖励*/
⑰ for each round n ∈N do
⑱ sentReward(n, reward× 50%×Rn);
⑲ end for /*按照贡献分配奖励给其他节点*/
⑳ sentServerNode(max(Rn)).
/*贡献度最高的节点为服务节点*/
需要说明的是,在多轮的联邦学习中,参与训练的节点对全局模型的影响会越来越小,其贡献度的变化也会逐渐变小.因此,当参与训练的节点贡献度变化过小时,会停止每一轮贡献度的计算,然后根据前期贡献度来计算每个参与方本次学习任务中的最终贡献度.
具体而言,任务初始化部分发布的区块对应图5中的区块0,训练部分发布的区块对应区块1~n−1,贡献度和奖励分配相关发布的区块对应区块n. 具体的区块结构如图4所示.
算法1使用的联邦聚合函数可以根据实际情况进行替换,从而提高算法的适用性和性能. 算法1中,贡献度最高的普通节点可以成为新的服务节点,从而保证了服务节点的动态变化.
算法2详细介绍了PoTF的普通节点执行训练过程.
算法2. 参与节点执行训练过程.
输入:区块链中的任务信息;
输出:经过良好训练的本地模型w,按照贡献领 取奖励.
(任务初始化)
① modelMsg ← getBlock();/*获取任务*/
(训练)
② for each round t =1,2,… do
③ w ← getBlock(); /*获取初始信息 */
④ B ← (将数据集Dk划分为B大小的批次);
⑤ for each round b ∈B do
⑥ w←w−η∇ℓ(w,b);
⑦ end for
⑧ sentMsg(w, serverNode);
⑨ end for
(贡献度)
⑩ _ Ledger += getReward().
算法2与算法1对应,同样分为3部分:1)任务初始化. 从区块链中获取初始信息,设置模型. 2)本地训练. 在一定的时间内,将数据集Dk划分为大小为B的批次,并在每个批次上进行训练,得到本地模型. 3)贡献度获取. 节点完成训练后,根据节点的贡献度领取相应的奖励.
算法2相对于算法1来说,更加简单易懂,易于实现和部署,因此适用于部署在区块链的普通节点中,作为联邦学习的参与方参与到共识和联邦学习中. 同时,算法2中节点之间只需传输本地模型,而不需要传输所有数据,因此节省了通信量,减少了网络传输时间.
3.5 TFchain的贡献计算及奖励分配
在PoTF运行的过程中,服务节点会使用沙普利值的计算方式,在链下持续计算每个参与方在整个联邦学习过程中的贡献度,在每次收到参与节点的本地模型,对全局模型进行更新后,计算更新后的模型的提升程度,该值将用于计算参与节点的沙普利值. 并且在打包本Epoch的最后一个区块时,将每个节点的最终贡献度公布,并且根据贡献度分配奖励.
本文设定的奖励分配机制是:本次学习任务中50%的奖励将分配给本轮共识的服务节点,剩下50%的奖励按照其他参与方的贡献度进行等比例分配,并且参与方中贡献度最高的节点自动成为下一轮学习任务和PoTF的服务节点(本轮服务节点由于不参与本地模型的训练,因此不会成为连续当选下一轮的服务节点),能够在下一轮PoTF共识中获得成为服务节点的50%的奖励.
3.6 TFchain的服务节点作恶检测机制
服务节点作恶可能表现为恶意修改参数信息或者伪造贡献度信息,因此如果最近m个区块的参数信息、贡献度不符合预期,就有可能发现服务节点作恶.
针对贡献度计算和区块打包中忽略某些客户端参数的作恶行为,本文设计了基于投票的服务节点作恶检测和更换机制,当普通节点(联邦学习的参与方)发现服务节点作恶(贡献分配不平均或多次忽视某一客户端的参数不进行聚合)后,该节点会发起更换服务节点的投票并广播给全部节点的方式进行服务节点的更换.
本文设计的服务节点作恶检测和更换机制可以有效防止服务节点作恶. 如果一个服务节点无法按照预期工作,其他节点可以通过发起投票来选举新的服务节点,保证共识算法的正常运行. 在本文中,我们设定投票需要2/3的节点同意才能进行服务节点变更,这个规则是为了保证新的服务节点能够获得足够多的支持,从而使整个系统能够继续正常工作. 同时,这也是防止恶意节点随意发起更换服务节点的关键措施.
基于以上思路,本文提出了算法3,用于服务节点的作恶检测和更换.
算法3. 参与节点发现主节点作恶后的更换过程.
输入:质疑信息Qmsg;
输出:投票同意服务节点作恶的节点大于2/3, 如果是则更换服务节点.
(发起质疑)
① sentMsg(Qmsg, allNode);
(投票)
② Msgcount = 0;
③ while nowTime<endTime或Msgcount<N×2/3:
④ if receiveMsg ≠ Null
⑤ Msgcount++;
⑥ end if
⑦ end while
(同意服务节点作恶的节点小于2/3,向其他节点 确认更换主节点)
⑧ if Msgcount > N×2/3
⑨ sentMsg(changeServerNode, allNode);
⑩ Changecount = 0;
⑪ while Changecount < N×2/3
⑫ if receiveMsg ≠ Null
⑬ Changecount ++;
⑭ end if
⑮ end while
(主节点替换)
⑯ sentServerNode(max(RN-ServerNode)).
⑰ end if
算法3描述了一个基于投票的机制来替换作恶的服务节点的过程,主要分为5部分:
1)发起质疑. 某个节点发现服务节点作恶后,会向其他节点发起质疑,引发投票替换服务节点.
2)投票. 节点收到质疑后,在一定时间内,如果有超过2/3的节点同意替换服务节点,则进入下一步.
如果同意替换的节点不足2/3,则认为投票结果不足以作为更换服务节点的依据,返回Null.
3)向其他节点确认更换服务节点. 如果投票结果符合条件,则通知其他节点确认更换服务节点.
4)服务节点替换. 如果有超过2/3的节点同意更换服务节点,则选择贡献度最高的节点作为新服务节点,替换原服务节点.
5)切换服务节点. 完成服务节点替换后,返回新服务节点.
通过算法3的投票机制能够确保服务节点的公正性和可信度. 如果投票通过,会重新选择贡献度第2高的节点作为新服务节点,能够保证整个网络的稳定性和效率;如果投票结果不足以作为更换服务节点的依据,算法会终止,能够防止虚假投票的发生.
4. 安全性分析
4.1 服务节点的作恶
服务节点的作恶行为可以分为联邦学习中作恶、贡献度计算中作恶、区块打包中忽略某些客户端参数作恶等3种行为.
针对联邦学习中服务节点投毒攻击等作恶方式,由于服务节点不参与本轮联邦学习的本地模型训练,只负责参数的聚合,所以无法进行这种方式的作恶.
针对服务节点的以下2种作恶行为:贡献度计算中作恶和区块打包中忽略某些客户端参数作恶,我们设计了有效的服务节点作恶检测和更换策略. 而根据策略的设计,从理论上来说,如果有超过1/3的节点是恶意的,那么算法就无法保证安全性和正确性. 因为恶意节点可以通过阻止投票数超过2/3,来阻止服务节点变更的发生,从而导致整个系统无法正常工作. 本文的共识安全性是建立在节点数量和诚实节点比例的基础之上的.
在实际应用中,如果网络中存在大量恶意节点,那么就需要采取其他措施来提高系统的安全性,但是本文的环境是相互协作的联邦学习客户端作为节点,即使有作恶节点也很难超过总节点数的1/3.
4.2 普通节点的作恶
普通节点的作恶行为可以分为拒绝学习作恶和参数篡改作恶2种行为. 前者节点可能会故意中断其与服务节点的通信;后者节点可能会篡改模型,使其产生错误的输出结果或引导全局模型发生偏移.
针对普通节点拒绝学习作恶,即节点不进行本地训练更新参数,影响总体联邦学习训练效率的行为,本文通过公正的激励机制来鼓励参与者的积极参与,从而减少参与者的作恶动机.
为了证明本节的分析,我们可以通过为参与者提供一定的奖励来激励其诚实地参与联邦学习,我们实现了不同的作恶节点比例下的联邦学习的训练和贡献度的计算过程. 实验结果表明,在本文设计的框架下,参与者如果拒绝参与联邦学习,则贡献度与诚实节点将会逐渐拉大,无法获得相应的奖励,从而减少其作恶动机. 由图6可知,如果系统中没有节点作恶,诚实节点正常进行本地模型的聚合并且发送参数给服务节点,每个参与方的贡献基本与其训练精度相对应,但是一旦出现节点作恶,随着作恶节点比例的提升,诚实节点的贡献度会被评估得越来越高,并且根据图7可以发现,虽然作恶节点的总体比例在上升,但是这些节点的总贡献度占全体贡献度的比例却很少,从而保证诚实节点拿到的系统激励远高于作恶节点.
如果普通节点不在意奖励,只是想破坏全局模型进行作恶,通常会选择参数篡改作恶. 针对普通节点参数篡改作恶,由图6可以观察到,作恶节点与诚实节点之间的贡献度差异会被逐渐拉大,最终该作恶节点将会被评估为低贡献度,累计到一定程度后被剔除出联邦学习. 在这种机制下,普通节点无法进行这种方式的作恶.
5. 实 验
5.1 实验设置
在本节中将TFchain与基于PoW的区块链系统、基于联邦学习贡献度的区块链FedCoin进行比较. PoW[2]是大多数公有链系统采用的共识机制. FedCoin[24]是一种基于区块链的支付系统,其中引入了沙普利值来评估参与者的贡献度,但是其联邦学习过程是在链外进行的.而且FedCoin只将训练结果和过程参数上链记录,然后再计算参与方的贡献度.因此,FedCoin中区块链和联邦学习部分是分离的.
本文在2个图像数据集上进行实验:MNIST[34]和EMNIST[35]. MNIST是一个手写数字数据库,通常用于训练各种图像处理系统. EMNIST是MNIST的扩展版.
下面的实验如果没有特殊说明,基本设置为:
本文共识切换中设置的PoW算法挖矿难度为4,对比的PoW算法也将挖矿难度设置为4,FedCoin与TFchain进行的联邦学习训练任务是相同的.
联邦学习任务中运行200个全局通信轮,设置了总参与用户数量为20,每次通信的用户数量为10. 采用局部更新步骤T= 20,每一步使用一个大小为B=32的迷你批处理. 设置的基本聚合函数是FedAvg[32],本地模型是一个基本CNN模型. 实验结果采样自3个不同随机种子的均值和标准差.
本节所有的实验均在Intel® CoreTM i9-10900k CPU @ 3.70 GHz 3.60 GHz且具有64GB RAM的 PC平台上完成.
5.2 算力分析
目前在比特币、以太坊等公有链平台进行PoW共识的过程中,99%的算力都是无效的哈希运算,并且随着挖矿难度的提升,挖掘出一个区块的哈希计算时间呈指数级增长,无效算力的比例也会逐渐增加,导致区块链的交易吞吐量显著减少,PoW中基本所有的工作量都是在进行无意义的哈希计算,以达到设定的难度值x(最终的哈希结果前x位为0),通过图8和图9可以得知,随着目标难度值x的增加,PoW挖掘出一个块的时间显著增加,尤其是难度值大于6之后,计算时间高达160 s以上,相应的交易吞吐量也呈现指数级下降.
由图8可知,在难度值为4的情况下,吞吐量下降到400左右;而难度值为5时,交易的吞吐量仅为42. 在后续的实验中为了方便衡量和计算,我们选择了难度值为4作为实验基准,根据图9可知,在难度值为4的情况下进行6500次哈希能够挖掘出一个块. 当然,实际的比特币和以太坊等区块链平台中,目标难度值已经非常大,目前需要46.84万亿次哈希计算才能挖掘出一个区块.
根据图10和表1,即使在难度值仅为1的情况下,无效哈希计算的占比也高达95%以上;而在难度值到达3时,基本无效算力的比例已经在99%以上了,此时哈希计算的次数在4500左右;而当难度值设定为7时,哈希计算的次数为9千万以上. 由此可见,PoW共识过程中,大量算力都用在了没有意义的哈希计算中.
表 1 无效哈希比例和哈希次数Table 1. Invalid Hashes’ Percentage and Counts of Hashes目标难度值 哈希次数 无效哈希比例/% 1 21 95.24 2 29 96.55 3 4407 99.98 4 6565 99.98 5 749278 100.00 6 1255485 100.00 7 90700714 100.00 根据图8可知,设定难度值为7的情况下,同样时间下,PoW挖掘出一个区块的时间为168 s,而根据图11可知,对MNIST和EMNIST数据集各自进行200轮聚合的联邦学习仅需要25s和78 s左右. 本文的共识是每进行1轮联邦学习的参数聚合就打包1个区块,因此本文的共识机制能够有效地将PoW耗费的大量算力应用在联邦学习中进行高效地训练,大大提升区块链的交易处理性能、降低交易延迟.
5.3 区块链的吞吐量和交易延迟
我们分别实现了基于PoW的区块链系统、基于联邦学习贡献度的区块链FedCoin和本文提出的基于联邦学习的TFchain,并且我们同时实现了TFchain的学习训练池中持续有联邦学习任务只进行PoTF共识的情况和当学习训练池中任务列表为空需要切换共识算法TFchain-Switch这2种情况下的交易吞吐量和交易延迟情况.
根据5.2节中对PoW的算力分析,我们将PoW的挖矿难度设置为4,即要求哈希计算中得到的字符串前4位为0.
由图12和图13可以看出,4种共识算法都会随着一个区块中可以打包的交易数量Blocksize的增加呈近线性增加,而交易的处理延迟随着Blocksize的增加而减少,这是因为随着一个区块可以打包的交易数量的增加,交易就可以更快地上链,从而增加吞吐量和降低交易延迟. 其中,PoTF的吞吐量是4种共识算法中最高的,而交易延迟是最低的,当Blocksize为1000笔时,PoTF的吞吐量可以高达18000 trans/s左右,而交易延迟仅为0.55 s左右.
FedCoin是4种方法中吞吐量最低且交易延迟最大,这是由于FedCoin中联邦学习的过程和参数聚合的过程是在区块链外进行的,仅仅将沙普利值的计算用于区块工作量计算的证明,但是每挖掘一个区块都需要等待学习的结果,因此FedCoin的交易吞吐量比较低. PoW共识算法在挖矿难度值为4的设置下吞吐量排在第三,而TFchain-Switch之所以吞吐量相对于PoTF降低且交易延迟增加,就是因为在没有学习任务的情况下会切换共识算法到共识效率比较慢的PoW算法.
5.4 联邦学习精度分析
本文使用FedAvg[32],FedEnsemble[36],FedGen[37]和FedProx[38]等4种联邦学习的常用模型独立对MNIST[34]和EMNIST[35]数据集进行了联邦学习的CNN模型训练,同步测试了将这些联邦学习模型嵌入到本文设计的区块链框架中的模型训练情况,并且将2种情况进行了对比分析.
使用区块链来发布联邦学习参数应该不会影响联邦学习的精度. 区块链可以提供分散的、可验证的存储,使得参数可以被多个参与方共同访问. 由于区块链的去中心化特性,每个参与方都可以验证自己收到的参数是否与其他参与方收到的参数一致,从而保证了参数的一致性. 根据图14和图15,在将4种模型嵌入到本文的区块链框架中后,2个数据集的模型训练精度都变化不大.
在200轮联邦学习后,MNIST数据集的模型训练精度在使用了4种联邦模型的情况下都达到了90%以上,其中FedGen表现最好,EMNIST的最终精度都在60%以上,也是FedGen表现最好. 嵌入到本文的区块链框架后,不仅没有影响联邦学习的精度,表现反而比原来的训练略有提升. 这是因为区块链一方面通过不可篡改的账本保证了参数的一致性,提供了更安全、更可靠、更分散的参数共享方式;另一方面我们的算法通过服务节点的作恶检测和激励机制一定程度上降低了联邦参与方的作恶行为,因此能够让联邦学习参与方更积极地参与到模型的训练中.
6. 结 论
本文提出了一种基于区块链和联邦学习的全新共识机制和可信区块链框架,旨在解决传统共识机制存在的算力过度耗费和吞吐量低等问题,同时提高联邦学习的效率. 该框架将区块链的节点设置为联邦学习的参与方,通过有效利用原本共识机制中耗费的大量算力来进行本地模型的训练和参与方贡献度的评估,实现了对区块链交易吞吐量的提升以及对联邦学习参与方的合理评估和激励. 同时,本文还设计了一种防止节点作恶的算法,保障了系统的安全性和可靠性. 实验结果表明,所提出的共识机制不仅有效节约了算力资源,提升了区块链的交易处理性能,而且能够防止联邦学习中参与方的作恶行为,并对积极参与联邦学习的参与方进行有效正向的激励.
本文研究为区块链技术和联邦学习的应用提供了一种全新的解决方案,适用于所有需要进行联邦学习的应用,例如医疗信息诊断、物联网信息溯源分类等,本文提出的TFchain在增加联邦学习安全可信性的同时,也增加了区块链的吞吐量,具有实际应用价值和推广意义.
未来工作将从2方面开展研究:1) 本文的共识切换机制是将PoTF与PoW进行切换,后续可以考虑将切换的共识机制变为可插拔的,例如可以变为PoTF与PBFT共识算法的切换等;2) 为了应对强人工智能学习背景下大量联邦学习任务急需执行的情况,可以结合区块链的分片技术,设计全新的区块链结构,将不同的联邦学习任务分流到不同的区块链分片上训练.
作者贡献声明:张宝晨和黄月作为共同第一作者,提出论文整体思路,完成实验,撰写论文;孔兰菊和李庆忠提出指导意见;李文全和郭秋曼疏理算法思路,撰写论文.
-
表 1 符号表
Table 1 Symbol Table
符号 符号描述 符号 符号描述 Ti 标号为i的交易 ES 系统分片 R(Ti) 交易Ti的读集 W(Ti) 交易Ti的写集 TS 传输分片 US 更新分片 Nt TS中节点集合 Writer(Ti) Ti的US集合 nt TS中节点数量 Nu US中节点集合 ft TS可容忍的
拜占庭节点数量nu US中节点数量 fu US可容忍的
拜占庭节点数量表 2 交易集表
Table 2 Transaction Table
交易序号 交易读集 交易写集 交易类型 T1 R(a) W( ) 片内交易 T2 R(a, c, d) W(a, c) 跨片交易 T3 R(b, d, f) W(d, f) 片内交易 T4 R(c, b) W(b) 片内交易 T5 R(b, e) W(e) 跨片交易 T6 R(f) W(f) 片内交易 -
[1] Luu L, Narayanan V, Zheng Chaodong, et al. A secure sharding protocol for open blockchains[C] //Proc of the 2016 ACM SIGSAC Conf on Computer and Communications Security. New York: ACM, 2016: 17−30
[2] Kokoris-Kogias E, Jovanovic P, Gasser L, et al. OmniLedger: A secure, scale-out, decentralized ledger via sharding[C] //Proc of 2018 IEEE Symp on Security and Privacy (SP). Piscataway, NJ: IEEE, 2018: 583−598
[3] Zamani M, Movahedi M, Raykova M. RapidChain: Scaling blockchain via full sharding[C] //Proc of the 2018 ACM SIGSAC Conf on Computer and Communications Security. New York: ACM, 2018: 931−948
[4] Wang Jiaping, Wang Hao. Monoxide: Scale out blockchains with asynchronous consensus zones[C] //Proc of Symp on Networked Systems Design and Implementation (BSDL). Berkeley, CA: USENIX Association, 2019: 95−112
[5] Dang H, Dinh T T A, Loghin D, et al. Towards scaling blockchain systems via sharding[C] //Proc of the 2019 Int Conf on Management of Data. New York: ACM, 2019: 123−140
[6] Al-Bassam M, Sonnino A, Bano S, et al. Chainspace: A sharded smart contracts platform[C/OL] //Proc of the 2018 Network and Distributed System Security Symp. Reston, VA : the Internet Society, 2018[2022-01-12]. http://dx.doi.org/10.14722/ndss.2018.23241
[7] Hellings J, Sadoghi M. Byshard: Sharding in a Byzantine environment[J]. Proceedings of the VLDB Endowment, 2021, 14(11): 2230−2243 doi: 10.14778/3476249.3476275
[8] Faleiro J M, Abadi D J. Rethinking serializable multiversion concurrency control[J]. Proceedings of the VLDB Endowment, 2015, 8(11): 1190−1201 doi: 10.14778/2809974.2809981
[9] Faleiro J M, Abadi D J, Hellerstein J M. High performance transactions via early write visibility[J]. Proceedings of the VLDB Endowment, 2017, 10(5): 613−624 doi: 10.14778/3055540.3055553
[10] Thomson A, Diamond T, Weng S C, et al. Calvin: Fast distributed transactions for partitioned database systems[C] //Proc of the 2012 ACM SIGMOD Int Conf on Management of Data. New York: ACM, 2012: 1−12
[11] Lu Yi, Yu Xiangyao, Cao Lei, et al. Aria: A fast and practical deterministic OLTP database[J]. Proceedings of the VLDB Endowment, 2020, 13(12): 2047−2060 doi: 10.14778/3407790.3407808
[12] Dickerson T, Gazzillo P, Herlihy M, et al. Adding concurrency to smart contracts[C] //Proc of the ACM Symp on Principles of Distributed Computing. New York: ACM, 2017: 303−312
[13] Anjana P S, Kumari S, Peri S, et al. An efficient framework for optimistic concurrent execution of smart contracts[C] //Proc of 2019 27th Euromicro Int Conf on Parallel, Distributed and Network-Based Processing (PDP). Piscataway, NJ: IEEE, 2019: 83−92
[14] Zhang An, Zhang Kunlong. Enabling concurrency on smart contracts using multiversion ordering[C] //Proc of Asia-Pacific Web (APWeb) and Web-Age Information Management (WAIM) Joint Int Conf on Web and Big Data. Berlin: Springer, 2018: 425−439
[15] Chen Zhihao, Qi Xiaodong, Du Xiaofan, et al. PEEP: A parallel execution engine for permissioned blockchain systems[C] //Proc of Int Conf on Database Systems for Advanced Applications. Berlin: Springer, 2021: 341−357
[16] Jin Cheqing, Pang Shuaifeng, Qi Xiaodong, et al. A high performance concurrency protocol for smart contracts of permissioned blockchain[J]. IEEE Transactions on Knowledge and Data Engineering, 2021, 34(11): 5070−5083
[17] Amiri M J, Agrawal D, El Abbadi A. SharPer: Sharding permissioned blockchains over network clusters[C] //Proc of the 2021 Int Conf on Management of Data. New York: ACM, 2021: 76−88
[18] Huang Huawei, Peng Xiaowen, Zhan Jiazhou, et al. BrokerChain: A cross-shard blockChain protocol for account/balance-based state sharding[C] //Proc of IEEE Conf on Computer Communications (IEEE INFOCOM 2022). Piscataway, NJ: IEEE, 2022: 1968−1977
[19] Hong Zicong, Guo Song, Li Peng, et al. Pyramid: A layered sharding blockchain system[C] //Proc of IEEE Conf on Computer Communications (IEEE INFOCOM 2021). Piscataway, NJ: IEEE, 2021: 1−10
[20] Hellings J, Sadoghi M. The fault-tolerant cluster-sending problem[C] //Proc of Int Symp on Foundations of Information and Knowledge Systems. Berlin: Springer, 2022: 168−186
-
期刊类型引用(6)
1. 张晶辉,张起嘉,刘海,田有亮,李凤华. 面向数据出域安全的鲁棒认证密钥协商协议. 通信学报. 2025(02): 29-43 . 百度学术
2. 孔燕燕,江明明,闫一然,葛徽. 格上高效的支持多属性机构属性签名方案. 淮北师范大学学报(自然科学版). 2025(01): 56-61 . 百度学术
3. 徐鑫,高金,张千舸,于迎梅,杨景超. 基于AES加密的区块链节点授信与身份共识研究. 新乡学院学报. 2024(06): 34-39 . 百度学术
4. 王波,徐昊. 多租户虚拟专用网跨域单点登录认证方法仿真. 计算机仿真. 2024(09): 407-411 . 百度学术
5. 杨光. 融合支持向量内积与模糊搜索算法的区块链安全管理方法研究. 伊犁师范大学学报(自然科学版). 2024(03): 65-70 . 百度学术
6. Jing He,Xiaofeng Ma,Dawei Zhang,Feng Peng. Supervised and revocable decentralized identity privacy protection scheme. Security and Safety. 2024(04): 113-135 . 必应学术
其他类型引用(8)