CN111316595A - 用于保护验证密钥不被更改并验证正确性证明的有效性的系统 - Google Patents

用于保护验证密钥不被更改并验证正确性证明的有效性的系统 Download PDF

Info

Publication number
CN111316595A
CN111316595A CN201880072801.5A CN201880072801A CN111316595A CN 111316595 A CN111316595 A CN 111316595A CN 201880072801 A CN201880072801 A CN 201880072801A CN 111316595 A CN111316595 A CN 111316595A
Authority
CN
China
Prior art keywords
script
transaction
computer
implemented method
blockchain
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
Application number
CN201880072801.5A
Other languages
English (en)
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.)
Nchain Holdings Ltd
Original Assignee
Nchain Holdings 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
Priority claimed from GBGB1718505.9A external-priority patent/GB201718505D0/en
Priority claimed from GBGB1719998.5A external-priority patent/GB201719998D0/en
Priority claimed from GBGB1720768.9A external-priority patent/GB201720768D0/en
Priority claimed from GBGB1801753.3A external-priority patent/GB201801753D0/en
Priority claimed from GBGB1805948.5A external-priority patent/GB201805948D0/en
Priority claimed from GBGB1806444.4A external-priority patent/GB201806444D0/en
Application filed by Nchain Holdings Ltd filed Critical Nchain Holdings Ltd
Publication of CN111316595A publication Critical patent/CN111316595A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3218Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/423Preprocessors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • G06F8/4441Reducing the execution time required by the program code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
    • G06F8/451Code distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • 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/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • 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/40Authorisation, 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/401Transaction verification
    • 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/40Authorisation, 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/405Establishing or using transaction specific rules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0877Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/122Hardware reduction or efficient architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/127Trusted platform modules [TPM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/34Encoding or coding, e.g. Huffman coding or error correction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Accounting & Taxation (AREA)
  • Computing Systems (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Power Engineering (AREA)
  • Data Mining & Analysis (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Devices For Executing Special Programs (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Debugging And Monitoring (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及分布式账本技术,例如,基于共识的区块链。区块链交易可能包括被锁定脚本锁定(encumber)的数字资源,该锁定脚本对使用被锁定资源(例如,转移对被锁定资源的所有权/控制)之前必须满足的一组条件进行编码。工作者(例如,计算机系统)执行一个或多个计算来生成证明,该证明被编码为解锁脚本的一部分。验证算法可以利用证明、验证密钥和附加数据(诸如与工作者相关联的加密材料(例如,数字签名)),来验证交易的数字资产应该被转移。作为该交易的验证结果,任何第三方都能够检验合约是否被执行校正,而不是重新执行该合约,从而节省计算能力。

Description

用于保护验证密钥不被更改并验证正确性证明的有效性的 系统
技术领域
本发明通常涉及区块链技术,更具体地,涉及通过利用锁定脚本在区块链上执行零知识(zero-knowledge)协议以保护验证密钥不被更改并验证正确性证明的有效性。本发明进一步利用加密和数学技术来加强与通过区块链网络进行的电子传输相关的安全性。本发明特别适合但不限于在智能合约生成和执行中使用。
背景技术
在本文中,术语“区块链”可指若干种类型的电子的、基于计算机的分布式账本中的任何一种。这些包括基于共识的区块链和交易链技术、许可及未许可的账本、共享账本及其变体。尽管已经提出并开发了其他区块链实现方式,但是区块链技术最广为人知的应用是比特币账本。虽然比特币可以称为本申请中所描述的技术的有用应用,但是出于方便和说明的目的,比特币仅仅是应用于本申请所描述的技术的许多应用中的一个。然而,应当注意的是,本发明不限于与比特币区块链一起使用;包括非商用应用在内的替代的区块链实现方式和协议也落在本发明的范围内。
区块链是一种点对点(peer-to-peer)电子账本,该电子账本被实现为基于计算机的、去中心化的分布式系统,该系统由区块组成,而区块又可以由交易和其他信息组成。在一些示例中,“区块链交易”是指对包括数据和一组条件的字段值的结构化集合进行编码的输入消息,其中,满足这组条件是将字段集写入区块链数据结构的先决条件。例如,就比特币情况而言,每个交易都是对区块链系统中参与者之间数字资产的控制的转移进行编码的数据结构,并且每个交易包括至少一个输入和至少一个输出。在一些实施例中,“数字资产”是指与使用权相关联的二进制数据。数字资产的示例包括比特币、以太坊(ether)和莱特币(Litecoins)。在一些实现方式中,可以通过将数字资产的至少一部分从第一实体重新关联到第二实体来执行数字资产的控制转移。区块链的每个区块可能都包含前一区块的散列,以便将区块链接在一起,以创建一个永久的、不可更改的所有交易的记录,这些交易自区块链创建以来写入区块链。
在一些示例中,“基于堆栈的脚本语言”是指支持各种基于堆栈或面向堆栈的执行模型和操作的编程语言。即,基于堆栈的脚本语言可以利用堆栈。通过使用堆栈,可以将值推送至堆栈顶部,或者从堆栈顶部弹出。对堆栈执行的各种操作会导致将一个或多个数值推送至堆栈顶部或从堆栈顶部弹出。例如,OP_EQUAL操作从堆栈中弹出前两项,将其进行比较,并将结果(例如,在相等的情况下为1,在不相等的情况下为0)推送至堆栈顶部。对堆栈执行的其他操作,例如,OP_PICK,可允许从堆栈顶部以外的位置选择项。在一些实施例使用的某些脚本语言中,可以有至少两个堆栈:主堆栈(main stack)和备用堆栈(alternatestack)。脚本语言的一些操作可以将项从一个堆栈的顶部移动到另一堆栈的顶部。例如,OP_TOALTSTACK将值从主堆栈的顶部移动到备用堆栈的顶部。应当注意的是,在某些情况下,基于堆栈的脚本语言可能不仅限于以严格的后进先出(LIFO)方式进行的操作。例如,基于堆栈的脚本语言可以支持将堆栈中的第n个项复制或移动到顶部的操作(例如,在比特币中分别为OP_PICK和OP_ROLL)。可将以基于堆栈的脚本语言编写的脚本推送至逻辑堆栈,其中可以使用任何合适的数据结构,例如,向量、列表或堆栈,来实现该逻辑堆栈。
为了将交易写入区块链,必须对交易进行“验证”。网络节点(挖矿节点)执行工作,以确保每个交易有效,无效交易则被网络拒绝。一个节点可以具有不同于其他节点的有效性标准。因为区块链的有效性是基于共识的,所以如果大多数节点同意交易是有效的,则该交易被认为是有效的。安装在节点上的软件客户端部分地通过执行未花费的交易输出(UTXO)锁定和解锁脚本对引用UTXO的交易执行该验证工作。如果锁定和解锁脚本的执行评估为真(TRUE),并且满足其他验证条件(如果适用的话),则由节点验证该交易。已验证的交易被传播到其他网络节点,随后挖矿节点可以选择将该交易包括在区块链中。因此,为了将交易写入区块链,该交易必须i)由接收该交易的第一节点进行验证(如果交易得到验证,则该节点将该交易中继到网络中的其他节点);ii)添加到由挖矿节点创建的新区块中;并且iii)被挖矿(即,将交易添加到过去交易的公共账本中)。当区块链添加了足够数量的区块以使交易实际上不可逆转时,该交易被视为已确认。
尽管区块链技术以使用加密货币实现方式而闻名,但数字企业家已经开始探索使用比特币所基于的加密安全系统以及可存储在区块链上的数据来实现新系统。如果区块链能够用于自动化任务和流程,而不仅仅局限于加密货币领域,则将是非常有利的。此类解决方案能够利用区块链的优势(例如,事件的永久防篡改记录、分布式处理等),同时在其应用中更加通用。
本公开描述了一个或多个基于区块链的计算机程序的技术方面。基于区块链的计算机程序可以是记录在区块链交易中的机器可读且可执行程序。基于区块链的计算机程序可以包括可处理输入以产生结果的规则,然后可以根据这些结果执行动作。当前研究的一个领域是使用基于区块链的计算机程序来实现“智能合约”。与用自然语言编写的传统合约不同,智能合约可以是旨在用于自动执行机器可读合约或协议的条款的计算机程序。
另一与区块链相关的感兴趣的领域是使用‘令牌’(或“彩币”)来表示现实世界实体并且经由区块链对其进行转移。潜在的敏感或秘密项可以由没有可辨别意义或价值的令牌来表示。因此,令牌充当允许从区块链引用现实世界项的标识符。
在实施例中,尽管与特定实体的交互可以在智能合约中的特定步骤进行编码,但智能合约也可以自动执行和自我实施。智能合约是机器可读和可执行的。在一些示例中,自动执行是指成功执行智能合约,以实现UTXO的转移。注意,在这些示例中,能够导致UTXO转移的“实体”是指能够创建解锁脚本而无需证明知道某个秘密的实体。换言之,可以验证解锁交易而无需验证数据源(例如,创建解锁交易的实体)有权访问加密秘密(例如,私有非对称密钥、对称密钥等)。此外,在这样的示例中,自我实施是指使区块链网络的验证节点根据约束来实施解锁交易。在一些示例中,在技术意义上使用的“解锁”UTXO(也称为“花费UTXO”),是指创建引用UTXO并作为有效执行的解锁交易。
区块链交易输出包括锁定脚本和关于如比特币等数字资产的所有权的信息。锁定脚本也可以称为负载(encumbrance),其通过指定转移UTXO所需满足的条件来“锁定”数字资产。例如,锁定脚本可要求在解锁脚本中提供某些数据来解锁相关联的数字资产。锁定脚本在比特币中也称为“脚本公钥”。一种要求一方提供数据以解锁数字资产的技术包括在锁定脚本内部嵌入数据的散列。
发明内容
因此,期望提供在这些方面中的一个或多个方面改进区块链技术的方法和系统。现在已经设计出这样一种改进的解决方案。因此,根据本发明,提供了一种如所附权利要求中定义的方法。
现在已经设计出这样一种改进的解决方案。
因此,根据本发明,提供了如所附权利要求中定义的系统和方法。
根据本发明,可以提供一种用于区块链网络的节点的计算机实现的方法,该计算机实现的方法包括:生成交易的交易输出,该交易输出包括数字资产指示和锁定脚本,该锁定脚本对用于转移对数字资产的控制的一组条件进行编码,至少部分地基于验证密钥和证明来确定这组条件的满足;生成该交易的交易输入,该交易输入包括:与交易输出相关联的标识符以及包含该证明的解锁脚本;并且至少部分地基于锁定脚本和解锁脚本来验证这组条件的满足;以及响应于验证这组条件的满足,转移对数字资产的控制。
该验证密钥可以包括第一多个有限域元素,并且该证明包括第二多个有限域元素。
该有限域元素可以是椭圆曲线上的点。
该有限域元素可以以压缩格式编码。
优选地,该方法可以包括客户端利用验证密钥和与该客户端相关联的第一数字证书对该交易输入进行编码,并且工作者利用该证明和与该工作者相关联的第二数字证书对该交易输入进行编码。
该锁定脚本可以包括指令,该指令在解锁脚本未满足这组条件的情况下,为数字资产的提供者收回数字资产。
该解锁脚本还可以包括赎回脚本,其中,该验证密钥和该赎回脚本对足够的信息进行编码,以确定满足这组条件的至少一个子集;并且该锁定脚本对这组条件的一个条件进行编码,该条件为赎回脚本的散列与预定值匹配。
该赎回脚本可以小于或等于预定的最大值,例如,520字节。
该解锁脚本可以包括该验证密钥的一个或多个元素,该赎回脚本可以包括该验证密钥的至少一些剩余元素。解锁脚本和赎回脚本可以共同包括该验证密钥。
交易的锁定脚本、解锁脚本和赎回脚本可以根据基于比特币的协议的支付给脚本散列(P2SH)交易或其变体。
该交易可以根据如比特币协议等基于区块链的协议的标准交易。
诸如锁定脚本和解锁脚本等脚本可以利用基于堆栈的脚本语言中的命令和数据来编码,其中,该命令和数据以后进先出的顺序放置在堆栈上。
这组条件可以包括一个或多个双线性约束。
还期望提供一种系统,包括:处理器;以及包括可执行指令的存储器,该可执行指令由处理器执行使得该系统执行如权利要求所述的任一方法。
还期望提供一种非暂时性计算机可读存储介质,其上存储有可执行指令,该可执行指令由计算机系统的一个或多个处理器执行使得该计算机系统至少执行如权利要求所述的任一方法。
本发明可以被描述为一种验证方法/系统和/或一种用于控制经由区块链交换或转移数字资产的控制方法/系统。在一些实施例中,数字资产是令牌或加密货币的一部分。如下所述,本发明也可以被描述为用于通过区块链网络或平台执行操作的新型、改进的和有利的方式的安全方法/系统。
附图说明
参考本文描述的实施例,本发明的这些和其他方面将变得清楚并得以阐明。现在将参考附图,仅以示例的方式描述本发明的实施例,其中:
图1示出了可以实现各种实施例的区块链环境;
图2示出了根据各种实施例的可用于实现协议的计算环境;
图3示出了适于执行可验证计算的环境的示图;
图4示出了根据实施例的示例图,其中,使用压缩与未压缩编码来表示椭圆曲线上的点,该编码适用于与例如锁定或解锁脚本等区块链脚本一起使用;
图5示出了一个示图,其中,客户端提供验证密钥,以用于对证明进行验证;
图6示出了一个示图,其中,工作者提供验证密钥,以用于对证明进行验证;
图7示出了根据实施例的用于生成赎回脚本的流程700的示图;以及
图8示出了可以用于实践本发明的至少一个实施例的计算设备。
具体实施方式
首先参考图1,其示出了根据本申请的实施例的与区块链相关联的示例区块链网络100。在该实施例中,示例区块链网络100包括被实现为点对点分布式电子设备的区块链节点,每个节点运行软件和/或硬件的实例,该实例执行遵循区块链协议的操作,该区块链协议至少部分地得到节点102的运营商的同意。在一些示例中,“节点”是指分布在区块链网络中的点对点电子设备。区块链协议的一个示例是比特币协议。
在一些实施例中,节点102可以由任何合适的计算设备(例如,由数据中心中的服务器、客户端计算设备(例如,台式电脑、膝上型计算机、平板电脑、智能手机等)、计算资源服务提供商的分布式系统中的多个计算设备或者如图8的计算设备800等任何合适的电子客户端设备)组成。在一些实施例中,节点102具有接收数据消息或对象的输入,该数据消息或对象表示所提议的交易(例如,交易104)。在一些实施例中,可以查询节点以获取其维护的信息,例如,获取交易104的状态信息。
如图1所示,一些节点102通信耦合到一个或多个其他节点102。这种通信耦合可以包括有线或无线通信中的一种或多种。在该实施例中,每个节点102维护区块链中所有交易的“账本”的至少一部分。以这种方式,账本将是分布式账本。由影响账本的节点处理的交易可由一个或多个其他节点验证,从而保持账本的完整性。
至于哪些节点102可以与哪些其他节点通信,假设消息是区块链协议指示应该转发的消息,则示例区块链网络100中的每个节点能够与一个或多个其他节点102通信,使得在节点之间传递的消息可以在示例区块链网络100(或其某个重要部分)中传播,这就足够了。一个这样的消息可能是由一个节点102,例如,节点102A,发布所提议的交易,然后该交易将沿着路径,例如,路径106,传播。另一这样的消息可能是发布提议包含到区块链上的新区块。
在一个实施例中,至少一些节点102是执行如解决加密问题等复杂计算的挖矿节点。解决加密问题的挖矿节点为区块链创建新区块,并将该新区块广播给其他节点102。其他节点102验证挖矿节点的工作,并且在验证后,将该区块接受到区块链中(例如,通过将其添加到区块链的分布式账本中)。在一些示例中,区块是一组交易,通常标记有时间戳和前一区块的“指纹”(例如,散列)。以这种方式,每个区块可以链接到前一区块,从而创建链接区块链中区块的“链”。在实施例中,通过节点102的共识将有效区块添加到区块链。同样在一些示例中,区块链包括已验证区块的列表。
在一个实施例中,至少一些节点102作为验证节点来操作,这些验证节点如本申请所描述的那样验证交易。在一些示例中,交易包括提供数字资产(例如,一些比特币)的所有权证明的数据以及用于接受或转移数字资产的所有权/控制的条件。在一些示例中,“解锁交易”是指将由前一个交易的UTXO指示的数字资产的至少一部分和与区块链地址相关联的实体重新关联(例如,转移所有权或控制)的区块链交易。在一些示例中,“前一个交易”是指包含解锁交易所引用的UTXO的区块链交易。在一些实施例中,交易包括“锁定脚本”,该“锁定脚本”用条件来锁定(encumber)交易,该条件必须在所有权/控制可以被转移(“解锁”)之前被满足。
在一些实施例中,区块链地址是与实体相关联的字母数字字符串,其中对数字资产的至少一部分的控制被转移/重新关联到该实体。在一些实施例中实现的一些区块链协议中,在与实体相关联的公钥和区块链地址之间存在一对一的对应关系。在一些实施例中,交易的验证包括验证锁定脚本和/或解锁脚本中指定的一个或多个条件。在交易104成功验证后,验证节点将交易104添加到区块链,并将其分发给节点102。
本文所述的系统和方法涉及使锁定脚本能够保护验证密钥VK不被更改并检验证明π的有效性,从而允许在交易验证期间在区块链上执行零知识协议。
可验证计算是一种允许生成计算证明的技术。在一个实施例中,客户端利用这种技术将对输入x上的函数f的评估外包给在本文称为工作者的另一计算实体。在一些情况下,客户端在计算上是有限制的,使得客户端执行函数的评估是不可行的(例如,使用客户端可用计算资源的计算的预期运行时间超过最大可接受阈值),尽管情况未必如此,但一般而言,客户端可以基于任何合适的标准,例如,计算运行时间、计算成本(例如,分配计算资源以执行函数评估的财务成本)等,来委托对输入x上的函数f的评估。
在一个实施例中,工作者是任何合适的计算实体,例如,在本申请的其他地方更详细描述的区块链节点。在一个实施例中,工作者(例如,区块链节点)评估输入x上的函数f,并生成输出y和输出y的正确性的证明π,该证明可以由其他计算实体(例如,如上所述的客户端)和/或区块链网络的其他节点来验证。证明也可以称为论证,其可以比实际计算更快地验证,因此,通过验证证明的正确性,而不是重新计算在输入x上的函数f来确定由上述工作者生成的输出的正确性,可以减少计算开销(例如,减少供电及运行计算资源相关的电力开销和成本)。在零知识可验证计算中,工作者向客户端提供证据,证明工作者知晓具有特定属性的输入。
零知识证明的一个有效变体是zk_SNARK(简洁非交互式的知识论证)。在一个实施例中,所有基于配对的zk_SNARK包括一个过程,在该过程中,工作者使用通用组操作来计算多个组元素,并且验证者使用多个配对乘积方程来检验证明。在一个实施例中,线性交互式证明在有限域上工作,并且工作者和验证者的消息包括编码、引用或以其他方式包括可用于确定域元素的向量的信息。
在一个实施例中,本文描述的系统和方法允许区块链的挖矿节点执行一次计算(例如,输入x上的函数f的评估)并生成可用于验证输出的正确性的证明,其中,评估该证明的正确性在计算上比评估该函数要便宜。在这种情况下,操作和任务的成本(即,多贵)可以是指执行操作或任务的计算复杂度。在一个实施例中,计算复杂度是指执行排序算法的平均计算成本或最坏情况计算成本,例如,堆排序算法和快速排序算法都具有平均计算成本O(n logn),但是快速排序具有最坏情况计算成本O(n2),而堆排序具有最坏情况计算成本O(n logn)。在一个实施例中,评估输入x上的函数f的平均计算成本和/或最坏情况计算成本比评估证明的正确性的平均计算成本和/或最坏情况计算成本要贵。因此,本文描述的系统和方法的使用是非常有利的,并且例如可以允许运行计算上更昂贵的合约,因为这样的合约不会成比例增加验证区块链所需的时间。进一步的优点可以包括减少验证者系统的功耗,从而提高验证者计算机系统的效率,并降低与运行这种验证者计算机系统以评估证明的正确性相关的能源成本。目前,必须在所有节点上执行和验证智能合约,这一约束限制了智能合约的复杂性。本文描述的方法和系统可以用来实现一种通过执行一次合约来生成正确性证明从而提高区块链的效率的系统,并且基于由工作者提供的正确性证明和由客户端提供的验证密钥,区块链的所有节点可以验证合约的有效性。这样,区块链的效率通过增加智能合约的吞吐量得以提高,这些智能合约可以由区块链的节点一起执行和/或允许计算更昂贵的智能合约。
在一个实施例中,可以从输入/输出数据以及在零知识协议的设置阶段生成的并与证明π一起使用的公共参数中提取验证密钥VK或其部分,以验证由工作者提供的所谓的正确性计算证明。例如,如上文和下文更详细描述的,允许锁定脚本的系统和方法保护验证密钥VK不被更改并检验证明π的有效性,由此允许零知识协议在交易验证期间在区块链上执行。因此,本申请提供了使用区块链脚本(例如,在基于比特币的网络中)来执行验证阶段的系统和方法,用于存储在计算的验证中所使用的元素。
图2示出了根据各种实施例的可用于实现协议的计算环境200。可以使用区块链技术来实现该协议,以存储正确性证明,并将“按构造正确(correct-by-construction)”的加密方法与智能合约相结合。在一个实施例中,公共可验证计算方案包括三个阶段:设置阶段、计算阶段和验证阶段。
设置阶段可以作为流程的一部分来执行,以外包计算任务的执行。如下所述,客户端可以指将计算任务的执行委托给工作者的实体,例如,客户或客户端计算机系统,该实体可以是不同的计算机系统。一般来说,客户端可以出于各种原因委托计算任务的执行,包括但不限于有限的计算资源、计算资源的缺乏、与利用客户端计算机系统来执行任务相关联的财务成本、与利用客户端计算机系统来执行任务相关联的能源成本(例如,依赖电池供电的移动设备或膝上型电脑可以利用工作者来执行计算密集型任务,从而节省电力并延长电池动力设备的使用)等。
在一个实施例中,设置阶段包含客户端、客户、组织的雇员或任何其他使用具有精确语义的正式语言编写合约的合适的实体。可以用高级编程语言,例如,C或Java等来编写合约。一般来说,合约可以用可转换为由计算机系统操纵的格式的任何语言或语法来表示。在一个实施例中,具有有限目的的域特定语言可以提供类型安全(type-safety),并且可以利用受限的表达能力。生成的源代码可能是合约的精确描述。
编译器202可以是包括可执行代码的任何硬件、软件或其组合,如果可执行代码由计算机系统的一个或多个处理器执行,则使系统将源代码206视为输入并产生电路。编译器202可以指基于已经编译成机器可读格式(例如,二进制代码)的指令来执行或完成指令的计算机程序。应当注意的是,虽然示出了编译器202,但是可以利用解释器、汇编器和其他合适的软件和/或硬件组件来将源代码转换成电路。在一个实施例中,该电路是运算电路,该运算电路包括携带来自域F的值并连接到逻辑和/或运算门的导线。在一个实施例中,系统使用电路
Figure BDA0002484876080000121
来生成二次程序Q 208,该二次程序包括提供原始电路
Figure BDA0002484876080000122
的完整描述的一组多项式。
在一个实施例中,编译器202能够识别编程语言(例如,C或Java)的实质子集,包括但不限于:预处理器指示、静态初始化器、全局和局部函数、区块范围(block-scoped)变量、数组、数据结构、指针、函数调用、函数运算符(例如,函子)、条件和循环语句以及算术的和以比特为单位的布尔运算符(bitwise Boolean operator)。在一个实施例中,编译器202按照编程语言的标准不支持整组命令(在某些情况下,这可能旨在防止某些类型的算法在智能合约中执行,例如,禁止递归算法)。在一个实施例中,编译器将源代码的表达扩展成运算门语言,以产生运算电路。Campanelli,M.等人(2017年)在“重新审视零知识或有支付:服务的攻击和支付(Zero-Knowledge Contingent Payments Revisited:Attacks andPayments for Services)”中,以及Tillich,S.和Smart,B在“适用于MPC和FHE的基本功能电路(Circuits of Basic Functions Suitable For MPC and FHE)”中,都曾设想过电路实现方式。运算电路可以被编译器202或任何其他合适的硬件、软件或其组合(例如,图2中未示出的软件模块)用来构建二次算术问题(QAP)。根据实施例,二次程序被编译成用于客户端(例如,密钥生成和验证)和工作者(例如,计算和证明生成)的一组加密程序。在一些实施例中,如在英国专利申请号1718505.9中描述的那些运算电路优化技术可以用于减少工作者确定智能合约的结果所需的资源。
在一个实施例中,密钥生成器204是包括可执行代码的硬件、软件或其组合,该可执行代码如果由计算机系统的一个或多个处理器执行,则使得系统生成评估密钥和验证密钥,以形成二次程序。在Gennaro,R.等人(2013年)的“二次跨程序和无PCPs的简洁NIZKs(Quadratic Span Programs and Succinct NIZKs without PCPs)”中设想了将计算编码为二次程序的技术。在一个实施例中,二次算术问题(QAP)Q对域F上的电路
Figure BDA0002484876080000133
进行编码,并且包含一组m+1多项式:
V={vk(x)},W={wk(x)},Y={yk(x)}
其中,0≤k≤m。此外,也定义了目标多项式t(x)。给定函数f,其将F的n个元素作为输入并输出n’个元素,其中,N=n+n’。那么,如果{c1,…,cN}∈FN是f的输入和输出组的有效赋值并且存在系数列表{cN+1,…,cm},则Q计算f,使得t(x)除以p(x):
Figure BDA0002484876080000131
因此,在一个实施例中,必须存在某个多项式h(x),使得h(x)·t(x)=p(x)。Q的大小是m,其次数是t(x)的次数。
在一个实施例中,为运算电路构建QAP包括为电路中的每个乘法门g选取任意根rg∈F,并将目标多项式定义为t(x)=∏g(x-rg)。在一个实施例中,索引k∈{1...m}与电路的每个输入和乘法门的每个输出相关联。V中的多项式对每个门的左输入进行编码,W对每个门的右输入进行编码,Y对输出进行编码。例如,如果第k条导线是门g的左输入,则vk(rg)=1,否则vk(rg)=0。因此,对于特定的门g及其根rg,前面的方程式可以如下简化:
Figure BDA0002484876080000132
门的输出值等于其输入的乘积。整除性检验分解成deg(t(x))个单独的检验,t(x)的每个门g和根rg具有一个检验,使得p(rg)=0。加法门和乘以常数门对QAP的大小和次数没有影响。
在一个实施例中,在域Fp上定义QAP,其中,p是大质数。在一个实施例中,期望Fp上的QAP有效地计算任何可用模p的加法和乘法来表示的函数。运算分离门可以被设计成将运算导线a∈Fp(已知在[0,2k-1]中)转换成k个二进制输出导线。因此,由此可见,可以使用运算门来表示布尔函数。例如,NAND(a,b)=1–ab。每个嵌入式布尔门只需要一次乘法运算。此外,诸如分离(split)之类的新门可以被定义为独立的,并与其他门组合在一起。给定输入a∈Fp(已知在[0,2k-1]中),分离门输出k个导线,该k个导线保持a的二进制数字a1,...,ak,使得∑k2i-1ai=a,每个ai为0或1。
最后,系统生成所有证明者和验证者使用的公共参数作为设置阶段的一部分。应当注意的是,评估密钥EK和验证密钥VK是使用客户端选择的秘密值导出的。密钥生成器204可以结合密钥生成算法利用二次算术程序(QAP)来生成评估密钥EK210和验证密钥VK212。
在一个实施例中,执行计算任务包括由工作者计算输入216上的函数(即,用于评估f(x)的过程)。在一个实施例中,工作者是客户端可以向其委托计算任务的任何合适的计算机系统。在一个实施例中,输入216包括证明工作者身份的信息,例如,使用与工作者相关联的私钥生成的数字签名。在一个实施例中,工作者是客户端为成功的计算支付费用(例如,通过数字资产的转移)的计算机系统。在一个实施例中,客户端向工作者提供输入x和评估密钥EK,工作者将评估模块214用于计算程序来计算输出y(即,y=f(x),其中,输入是x,函数是f),并且使用评估密钥EK210来产生正确性证明218。在一个实施例中,评估模块是包括指令的硬件和/或软件,该指令如果由计算机系统的一个或多个处理器执行,则使得计算机系统评估QAP 208的内部电路导线的值并产生QAP的输出y。
在一个实施例中,二次程序的每个多项式vk(x)∈F被映射到双线性组中的元素gvk (s),其中,s是由客户端选择的秘密值,g是该组的生成器,F是g的离散对数的域。在一个实施例中,对于给定的输入,工作者评估电路,以获得对应于二次程序的系数ci的输出和内部电路导线的值。因此,工作者可以评估v(s)=∑k∈{m}ck·vk(s),以获得gv(s);计算w(s)和y(s);计算h(x)=p(x)/t(x)=∑dhi·xi;并使用评估密钥中的hi和gs(i)项计算gh(s)。在一个实施例中,正确性证明218包括(gv(s),gw(s),gy(s),gh(s)),并且验证者使用双线性映射来检验p(s)=h(s)·t(s).。在一个实施例中,证明π存储在区块链222上,以供以后使用,或者可以由多方验证而无需证明者单独与这些方中的每一个交互。在一个实施例中,可以执行对正确性证明的电路存储的评估,以解锁由交易的锁定脚本锁定(encumber)的数字资产。
在一个实施例中,证明π被广播到区块链网络,并且验证者220被用于验证证明。在一个实施例中,验证者220是任何合适的计算实体,例如,区块链上的节点。还应注意的是,在某些情况下,生成评估密钥EK和验证密钥VK的同一计算实体也验证该证明。在一个实施例中,区块链的节点可以使用验证密钥VK和证明π来验证支付交易,从而在验证成功的情况下验证合约。该协议的一个要求是,即使工作者知道验证密钥VK,也不能提供不正确的证明。因此,在该协议中,公共参考串(CRS)由客户端或至少公布了评估密钥EK和验证密钥VK的可信第三方产生。在一个实施例中,任何计算实体都可以使用公布的验证密钥VK来验证计算。
通过使用本文描述的技术,客户端能够部分混淆交易数据,例如,区块链交易的接收者的身份。在一个实施例中,解锁脚本不公开接收者的地址和接收者的公钥。然而,在一些情况下,交易的价值(例如,转移的数字资产的数量)对于区块链网络的节点可能是可见的。在一个实施例中,客户端利用上文和下文描述的加密技术将锁定脚本转换成二次算术程序,工作者利用这些加密技术解决算术程序,以生成证明。
一般来说,客户端能够使用标准交易(例如,基于比特币的区块链网络中定义的标准交易),例如,P2PK和P2PKH,向交易对方或工作者付款。例如,在一个实施例中,客户端将P2PK锁定脚本转换成运算电路并广播支付交易,该支付交易包括从该电路导出的难题。交易对方或工作者接收该电路,提供恰当的输入(例如,证明工作者身份的信息(例如,在客户端和工作者之间共享的秘密或使用工作者的私钥生成的数字签名)),并运行电路,以生成正确性证明π。在一个实施例中,证明被用于解锁数字资产,此外,可能的情况是,识别交易对方或工作者的信息(例如,与交易对方或工作者相关联的公钥和/或数字签名)没有以清晰的格式记录到区块链。
在一个实施例中,根据上文和/或下文描述的技术生成验证密钥和相应的证明。因此,给验证者提供验证密钥VK和证明π:
Figure BDA0002484876080000161
Figure BDA0002484876080000171
使得验证者计算多个椭圆曲线乘法(例如,对每个公共输入变量使用一个椭圆曲线乘法)和五对检验,其中一对检验包括附加的配对乘法。
给定验证密钥VK、证明π和(a1,a2,…,aN),以验证t(x)除以p(x),由此(xN+1,…,xm)=f(x0,…,xN),验证者进行如下操作。首先,检验全部的三个α项目:
Figure BDA0002484876080000172
Figure BDA0002484876080000173
Figure BDA0002484876080000174
其中,
Figure BDA0002484876080000175
并且
Figure BDA0002484876080000176
Figure BDA0002484876080000177
然后,验证者检验项目β:
Figure BDA0002484876080000178
并且
Figure BDA0002484876080000179
最后,验证者检验整除性要求:
Figure BDA0002484876080000181
其中,
Figure BDA0002484876080000182
Figure BDA0002484876080000183
并且
Figure BDA0002484876080000184
因此,根据实施例,在考虑来自上述部分的符号和本申请描述的示例后,验证包括以下元素的一组对检验:
Figure BDA0002484876080000185
Figure BDA0002484876080000186
Figure BDA0002484876080000187
Figure BDA0002484876080000188
Figure BDA0002484876080000189
图3示出了用于协调可验证计算的执行的示图300。客户端302、工作者304和验证者306可以是区块链网络的节点。客户端302可以是可包括可执行代码的任何合适的计算机系统,该可执行代码如果由计算机系统的一个或多个处理器执行,则使得计算机系统接收智能合约308。在一个实施例中,智能合约308是用高级编程语言编码的源代码,例如,C、C++或Java。在一个实施例中,诸如编译器、解释器和/或汇编器之类的软件可以被用来将智能合约308转换成运算电路310,该运算电路310由携带来自域
Figure BDA00024848760800001810
的值并连接到加法和乘法门的“导线”组成。应当注意的是,运算电路是指可以由包括一系列物理门的物理电路实现的逻辑电路(例如,使用晶体管-晶体管逻辑(TTL)集成电路(例如,7400系列门、触发器、缓冲器、解码器、多路复用器等)),这一系列物理门通过物理导线连接。
在一个实施例中,客户端302向工作者304提供运算电路310和电路的输入312。电路310可用于生成二次程序Q,该二次程序Q包括一组提供原始电路完整描述的多项式。在任一情况下,工作者304可以在输入312上执行电路
Figure BDA0002484876080000199
或二次程序Q,以生成一个或多个输出314。在一些实施例中,期望工作者(即,证明者)获得有效抄本
Figure BDA0002484876080000191
作为输出,该抄本是对电路导线的赋值,使得赋值给输入导线的值是x,中间值对应于
Figure BDA0002484876080000192
中的每个门的正确操作,赋值给输出导线的值是
Figure BDA00024848760800001910
如果所要求的输出是不正确的(即,
Figure BDA0002484876080000193
),则不存在
Figure BDA0002484876080000194
的有效抄本。在一个实施例中,期望工作者提供电路导线的值的子集,其中,所选择的电路导线的值的子集对于工作者来说不是提前已知的。
在实施例中,输出
Figure BDA00024848760800001911
内部电路导线(或其子集)的值和评估密钥EK用于产生正确性证明316。该证明π可以存储在区块链上并由多方验证,而无需工作者304单独与多方交互。以这种方式,验证者306可以使用公共验证密钥VK和证明π来验证支付交易,从而验证合约。在一些情况下,如果验证失败,则客户端302可以收回支付交易锁定(encumber)的数字资产。在一些情况下,验证者306和客户端302是相同的计算机系统。
图4示出了本申请的实施例的示图400。具体地,图4描绘了以各种格式编码的椭圆曲线402上的点,其中这些格式适用于基于区块链的脚本,例如,基于比特币的锁定和解锁脚本。
在各种实施例中,椭圆曲线点可以在与交易相关联地执行的锁定和解锁脚本中编码。在基于比特币的系统中,可以用基于堆栈的脚本语言编写这些脚本。例如,验证密钥VK可以包括
Figure BDA0002484876080000195
证明π可以包括一组元素{π1,..,π8},其中,
Figure BDA0002484876080000196
和πj是有限域
Figure BDA0002484876080000197
Figure BDA0002484876080000198
上的椭圆曲线上的点。图4示出了示例图400,其中,椭圆曲线402上的点使用压缩(PC)或未压缩(PU)编码来表示,该编码适用于与例如锁定或解锁脚本等区块链脚本一起使用。
在一个实施例中,假设
Figure BDA0002484876080000201
是椭圆曲线上的点。如果
Figure BDA0002484876080000202
则该点由其仿射坐标表示。在未压缩编码404中,点P由指示未压缩编码的信息(例如,前缀406(例如,下文描述的参数‘C’))和两个域元素(x和y坐标408和410)来表示,而在压缩编码中,该点仅由其x坐标和唯一标识y坐标的附加位来表示。因此,在一个实施例中,PU=C||X||Y,其中:
C=0x04
X=FieldElements2OctetString(x)
Y=FieldElements2OctetString(y)
其中,双管运算符“||”是指串联操作,FieldElements2OctetString()函数可用于将域(例如,有限域)的元素转换为正好包含八位的八位位组串。关于压缩编码,PC=C||X,其中:
Figure BDA0002484876080000203
X=FieldElements2OctetString(x)
在一个实施例中,未压缩编码404包括有限域(即
Figure BDA0002484876080000204
)的点P,例如,椭圆曲线上的点的x坐标408和y坐标410。未压缩编码404还包括可用于确定编码是未压缩编码的信息(例如,在x坐标408和y坐标410前加/后加的前缀406值)。相反,压缩编码412包括有限域的点P的编码(例如,如上所述),以及可用于确定编码是压缩编码的信息。例如,压缩编码412A编码前缀414和点P的x坐标408,其中,至少部分地基于前缀414来确定相应的y坐标。例如,前缀414表示y坐标是偶数。相反,第二压缩编码412B编码不同的前缀416和点P的x坐标408,并用于确定奇数的y坐标。
应当注意的是,一般来说,未压缩点PU可以以任何合适的格式表示,该格式可以编码用于确定PU是未压缩椭圆曲线点的信息、该点的x坐标和该点的y坐标。类似地,压缩点PC可以以任何合适的格式表示,该格式可以编码用于确定PC是压缩椭圆曲线点的信息和用于确定该点的x坐标和y坐标的压缩信息。
作为一个示例,考虑在基于比特币的系统中secp256k1椭圆曲线的点的表示。在表示未压缩点的实施例中,未压缩椭圆曲线P的编码位串中的第一个八位字节是0x04,其后是对应于点的X坐标和点的Y坐标的两个256位数字(即P=C||X||Y)。作为一个示例,尽管在本申请的范围内还考虑了其他合适的编码格式,例如,基本编码规则(BER)和规范编码规则(CER),但是使用了可辨别编码规则(DER)编码格式。
在一个实施例中,包括椭圆曲线点的长度的单字节脚本操作码连接到实际点(例如,将该长度连接到实际点的前面)。例如,如果:
x=0xe3b01684a8a8b66f8e44203db5869b4dcb74a0afc905ae9197ed74a8d6cecdcc
y=0x6424d186a23687532c8b20911defc2f42c93749b3736857912c6abe2dc3f01d1
则在一个实施例中,压缩和未压缩脚本PC和PU分别是:
脚本:PC:0x21||0x03e3b01684a8a8b66f8e44203db5869b4dcb74a0afc905ae9197ed74a8d6cecdcc脚本:PU:0x41||
0x04e3b01684a8a8b66f8e44203db5869b4dcb74a0afc905ae9197ed74a8d6cecdcc6424d1 86a23687532c8b20911defc2f42c93749b3736857912c6abe2dc3f01d1
在一个实施例中,客户端是智能合约的一方,并且确定利用区块链来执行合约。作为确定的一部分,客户端向区块链发布支付转移,以将客户端控制的数字资产转移到公布证明π的一方(例如,工作者)。如上所述的验证者计算机系统可以执行验证程序,来确定证明π是正确的。
根据协议,客户端可以为产生和生成证明π而生成公共参考串。在一些实施例中,公共参考串由可信方(例如,第三方)生成。应当注意的是,虽然可信第三方可以生成公共参考串,但是将可信第三方引入协议是可选的-该协议需要客户端和工作者,并且可以在没有额外的第三方的情况下执行。
继续该协议,计算的验证作为交易验证阶段的一部分进行。在一个实施例中,例如,基于比特币的网络、客户端或工作者被限制为提供
Figure BDA0002484876080000221
作为锁定脚本和/或解锁脚本的一部分。可以通过多种方式实现这种约束。例如,在一个实施例中,工作者通过注入串行化解锁交易来提供验证密钥VK,该串行化解锁交易在其一个解锁脚本中包含有
Figure BDA0002484876080000222
作为第二示例,客户端广播交易,其中,锁定脚本包括
Figure BDA0002484876080000223
和在验证阶段使用的方程式,并创建由包含验证密钥VK的SIGHASH_NONE|SIGHASH_ANYONECANPAY签名的交易输入。客户端将该输入传递给需要添加{π1,..,π8}、签名和广播的工作者。作为又一示例,工作者通过使用固定长度的脚本散列(例如,20字节的脚本散列)来提供验证密钥VK,该固定长度的脚本散列在为执行付费的交易的锁定脚本中。当然,这些仅仅是如何提供
Figure BDA0002484876080000224
作为锁定脚本、解锁脚本或任何其他合适的脚本或操作的一部分的说明性示例,根据任何合适的区块链协议来执行这些脚本或操作作为交易验证的一部分。在一个实施例中,工作者提供{π1,..,π8}作为解锁脚本的一部分,并且如果证明π满足输出脚本中设置的条件,则授权证明π。
在一个实施例中,基于区块链的系统(如基于比特币的系统)支持根据Script等脚本语言(例如,基于比特币的系统支持Script)执行操作(也称为操作码和命令)。在一个实施例中,交易包括锁定(输出)和解锁(输入)脚本,并且可以被识别为标准类型列表中的一个。例如,在基于比特币的系统中,有五种标准类型:支付给公钥(P2PK)、支付给公钥散列(P2PKH)、多重签名、支付给脚本散列(P2SH)和OP_RETURN。
在运行本文描述的提议zk协议时,诸如公共参考串、证明π和/或其部分等信息存储在区块链上。此外,作为验证过程的一部分,也可以是系统在交易验证过程中提取在堆栈上推送的特定元素并如上所述从验证阶段检查配对的情况。
交易可包括嵌入到其输入和输出中的称为脚本的小程序,这些小程序指定了如何以及由谁来访问交易的输出。在比特币平台上,使用基于堆栈的脚本语言编写这些脚本。在一个实施例中,协议包括对交易的各种技术规则和基于语法的限制,这些规则和限制确定交易是标准交易还是非标准交易。在一个实施例中,对在执行堆栈上推送的元素的大小和输入脚本的总大小有限制。例如,在基于比特币的系统中,在执行堆栈上推送的每个元素被限制为520字节,每个输入脚本被限制为1650字节。在一个实施例中,在脚本执行之后,堆栈恰好包括一个非假元素。输入脚本不能包含除OP_PUSHDATA之外的任何OP代码(赎回脚本部分除外)。在一个实施例中,尽管应当注意,不同的区块链系统可能将待包含的不同数量和/或单位的数字资产定义为输出值(例如,对交易的挖矿节点的最小支付),但是基于比特币的系统要求最小输出值为546中本聪。在一个实施例中,最小输出值为零(即,不需要转移数字资产)。偏离这些规则的交易被认为是非标准的。
作为验证阶段的一部分,验证者(例如,客户端)提取验证密钥VK和证明π的元素,并在配对检验中使用。在一个实施例中,验证检验包括满足一组约束的双线性映射。作为一个示例,考虑满足形式
Figure BDA0002484876080000231
Figure BDA0002484876080000232
的约束的双线性映射e(x,y)=2xy,如下所示:
e(3,4+5)=23*9=227
e(3,4)*e(3,5)=23*423*5=212215=227
应当注意的是,上述这种配对是出于说明的目的,尽管对于在加密系统中的应用来说,这种逐字映射可能不是很有用,但是应当注意的是,验证双线性约束的过程是相同的,其中,双线性映射在椭圆曲线上扩展。同样,出于说明的目的,下面示出了一个示例,说明如何使用比特币脚本在验证阶段从公共参考串(例如,验证密钥VK)和证明π中提取和使用信息:
Figure BDA0002484876080000241
应当注意的是,上面提供的示例仅仅用于说明配对检验的示例,并且可以包括附加约束,例如,上面结合图2讨论的那些约束。
有多种技术可以提供验证密钥VK用于验证证明π。图5是说明性示图500,其中,客户端510提供验证密钥VK,用于验证证明π。在一个实施例中,客户端创建交易输出502,其中,该交易包括输出值504(例如,向执行合约的工作者支付的数字资产)和锁定脚本508,或与输出值504和锁定脚本508相关联,该锁定脚本508执行包括满足一组约束的双线性映射的验证检验。在一个实施例中,锁定脚本至少部分基于客户端的数字签名来验证验证密钥VK的完整性。在某些情况下,锁定脚本可以规定,如果验证失败,则客户端能够收回该交易相关的上述数字资产。这种交易可以发送到要被区块链网路上的节点(如工作者)挖矿的区块链网络。在一些区块链系统中,交易在与锁定脚本相关联的情况下编码指示锁定脚本的大小(例如,以字节为单位)的参数,该参数可以称为锁定脚本大小506,如结合图5所示。
作为一个示例,可以基于以下内容来描述锁定脚本:
Figure BDA0002484876080000242
Figure BDA0002484876080000251
应当注意的是,上面提供的示例是对锁定脚本的描述,而不一定是对锁定脚本508本身的逐字描述。例如,上面在括号中描述的一些域(例如,“<PubKey Client>”,其可以指客户端的公钥)没有逐字地包含在锁定脚本508中。类似地,括号中的一些域是以数学计算为基础,例如,如上所述,“OP_(i+1)”可能不逐字地包含在锁定脚本中,而是指至少部分地基于数学计算而确定的操作码或命令,在这种情况下,“i”是指证明π的元素的数量,因此,在π={π1,..,π8}的示例中,“OP_(i+1)”可以在锁定脚本中以基于堆栈的脚本语言表示为“OP_7”。还应当注意的是,在上面的双斜线“//”后面的文本是指与可执行代码不对应的注释。例如,“//验证配对”并不映射到可执行代码,而只是向人们表明,在注释之后的文本是用来执行配对的验证。
应当再次注意的是,如上所述的交易输出502仅仅是说明性的,并且可以存在这样的变化即交易可以包括采用任何合适的衡量单位的任何合适的支付量,并且可以存在各种锁定脚本,例如,如上所述利用锁定脚本的一些或全部功能的锁定脚本。一般来说,锁定脚本508可以是执行一组配对检验的任何合适的一组命令。在一个实施例中,锁定脚本508包括使用与客户端相关联的至少一个非对称公钥对验证密钥VK进行完整性检验。在一个实施例中,如果验证失败,则锁定脚本允许客户端收回数字资产。在一个实施例中,锁定脚本508包括在阈值持续时间之后将交易标记为无效的指令(例如,对应于“<n days>”的值,如上所述)。
客户端510可以是本申请中其他地方描述的那些客户端,其可以创建引用上述交易502的交易输入512,并将其传输给交易对方(例如,意图计算有效证明π的工作者)。在一个实施例中,交易输入512可以编码与交易输出502相关联的标识符514、与交易输出502相关联的交易输出索引516(例如,在一些情况下,该索引是基于零的)、解锁脚本520、指示解锁脚本大小(例如,以字节为单位)的参数(其可以称为解锁脚本大小518)、序列号522及其任何合适的组合。例如,在一些实施例中,解锁脚本大小没有在交易输入512中被明确编码,而是可以导出的(例如,通过检测指示解锁脚本结束的特定终止序列)。在一个实施例中,解锁脚本518包括验证密钥VK524和与客户端相关联的数字签名526。在一些情况下,解锁脚本518包括附加信息,例如,控制验证过程执行的分支信息的指示。
作为一个示例,可以基于以下内容来描述解锁脚本:
Figure BDA0002484876080000271
应当注意的是,上面提供的示例是对解锁脚本的描述,而不一定是对解锁脚本本身的逐字描述。例如,上面括号中描述的一些域没有逐字包含在解锁脚本518中。回到上面描述解锁脚本的示例,解锁脚本518可以包括验证密钥VK524的有序或无序元素序列、与客户端相关联的数字签名526和分支信息。在一个实施例中,数字签名526包括散列类型标志。在一个实施例中,根据基于比特币的系统,散列标志是SIGHASH_NONE|SIGHASH_ANYONECANPAY。解锁脚本518可以包括执行控制信息,该执行控制信息可与锁定脚本结合使用来验证交易。例如,在上述示例中,“1”表示脚本应该进入解锁脚本中的控制语句的第一分支(例如,OP_IF分支,而不是OP_ELSE分支)。
在一个实施例中,工作者528计算证明π530,并且将该证明与和工作者相关联的数字签名532附加到解锁脚本518,并且广播该交易(例如,向客户端和/或区块链网络的一个或多个节点广播)。
作为一个示例,可以基于以下内容来描述具有证明和工作者数字签名的解锁脚本:
Figure BDA0002484876080000272
因此,在一个实施例中,根据以上描述的解锁脚本能够满足锁定脚本设置在输出上的条件,并且可以允许花费数字资产(例如,如输出值所示)。
有多种技术可以提供验证密钥VK,用于验证证明π。图6是说明性示图600,其中,工作者提供验证密钥VK,用于验证证明π。交易输出602可根据基于比特币的系统,并且可包括输出值604、锁定脚本606(可选地,在一些系统中)和锁定脚本608。在一个实施例中,该交易是根据基于比特币的系统的支付给脚本散列(P2SH)交易。在一个实施例中,交易输出612根据基于比特币的系统,并且包括交易ID、输出索引616、解锁脚本大小618、解锁脚本618和序列号622,如上面结合图5所述。应当注意的是,虽然图6中描述的交易的结构可以依照图5中描述的结构,但是图6可特别包括根据P2SH交易的锁定脚本608和解锁脚本618。客户端610可以生成验证密钥VK和赎回脚本628,并将其提供给工作者624。
在一个实施例中,区块链系统支持各种类型的交易。在一个实施例中,所支持的交易(例如,标准交易)是基于脚本散列的交易,例如,根据基于比特币的系统的支付给脚本散列(P2SH)交易。一般来说,基于脚本散列的交易是指其中验证解锁脚本的有效性包括提供与指定的散列值匹配的脚本的任何交易。例如,在基于比特币的P2SH交易中,解锁脚本620包括赎回脚本628,锁定脚本608包括至少一个条件,即由解锁脚本提供的赎回脚本的散列与指定值匹配。例如,在基于比特币的系统中,可以基于以下内容来描述锁定脚本:
OP_HASH160<20-byte hash of redeem script>OP_EQUAL
在一些情况下,工作者624提供验证密钥VK626,用于验证阶段。在一个实施例中,检验验证阶段的解锁条件可以存储在赎回脚本中。在一个实施例中,P2SH交易的锁定脚本包括赎回脚本的散列,并且在一些情况下,赎回脚本是保密的(例如,由工作者加密),并且仅在指示进行转移输出值时才被披露。
在一个实施例中,客户端610通过识别赎回脚本来创建P2SH未花费交易输出,并对其应用散列(例如,HASH160)。为了转移UTXO,客户端创建包括和/或引用赎回脚本的输入脚本(其引用UTXO)。应当注意的是,在一个实施例中,尽管基于区块链的系统可能对可包括在赎回脚本中的数据的类型或数量有限制,但赎回脚本是适于存储任意数据的。例如,在基于比特币的系统中,对于可以发布到堆栈上的数据的大小有限制(例如,PUSHDATA操作被限制为520字节的数据)。在一个实施例中,赎回脚本分别包括压缩和未压缩的点PC和PU,如结合图4所述。因此,在一个实施例中,根据基于比特币的协议,可存储在赎回脚本中的椭圆曲线点的最大数量是15个压缩点(例如,15个点*34字节/点=510字节)或7个未压缩点(例如,7个点*66字节/点=462字节)。在一个实施例中,解锁脚本618包括可以一起用于满足锁定脚本608中被编码的一组条件的证明630、赎回脚本628和命令(例如,操作码)。
图7是根据实施例的用于生成赎回脚本的流程700的示意图。在一个实施例中,使用硬件、软件或其组合来实现流程700。执行该流程的合适系统包括工作者,该工作者提供与图6的讨论相关的P2SH解锁脚本。
在一个实施例中,系统确定验证密钥VK具有足够的基数。在一个实施例中,系统确定赎回脚本的大小(702),该赎回脚本包括验证密钥的每个元素和检验一组约束的脚本,其中,赎回脚本和证明π足以解锁相应的锁定脚本。系统可以确定赎回脚本的大小是否超过预定阈值(704),该阈值可以基于区块链协议施加的大小限值,例如,区块链协议可以要求赎回脚本的大小小于或等于520字节。如果赎回脚本具有足够的大小,则系统生成赎回脚本和解锁脚本(706),其中,赎回脚本包括验证密钥和检验一组约束的脚本,解锁脚本包括证明π,其中,赎回脚本和解锁脚本一起包括足以验证支付交易的一组命令。
例如,在验证密钥VK的基数小于16的情况下,可能是:
Figure BDA0002484876080000301
其中,赎回脚本和解锁脚本足以解锁锁定脚本。
如果赎回脚本超过预定阈值,则系统生成解锁脚本,该解锁脚本将验证密钥VK的一个或多个元素存储在赎回脚本之前的解锁脚本的部分中(708),使得赎回脚本的总大小在阈值内,并且利用上述验证密钥的元素和约束生成赎回脚本(710)。在一个实施例中,可以在解锁脚本中的其他地方对验证密钥VK的一个或多个元素进行编码。例如,在VK的基数大于15的情况下,可能是:
Figure BDA0002484876080000302
Figure BDA0002484876080000311
其中,赎回脚本和解锁脚本足以解锁锁定脚本。
因此,通过在锁定脚本中编码验证阶段所需的阶段,交易的验证应该成为具有zk协议的验证阶段的等效过程。在一个实施例中,可以如下使用OP_VERIFYPROOF操作码:
Figure BDA0002484876080000312
解锁和锁定脚本可以以任何合适的方式来实现。解锁脚本以任何合适的方式来实现,其中,解锁脚本编码<π1>..<π8>和验证密钥VK。类似地,锁定脚本可以以任何合适的方式来实现,其中πi
Figure BDA0002484876080000313
被提取并配对调用被执行。在一个实施例中,如上所述的OP_PAIRING是支持具有高效双线性映射的椭圆曲线的操作码,例如,该曲线可以是由等式y2=x3+3定义的bn128曲线。
图8是可用于实践本申请至少一个实施例的计算设备800的说明性简化框图。在各种实施例中,计算设备800可以用于实现上面示出和描述的任何系统。例如,计算设备800可以用于用作数据服务器、网页服务器、便携式计算设备、个人计算机或任何电子计算设备。如图8所示,计算设备800可以包括一个或多个处理器802,在一些实施例中,处理器802经由总线子系统804与多个外围子系统通信并可操作地耦合。在一些实施例中,这些外围子系统包括存储子系统806、一个或多个用户接口输入设备812、一个或多个用户接口输出设备814和网络接口子系统816,其中存储子系统806包括存储器子系统808和文件/磁盘存储子系统810。这种存储子系统806可以用于临时或长期存储信息。
在一些实施例中,总线子系统804提供用于使计算设备800的各种组件和子系统能够如预期的那样彼此通信的机制。尽管总线子系统804被示意性地示为单个总线,但是总线子系统的替代实施例可以利用多个总线。在一些实施例中,网络接口子系统816给其他计算设备和网络提供接口。在一些实施例中,网络接口子系统816用作从其他系统接收数据且从计算设备800向其他系统发送数据的接口。在一些实施例中,总线子系统804用于传送诸如细节、搜索词等数据。
在一些实施例中,用户接口输入设备812包括一个或多个用户输入设备,例如,键盘;指向设备,例如,集成鼠标、跟踪球、触摸面板或图形输入板;扫描仪;条形码扫描仪;包含到显示器中的触摸屏;音频输入设备,例如,语音识别系统、麦克风;以及其他类型的输入设备。通常,术语“输入设备”的使用旨在包括用于向计算设备800输入信息的所有可能类型的设备和机构。在一些实施例中,一个或多个用户接口输出设备814包括显示子系统、打印机或非视觉显示器,例如,音频输出设备等。在一些实施例中,显示子系统包括阴极射线管(CRT)、平板设备(例如,液晶显示器(LCD)、发光二极管(LED)显示器或投影显示器或其他显示设备。通常,术语“输出设备”的使用旨在包括用于从计算设备800输出信息的所有可能类型的设备和机构。一个或多个用户接口输出设备814可以用于例如呈现用户界面,以便于当交互适当时用户与执行所描述的流程和其变形的应用程序进行交互。
在一些实施例中,存储子系统806提供计算机可读存储介质,用于存储提供本申请至少一个实施例的功能的基本编程和数据结构。在一些实施例中,当由一个或多个处理器执行应用程序时,该应用程序(程序、代码模块、指令)提供本申请一个或多个实施例的功能,并且在实施例中,应用程序存储在存储子系统806中。这些应用模块或指令可以由一个或多个处理器802执行。在各种实施例中,存储子系统806另外提供用于存储根据本申请使用的数据的储存库。在一些实施例中,存储子系统806包括存储器子系统808和文件/磁盘存储子系统810。
在一些实施例中,存储器子系统808包括多个存储器,例如,用于在程序执行期间存储指令和数据的主随机存取存储器(RAM)818和/或其中可以存储固定指令的只读存储器(ROM)820。在一些实施例中,文件/磁盘存储子系统810为程序和数据文件提供非暂时性持久(非易失性)存储,并且可以包括硬盘驱动器、软盘驱动器以及相关联的可移动介质、光盘只读存储器(CD-ROM)驱动器、光学驱动器、可移动介质盒或其他类似的存储介质。
在一些实施例中,计算设备800包括至少一个本地时钟824。在一些实施例中,本地时钟824是表示从特定开始日期起经过的滴答数量的计数器,并且在一些实施例中,本地时钟824整体位于计算设备800内。在各种实施例中,本地时钟824用于以特定的时钟脉冲同步计算设备800及其包括的子系统的处理器中的数据传输,并且可以用于协调计算设备800和数据中心中的其他系统之间的同步操作。在另一实施例中,本地时钟是可编程间隔定时器。
计算设备800可以是多种类型中的任何一种,包括便携式计算机设备、平板电脑、工作站或下面描述的任何其他设备。另外,计算设备800可以包括另一设备,在一些实施例中,该另一设备可以通过一个或多个端口(例如,USB、耳机插孔、闪电连接器等)连接到计算设备800。在一些实施例中,这种设备包括接受光纤连接器的端口。因此,在一些实施例中,该设备将光信号转换成电信号,并通过将该设备连接到计算设备800的端口传输这些电信号,以进行处理。由于计算机和网络的不断变化的性质,图8中描绘的计算设备800的描述仅旨在作为说明该设备的优选实施例的特定示例。具有比图8中描绘的系统更多或更少组件的许多其他配置是可能的。
应当注意,上述实施例说明而不是限制本发明,并且本领域技术人员将能够在不脱离由所附权利要求限定的本发明的范围的情况下设计许多替代实施例。在权利要求中,括号中的任何附图标记不应被解释为对权利要求的限制。词语“包括(comprising)”和“包括(comprises)”等不排除任何权利要求或说明书整体列出的元件或步骤之外的其他元件或步骤的存在。在本说明书中,“包括(comprises)”是指“包括(includes)或者由……组成(consists of)”,而“包括(comprising)”是指“包括(including)或者由……组成(consisting of)”。元件的单数引用不排除这些元件的复数引用,反之亦然。本发明可以通过包括几个不同元件的硬件以及通过适当编程的计算机来实现。在列举了若干装置的设备权利要求中,这些装置中的几个可以由同一个硬件来实现。在相互不同的从属权利要求中引用某些措施这一事实并不表示这些措施的组合不能有利地使用。
本文引用的所有参考文献(包括出版物、专利申请和专利)通过引用并入本文,如同单独地和具体地指示每个参考文献通过引用并入本文,并且在本文中完整地阐述每个参考文献。

Claims (15)

1.一种计算机实现的方法,包括:
生成交易的交易输出,所述交易输出包括数字资产的指示和锁定脚本,所述锁定脚本对用于转移对数字资产的控制的一组条件进行编码,至少部分地基于验证密钥和证明来确定这组条件的满足;
生成所述交易的交易输入,所述交易输入包括:
与所述交易输出相关联的标识符;以及
包含所述证明的解锁脚本;以及
至少部分地基于所述锁定脚本和所述解锁脚本来验证这组条件的满足;以及
响应于验证这组条件的满足,转移对数字资产的控制。
2.根据权利要求1所述的计算机实现的方法,其中,所述验证密钥包括第一多个有限域元素,并且所述证明包括第二多个有限域元素。
3.根据权利要求2所述的计算机实现的方法,其中,所述有限域元素是椭圆曲线上的点。
4.根据权利要求2至3中任一项所述的计算机实现的方法,其中,所述有限域元素以压缩格式编码。
5.根据任一前述权利要求所述的计算机实现的方法,其中,客户端利用所述验证密钥和与所述客户端相关联的第一数字证书对所述交易输入进行编码,并且工作者利用所述证明和与所述工作者相关联的第二数字证书对所述交易输入进行编码。
6.根据任一前述权利要求所述的计算机实现的方法,其中,所述锁定脚本包括指令,所述指令在所述解锁脚本未满足这组条件的情况下,为所述数字资产的提供者收回所述数字资产。
7.根据任一前述权利要求所述的计算机实现的方法,其中:
所述解锁脚本还包括赎回脚本,其中,所述验证密钥和所述赎回脚本需满足这组条件;并且
所述锁定脚本对这组条件的一个条件进行编码,所述条件为所述赎回脚本的散列与预定值匹配。
8.根据权利要求7所述的计算机实现的方法,其中,所述赎回脚本的大小为小于或等于520字节。
9.根据权利要求7至8中任一项所述的计算机实现的方法,其中,所述解锁脚本包括所述验证密钥的一个或多个元素。
10.根据权利要求7至9中任一项所述的计算机实现的方法,其中,所述交易是根据基于比特币的协议的P2SH交易。
11.根据任一前述权利要求所述的计算机实现的方法,其中,所述交易是根据基于区块链的协议的标准交易。
12.根据任一前述权利要求所述的计算机实现的方法,其中,所述锁定脚本和所述解锁脚本以基于堆栈的脚本语言编码。
13.根据任一前述权利要求所述的计算机实现的方法,其中,这组条件包括双线性约束。
14.一种系统,包括:
处理器;以及
包括可执行指令的存储器,所述可执行指令由处理器执行使得所述系统执行根据任一前述权利要求所述的计算机实现的方法。
15.一种非暂时性计算机可读存储介质,其上存储有可执行指令,所述可执行指令由计算机系统的处理器执行使得所述计算机系统至少执行根据权利要求1至13中任一项所述的计算机实现的方法。
CN201880072801.5A 2017-11-09 2018-10-29 用于保护验证密钥不被更改并验证正确性证明的有效性的系统 Pending CN111316595A (zh)

Applications Claiming Priority (13)

Application Number Priority Date Filing Date Title
GB1718505.9 2017-11-09
GBGB1718505.9A GB201718505D0 (en) 2017-11-09 2017-11-09 Computer-implemented system and method
GBGB1719998.5A GB201719998D0 (en) 2017-11-30 2017-11-30 Computer-Implemented system and method
GB1719998.5 2017-11-30
GBGB1720768.9A GB201720768D0 (en) 2017-12-13 2017-12-13 Computer-implemented system and method
GB1720768.9 2017-12-13
GBGB1801753.3A GB201801753D0 (en) 2018-02-02 2018-02-02 Computer-implemented system and method
GB1801753.3 2018-02-02
GBGB1805948.5A GB201805948D0 (en) 2018-04-10 2018-04-10 Computer-implemented system and method
GB1805948.5 2018-04-10
GBGB1806444.4A GB201806444D0 (en) 2018-04-20 2018-04-20 Computer-implemented system and method
GB1806444.4 2018-04-20
PCT/IB2018/058433 WO2019092543A1 (en) 2017-11-09 2018-10-29 System for securing verification key from alteration and verifying validity of a proof of correctness

Publications (1)

Publication Number Publication Date
CN111316595A true CN111316595A (zh) 2020-06-19

Family

ID=64100702

Family Applications (6)

Application Number Title Priority Date Filing Date
CN202311496467.5A Pending CN117640170A (zh) 2017-11-09 2018-10-29 用于简化可执行指令以优化可验证计算的系统
CN201880073019.5A Pending CN111345005A (zh) 2017-11-09 2018-10-29 在区块链上记录验证密钥的系统
CN201880072678.7A Active CN111345004B (zh) 2017-11-09 2018-10-29 用于简化可执行指令以优化可验证计算的系统
CN201880072801.5A Pending CN111316595A (zh) 2017-11-09 2018-10-29 用于保护验证密钥不被更改并验证正确性证明的有效性的系统
CN201880072692.7A Pending CN111406379A (zh) 2017-11-09 2018-10-29 用于可证实计算的类似c的智能合约的算术增强
CN201880072729.6A Pending CN111316594A (zh) 2017-11-09 2018-11-01 分布式计算系统和方法

Family Applications Before (3)

Application Number Title Priority Date Filing Date
CN202311496467.5A Pending CN117640170A (zh) 2017-11-09 2018-10-29 用于简化可执行指令以优化可验证计算的系统
CN201880073019.5A Pending CN111345005A (zh) 2017-11-09 2018-10-29 在区块链上记录验证密钥的系统
CN201880072678.7A Active CN111345004B (zh) 2017-11-09 2018-10-29 用于简化可执行指令以优化可验证计算的系统

Family Applications After (2)

Application Number Title Priority Date Filing Date
CN201880072692.7A Pending CN111406379A (zh) 2017-11-09 2018-10-29 用于可证实计算的类似c的智能合约的算术增强
CN201880072729.6A Pending CN111316594A (zh) 2017-11-09 2018-11-01 分布式计算系统和方法

Country Status (9)

Country Link
US (8) US20210377041A1 (zh)
EP (7) EP3707855A1 (zh)
JP (10) JP7208989B2 (zh)
KR (5) KR20200080265A (zh)
CN (6) CN117640170A (zh)
SG (5) SG11202004149UA (zh)
TW (1) TWI806918B (zh)
WO (5) WO2019092542A1 (zh)
ZA (1) ZA202002575B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111768187A (zh) * 2020-08-31 2020-10-13 支付宝(杭州)信息技术有限公司 一种部署智能合约的方法、区块链节点和存储介质
CN112132576A (zh) * 2020-09-07 2020-12-25 陈建芸 基于区块链通信的支付信息处理方法及区块链信息平台
CN113469690A (zh) * 2021-07-23 2021-10-01 永旗(北京)科技有限公司 一种基于区块链的交易结算方法
CN114978514A (zh) * 2022-07-27 2022-08-30 杭州友恭科技有限公司 密钥管理方法、系统、装置、电子装置和存储介质
US20220337437A1 (en) * 2019-09-12 2022-10-20 nChain Holdings Limited Blockchain transactions including portions of code in different languages for complex validation

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11783679B2 (en) 2014-04-08 2023-10-10 Micro-Gaming Ventures, LLC Location-based wagering via remote devices
US10903997B2 (en) * 2017-10-19 2021-01-26 Autnhive Corporation Generating keys using controlled corruption in computer networks
EP3707855A1 (en) 2017-11-09 2020-09-16 Nchain Holdings Limited System for securing verification key from alteration and verifying validity of a proof of correctness
CN110032568B (zh) * 2018-12-20 2020-05-12 阿里巴巴集团控股有限公司 数据结构的读取及更新方法、装置、电子设备
WO2020197514A1 (en) * 2019-03-27 2020-10-01 Koc Universitesi A distributed hash table based blockchain architecture for resource constrained environments
US11516000B2 (en) * 2019-05-29 2022-11-29 International Business Machines Corporation Approximate hash verification of unused blockchain output
US11711202B2 (en) 2019-05-29 2023-07-25 International Business Machines Corporation Committing data to blockchain based on approximate hash verification
US11539527B2 (en) 2019-05-29 2022-12-27 International Business Machines Corporation Peer node recovery via approximate hash verification
US11429738B2 (en) 2019-05-29 2022-08-30 International Business Machines Corporation Blockchain endorsement with approximate hash verification
US11570002B2 (en) 2019-05-29 2023-01-31 International Business Machines Corporation Reduced-step blockchain verification of media file
EP3754899B1 (en) * 2019-06-20 2022-03-02 Telefónica Iot & Big Data Tech, S.A. Method and system for inter-dlt networks trust enhancement
CN110445755A (zh) * 2019-07-04 2019-11-12 杭州复杂美科技有限公司 交易攻击的防御方法、设备和存储介质
JP7284064B2 (ja) * 2019-10-16 2023-05-30 株式会社日立製作所 コンソーシアムブロックチェーンシステム、計算機、トランザクション承認方法
CN111143859A (zh) * 2020-01-07 2020-05-12 杭州宇链科技有限公司 一种采集可信数据的模组以及数据传输方法
US11792022B2 (en) 2020-02-21 2023-10-17 International Business Machines Corporation Resolution of conflicting data
JPWO2021166782A1 (zh) * 2020-02-21 2021-08-26
US11188316B2 (en) * 2020-03-09 2021-11-30 International Business Machines Corporation Performance optimization of class instance comparisons
CN111506783B (zh) * 2020-04-08 2023-12-22 百度在线网络技术(北京)有限公司 区块链中事务请求处理方法、装置、设备和介质
CA3091660A1 (en) * 2020-08-31 2021-11-03 Polymath Inc. Method, system, and medium for blockchain-enabled atomic settlement
US11029920B1 (en) * 2020-10-21 2021-06-08 Chariot Technologies Lab, Inc. Execution of a conditional statement by an arithmetic and/or bitwise unit
US11456871B2 (en) * 2020-11-03 2022-09-27 Provide Technologies, Inc. System and method for autonomous mapping of enterprise identity
KR102346292B1 (ko) * 2020-11-11 2022-01-03 엘에스웨어(주) 키 정보를 이용한 트랜잭션 분류 시스템 및 방법
KR102346293B1 (ko) * 2020-12-08 2022-01-03 엘에스웨어(주) 공통 키셋정보를 이용한 트랜잭션 분산처리를 위한 블록체인 시스템 및 수행방법
GB2602010A (en) * 2020-12-15 2022-06-22 Nchain Holdings Ltd Generating and validating blockchain transactions
CN113222747B (zh) * 2020-12-31 2024-01-26 上海零数众合信息科技有限公司 一种区块链隐私交易方法
KR102594655B1 (ko) * 2021-01-11 2023-10-27 충남대학교 산학협력단 동적 연산을 통한 검증이 가능한 영지식 증명 시스템 및 증명 방법
US20220417044A1 (en) * 2021-06-25 2022-12-29 Prateek GOEL System and method to manage large data in blockchain
CN113610474B (zh) * 2021-08-16 2023-09-22 傲林科技有限公司 一种基于事件网的库存管理方法和管理系统
US20230298064A1 (en) * 2022-01-26 2023-09-21 Seek Xr, Inc. Systems and methods for facilitating redemption of unique digital asset utility
GB2618106A (en) * 2022-04-27 2023-11-01 Nchain Licensing Ag Messaging protocol for compact script transactions
US11818207B1 (en) * 2022-07-08 2023-11-14 T-Mobile Innovations Llc Methods and systems for ledger based content delivery using a mobile edge computing (MEC) server
US11792259B1 (en) 2022-09-28 2023-10-17 T-Mobile Innovations Llc Methods and systems for distributing rendering across devices in a customer premise
CN115801288B (zh) * 2023-01-10 2023-04-18 南方科技大学 一种基于区块链和零知识证明的验证方法、系统及设备
CN116610362B (zh) * 2023-04-27 2024-02-23 合芯科技(苏州)有限公司 一种处理器指令集译码方法、系统、设备和存储介质
US11882216B1 (en) * 2023-06-08 2024-01-23 Auradine, Inc. End-to-end hardware acceleration for ZKP from witness generation to proof generation

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8924966B1 (en) * 2011-03-31 2014-12-30 Emc Corporation Capture/revert module for complex assets of distributed information technology infrastructure
US20160321751A1 (en) * 2015-04-28 2016-11-03 Domus Tower, Inc. Real-time settlement of securities trades over append-only ledgers
CN106790253A (zh) * 2017-01-25 2017-05-31 中钞信用卡产业发展有限公司北京智能卡技术研究院 基于区块链的认证方法和装置
US20170300897A1 (en) * 2016-04-14 2017-10-19 American Express Travel Related Services Company, Inc. Systems and Methods for an Electronic Wallet Payment Tool
WO2017187399A1 (en) * 2016-04-29 2017-11-02 nChain Holdings Limited Implementing logic gate functionality using a blockchain
CN107330775A (zh) * 2017-07-05 2017-11-07 贵州大学 一种基于比特币协议的首价密封交易方法

Family Cites Families (102)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4667290A (en) 1984-09-10 1987-05-19 501 Philon, Inc. Compilers using a universal intermediate language
JPH03126133A (ja) 1989-10-11 1991-05-29 Matsushita Electric Ind Co Ltd コンパイラ処理方法
JPH05252336A (ja) 1992-03-04 1993-09-28 Toshiba Corp 画像形成装置
US5499191A (en) 1992-06-15 1996-03-12 Minc Incorporated Multi-level logic optimization in programmable logic devices
US5297150A (en) 1992-06-17 1994-03-22 International Business Machines Corporation Rule-based method for testing of programming segments
US8639625B1 (en) * 1995-02-13 2014-01-28 Intertrust Technologies Corporation Systems and methods for secure transaction management and electronic rights protection
JPH08305547A (ja) * 1995-05-11 1996-11-22 Oki Electric Ind Co Ltd Pldによるコンピュータおよびコンパイラおよびオペレーティングシステム
US5920830A (en) 1997-07-09 1999-07-06 General Electric Company Methods and apparatus for generating test vectors and validating ASIC designs
US6519754B1 (en) * 1999-05-17 2003-02-11 Synplicity, Inc. Methods and apparatuses for designing integrated circuits
EP1283422A1 (en) 2001-08-07 2003-02-12 Lucent Technologies Inc. Testbench for the validation of a device under test
WO2003032490A2 (en) * 2001-10-11 2003-04-17 California Institute Of Technology Method and apparatus for an asynchronous pulse logic circuit
US7209555B2 (en) 2001-10-25 2007-04-24 Matsushita Electric Industrial Co., Ltd. Elliptic curve converting device, elliptic curve converting method, elliptic curve utilization device and elliptic curve generating device
US7085701B2 (en) * 2002-01-02 2006-08-01 International Business Machines Corporation Size reduction techniques for vital compliant VHDL simulation models
US7281017B2 (en) * 2002-06-21 2007-10-09 Sumisho Computer Systems Corporation Views for software atomization
US6983456B2 (en) * 2002-10-31 2006-01-03 Src Computers, Inc. Process for converting programs in high-level programming languages to a unified executable for hybrid computing platforms
US7178118B2 (en) * 2003-05-30 2007-02-13 Synplicity, Inc. Method and apparatus for automated circuit design
US20060149962A1 (en) 2003-07-11 2006-07-06 Ingrian Networks, Inc. Network attached encryption
US7590236B1 (en) 2004-06-04 2009-09-15 Voltage Security, Inc. Identity-based-encryption system
US7697691B2 (en) * 2004-07-14 2010-04-13 Intel Corporation Method of delivering Direct Proof private keys to devices using an on-line service
US8200700B2 (en) 2005-02-01 2012-06-12 Newsilike Media Group, Inc Systems and methods for use of structured and unstructured distributed data
US20160004820A1 (en) 2005-02-01 2016-01-07 Newsilike Media Group, Inc. Security facility for maintaining health care data pools
JP5537032B2 (ja) * 2005-12-13 2014-07-02 コーニンクレッカ フィリップス エヌ ヴェ 安全な閾値復号プロトコル計算
TW200725415A (en) 2005-12-30 2007-07-01 Tatung Co Ltd Method for automatically translating high level programming language into hardware description language
JP4547503B2 (ja) * 2006-03-07 2010-09-22 国立大学法人徳島大学 算術符号化装置、算術符号化方法、算術符号化プログラム及びプログラムを格納したコンピュータで読み取り可能な記録媒体
US7926040B2 (en) 2006-09-06 2011-04-12 International Business Machines Corporation Method and system for timing code execution in a korn shell script
WO2008053650A1 (en) 2006-10-30 2008-05-08 Nec Corporation Common key block encrypting device, its method, its program, and recording medium
FR2918525A1 (fr) 2007-07-06 2009-01-09 France Telecom Procede asymetrique de chiffrement ou de verification de signature.
WO2009064122A1 (en) 2007-11-18 2009-05-22 Lg Electronics Inc. Methods of joint coding in mobile communication system
US8336036B2 (en) 2008-11-21 2012-12-18 Korea University Industrial & Academic Collaboration Foundation System and method for translating high programming level languages code into hardware description language code
US8165287B2 (en) 2008-12-30 2012-04-24 King Fahd University Of Petroleum & Minerals Cryptographic hash functions using elliptic polynomial cryptography
FR2947404B1 (fr) 2009-06-30 2011-12-16 Sagem Securite Cryptographie par parametrisation sur une courbe elliptique
US8189775B2 (en) 2010-02-18 2012-05-29 King Fahd University Of Petroleum & Minerals Method of performing cipher block chaining using elliptic polynomial cryptography
WO2011136089A1 (ja) 2010-04-27 2011-11-03 日本電気株式会社 符号化装置、誤り訂正符号構成方法およびそのプログラム
WO2012126086A1 (en) 2011-03-18 2012-09-27 Certicom Corp. Secure financial transactions
US9569771B2 (en) 2011-04-29 2017-02-14 Stephen Lesavich Method and system for storage and retrieval of blockchain blocks using galois fields
US8607129B2 (en) 2011-07-01 2013-12-10 Intel Corporation Efficient and scalable cyclic redundancy check circuit using Galois-field arithmetic
JP5697153B2 (ja) 2011-08-04 2015-04-08 キヤノンマーケティングジャパン株式会社 情報処理システム、携帯端末、制御方法、及びプログラム
US8745376B2 (en) 2011-10-14 2014-06-03 Certicom Corp. Verifying implicit certificates and digital signatures
US9215076B1 (en) * 2012-03-27 2015-12-15 Amazon Technologies, Inc. Key generation for hierarchical data access
US20150379510A1 (en) 2012-07-10 2015-12-31 Stanley Benjamin Smith Method and system to use a block chain infrastructure and Smart Contracts to monetize data transactions involving changes to data included into a data supply chain.
BR112015010016A2 (pt) * 2012-11-07 2017-07-11 Koninklijke Philips Nv compilador, computador, método de compilação e programa de computador
US9306738B2 (en) * 2012-12-21 2016-04-05 Microsoft Technology Licensing, Llc Managed secure computations on encrypted data
US20140321644A1 (en) 2013-04-29 2014-10-30 Her Majesty The Queen In Right Of Canada, As Represented By The Minister Of National Defence Method and system for calculations on encrypted data
US9026978B1 (en) 2013-10-24 2015-05-05 Cadence Design Systems, Inc. Reverse interface logic model for optimizing physical hierarchy under full chip constraint
JP5842255B2 (ja) * 2013-12-12 2016-01-13 国立大学法人東京工業大学 プログラミング言語による論理回路記述から論理回路を生成するための装置及び方法
FR3018378A1 (fr) 2014-03-12 2015-09-11 Enrico Maim Systeme et procede transactionnels a architecture repartie fondees sur des transactions de transferts d'unites de compte entre adresses
US9830580B2 (en) * 2014-03-18 2017-11-28 nChain Holdings Limited Virtual currency system
US10320781B2 (en) 2016-12-08 2019-06-11 Sensoriant, Inc. System and methods for sharing and trading user data and preferences between computer programs and other entities while preserving user privacy
US9645794B2 (en) 2014-09-23 2017-05-09 Texas Instruments Incorporated Homogeneous atomic pattern for double, add, and subtract operations for digital authentication using elliptic curve cryptography
US10409827B2 (en) * 2014-10-31 2019-09-10 21, Inc. Digital currency mining circuitry having shared processing logic
US20160162897A1 (en) 2014-12-03 2016-06-09 The Filing Cabinet, LLC System and method for user authentication using crypto-currency transactions as access tokens
PL3073670T3 (pl) 2015-03-27 2021-08-23 Black Gold Coin, Inc. System i sposób osobistej identyfikacji i weryfikacji
AU2016242888A1 (en) * 2015-03-31 2017-11-16 Nasdaq, Inc. Systems and methods of blockchain transaction recordation
WO2016155804A1 (en) 2015-03-31 2016-10-06 Nec Europe Ltd. Method for verifying information
US20160342977A1 (en) * 2015-05-20 2016-11-24 Vennd.io Pty Ltd Device, method and system for virtual asset transactions
JP2017004044A (ja) 2015-06-04 2017-01-05 富士通株式会社 ライセンス管理プログラム、ライセンス管理方法、およびライセンス管理システム
CN106293892B (zh) 2015-06-26 2019-03-19 阿里巴巴集团控股有限公司 分布式流计算系统、方法和装置
WO2017008829A1 (en) 2015-07-10 2017-01-19 Nec Europe Ltd. A method and a system for reliable computation of a program
US10366204B2 (en) * 2015-08-03 2019-07-30 Change Healthcare Holdings, Llc System and method for decentralized autonomous healthcare economy platform
US20170091726A1 (en) * 2015-09-07 2017-03-30 NXT-ID, Inc. Low bandwidth crypto currency transaction execution and synchronization method and system
EP3357892A4 (en) * 2015-09-30 2019-05-29 Sekisui Chemical Co., Ltd. INTERMEDIATE LAYER FOR LAMINATED GLASS AND LAMINATED GLASS
US20180331832A1 (en) 2015-11-05 2018-11-15 Allen Pulsifer Cryptographic Transactions System
US20170132621A1 (en) 2015-11-06 2017-05-11 SWFL, Inc., d/b/a "Filament" Systems and methods for autonomous device transacting
US10048952B2 (en) 2015-11-11 2018-08-14 Oracle International Corporation Compiler optimized data model evaluation
FR3043811B1 (fr) 2015-11-16 2017-11-10 Morpho Procede d'identification d'une entite
US20170140408A1 (en) 2015-11-16 2017-05-18 Bank Of America Corporation Transparent self-managing rewards program using blockchain and smart contracts
US10841082B2 (en) * 2015-11-24 2020-11-17 Adi BEN-ARI System and method for blockchain smart contract data privacy
US11423498B2 (en) 2015-12-16 2022-08-23 International Business Machines Corporation Multimedia content player with digital rights management while maintaining privacy of users
US9715373B2 (en) 2015-12-18 2017-07-25 International Business Machines Corporation Dynamic recompilation techniques for machine learning programs
US10044696B2 (en) 2015-12-22 2018-08-07 Mcafee, Llc Simplified sensor integrity
US9483596B1 (en) * 2016-01-08 2016-11-01 International Business Machines Corporation Multi power synthesis in digital circuit design
US10108812B2 (en) 2016-01-28 2018-10-23 Nasdaq, Inc. Systems and methods for securing and disseminating time sensitive information using a blockchain
AU2017223129A1 (en) 2016-02-23 2018-07-12 nChain Holdings Limited Secure multiparty loss resistant storage and transfer of cryptographic keys for blockchain based systems in conjunction with a wallet management system
EP4369273A2 (en) 2016-02-23 2024-05-15 nChain Licensing AG A method and system for securing computer software using a distributed hash table and a blockchain
US10387988B2 (en) 2016-02-26 2019-08-20 Google Llc Compiler techniques for mapping program code to a high performance, power efficient, programmable image processing hardware platform
US11170371B2 (en) 2016-03-03 2021-11-09 Nec Corporation Method for managing data in a network of nodes
US11017387B2 (en) 2016-03-24 2021-05-25 International Business Machines Corporation Cryptographically assured zero-knowledge cloud services for elemental transactions
US11017388B2 (en) 2016-03-25 2021-05-25 International Business Machines Corporation Cryptographically assured zero-knowledge cloud service for composable atomic transactions
US10839096B2 (en) 2016-03-28 2020-11-17 International Business Machines Corporation Cryptographically provable zero-knowledge content distribution network
US20170287090A1 (en) 2016-03-31 2017-10-05 Clause, Inc. System and method for creating and executing data-driven legal contracts
WO2017175073A1 (en) 2016-04-05 2017-10-12 Vchain Technology Limited Method and system for managing personal information within independent computer systems and digital networks
US10545739B2 (en) 2016-04-05 2020-01-28 International Business Machines Corporation LLVM-based system C compiler for architecture synthesis
CN108885761B (zh) 2016-04-11 2023-09-29 区块链控股有限公司 用于区块链上的安全点对点通信的方法
US10803537B2 (en) * 2016-04-18 2020-10-13 R3 Ltd. System and method for managing transactions in dynamic digital documents
US10333705B2 (en) * 2016-04-30 2019-06-25 Civic Technologies, Inc. Methods and apparatus for providing attestation of information using a centralized or distributed ledger
US10046228B2 (en) 2016-05-02 2018-08-14 Bao Tran Smart device
US20170337319A1 (en) 2016-05-20 2017-11-23 Ecole polytechnique fédérale de Lausanne (EPFL) System and Method for Optimization of Digital Circuits with Timing and Behavior Co-Designed by Introduction and Exploitation of False Paths
CN107438002B (zh) 2016-05-27 2022-02-11 索尼公司 基于区块链的系统以及系统中的电子设备和方法
US10447478B2 (en) 2016-06-06 2019-10-15 Microsoft Technology Licensing, Llc Cryptographic applications for a blockchain system
FR3052286B1 (fr) 2016-06-06 2018-06-15 Morpho Procede de verification d'un droit d'acces d'un individu
US20180018738A1 (en) 2016-07-14 2018-01-18 Digital Asset Holdings Digital asset platform
US10417217B2 (en) 2016-08-05 2019-09-17 Chicago Mercantile Exchange Inc. Systems and methods for blockchain rule synchronization
CN106780032A (zh) * 2016-12-16 2017-05-31 杭州云象网络技术有限公司 一种多链场景下的区块链链间资产转移方法
US11088823B2 (en) 2017-01-06 2021-08-10 Koninklijke Philips N.V. Pinocchio/Trinocchio on authenticated data
US11362829B2 (en) 2017-01-06 2022-06-14 Koninklijke Philips N.V. Distributed privacy-preserving verifiable computation
CN107274184A (zh) 2017-05-11 2017-10-20 上海点融信息科技有限责任公司 基于零知识证明的区块链数据处理
CN107179932A (zh) 2017-05-26 2017-09-19 福建师范大学 基于fpga高层次综合指令的优化方法及其系统
US10135607B1 (en) 2017-08-11 2018-11-20 Dragonchain, Inc. Distributed ledger interaction systems and methods
US10268829B2 (en) 2017-08-11 2019-04-23 Dragonchain, Inc. Security systems and methods based on cryptographic utility token inventory tenure
US10333710B2 (en) 2017-09-12 2019-06-25 Qed-It Systems Ltd. Method and system for determining desired size of private randomness using Tsallis entropy
US10521616B2 (en) 2017-11-08 2019-12-31 Analog Devices, Inc. Remote re-enrollment of physical unclonable functions
EP3707855A1 (en) 2017-11-09 2020-09-16 Nchain Holdings Limited System for securing verification key from alteration and verifying validity of a proof of correctness

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8924966B1 (en) * 2011-03-31 2014-12-30 Emc Corporation Capture/revert module for complex assets of distributed information technology infrastructure
US20160321751A1 (en) * 2015-04-28 2016-11-03 Domus Tower, Inc. Real-time settlement of securities trades over append-only ledgers
US20170300897A1 (en) * 2016-04-14 2017-10-19 American Express Travel Related Services Company, Inc. Systems and Methods for an Electronic Wallet Payment Tool
WO2017187399A1 (en) * 2016-04-29 2017-11-02 nChain Holdings Limited Implementing logic gate functionality using a blockchain
CN106790253A (zh) * 2017-01-25 2017-05-31 中钞信用卡产业发展有限公司北京智能卡技术研究院 基于区块链的认证方法和装置
CN107330775A (zh) * 2017-07-05 2017-11-07 贵州大学 一种基于比特币协议的首价密封交易方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ANTONOPOULOS: "Mastering Bitcon-Unlocking Digital Cryptocurrencies", O’REILLY, 20 December 2014 (2014-12-20), pages 124 - 138 *
EBERHARDT: "Zokrates -A Toolbox for zkSNARKs on Ethereum", HTTPS://WWW.YOUTUBE.COM/WATCH?V=SSLRYW_B5J_0&T=4S, 4 November 2017 (2017-11-04), pages 0 - 16 *
MATTEO CAMPANELLI: "Zero-Knowledge Contingent Payments Revisited:Attacks and Payments for Services", HTTP://EPRINT.IACR.ORG/2017/566.PD, 9 June 2017 (2017-06-09), pages 1 - 26 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220337437A1 (en) * 2019-09-12 2022-10-20 nChain Holdings Limited Blockchain transactions including portions of code in different languages for complex validation
CN111768187A (zh) * 2020-08-31 2020-10-13 支付宝(杭州)信息技术有限公司 一种部署智能合约的方法、区块链节点和存储介质
US11551206B2 (en) 2020-08-31 2023-01-10 Alipay (Hangzhou) Information Technology Co., Ltd. Methods, blockchain nodes, and storage media for deploying smart contract
CN112132576A (zh) * 2020-09-07 2020-12-25 陈建芸 基于区块链通信的支付信息处理方法及区块链信息平台
CN113469690A (zh) * 2021-07-23 2021-10-01 永旗(北京)科技有限公司 一种基于区块链的交易结算方法
CN113469690B (zh) * 2021-07-23 2024-03-26 佳乔(深圳)投资有限公司 一种基于区块链的交易结算方法
CN114978514A (zh) * 2022-07-27 2022-08-30 杭州友恭科技有限公司 密钥管理方法、系统、装置、电子装置和存储介质
CN114978514B (zh) * 2022-07-27 2022-11-01 杭州友恭科技有限公司 密钥管理方法、系统、装置、电子装置和存储介质

Also Published As

Publication number Publication date
US20210192514A1 (en) 2021-06-24
EP3707871B1 (en) 2022-05-18
US11575511B2 (en) 2023-02-07
JP2023052834A (ja) 2023-04-12
EP3707623A1 (en) 2020-09-16
KR20200086281A (ko) 2020-07-16
WO2019092544A1 (en) 2019-05-16
KR20200079503A (ko) 2020-07-03
US11635950B2 (en) 2023-04-25
ZA202002575B (en) 2023-12-20
US20200366492A1 (en) 2020-11-19
WO2019092561A1 (en) 2019-05-16
US20210377041A1 (en) 2021-12-02
JP2021502746A (ja) 2021-01-28
CN111345004B (zh) 2023-12-01
SG11202004146WA (en) 2020-06-29
US20200348916A1 (en) 2020-11-05
JP2023182741A (ja) 2023-12-26
JP2021502634A (ja) 2021-01-28
SG11202004153UA (en) 2020-06-29
TW201923567A (zh) 2019-06-16
EP3707856A1 (en) 2020-09-16
SG11202004149UA (en) 2020-06-29
CN111316594A (zh) 2020-06-19
US11658801B2 (en) 2023-05-23
JP2021502636A (ja) 2021-01-28
JP7234229B2 (ja) 2023-03-07
SG11202004147RA (en) 2020-06-29
TW201923648A (zh) 2019-06-16
TWI806918B (zh) 2023-07-01
JP2023179687A (ja) 2023-12-19
US20200266985A1 (en) 2020-08-20
CN117640170A (zh) 2024-03-01
WO2019092542A1 (en) 2019-05-16
EP4312403A2 (en) 2024-01-31
KR20200086282A (ko) 2020-07-16
JP2023075152A (ja) 2023-05-30
WO2019092543A1 (en) 2019-05-16
CN111406379A (zh) 2020-07-10
JP7208989B2 (ja) 2023-01-19
WO2019092545A1 (en) 2019-05-16
JP2021502747A (ja) 2021-01-28
SG11202004148PA (en) 2020-06-29
CN111345004A (zh) 2020-06-26
US20230318804A1 (en) 2023-10-05
KR20200080265A (ko) 2020-07-06
JP2023036962A (ja) 2023-03-14
EP3707855A1 (en) 2020-09-16
US20230269070A1 (en) 2023-08-24
KR20200086284A (ko) 2020-07-16
JP7477674B2 (ja) 2024-05-01
EP3707852A1 (en) 2020-09-16
US20230318805A1 (en) 2023-10-05
EP3707871A1 (en) 2020-09-16
JP2021502745A (ja) 2021-01-28
EP4092953A1 (en) 2022-11-23
JP7221954B2 (ja) 2023-02-14
CN111345005A (zh) 2020-06-26
EP4312403A3 (en) 2024-02-21

Similar Documents

Publication Publication Date Title
US20230318805A1 (en) System for securing verification key from alteration and verifying validity of a proof of correctness
JP7285840B2 (ja) プルーフ検証に基づいてオフ・チェーン・データを認証するシステム及び方法
KR20200080263A (ko) 중재자 컴퓨터 시스템을 이용하여 컴퓨터 프로그램의 정확한 실행을 보장하기 위한 시스템 및 방법
JP2023184657A (ja) 公開鍵結合検証を含む、コンピュータにより実施されるシステム及び方法
TW202414256A (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