1.一种基于区块链的可信的数据溯源方法,其特征在于,包括:
数据上传验证:数据上传前,由验证者验证数据本身的完整性、合法性,验证后的数据上传到区块链附属链;
数据可信溯源:对上传至区块链附属链上的数据做溯源操作,构建出数据安全完整可信的生命周期;
数据权限控制:设置用户身份,验证身份通过后,针对不同的身份赋予不同的权利与责任;
用户行为管控:用户所有行为会在区块链中留存,一旦有恶意行为被发现,可以进行追溯及追责,用户无法否认自己的行为。
2.根据权利要求1所述的一种基于区块链的可信的数据溯源方法,其特征在于,所述对上传至区块链附属链上的数据做溯源操作,构建出数据安全完整可信的生命周期的具体实现过程为:对上传至区块链附属链上的数据,自动调用智能合约,验证数据的整个生命流程,若其具有合法的来源,则数据可以存储到区块链中,否则,停留在区块链附属链,操作者的所有记录都会存在区块链附属链中。
3.根据权利要求1所述的一种基于区块链的可信的数据溯源方法,其特征在于,所述方法基于provchain实现,provchain由联盟主链和多条联盟附属链组成;包含三个参与方:验证者(verifier,v)、发布者(publisher,p)和请求者(requester,r);所述联盟主链由多个验证者管理的节点构成,每个验证者会管理独立的联盟附属链。
4.根据权利要求3所述的一种基于区块链的可信的数据溯源方法,其特征在于,该方法具体实现如下:
首先,p和r需要在区块链中提交自己的信息,生成自己的身份标识pid和rid,系统随机发送给
身份验证通过后,p可以发布自己的数据d的相关信息到联盟附属链,数据d的相关信息di={d,abs,own,pre,acpo},其中,d表示用户的数据;abs表示数据摘要;own表示用户所有权,具体内容为用户所有者的身份标识;pre表示p的数据前驱,即p从该集合中的所有用户中获得过该数据,若数据d的所有者为p,则该集合为空集;acpo为数据的访问策略;
v通过验证算法验证p提交的数据;
每个v验证得到结果后,将所有结果提交,若通过的总数超过k/2,则验证通过;
验证通过后,合约会自动调用联盟主链上的相关数据做数据的溯源;确认无误,会将数据上传到联盟主链,并将数据摘要公开,以方便其他用户查询;并将数据hash一起存到数据块结构中,用于数据完整性验证:
r通过查询数据摘要,对联盟主链上的数据感兴趣,则需要提交自己的信息,以获取联盟主链的信息;
v验证r提交的信息,如果信息合法,则将信息提交到联盟主链,系统调用合约验证p提供的访问权限,如果r满足访问权限,则v将相关数据发送给r,否则v拒绝r的数据请求;
v获得数据后,验证数据完整性,如果无误,则交易结束。
5.根据权利要求1所述的一种基于区块链的可信的数据溯源方法,其特征在于,验证用户身份由验证者执行,且非法验证者v的个数t不超过验证者总数n的1/3,即3t+1≤n。
6.一种基于区块链的可信的数据溯源系统,其特征在于,包括:
系统结构模块,provchain由联盟主链和多条联盟附属链组成;包含三个参与方:验证者(verifier,v)、发布者(publisher,p)和请求者(requester,r);
数据操作模块,负责采集与存储数据,生成并记录数据相关信息;
验证模块,用于验证参与方身份、数据的合法性以及用户操作请求;
可信溯源模块,用于对即将上传到联盟主链的数据进行溯源操作,来检验数据的生命流程;
接口服务模块,用于实现不同模块之间的数据传输,以及不同参与方之间的交互。
7.根据权利要求6所述的一种基于区块链的可信的数据溯源系统,其特征在于,所述联盟主链由多个验证者管理的节点构成,每个验证者会管理独立的联盟附属链。
8.根据权利要求6所述的一种基于区块链的可信的数据溯源系统,其特征在于,对于采集数据在上传阶段需执行如下过程:
通过验证模块对发布者的身份信息进行验证;
当发布者的身份信息通过验证的情况下,提交其数据集访问权限,并通过验证模块进行验证;
当数据通过验证后,调用可信溯源模块验证数据的生命流程是否完整,若通过验证,则将数据上传至联盟主链,并生成数据相关信息。
9.根据权利要求8所述的一种基于区块链的可信的数据溯源系统,其特征在于,存储在联盟主链的数据至少包括:数据本身及数据访问权限,数据的发布者和验证者,数据相关的重要时间,数据的摘要,数据的hash。