CN113032800A - 一种基于零知识证明的链上自动执行智能合约中间件系统 - Google Patents
一种基于零知识证明的链上自动执行智能合约中间件系统 Download PDFInfo
- Publication number
- CN113032800A CN113032800A CN202110198930.2A CN202110198930A CN113032800A CN 113032800 A CN113032800 A CN 113032800A CN 202110198930 A CN202110198930 A CN 202110198930A CN 113032800 A CN113032800 A CN 113032800A
- Authority
- CN
- China
- Prior art keywords
- intelligent contract
- data
- middleware system
- verification
- user
- 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.)
- Pending
Links
- 238000012795 verification Methods 0.000 claims abstract description 22
- 238000000034 method Methods 0.000 claims abstract description 11
- 238000006243 chemical reaction Methods 0.000 claims abstract description 6
- 238000005516 engineering process Methods 0.000 claims description 8
- 230000005540 biological transmission Effects 0.000 claims description 3
- 238000001514 detection method Methods 0.000 claims description 2
- 238000007781 pre-processing Methods 0.000 claims description 2
- 230000003993 interaction Effects 0.000 abstract description 2
- 230000007547 defect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/405—Establishing or using transaction specific rules
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/02—Banking, e.g. interest calculation or account maintenance
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Accounting & Taxation (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Finance (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明开发了一种基于零知识证明的链上自动执行智能合约中间件系统。该系统不同于传统的智能合约预言机系统,该系统能将在Web服务器上签名的数据转换为zk‑SNARKs证明的数据证据,区块链上智能合约能够验证证明是否正确。该中间件系统由四个部分组成:(1)数据源模块(2)数据证明模块(3)智能合约代码转换模块(4)智能合约验证模块。本发明解决传统预言机系统存在不能提供隐私的能力,无法保护用户的数据隐私,无法提供智能合约自动生成、验证服务的问题。能够为智能合约提供数据证明的同时保护用户的数据隐私,保障链上数据的真实性,实现智能合约可信的与外部世界进行交互。
Description
技术领域
本发明涉及针对区块链领域,特别是涉及一种基于零知识证明的链上自动执行智能合约中间件系统。
背景技术
预言机是一个链外数据的提供平台,作为智能合约的参数输入来源,能够将链外的数据真实准确的输入到链内,从而保障链上数据的真实性,实现智能合约可信的与外部世界进行交互。传统预言机系统存在不能提供隐私的能力,无法保护用户的数据隐私,无法提供智能合约自动生成、验证服务的问题。
zk-SNARKs全称是“Zero-Knowledge Succinct Non-Interactive Argument ofKnowledge”,是一种带有零知识特性的非交互简洁论证技术,在证明的过程中不透露任何内情。zk-SNARKs技术能应用到很多场景,比如隐私保护、区块链扩容、可验证计算等。
ECDH全称是椭圆曲线迪菲-赫尔曼秘钥交换(Elliptic Curve Diffie–Hellmankey Exchange),主要是用来在一个不安全的通道中建立起安全的共有加密资料,一般来说交换的都是私钥,这个密钥一般作为“对称加密”的密钥而被双方在后续数据传输中使用。
发明内容
有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是提供本发明针对目前技术发展的需求和不足之处,提供一种基于零知识证明的链上自动执行智能合约中间件系统,其特征在于:包含以下组成部分:
(1)数据源模块,定义证明和验证过程中所需的输入数据的参数,验证用户的数据是否来自正确的数据源;
(2)数据证明模块,使用零知识证明zk-SNARKs技术对用户数据进行验证,生成可证明的数据证据;
(3)智能合约代码转换模块,将程序员开发的应用程序转换为可在区块链上运行的智能合约,该智能合约能够验证生成的外部数据证明。
(4)智能合约验证模块,对生成的智能合约进行形式化验证。
具体的,所涉及组成部分(1)验证用户的数据是否来自正确的数据源是通过与ECDH交换的加密密钥进行签名验证,用户与中间件系统之间加密是加密进行传输。所涉及组成部分(1)数据源可以是用户可以通过从外部来源导入数据来用户证明数据如用户的银行余额或资格证书证明等,还可以来自公开的数据源。所涉及组成部分(2),零知识证明zk-SNARKs技术可以是PGHR13、G16和GM17等方案。所涉及组成部分(3),程序员开发的应用程序是通过中间件系统提供的接口来编写中间程序。所涉及组成部分(3),转换生成智能合约过程包括智能合约代码转换模块进行预处理,根据语法规则创建一个带有标记的抽象语法树,并将签名验证转换为零知识证明,生成区块链可运行的智能合约程序。所涉及组成部分(4),程序进行形式化验证是对智能合约建模、分析和验证,采用的方法可以是演绎验证方法也可以是模型检测方法。
附图说明
后文将参照附图以示例性而非限制性的方式详细描述本发明的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。本发明的目标及特征考虑到如下结合附图的描述将更加明显,附图中:
图1为本发明工作示意图。
具体实施方式
为了使得本发明能够针对其发明要点更加明显易懂,下面将结合附图和实例对本发明作进一步的说明。在下面的描述中阐述了很多细节和具体实例,提供这些实例是为了能够更透彻地理解本发明,并且能够将本发明完整形象地传达给本领域的技术人员。虽然本发明能够以很多不同于此描述的其它方式实施,但是本领域技术人员可以在不违背本发明内涵的情况下做相应的推广,因此本发明不受下面公开的具体实例及具体附图所限制。
下面将附图结合具体实施方式对本发明的技术加以详细说明。
本发明为了解决预言机系统存在不能提供隐私的能力,无法保护用户的数据隐私,无法提供智能合约自动生成、验证服务的问题,提出一种基于零知识证明的链上自动执行智能合约中间件系统,本实施例是以用户银行存款金额证明为例子,本实施例将说明本发明的工作流程,包括:
S01、软件开发人员使用中间件系统提供的智能合约接口编写一个可以获取外部信息的智能合约应用程序,基于该接口实现的程序能够实现获取外部信息的同时保护用户的数据隐私;
S02、中间件系统智能合约代码转换模块,将程序员开发的应用程序转换为可在区块链上运行的智能合约,智能合约代码转换模块通过语法规则创建一个带有标记的抽象语法树,遍历抽象语法树检查类型,基于抽象语法树重构代码,生成可以在区块链运行的智能合约源码;
S03、使用形式化工具对生成的智能合约程序进行形式化验证,通过在一个特制的智能合约虚拟机里运行智能合约字节码来检查合约的安全问题,它使用符号执行技术来检查程序可能的状态;
S04、在区块链上部署通过形式化验证的智能合约程序;
S05、用户通过客户端输入身份凭证信息和数据参数,客户端在本机使用零知识证明zk-SNARKs技术生成证明银行存款金额凭证数据;
S06、中间件系统对用户数据凭证数据进行验证,验证用户的数据是否来自正确的数据源,验证用户的数据是否来有效,在通过验证之后生成可证明的证据;
S07、用户将中间件系统生成可证明的证据上传至区块链,区块链智能合约验证该证据,验证通过之后,能够确认被证明事实的准确性。同时不需要知道用户的隐私数据内容,从而保护用户的隐私。
Claims (7)
1.一种基于零知识证明的链上自动执行智能合约中间件系统,其特征在于:包含以下组成部分:
(1)数据源模块,定义证明和验证过程中所需的输入数据的参数,验证用户的数据是否来自正确的数据源;
(2)数据证明模块,使用零知识证明zk-SNARKs技术对用户数据进行验证,生成可证明的数据证据;
(3)智能合约代码转换模块,将程序员开发的应用程序转换为可在区块链上运行的智能合约,该智能合约能够验证生成的外部数据证明。
(4)智能合约验证模块,对生成的智能合约进行形式化验证。
2.根据权利要求1所述的一种基于零知识证明的链上自动执行智能合约中间件系统,其特征在于:所述组成部分(1)验证用户的数据是否来自正确的数据源是通过与ECDH交换的加密密钥进行签名验证,用户与中间件系统之间加密是加密进行传输。
3.根据权利要求1所述的一种基于零知识证明的链上自动执行智能合约中间件系统,其特征在于:所述组成部分(1)数据源可以是用户可以通过从外部来源导入数据来用户证明数据如用户的银行余额或资格证书证明等,还可以来自公开的数据源。
4.根据权利要求1所述的一种基于零知识证明的链上自动执行智能合约中间件系统,其特征在于:所述组成部分(2),零知识证明zk-SNARKs技术可以是PGHR13、G16和GM17等方案。
5.根据权利要求1所述的一种基于零知识证明的链上自动执行智能合约中间件系统,其特征在于:所述组成部分(3),程序员开发的应用程序是通过中间件系统提供的接口来编写中间程序。
6.根据权利要求1所述的一种基于零知识证明的链上自动执行智能合约中间件系统,其特征在于:所述组成部分(3),转换生成智能合约过程包括智能合约代码转换模块进行预处理,根据语法规则创建一个带有标记的抽象语法树,并将签名验证转换为零知识证明,生成区块链可运行的智能合约程序。
7.根据权利要求1所述的一种基于零知识证明的链上自动执行智能合约中间件系统,其特征在于所述组成部分(4),程序进行形式化验证是对智能合约建模、分析和验证,采用的方法可以是演绎验证方法也可以是模型检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110198930.2A CN113032800A (zh) | 2021-02-22 | 2021-02-22 | 一种基于零知识证明的链上自动执行智能合约中间件系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110198930.2A CN113032800A (zh) | 2021-02-22 | 2021-02-22 | 一种基于零知识证明的链上自动执行智能合约中间件系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113032800A true CN113032800A (zh) | 2021-06-25 |
Family
ID=76460985
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110198930.2A Pending CN113032800A (zh) | 2021-02-22 | 2021-02-22 | 一种基于零知识证明的链上自动执行智能合约中间件系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113032800A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113344551A (zh) * | 2021-07-05 | 2021-09-03 | 招商局金融科技有限公司 | 基于零知识证明技术的多头授信方法、装置、设备及介质 |
CN113986250A (zh) * | 2021-12-23 | 2022-01-28 | 杭州趣链科技有限公司 | 零知识证明电路优化方法、装置、终端设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108418783A (zh) * | 2017-09-01 | 2018-08-17 | 矩阵元技术(深圳)有限公司 | 一种保护区块链智能合约隐私的方法、介质 |
CN108898490A (zh) * | 2018-06-25 | 2018-11-27 | 北京奇虎科技有限公司 | 智能合约的执行方法、节点、系统、电子设备及存储介质 |
CN109614820A (zh) * | 2018-12-06 | 2019-04-12 | 山东大学 | 基于零知识证明的智能合约认证数据隐私保护方法 |
CN111433798A (zh) * | 2020-02-03 | 2020-07-17 | 支付宝(杭州)信息技术有限公司 | 基于区块链的可信保函 |
CN111429138A (zh) * | 2020-03-25 | 2020-07-17 | 中国工商银行股份有限公司 | 区块链节点数据安全交互方法及第一交互节点 |
-
2021
- 2021-02-22 CN CN202110198930.2A patent/CN113032800A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108418783A (zh) * | 2017-09-01 | 2018-08-17 | 矩阵元技术(深圳)有限公司 | 一种保护区块链智能合约隐私的方法、介质 |
CN108898490A (zh) * | 2018-06-25 | 2018-11-27 | 北京奇虎科技有限公司 | 智能合约的执行方法、节点、系统、电子设备及存储介质 |
CN109614820A (zh) * | 2018-12-06 | 2019-04-12 | 山东大学 | 基于零知识证明的智能合约认证数据隐私保护方法 |
CN111433798A (zh) * | 2020-02-03 | 2020-07-17 | 支付宝(杭州)信息技术有限公司 | 基于区块链的可信保函 |
CN111429138A (zh) * | 2020-03-25 | 2020-07-17 | 中国工商银行股份有限公司 | 区块链节点数据安全交互方法及第一交互节点 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113344551A (zh) * | 2021-07-05 | 2021-09-03 | 招商局金融科技有限公司 | 基于零知识证明技术的多头授信方法、装置、设备及介质 |
CN113344551B (zh) * | 2021-07-05 | 2024-02-09 | 招商局金融科技有限公司 | 基于零知识证明技术的多头授信方法、装置、设备及介质 |
CN113986250A (zh) * | 2021-12-23 | 2022-01-28 | 杭州趣链科技有限公司 | 零知识证明电路优化方法、装置、终端设备及存储介质 |
CN113986250B (zh) * | 2021-12-23 | 2022-04-08 | 杭州趣链科技有限公司 | 零知识证明电路优化方法、装置、终端设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Vigano | Automated security protocol analysis with the AVISPA tool | |
EP3564884A1 (en) | Method and system for verifying policy compliance of transactions in a blockchain executing smart contracts | |
CN100556035C (zh) | 在运行时包签名中使用受信的、基于硬件的身份认证以使移动通信和高价值交易执行安全的方法 | |
CN111316595A (zh) | 用于保护验证密钥不被更改并验证正确性证明的有效性的系统 | |
CN111801910A (zh) | 基于证明验证的用于认证链外数据的系统和方法 | |
Cortier et al. | A method for proving observational equivalence | |
CN107111713A (zh) | 软件系统的自动验证 | |
CN112508563B (zh) | 跨链交易可信验证方法、装置及计算机设备 | |
Bacelar Almeida et al. | Full proof cryptography: verifiable compilation of efficient zero-knowledge protocols | |
Wesemeyer et al. | Formal analysis and implementation of a tpm 2.0-based direct anonymous attestation scheme | |
CN102171652A (zh) | 为电子装置提供可信软件的方法 | |
Backes et al. | Union and intersection types for secure protocol implementations | |
CN113032800A (zh) | 一种基于零知识证明的链上自动执行智能合约中间件系统 | |
Corin et al. | A logic for constraint-based security protocol analysis | |
Arapinis et al. | Verifying privacy-type properties in a modular way | |
Dadeau et al. | Model‐based mutation testing from security protocols in HLPSL | |
Datta et al. | Abstraction and refinement in protocol derivation | |
CN110798322B (zh) | 一种操作请求方法、装置、存储介质及处理器 | |
Cortier et al. | Equivalence properties by typing in cryptographic branching protocols | |
Arquint et al. | Sound verification of security protocols: From design to interoperable implementations | |
González-Burgueno et al. | Analysis of the IBM CCA security API protocols in Maude-NPA | |
CN116896463A (zh) | 一种基于区块链的可信环境认证方法及装置 | |
Pintaldi | Implementation of a Blockchain-based Distributed PKI for IoT using Emercoin NVS and TPM 2.0 | |
Arquint et al. | Sound verification of security protocols: From design to interoperable implementations (extended version) | |
CN112766971A (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 |