一种实现智能合约数据加密的方法和区块链技术

技术编号:16703406 阅读:98 留言:0更新日期:2017-12-02 16:42
本发明专利技术公开了一种实现智能合约数据加密的方法,其包括步骤:(1)交易发起方节点在本地对智能合约执行交易,所述智能合约在执行该交易之前的状态为S1,在执行该交易之后的状态为S2;(2)交易发起方节点将S1到S2的变化以及交易发送给各相关节点;(3)各相关节点分别验证状态是否从S1变为S2,如果是,则向交易发起方节点返回签名;(4)当交易发起方节点收集到所有相关节点的签名时,将从S1到S2的变化以及各相关节点的签名发送给所有节点。此外,本发明专利技术还公开了一种区块链。本发明专利技术能保证所有参与共识的节点对智能合约状态的变更达成共识,同时对智能合约数据进行加密,以达到保护隐私数据的要求。

A method and block chain for intelligent contract data encryption

The invention discloses a method for realizing intelligent contract data encryption, which comprises the following steps: (1) the transaction originator node performs transactions on Intelligent contracts in the local, the intelligent contract before executing the transaction state for S1, after the execution of the transaction state is S2; (2) the change of transaction originator node S1 to S2 and sent to the relevant transaction node; (3) the relevant nodes were validated whether the state changes from S1 to S2, if yes, to the transaction originator node returns the signature; (4) when the transaction initiator node to collect all the joint signature, from S1 to the change of S2 and sends each related node signature to all nodes. In addition, the invention also discloses a block chain. The invention can ensure that all the nodes participating in consensus agree on the change of the state of the intelligent contract, and simultaneously encrypt the intelligent contract data, so as to achieve the requirement of protecting the private data.

【技术实现步骤摘要】
一种实现智能合约数据加密的方法和区块链
本专利技术涉及一种数据加密方法和区块链,尤其涉及一种智能合约数据加密方法和区块链。
技术介绍
广义上的区块链是指利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全的一种全新的分布式基础架构与计算范式。区块链技术通过去中心化、去信任的方式集体维护一个可靠数据库,解决交易的信任和安全问题。区块链技术并不是一种单一的技术,而是多种技术整合的结果,这些技术以新的结构组合在一起,形成了一种新的数据记录、存储和表达的方式,主要涉及以下四种技术:一、分布式账本。即交易记账由分布在不同地方的多个节点共同完成,而且每一个节点都记录的是完整的账目,因此它们都可以参与监督交易合法性,同时也可以共同为其作证。不同于传统的中心化记账方案,没有任何一个节点可以单独记录账目,从而避免了单一记账人被控制或者被贿赂而记假账的可能性。另一方面,由于记账节点足够多,理论上讲除非所有的节点被破坏,否则账目就不会丢失,从而保证了账目数据的安全性。二、非对称加密和授权技术。存储在区块链上的交易信息是公开的,但是账户身份信息是高度加密的,只有在数据拥有者授权的情况下才能访问到,从而保证了数据的安全和个人的隐私。三、共识机制。即所有记账节点之间如何达成共识,去认定一个记录的有效性,这既是认定的手段,也是防止篡改的手段。此外,区块链还可以利用由自动化脚本代码组成的智能合约来编程和操作数据。智能合约是基于可信的不可篡改的数据,可以自动化地执行一些预先定义好的规则和条款。隐私性一直是区块链领域一个重要的话题。区块链作为一门新兴的技术,必要的隐私保护是推广的关键。绝大部分的应用场景,比如交易,都需要有弹性的隐私保护。如何更好地在区块链中加入隐私的元素一直是被不断探索的问题。在当前的区块链系统中,所有参与共识的节点必须拥有交易和智能合约的真实数据,才能完成计算,并对状态达成共识。然而在实际应用当中,企业所发出的交易随时可能会包含了对其自身而言重要的商业机密,所以如果交易的隐私得不到应有的保护,区块链的实用性将大打折扣。因此,需要提出一种方法,其能保证所有参与共识的节点对智能合约状态的变更达成共识,同时对智能合约数据进行加密,以达到保护隐私数据的要求。
技术实现思路
本专利技术的目的之一是提供一种实现智能合约数据加密的方法,该方法能保证所有参与共识的节点对智能合约状态的变更达成共识,同时对智能合约数据进行加密,以达到保护隐私数据的要求。根据上述目的,本专利技术提出了一种实现智能合约数据加密的方法,其包括步骤:(1)区块链上的交易发起方节点在本地对智能合约执行交易,所述智能合约在执行该交易之前的状态为S1,所述智能合约在执行该交易之后的状态为S2;(2)交易发起方节点将智能合约的状态从S1到S2的变化以及所述交易发送给区块链上的与智能合约相关的各相关节点;(3)各相关节点分别验证智能合约在执行交易后其状态是否从S1变为S2,如果是,则相关节点向交易发起方节点返回表征通过该相关节点验证的签名;如果否,则相关节点不向交易发起方节点返回所述签名;(4)当交易发起方节点收集到所有相关节点的签名时,交易发起方将智能合约的状态从S1到S2的变化以及各相关节点的签名发送给区块链上所有节点。本专利技术所述的实现智能合约数据加密的方法,其将参与共识的所有节点分为与智能合约相关的各相关节点和与智能合约无关的其他非相关节点,并且仅在各相关节点范围内验证智能合约状态的变更是否符合相应的交易,这样就首先在各相关节点范围内对智能合约状态的变更发表意见,这种意见具有一票否决权,以防止多数方预谋联手损坏少数方利益。由于其他非相关节点与智能合约无关,因此不必直接验证智能合约状态的变更是否符合相应的交易,而是可以信任各相关节点的验证结果,即通过检查各相关节点验证产生的签名来间接验证智能合约状态的变更是否符合相应的交易,这样就可以在所有节点范围内对智能合约状态的变更达成共识。其他非相关节点由于没有参与直接验证,无法获得智能合约和交易的原始数据,从而实现了对智能合约的加密,主要体现在对其他非相关节点的智能合约和交易的保密,达到了保护隐私数据的要求。所述智能合约状态通常是指智能合约的哈希值。进一步地,本专利技术所述的实现智能合约数据加密的方法中,所述交易为经过加密的隐私交易,在步骤(1)中,所述交易发起方节点先将经过加密的隐私交易解密后,再在本地对智能合约执行隐私交易。上述方案中,为了更好地保护隐私,避免交易数据泄漏导致损失,将交易加密为隐私交易,仅在需要调用执行时被临时解密。进一步地,本专利技术所述的实现智能合约数据加密的方法中,在步骤(2)中,交易发起方节点将智能合约的状态从S1到S2的变化以及经过加密的隐私交易发送给区块链上的与智能合约相关的各相关节点。上述方案中,优选地,交易发起方节点和各相关节点需要有加密或解密所述隐私交易的密钥。进一步地,本专利技术所述的实现智能合约数据加密的方法还包括步骤(5):所有节点检查是否所有的相关节点均提供了签名,如果是,则将智能合约的状态从S1到S2的变化放入区块链的交易池,如果否,则拒绝将智能合约的状态从S1到S2的变化放入区块链的交易池。上述方案中,所有节点基于所有相关节点的数字签名来达成共识。更进一步地,上述实现智能合约数据加密的方法还包括步骤(6):所述交易池中的交易被打包为区块。更进一步地,上述实现智能合约数据加密的方法中,在步骤(3)中,各相关节点分别验证智能合约在执行隐私交易后其状态是否从S1变为S2的步骤包括:相关节点将经过加密的隐私交易解密;相关节点对智能合约执行隐私交易;相关节点判断智能合约在执行隐私交易后其状态是否从S1变为S2。进一步地,本专利技术所述的实现智能合约数据加密的方法中,所述智能合约为内容经过加密的智能合约。上述方案中,为了更好地保护隐私,避免智能合约数据泄漏导致损失,将智能合约的内容进行加密。交易发起方节点和各相关节点需要有加密或解密所述智能合约的密钥。本专利技术的另一目的是提供一种区块链,该区块链能保证所有参与共识的节点对智能合约状态的变更达成共识,同时对智能合约数据进行加密,以达到保护隐私数据的要求。根据上述目的,本专利技术提出了一种区块链,其执行上述任一方案所述的实现智能合约数据加密的方法。本专利技术所述的区块链,其由于采用了上述任一方案所述的实现智能合约数据加密的方法,因此同样能保证所有参与共识的节点对智能合约状态的变更达成共识,同时对智能合约数据进行加密,以达到保护隐私数据的要求。其原理上述方法相应部分已详述,在此不再赘述。本专利技术所述的实现智能合约数据加密的方法,其具有以下优点和有益效果:(1)能保证所有参与共识的节点对智能合约状态的变更达成共识,同时对智能合约数据进行加密,以达到保护隐私数据的要求。(2)为区块链的应用场景提供弹性的隐私保护,提高区块链的实用性。(3)可以有效保护企业的商业机密和交易隐私。本专利技术所述的区块链,其同样具有上述优点和有益效果。附图说明图1为本专利技术所述的实现智能合约数据加密的方法在一种实施方式下的流程示意图。图2为本专利技术所述的实现智能合约数据加密的方法的实施例1的流程图。图3为从用户角度简略显示的本专利技术所述的实现智能合本文档来自技高网
...
一种实现智能合约数据加密的方法和区块链

【技术保护点】
一种实现智能合约数据加密的方法,其特征在于,包括步骤:(1)区块链上的交易发起方节点在本地对智能合约执行交易,所述智能合约在执行该交易之前的状态为S1,所述智能合约在执行该交易之后的状态为S2;(2)交易发起方节点将智能合约的状态从S1到S2的变化以及所述交易发送给区块链上的与智能合约相关的各相关节点;(3)各相关节点分别验证智能合约在执行交易后其状态是否从S1变为S2,如果是,则相关节点向交易发起方节点返回表征通过该相关节点验证的签名;如果否,则相关节点不向交易发起方节点返回所述签名;(4)当交易发起方节点收集到所有相关节点的签名时,交易发起方将智能合约的状态从S1到S2的变化以及各相关节点的签名发送给区块链上所有节点。

【技术特征摘要】
1.一种实现智能合约数据加密的方法,其特征在于,包括步骤:(1)区块链上的交易发起方节点在本地对智能合约执行交易,所述智能合约在执行该交易之前的状态为S1,所述智能合约在执行该交易之后的状态为S2;(2)交易发起方节点将智能合约的状态从S1到S2的变化以及所述交易发送给区块链上的与智能合约相关的各相关节点;(3)各相关节点分别验证智能合约在执行交易后其状态是否从S1变为S2,如果是,则相关节点向交易发起方节点返回表征通过该相关节点验证的签名;如果否,则相关节点不向交易发起方节点返回所述签名;(4)当交易发起方节点收集到所有相关节点的签名时,交易发起方将智能合约的状态从S1到S2的变化以及各相关节点的签名发送给区块链上所有节点。2.如权利要求1所述的实现智能合约数据加密的方法,其特征在于,所述交易为经过加密的隐私交易,在步骤(1)中,所述交易发起方节点先将经过加密的隐私交易解密后,再在本地对智能合约执行隐私交易。3.如权利要求2所述的实现智能合约数据加密的方法,其特征在于,在步骤(2)中,交易发起方节点将智能合约...

【专利技术属性】
技术研发人员:马环宇岑园园赵敬李雪峰吴小川王晖
申请(专利权)人:众安信息技术服务有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1