CN111651790B - 一种开放区块链中隐私信息的保护方法及系统 - Google Patents

一种开放区块链中隐私信息的保护方法及系统 Download PDF

Info

Publication number
CN111651790B
CN111651790B CN202010529863.3A CN202010529863A CN111651790B CN 111651790 B CN111651790 B CN 111651790B CN 202010529863 A CN202010529863 A CN 202010529863A CN 111651790 B CN111651790 B CN 111651790B
Authority
CN
China
Prior art keywords
state
information
contract
transaction
root
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010529863.3A
Other languages
English (en)
Other versions
CN111651790A (zh
Inventor
丛宏雷
王成
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Distributed Technologies Co ltd
Original Assignee
Shanghai Distributed Technologies Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Distributed Technologies Co ltd filed Critical Shanghai Distributed Technologies Co ltd
Priority to CN202010529863.3A priority Critical patent/CN111651790B/zh
Publication of CN111651790A publication Critical patent/CN111651790A/zh
Application granted granted Critical
Publication of CN111651790B publication Critical patent/CN111651790B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Accounting & Taxation (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Medical Informatics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提供了一种开放区块链中隐私信息的保护方法及系统,方法包括:服务器在区块链上部署私有节点,在私有节点上部署业务合约,并在区块链上部署状态验证合约;通过执行器预执行业务合约,得到业务合约的前状态根映射信息和当前状态根映射信息;服务器调用状态验证合约来记录前状态根映射信息和当前状态根映射信息之间的状态变更信息;私有节点同步区块,通过执行器执行调用业务合约的交易操作并更新业务合约的状态信息;在区块链上形成状态变更树信息合集,根据状态变更树信息合集与状态信息对比验证业务合约,本发明可保护区块链上的用户信息数据的安全,防止用户数据泄露,在不同的业务合约之间相互调用时也可保护业务合约的数据安全。

Description

一种开放区块链中隐私信息的保护方法及系统
技术领域
本发明涉及区块链技术领域,尤其涉及一种开放区块链中隐私信息的保护方法及系统。
背景技术
区块链一般可理解成分布式账本,从实质上说就是一个可以在多个站点、不同地理位置或者多个机构组成的网络里的分布式数据库,网络中每个站点都对数据库所有内容进行验证,保证数据库的正确性和一致性。
业务合约是运行在区块链上的应用或程序,通常情况下,它们为一组具有特定规则的数字化协议,且该协议能够被强制执行。这些规则由计算机源代码预先定义,所有网络节点会复制和执行这些计算机源码。
区块链业务合约支持创建无需信任的协议。这意味着执行合约的双方可以通过区块链做出承诺,而无需相互了解或相互信任。合约内容经双方确认后,如果没达到触发条件,合约将不会被执行。业务合约将业务代码化,一经部署即无法更改,所有人都必须遵守相同的规则,以此形成“代码即法律”的制度。
哈希树在密码学及计算机科学中是一种树形数据结构,每个叶节点均以数据块的哈希作为标签,而除了叶节点以外的节点则以其子节点标签的加密哈希作为标签。哈希树能够高效、安全地验证大型数据结构的内容。可以以哈希树的树根来代表整颗哈希树,因为在哈希树中,任意数据的改变都会导致树根的值的变化。
在开放式区块链中,业务合约以编译后的字节码形式明文部署在区块链上,其内所包含的逻辑与业务可以通过反编译的方式清楚地查看,这无疑会暴露出业务隐私。如果涉及敏感信息,则还需考虑信息泄露的风险。对于有信息安全要求的业务来说,业务合约并不是一项可供选择的方案。
因此,有必要提供一种开放区块链中隐私信息的保护方法以解决现有技术中存在的上述问题。
发明内容
本发明的目的在于提供一种开放区块链中隐私信息的保护方法及系统,可以保护区块链上的用户信息数据隐私,防止用户敏感信息数据泄露,可有效解决背景技术中的问题。
本发明公开了一种开放区块链中隐私信息的保护方法,包括:
服务器在区块链上部署私有节点,在所述私有节点上部署业务合约,并部署状态验证合约;
所述服务器调用所述业务合约,并通过执行器预执行业务合约,得到所述业务合约的前状态根映射信息和当前状态根映射信息;
所述服务器调用所述状态验证合约来记录前状态根映射信息和当前状态根映射信息之间的状态变更信息;
所述私有节点同步区块,按照区块链上状态合约中记录的状态根变更信息在本地查找对应的业务合约交易,然后通过所述执行器执行调用所述业务合约的交易操作并更新所述业务合约的状态信息;
在区块链上的所述状态验证合约根据所述状态变更信息形成状态变更树信息合集,根据所述状态变更树信息合集与所述状态信息对比验证所述业务合约调用的正确性和完整性。
本发明的有益效果在于:通过上述方法对区块链的用户进行隐私保护,用户将合约拆分成具体的业务合约和用来验证的状态验证合约,分别部署到隐私环境和公开环境中;用户在隐私环境中执行业务,并获得产生的结果,同时将合约状态的变更记录到链上的状态验证合约里,以证明业务调用确实发生了,并且为日后的验证提供证明依据,在这种情况下,业务合约私有,充分避免敏感信息及业务逻辑的公开和暴露,能够很好地保护业务安全性和隐私性,另一方面,链上公开的状态验证合约中存储了所有的业务状态变更信息,这些公开存储的数据借助区块链的不可篡改的特性,足以满足第三方审计的安全要求。
优选的是,在所述私有节点上部署的业务合约包括:
在多个所述私有节点上部署相同所述业务合约,其中相同的所述业务合约基于区块链上公开的验证合约协调工作。
优选的是,所述在所述私有节点上部署业务合约还包括在一个所述私有节点上部署多个所述业务合约。
优选的是,所述状态验证合约以所述业务合约的合约地址作为参数在区块链上部署。
优选的是,每一个所述业务业务合约在所述状态验证合约中形成一条状态链并添加初始的状态节点,每条所述状态链都会分配到一状态链标识符,所述状态验证合约记录所述业务合约的地址和所述状态链标识符之间的映射关系。
优选的是,所述服务器调用所述业务合约,并通过执行器预执行业务合约,得到所述业务合约的前状态根映射信息和当前状态根映射信息的过程包括:
读取所有涉及到的所述业务合约当前的哈希树树根信息以及对应的状态链标识符,并记录本次预执行的入口合约;
构造并签名交易,发送到所述私有节点上通过执行器预执行;
通过预执行得到每个涉及到的所述业务合约的新的哈希树树根信息,并记录;
对比所述前状态根映射信息和所述当前状态根映射信息,若所述前状态根映射信息和所述当前状态根映射信息不一致,则将所述交易存储起来,并将交易的数据函数和签名分别记录,并记录当前所述私有节点的账本高度;
若所述前状态根映射信息和所述当前状态根映射信息一致,操作结束。
优选的是,所述服务器调用所述状态验证合约来记录前状态根映射信息和当前状态根映射信息之间的状态变更信息;的过程包括:
计算所述交易的数据函数,并使用所述数据函数、所述账本高度、所述入口合约的状态链标识符、前状态根映射信息和当前状态根映射信息作为参数,构造新交易,调用所述状态验证合约进行验证。
优选的是,所述状态验证合约具体验证时执行过程包括:
验证权限列表,取出所述新的交易的签名人地址,检查所述签名人是否具有更新所述入口合约的状态链的权限,检查通过则表示交易调用成功,更新验证签名列表,否则调用失败;
依次验证前状态根映射信息中的每一个状态链中的键值对,如果所述状态链的主节点指针指向节点的当前状态根和所述键值对中的哈希树树根信息不一致,则拒绝所述新的交易;
更新状态链,并更新所述入口合约对应的状态链的交易列表。
优选的是,所述更新状态链的过程为:
遍历前状态根映射信息中的键值对,记录每一个键值对;
从当前状态根映射信息中取出与所述前状态根映射信息中的键值对相同的键值对;
根据所述前状态根映射信息中的键值对信息和所述当前状态根映射信息中取出的键值对信息更新节点信息,并将节点信息追加到所述前状态根映射信息中的键值对对应的状态链的主节点后面;
继续下一项键值对的处理。
优选的是,所述私有节点同步区块,执行调用所述业务合约的交易的过程包括:
私有节点同步到公共区块链上的新的区块,按照区块打包的交易顺序依次取出调用状态验证合约的交易;
遍历前状态根映射信息中涉及到的每一个业务合约,验证每一个所述业务合约中的哈希树树根信息是否与前状态根映射信息中的一致;
验证通过后,所述私有节点找到对应的交易并用所述对应的交易调用业务合约;
合约执行所述对应的交易,产生新的哈希树树根信息;
将所述新的哈希树树根信息与当前状态根映射信息中的每一个所述业务合约的哈希树树根信息对比,所有所述业务合约的哈希树树根信息都一致时,则提交本次交易的变更,否则交易执行失败;
交易执行成功后,业务合约的状态更新,继续执行下一笔交易。
优选的是,在交易执行失败之后,重新在所述状态验证合约中投票进行状态链分叉。
优选的是,在交易执行完之后,所述私有节点所有的独立账本的区块高度增加1。
优选的是,所述在区块链上的所述状态验证合约根据所述状态变更信息形成状态变更树信息合集,根据所述状态变更树信息合集与所述状态信息对比验证所述业务合约调用的正确性和完整性的过程包括:
业务方将所述业务合约以及所述状态验证合约中所有交易列表中对应的交易数据通过安全信道分享给验证方;
所述验证方将所述业务合约部署在自己的私有节点上,并验证所述业务合约地址与区块链上的状态验证合约记录的业务合约地址是否一致;
所述验证方同步公共区块,逐笔执行交易,如果有任意一笔交易执行失败则验证不通过;
在所有交易和状态变更记录都验证通过之后,确认所述业务合约的正确调用及所有调用的完整性。
优选的是,还包括新用户加入业务,部署新用户的私有节点,其具体过程包括:
从源节点处获得所述业务合约的字节码及历史交易;
部署所述新用户的业务合约;
同步区块数据,验证所述新用户的业务合约的哈希树树根信息和历史交易,如果验证不通过,则退出;
验证通过后,新节点与源节点具有相同的状态;
具有修改状态合约权限列表的权限的用户将新用户加入到权限列表里,为新用户设置权限。
本发明还公开了一种开放区块链中隐私信息的保护系统,包括服务器、执行器、存储器、部署模块、预执行模块、记录模块、交易更新模块、对比模块;
所述部署模块通过所述服务器在区块链上部署私有节点,在所述私有节点上部署业务合约,并部署状态验证合约;
所述预执行模块通过所述服务器调用所述部署模块上的所述业务合约,并通过执行器预执行业务合约,得到所述业务合约的前状态根映射信息和当前状态根映射信息;
所述记录模块通过所述服务器调用所述部署模块部署的所述状态验证合约来记录前状态根映射信息和当前状态根映射信息之间的状态变更信息;
所述交易更新模块通过私有节点同步区块,通过所述执行器执行调用所述业务合约的交易操作并通过服务器更新所述业务合约的状态信息;
所述对比模块通过所述状态验证合约根据所述记录模块记录的状态变更信息形成状态变更树信息合集,并根据所述状态变更树信息合集与所述交易更新模块的状态信息对比验证所述业务合约调用的正确性和完整性。
附图说明
图1为本发明的保护方法的整体工作流程示意图;
图2为本发明的保护方法的步骤S2的工作流程示意图;
图3为本发明的保护方法的步骤S3的工作流程示意图;
图4为本发明的保护方法的状态验证合约具体验证执行过程示意图;
图5为本发明的保护方法的更新状态链过程的流程示意图;
图6为本发明的保护方法的步骤S4的工作流程示意图;
图7为本发明的保护方法的步骤S5的工作流程示意图;
图8为本发明的保护方法中新用户加入业务,部署新用户的私有节点的工作流程示意图;
图9为本发明的状态链投票分叉过程只涉及一个业务合约时的状态链初始情况示意图;
图10为本发明的状态链投票分叉过程只涉及一个业务合约时的状态链第一次变化情况示意图;
图11为本发明的状态链投票分叉过程只涉及一个业务合约时的状态链第二次变化示意图;
图12为本发明的状态链投票分叉过程涉及多个业务合约时的状态链初始情况示意图;
图13为本发明的状态链投票分叉过程涉及多个业务合约时的状态链第一次变化示意图;
图14为本发明的状态链投票分叉过程涉及多个业务合约时的状态链第二次变化示意图;
图15为本发明的保护系统的模块组成结构示意图。
图中标号:
1-服务器;2-执行器;3-部署模块;4-预执行模块;5-记录模块;6-交易更新模块;7-对比模块。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。除非另外定义,此处使用的技术术语或者科学术语应当为本发明所属领域内具有一般技能的人士所理解的通常意义。本文中使用的“包括”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。
针对现有技术存在的问题,如图1所示,本发明的实施例提供了一种开放区块链中隐私信息的保护方法,包括如下步骤:
S1、服务器在区块链上部署私有节点,在所述私有节点上部署业务合约,并部署状态验证合约。
在一种可能的实现方式中,每一个所述业务业务合约都会在所述状态验证合约中形成一条状态链并添加初始的状态节点,每条所述状态链都会分配到一状态链标识符,所述状态验证合约记录所述业务合约的地址和所述状态链标识符之间的映射关系。
S2、所述服务器调用所述业务合约,并通过执行器预执行业务合约,得到所述业务合约的前状态根映射信息和当前状态根映射信息;
S3、所述服务器调用所述状态验证合约来记录前状态根映射信息和当前状态根映射信息之间的状态变更信息;
S4、所述私有节点同步区块,按照区块链上状态合约中记录的状态根变更信息在本地查找对应的业务合约交易,然后通过所述执行器执行调用所述业务合约的交易操作并更新所述业务合约的状态信息;
S5、在区块链上的所述状态验证合约根据所述状态变更信息形成状态变更树信息合集,根据所述状态变更树信息合集与所述状态信息对比验证所述业务合约调用的正确性和完整性。
在一种可能的实现方式中,在步骤S1中,可以在多个所述私有节点上部署多个所述业务合约,其中相同的所述业务合约可基于区块链上公开的验证合约协调工作;也可以在一个所述私有节点上部署多个所述业务合约。
通过部署多本业务合约在一个私有节点或多个不同的私有节点上,可以通过同一个状态验证合约进行验证,协同工作,而状态验证合约中的存储的多条状态链可以记录多本业务合约的状态变化,根据状态验证合约中的状态链,可以同时验证多本业务合约调用的正确性和完整性,从而在不同的业务合约之间相互调用时也可保护业务合约的数据安全。
需要说明的是,当部署多个业务合约的时候,通过同一个状态验证合约对状态链进行验证,分别记录多个业务合约的状态变化,并根据状态验证合约的状态链对多个业务合约调用进行验证,其具体的工作过程与本方案中的单个业务合约的验证过程基本相同,此处不再赘述。
优选的是,所述状态验证合约以所述业务合约的合约地址作为参数在区块链上部署。
进一步的,每一个所述业务业务合约在所述状态验证合约中形成一条状态链并添加初始的状态节点,每条所述状态链分配到一状态链标识符,所述状态验证合约记录所述业务合约的地址和所述状态链标识符之间的映射关系。
在一种可能的实现方式中,如图2所示,所述步骤S2、所述服务器调用所述业务合约,并通过执行器预执行业务合约,得到所述业务合约的前状态根映射信息和当前状态根映射信息的过程包括如下步骤:
S21、读取所有涉及到的所述业务合约当前的哈希树树根信息以及对应的状态链标识符,并记录本次预执行的入口合约;
S22、构造并签名交易,发送到所述私有节点上通过执行器预执行;
S23、通过预执行得到每个涉及到的所述业务合约的新的哈希树树根信息,并记录;
S24、对比所述前状态根映射信息和所述当前状态根映射信息;
S25、若所述前状态根映射信息和所述当前状态根映射信息不一致,则将所述交易存储起来,并将交易的数据函数和签名分别记录,并记录当前所述私有节点的账本高度;若所述前状态根映射信息和所述当前状态根映射信息一致,操作结束。
在一种可能的实现方式中,如图3所示,所述步骤S3、所述服务器调用所述状态验证合约来记录前状态根映射信息和当前状态根映射信息之间的状态变更信息的过程包括:
S31、计算所述交易的数据函数;
S32、使用所述数据函数、所述账本高度、所述入口合约的状态链标识符、前状态根映射信息和当前状态根映射信息作为参数,构造新交易;
S33、调用所述状态验证合约进行验证。
在一种可能的实现方式中,如图4所示,所述状态验证合约具体验证时执行过程如下:
S331、验证权限列表,取出所述新的交易的签名人地址,检查所述签名人是否具有更新所述入口合约的状态链的权限,检查通过则表示交易调用成功,更新验证签名列表,否则调用失败;
S332、依次验证前状态根映射信息中的每一个状态链中的键值对,如果所述状态链的主节点指针指向节点的当前状态根和所述键值对中的哈希树树根信息不一致,则拒绝所述新的交易;
S333、更新状态链,并更新所述入口合约对应的状态链的交易列表。
在一种可能的实现方式中,如图5所示,所述更新状态链的过程为:
S3331、遍历前状态根映射信息中的键值对,记录每一个键值对;
S3332、从当前状态根映射信息中取出与所述前状态根映射信息中的键值对相同的键值对;
S3333、根据所述前状态根映射信息中的键值对信息和所述当前状态根映射信息中取出的键值对信息更新节点信息,并将节点信息追加到所述前状态根映射信息中的键值对对应的状态链的主节点后面;
S3334、继续下一项键值对的处理。
在一种可能的实现方式中,如图6所示,所述步骤S4、所述私有节点同步区块,执行调用所述业务合约的交易的过程包括:
S41、私有节点同步到公共区块链上的新的区块,按照区块打包的交易顺序依次取出调用状态验证合约的交易;
S42、遍历前状态根映射信息中涉及到的每一个业务合约,验证每一个所述业务合约中的哈希树树根信息是否与前状态根映射信息中的一致;
S43、验证通过后,所述私有节点找到对应的交易并用所述对应的交易调用业务合约;
S44、合约执行所述对应的交易,产生新的哈希树树根信息;
S45、将所述新的哈希树树根信息与当前状态根映射信息中的每一个所述业务合约的哈希树树根信息对比,所有所述业务合约的哈希树树根信息都一致时,则提交本次交易的变更,否则交易执行失败;
S46、交易执行成功后,业务合约的状态更新,继续执行下一笔交易。
优选的是,在交易执行失败之后,重新在所述状态验证合约中投票进行状态链分叉。
进一步的,在交易执行完之后,所述私有节点所有的独立账本的区块高度增加1。
在一种可能的实现方式中,如图7所示,所述步骤S5、所述在区块链上的所述状态验证合约根据所述状态变更信息形成状态变更树信息合集,根据所述状态变更树信息合集与所述状态信息对比验证所述业务合约调用的正确性和完整性的过程包括:
S51、业务方将所述业务合约以及所述状态验证合约中所有交易列表中对应的交易数据通过安全信道分享给验证方;
S52、所述验证方将所述业务合约部署在自己的私有节点上,并验证所述业务合约地址与区块链上的状态验证合约记录的业务合约地址是否一致;
S53、所述验证方同步公共区块,逐笔执行交易,如果有任意一笔交易执行失败则验证不通过;
S54、在所有交易和状态变更记录都验证通过之后,确认所述业务合约的正确调用及所有调用的完整性。
在一种可能的实现方式中,如图8所示,还包括新用户加入业务,部署新用户的私有节点,其具体过程包括如下步骤:
a、从源节点处获得所述业务合约的字节码及历史交易;
b、部署所述新用户的业务合约;
c、同步区块数据,验证所述新用户的业务合约的哈希树树根信息和历史交易,如果验证不通过,则退出;
d、验证通过后,新节点与源节点具有相同的状态;
e、具有修改状态合约权限列表的权限的用户将新用户加入到权限列表里,为新用户设置权限。
其中状态验证合约的状态链投票分叉的过程如下。
当分叉过程只涉及到一条链时,假设这条链为chainId1,过程如下:
假设:具有投票权限的用户有A、B、C三人,私有节点对应于入口合约的账本高度为4,当前的状态链如图9所示;
A发起投票,选择在高度2上分叉,对应交易为Txa;
B也发起投票,选择在高度3上分叉;
此时投票结果出现了不一致,C参与投票,附议A;
投票遵循少数服从多数的原则,超过1/2的用户赞成则开始分叉,此时状态链将新增一个节点,并且变更主节点,如图10所示。
合约更新N,其新的值为2,回退交易列表,产生新的交易列表;
私有节点同步区块,发现主节点变更且N值为2,节点将该链对应的业务合约账本的区块高度回退到1(N-1=1),即N值的上一个区块;
私有节点从用户A处获得新的交易Txa,执行该交易并验证对应的新状态根信息;验证通过则分叉成功,否则分叉失败,需要重新进行投票分叉;
分叉成功之后,状态验证合约可以按照新的主节点继续更新业务合约的状态链,如图11所示。
当分叉涉及到多条链时,则涉及到的链对应的业务合约账本都需要回滚区块高度,具体过程如下:
1.假设当前的状态链如图12,两条状态链有一个公共节点node(0,1)-2;
2.假设投票的结果是从高度1上开始分叉,即重置node(0,1)-2;
3.投票结束后,两条状态链的主节点均变更,node(0,1)-2.1成为了新的主节点,后续两条链的状态更新将从node(0,1)-2.1开始,如图13所示:
4.私有节点同步区块,发现主节点变更且N值为2,节点将涉及到的状态链对应的业务合约账本的区块高度回退到1;
5.节点执行投票过程中提交的交易;
6.后续两条状态链将从新的主节点开始进行状态变更,如图14所示。
如图15所示,本发明还公开了一种开放区块链中隐私信息的保护系统,包括服务器1、执行器2、部署模块3、预执行模块4、记录模块5、交易更新模块6、对比模块7;
所述部署模块3通过所述服务器1在区块链上部署私有节点,在所述私有节点上部署业务合约,并部署状态验证合约;
所述预执行模块4通过所述服务器1调用所述部署模块3上的所述业务合约,并通过执行器2预执行业务合约,得到所述业务合约的前状态根映射信息和当前状态根映射信息;
所述记录模块5通过所述服务器1调用所述部署模块3部署的所述状态验证合约来记录前状态根映射信息和当前状态根映射信息之间的状态变更信息;
所述交易更新模块6通过私有节点同步区块,通过所述执行器2执行调用所述业务合约的交易操作并通过服务器1更新所述业务合约的状态信息;
所述对比模块7通过所述状态验证合约根据所述记录模块5记录的状态变更信息形成状态变更树信息合集,并根据所述状态变更树信息合集与所述交易更新模块6的状态信息对比验证所述业务合约调用的正确性和完整性。
由于本系统与上述方法的工作原理基本相同,此处不再赘述。
与现有技术相比,本发明至少具备如下效果:
1.对用户在区块链下进行隐私信息数据保护:
具体的业务合约的状态数据保存在私有节点上,其他人不可访问,避免了信息安全风险;业务合约的调用者和状态合约的调用者分离,区块链上没有业务合约调用者的任何信息,进一步减少信息泄露的风险;调用合约的过程和执行合约的过程都在私有环境下进行,其他人不可知,进一步保证了业务合约执行过程的安全;
2.区块链上的状态可验证:
区块链通过通用业务合约管理链下交易和状态更新,通过开放的链上状态合约定义链下交易共识的机制,从而保证链下行为的开放可验证;状态验证合约以树状结构在链上公开存储了业务合约所有的状态变更,可供所有人查询业务合约的变更过程;基于状态验证合约的记录,验证方可以使用业务方提供的业务合约和所有交易,进行重放式地、逐个记录地验证业务合约的状态变更;基于投票机制的状态分叉,可以方便地修复业务执行错误。
3.多本业务合约可协同工作:
多本业务合约可以部署在同一个私有节点上,也可以部署在不同的私有节点上,但是它们共用同一本状态验证合约,协同工作;状态验证合约中存储多条状态链,记录多本合约的状态变化;根据状态验证合约中的状态链,可以同时验证多本合约调用的正确性和完整性。
虽然在上文中详细说明了本发明的实施方式,但是对于本领域的技术人员来说显而易见的是,能够对这些实施方式进行各种修改和变化。但是,应理解,这种修改和变化都属于权利要求书中所述的本发明的范围和精神之内。而且,在此说明的本发明可有其它的实施方式,并且可通过多种方式实施或实现。

Claims (15)

1.一种开放区块链中隐私信息的保护方法,其特征在于,包括:
服务器在区块链上部署私有节点,在所述私有节点上部署业务合约,并在区块链上部署状态验证合约;
所述服务器调用所述业务合约,并通过执行器预执行业务合约,得到所述业务合约的前状态根映射信息和当前状态根映射信息;
所述服务器调用所述状态验证合约来记录前状态根映射信息和当前状态根映射信息之间的状态变更信息;
所述私有节点同步区块,按照区块链上状态合约中记录的状态根变更信息在本地查找对应的业务合约交易,然后通过所述执行器执行调用所述业务合约的交易操作并更新所述业务合约的状态信息;
在区块链上的所述状态验证合约根据所述状态变更信息形成状态变更树信息合集,根据所述状态变更树信息合集与所述状态信息对比验证所述业务合约调用的正确性和完整性。
2.根据权利要求1所述的开放区块链中隐私信息的保护方法,其特征在于,在所述私有节点上部署的业务合约包括:
在多个所述私有节点上部署相同所述业务合约,其中相同的所述业务合约基于区块链上公开的验证合约协调工作。
3.根据权利要求1或2所述的开放区块链中隐私信息的保护方法,其特征在于,所述在所述私有节点上部署业务合约还包括在一个所述私有节点上部署多个所述业务合约。
4.根据权利要求1所述的开放区块链中隐私信息的保护方法,其特征在于,所述状态验证合约以所述业务合约的合约地址作为参数在区块链上部署。
5.根据权利要求4所述的开放区块链中隐私信息的保护方法,其特征在于,每一个所述业务业务合约在所述状态验证合约中形成一条状态链并添加初始的状态节点,每条所述状态链分配到一状态链标识符,所述状态验证合约记录所述业务合约的地址和所述状态链标识符之间的映射关系。
6.根据权利要求1所述的开放区块链中隐私信息的保护方法,其特征在于,所述服务器调用所述业务合约,并通过执行器预执行业务合约,得到所述业务合约的前状态根映射信息和当前状态根映射信息的过程包括:
读取所有涉及到的所述业务合约当前的哈希树树根信息以及对应的状态链标识符,并记录本次预执行的入口合约;
构造并签名交易,发送到所述私有节点上通过执行器预执行;
通过预执行得到每个涉及到的所述业务合约的新的哈希树树根信息,并记录;
对比所述前状态根映射信息和所述当前状态根映射信息,若所述前状态根映射信息和所述当前状态根映射信息不一致,则将所述交易存储起来,并将交易的数据函数和签名分别记录,并记录当前所述私有节点的账本高度;
若所述前状态根映射信息和所述当前状态根映射信息一致,操作结束。
7.根据权利要求6所述的开放区块链中隐私信息的保护方法,其特征在于,所述服务器调用所述状态验证合约来记录前状态根映射信息和当前状态根映射信息之间的状态变更信息的过程包括:
计算所述交易的数据函数,并使用所述数据函数、所述账本高度、所述入口合约的状态链标识符、前状态根映射信息和当前状态根映射信息作为参数,构造新交易,调用所述状态验证合约进行验证。
8.根据权利要求7所述的开放区块链中隐私信息的保护方法,其特征在于,所述状态验证合约具体验证时执行过程包括:
验证权限列表,取出所述新的交易的签名人地址,检查所述签名人是否具有更新所述入口合约的状态链的权限,检查通过则表示交易调用成功,更新验证签名列表,否则调用失败;
依次验证前状态根映射信息中的每一个状态链中的键值对,如果所述状态链的主节点指针指向节点的当前状态根和所述键值对中的哈希树树根信息不一致,则拒绝所述新的交易;
更新状态链,并更新所述入口合约对应的状态链的交易列表。
9.根据权利要求8所述的开放区块链中隐私信息的保护方法,其特征在于,所述更新状态链的过程为:
遍历前状态根映射信息中的键值对,记录每一个键值对;
从当前状态根映射信息中取出与所述前状态根映射信息中的键值对相同的键值对;
根据所述前状态根映射信息中的键值对信息和所述当前状态根映射信息中取出的键值对信息更新节点信息,并将节点信息追加到所述前状态根映射信息中的键值对对应的状态链的主节点后面;
继续下一项键值对的处理。
10.根据权利要求1所述的开放区块链中隐私信息的保护方法,其特征在于,所述私有节点同步区块,执行调用所述业务合约的交易的过程包括:
私有节点同步到公共区块链上的新的区块,按照区块打包的交易顺序依次取出调用状态验证合约的交易;
遍历前状态根映射信息中涉及到的每一个业务合约,验证每一个所述业务合约中的哈希树树根信息是否与前状态根映射信息中的一致;
验证通过后,所述私有节点找到对应的交易并用所述对应的交易调用业务合约;
合约执行所述对应的交易,产生新的哈希树树根信息;
将所述新的哈希树树根信息与当前状态根映射信息中的每一个所述业务合约的哈希树树根信息对比,所有所述业务合约的哈希树树根信息都一致时,则提交本次交易的变更,否则交易执行失败;
交易执行成功后,业务合约的状态更新,继续执行下一笔交易。
11.根据权利要求10所述的开放区块链中隐私信息的保护方法,其特征在于,在交易执行失败之后,重新在所述状态验证合约中投票进行状态链分叉。
12.根据权利要求10所述的开放区块链中隐私信息的保护方法,其特征在于,在交易执行完之后,所述私有节点所有的独立账本的区块高度增加1。
13.根据权利要求10所述的开放区块链中隐私信息的保护方法,其特征在于,所述在区块链上的所述状态验证合约根据所述状态变更信息形成状态变更树信息合集,根据所述状态变更树信息合集与所述状态信息对比验证所述业务合约调用的正确性和完整性的过程包括:
业务方将所述业务合约以及所述状态验证合约中所有交易列表中对应的交易数据通过安全信道分享给验证方;
所述验证方将所述业务合约部署在自己的私有节点上,并验证所述业务合约地址与区块链上的状态验证合约记录的业务合约地址是否一致;
所述验证方同步公共区块,逐笔执行交易,如果有任意一笔交易执行失败则验证不通过;
在所有交易和状态变更记录都验证通过之后,确认所述业务合约的正确调用及所有调用的完整性。
14.根据权利要求1所述的开放区块链中隐私信息的保护方法,其特征在于,还包括新用户加入业务,部署新用户的私有节点,其具体过程包括:
从源节点处获得所述业务合约的字节码及历史交易;
部署所述新用户的业务合约;
同步区块数据,验证所述新用户的业务合约的哈希树树根信息和历史交易,如果验证不通过,则退出;
验证通过后,新节点与源节点具有相同的状态;
具有修改状态合约权限列表的权限的用户将新用户加入到权限列表里,为新用户设置权限。
15.一种开放区块链中隐私信息的保护系统,其特征在于,包括服务器、执行器、存储器、部署模块、预执行模块、记录模块、交易更新模块、对比模块;
所述部署模块通过所述服务器在区块链上部署私有节点,在所述私有节点上部署业务合约,并部署状态验证合约;
所述预执行模块通过所述服务器调用所述部署模块上的所述业务合约,并通过执行器预执行业务合约,得到所述业务合约的前状态根映射信息和当前状态根映射信息;
所述记录模块通过所述服务器调用所述部署模块部署的所述状态验证合约来记录前状态根映射信息和当前状态根映射信息之间的状态变更信息;
所述交易更新模块通过私有节点同步区块,通过所述执行器执行调用所述业务合约的交易操作并通过服务器更新所述业务合约的状态信息;
所述对比模块通过所述状态验证合约根据所述记录模块记录的状态变更信息形成状态变更树信息合集,并根据所述状态变更树信息合集与所述交易更新模块的状态信息对比验证所述业务合约调用的正确性和完整性。
CN202010529863.3A 2020-06-11 2020-06-11 一种开放区块链中隐私信息的保护方法及系统 Active CN111651790B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010529863.3A CN111651790B (zh) 2020-06-11 2020-06-11 一种开放区块链中隐私信息的保护方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010529863.3A CN111651790B (zh) 2020-06-11 2020-06-11 一种开放区块链中隐私信息的保护方法及系统

Publications (2)

Publication Number Publication Date
CN111651790A CN111651790A (zh) 2020-09-11
CN111651790B true CN111651790B (zh) 2023-04-11

Family

ID=72343692

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010529863.3A Active CN111651790B (zh) 2020-06-11 2020-06-11 一种开放区块链中隐私信息的保护方法及系统

Country Status (1)

Country Link
CN (1) CN111651790B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112487462B (zh) * 2020-12-11 2023-10-31 航天信息股份有限公司 基于区块链车购税系统的数据授权方法及设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108427601A (zh) * 2017-02-13 2018-08-21 北京航空航天大学 一种私有链节点的集群交易处理方法
CN109214823A (zh) * 2018-08-27 2019-01-15 北京京东金融科技控股有限公司 基于区块链的交易验证方法、装置、存储介质及电子设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6955026B2 (ja) * 2019-03-28 2021-10-27 アドバンスド ニュー テクノロジーズ カンパニー リミテッド 並列処理ブロックチェーントランザクションのためのシステムおよび方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108427601A (zh) * 2017-02-13 2018-08-21 北京航空航天大学 一种私有链节点的集群交易处理方法
CN109214823A (zh) * 2018-08-27 2019-01-15 北京京东金融科技控股有限公司 基于区块链的交易验证方法、装置、存储介质及电子设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
邵奇峰 ; 金澈清 ; 张召 ; 钱卫宁 ; 周傲英 ; .区块链技术:架构及进展.计算机学报.(第05期),全文. *

Also Published As

Publication number Publication date
CN111651790A (zh) 2020-09-11

Similar Documents

Publication Publication Date Title
CN112307455B (zh) 基于区块链的身份认证方法及装置、电子设备
CN112686671B (zh) 基于区块链的智能合约部署方法、装置、设备以及介质
WO2020041878A1 (en) System and method for improved blockchain-implemented smart contract
CN111753335B (zh) 区块内容的编辑方法及装置
CN112287034B (zh) 一种数据同步方法、设备以及计算机可读存储介质
CN112287033B (zh) 一种数据同步方法、设备以及计算机可读存储介质
CN112422341B (zh) 区块链网络的故障检测方法及相关设备
CN110633963A (zh) 电子票据处理方法、装置、计算机可读存储介质和设备
CN110187831B (zh) 区块链联盟链的区块数据存储系统及方法
WO2021208909A1 (zh) 基于区块链的仓库信用评级、结果获取、验证
CN110061887B (zh) 一种基于区块链的流量统计方法、装置和设备
CN112101938A (zh) 基于区块链的数字印章使用方法、装置及电子设备
CN111488372A (zh) 一种数据处理方法、设备及存储介质
CN110992035A (zh) 区块链节点管理方法、装置及系统
Jonathan et al. Security issues and vulnerabilities on a blockchain system: A review
CN112200569A (zh) 基于区块链的数字印章使用方法、装置及电子设备
CN111651790B (zh) 一种开放区块链中隐私信息的保护方法及系统
CN112100588A (zh) 基于区块链的数字印章申领方法、装置及电子设备
CN111915308A (zh) 一种区块链网络的交易处理方法及区块链网络
CN116827957B (zh) 基于多区块链的信息处理方法、装置、设备以及介质
WO2019191635A1 (en) System and methods for preventing reverse transactions in a distributed environment
CN113037827A (zh) 基于区块链的投票方法、自组织管理方法及计算机设备
CN112507390A (zh) 一种基于区块链的电子证照信息获取方法及设备
CN111177171A (zh) 基于区块链的业务数据认证与管理方法及系统
CN113643032B (zh) 一种基于区块链的信息处理方法、装置及数据管理系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant