一种面向群智感知的去中心隐私保持信誉评估方法

文档序号:29795337发布日期:2022-04-23 18:41阅读:134来源:国知局
一种面向群智感知的去中心隐私保持信誉评估方法

1.本发明涉及一种隐私保持信誉评估方法,具体涉及一种面向群智感知的去中心隐私保持信誉评估方法,属于网络数据处理技术领域。


背景技术:

2.在很多数据共享场景中,数据需求者只需要得到数据所有者的数据,并不需要知道数据所有者的真实身份。数据需求者若需利用来自多个数据所有者的数据完成特定的分析计算任务,通常可以采用群智感知方式来收集数据。
3.在群智感知应用中,参与感知任务的数据所有者通常要将真实数据直接共享给数据需求者,否则,数据需求者将无法得到正确的分析结果。同时,考虑到数据需求者并不需要知道数据所有者的真实身份,数据所有者可以采用一个与真实身份无关的账号作为身份标识,来参与感知任务。由于区块链中的账号不涉及个人的真实身份信息,因此,在与数据需求者交互的过程中,参与感知任务的用户如果以区块链账号作为自己的身份标识,就可以达到隐匿真实身份的目的。目前,有很多的区块链与物联网相结合的研究,均采用这种方式。
4.但是,区块链的匿名性特点虽然有助于保护数据所有者的隐私,同时也带来了负面影响。比如,用户可能向数据需求者提供虚假或低质量的数据,并利用匿名性来逃避追责。因此,在群智感知应用中,为避免对后续分析处理产生不利影响,数据需求者通常需要评估其收集到的数据的可靠性,进而滤除不可靠的数据。
5.目前,一种常见的方法是:根据用户的信誉(reputation)来评估其提供数据的可靠性。基于区块链的群智感知系统通常采用如下方法:数据需求者在区块链上发布感知任务,数据所有者使用区块链账号参与感知任务;数据需求者利用孤立点检测等方法评估数据所有者提供数据的质量,并对数据所有者做出评价。为确保数据质量,数据需求者会先对有意愿参与任务的数据所有者的信誉进行评估,信誉过低的数据所有者将被排除在任务之外。
6.然而,用户信誉是用户在长期的活动中逐渐积累起来的。这意味着,一方面,为了准确评估信誉,数据需求者需要追踪数据所有者的历史行为,而这可能导致数据所有者隐私的泄露。另一方面,由于数据需求者给予数据所有者的评价实际上是对某个账号的评价,用户为保护隐私可以使用不同的区块链账号参与不同的感知任务。当数据所有者可以创建多个区块链账号时,多个匿名账号的使用会使数据需求者无法追踪数据所有者的历史行为,从而无法对数据所有者的信誉做出准确的评价,也难以预先判断数据所有者提供的数据是否可靠。更重要的是,不诚信的所有者可能会通过创建新账号的方式隐藏自己不良的历史记录,即发起“洗白”攻击(whitewashing attack)。
7.现有的基于区块链的群智感知系统,主要考虑如何利用区块链实现可靠的激励机制,其典型做法是:利用智能合约技术和保证金机制,通过要求数据需求者将奖励规则写入不可篡改的智能合约并在智能合约中存入足够数量的保证金,确保用户在提供数据之后可
以得到应得的奖励。但是,其没有考虑如何让数据需求者在不破坏隐私保护要求的前提下,准确评估用户的信誉。同时,现有的可保护用户隐私的信誉机制,通常设存在一个可信第三方,由该第三方管理用户的假名(pseudonym)和信誉值,但该条件在现实中难以成立。此外,现有的信誉机制无法在保证隐私的同时有效地抵御来自用户的洗白攻击,用户可能利用匿名性随意修改信誉值。
8.综上所述,如何解决匿名性与信誉评估之间的冲突,是现有信誉评估方法面临的主要问题。


技术实现要素:

9.本发明的目的是针对现有技术存在的问题,为解决信誉评估过程中面临的匿名性与信誉评估之间冲突的技术问题,即,如何隐藏用户账号与用户真实身份之间关联性,并防止用户通过更换账号的方式“重置”自己的信誉值,创造性地提出一种面向群智感知的去中心隐私保持信誉评估方法,主要应用于基于区块链的群智感知场景。
10.本发明的创新点在于:基于区块链的群智感知场景,利用盲签名、环签名技术,构建了一种既能够保持匿名性又能够防止个人随意修改信誉值的信誉评估机制,将“信誉”当作一种可以在不同账号间转移的资产。其中,参与群智感知任务的用户借助区块链账号的匿名性来隐藏真实身份,发布感知任务的数据需求者根据用户提供数据的质量对用户进行评分,并将评分以交易的形式发布在区块链上。多次参与感知任务的用户允许创建多个账号,并利用环签名等技术,实现信誉值在不同账号间的隐秘转移,从而抵御来自数据需求者的推理攻击。基于信誉转移机制,利用盲签名、环签名等技术,实现可隐藏用户账号与用户真实身份之间关联性,并且可抵御用户洗白攻击的身份认证。
11.有益效果
12.本发明,对比现有技术,具有以下优点:
13.1.本发明针对基于区块链的群智感知应用,提出既能保证用户隐私又能让数据需求者准确评估用户信誉值的信誉评估方法。
14.2.本方法允许用户以假名参与群智感知任务且可以更换假名,但用户不能通过更换假名的方式来修改自己的信誉值。
15.3.本方法将信誉值视为可在不同假名账户之间转移的资产,信誉值的转移需要经过区块链网络节点的验证,利用环签名技术实现隐私保持的信誉值转移。
16.4.基于信誉转移机制,本方法进一步利用盲签名、环签名等技术,实现可以保持匿名性的用户身份认证,防止认证中心发现用户假名与其真实身份之间的关联。
附图说明
17.图1是本发明提供的基于区块链的群智感知的示意图。
18.图2是用户初次身份认证流程的示意图。
19.图3是用户更新假名时身份认证流程的示意图。
具体实施方式
20.为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图对本发明进
行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
21.如图1所示,一种面向群智感知的去中心隐私保持信誉评估方法,包括以下步骤:
22.步骤a:发布感知任务。
23.数据需求者在区块链上发布关于感知任务的信息,包括任务名称、所需数据的类型、任务结束时间、位置要求以及数据需求者愿意向一个用户支付的最大报酬。
24.步骤b:认证用户身份。
25.有意参与任务的用户确定自己的假名,并请求认证中心对该假名进行签名认证。如果用户是初次参与感知任务,则认证中心需要对用户的真实身份信息进行验证并颁发证书;如果用户此前已经获得过证书,则认证中心需要检验用户假名对应的信誉值是否正确。
26.用户在与认证中心交互的过程中,利用盲签名、环签名等技术,来隐藏真实身份与假名之间的关联。本发明提出了一种用户认证交互方法,包括初次身份认证、信誉评估、信誉转移和假名更新。具体如下:
27.步骤1:初次身份认证。
28.如图2所示,该步骤涉及用户与认证中心(certificate authority)之间的交互,完成用户身份证书的颁发。
29.具体地,包括以下步骤:
30.步骤1.1:拟初次参与群智感知任务的用户,首先根据区块链系统的要求创建私钥(例如,若采用以太坊作为底层区块链平台,则用户需通过椭圆曲线算法生成私钥)。然后,基于私钥生成公钥和区块链账户地址。用户以公钥作为参与群智感知任务的假名,记为p
first

31.步骤1.2:用户将假名p
first
和感知任务的名称组合成一条消息其中,表示“定义”。然后,利用盲签名(例如,基于rsa的盲签名),对消息中的假名部分进行盲化处理,得到盲化的消息pf′
irst
表示p
first
对应的盲化后的假名。
32.步骤1.3:用户将盲化的消息message

和能够标识真实身份的信息(例如身份证号、手机号等等),发送给认证中心。
33.步骤1.4:认证中心对用户的身份进行审核。若审核通过,则生成不包含用户真实身份信息的证书cert,并利用盲签名对message

进行签名,然后将证书cert和盲签名返回给用户,sigca表示签名由认证中心生成。
34.步骤1.5:用户基于盲签名推导出签名
35.步骤2:信誉评估。
36.该步骤主要涉及用户与数据需求者之间的交互,完成用户信誉值的计算。
37.具体地,包括以下步骤:
38.步骤2.1:用户拟用假名p参与群智感知任务如果用户是初次参与任务,则有p
=p
first
。用户将从认证中心那里获得的签名发送给数据需求者。
39.步骤2.2:数据需求者利用认证中心的公钥对用户提供的签名进行检验,若验证通过,则执行如下步骤:
40.步骤2.2.1:在区块链账本中查询与该用户关联的评分交易γ
rate
,,spi表示发布任务的数据需求者,p是用户当前使用的假名,σi是数据需求者给用户的评分。用户每次参加一个群智感知任务,都会从发布任务的数据需求者那里获得一个评分。设用户此前共参加过k个感知任务,则数据需求者能够查到k个评分交易。基于这些评分交易,数据需求者计算用户获得的平均评分
41.步骤2.2.2:在区块链账本中查询与该用户关联的最近的信誉转移交易γ
rep
,γ
rep
表示假名为p

的用户将值为τ
tran
的信誉值转移给了假名为p的用户。转移的信誉值包括两个部分,对应于评分的平均值,k
tran
对应于参与任务的次数。
42.步骤2.2.3:计算用户在当前时刻t的信誉值rep(p)
t

[0043][0044]
其中,为t时刻的平均评分,k
t
表示用户到时刻t为止参与过的感知任务的数目。
[0045]
如果用户此前没有以假名p参与过感知任务,则式(1)中和k的取值均设置为0;如果假名p没有接受过其它假名的信誉转移,即转移交易不存在,则上式中和k
tran
的取值均设置为0。
[0046]
步骤3:信誉转移。
[0047]
该步骤主要涉及用户与区块链之间的交互,完成用户信誉值的转移。
[0048]
具体地,包括以下步骤:
[0049]
设用户当前使用的假名为p
curr
,与该假名对应的信誉值记为τ,设用户创建新的假名为p
new

[0050]
步骤3.1:用户选择一个整数r,r》1,并创建一个空集合然后重复执行如下步骤:
[0051]
步骤3.1.1:查询区块链,随机选择n个假名;
[0052]
步骤3.1.2:计算每个假名p对应的信誉值τ

,其中,表示该假名得到的平均评分,k

表示该假名参与过的感知任务的数目。
[0053]
如果k

=k,并且集合中元素个数小于r-1,则将p加入到集合中;
[0054]
步骤3.1.3:如果集合中元素个数达到r-1个,则执行步骤3.2。
[0055]
步骤3.2:用户构造信誉转移交易γ
rep
,γ
rep
=(p
curr
,p
new
,τ),τ表示p
curr
转移给p
new
的信誉值,并基于某种环签名方案,利用集合中的元素、自己的公钥p
curr
以及与p
curr
对应的私钥,构造环签名τ
ringsig

[0056]
步骤3.3:区块链网络中的节点收到用户提交的交易后,对交易进行验证。
[0057]
除通常的检验外,节点需重新计算包括p
curr
在内的每个环成员的信誉值,并检查转移的信誉值τ是否与环成员的信誉值相同。同时,节点需检查账本中是否存在以p
new
作为接收方的信誉转移交易,如果存在,则当前交易被忽略,否则检验交易的签名。通过所有检验的交易,将写入区块链账本。
[0058]
步骤4:假名更新。
[0059]
如图3所示,本步骤主要涉及用户与认证中心之间的交互,完成用户假名的更新。
[0060]
具体地,包括以下步骤:
[0061]
用户当前使用的假名为p
curr
,用户创建新的假名p
new
,拟使用该假名参与群智感知任务
[0062]
步骤4.1:用户将假名p
new
和感知任务的名称组合成一条消息
[0063]
步骤4.2:用户选择r-1个与其有相同信誉值的用户作为环成员,并采用环签名方式,利用这些成员的公钥和自己的公私钥生成环签名
[0064]
步骤4.3:用户将消息环签名以及之前从认证中心获得的证书cert,一起发送给认证中心。
[0065]
步骤4.4:认证中心通过查询区块链,计算每个环成员的信誉值,包括p
new
;然后检查p
new
对应的信誉值是否小于等于其它环成员的信誉值,如果p
new
的信誉值确实最小,则认证中心就对消息进行签名,然后将签名返回给用户。否则不对消息进行签名。
[0066]
步骤c:用户请求参与任务。
[0067]
当得到来自认证中心的签名后,用户向数据需求者发出请求参与任务,比如,告知自己期望获得的报酬等信息。
[0068]
步骤d:用户选择。
[0069]
数据需求者收到来自用户的请求后,根据用户的信誉值、地理位置等信息进行筛选,确定最终参与任务的一组用户。
[0070]
其中,在评估用户信誉值时,数据需求者要查询存储在区块链账本上的评分交易、信誉转移交易,根据这些交易中保存的信息计算用户当前的信誉值。
[0071]
步骤e:报酬抵押。
[0072]
当选定参与任务的用户后,数据需求者需要在区块链上存放一笔保证金,该保证金将用于支付用户报酬。
[0073]
步骤f:感知数据报告。
[0074]
被选中参与的用户借助自己的感知设备收集数据,然后通过安全信道将数据发送给数据需求者。
[0075]
步骤g:用户评分。
[0076]
数据需求者收到来自某个用户的数据后,存放在区块链上的保证金将自动转到用户账户。当收集到来自多个用户的数据后,数据需求者对用户提供数据的质量进行评估(可以采用孤立点检测等方法),并在此基础上对每个用户进行评分,评分结果以交易的形式发布在区块链上。
[0077]
当所有参与任务的用户都得到报酬和评分后,感知任务结束。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1