一种链上数据锚定方法及装置
技术领域
本发明涉及区块链技术领域,尤其涉及一种链上数据锚定方法及装置。
背景技术
过去要对数据进行存证,必须亲自到公证处或司法鉴定机构,经过繁琐的手续后才能形成具有法律效力的证明,该过程往往在线下进行,流程复杂,时间成本很高,很难形成在线的及时证据。
区块链非常适用于证据保存,证据可以储存在联盟链上,联盟链指若干组织或机构共同参与管理形成的区块链,所签署过的证据链信息会永久保存在此联盟链上。只要有任何一个此联盟链上的节点存在证据就可以随时取证,要篡改证据就要同时篡改整个联盟链网络中一半以上节点的数据,从而提高了证据链信息的有效性。
但是,由于联盟链仅仅有若干组织或者机构的节点,并且,只要其中几个权重较高的节点进行确定就可以了,导致在联盟链上的存证仍然存在被篡改的风险,因此,联盟链上证据链信息的公信力不足,进而从联盟链上获得的证据可能会受到质疑。
发明内容
本发明实施例通过提供一种链上数据锚定方法及装置,解决了联盟链上证据链信息的公信力不足的技术问题。
第一方面,本发明实施例提供一种链上数据锚定方法,包括:
获取当前被写入联盟链的第一上链文件指纹的上链时间节点;
判断所述上链时间节点与最新锚定时间节点之间是否满足预设锚定时间间隔,其中,所述最新锚定时间节点是第二上链文件指纹被锚定至公链集合时对应的时间节点,所述第二上链文件指纹是所述联盟链上的且最新被锚定至所述公链集合的上链文件指纹;
如果满足,将所述第一上链文件指纹锚定至所述公链集合的目标公链。
可选的,所述目标公链由写入所述第一上链文件指纹至所述联盟链的用户节点指定,所述用户节点接入所述联盟链。
可选的,所述目标公链由接入所述联盟链的管理节点预先指定。
可选的,所述获取当前被写入联盟链的第一上链文件指纹的上链时间节点,包括:
从所述联盟链获取根据所述第一上链文件指纹生成的数据区块;
从所述数据区块中提取所述数据区块的生成时间,作为所述第一上链文件指纹的上链时间节点。
可选的,所述获取当前被写入联盟链的第一上链文件指纹的上链时间节点,包括:
将向所述联盟链写入所述第一上链文件指纹的时间节点作为所述第一上链文件指纹的上链时间节点。
可选的,所述第一上链文件指纹具体为:根据所述用户节点的用户提供的证据文件所生成的哈希值。
可选的,在所述将所述第一上链文件指纹锚定至所述公链集合的目标公链之后,还包括:
从所述联盟链上获取所述第一上链文件指纹,所述第一上链文件指纹用于核验与所述第一上链文件指纹对应的证据文件;
判断所述第一上链文件指纹是否为受质疑指纹,如果是,向所述目标公链发起指纹获取请求,所述指纹获取请求用于从所述目标公链获取与所述证据文件对应的第三上链文件指纹;
接收来自所述目标公链的第三上链文件指纹。
第二方面,本发明实施例提供一种链上数据锚定装置,包括:
时间获取单元,用于获取当前被写入联盟链的第一上链文件指纹的上链时间节点;
时间判断单元,用于判断所述上链时间节点与最新锚定时间节点之间是否满足预设锚定时间间隔,其中,所述最新锚定时间节点是第二上链文件指纹被锚定至公链集合时对应的时间节点,所述第二上链文件指纹是所述联盟链上的且最新被锚定至所述公链集合的上链文件指纹;
锚定单元,用于如果所述时间判断单元的判断结果为满足,将所述第一上链文件指纹锚定至所述公链集合的目标公链。
可选的,所述目标公链由写入所述第一上链文件指纹至所述联盟链的用户节点指定,所述用户节点接入所述联盟链。
可选的,所述目标公链由接入所述联盟链的管理节点预先指定。
可选的,所述时间获取单元,具体用于:
从所述联盟链获取根据所述第一上链文件指纹生成的数据区块;
从所述数据区块中提取所述数据区块的生成时间,作为所述第一上链文件指纹的上链时间节点。
可选的,所述时间获取单元,具体用于:
将向所述联盟链写入所述第一上链文件指纹的时间节点作为所述第一上链文件指纹的上链时间节点。
可选的,所述第一上链文件指纹具体为:根据所述用户节点的用户提供的证据文件所生成的哈希值。
可选的,所述装置还包括:
指纹获取单元,用于从所述联盟链上获取所述第一上链文件指纹,所述第一上链文件指纹用于核验与所述第一上链文件指纹对应的证据文件;
指纹判断单元,用于判断所述第一上链文件指纹是否为受质疑指纹,如果是,向所述目标公链发起指纹获取请求,所述指纹获取请求用于从所述目标公链获取与所述证据文件对应的第三上链文件指纹;
接收来自所述目标公链的第三上链文件指纹。
第三方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时第一方面中任一实现方式所述的步骤。
第四方面,本发明实施例提供一种区块链节点,所述区块链节点包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面中任一实现方式所述的步骤。
第五方面,本发明实施例提供一种存证云系统,包括多个区块链节点,一个以上的所述区块链节点包括用于存储证据文件的存储区域,所述区块链节点还包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面中任一实现方式所述的步骤。
本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
通过获取当前被写入联盟链的第一上链文件指纹的上链时间节点;判断第一上链文件指纹的上链时间节点与最新锚定时间节点之间是否满足预设锚定时间间隔;如果满足,将第一上链文件指纹锚定至目标公链。从而能够周期性的将写入联盟链的上链文件指纹锚定至公链,而不是将每个写入联盟链的上链文件指纹都锚定到公链,使得受信部分寄托于公链而不是完全寄托于公链,进而在联盟链的上链文件指纹受任时无需公链,在联盟链的上链文件指纹受质疑时才需要通过公链证明,故而,克服了联盟链上证据链信息的公信力不足的同时,能够保留联盟链一定的独立性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本发明实施例提供的存证云系统的结构图;
图2示出了本发明实施例提供的链上数据锚定方法的流程图;
图3示出了本发明实施例提供的链上数据锚定方法的结构图。
具体实施方式
本发明实施例通过提供一种链上数据锚定方法及装置,解决了联盟链上证据链信息的公信力不足的技术问题,总体思路如下:
通过定期将写入联盟链的上链文件指纹锚定到公链上,实现周期性的将当前写入联盟链的上链文件指纹锚定至公链,而不是将每个写入联盟链的上链文件指纹都锚定到公链,使得受信部分寄托于公链而不是完全寄托于公链,进而在联盟链的上链文件指纹受任时无需公链,在联盟链的上链文件指纹受质疑时才需要通过公链证明,故而,克服了联盟链上证据链信息的公信力不足的同时,能够保留联盟链一定的独立性。
为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
本发明实施例提供一种存证云系统,包括接入联盟链的多个区块链节点。其中,一个以上的区块链节点包括用于存储证据文件的本地存储区域,或者对接有用于存储证据文件的存储区域。
具体的,参考图1所示,接入同一联盟链的区块链节点包括:管理节点和多个用户节点。需要说明的是,管理节点为可信节点,用于对整个存证云系统的监控、数据备份、部署和管理接入联盟链的用户节点。比如,对用户节点接入联盟链请求的许可、记录等等。
具体的,用于存储证据文件的本地存储区域,可以为:用户节点的原始硬盘区域,或者通过用户节点外接的外部存储设备,外部存储设备可以是U盘、移动硬盘。
具体的,对接的用于存储证据文件的存储区域,可以为:与管理节点对接的服务器集群。在具体实施过程中,与管理节点对接的服务器集群包括多个存储服务器,比如包括多个S3服务器,构成一个大数据池。
具体的,接入联盟链的用户节点可以为具有运维能力的节点。比如,如图1所示的用户节点A、用户节点B、用户节点C,直接接入至联盟链,该类用户节点提供对内服务接口,用于为多个内部用户提供服务。在具体实施过程中,接入联盟链的具有运维能力的用户节点可以为一些鉴定机构、监管机构、司法机构、普通企业的计算机设备。
具体的,接入联盟链的用户节点可以为不具备运维能力的节点,如图1所示的用户A、用户B、用户C均为不具备运维能力的节点,通过管理节点提供的对外服务接口接入至联盟链。联盟链上不具备运维能力的用户节点可以为个人用户的计算机设备。
接入联盟链的各个区块链节点基于智能合约共享数据,即上链文件指纹,基于通证token的奖励机制对接入联盟链的各个区块链节点支付算力费用。
需要说明的是,接入同一联盟链的管理节点和各个用户节点可以是部署在同一局域网内,比如,部署在单个公司、单个部门、单个校内。接入同一联盟链的管理节点和各个用户节点还可以是部署在不同局域网内,比如,分布在不同机构之间。
基于同一发明构思,本发明实施例提供一种链上数据锚定方法,应用于接入联盟链的任一区块链节点,该区块链节点具体可以为如图1所示的任一用户节点或者管理节点。参考图2所示,本发明实施例提供的链上数据锚定方法包括如下步骤:
执行步骤S101:获取当前被写入联盟链的第一上链文件指纹的上链时间节点。
具体的,当前被写入联盟链的第一上链文件指纹,具体可以为:根据用户当前提供的初始证据文件所生成的文件指纹,或者根据用户当前提供的鉴定报告文件所生成的文件指纹。
在具体实施过程中,初始证据文件可以是区块链节点根据所收集的证据生成。比如,区块链节点为现场执法设备,则初始证据文件为现场执法设备拍摄的现场执法视频。当然,初始证据文件也可以根据历史证据生成。在具体实施过程中,证据文件的形式可以为:电子合同,文档,视频截屏等。鉴定报告文件为对初始证据文件进行鉴定所生成,生成鉴定报告文件的区块链节点可以是鉴定机构的计算机设备。
在具体实施过程中,证据文件中还可以包括附加信息,而附加信息具体包括如下一种或者多种的组合:存证类型(电子合同,文档,视频截屏)、获证渠道(网页上传、API上传)、获证时间、该用户节点的IP地址、存证用户的用户标识(比如用户名、昵称等)、存证时间等等。
当前被写入联盟链的第一上链文件指纹,具体可以为:用户节点生成并向联盟链写入,也可以为管理节点生成并向联盟链写入。
如果是管理节点生成并向联盟链写入第一上链文件指纹,具体实现过程如下:用户节点将用户节点的用户提供的证据文件发送给管理节点,管理节点保存用户节点的发送证据文件至与管理节点对接的存储区域上;管理节点还处理用户节点发送的证据文件,以生成证据文件的第一上链文件指纹。接着,管理节点将生成的第一上链文件指纹写入联盟链,第一上链文件指纹用于核验从与管理节点对接的存储区域获取的证据文件是否被篡改。
如果是用户节点生成并向联盟链写入第一上链文件指纹,具体实现过程如下:
用户节点将用户节点的用户提供的证据文件保存在用户节点的本地存储区域,用户节点还处理用户提供的证据文件,以生成证据文件的第一上链文件指纹。
具体来讲,在用户节点上安装有用于处理证据文件的目标应用程序或者目标插件,用户节点将证据文件传递给目标应用程序或者目标插件,由目标应用程序或者目标插件对用户提供的证据文件进行处理,以生成第一上链文件指纹。接着,用户节点将生成的第一上链文件指纹向联盟链写入,第一上链文件指纹用于核验从用户节点的本地存储区域获取的证据文件是否被篡改。
在具体实施过程中,向联盟链写入第一上链文件指纹,可以是:分别针对接入联盟链的每个区块链节点上生成包含第一上链文件指纹的数据区块,实现接入联盟链的每个区块链节点上共享第一上链文件指纹。具体的,数据区块包括区块头部和区块体,区块头部存储着数据区块的头信息,上链时间节点记录在头信息中,每个数据区块的区块体中存储着第一上链文件指纹。
数据区块在生成时需要在区块头部加盖时间戳,用于记录当前生成的数据区块的生成时间,下一个生成的数据区块中的时间戳都会对前一个数据区块的时间戳进行增强,在联盟链上形成一个时间递增的链条。
具体的,第一上链文件指纹与证据文件之间唯一对应,证据文件的文件内容一旦发生改变,根据证据文件生成的第一上链文件指纹具体也不相同。在具体实施过程中,第一上链文件指纹为:根据用户节点对应的用户提供的证据文件生成的hash(哈希)值。实现方式具体为:将用户提供的证据文件的文件内容输入至目标哈希算法得到hash值,而本文不限定所使用哈希算法的类型。
在步骤S101中,可以有多种实施方式获取当前被写入联盟链的第一上链文件指纹的上链时间节点,下面进行两种实施方式的说明:
一种实施方式可以为:将向联盟链写入第一上链文件指纹的时间节点作为第一上链文件指纹的上链时间节点。另一种实施方式可以为:从联盟链获取根据当前被写入联盟链的第一证据文件指纹生成的数据区块;从数据区块中获取数据区块的生成时间,作为第一上链文件指纹的上链时间节点。
具体来讲,从当前生成的数据区块的区块头部获取数据区块的生成时间作为第一上链文件指纹的上链时间节点。
需要说明的是,在第一上链文件指纹之前被写入联盟链的各个上链文件指纹(包括第二上链文件指纹)、在第一上链文件指纹之后需要写入联盟链的上链文件指纹,均可以参考前述步骤S101的具体实施方式生成以及写入联盟链,本文不再赘述。
在步骤S101之后,接着执行步骤S102:判断上链时间节点与最新锚定时间节点之间是否满足预设锚定时间间隔,其中,最新锚定时间节点是第二上链文件指纹被锚定至公链集合时对应的时间节点,第二上链文件指纹是联盟链上的且最新被锚定至公链集合的上链文件指纹。
最新锚定时间节点为各个锚定时间节点中,与第一上链文件指纹的上链时间节点之间相隔时间最短的时间节点,而每个被锚定至公链集合的上链文件指纹均对应一个锚定至公链集合的时间节点。举例来讲,截止当前为止的一天内,锚定至公链集合的上链文件指纹有三个,依次为:上链文件指纹1:12:55:40锚定至公链集合的公链A;上链文件指纹2:17:21:30锚定至公链集合的公链B;上链文件指纹3:21:35:20锚定至公链集合的公链C,则最新锚定时间节点为21:35:20。
具体来讲,预设锚定时间间隔根据存证云系统的私密要求确定。在具体实施过程中,预设锚定时间间隔可以为分钟数量级。比如,预设锚定时间间隔可以设置为5分钟、6分钟等等。
在步骤S102之后,执行步骤S103:如果第一上链文件指纹的上链时间节点与最新锚定时间节点之间满足预设锚定时间间隔,将第一上链文件指纹锚定至公链集合的目标公链。
如果当前被写入联盟链的第一上链文件指纹的上链时间节点与最新锚定时间节点之间不满足预设锚定时间间隔,则不将当前被写入联盟链的第一上链文件指纹锚定至目标公链,而是等待下一个被写入联盟链的上链文件指纹,在获取下一个被写入联盟链的上链文件指纹时执行步骤S101~S103。从而每次存在上链文件指纹被写入联盟链都执行步骤S102~S103,从而实现了周期性将证据文件的上链文件指纹锚定到公链集合,而不是将每个上链文件指纹都锚定到公链集合,避免了对公链的完全依赖。
以预设锚定时间间隔为5分钟为例,判断当前被写入联盟链的第一上链文件指纹的上链时间节点与最新锚定时间节点之间是否相隔5分钟,如果相隔5分钟,即将当前被写入联盟链的第一上链文件指纹锚定至公链集合的目标公链,否则不锚定至公链集合的目标公链。
需要说明的是,当前被写入联盟链的第一上链文件指纹锚定至目标公链,具体实现方式为:将当前生成的数据区块的区块体中hash值锚定至目标公链。
具体的,目标公链可以由当前向联盟链写入第一上链文件指纹的用户节点指定。在具体实施过程中,可以是用户节点向联盟链写入第一上链文件指纹时指定目标公链,也可以在判断出第一上链文件指纹的上链时间节点与最新锚定时间节点之间满足预设锚定时间间隔时,再指示用户节点进行指定目标公链。在本实施方式中,由于目标公链为当前向联盟链写入第一上链文件指纹的用户节点指定。因此,不同的用户节点向联盟链写入不同的上链文件指纹,则各上链文件指纹被锚定至的公链可能不同。
具体的,目标公链可以由接入联盟链的管理节点预先指定,从而,不同的上链文件指纹(包括第一上链文件指纹、第二上链文件指纹),即使由不同的用户节点向联盟链写入,只要与最新锚定时间节点之间满足预设锚定时间间隔,均会被锚定至同一公链。
具体来讲,第一上链文件指纹锚定至目标公链就是:将第一上链文件指纹写入至目标公链。需要说明的是,公链集合由多个不同的公链组合,比如,公链集合可以由以太坊,比特币,EOS(Enterprise Operation System,商用分布式计区块链操作系统)组成,则目标公链为以太坊,比特币,EOS中的一种。第二上链文件指纹被锚定至公链集合中的一个公链,具体的,可以与目标公链相同,也与目标公链可以不同。
进一步的,本发明实施例还提供如下步骤,以获取准确的用于核验证据文件的上链文件指纹,具体实现过程如下:
步骤1、从联盟链上获取第一上链文件指纹,第一上链文件指纹用于核验与第一上链文件指纹对应的证据文件。
具体的,如果接入联盟链的区块链节点需要从联盟链上获取第一上链文件指纹,向联盟链提供用于提取第一上链文件指纹的取证凭据,根据取证凭据从联盟链上获取第一上链文件指纹。
需要说明的是,取证凭据可以为证据文件的证据标识。在具体实施过程中,证据标识可以是证据编号,证据编号可以基于用户节点上传证据文件的存证时间、存证顺序生成,也可以仅根据证据文件的存证顺序生成。举例来讲,证据文件的存证时间为2018-04-0418:55:40,存证顺序为496266,则证据文件的证据编码可以为20180404-185540-496266。
步骤2、判断从联盟链上获取的第一上链文件指纹是否为受质疑指纹。
具体的,步骤2具体可以为:基于用户的质疑操作确定从联盟链上获取的第一上链文件指纹为受质疑指纹,比如,在用户节点上设置有用于用户进行质疑操作的区域,如果用户质疑从联盟链上获取的第一上链文件指纹,则执行质疑操作。步骤2具体也可以为对从联盟链上获取的第一上链文件指纹进行识别,确定从联盟链上获取的第一上链文件指纹是否为受质疑指纹。
步骤3、如果从联盟链上获取的第一上链文件指纹为受质疑指纹,用户节点向目标公链发起指纹获取请求,指纹获取请求用于从目标公链获取与证据文件对应的第三上链文件指纹;则目标公链向用户节点下发第三上链文件指纹。
具体的,可以根据与用于获取第一上链文件指纹相同的取证凭据,从目标公链上获取第三上链文件指纹。需要说明的是,第三上链文件指纹可能与第一上链文件指纹相同,也可能不同。
用户节点接收来自目标公链的第三上链文件指纹之后,可以基于来自目标公链的第三上链文件指纹对所提取的证据文件进行核验。如果从联盟链上获取的第一上链文件指纹不是受质疑指纹,则直接基于从联盟链上获取的第一上链文件指纹对所提取的证据文件进行核验。
通过上述实施方式,能够在联盟链本身存储的文件指纹受到信任时无需公链,而联盟链受到质疑时通过公链证明,因此并不完全依赖于公链的同时,又能提高用于对证据文件进行核验的上链文件指纹的准确性,从而提高了联盟链的公信力。
如果将证据文件保存在用户节点的本地存储区域:用户节点的用户输入证据文件之后,用户节点直接将用户提供的证据文件保存在自身的本地存储区域。更具体来讲,为了保证所存储证据文件的安全性,用户节点在获取用户提供的证据文件之后对证据文件加密,得到加密后证据文件;存储加密后证据文件至用户节点的本地存储区域上。
如果将证据文件保存在与管理节点对接的存储区域上:在用户节点的用户输入证据文件之后,用户节点向管理节点发送用户提供的证据文件,则管理节点接收用户节点发送的证据文件并保存证据文件至与管理节点对接的存储区域上。更具体来讲,为了保证所存储证据文件的安全性,管理节点在接收用户节点发送的证据文件之后对证据文件加密,得到加密后证据文件;存储加密后证据文件至与管理节点对接的存储区域上。
加密所用密钥由执行加密的节点掌握。更具体来讲,针对每个证据文件所用的密钥不同,可以随机生成用于加密用户提供的证据文件的密钥。
接入联盟链的管理节点和各个用户节点采用共识机制实现上链文件指纹的共享。在具体实施过程中,可以设置有多种共识机制,比如,可以设置有Pow(Proof of Work–PoW,工作量证明机制)、pos(Proof of Stake-PoS,权益证明机制)、dpos(Practical ByzantineFault Tolerance-PBFT,拜占庭共识算法)三种共识机制,在如上三种共识机制中切换,确定一种作为当前使用的共识机制。
具体的,在用户节点从与管理节点对接的存储区域,或者从另一用户节点的本地存储区域,或者自身的本地存储区域提取证据文件之后执行步骤1,以从联盟链上获取用于核验证据文件的上链文件指纹。
进一步的,为了避免用户上传无意义的证据文件,本发明实施例还提供如下实施过程:
用户节点获取管理节点针对证据文件发送的奖励,其中,奖励由管理节点在评价结果满足预设评价条件时向提供证据文件的用户节点发送,管理节点统计预设时长范围内对证据文件的评价要素以获得对评价结果。
具体来讲,管理节点获取预设时长范围内对证据文件的评价要素,评价要素用于评价用户提供的证据文件的文件内容;管理节点统计预设时长范围内对证据文件的评价要素,以获得对证据文件的评价结果;管理节点判断评价结果是否满足预设评价条件,如果满足,管理节点向用户节点下发奖励。如果不满足,管理节点则不向上传证据文件的用户节点下发奖励。
在具体实施过程中,还可以在评价结果不满足预设评价条件时,管理节点向提供证据文件的用户节点下发评价结果。需要说明的是,评价要素可以是来自于提取证据文件的另一用户节点。具体的,可以有多种实施方式:
实施方式一:每个用户节点在从存储区域(用户节点的本地存储区域或者与管理节点对接的存储区域)提取证据文件之后,上报对所提取的证据文件的评价要素,也可以是在核验所提取的证据文件没有被篡改之后,上报对证据文件的评价要素。
实施方式二:向接入联盟链的每个用户节点以只读方式公开证据文件,使得接入联盟链的每个用户节点上报对所公开的证据文件的评价要素。
在具体实施过程中,评价要素可以有多种形式,下面分别进行说明:
形式一:评价要素为对证据文件的打分值,具体来讲,可以设置打分值范围,用户节点在打分值范围内对所获取的证据文件进行打分,从而管理节点得到每个用户节点对证据文件的打分值。举例来讲,打分值范围可以设置为0~5,也可以设置为0~10,还可以设置为0~100。当然,打分值范围还可以根据实际需要设置为其他范围。对应的,预设评价条件为打分值阈值,累计预设时长范围内各个用户节点对同一证据文件的打分值,以获得对同一证据文件的打分值累计结果;判断打分值累计结果是否达到打分值阈值,如果是,管理节点向用户节点下发奖励,否则,管理节点不下发奖励。
形式二、评价要素为对证据文件的多选一投票。比如,可以为:二选一投票或者三选一投票。以二选一投票举例,投票选项有:“赞”投票选项和“踩”投票选项。累计预设时长范围内对同一证据文件的投票选项,以获得对同一证据文件的“赞”投票数量和“踩”投票数量。之后,可以为如下一种方式确定是否下发奖励:
则可以是:判断“赞”投票数量是否大于“赞”数量阈值,以及判断“踩”投票数量是否小于“踩”数量阈值,如果“赞”投票数量大于“赞”数量阈值,且“踩”投票数量小于“踩”数量阈值,则管理节点向提供该证据文件的用户节点下发奖励,否则,管理节点不下发奖励。
还可以是:判断“赞”投票数量是否大于“踩”投票数量,如果是,则管理节点向上传该证据文件的用户节点下发奖励,否则,管理节点不向提供该证据文件的用户节点下发奖励。
还可以是:判断“赞”投票数量是否大于“赞”数量阈值,以及判断“赞”投票数量大于“踩”投票数量,如果同时满足“赞”投票数量大于“赞”数量阈值、且“赞”投票数量大于“踩”投票数量,则管理节点向提供该证据文件的用户节点下发奖励,否则,管理节点不下发奖励。
进一步的,还可以在评价结果不满足预设评价条件时,如果证据文件存储在用户节点的本地存储区域,管理节点发送删除指令,从用户节点的本地存储区域删除证据文件,如果证据文件存储在与管理节点对接的存储区域,管理节点直接从与管理节点对接的本地存储区域删除证据文件,从而避免了无意义的证据文件对存储空间的占用。
需要说明的是,预设时长范围根据实际需求设置,比如,可以设置为一天、或者一周,或者一个月。
基于同一发明构思,本发明实施例提供一种链上数据锚定装置,参考图3所示,包括:
时间获取单元201,用于获取当前被写入联盟链的第一上链文件指纹的上链时间节点;
时间判断单元202,用于判断所述上链时间节点与最新锚定时间节点之间是否满足预设锚定时间间隔,其中,所述最新锚定时间节点是第二上链文件指纹被锚定至公链集合时对应的时间节点,所述第二上链文件指纹是所述联盟链上的且最新被锚定至所述公链集合的上链文件指纹;
锚定单元203,用于如果所述时间判断单元的判断结果为满足,将所述第一上链文件指纹锚定至所述公链集合的目标公链。
在一具体的实施方式中,所述目标公链由写入所述第一上链文件指纹至所述联盟链的用户节点指定,所述用户节点接入所述联盟链。
在一具体的实施方式中,所述目标公链由接入所述联盟链的管理节点预先指定。
在一具体的实施方式中,所述时间获取单元201,具体用于:
从所述联盟链获取根据所述第一上链文件指纹生成的数据区块;
从所述数据区块中提取所述数据区块的生成时间,作为所述第一上链文件指纹的上链时间节点。
在一具体的实施方式中,所述时间获取单元201,具体用于:
将向所述联盟链写入所述第一上链文件指纹的时间节点作为所述第一上链文件指纹的上链时间节点。
在一具体的实施方式中,所述第一上链文件指纹具体为:根据所述用户节点的用户提供的证据文件所生成的哈希值。
在一具体的实施方式中,所述装置还包括:
指纹获取单元,用于从所述联盟链上获取所述第一上链文件指纹,所述第一上链文件指纹用于核验与所述第一上链文件指纹对应的证据文件;
指纹判断单元,用于判断所述第一上链文件指纹是否为受质疑指纹,如果是,向所述目标公链发起指纹获取请求,所述指纹获取请求用于从所述目标公链获取与所述证据文件对应的第三上链文件指纹;
接收来自所述目标公链的第三上链文件指纹。
基于同一发明构思,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述链上数据锚定方法实施例中任一种实施方式所述的步骤。
基于同一发明构思,本发明实施例提供一种区块链节点,所述区块链节点包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现前述链上数据锚定方法实施例中任一种实施方式所述的步骤。
本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
通过获取当前被写入联盟链的第一上链文件指纹的上链时间节点;判断第一上链文件指纹的上链时间节点与最新锚定时间节点之间是否满足预设锚定时间间隔;如果满足,将第一上链文件指纹锚定至目标公链。从而能够周期性的将写入联盟链的上链文件指纹锚定至公链,而不是将每个写入联盟链的上链文件指纹都锚定到公链,使得受信部分寄托于公链而不是完全寄托于公链,进而在联盟链的上链文件指纹受任时无需公链,在联盟链的上链文件指纹受质疑时才需要通过公链证明,故而,克服了联盟链上证据链信息的公信力不足的同时,能够保留联盟链一定的独立性。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的各描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的智能摄像系统以及网络摄像头中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者系统程序(如计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是,上述各实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应该将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或者步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干系统的单元权利要求中,这些系统中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开A1、一种链上数据锚定方法,包括:
获取当前被写入联盟链的第一上链文件指纹的上链时间节点;
判断所述上链时间节点与最新锚定时间节点之间是否满足预设锚定时间间隔,其中,所述最新锚定时间节点是第二上链文件指纹被锚定至公链集合时对应的时间节点,所述第二上链文件指纹是所述联盟链上的且最新被锚定至所述公链集合的上链文件指纹;
如果满足,将所述第一上链文件指纹锚定至所述公链集合的目标公链。
A2、如A1所述的链上数据锚定方法,所述目标公链由写入所述第一上链文件指纹至所述联盟链的用户节点指定,所述用户节点接入所述联盟链。
A3、如A1所述的链上数据锚定方法,所述目标公链由接入所述联盟链的管理节点预先指定。
A4、如A1所述的链上数据锚定方法,所述获取当前被写入联盟链的第一上链文件指纹的上链时间节点,包括:
从所述联盟链获取根据所述第一上链文件指纹生成的数据区块;
从所述数据区块中提取所述数据区块的生成时间,作为所述第一上链文件指纹的上链时间节点。
A5、如A1所述的链上数据锚定方法,所述获取当前被写入联盟链的第一上链文件指纹的上链时间节点,包括:
将向所述联盟链写入所述第一上链文件指纹的时间节点作为所述第一上链文件指纹的上链时间节点。
A6、如A4或A5所述的链上数据锚定方法,所述第一上链文件指纹具体为:根据所述用户节点的用户提供的证据文件所生成的哈希值。
A7、如A1-A5中任一项所述的链上数据锚定方法,在所述将所述第一上链文件指纹锚定至所述公链集合的目标公链之后,还包括:
从所述联盟链上获取所述第一上链文件指纹,所述第一上链文件指纹用于核验与所述第一上链文件指纹对应的证据文件;
判断所述第一上链文件指纹是否为受质疑指纹,如果是,向所述目标公链发起指纹获取请求,所述指纹获取请求用于从所述目标公链获取与所述证据文件对应的第三上链文件指纹;
接收来自所述目标公链的第三上链文件指纹。
本发明公开B8、一种链上数据锚定装置,包括:
时间获取单元,用于获取当前被写入联盟链的第一上链文件指纹的上链时间节点;
时间判断单元,用于判断所述上链时间节点与最新锚定时间节点之间是否满足预设锚定时间间隔,其中,所述最新锚定时间节点是第二上链文件指纹被锚定至公链集合时对应的时间节点,所述第二上链文件指纹是所述联盟链上的且最新被锚定至所述公链集合的上链文件指纹;
锚定单元,用于如果所述时间判断单元的判断结果为满足,将所述第一上链文件指纹锚定至所述公链集合的目标公链。
B9、如B8所述的链上数据锚定装置,所述目标公链由写入所述第一上链文件指纹至所述联盟链的用户节点指定,所述用户节点接入所述联盟链。
B10、如B8所述的链上数据锚定装置,所述目标公链由接入所述联盟链的管理节点预先指定。
B11、如B8所述的链上数据锚定装置,所述时间获取单元,具体用于:
从所述联盟链获取根据所述第一上链文件指纹生成的数据区块;
从所述数据区块中提取所述数据区块的生成时间,作为所述第一上链文件指纹的上链时间节点。
B12、如B8所述的链上数据锚定装置,所述时间获取单元,具体用于:
将向所述联盟链写入所述第一上链文件指纹的时间节点作为所述第一上链文件指纹的上链时间节点。
B13、如B11或B12所述的链上数据锚定装置,所述第一上链文件指纹具体为:根据所述用户节点的用户提供的证据文件所生成的哈希值。
B14、如B8-B13中任一项所述的链上数据锚定装置,还包括:
指纹获取单元,用于从所述联盟链上获取所述第一上链文件指纹,所述第一上链文件指纹用于核验与所述第一上链文件指纹对应的证据文件;
指纹判断单元,用于判断所述第一上链文件指纹是否为受质疑指纹,如果是,向所述目标公链发起指纹获取请求,所述指纹获取请求用于从所述目标公链获取与所述证据文件对应的第三上链文件指纹;
接收来自所述目标公链的第三上链文件指纹。
本发明公开C15、一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现A1-A7中任一项所述的步骤。
本发明公开D16、一种区块链节点,所述区块链节点包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现A1-A7中任一项所述的步骤。
本发明公开E17、一种存证云系统,包括多个区块链节点,一个以上的所述区块链节点包括用于存储证据文件的存储区域,所述区块链节点还包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现A1-A7中任一项所述的步骤。