CN113191530B - 一种具有隐私保护的区块链节点可靠性预测方法及*** - Google Patents
一种具有隐私保护的区块链节点可靠性预测方法及*** Download PDFInfo
- Publication number
- CN113191530B CN113191530B CN202110382048.3A CN202110382048A CN113191530B CN 113191530 B CN113191530 B CN 113191530B CN 202110382048 A CN202110382048 A CN 202110382048A CN 113191530 B CN113191530 B CN 113191530B
- Authority
- CN
- China
- Prior art keywords
- user
- neural network
- central server
- block chain
- multilayer neural
- 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.)
- Active
Links
Images
Classifications
-
- 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
- G06Q10/00—Administration; Management
- G06Q10/04—Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Bioethics (AREA)
- Strategic Management (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Human Resources & Organizations (AREA)
- Economics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Entrepreneurship & Innovation (AREA)
- Development Economics (AREA)
- Computer Hardware Design (AREA)
- Game Theory and Decision Science (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Computer Security & Cryptography (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种具有隐私保护的区块链节点可靠性预测方法及***,无需将用户拥有的敏感数据传送至中心服务器进行训练,只需要每个参与的用户通过本地自己拥有的数据共同训练一个全局模型,每个用户通过自己本地的数据不断去修正全局模型,最后共同训练出来的全局模型适用于各个用户。在整个训练过程中,用户只需要传递训练后的模型到中心服务器,中心服务器通过聚合本地训练后的模型来更新全局模型,再传递更新后的全局模型给用户,不断迭代这个过程直至达到预定误差范围内。这个过程不涉及用户敏感数据的传递,只传递了训练模型,有效地保护了用户隐私。
Description
技术领域
本发明涉及一种数据预测方法及***,尤其涉及一种具有隐私保护的区块链节点可靠性预测方法及***。
背景技术
近年来,区块链技术因其去中心化,不可逆,可追溯等特性引起了学界和工业界广泛的关注。区块链技术除了应用在数字货币上,还被应用在金融、社会服务、风险管理和医疗设施等领域。在公共区块链***中,用户通常需要连接第三方对等网络或运行对等网络加入P2P区块链网络。然而,连接到不可靠的区块链节点会导致用户浪费资源,比如imToken服务器节点出现同步故障,导致用户可能因为转账超时或收款没有记录而重复发送交易,造成一定的经济损失。因此,区块链用户选择可靠的区块链节点进行连接是非常重要的。直至2021年3月,以太坊***大约有超过6000个区块链节点。单个用户不大可能同时连接所有区块链节点以测试节点的可靠性,因为这样做非常耗时和浪费资源,而且因为网络***的复杂性,每个区块链节点对不同用户的可靠性是不一样的,所以需要针对每个用户做个性化的预测。
协同过滤(CF)作为一种典型的方法,在web服务可靠性预测中得到了广泛的应用。CF可分为基于邻域和基于模型的协同过滤两类。大多数基于领域的协同过滤方法是利用了相似的邻域的历史调用信息进行预测,基于邻域的协同过滤可分为基于用户的协同过滤和基于项目的协同过滤。郑等人提出了一个基于邻域的混合模型,它集成了基于用户和基于项目的协同过滤方法。随着互联网上服务数量的迅速增加,用户只能获得少量的QoS(服务质量)值。基于邻域的方法容易受到数据稀疏性的影响,导致相似性计算的不准确。并且,如果数据集过于庞大,会导致相似度计算的时间复杂度随着网络服务的规模而增加。而基于模型的协同过滤可以有效地解决这些问题。矩阵分解(MF)作为一种基于模型的CF技术,以其良好的可扩展性和高精度而成为最著名的web服务可靠性预测方法之一。朱等人提出了自适应矩阵分解模型(AMF),是基于传统的MF模型开发的。吴等人提出了一种通用的对上下文敏感的矩阵分解方法。尽管MF具有协同过滤的有效性,但内积简单地将潜在特征的乘法线性地结合起来,可能不足以捕捉用户交互数据的复杂结构。神经网络已被证明能够逼近任何连续函数,最近,深度神经网络(DNNs)被发现在从计算机视觉、语音识别到文本处理的几个领域都是有效的。所以有学者将他们引入了web可靠性预测,这有效地提高了预测的精度。高等人提出了一种模糊C均值(FCM)结合神经网络协同过滤(NCF)的模型。吴等人提出了一种多任务结合上下文的神经网络协同过滤模型。而针对区块链节点可靠性的预测,郑等人提出了一个混合的区块链可靠性预测模型(H-BRP),从请求历史记录中提取区块链相关的因子(区块哈希值,区块高度,请求往返时间等),然后为每个用户生成个性化的预测。许等人提出了一个基于矩阵分解的区块链可靠性预测模型(BSRPF)。
但这些方法并没有考虑到用户的隐私保护问题,有学者将局部敏感哈希(LSH)技术引入web服务可靠性预测用来保护用户数据隐私。齐等人提出了一种基于经典的局部敏感哈希(LSH)技术的智能城市工业环境的隐私感知数据融合和预测方法,但这只能应用于云计算与边缘计算结合的场景,虽然有效地保障了云中心无法访问用户的原始数据,但这些包含了用户的敏感数据仍然会暴露给边缘服务器。
以上所有方法都需要用户将数据发送给第三方,但数据的敏感性质意味着将其存储在集中式位置存在风险和责任。这可能会导致用户不愿意将数据上传到第三方,因此如何在保护用户隐私的情况下进行准确地预测是需要解决的问题。
随着物联网技术的发展,用户数据正在以***式的速度在增长。连接互联网的智能设备,包括手机、可穿戴设备、家用电器、传感器和车辆,已成为世界许多地区日常生活的一部分。虽然这些设备的所产生的数据是应用开发者的宝贵资产,但这些数据有可能泄露了用户的敏感数据,导致用户不愿将数据传送给应用开发者,尽管这样做会损失一定的服务质量。另一方面,各国都在加强对数据安全和隐私的保护,欧盟最近引入的新法案《通用数据保护条例》(Genera lData Protection Regulation,GDPR)表明,对用户数据隐私和安全管理的日趋严格将是世界趋势。针对公共和立法压力,公司正在寻求实用和可用的技术解决方案来解决他们的数据隐私问题。如何解决数据可用性和数据敏感性问题成了工业界和学术界共同探讨的问题。针对手机终端和多方机构数据的隐私问题,谷歌公司和微众银行分别提出了不同的“联邦学习”(Federated Learning)算法框架。联邦学习技术提倡使用一种替代方法,将训练数据分布在移动设备上,并通过聚合本地计算的更新来学习共享模型,这是对2012年美国白宫关于消费者数据隐私的报告中提出的集中收集或数据最小化原则的直接应用。因此,引入联邦学习可以有效地保护了用户隐私而且可以有效地预测服务的可靠性。
发明内容
本发明实施例所要解决的技术问题在于,提供一种具有隐私保护的区块链节点可靠性预测方法及***。可利用联邦学习技术来保护用户的敏感数据,并采用神经网络协同过滤保证用户进行个性化的web服务可靠性预测的准确性,而且引入用户和区块链节点的上下文信息。
为了解决上述技术问题,本发明实施例提供了一种具有隐私保护的区块链节点可靠性预测方法,包括以下步骤:
步骤一:用户向若干个区块链节点发送请求,并记录反馈数据,计算所述反馈数据的各个请求的往返时间计算成功率;
步骤二:中心服务器收集区块链节点的上下文信息并转换为编号;
步骤三:存储用户可能出现的上下文信息;
步骤四:初始化全局多层神经网络模型,将用户IP、区块链节点IP的编号和对应的上下文信息的编号作为输入特征将其转换为具有单热编码的二进制稀疏向量;
步骤五:将用户潜在特征向量和区块链节点潜在特征向量和上下文潜在特征向量拼接一起输入到多层神经结构中,并输出预测值;
步骤六:中心服务器把全局模型随机发送给部分或全部用户进行训练;
步骤七:用户将训练后的全局模型传回中心服务器
步骤八:中心服务器聚合用户模型,并将最后与用户共同训练的全局模型发给所有用户;
步骤九:用户将训练好的模型在本地进行预测。
其中,所述步骤一具体包括:
用户随机选取区块链***中的多个区块链节点,并批量向区块链节点发送请求,在设定时间内收集对应节点返回的区块链数据,所述区域链数据包括被请求区块链对等节点的高度以及该高度所对应的哈希值。
其中,所述用户可能出现的上下文信息包括国家、时区信息。
其中,所述用户IP、区块链节点IP由所述中心服务器分配,所述用户IP、区块链节点IP的编号和对应的上下文信息的编号进行独热编码表示。
其中,所述步骤四还包括将所述二进制稀疏向量乘以嵌入层矩阵,得到对应的密集向量,即潜在特征向量。
其中,所述步骤六还包括,收到全局模型的用户利用本地数据和中心服务器提供的区块链节点的上下文信息对全局模型进行训练,用户将用户IP的编号、区块链节点IP的编号、用户与请求区块链节点上下文编号转换为具有单热编码的二进制稀疏向量,并作为输入层向量输入全局模型,模型预测的结果和用户本地数据中的成功率进行比较,修正模型,在本地迭代训练过程若干次,并将训练后的全局模型传回所述中心服务器。
其中,还包括步骤十:用户利用最新的收集到的数据,与中心服务器周期性的训练模型。
实施本发明实施例,具有如下有益效果:本发明方法无需将用户拥有的敏感数据传送至中心服务器进行训练,只需要每个参与的用户通过本地自己拥有的数据共同训练一个全局模型,每个用户通过自己本地的数据不断去修正全局模型,最后共同训练出来的全局模型适用于各个用户。在整个训练过程中,用户只需要传递训练后的模型到中心服务器,中心服务器通过聚合本地训练后的模型来更新全局模型,再传递更新后的全局模型给用户,不断迭代这个过程直至达到预定误差范围内。这个过程不涉及用户敏感数据的传递,只传递了训练模型,有效地保护了用户隐私。
附图说明
图1是本发明的整体示意图;
图2是用户批量向随机选取的多个区块链节点请求数据的示意图;
图3是中心服务器与随机选取的用户节点共同训练模型的示意图;
图4是全局多层神经网络模型的结构示意图;
图5是区块链***1参数嵌入层潜在特征向量维度(dimension)对实验结果的影响的示意图;
图6是区块链***2参数嵌入层潜在特征向量维度(dimension)对实验结果的影响的示意图;
图7是区块链***1参数数据密度(density)对实验结果的影响的示意图;
图8是区块链***2参数数据密度(density)对实验结果的影响的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。
本发明实施例的一种具有隐私保护的区块链节点可靠性预测方法,包括以下步骤:
(1)步骤一至步骤六为数据收集过程;
(2)步骤七至步骤十一为模型训练过程;
(3)步骤十二为模型预测过程;
(4)步骤十三为新的一个周期。
步骤一:用户数据收集。
用户随机选取区块链***中的多个区块链节点,并批量(即同时)向区块链节点发送请求,在设定时间内收集对应节点返回的区块链数据,这些数据包括被请求区块链对等节点的高度以及该高度所对应的哈希值。比如用户A在t0时刻向区块链***中的B,C,D区块链对等节点同时发送请求,并在设定时间s内(即t0+s时刻前)收集数据,如果超出设定时间,则为请求失败。
步骤二:区块链节点返回数据。
区块链节点接收用户请求并将反馈数据(包括区块高度和该区块高度所对应的哈希值)传回用户。
步骤三:用户记录区块链节点的反馈数据。
用户记录区块链节点的反馈数据(包括区块高度和该区块高度所对应的哈希值)并记录向各个区块链节点发出请求的往返时间,并重复步骤一、步骤二多次,以保证数据的稳定性。
步骤四:用户将区块链节点反馈的数据以及各个请求的往返时间计算成功率,但数据(包括原始数据和计算后的数据)保存在本地不上传至中心服务器。
用户根据已经设定的两个参数,(参数1(MAX_BLOCK_BACK),参数2(MAX_RTT),MAX_BLOCK_BACK意思是同批次的被请求的区块链节点的区块高度与同批次中的拥有最高区块高度的差值的容忍值,比如用户A在t0时刻向区块链***中的B,C,D区块链节点同时发送请求,如图4所示,节点C拥有批量中最高区块高度140,节点B的区块高度为112,节点D的区块高度为130,那么节点C的区块高度与批量中最高区块高度差值为0,节点D为10,节点B为28,假如将MAX_BLOCK_BACK设置为12,C、D是小于容忍值的,B是大于容忍值的;MAX_RTT是用户从发送请求到接收数据的经过的时间的容忍值)和收集到的数据计算自己与各个请求的区块链节点的成功率。的成功率与三个值有关,它们分别是(1)请求节点当前高度所对应的区块哈希值;(2)各个请求节点的当前区块高度与批次中的拥有最高区块高度的节点的区块高度的高度差,如图4所示,比如用户A在t0时刻向区块链***中的B,C,D区块链节点同时发送请求,如图4所示,节点C拥有批量中最高区块高度140,节点B的区块高度为112,节点D的区块高度为130,那么节点C的区块高度与批量中最高区块高度差值为0,节点D为10,节点B为28;(3)请求往返时间。
用户i对节点j请求成功当且仅当(1)中的哈希值与区块链***中主链相应高度的哈希值一致,(2)中的高度差与(3)中的往返时间小于设定参数,否则,为请求失败。计算成功率的公式如下所示:
TotalRequesti,j=SuccessRequesti,j+FailureRequesti,j (1)
注:SuccessRate指成功率,TotalRequest指的是所有请求次数,SuccessRequest指成功请求次数,FailureRequest指失败请求次数。
步骤五:中心服务器收集区块链节点的上下文信息(包括国家、时区等地理信息)。
中心服务器将收集到的区块链节点的上下文信息转换为编号,具体方式为:中心服务器收到的关于区块链上下文的国家上下文信息的国家集合是{China,USA,Canada,Japan,....},那么将这个集合编成字典的形式,{China:0,USA:1,Canada:2,Japan:3,....},如果A区块链节点的国家上下文信息是China,那么A区块链节点的国家上下文信息对应的编号是0,B区块链节点的国家上下文信息是USA,那么B区块链节点的国家上下文信息对应的编号是1,C区块链节点的国家上下文信息是China,那么C区块链节点的国家上下文信息对应的编号是0,D区块链节点的国家上下文信息是Canada,那么D区块链节点的国家上下文信息对应的编号是2,其他区块链节点上下文信息转换过程同理。
步骤六:存储用户可能出现的上下文信息。
存储用户可能出现的上下文信息(包括国家、时区等地理信息),这些信息来自于现实世界,而不是来自于用户,比如世界上总共有233国家和地区,而用户群体可能只是来自其中100个国家,它们两的关系类似集合和它的子集的关系,这样做的目的是不需要向用户收集地理位置等敏感信息,所以将存储233国家和地区的信息。与区块链的节点的上下文信息转换成编号的过程不同的是,因为不能确切的知道用户来自哪些国家或地区,只能给出所有可能出现的国家集合,先将这些国家编号,比如{China,USA,Canada,Japan,....,France},集合中包含了233个元素,它们对应的编号从0开始依次递增。那么将这个集合编成字典的形式{China:0,USA:1,Canada:2,Japan:3,....,France:232}。因为中心服务器并没有收集用户上下文信息,所以用户可以根据自己的上下文信息的键(key)从中心服务器提供的用户上下文信息的字典中查询值(value),比如A用户的国家上下文信息是China,那么A用户查询到的国家上下文新的的值(value)是0,其他用户上下文信息转换过程同理。
步骤七:初始化一个全局多层神经网络模型(包括用户、区块链节点以及它们所对应的上下文信息的嵌入矩阵),如图4所示。
图4所描述的过程(其中每一层的输出作为下一层的输入):
步骤7.1:使用用户IP和区块链节点IP的编号和它们所对应的上下文信息的编号作为输入特征(用户IP的编号是中心服务器分配的,从0开始不断递增,比如用户IP集合为{167.99.208.120,219.117.201.187,116.62.100.69,....},那么给用户IP(167.99.208.120)编号为0,用户IP(219.117.201.187)编号为1,用户IP(116.62.100.69)编号为2,依此类推。区块链节点IP的编号同理,上下文信息的编号可以参考步骤五、六)将其转换为具有单热编码的二进制稀疏向量;
步骤7.2:在输入层之上是嵌入层,它是一个完全连接的层,将稀疏向量表示投影到一个密集向量,即潜在特征向量;
步骤7.3:将用户潜在特征向量和区块链节点潜在特征向量和上下文潜在特征向量拼接在一起输入到多层神经结构中,称之为神经协作过滤层;
步骤7.4:最后输出预测值。
上述步骤7.1的具体实现:对于用户IP和区块链节点IP的编号和它们所对应的上下文信息(国家、时区、服务提供商等)的编号需要先对他们进行独热编码表示。独热编码采用N位状态来对N个状态进行编码,每个状态都有他独立的位,并且在任意时候只有一位有效。如用户IP的编号的集合是{0,1,2,3,4},进行独热编码后集合就变成了{10000,01000,00100,00010,00001},其他输入特征同理。
上述步骤7.2的具体实现:将步骤7.1得到的二进制稀疏向量,乘以嵌入层矩阵,得到对应的密集向量(即潜在特征向量),该过程称为Embedding。从步骤7.1中,知道用户IP编号为1对应的二进制稀疏向量是B=[0 1 0 0 0],假设的用户嵌入矩阵是A(参考下文式子(4)),那么用户IP编号为1所对应的密集向量C=BA。那么C=[0.23,0.96,0.47]就是用户IP编号为1所对应的密集向量,其他输入特征同理。计算过程如下:
B=[0 1 0 0 0] (3)
步骤八:中心服务器把全局模型随机发送给部分或全部用户。
中心服务器把全局模型随机发送给部分或全部用户,比如总的用户有100个,选取的比例为0.1,那么每次只随机选取10个参与全局模型的训练,这是模拟现实情况的,比如某个时段有一些计算机正好闲置,可以进行模型训练,中心服务器就将全局模型发给这些闲置的用户进行训练。
步骤九:用户训练模型,并将训练后的模型传回中心服务器。
收到全局模型的用户利用本地数据和中心服务器提供的区块链节点的上下文信息对全局模型进行训练(这些本地数据包括用户对请求的区块链节点的成功率、用户自己的上下文信息、用户IP、请求的区块链节点IP),
用户将自己的上下文信息的转换为对应的编号的流程是,用户根据自己的上下文信息的键(key)从中心服务器提供的用户上下文信息的字典(参考步骤六中提到的字典)中查询值(value),比如A用户的国家是China,中心服务器中用户上下文信息的字典中键(key)China的值(value)是0,所以A用户的国家对应的编号是0,其他用户上下文信息同理。请求区块链节点的上下文信息转换为对应的编号的过程可参考步骤五。用户IP与请求区块链节点IP转换为对应的编号的过程可参考步骤七中的步骤7.1。然后将这些编号(用户IP的编号,区块链节点IP的编号,用户与请求区块链节点上下文编号)作为输入特征,将其转换为具有单热编码的二进制稀疏向量,将二进制稀疏向量作为输入层向量输入全局模型(全局模型如图4所示)模型预测的结果和用户本地数据中的成功率进行比较,修正模型,在本地迭代这个训练过程数次,并将训练后的全局模型传回中心服务器。
步骤十:中心服务器聚合用户模型。
中心服务器将收集到的用户训练后的全局模型参数求均值,并将求完均值后的结果更新全局模型,如果模型训练还没结束则转步骤八,步骤九。
步骤十一:中心服务器将最后与用户共同训练的全局模型发给所有用户。
步骤十二:用户将训练好的模型在本地进行预测;
步骤十三:用户利用最新的收集到的数据,与中心服务器周期性的训练模型(如,每隔6小时重新训练模型),模型训练完成后转步骤十二。
本发明实施例还提供了一种具有隐私保护的区块链节点可靠性预测***,包括用户、区块链节点和中心服务器。
用户:批量(即同时)向随机选取的多个区块链节点请求数据,这些数据包括被请求区块链节点的高度以及该高度所对应的哈希值,用户记录反馈数据并记录各个请求的往返时间,这个动作循环多次,以保证数据的稳定性;用户将区块链节点反馈的数据以及各个请求的往返时间计算成功率,但数据(包括原始数据和计算后的数据)保存在本地不上传至中心服务器;用户利用本地数据对模型进行训练,并将训练后的模型发回中心服务器;用户通过训练结束后的全局模型预测自己与未知区块链节点的成功率;
区块链节点:接收用户请求并作出反馈;将本节点的上下文信息(比如国家和时区等地理位置)发送至中心服务器;
中心服务器:收集区块链节点的上下文信息(比如国家和时区等地理信息);存储现实世界用户可能出现的上下文信息(比如国家和时区等地理位置,这些信息来自于现实世界,而不是来自于用户,比如世界上总共有233国家和地区,而用户群体可能只是来自其中100个国家,它们两的关系类似集合和与它的子集的关系,这样做的目的是不需要向用户收集地理位置等敏感信息);初始化一个全局多层神经网络模型(如图4所示),并将模型(包括用户、区块链节点以及它们所对应的上下文信息的嵌入矩阵)发送给部分或全部用户;收集参与用户训练后的模型,将收集的模型参数求均值,并将求完均值后的结果更新全局模型并重新将全局模型发送给部分或全部用户。
用户有4个主要功能,(1)向区块链节点发送请求并收集区块链节点的反馈数据并记录各个请求的往返时间;(2)根据区块链节点的反馈数据和各个请求的往返时间计算成功率;(3)与中心服务器协同训练本地数据;(4)利用训练后的模型进行预测。
区块链节点有2个主要功能,(1)根据用户的请求反馈数据;(2)将上下文信息(比如国家和时区等地理信息)传送到中心服务器。
中心服务器有3个主要功能,(1)收集区块链节点上下文信息(2)存储现实世界用户可能出现的上下文信息(这些信息来自于现实世界,而不是来自于用户,比如世界上总共有233国家和地区,而用户群体可能只是来自其中100个国家,它们两的关系类似集合和它的子集的关系,这样做的目的是不需要向用户收集地理位置等敏感信息);(3)初始化训练模型;(4)协调用户模型。
整个区块链***主要工作流程如下(可参考图1,2,3):
(1)批量(即同时)向随机选取的多个区块链节点请求数据,这些数据包括被请求区块链节点的高度以及该高度所对应的哈希值;
(2)区块链节点接收用户请求并将反馈数据(包括区块高度和该区块高度所对应的哈希值)传回用户;
(3)用户记录反馈数据并记录各个请求的往返时间,并重复(1)(2)多次,以保证数据的稳定性;
(4)用户将区块链节点反馈的数据以及各个请求的往返时间计算成功率,但数据(包括原始数据和计算后的数据)保存在本地不上传至中心服务器;
(5)中心服务器收集区块链节点的上下文信息(包括国家、时区等地理信息);(6)存储用户可能出现的上下文信息(这些信息来自于现实世界,而不是来自于用户,比如世界上总共有233国家和地区,而用户群体可能只是来自其中100个国家,它们两的关系类似集合和它的子集的关系,这样做的目的是不需要向用户收集地理位置等敏感信息);
(7)初始化一个全局多层神经网络模型,如图5所示(包括用户、区块链节点以及它们所对应的上下文信息的嵌入矩阵);
(8)中心服务器把模型随机发送给部分或全部用户(这是模拟现实情况,比如某个时段有一些计算机正好闲置,可以进行模型训练,中心服务器就将全局模型发给这些闲置的用户进行训练);
(9)收到全局模型的用户利用本地数据对全局模型进行训练,并将训练后的全局模型传回中心服务器;
(10)中心服务器将收集到的用户训练后的全局模型参数求均值,并将求完均值后的结果更新全局模型,如果模型训练还没结束则转(8)(9);
(11)中心服务器将最后与用户共同训练的全局模型发给所有用户;
(12)用户将训练好的全局模型在本地进行预测;
(13)用户利用最新的收集到的数据,与中心服务器一起周期性的训练模型(如,每隔6小时重新训练模型),模型训练完成后转(12)。
表1:区块链节点在两个不同的区块链***中,对不同方法的对比实验,以及在不同数据密度下(比如密度=30%,指的是训练集的样本数占全体样本的30%)的实验结果(指标:RM SE,rootm ean square error)。在表中,我们的方法被命名为具有隐私保护和高准确性的区块链节点预测方法,简称PH-FNCF。
表1(区块链可靠性预测方法RMSE的比较)
(a)区块链***1:
(b)区块链***2:
图5、6:参数嵌入层潜在特征向量维度(dim ension)对实验结果的影响(指标:RMSE,rootm ean square error)。
其中,横坐标为嵌入层潜在特征向量的维度(dim ension),纵坐标为均方根误差(RMSE),指均方根误差是预测值与真实值偏差的平方与观测次数比值的平方根;右上角为数据密度(density),指训练数据的样本与全体样本的的比值。
图7、8是参数数据密度(density)对实验结果的影响,图7中,横坐标,数据密度(density),指训练数据的样本与全体样本的的比值,纵坐标,均方根误差(RM SE),指均方根误差是预测值与真实值偏差的平方与观测次数比值的平方根,左下角,维度(Dim),指嵌入层潜在特征向量的维度;图8中,横坐标为数据密度(density),指训练数据的样本与全体样本的的比值。纵坐标为均方根误差(RM SE)指均方根误差是预测值与真实值偏差的平方与观测次数比值的平方根。右上角为嵌入层潜在特征向量的维度(Dim)。
表2:是控制每轮并行训练的用户数对实现目标测试集误差(RMSE<0.08,RMSE:rootm ean square error,即均方根误差)所需的通信回合数影响(在区块链***1的实验结果)
localbs/frac | 0.0 | 0.1 | 0.2 | 0.5 | 1 |
10 | 1386 | 435 | >2000 | 627 | >2000 |
∞ | >2000 | 672 | 885 | 989 | 772 |
注:(local_bs:本地每轮训练的数据集大小。frac:每次并行更新的用户数占全部用户数的比例(0.0表示每次只更新一个用户))
表3:是控制每轮本地训练的迭代次数和每次迭代的训练集大小对实现目标测试集误差(RMSE<0.080,RM SE:rootm ean square error,即均方根误差)所需的通信回合数影响(在区块链***1的实验结果)
local_bs/local_ep | 1 | 5 | 20 |
10 | >2000 | 435 | >2000 |
50 | >2000 | 489 | 794 |
∞ | 1228 | 672 | 486 |
注:(local_bs:本地每轮训练的数据集大小,local_ep:本地训练的迭代轮数)。
本发明相比现有技术具如下优点:
1.本方法将联邦学习方法运用到区块链节点的可靠性的预测中,有效地保护用户的敏感数据。它的具体过程如图3。
2.本方法将神经协同过滤方法运用到区块链节点的可靠性的预测中,使区块链服节点成功率的预测准确程度得到大幅提升。它的具体过程如图4。
3.本方法的实验,模拟了实际情况中的两种区块链***,一种是对区块链数据确认要求高的,如加密货币***(即下文所指的区块链***1);一种是对区块链数据请求的容忍程度较高的,如普通区块链***(即下文所指的区块链***2),本方法在这两种区块链***都中都取得很好的准确度,即指标RMSE(root mean square error)更低,如表1(a)、1(b)所示。
4.本方法在不同密度(Density)的数据集中,如表1(a),1(b)所示,能够达到优于其他方法的准确度(指标:RM SE,rootm ean square error),适用于各种数据密度的场景。
5.如图5、图6,表2、表3所示,本方法通过实验得出了该方法最优的参数,这有利于进一步提高预测的准确度和效率值。
6.图5为参数嵌入层潜在特征向量维度(dim ension)对实验结果的影响(指标:RMSE,rootm ean square error)。
7.图7为参数数据密度(density)对实验结果的影响(指标:RMSE,rootm eansquare error)。
8.表2为控制每轮并行训练的用户数对实现目标测试集误差(RMSE<0.08,RMSE:rootm ean square error,即均方根误差)所需的通信回合数影响。
9.表3为控制每轮本地训练的迭代次数和每次迭代的训练集大小对实现目标测试集误差(RMSE<0.080,RMSE:rootm ean square error,即均方根误差)所需的通信回合数影响。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (6)
1.一种具有隐私保护的区块链节点可靠性预测方法,其特征在于,包括以下步骤:
步骤一:用户向若干个区块链节点发送请求,并记录反馈数据,用户将区块链节点反馈的数据以及各个请求的往返时间计算成功率,但数据保存在本地不上传至中心服务器;
步骤二:中心服务器收集区块链节点的上下文信息并转换为编号;
步骤三:中心服务器存储用户可能出现的上下文信息;
步骤四:在中心服务器中初始化全局多层神经网络模型,将用户IP的编号、区块链节点IP的编号和对应的上下文信息的编号作为输入特征将其转换为具有单热编码的二进制稀疏向量;
步骤五:在中心服务器中将所述二进制稀疏向量乘以嵌入层矩阵,得到用户潜在特征向量、区块链节点潜在特征向量和上下文潜在特征向量,将用户潜在特征向量和区块链节点潜在特征向量和上下文潜在特征向量拼接一起输入到全局多层神经网络模型中,并输出预测值;
步骤六:中心服务器把所述全局多层神经网络模型随机发送给部分或全部用户进行训练;
步骤七:用户利用本地数据和中心服务器提供的区块链节点的上下文信息对全局多层神经网络模型进行训练,将训练后的全局多层神经网络模型传回中心服务器,所述本地数据包括用户对请求的区块链节点的成功率、用户自己的上下文信息、用户IP、请求的区块链节点IP,具体包括处理步骤:收到全局多层神经网络模型的用户利用本地数据和中心服务器提供的区块链节点的上下文信息对全局多层神经网络模型进行训练,用户将用户IP的编号、区块链节点IP的编号、用户与请求区块链节点上下文编号转换为具有单热编码的二进制稀疏向量,并作为输入层向量输入全局多层神经网络模型,全局多层神经网络模型预测的结果和用户本地数据中的成功率进行比较,修正模型,在本地迭代训练过程若干次,并将训练后的全局多层神经网络模型传回所述中心服务器;
步骤八:中心服务器聚合训练后的全局多层神经网络模型,并将最后与用户共同训练的全局多层神经网络模型发给所有用户,收集参与用户训练后的全局多层神经网络模型,包括将收集的全局多层神经网络模型参数求均值,并将求完均值后的结果更新全局多层神经网络模型并重新将全局多层神经网络模型发送给部分或全部用户;
步骤九:用户将从步骤八中接收到的训练好的全局多层神经网络模型在本地进行预测。
2.根据权利要求1所述的具有隐私保护的区块链节点可靠性预测方法,其特征在于,所述步骤一具体包括:
用户随机选取区块链***中的多个区块链节点,并批量向区块链节点发送请求,在设定时间内收集对应节点返回的区块链数据,所述区块链数据包括被请求区块链对等节点的高度以及该高度所对应的哈希值。
3.根据权利要求2所述的具有隐私保护的区块链节点可靠性预测方法,其特征在于,所述用户可能出现的上下文信息包括国家、时区信息。
4.根据权利要求1所述的具有隐私保护的区块链节点可靠性预测方法,其特征在于,所述用户IP、区块链节点IP由所述中心服务器分配,所述用户IP的编号、区块链节点IP的编号和对应的上下文信息的编号进行独热编码表示。
5.根据权利要求1-4任一项所述的具有隐私保护的区块链节点可靠性预测方法,其特征在于,还包括步骤十:用户利用最新的收集到的数据,与中心服务器周期性的训练全局多层神经网络模型。
6.一种具有隐私保护的区块链节点可靠性预测***,包括用户、区块链节点和中心服务器;
所述用户用于批量向随机选取的多个区块链节点请求数据,记录反馈数据并记录各个请求的往返时间,用户根据区块链节点反馈的数据以及各个请求的往返时间计算成功率,用户利用本地数据和中心服务器提供的区块链节点的上下文信息对全局多层神经网络模型进行训练,将训练后的全局多层神经网络模型传回中心服务器,所述本地数据包括用户对请求的区块链节点的成功率、用户自己的上下文信息、用户IP、请求的区块链节点IP,具体包括处理步骤:收到全局多层神经网络模型的用户利用本地数据和中心服务器提供的区块链节点的上下文信息对全局多层神经网络模型进行训练,用户将用户IP的编号、区块链节点IP的编号、用户与请求区块链节点上下文编号转换为具有单热编码的二进制稀疏向量,并作为输入层向量输入全局多层神经网络模型,全局多层神经网络模型预测的结果和用户本地数据中的成功率进行比较,修正模型,在本地迭代训练过程若干次,并将训练后的全局多层神经网络模型传回所述中心服务器;
所述区块链节点用于接收用户请求并作出反馈;将本节点的上下文信息发送至所述中心服务器;
所述中心服务器:收集区块链节点的上下文信息,存储现实世界用户可能出现的上下文信息,初始化一个全局多层神经网络模型,并将初始化后的全局多层神经网络模型发送给部分或全部用户;收集参与用户训练后的全局多层神经网络模型,将收集的全局多层神经网络模型参数求均值,并将求完均值后的结果更新全局模型并重新将全局模型发送给部分或全部用户。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110382048.3A CN113191530B (zh) | 2021-04-09 | 2021-04-09 | 一种具有隐私保护的区块链节点可靠性预测方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110382048.3A CN113191530B (zh) | 2021-04-09 | 2021-04-09 | 一种具有隐私保护的区块链节点可靠性预测方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113191530A CN113191530A (zh) | 2021-07-30 |
CN113191530B true CN113191530B (zh) | 2022-09-20 |
Family
ID=76975265
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110382048.3A Active CN113191530B (zh) | 2021-04-09 | 2021-04-09 | 一种具有隐私保护的区块链节点可靠性预测方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113191530B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114189524A (zh) * | 2021-10-19 | 2022-03-15 | 中山大学 | 一种区块链可靠对等点的筛选方法和装置 |
CN115118462B (zh) * | 2022-06-09 | 2023-07-18 | 华中师范大学 | 一种基于卷积增强链的数据隐私保护方法 |
CN115952555A (zh) * | 2022-11-29 | 2023-04-11 | 广西金教通科技有限公司 | 一种基于区块链的信息处理方法及ai*** |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110197285B (zh) * | 2019-05-07 | 2021-03-23 | 清华大学 | 基于区块链的安全协作深度学习方法及装置 |
US10873456B1 (en) * | 2019-05-07 | 2020-12-22 | LedgerDomain, LLC | Neural network classifiers for block chain data structures |
CN111553745A (zh) * | 2020-05-08 | 2020-08-18 | 深圳前海微众银行股份有限公司 | 基于联邦的模型更新方法、装置、设备及计算机存储介质 |
CN112199702A (zh) * | 2020-10-16 | 2021-01-08 | 鹏城实验室 | 一种基于联邦学习的隐私保护方法、存储介质及*** |
CN112288154B (zh) * | 2020-10-22 | 2023-11-03 | 汕头大学 | 一种基于改进神经协同过滤的区块链服务可靠性预测方法 |
-
2021
- 2021-04-09 CN CN202110382048.3A patent/CN113191530B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113191530A (zh) | 2021-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113191530B (zh) | 一种具有隐私保护的区块链节点可靠性预测方法及*** | |
CN111625361A (zh) | 一种基于云端服务器和IoT设备协同的联合学习框架 | |
CN114817663B (zh) | 一种基于类别感知图神经网络的服务建模与推荐方法 | |
CN112256980A (zh) | 一种基于动态图注意力网络的多关系协同过滤推荐 | |
EP4038519A1 (en) | Federated learning using heterogeneous model types and architectures | |
CN113609398A (zh) | 一种基于异构图神经网络的社交推荐方法 | |
CN113408209A (zh) | 跨样本联邦分类建模方法及装置、存储介质、电子设备 | |
CN113190654A (zh) | 一种基于实体联合嵌入和概率模型的知识图谱补全方法 | |
CN115358487A (zh) | 面向电力数据共享的联邦学习聚合优化***及方法 | |
CN111985623A (zh) | 基于最大化互信息和图神经网络的属性图群组发现方法 | |
CN111967271A (zh) | 分析结果的生成方法、装置、设备及可读存储介质 | |
CN111325340A (zh) | 信息网络关系预测方法及*** | |
CN111210002A (zh) | 一种基于生成对抗网络模型的多层学术网络社区发现方法、*** | |
CN113228059A (zh) | 面向跨网络的表示学习算法 | |
CN115660147A (zh) | 一种基于传播路径间与传播路径内影响力建模的信息传播预测方法及*** | |
CN112580902A (zh) | 对象数据处理方法、装置、计算机设备和存储介质 | |
CN114039871B (zh) | 一种蜂窝流量预测的方法、***、装置及介质 | |
CN111597276A (zh) | 实体对齐方法、装置和设备 | |
CN112288154B (zh) | 一种基于改进神经协同过滤的区块链服务可靠性预测方法 | |
CN117078312B (zh) | 一种基于人工智能的广告投放管理方法及*** | |
CN111770152B (zh) | 一种边缘数据管理方法、介质、边缘服务器和*** | |
CN115600642B (zh) | 一种面向流媒体基于邻居信任聚合的去中心化联邦学习方法 | |
CN115455302A (zh) | 一种基于优化图注意网络的知识图谱推荐方法 | |
CN112927810B (zh) | 基于大数据的智慧医疗响应方法及智慧医疗云计算*** | |
CN114840775A (zh) | 一种融合多空间特征的网络对齐模型及其应用 |
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 |