区块链与联邦学习的研究

2022-10-04 11:28:25 浏览数 (2)

大家好,又见面了,我是你们的朋友全栈君。

本文分别介绍了区块链与联邦学习的研究现状、架构和运行原理、主要技术及局限性,并针对区块链与联邦学习所存在的问题,通过分析区块链与联邦学习各自的特点,探讨了如何将区块链与联邦学习进行融合互补,介绍了两种融合模型及其应用场景。


文章目录

  • 1. 区块链概述
    • 1.1 区块链的研究现状
    • 1.2 区块链的架构及其运行原理
    • 1.3 区块链的主要技术
      • 1.3.1共识算法
      • 1.3.2智能合约
    • 1.4 区块链的局限性
  • 2. 联邦学习概述
    • 2.1联邦学习的研究现状
    • 2.2联邦学习的定义及分类
    • 2.3联邦学习的局限性
  • 3. 区块链与联邦学习的互补与融合
    • 3.1模型概述
    • 3.2应用场景
  • 3.3总结与挑战
  • 参考文献

1. 区块链概述

1.1 区块链的研究现状

2008年10月,化名为“中本聪”的学者在密码学论坛上公开了《比特币:一种点对点的电子现金系统》一文[1],提出了利用PoW和时间戳机制构造交易区块的链式结构,剔除了可信第三方,实现了去中心化的匿名支付。比特币于2009年1月上线并发布创世块,标志着首个基于区块链技术应用的诞生。2010—2015年,比特币逐渐进入大众视野。2016—2018年,随着各国陆续对比特币进行公开表态以及世界主流经济的不确定性增强,比特币的受关注程度激增,需求量迅速扩大。事实上,比特币是区块链技术最成功的应用场景之一。2015年12月,英国政府发布了《分布式账本技术:超越区块链》[2],预测区块链将引起新一轮技术变革,建议加快区块链理论推广与应用开发进程。我国工信部于2016年10月发布了《中国区块链技术与应用发展白皮书(2016)》[3]。国务院在《“十三五”国家信息化规划》中将区块链列入战略性前沿科技之一。同年,世界经济论坛也对区块链在金融场景下的应用进行预测分析,认为区块链将在跨境支付、保险、贷款等多方面重塑金融市场基础设施。

目前区块链的发展可以分为如下3个阶段[4]。

1)区块链1.0—称为可编程货币阶段。 区块链技术是伴随着数字货币比特币而生,随后还产生了莱特币(Litecoin)、以太币(Ether)等数字货币。数字货币在支付过程中,不再需要中心权威机构参与,降低了支付成本,对传统的金融市场有强烈的影响。

2)区块链2.0—可编程金融系统。 在比特币成功应用以后,研究者将其应用扩展到其他的金融领域。智能合约(smart contract)的理念在1995年就已经被法律学者尼克·萨博提出来,但是由于技术问题一直被搁置。区块链很好地解决了智能合约中的技术难题,使得可编程的智能合约可被应用于金融领域。区块链的应用范围从单一的数字货币扩展到其他金融领域。

3)区块链3.0—可编程社会。 随着区块链技术的发展,区块链开始被应用于物联网、智慧农业、医疗、供应链、匿名投票等领域。由此,区块链技术已经开始对互联网产生了根本的影响。区块链可以分为3个类别,分别是以比特币为代表的公开的公有链、半公开状态的组织内部使用的联盟链以及完全封闭的私有链。 伴随着以太坊等开源区块链平台的诞生以及大量去中心化应用的落地,区块链技术在更多的行业中得到了应用。从记账的角度出发,区块链是一种分布式账本技术或账本系统; 从协议的角度出发,区块链是一种解决数据信任问题的互联网协议;从经济学的角度出发,区块链是一个提升合作效率的价值互联网。近年来,区块链逐渐从加密数字货币演变为一种提供可信区块链即服务的平台,各行各业均对区块链青睐有加,积极探索“区块链 ”的行业应用创新模式。区块链包含社会学、经济学和计算机科学的一般理论和规律,就计算机技术而言,包含分布式存储、点对点网络、密码学、智能合约、拜占庭容错和共识算法等一系列复杂技术。由于跨学科融合支撑,使得区块链构建了一个在数字世界中自治理、可信赖、可溯源的系统。

当前区块链的广泛应用,主要是利用了其以下特点[5]: 1)身份管理。区块链通过哈希地址以及权限认证等,实现对参与节点的安全管理。 2)数据记录。借助非对称加密(如椭圆曲线)、哈希算法等技术,区块链上的数据具有透明、可追溯、防篡改等特性。 3)激励机制。区块链通过激励机制,如数字货币,确保参与方共同维持区块链的运转。 4)共识机制。共识机制是区块链在分布式节点间保证数据安全可靠的关键。通过共识机制,各个参与方对数据进行认证,可以有效降低数据被篡改的风险,确保链上数据的一致性。

1.2 区块链的架构及其运行原理

区块链通用层次化技术结构(如图1.1[6]),自下而上分别为网络层、数据层、共识层、控制层和应用层。其中,网络层是区块链信息交互的基础,承载节点间的共识过程和数据传输,主要包括建立在基础网络之上的对等网络及其安全机制;数据层包括区块链基本数据结构及其原理;共识层保证节点数据的一致性,封装各类共识算法和驱动节点共识行为的奖惩机制;控制层包括沙盒环境、自动化脚本、智能合约和权限管理等,提供区块链可编程特性,实现对区块数据、业务数据、组织结构的控制;应用层包括区块链的相关应用场景和实践案例,通过调用控制合约提供的接口进行数据交互。

图1.1 区块链层次化技术结构

以比特币为例,区块链工作原理具体如下: 1)节点构造新的交易,并将新的交易向全网进行广播。 2)接收节点对收到的交易进行检验,判断交易是否合法,若合法,则将交易纳入一个新区块中。 3)全网所有矿工节点(网络中具有对交易打包和验证能力的节点)对上述区块执行共识算法,选取打包节点。 4)该节点通过共识算法将其打包的新区块进行全网广播。 5)其他节点通过校验打包节点的区块,经过数次确认后,将该区块追加到区块链中。

比特币系统的数据结构如图1.2所示,比特币中的交易被组织成为默克尔树结构。交易均被存储在默克尔树的叶子节点上,通过两两合并哈希直至得到根节点。根节点的哈希值作为一个区块头的元素,除此之外,区块头还包括时间戳、Nonce 和前一区块哈希值等。Nonce是矿工完成工作量证明算法时的输入,也是矿工获取奖励的凭证。区块头包含前一区块的哈希值,使得每一个区块逻辑上以链的方式串联起来。默克尔树结构可使得在仅有部分节点的情况下,快速验证交易的有效性,并大幅减少节点的存储空间。

图1.2 比特币系统的数据结构

1.3 区块链的主要技术

1.3.1共识算法

区块链系统的节点可自由加入组织,具备自治性,为更好适应区块链系统,大多系统采用P2P网络进行数据传播。P2P网络中的每个节点均会承担网络路由、验证区块数据、传播区块数据、发现新节点等功能。为驱使区块链中的节点有效参与共识过程,区块链的共识算法包括设计合理的经济激励机制和公平选取特定的打包节点。

区块链网络中的共识算法包括工作证明(proof of work,PoW)、权益证明(proof of stake,POS)、委托权益证明(delegated proof of stake,DPOS)、实用拜占庭容错(practical byzantine fault tolerance,PBFT)算法以及在物联网领域兴起的一种基于有向无环图的缠结共识算法(tangle)。下面将详细介绍各共识机制的工作原理及其应用领域。

1)PoW PoW算法最早在比特币中使用,其核心思想是通过节点的算力竞争来选取打包节点。比特币系统中的各节点基于各自的计算机算力相互竞争来共同解决一个求解复杂但是验证容易的SHA256数学难题,最快解决该难题的节点将获得下一区块的记账权和系统自动生成的比特币奖励。矿工通过不断尝试随机数使得计算得到的区块哈希值小于难度值,当找到合适的随机数后,广播该随机数和对应区块,随后其他节点验证该区块的合法性,因此,算力越高,得到记账权的几率越大。基于PoW的区块链(如比特币)的去中心化程度较高,节点可以自由进出系统,基于算力竞争的共识算法可以最多抵抗50%攻击。

然而,PoW也存在明显的缺陷,其矿工重复和循环的算力消耗造成巨大资源浪费,而且长达10min的交易确认时间使其不适合小额交易的商业应用。比特币每秒最多能够处理7笔交易,可用性较低。而且PoW方式容易造成矿工联合成集中式的矿池,背离了原来去中心化的初衷,也提升了矿工集体合谋进行51%攻击的可能性。PoW中区块是概率确定的,如果追加在区块上的区块数越多,那么该区块的确定性越高,比特币系统认为有6个区块确认才能认为该区块是确定的,也就是一笔交易的确认需要至少1h的时间。

2)PoS PoS算法的提出是为了解决PoW巨大能源浪费的问题。PoS由系统中具有最高权益而非最高算力的节点获得记账权,其中权益体现为节点对系统虚拟资源的所有权,Peercoin 是币龄或币天数。Peercoin中的挖矿难度由币龄决定,拥有更多币龄的用户有更高的概率决定下一个区块并获得出块的奖励,在成功出块后相应的币龄会清空,这样可以保证区块链的有效性由具有经济权益的用户来保障,同时避免PoW的大量能源消耗。

PoS共识算法中的权益一般指用户在区块链上的虚拟资源,常用持有token数量或持有token时间来衡量。根据用户持有权益的大小决定该用户挖矿的难度,权益越高,挖矿的难度就越低。通过权益的大小来决定记账权可以有效避免资源浪费,进而缩短出块时间和交易的处理时间。PoS可以通过提高区块链系统的每秒事务处理量提高可用性。PoS共识算法的去中心化程度较高,节点可以方便加入或者退出区块链系统。基于PoS的系统仍然需要进行挖矿,且区块的确定性也是概率型的,需要其他多个节点对区块确认后完成最终确定。

3)BFT 在BFT算法中,当拜占庭节点不超过总节点数的1/3时,拜占庭将军问题才能解决。原始的BFT算法分为口头协议和书面协议。在口头协议中,节点之间需要将接收到的“命令”相互传输,最终根据得到的各个节点的信息确定最终结果。书面协议需要对传输的信息进行签名验证,该协议可以防止拜占庭节点随意更改接收到的信息,使最终结果更加可靠。实用拜占庭容错(PBFT)算法的提出解决了原始BFT算法信息传输复杂度较高的问题。PBFT主要包括3个阶段:预准备,准备,提交。该算法可以较快达到最终结果,但是PBFT不适用于大规模的公链场景,因为节点越多,通信时间越长,共识成本较高,所以PBFT适用于节点较少的联盟链或者私链,例如Hyperledger Fabric。PBFT主要解决原始BFT共识算法效率较低的问题,将通信复杂度从指数级降低到二次方级别,使其能够在实际系统中使用。

4)DPoS DPoS共识的基本思路类似于“董事会决策”,即系统中每个节点可以将其持有的股份权益作为选票授予一个代表,希望参与记账并且获得票数最多的前N个代表节点将进入“董事会”,按照既定的时间表轮流对交易进行打包结算并且生产新区块。如果说PoW和PoS共识分别是“算力为王”和“权益为王”的记账方式的话,DPoS 则可以认为是“民主集中式”的记账方式,其不仅能够较好地解决PoW 浪费能源和矿池对去中心化构成威胁的问题,也能够弥补PoS中拥有记账权益的参与者不希望参与记账的缺点,其设计者认为DPoS是当时最快速、高效、去中心化和灵活的共识算法。DPoS 共识算法可与PBFT 一起使用,先通过DPoS的方式在区块链系统中选取一定数量的出块者,当出块者生成一个区块后,用PBFT 算法在所有出块者中进行区块共识,当PBFT共识过程结束才能将区块记录在账本中。

在DPoS共识算法下,用户通过抵押一定数量的权益成为记账候选人,其他用户利用投票结果来确定记账候选人的排名,得到票数最多的几个节点拥有某个时间片的记账权,例如EOS设置票数最多的21个节点为记账节点。投票排名会在一段时间后更新,重新选择出块者。DPoS共识因为共识节点数量较少,节点间的通信速度快,可以快速完成区块打包、广播以及验证,显著提升系统TPS,增强平台应用的可用性。DPoS算法中参与记账的节点大幅减少,因此其是通过牺牲去中心化为代价而实现TPS的提升。

5)共识算法对比 基于共识算法评价标准,表1.1对PoW、PoS、DPoS、PBFT的性能、去中心化程度、容错节点比例、确定性和资源消耗方面进行性能对比。 表1.1 常用共识算法性能对比结果

在“不可能三角”的评价体系中,任何的共识算法都无法达到3个特性的最好状态,需要在3个特性中进行权衡。PoW选择了去中心化和安全性,但可用性较低。PoS相对于PoW节约能源,但是不够灵活。PBFT算法保证了去中心化和安全性,但存在大规模节点时可用性较差。DPoS算法选择了高可用性和安全性,但是去中心化程度较低。

目前的区块链系统中还没有各方面性能都最优的共识算法,只能通过权衡系统需求达到特定的目标。在保证区块链系统安全性的同时,要不断提升可用性以适用于大规模应用,同时在满足一定的去中心化程度的情况下中的用户能积极参与到共识中,并使所有参与投票、共识、验证的节点能够从中获利,所以共识算法的经济激励也是不可或缺的一部分。只有充分使系统中的资源流通以及用户交互、参与,才能实现区块链系统的稳固运行。

1.3.2智能合约

智能合约是一套以数字形式定义的承诺,包括合约参与方可以在其上执行这些承诺的协议。这些承诺指的是合约参与方同意的权利与义务,并且在智能合约中定义了实施办法。由此可见,智能合约不一定需要使用区块链技术,只是因为区块链技术能够较好地支持智能合约。简言之,智能合约是传统合约的数字化版本,在区块链上是可执行程序。与传统程序一样,区块链智能合约拥有接口部分,接口可以接收和响应外部消息,并处理和储存外部消息。

在加密货币中,类似智能合约的功能为:1)验证交易中的签名是否正确;2)验证交易的输入和输出金额是否匹配;3)更新输入和输出账户的余额状态。以比特币为例,比特币只有不到200种操作命令,通过栈式脚本语言完成上述动作,实现转账功能。

智能合约不是直接运行在区块链节点已知的环境中,因为合约代码如果直接操作区块链,尤其是写区块链的数据,会导致合约不受管制,破坏区块链数据结构,威胁区块链节点的安全,所以智能合约必须在隔离的沙箱环境中运行。合约运行环境和宿主系统之间、合约与合约之间通过沙箱环境有效隔离,这既符合解耦合的设计,也提升了智能合约的安全性。目前,主流区块链平台对沙箱的支持主要包括虚拟机和容器,它们都能有效保证合约代码在沙箱中独立执行。

1.4 区块链的局限性

当前,区块链技术仍面临一些挑战。首先,是计算和认证的效率问题。为了达成各个分布式参与方之间的记录一致,区块链需要消耗大量额外的计算资源。传统的共识认证机制如工作量证明(PoW)等,虽然提升了区块链的安全性,但高昂的计算开销也成为了制约区块链出块速度的瓶颈。如何提高区块链交易认证的效率,是提升区块链计算效率的关键。其次,是如何实现区块链智能化。智能合约的提出,拓宽了区块链的应用范围,然而智能合约的“智能”仍然有待进一步加强。如何基于区块链,实现网络的边缘智能,需要进一步的研究。

2. 联邦学习概述

联邦学习是一种分布式的机器学习方法,即参与方对本地数据进行训练后将更新的参数上传至服务器,再由服务器进行聚合得到总体参数的学习方法。与传统机器学习技术相比,联邦学习不仅可以提高学习效率,还能解决数据孤岛问题,保护本地数据隐私。

2.1联邦学习的研究现状

在当前人工智能和深度学习浪潮中,存在两个突出而尖锐的难题——“数据孤岛”难题和隐私安全难题。在这个背景下,联邦学习应运而生。联邦学习在2016年由谷歌最先提出,用于建立移动终端与服务器之间的共享模型,从而在大规模数据背景下有效地利用这些数据资源,并且保证用户的隐私安全。但这些分散地数据大多是异构且不平衡的,为此,Jakub等提出了一个实用高效地优化算法来处理数据分布问题。之后,又有大量地研究来进一步优化联邦学习模型,如文献[7]提出了两种方法来减小通信消耗,从而实现更加髙效的训练过程;文献[8]解决了之前联邦学习机制中共享模型可能会偏向于某些参与方的问题,保证了参与方间的公平性;文献[9]提出单样本/少样本探索式的学习方法来解决压缩式联邦学习中的通信问题。

联邦学习一经推出,就受到广泛的关注。各大科技金融龙头也开始进行开源项目的搭建,如WeBank开发地FATE、Google推出的Tensor Flow Federated(TFF)、Uber开源的Horovod等。联邦学习已经被广泛应用于无线通信与边缘计算、智慧金融、智慧医疗、环境保护等领域,未来有望改变时代的商业模式,深入影响到智能城市的建设。

2.2联邦学习的定义及分类

联邦学习面向的场景是分散式多用户{

0 人点赞