一种许可链上授权的非交易有害数据完全擦除方法

文档序号:29966729发布日期:2022-05-11 10:29阅读:92来源:国知局
一种许可链上授权的非交易有害数据完全擦除方法

1.本发明涉及区块链监管技术,具体涉及一种许可链上授权的非交易有害数据完全擦除方法。


背景技术:

2.区块链可以被用于实现时间戳服务、在安全多方计算中实现公平性和正确性,以及建立智能合约,区块链还能为用户提供发布信息的能力,由于传统区块链不可篡改的特性,这些信息不能被审查或编辑,只要目标区块链网络持续存在,就会永久存在与链上。
3.然而,任意数据的插入已经引起了一些严重的问题。非法数据内容的写入对于执法部门一直是一个巨大的挑战。当前的普遍观点认为,区块链网络中的全节点(存储区块链中的完整账本数据)中的数据内容是不可改变,无法被编辑的。在这一前提下,用户节点可能会无意中存储和传播非法内容,恶意用户可能会利用这一缺陷。此外,政府监管的应用需求可能与目前区块链协议中不可篡改的设定存在冲突。另一个需要关注的问题是用户隐私保护。
4.欧盟的gdpr(通用数据保护条例)表明:每个数据主体都有被遗忘的权利,即有权从数据控制者那里获得关于他或她的个人数据的擦除,且不会存在不当的延迟,作为一种快速发展的应用系统,区块链需要包含实现隐私保护的机制来保障用户主体的安全需求。除了法律和隐私保护之外,不断增长的区块链规模也是值得关注的问题。虽然某些轻节点可以在没有区块链完整数据的情况下正常运行,但是新节点加入时还是需要同步完整数据来进行验证,这使得处理现有全账本数据的需求增大。
5.为了解决有害数据任意插入区块链的问题,现有方案主要集中与事前监管与事后监管两个方面。事前监管生效于数据写入区块链前,主要方案是提高交易费用和内容监管,但是在数据写入阶段加入数据过滤或交易费用计算操作会降低交易速度,且基于机器学习方案的内容监管需要高算力服务器,由于高算力服务器通常集中在少数人手里,这一类中心化节点的加入会破坏区块链的去中心性。事后监管方案需要处理已经上链的数据,需要通过全网络的共识来执行修改或擦除操作,这一行为需要执行多方安全计算,对于规模较大的网络会消耗大量的负载,且耗时较长,而且投票行为可能某种意义上促进了被擦除对象(非法数据等)的扩散,造成更严重的影响。
6.不同于传统区块链,许可链作为一种分布式账本技术,参与到许可链系统中的每个节点都是经过许可的,这降低了数据处理方案的设计难度。现有许可链中针对有害数据的监管仅仅是针对分布式账本中键值的隐藏,没有做到数据的完全清除。


技术实现要素:

7.发明目的:本发明的目的在于解决现有技术中存在的不足,提供一种许可链上授权的非交易有害数据完全擦除方法。
8.技术方案:本发明一种许可链上授权的非交易有害数据完全擦除方法,包括用户
节点、授权节点、分布式客户端和非交易数据;所述用户节点使用分布式客户端与许可链网络进行交互;所述授权节点对加入许可链网络的分布式客户端进行认证,并对许可链网络中用户节点的擦除操作进行授权;所述分布式客户端保存许可链中的账本信息,并生成或验证区块中的交易;所述非交易数据为分布式客户端生成交易时,用户节点在交易的输入脚本和输出脚本插入的辅助交易执行的补充信息;具体非交易有害数据完全擦除方法包括以下步骤:
9.步骤s1、异地多步擦除
10.许可链的用户节点写入非交易数据时加入附加信息,数据上链后,若授权节点间共识判定非交易数据中包含有害数据,则授权分布式客户端执行该数据的本地擦除;
11.步骤s2、擦除后的验证与示证
12.许可链的用户节点使用非交易数据中的附加信息验证许可链全账本数据,擦除后插入相应数据的用户可提供基于密码学的示证;包括区块数据完整性验证、一致性验证、有效性验证和证据提供等;
13.步骤s3、调节设置擦除周期可
14.授权节点设定特定区块段来用于执行即时的触发擦除,或设定全网络节点的周期擦除;
15.步骤s4、初始化新用户节点
16.许可链网络中新加入用户节点同步擦除部分与未擦除部分全账本数据。
17.进一步地,所述步骤s1中异地多步擦除的具体步骤:
18.s1.1、新交易写入:用户节点通过分布式客户端对插入数据预处理存入第三方云存储并获得存储凭据,然后将插入数据与存储凭据等附加信息与写入非交易区域;
19.s1.2、有害数据判定及擦除授权:许可链网络中的用户节点选举出授权节点,若授权节点发现本地账本中存在有害数据,则定位相应有害数据并发起该区块区间的擦除的授权;
20.s1.3、异地分布式客户端的本地擦除:分布式客户端接收到授权节点的擦除请求后,根据接受到的信息执行授权节点指定区段的数据擦除或执行周期擦除。
21.进一步地,所述步骤s1.1中新交易写入的详细过程如下:
22.(1)、许可链中的用户节点首先随机生成加密密钥dk

{0,1}
λ
,然后使用对称加密写入信息明文td得到密文tc←
enc(dk,td);
23.(2)、用户节点将加密后的密文tc存储到第三方分布式云存储,得到数据存储凭证
24.(3)、为验证擦除后交易数据,用户节点计算擦除后的交易哈希值 hash(tx

)和插入数据明文tc的哈希值hash(tc),组合得到非交易数据并将其写入所生成交易。
25.进一步地,所述步骤s1.2中有害数据判定及擦除授权的详细过程如下:
26.(1)、用户节点通过心跳机制选举出授权节点,当许可链网络中不存在授权节点时,许可链网络用户节点首先切换到候选状态并进行投票,收到大多数投票认可的用户节点则成为新的授权节点,授权节点周期性的发送心跳信息给所有用户节点来维持其主导地
位,若用户节点一段时间没有接收到心跳信息,许可链中则因为没有授权节点重新选出新的授权节点,此时所有用户节点均切换到候选状态并进入新的任期,投票选出新的授权节点;
27.(2)、许可链授权节点检索全账本区块数据若检测到区块链中存在有害数据或收到涉及用户隐私的敏感数据的擦除请求,则根据数据内容定位区块区间[qs,qe],其中qs和qe分别表示区块高度s和e的区块,生成擦除授权交易。
[0028]
进一步地,所述步骤s1.3中异地分布式客户端进行本地擦除的详细过程如下:
[0029]
(1)、分布式客户端dapp查询当前许可链数据当前区块高度n,确定需要进行擦除的区块区间[qs,qe],得到需要擦除的链上区块集合
[0030]
(2)、分布式客户端dapp对交易数据执行判断若结果为true,则该部分数据为非交易数据并选定,若结果为false则忽略该部分数据内容,其中bi表示特定区块高度i的区块数据,表示第i个区块数据中的第j个交易数据;
[0031]
(3)、分布式客户端dappi执行非交易数据擦除算法txprune擦除选定的非交易数据,其中输入为许可链数据c
p
和擦除区块区间[qs,qe],输出为擦除后的许可链数据其中为执行擦除操作后的数据,擦除后的非交易数据变为:
[0032]
其中擦除算法txprune的方法如下:
[0033]
(a)、分布式客户端dapp读取需要擦除的许可链数据和擦除区块区间[qs,qe],bn为当前区块高度为n的区块,定位得到目标区块数据
[0034]
(b)、分布式客户端dapp提取出tx
i,j
,对于每一个交易数据若该区块bi未执行擦除操作p:《tx
i,j
;td》=ture,则分布式客户端dapp擦除中的td得到
[0035]
(c)、分布式客户端dapp返回擦除后的许可链数据
[0036]
进一步地,所述步骤s2的详细过程为:
[0037]
s2.1、分布式客户端dapp读取未执行区块擦除操作的许可链区块数据读取其中区块高度为i的区块数据首先检查区块bi中所保存的前一区块b
i-1
的哈希值prevblockhash是否正确,然后检查区块生成数据是否符合许可链网络设置,最后计算区块中所打包的交易的merkleroot值,对于每个交易检查其输出脚本output是否与输入脚本 input的值是否对应,并检查交易锁定时间locktime的有效性,若上述检验均通过,则未擦除部分区块链数据有效;
[0038]
s2.2、分布式客户端dapp读取已经执行区块链擦除的许可链区块数据读取其中区块高度为i的区块数据计算擦除后的交易哈希值f(txi,*)=g(txi,
1)
·
g(txi,2)
·
...g(txi,u),其中u为区块bi中保存的交易个数,其中擦除部分交易使用插入数据中的hash(tx

)校验,若计算结果f(txi,*)能验证许可链擦除部分的完整性和一致性,则验证通过,该部分区块内容有效,否则擦除部分未通过验证,擦除操作无效;
[0039]
s2.3、擦除后插入相应数据的用户可使用第三方分布式云存储中的加密副本结合区块交易中的数据存储凭证进行示证,需要对已擦除的链上擦除数据进行示证的用户提供相应数据的加密密钥dk,示证方通过擦除部分交易的得到和hash(td);
[0040]
s2.4、示证方通过下载第三方分布式存储中的加密数据tc并使用dk解密得到 td,计算hash(t'd),若hash(t'd)=hash(td),则被擦除的数据得到验证。
[0041]
进一步地,所述步骤s3的详细过程如下:
[0042]
s3.1、许可链中的授权节点基于共识确认擦除操作,生成擦除授权交易,其中交易转账金额为0,擦除相关信息设置为{p,qs,qe},其中p为擦除周期,编码后设置为转入账户地址,将擦除授权写入账本数据;
[0043]
s3.2、许可链网络中的分布式客户端dapp接收到新的区块后,若区块中存在由授权节点发起的转账金额为0的交易,则解码转入账户地址,提取出擦除设置{p,qs,qe},然后进行擦除设置判断,开始调整节点的本地擦除设置;
[0044]
s3.3、若擦除周期p≠0,则分布式客户端dapp忽略心跳数据包中的其余信息,在本地账本中的区块数据达到指定高度时,周期性执行擦除区间[q
n-p,qn]中的区块数据其中qn为当前最新区块;
[0045]
s3.4、若擦除周期p=0,则分布式客户端dapp执行即时的擦除,擦除本地区块账本数据中指定区间的区块数据
[0046]
进一步地,所述步骤s4的详细过程如下:
[0047]
s4.1、新节点加入许可链网络后,接收节点同步信息确认当前任期中的授权节点,并从许可链中的用户节点同步当前网络中的全账本数据;
[0048]
s4.2、若当前许可链网络中正在执行周期擦除,新节点同步到未完成周期擦除的全账本数据后,检索全账本数据逆序检索擦除周期设置的相关区块中的交易,从其中提取擦除周期{p,qs,qe},重新对最近一个周期执行擦除操作,得到与其他节点一致的全账本数据;
[0049]
s4.3、若当前许可链网络中正在执行即时擦除,新节点同步到未完成擦除的全账本数据后,从接收到的区块中提取擦除设置{p,qs,qe},本地重新执行即时擦除,保证网络中全账本数据的一致。
[0050]
有益效果:与现有技术相比,本发明具有以下优点:
[0051]
(1)、本发明中使用分布式客户端执行异地同步擦除,该方案易于部署,在数据写入阶段仅需插入擦除数据索引,避免了现有擦除方案中需要多方安全计算下全网共识所带来的额外网络负载,有效的处理了链上有害信息的永久写入并缓解了区块数据量的快速增长。
[0052]
(2)、本发明在链上数据验证阶段,基于擦除状态验证区块数据的完整性和有效
性,擦除部分区块数据可通过擦除部分哈希值验证,保障了链上数据的完整性和有效性,用户还可以通过第三方分布式云存储中的加密数据对链上擦除的插入数据进行示证。
[0053]
(3)、本发明基于许可链的特性,使用授权节点调整许可链中所有节点的擦除周期,并支持特定场景下的触发擦除,有效避免了许可链上有害数据的大规模传播。
附图说明
[0054]
图1为本发明的整体系统框架图。
[0055]
图2是实施例链上数据擦除阶段示意图。
[0056]
图3是实施例链上数据验证阶段示意图。
具体实施方式
[0057]
下面对本发明技术方案进行详细说明,但是本发明的保护范围不局限于所述实施例。
[0058]
如图1所示,本发明涉及用户节点、授权节点、分布式客户端和非交易数据;用户节点使用分布式客户端与许可链网络进行交互;授权节点对加入许可链网络的分布式客户端进行认证,并对许可链网络中用户节点的擦除操作进行授权;分布式客户端保存许可链中的账本信息,并生成或验证区块中的交易;非交易数据为分布式客户端生成交易时,用户节点在交易的输入脚本和输出脚本插入的辅助交易执行的补充信息。
[0059]
本实施例的许可链上授权的非交易有害数据完全擦除方法,具体包括以下步骤:
[0060]
环节1(异地多步擦除):
[0061]
1.1、新交易写入
[0062]
许可链中的用户节点首先随机生成加密密钥dk

{0,1}
λ
,然后使用对称加密写入信息明文td得到密文tc←
enc(dk,td);用户节点将加密后的密文tc存储到第三方分布式云存储,得到数据存储凭证为验证擦除后交易数据,用户节点计算擦除后的交易哈希值hash(tx

)和插入数据明文tc的哈希值hash(tc),组合得到非交易数据并将其写入所生成交易;
[0063]
1.2、有害数据判定及擦除授权
[0064]
许可链网络中的用户节点通过心跳机制选举出授权节点,即:当许可链网络中不存在授权节点时,用户节点首先切换到候选状态并进行投票,收到大多数投票认可的用户节点则成为新的授权节点,授权节点周期性的发送心跳信息给所有用户节点来维持其主导地位,若用户节点一段时间没有接收到心跳信息,许可链中则因为没有授权节点重新选出新的授权节点,该许可链中所有用户节点切换到候选状态并进入新的任期,投票选出新的节点;选举结束后,许可链中授权节点检索全账本区块数据若检测到区块链中存在有害数据或收到涉及用户隐私的敏感数据的擦除请求,则根据数据内容定位区块区间[qs,qe],其中“q
s”和“q
e”表示区块高度s和e的区块,生成擦除授权交易;
[0065]
1.3、异地分布式客户端的本地擦除
[0066]
分布式客户端dapp查询当前许可链数据当前区块高度n,确定需要进行擦除的
区块区间[qs,qe],得到需要擦除的链上区块集合然后,分布式客户端dapp对交易数据执行判断若结果为true,则该部分数据为非交易数据并选定,若结果为false则忽略该部分数据内容,其中bi表示特定区块高度i的区块数据,表示第i个区块数据中的第j个交易数据;分布式客户端dappi执行非交易数据擦除算法txprune擦除选定的非交易数据,其中输入为许可链数据和擦除区块区间[qs,qe],输出为擦除后的许可链数据其中为执行擦除操作后的数据,擦除后的非交易数据变为为如图2所示。
[0067]
环节2(擦除后的验证与示证):
[0068]
2.1、分布式客户端dapp读取未执行区块擦除操作的许可链区块数据读取其中区块高度为i的区块数据首先检查区块bi中所保存的前一区块b
i-1
的哈希值prevblockhash是否正确,然后检查区块生成数据是否符合许可链网络设置,最后计算区块中所打包的交易的merkleroot值,对于每个交易检查其输出脚本output是否与输入脚本 input的值是否对应,并检查交易锁定时间locktime的有效性,若上述检验均通过,则未擦除部分区块链数据有效;然后,分布式客户端dapp读取已经执行区块链擦除的许可链区块数据读取其中区块高度为i的区块数据计算擦除后的交易哈希值f(txi,*)=g(txi,1)
·
g(txi,2)
·

g(txi,u),其中u为区块bi中保存的交易个数,其中擦除部分交易使用插入数据中的 hash(tx

)校验,若计算结果f(txi,*)能验证许可链擦除部分的完整性和一致性,则验证通过,该部分区块内容有效,否则擦除部分未通过验证,擦除操作无效;
[0069]
2.2、擦除后插入相应数据的用户节点可使用第三方分布式云存储中的加密副本结合区块交易中的数据存储凭证进行示证,需要对已擦除的链上擦除数据进行示证的用户提供相应数据的加密密钥dk,示证方通过擦除部分交易的得到和hash(td);示证方通过下载第三方分布式存储中的加密数据tc并使用dk解密得到td,计算hash(t'd),若 hash(t'd)=hash(td),则被擦除的数据得到验证。
[0070]
环节3(调节设置擦除周期)
[0071]
3.1、许可链中的授权节点基于共识确认擦除操作来生成擦除授权交易,其中交易转账金额为0,擦除相关信息设置为{p,qs,qe},其中p为擦除周期,编码后设置为转入账户地址,将擦除授权写入账本数据;
[0072]
3.2、许可链网络中的分布式客户端dapp接收到新的区块后,若区块中存在由授权节点发起的转账金额为0的交易,则解码转入账户地址,提取出擦除设置 {p,qs,qe},然后进行擦除设置判断,开始调整节点的本地擦除设置;若擦除周期p≠0,则分布式客户端dapp忽略心跳数据包中的其余信息,在本地账本中的区块数据达到指定高度时,周期性执行擦除区间[q
n-p,qn]中的区块数据其中qn为当前最新区块;擦除周期p=0,则分布式客
户端dapp执行即时的擦除,擦除本地区块账本数据中指定区间的区块数据
[0073]
环节4(初始化新用户节点)
[0074]
4.1、新节点加入许可链网络后,接收节点同步信息确认当前任期中的授权节点,并从许可链中的用户节点同步当前网络中的全账本数据;
[0075]
4.2、若当前许可链网络中正在执行周期擦除,新节点同步到未完成周期擦除的全账本数据后,检索全账本数据逆序检索擦除周期设置的相关区块中的交易,从其中提取擦除周期{p,qs,qe},重新对最近一个周期执行擦除操作,得到与其他节点一致的全账本数据;若当前许可链网络中正在执行即时擦除,新节点同步到未完成擦除的全账本数据后,从接收到的区块中提取擦除设置 {p,qs,qe},本地重新执行即时擦除,保证网络中全账本数据的一致,如图3所示。
[0076]
通过上述实施例可以看出,本发明通过分布式客户端执行本地擦除操作,可以有效的处理链上有害信息的永久写入,并设计方案使用擦除数据的哈希值验证链上数据的完整性和有效性,且使用第三方分布式云存储保存加密副本实现基于密码学的用户示证。此外,允许擦除周期可变使得许可链网络可以更灵活的应对非法数据插入的突发情况。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1