基于区块链的可信数据计算方法与流程

文档序号:15296717发布日期:2018-08-31 19:27阅读:383来源:国知局

本发明涉及区块链技术,特别涉及一种基于区块链的可信数据计算方法。



背景技术:

电子证据涉及到隐私和安全问题,只有授权的用户才可以访问相关的电子证据。数据匿名性可以用来保护个人电子证据数据的安全。在数据隐私保护方面,已有多种针对个人数据进行隐私保护的技术。包括通过构建匿名数据集使得每个私密信息和其他的记录具有不可区分性,或通过对私密信息重新分布实现隐私保护,或将隐私数据进行加密并允许任何计算运行在密文上。传统的电子证据存储模式均采取中心化的模式,数据安全模型依靠创建多因子认证访问控制。然而,这也意味着一旦非法用户进入了系统,就可以访问到所有数据,存在有单点失败问题。同时,用户必须依赖于第三方的可信性。



技术实现要素:

为解决上述现有技术所存在的问题,本发明提出了一种基于区块链的可信数据计算方法,包括:

电子证据发布阶段,用户向公证机构请求下载时,公证机构为该用户产生所需类型的证据数据;证据数据产生后,公证机构为证据数据生成散列,并将电子证据的摘要、散列中所使用的发行方的私钥签名后发布到电子证据私有区块链上,同时将电子证据用对称密钥加密,并将加密密钥用用户的公钥加密后一起发送给用户;

电子证据存储阶段,用户从公证机构收到了自己的证据数据后,首先验证公证机构的签名,然后用自己的私钥解密出证据数据的加密密钥,并解密出原始证据数据及其签名,然后生成新的加密密钥将证据数据及其签名加密存放到分布式文件系统中保存;

电子证据授权使用阶段,用户通过访问控制事务授权司法机构访问其部分电子证据,并随时收回权限;授权时,将共享记录在分布式文件系统中的位置、使用权限、使用期限用司法机构使用者公钥机密的解密密钥一起写入到区块链中。

优选地,在构造加密事务信息时,采用基于时间戳的可验证的密码方法;每一个节点均有一对公私钥(pk,sk),其中pk公开,sk秘密保存;同时节点在进行注册的时候,每一个节点均从验证中心获取一个验证密钥key,该验证密钥只有节点及验证中心存储;源节点a在向目的节点b发送电子证据时,源节点a使用自己的验证密钥key与发送时间time,使用hash算法计算key’=hash(key||time),使用key’加密该电子证据,并使用成员目的节点b的公钥pkb加密key’,将加密后的电子证据及使用公钥加密的密钥发送给目的节点b,目的节点b使用自己的私钥skb解密获取电子证据的加密密钥key’,继而获得相应的电子证据;

验证节点获取到相应的消息后,需要进行验证时,查询该条电子证据的发送时间time,同时利用存储的源节点a的验证密钥key,继而获取事务信息的解密密钥key’=hash(key||time),解密获得相应的事务信息。

本发明相比现有技术,具有以下优点:

本发明提出了一种基于区块链的可信数据计算方法,有效地实现了用户电子证据的安全存储和有效使用。

附图说明

图1是根据本发明实施例的基于区块链的可信数据计算方法的流程图。

具体实施方式

下文与图示本发明原理的附图一起提供对本发明一个或者多个实施例的详细描述。结合这样的实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求书限定,并且本发明涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节以便提供对本发明的透彻理解。出于示例的目的而提供这些细节,并且无这些具体细节中的一些或者所有细节也可以根据权利要求书实现本发明。

本发明的一方面提供了一种基于区块链的可信数据计算方法。图1是根据本发明实施例的基于区块链的可信数据计算方法流程图。

本发明针对用户电子证据公开过程中存在的安全和隐私问题,采用分布式的电子证据安全存储和共享的方案。电子证据由用户所有,其使用权限也由用户控制。用户既可以共享他们的电子证据给司法机构,也有能力及时撤销其权限。有效地实现了用户电子证据的安全存储和有效使用。

本发明构建了实现电子证据的安全存储和共享的电子证据私有区块链。在电子证据私有区块链中有公证机构、用户和司法机构3类事务主体,公证机构可为不同的服务器,例如提供电子合同、视频、通话记录、图像的服务器,负责给用户提供电子证据,用户可以在不同的公证机构下载,对用户的电子证据拥有所有权和支配权,司法机构可以被授权使用用户的电子证据。在电子证据私有区块链中,用户以匿名的方式参加事务,电子证据私有区块链接受2种新类型的事务,分别是访问控制和数据存储。由于区块链的存储容量受限制,所以用户电子证据都存放在链下的分布式文件系统中,区块链中只保留对该数据在分布式文件系统中的引用。

电子证据发布阶段,用户向公证机构请求下载时,公证机构为该用户产生所需要类型的证据数据。证据数据产生后,公证机构为证据数据生成散列,并将电子证据的摘要、散列中所使用的发行方的私钥签名后发布到电子证据私有区块链上。同时将电子证据用对称密钥加密,并将加密密钥用用户的公钥加密后一起发送给用户

电子证据存储阶段,用户从公证机构收到了自己的证据数据后,首先验证公证机构的签名,然后用自己的私钥解密出证据数据的加密密钥,并解密出原始证据数据及其签名,然后生成新的加密密钥将证据数据及其签名加密存放到分布式文件系统中保存。

电子证据授权使用阶段,用户的证据数据的使用权限完全由用户自己控制,用户可以通过访问控制事务授权司法机构访问其部分电子证据,并可以随时收回权限。授权时将共享记录在分布式文件系统中的位置、使用权限、使用期限、用司法机构使用者公钥机密的解密密钥一起写入到区块链中,分布式文件系统管理端以此设置访问控制策略。

电子证据私有区块链的数据层存储用户电子证据的信息摘要和具体数据在分布式文件系统中的位置,结构相同的区块通过链式结构形成数据的链。存储链创建创世块,网络节点新产生的区块经过验证后被加入到主链上,形成对事务数据的永久保存。

在电子证据私有区块链中通过时间戳来保证各区块按照时序链接,通过散列函数来保证数据不被篡改,通过公钥加密实现身份认证。

电子证据私有区块链中的事务通过默克尔树进行组织,包含访问控制和数据存储2种类型事务。在电子证据私有区块链事务的数据结构中,事务类型由事务类型字段进行识别,用于指示矿机使用不同的规则验证事务的有效性。在数据存储事务中只保存公共数据,即对资源的简要描述,而重要的私密电子证据数据都保存在链下的分布式文件系统中,并将其相关记录的引用以及原始数据的散列值保存在区块链中。数据在链下分布式文件系统中都是以密文保存。

在数据存储的事务中,将用户的电子证据m、描述证据的描述符dcr以及签名写入到区块链中,如{m;dcr;sig(m;dcr)}。对电子证据的使用权限完全由用户自己控制,用户可以授予某个主体访问相关数据的权限,也可以及时撤销其权限。在访问控制事务中,数据属主将主体对资源的权限写入到区块链中,资源用res表示,主体用数据使用者的公钥pkey表示,证据数据解密密钥k用访问对象公钥pkey加密。然后加上有效期和签名,如:

{res;authority;pkey;expr;sig(res;authority;pkey);epkey(k)}。

其中authority为被授予的权限;expr表示有效期;epkey为公钥加密算法。当被授予的权限authority为空集时,表明撤销其所有权限。链下分布式文件系统以区块链作为权限管理者,来控制不同用户对数据的访问。

电子证据私有区块链网络层是用于实现网络中各个节点之间的通信的p2p网络。每个节点都是平等的,每个节点既可以产生信息,也可以接收信息,节点之间通过维护一个共同的记账数据库来保持通信的一致性。在电子证据私有区块链的网络中,每个节点都可以创造新的区块,节点创造新的区块后通过广播的形式向全网传播,收到信息的节点对接收到的区块信息进行验证,通过验证后继续向网络转发。矿机根据共识机制进行验证,当这个新区块得到其他所有节点认可后,矿机将此区块加到电子证据私有区块链的主链上。

节点按照p2p协议组成包含不同角色节点的对等网络;每个节点均按照角色和策略向其临近节点转发事务信息或事务信息块;网络中节点具有公私钥对,并有由公钥生成的地址;所有的网络节点共同维护一个全局一致的电子证据数据库,所有节点按照服务能力分为全副本节点、部分副本节点、本地节点;其中全副本节点保存并维护电子证据数据库的完整副本,提供电子证据的验证、存储、传输和查询服务;部分副本节点保存数据库的部分数据,提供电子证据的快速检验、查询、转发;本地节点只保存与本节点相关的电子证据;

电子证据由源节点发送到目标节点通过两阶段过程实现:

第一阶段,源节点通过调用文件访问接口将电子证据封装为签名的事务信息,通过部分副本节点发送或直接发送给全副本节点;全副本节点将电子证据定期打包为事务信息块,并在对等网络中转发,基于共识算法在所有全副本节点之中达成一致,然后写入各全副本节点的本地数据库副本,确保数据库的全局一致性;

第二阶段,目标节点利用文件访问接口通过部分副本节点或全副本节点从电子证据数据库中查询并获取本节点未处理的事务信息;部分副本节点或全副本节点也可以过滤转发到本节点的已确认的事务信息块消息,提取与目标节点地址匹配的消息将其发送到目标节点;目标节点使用源节点公钥验证消息的签名,并通过本节点的私钥解密会话密钥,然后解密消息获取电子证据。

电子证据私有区块链共识层使分散的节点就区块的有效性达成共识。电子证据私有区块链采用工作量证明机制来保证分布式记账数据库的一致性,将一个时间间隔内的事务聚集形成一个新的区块,矿工通过求解复杂的sha难题来竞争记账权,第1个求出解的矿工将其创建的区块广播给其他节点,如果预定义比例的用户通过验证,该矿工就获得该区块的挖矿回馈,并将新区块链接到电子证据私有区块链的主链。

电子证据由源节点按照数据存储层协议发送目标节点后,源节点采用密码算法生成一个会话密钥ks,并将电子证据m用ks加密得到eks(m),eks(m)指的是电子证据m用会话密钥ks加密的函数,将ks用目标节点的公钥加密得到epkey(ks),然后构造(源地址ds,目标地址dd,epkey(ks),eks(m))的未签名消息,然后源节点用自己的公钥pkey对该消息签名后发送到全副本节点或数据库;当全副本节点接收到电子证据时,对电子证据进行验证,验证通过的电子证据继续在网络上广播;当时间戳到达时,该全副本节点将未处理的事务信息构造为事务信息块,并基于上个事务信息块的hash值和本事务信息块的电子证据,计算本事务信息块的hash值写入该事务信息块;然后发送到网络进行验证;

优选地,采用以下共识算法保证数据库在分布式网络中的一致性,具体步骤是:验证节点由预定义共识策略或算法选取。验证节点接收事务信息块后按照共识算法所指定规则对其进行验证并投票;当验证节点收到对该事务信息块确认达到共识算法指定的足够数量后,验证节点将认为该块有效,并与已有块形成块链模式的电子证据数据库;所述足够数量是通过共识算法预先确定的。

在构造加密事务信息时,采用基于时间戳的可验证的密码方法;每一个节点均有一对公私钥(pk,sk),其中pk公开,sk秘密保存;同时节点在进行注册的时候,每一个节点均从验证中心获取一个验证密钥key,该验证密钥只有节点及验证中心存储;源节点a在向目的节点b发送电子证据时,源节点a使用自己的验证密钥key与发送时间time,使用hash算法计算key’=hash(key||time),使用key’加密该电子证据,并使用成员目的节点b的公钥pkb加密key’,将加密后的电子证据及使用公钥加密的密钥发送给目的节点b,目的节点b使用自己的私钥skb解密获取电子证据的加密密钥key’,继而获得相应的电子证据。验证节点获取到相应的消息后,需要进行验证时,查询该条电子证据的发送时间time,同时利用存储的源节点a的验证密钥key,继而获取事务信息的解密密钥key’=hash(key||time),解密获得相应的事务信息。

电子证据私有区块链激励层的目的是提供一定的激励机制鼓励节点参与区块链的事务验证工作。在电子证据私有区块链中,每笔事务都会产生一定量的回馈费,回馈费由事务的输入和输出的差值产生,由在挖矿竞赛中获胜的矿工收集,作为挖矿回馈。在电子证据私有区块链中,采用了比特币的工作量证明机制,每一个固定的时间周期内会产生一个新的区块,每个挖矿周期矿机的具体过程为:

矿机收集网络中广播的事务;如果事务类型为数据存储,则验证电子证据发布方的签名的合法性;否则验证资源的有效性和授权方签名的合法性;如果事务验证通过将事务加入到候选块中;否则丢弃该事务;根据候选块的计算满足散列要求的随机数;如果未收到其他节点广播的候选块,则广播自己的候选块,竞争记账权;否则验证收到的候选块,并加入到将电子证据私有区块链的主链中;按照以上过程进入下一轮挖矿竞赛。

写入区块链的接口定义为put(type,data),其中,参数type表明用户的数据处理意图,可以是create,insert,update或delete。区块链是不能更改已经存入区块链的数据,这里的update和delete不是像数据库那样对数据执行update或delete,而是在区块链上记录下对数据所发生过的操作,即,作为一笔新事务记录在案;参数data是用户的电子证据数据。区块链查询接口定义为get(status),其中,参数status表明用户的查询条件,可以是块的散列值或事务的散列值,也可以与应用有关的关键字。

优选地,在本发明的电子证据私有区块链加入了节点信用机制,即拜占庭式投票和数据采集同时进行,对每个事务进行投票,并且对块的投票结果进行投票。传输服务将缓存中的事务放入桶中;为每个桶中的事务创建位图;创建并向所有其他节点发送块,进一步执行信用计算;同步器广播本地区块链的长度,接收遗漏的块,并存储接收的块;登录区块链同步区块链,以确保不同节点的一致状态,创建帐户索引以加速查询,并提供帐户公私密钥服务;事务区块链首先执行链上代码,然后将结果放入桶中,对于非链上代码事务,直接放入桶中,并准备创建块;

登录区块链负责查询、保存账目、建块。登录区块链中一条链内账户信息是共享的。同时,登录区块链也提供可扩展性,即:当区块链处理大小超过限制,可以被分割成多个子登录区块链,由不同机器上托管以保持平衡的工作量。事务区块链负责建块、执行事务。事务区块链仅仅是用作事务和结算的通道,它不保存事务双方账户信息,而存储在事务区块链的数据也被加密,使得只有参与机构可以看到数据。采用登录区块链和事务区块链并行架构,每个机构都可以拥有自己的账户区块链。只有当需要事务的信息时,才必须共享到事务区块链上。

对于共识机制,本发明取消了证书删除节点间协商过程,系统同步区块过程采用节点请求的方式;根据区块生成协议,采用超时机制进行视图切换,在一定程度上减少网络通信量。

当全网节点对某个区块的合法性进行校验并且校验通过后,所有节点将该区块添加到区块链中,并从事务列表中移除该区块中包含的事务。该区块中的事务记录到区块链中并生效。区块的校验包括对区块头信息的校验和区块体中事务信息的校验,区块头中包含上一区块的散列值和当前区块的时间戳。当事务到来时,事务列表不为空,此时由全副本节点将事务写入到区块中并广播该区块。当全网节点对该区块达成一致后,尝试将该区块添加到区块链中。

整个过程是异步的,节点间通过区块号和区块记录的上一区块散列值保证区块添加到区块链的有序性。当事务列表为空时,节点会监听区块链中最优区块的时间戳与系统时间间隔,当时间超过t会生成一个空的区块并添加到区块链中。

考虑到在信息传输过程会产生网络延迟,假设区块从生成到达成共识并添加到区块链的最长时间为δt,其中t需要满足t>δt,这样可以保证在生成空区块时,之前的区块已经在全网达成一致。当区块链中添加空区块后,全副本节点停止生成区块,并等待事务到来时再重新触发生成区块。

信息达成共识并执行需要经过三阶段执行协商后达成一致执行,三阶段协商过程如下:

(1)当全副本节点中满足生成区块条件时生成一个新区块时,全副本节点生成预备证书,将预备证书发送给其他节点后,全副本节点进入就绪状态。

(2)其他节点收到预备证书时就接收到了新生成区块的信息,同时该节点进入到就绪状态。当该节点发现消息是来自于全副本节点时并且第一次接收时,将就绪证书发送给其他节点,并记录证书信息。当发现某一证书通过2f个节点同意的反馈,表明该区块信息通过了一个团组的同意,那么对于这条证书该节点进入提交的状态,并向其他节点发送提交消息。其中f为容忍拜占庭错误的区块链中最小取值。所述团组为用于一致性验证的节点集合,任意两个团组至少有一个共同并合法的节点。

(3)其他节点接收到来自其他节点的提交的证书,当发现该信息得到了2f+1个节点同意,则认为该区块信息在系统中达成共识,并尝试将该区块添加到区块链中。

通过上述三阶段提交方式,使一个区块实现了全网节点达成一致。当其他节点发生拜占庭错误时,另外两个其他节点是合法节点,仍可以满足2f+1个节点通过验证,合法节点之间可以保证区块的一致性;当全副本节点发生拜占庭错误时,通过在其他节点中重新选出全副本节点生成区块并发送消息。接着将该区块添加到区块链,合法的区块会成功添加到区块链,并触发下一个区块的生成,这个过程是循环执行的。

当完成区块校验,并证明该区块是合法时,将区块内包含的事务从该节点的事务列表中移除掉,并将该区块添加到区块链中。

区块链是以链表的形式按照区块的生成时间相连而成,当一个区块添加到区块链中,即该节点中这些证书相关的状态已经广播完毕,并可以进行移除,而证书的信息则以区块的形式永远保存在该节点中。因此本发明对添加区块事件进行监听,每当有区块添加到区块链中,将该节点中该区块时间戳之前的证书进行移除。

当某节点区块链状态与其他节点不一致时,向该视图中的2f+1个节点请求该区块链需要添加的区块的区块散列,区块散列是唯一标识区块的256位字节数组,当有不少于f+1个节点返回的区块散列一致,则认为该区块散列对应的区块在全网达成共识。该节点首先在预备证书中查找是否存在该区块散列的证书,不存在会向其中一个节点请求该区块散列对应的区块,并将该区块添加到区块链中,实现同步。

本发明采用对区块链最优区块监听的方式判断全副本节点是否发生故障,当满足添加区块的条件下,节点没有进行区块的添加则认为全副本节点发生故障,此时需要进行视图切换。视图切换过程将证书列表进行移除,并由新的全副本节点完成提交事务的操作,并继续维持系统的稳定。其他合法节点仍然可以将事务存入事务列表中,并由其他节点各自维护的本地数据提供服务。整个视图切换过程根据区块链中最优区块时间戳采用超时触发,在区块链可容忍的延迟的范围,完成全副本节点的切换,不需要节点间相互通信。

此外,本发明的电子证据私有区块链中进一步包含区块池和数据整合节点。区块池存储电子证据私有区块链数据。数据整合节点整合公证机构上传的电子证据,并执行智能合约控制数据的共享访问。智能合约是一套以数字形式定义的承诺,包括合约参与方可以在上面执行这些承诺的协议。当一个预先编好的条件被触发时,智能合约执行相应的合同条款。在本发明中,智能合约与共识机制、点对点网络、默克尔树以及数据库技术构成了电子证据私有区块链。在满足合约执行的触发条件下,智能合约智能化自动执行数据访问和共享请求,依据定义好的约束条件执行数据输出、数据共享操作。进一步地,基于智能合约的电子证据存储包括以下方面,即系统初始化,电子证据上传,工作量证明和区块共识过程。

在初始化时,电子证据私有区块链的公证机构通过身份认证后,成为对等网络的合法节点,并获取用于加密数据的别名集合及其证书certpidi,表示为{pkpidi,skpidi,certpidi},其中pkpidi,skpidi分别表示公证机构ni的别名公钥和别名私钥。节点从邻近的矿机的区块池中下载当前电子证据私有区块链的描述符索引数据表即区块数据存储位置索引表。

对等节点ni先发送上传请求给本地矿机,其中上传请求中包含节点的当前使用的别名证书certpidi和数字签名sig1,保证数据来源可靠性和真实性;本地矿机接收到请求后,验证节点的请求和身份信息,确认其合法性后回应节点的上传请求。对等节点使用当前别名的公钥pkpidi加密电子证据m,并附上加密数据的数字签名,然后使用本地矿机bsj的公钥pkbsj对上传记录进行加密得到最终上传数据datarecord。本地矿机bsj收集上传数据,上传datarecord进行验证,如果数据安全有效,即可存储到本地区块池;如果不是安全有效的数据,则直接忽略。

本地矿机bsj把预设时间周期内所有收集的有效数据整合成数据簇(表示为datacluster={datarecords‖time}),并对数据进行数据签名。矿机寻找有效的工作量证明以争取记录本次数据区块。具体地,矿机依据随机数x和上一个区块的散列值、时间戳、默克尔树根值等数值(表示为pdata)来计算当前区块的散列值,也即计算满足hash(x+pdata)<hardness的随机数x。这里hardness是预设用于调整数据簇计算合法x值的复杂度的参数值。最先计算出特定随机数x的矿机bsj将广播当前数据簇和计算出来的x值给其他矿机以便审核和校验。如果其他矿机也认可这个最快计算出x值的工作量证明,该矿机被授权将数据簇整合成新的数据区块,并存储在电子证据私有区块链。后续的工作量证明将在这个新的区块数据上进行后续的计算。确定某个时间段内的数据记账管理权限。

基于智能合约的区块共识中,最快计算出有效工作量证明的矿机将成为当前共识过程的全副本节点,设为bsj,其余矿机将成为验证节点。具体共识过程如下:

步骤1,全副本节点收集各验证节点的数据簇整合成一个新的数据区块,附上全副本节点的数字签名和新数据区块的散列值以备审查验证。全副本节点向各个验证节点广播新生成的数据区块以待查验。上述过程具体表述如下:

bsj=(dataclusters‖data_hash‖certbsj‖sigbsj‖time)

其中:

data_hash=hash(dataclusters‖time)

sigbsj=signskbsj(dataclusters‖data_hash)

步骤2:验证节点接收到数据区块后,通过全副本节点发送过来的区块散列值和数字签名等信息验证数据区块的合法性和合法性,并把它们的审核结果附上各自的数字签名广播给其他验证节点,以实现验证节点间的相互监督和共同查验。

步骤3:验证节点(例如bsl)接收并汇总其他验证节点的审核结果后,与自身的审核结果进行对比,并向全副本节点发送一个应答,这个应答包含验证节点自身的审核结果localresult、收到的所有审核结果totalresults、审核对比的结论conclusion,以及对应的数字签名。上述过程具体表述如下:

bsl=epkbsj(data0‖certbsl‖sigbsl‖time)

其中:

data0=(localresult‖totalresults‖conclusion)

sigbsl=signskbsl(data0)

步骤4,全副本节点汇总所有来源于验证节点的审核应答。如果全部数据簇都认可当前数据区块的合法性,全副本节点将把该数据区块连同参与审核的验证节点的证书集合{certbs},以及对应的数字签名整合后发送给所有验证节点。此后,该数据区块将以时间先后的顺序存储在电子证据私有区块链中,全副本节点也从中获得系统的回馈。上述过程具体表述如下:

bsj=(data1‖sigbsj‖time)

其中:

data1=(dataclusters‖data_hash‖{certbs}‖time)

sigbsj=signskbsj(data1)

步骤5,若有部分矿机不认可当前的审核结果,全副本节点将分析和查验这些矿机的审核结果。优选地,全副本节点重新发送该数据区块给这部分矿机进行重新审核,如果超过一定比例的数据簇认可该数据区块,则将该数据区块按步骤4所提方式加载到电子证据私有区块链中。同时,全副本节点进一步分析不认可的矿机的审核结果,判断这些矿机是否有恶意行为,对恶意矿机进行屏蔽处理。

数据属主允许设定数据共享的范围、时限约束条件,规范数据访问者行为。这些约束条件通过链上代码在加入电子证据私有区块链的节点上自动执行,保证数据共享的合法性和公平性。所述链上代码包括锁定链上代码和解锁链上代码。锁定链上代码规定共享数据输出的阻碍条件,解锁链上代码定义了数据输出的执行条件。使用智能合约实施数据共享的一个实施例包括以下流程:

当节点nm向节点ni请求共享电子证据时,节点ni首先查验节点nm身份,与nm达成共识后,节点ni制定访问约束条件,包括例如数据共享范围、时效、次数,然后智能合约根据节点ni提供的私钥将数据解密,并依据约束条件输出对应结果,在输出数据给节点nm之前,使用nm提供的公钥对数据进行加密,nm再通过自身私钥进行解密。具体如下:

1)共享访问请求:节点nm向节点ni发出电子证据共享请求req,请求中包含数据访问目的、时间和次数等信息。节点ni查验节点nm身份后,针对节点nm制定访问约束条件constrainsts,授权访问,并把这些条件和被访问数据块对应的别名私钥skpidi发送给邻近数据簇bsj:

ni=(req‖certnm‖time)

nm=epkbsj(constraints‖skpidi‖pknm‖time‖certni)

2)执行智能合约:数据簇bsj验证信息后,开始执行智能合约,根据节点设定的访问约束条件,锁定链上代码,并根据提供的对称密钥,解密所共享的数据,使用访问节点的公钥pknm对共享数据进行非对称加密,输出结果。

3)发送共享数据:如果数据访问节点nm和被访问节点ni在同一个矿机的覆盖范围内,则矿机直接把数据发送给数据访问节点nm;否则,由当前执行智能合约的节点把加密结果发送到访问节点nm的邻近矿机。上述过程具体表述如下:

bsj=epkbsj+1(datah‖time‖certbsj)

其中:

datah=epknm(data‖certni‖certbsj‖time)

4)访问指定数据:数据访问节点nm收到数据后,通过自身私钥解密数据,并进行数据读取访问。

综上所述,本发明提出了一种基于区块链的可信数据计算方法,有效地实现了用户电子证据的安全存储和有效使用。

显然,本领域的技术人员应该理解,上述的本发明的各模块或各步骤可以用通用的计算系统来实现,它们可以集中在单个的计算系统上,或者分布在多个计算系统所组成的网络上,可选地,它们可以用计算系统可执行的程序代码来实现,从而,可以将它们存储在存储系统中由计算系统来执行。这样,本发明不限制于任何特定的硬件和软件结合。

应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1