CN111345005A - 在区块链上记录验证密钥的系统 - Google Patents

在区块链上记录验证密钥的系统 Download PDF

Info

Publication number
CN111345005A
CN111345005A CN201880073019.5A CN201880073019A CN111345005A CN 111345005 A CN111345005 A CN 111345005A CN 201880073019 A CN201880073019 A CN 201880073019A CN 111345005 A CN111345005 A CN 111345005A
Authority
CN
China
Prior art keywords
script
computer
blockchain
key
transaction
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
CN201880073019.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 CN111345005A publication Critical patent/CN111345005A/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

Abstract

本文所述的系统和方法涉及在区块链系统中执行锁定交易。在智能合约的情况下,拥有正确执行电路的证明和验证密钥的公共记录(例如记录在区块链上)是有利的,该证明由工作者发布,从而允许任何人(例如,区块链的节点)均可验证计算和证明的有效性。然而,在区块链上记录大数据块(例如,可能包含多个椭圆曲线点的大密钥)存在挑战。例如,在基于比特币的区块链网络中,利用标准交易的协议可能被限制为锁定脚本和解锁脚本,这些脚本的总和不大于第一预定大小限制,并且赎回脚本的大小(如果使用)可以限制为不超过第二预定大小限制。

Description

在区块链上记录验证密钥的系统
技术领域
本发明主要涉及计算机实现的安全性和/或验证技术。本发明还涉及用于扩展或增强区块链功能的解决方案,尤其是实现匿名或近乎匿名的数字交易。本发明特别适合,但不限于在可以利用和/或受益于完整性(如果正确地遵循了该协议,那么诚实的验证者将确信输出的有效性)、可靠性(没有欺骗证明者能够使诚实的验证者相信输出的真实性是真实的)和/或零知识(如果输出是有效的,则除了这一事实之外,欺骗验证者一无所知)的加密可验证保证的协议中使用。本文所描述的各种协议适用于在区块链上记录验证密钥,其中工作者能够证明拥有正确的验证密钥VK(例如,由客户端发布)。本发明可以利用加密和数学技术来加强与电子转账有关的安全性,该电子转账通过区块链网络进行。
背景技术
在本文档中,“区块链”一词可以指多种类型的电子的、基于计算机的、分布式账本,包括基于共识的区块链和交易链技术、许可及未许可的账本、共享账本及其变型。虽然已经提出并开发了其他区块链实施方案,但是区块链技术最广为人知的应用是比特币账本。尽管出于方便和说明的目的,比特币被称为本文描述的技术的有用应用,但是比特币只是本申请中描述的技术适用的许多应用中的一种。然而,应当注意,本发明不限于与比特币区块链一起使用,其他区块链实施方案和协议,包括非商业应用,也落入本发明的范围内。例如,本发明中描述的技术将提供利用其他区块链实施方案的优势,这些区块链实施方案在记录验证密钥方面具有和比特币类似的局限性,其中实体能够证明拥有正确或适当的验证密钥VK。应该注意的是,如本文所述,比特币是指任何基于比特币的区块链网络,例如比特币现金(Bitcoin Cash)和比特币经典版(Bitcoin Classic)。
区块链是一种点对点的电子账本,该电子账本是基于计算机的去中心化的分布式系统,该系统由区块组成,而区块又由交易和其他信息组成。在一些示例中,“区块链交易”是指对结构化的字段值集进行编码的输入消息,该结构化的字段值集包括数据和一组条件,其中满足该组条件是将该字段集写入区块链数据结构的前提。例如,对于比特币,每笔交易都是一种数据结构,该数据结构对在区块链系统中参与者之间数字资产的控制权的转移进行编码,并包括至少一个输入和至少一个输出。在一些实施例中,“数字资产”是指与使用权相关联的二进制数据。数字资产的示例包括比特币、以太币和莱特币。在一些实施方式中,可以通过将数字资产的至少一部分从第一实体重新关联到第二实体来执行数字资产的控制权的转移。区块链的每个区块都可以包含前一个区块的散列值,从而使区块链接在一起,以创建自区块链创建以来写入该区块链的所有交易的永久、不可更改的记录。
在一些示例中,“基于堆栈的脚本语言”是指编程语言,该编程语言支持各种基于堆栈或面向堆栈的执行模型和操作。即,基于堆栈的脚本语言可以利用堆栈。通过堆栈,可以将值推入堆栈的顶部或从堆栈的顶部弹出。对堆栈执行的各种操作可能导致将一个或多个值推入堆栈顶部或从堆栈顶部弹出。例如,OP_EQUAL操作会从堆栈中弹出顶部的两个项目,对其进行比较,然后将结果(例如,如果相等则为1,如果不相等则为0)推入堆栈的顶部。对堆栈执行的其他操作(例如OP_PICK)可以允许从堆栈顶部以外的位置选择项目。在本文一些实施例采用的某些脚本语言中,可能至少有两个堆栈:主堆栈和备用堆栈。脚本语言的某些操作可以将项目从一个堆栈的顶部移动到另一堆栈的顶部。例如,OP_TOALTSTACK将值从主堆栈的顶部移动到备用堆栈的顶部。应该注意的是,在某些情况下,基于堆栈的脚本语言可能不仅限于严格按照后进先出(LIFO)的方式操作。例如,基于堆栈的脚本语言可以支持将堆栈中的第n个项目复制或移动到顶部的操作(例如,在比特币中分别为OP_PICK和OP_ROLL)。可以将使用基于堆栈的脚本语言编写的脚本推入逻辑堆栈,该逻辑堆栈可以使用任何适当的数据结构(例如向量、列表或堆栈)来实现。
为了将交易写入区块链,必须对其进行“验证”。网络节点(挖矿节点)执行该工作以确保每个交易都是有效的,而无效交易在网络中将被拒绝。一个节点可以具有不同于其他节点的有效性标准。由于区块链中的有效性是基于共识的,因此,如果大多数节点同意交易有效,则该交易被视为有效。安装在节点上的软件客户端通过执行UTXO(unspenttransaction,未花费交易)的锁定和解锁脚本对部分引用UTXO的交易执行此验证工作。如果锁定和解锁脚本的执行评估为真(TRUE),并且满足其他验证条件(如果适用),则该交易通过该节点的验证。经验证的交易将传播到其他网络节点,随后挖矿节点可以选择将该交易包括在区块链中。因此,为了将交易写入区块链,该交易必须:i)由接收该交易的第一节点验证—如果该交易通过验证,则该节点将其中继到网络中的其他节点;ii)添加到挖矿节点建造的新区块中;和iii)被挖矿,即添加到先前交易的公共账本中。当将足够数量的区块添加到区块链,使该交易实际上不可逆时,该交易被视为已确认。
尽管区块链技术最广为人知的是使用加密货币实施方案,但数字企业家已经开始探索使用比特币基于的加密安全系统和可以存储在区块链上的数据来实现新系统。如果区块链可以用于自动化任务和过程,而不仅仅局限于加密货币领域,将会非常有利。这类解决方案将能够利用区块链的优势(例如,事件的永久防篡改记录、分布式处理等),同时在其应用中更具通用性。
本发明描述了一个或多个基于区块链的计算机程序的技术方面。基于区块链的计算机程序可以是记录在区块链交易中的机器可读和可执行程序。基于区块链的计算机程序可包括处理输入以产生结果的规则,然后可根据这些结果执行操作。当前研究的一个领域是使用基于区块链的计算机程序实现“智能合约”。与使用自然语言编写的传统合约不同,智能合约可以是自动执行机器可读合约或协议条款的计算机程序。
与区块链有关的另一个领域是使用“令牌”(或“彩色币”),通过区块链表示和转移现实世界的实体。潜在的敏感或秘密物品可以用没有明显含义或价值的令牌表示。因此,令牌可用作标识符,使现实世界的物品可通过区块链引用。
在实施例中,尽管与特定实体的交互可以在智能合约的特定步骤中进行编码,但是智能合约还可以自动执行和自我实施。智能合约是机器可读和可执行的。在一些示例中,自动执行是指执行智能合约,能够成功实现UTXO的转移。注意,在这类示例中,能够使UTXO转移的“实体”是指能够创建解锁脚本而无需证明知晓某些秘密的实体。换句话说,解锁交易可以在不验证数据源(例如,创建解锁交易的实体)是否可以访问加密秘密(例如,私密非对称密钥、对称密钥等)的情况下进行验证。同样,在此类示例中,自我执行是指使区块链网络的验证节点根据约束执行解锁交易。在一些示例中,从技术意义上使用“解锁”UTXO(也称为“花费”UTXO),是指创建引用该UTXO的解锁交易,并有效执行。
区块链交易输出包括锁定脚本和有关数字资产(例如比特币)所有权的信息。锁定脚本(也可以称为产权负载)通过指定转移UTXO所需满足的条件“锁定”数字资产。例如,锁定脚本可能要求在解锁脚本中提供某些数据以解锁关联的数字资产。锁定脚本在比特币中也称为“scriptPubKey”。要求一方提供数据以解锁数字资产的技术涉及将数据的散列嵌入锁定脚本中。但是,如果在创建锁定脚本时未确定数据(例如,未知和固定的数据),则会出现问题。
本发明可以描述为验证方法/系统,和/或描述为用于控制区块链交易的验证的控制方法/系统。在一些实施例中,经验证的区块链交易会使该交易在区块链上存有记录,在某些应用中,可能使数字资产经由区块链进行交换或转移。数字资产可以是由区块链管理的单位的资源。尽管在一些实施例中,数字资产可以用作加密货币,但可预期的是,在实施例中,数字资产可以在其他情况下附加地或替代地使用。注意,本发明虽然适用于数字资产的控制,但是本质上是技术性的,并且可以在利用区块链数据结构的其他情况下使用,而不一定涉及数字资产的转移。
发明内容
因此,期望提供能够在区块链上进行安全转移和交换的系统和方法。优选地,该区块链是公共区块链,但不一定如此。此外,期望实现匿名数字转移和/或通信,其中关于转移/通信的信息是模糊的,例如与区块链交易中的数字资产的接收者有关的信息。此外,期望提供用于在区块链上读取/写入元数据的凭证权限,使得根据协议不能读取和/或修改元数据,除非提供适当的凭证。因此,本发明提供增强的验证和/或安全性。
现在已经设计出这种改进的解决方案。
因此,本发明提供如所附权利要求书所限定的系统和方法。
本发明可以被描述为安全方法/系统。另外或可替代地,它可以被描述为验证方法/系统。本发明可以提供与(但不限于)完整性、可靠性和/或零知识的加密可验证保证有关的优势。另外或可替代地,本发明可以使得或至少有助于在区块链上记录验证密钥,其中实体能够证明拥有正确或适当的验证密钥VK。另外或可替代地,本发明可以被描述为提供一种用于控制分布式计算性能的控制机制,从而增强效率和安全性。
本发明可以提供一种计算机实现的方法,该方法包括:获得与区块链交易相关的赎回脚本,所述第一脚本包括第一组命令和一个或多个加密散列值;生成第二脚本,该第二脚本包括第二组命令、多个元素的一个或多个子集,其中多个元素共同形成验证密钥,并且一个或多个子集共同包括验证密钥的每个元素、第一脚本和与生成第二脚本的计算机系统相关联的标识符;并至少部分地基于执行第一组命令和第二组命令确定一个或多个加密散列值是否与验证密钥的一个或多个子集匹配,以生成计算机系统有权访问验证密钥的证明。
多个元素中的元素可以是椭圆曲线上的点。
第一组命令和第二组命令可以共同包括指令,该指令用于至少部分地基于验证密钥的一个或多个子集中的子集来确定一个或多个加密散列值的第一加密散列值是否与散列输出相匹配。
可以使用诸如SHA-256和RIPEMD-160之类的加密散列算法来生成散列输出,如通过使用SHA-256和RIPEMD-160依次散列输入。
优选地,该方法可以包括通过以下步骤获得第一脚本:识别验证密钥的一个或多个子集,并为该验证密钥的一个或多个子集的每个子集计算对应的加密散列值,其中一个或多个加密散列值包括每个对应的加密散列值。
优选地,该方法可以包括将由交易锁定(encumber)的数字资产的控制权转移到计算机系统,但需要验证生成的证明。
优选地,该方法包括从第二计算机系统获得第一脚本,其中第二计算机系统贡献了至少一部分数字资产。
该交易可以是P2SH(Pay-to-Script-Hash,支付脚本散列)交易,例如根据基于比特币的协议的P2SH交易。
优选地,至少一些验证密钥的大小大于或等于512字节,且小于或等于520字节。在某些情况下,所有验证密钥的大小均大于或等于512字节,且小于或等于520字节。
优选地,第一脚本的大小大于或等于58字节,且小于或等于104字节,第二脚本的大小大于或等于1628字节,且小于或等于1650字节。
该交易可以是根据区块链协议的标准操作。
上述一个或多个子集可以恰好是一个子集,该子集包括验证密钥。
第一脚本可以进一步包括与计算机系统相关联的公钥,与计算机系统相关联的标识符可以是使用与该公钥相对应的私钥生成的数字签名,并且该计算机系统访问验证密钥的证明可以进一步至少部分地基于该数字签名和公钥。
还期望提供一种系统,该系统包括:处理器;以及存储器,该存储器包括可执行指令,该可执行指令在被处理器执行时,可使系统执行要求保护的方法中的任何一种。
还期望提供一种非暂时性计算机可读存储介质,存储有可执行指令,该可执行指令在被计算机系统的一个或多个处理器执行时,使该计算机系统至少执行要求保护的方法中的任何一种。上述与本发明的方法有关的任何特征也可以应用于相应的系统。
附图说明
参考本文描述的实施例,本发明的这些和其他方面将变得显而易见并得以阐明。现在仅通过举例的方式并参考附图来描述本发明的实施例,其中:
图1示出了可以在其中实现各种实施例的区块链环境;
图2示出了可用于根据各种实施例实施协议的计算环境;
图3示出了适合执行可验证计算的环境的示意图;
图4示出了根据区块链协议的数据结构的示意图,该协议适用于在区块链上记录验证密钥,其中工作者能够证明拥有正确的验证密钥VK
图5示出了根据本发明描述的各种实施例的锁定交易的示意图;
图6示出了根据至少一个实施例生成赎回脚本的过程。
图7示出了基于智能合约的执行对数字资产进行解锁时,修改协议以包括计算证明的示意图;和
图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。在一些实施例中,该交易包括“锁定脚本”,该“锁定脚本”使交易无法具有在转移(“解锁”)所有权/控制权之前必须满足的条件。
在一些实施例中,区块链地址是一串字母数字字符,该字母数字字符与实体相关联,该实体为数字资产的至少一部分的控制权转移/重新关联到的实体。在一些实施例中实现的一些区块链协议中,与该实体相关联的公钥和该区块链地址之间存在一一对应的关系。在一些实施例中,交易的验证涉及验证在锁定脚本和/或解锁脚本中指定的一个或多个条件。交易104成功验证后,验证节点将交易104添加到区块链并将其分发到节点102。
本发明的说明性应用中描述的系统和方法涉及在区块链系统中执行锁定交易。锁定交易指的是初始化约束条件的交易,基于该约束条件可以对解锁交易进行验证。在一些说明性应用中,本发明可以用于安全地列出和交换交易。在智能合约的情况下,拥有正确执行线路的证明和验证密钥的公共记录(例如记录在区块链上)可能是有利的,该证明由工作者发布,从而使任何人(例如,区块链的节点)都能验证计算和证明的有效性。然而,在区块链上记录大数据块(例如,可能包含多个椭圆曲线点的大密钥)存在挑战。例如,在基于比特币的区块链网络中,利用标准交易的协议可能会被限制为锁定脚本和解锁脚本,这些脚本的大小总和不超过1650字节,并且赎回脚本(如果使用)可能将大小限制为不超过520字节。
可验证计算是一种允许生成计算证明的技术。在说明性实施例中,客户端可以利用这样的技术将对输入x的函数f的评估外包给本文中被称为工作者的另一计算实体。在某些情况下,客户端在计算上受到限制,因此客户端无法执行函数评估(例如,使用客户端可用的计算资源进行的计算的预期运行时间超过了最大可接受阈值),尽管情况并非总是如此,通常来说,客户端可以基于任何合适的标准(例如,计算运行时间、计算成本(例如,分配计算资源来执行函数评估的财务成本)等等),委托对输入x的函数f的评估。
正如本发明在其他地方更详细描述的,在一个实施例中,工作者是诸如区块链节点的任何合适的计算实体,如结合图1和图8描述的那些节点。在一个实施例中,工作者(如区块链节点)评估输入x上的函数f并生成输出y和输出y的正确性的证明π,该证明π可以由其他计算实体(例如,如上文所述的客户端)和/或区块链网络的其他节点进行验证。证明(也可以称为论据)的验证速度比实际计算要快得多,因此,通过验证证明的正确性,而不是重新计算输入x上的函数f以确定上述工作者生成的输出的正确性,可以减少计算开销(例如,减少电力开销和与供电和运行计算资源相关的成本)。在零知识可验证计算中,工作者向客户端提供证明,说明该工作者知道具有特定属性的输入。
知识的零知识证明的有效变体是“简明非交互零知识证明”(Succinct Non-interactive ARgument of Knowledge,简称zk-SNARK)。在一个实施例中,所有基于配对的zk-SNARK都包括一个过程,即工作者使用通用的分组运算来计算多个分组元素,并且验证者使用多个配对乘积方程式来检验证明。在一个实施例中,线性交互式证明在有限域上工作,并且工作者和验证者的消息包括编码、引用或包括可用于确定域元素矢量的信息。
在一个实施例中,本文描述的系统和方法允许区块链的挖矿节点执行一次计算(例如,对输入x的函数f的评估),并生成可用于验证输出的正确性的证明,其中评估证明的正确性在计算上比评估函数要便宜。在这种情况下,操作和任务的成本(即花费)可以指代执行操作或任务的计算复杂度。在一个实施例中,计算复杂度是指执行排序算法(SortingAlgorithm)的平均计算成本或最坏情况的计算成本,例如,堆排序算法和快速排序算法都有一个平均计算成本O(n logn),而快速排序算法有一种最坏情况下的计算成本O(n2),而堆排序算法的最坏情况的计算成本为O(n logn)。在一个实施例中,评估输入x上的函数f的平均计算成本和/或最坏情况的计算成本比评估证明的正确性的平均计算成本和/或最坏情况的计算成本更高。因此,使用本文描述的系统和方法是非常有利的,并且(例如)可以运行更多计算昂贵的合约,因为此类合约不会增加按比例验证区块链所需的时间。其他优点包括减少验证者系统的电力消耗,从而提高验证者计算机系统的效率,并减少运行这种验证者计算机系统以评估证明的正确性的能源成本。现在必须在所有节点上执行和验证智能合约—此约束条件限制了智能合约的复杂性。本文所述的方法和系统可用于实施一种系统,该系统通过执行一次合约来生成正确性证明,从而提高区块链效率,并且基于工作者提供的正确性证明和客户端提供的验证密钥,区块链的所有节点都可以验证合约的有效性。以这种方式,通过增加智能合约的吞吐量来提高区块链的效率,该智能合约可以由区块链的节点聚合执行和/或使得能够计算计算上更加昂贵的智能合约。
在一个实施例中,可以从零知识协议的设置阶段生成的公共参数中提取验证密钥VK或其部分,并将其与证明π以及输入/输出数据一起使用,以验证工作者提供的正确性计算的声称的证明。例如,如上文和下文更详细描述的,允许锁定脚本的系统和方法可防止验证密钥VK被更改并检查证明π的有效性,从而允许在交易验证期间在区块链上执行零知识协议。因此,本发明提出了适合在区块链上记录验证密钥的系统和方法,其中工作者能够证明拥有正确的验证密钥VK(例如,由客户端发行),以便赎回数字资产,用于执行一组操作(例如,执行智能合约)。
图2示出了可用于根据各种实施例实施协议的计算环境200。该协议可以使用区块链技术来实现,以存储正确性证明,并将“按构造校正”(Correct-by-construction)加密方法与智能合约相结合。在一个实施例中,公共可验证计算方案包括三个阶段:建立阶段、计算阶段和验证阶段。
建立阶段可以作为部分过程来执行,以外包计算任务的执行。如下所述,客户端可以指代诸如客户或客户端计算机系统之类的实体,该实体将计算任务的执行委托给工作者,该工作者可以是不同的计算机系统。一般来讲,客户端可能出于各种原因委托执行计算任务,包括但不限于有限的计算资源、缺乏计算资源、与利用客户端计算机系统执行任务相关的财务成本,以及与利用客户端计算机系统执行任务相关的能源成本(例如,依靠电池供电的移动设备或便携式计算机可以利用工作者执行计算密集型任务,从而节省电能并延长电池供电设备的使用时间),以及其他原因。
在一个实施例中,建立阶段涉及客户端、客户、组织的雇员或任何其他合适的实体,该实体使用具有精确语义的形式语言编写合约。合约可以用高级编程语言(例如C或Java)编写。一般而言,合约可以使用任何语言或语法表达,该语言或语法可以是或被转换为可由计算机系统操作的格式。在一个实施例中,具有有限目的的领域特定语言可以提供类型安全性,并且可以利用受限的表达性。生成的源代码可以是合约的精确描述。
编译器202可以是包括可执行代码的任何硬件、软件或其组合,该可执行代码在被计算机系统的一个或多个处理器执行时,会使该系统将源代码206作为输入并产生电路。编译器202可以指实施或执行指令的计算机程序,该指令基于已被编译成诸如二进制代码之类的机器可读格式的指令。应当注意,尽管示出了编译器202,但是可以利用解释器、汇编器以及其他合适的软件和/或硬件组件将源代码转换为电路。在一个实施例中,该电路是算术电路,其包括携带来自域F的值并连接到逻辑和/或算术门的电线。在一个实施例中,系统使用该电路
Figure BDA0002486411770000131
来生成二次程序(Quadratic Program)Q 208,该二次程序包括一组提供原始电路
Figure BDA0002486411770000132
的完整描述的多项式。
在一个实施例中,编译器202能够识别诸如C或Java之类的编程语言的实质性子集,包括但不限于:预处理器指令、静态初始化器、全局和局部函数、区块范围变量、数组、数据结构、指针、函数调用、函数运算符(例如,函子)、条件和循环以及算术和按位布尔运算符。在一个实施例中,编译器202不支持符合编程语言的标准的整个命令集(在某些情况下,这可能旨在防止在智能合约中执行某些类型的算法,例如禁止递归算法)。在一个实施例中,编译器将源代码的表达式扩展成算术门语言以产生算术电路。Campanelli,M.等人(2017年)在《重新审视零知识或有支付:攻击和服务支付》(Zero-Knowledge ContingentPayments Revisited:Attacks and Payments for Services)中,Tillich,S.和Smart,B在《适用于MPC和FHE的基本功能的电路》(Circuits of Basic Functions Suitable For MPCand FHE)中已经考虑过电路实现。编译器202或任何其他合适的硬件、软件或其组合(例如,图2中未示出的软件模块)可以利用算术电路构建二次算术问题(Quadratic ArithmeticProblem,简称QAP)。根据一个实施例,二次程序被编译成一组用于客户端(例如,密钥生成和验证)和工作者(例如,计算和证明生成)的加密例程。在一些实施例中,可以利用算术电路优化技术(例如在第1718505.9号英国专利申请中描述的)减少工作者确定智能合约的结果必需的资源。
在一个实施例中,密钥生成器204是硬件、软件或其组合,该硬件、软件或其组合包括可执行代码,该可执行代码在被计算机系统的一个或多个处理器执行时,使该系统从二次程序生成评估密钥和验证密钥。Gennaro,R.等人(2013年)所著的《没有PCP的二次跨度程序和简洁NIZK》(Quadratic Span Programs and Succinct NIZKs without PCPs)中考虑了将计算编码为二次程序的技术。在一个实施例中,二次算术问题(QAP)Q对域F上的电路进行编码,并包含一组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},使得t(x)除以p(x),则Q计算f:
Figure BDA0002486411770000151
因此,在一个实施例中,必须存在一些多项式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 BDA0002486411770000152
门的输出值等于其输入的乘积。整除性检查分解为deg(t(x))个单独的检查,其中每个门g和t(x)的根rg对应一次检查,使得p(rg)=0。加法门和乘以常数门对QAP的大小或阶次不起作用。
在一个实施例中,在域Fp上定义QAP,其中p是大素数。在一个实施例中,期望基于Fp的QAP有效地计算可以用加法和乘法模p表示的任何函数。算术分离门可以设计为将算术线a∈Fp(已知在[0,2k-1]中)转换为k条二进制输出线。因此,可以得出,布尔函数可以使用算术门表达。例如,NAND(a,b)=1–ab。每个嵌入式布尔门仅需一个乘法运算。此外,可以将诸如分割(Split)之类的新门定义为独立门,并与其他门组合。假定已知在[0,2k-1]中的输入a∈Fp,分割门输出k条线,这些线持有∑k 2i-1ai=a的二进制数字a1,...,ak,并且每个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)=∑d hi·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,也不能提供不正确的证明。因此,在该协议中,公共参考字符串(Common Reference String,简称CRS)是由客户端或至少发布评估密钥EK和验证密钥VK的受信任的第三方生成的。在一个实施例中,任何计算实体都可以使用发布的验证密钥VK验证计算。在一些实施例中,使用区块链脚本(例如,在基于比特币的网络中)执行验证阶段,该区块链脚本存储在验证计算时使用的元素,这与英国专利申请第1719998.5号中描述的技术一致。
使用本文所述的技术,客户端能够部分混淆交易数据,例如区块链交易的接收者的身份。在一个实施例中,解锁脚本不公开接收者的地址和接收者的公钥。但是,在某些情况下,交易的价值(例如转移的数字资产的数量)可能对区块链网络的节点可见。在一个实施例中,客户端利用如上下文所述的加密技术将锁定脚本转化为二次算术程序,而工作者则将算术程序求解以生成证明。
一般而言,客户端能够使用诸如P2PK和P2PKH之类的标准交易(例如,基于比特币的区块链网络中定义的标准交易)支付交易对方或工作者。例如,在一个实施例中,客户端将P2PK锁定脚本转换成算术电路,并广播包括从从该电路获得的谜题的支付交易。交易对方或工作者接收该电路,提供适当的输入(例如,证明工作者身份的信息,如客户端和工作者之间的共享秘密或使用工作者的私钥生成的数字签名),然后运行该电路以生成正确性证明π。在一个实施例中,该证明用于解锁资源(例如,数字资产),此外,可能存在这种情况,即识别交易对方或工作者的信息(例如,与交易对方或工作者相关联的公钥和/或数字签名)没有以不混淆的格式记录到区块链中。
在一个实施例中,根据上文和/或下文描述的技术生成验证密钥和相应的证明。因此,验证者将获得验证密钥VK和证明π:
Figure BDA0002486411770000181
Figure BDA0002486411770000182
这样,验证者就可以计算多个椭圆曲线乘法运算(例如,对每个公共输入变量进行计算)和五个成对检查,其中之一包括额外的配对乘法。
基于验证密钥VK、证明π和(a1,a2,…,aN)验证t(x)除以p(x),因此(xN+1,…,xm)=f(x0,…,xN),验证者的操作如下。首先,验证者检查所有三个α项:
Figure BDA0002486411770000191
Figure BDA0002486411770000192
Figure BDA0002486411770000193
其中,
Figure BDA0002486411770000194
然后,验证者检查β项:
Figure BDA0002486411770000195
Figure BDA0002486411770000196
最后,验证者检查整除性要求:
Figure BDA0002486411770000197
其中,
Figure BDA0002486411770000198
并且
Figure BDA0002486411770000199
因此,根据一个实施例,在考虑来自上述部分的表示法和本发明中描述的示例时,该验证包括以下元素的一组配对检查:
Figure BDA00024864117700001910
Figure BDA00024864117700001911
Figure BDA00024864117700001912
Figure BDA00024864117700001913
Figure BDA00024864117700001914
图3示出了用于协调可验证计算的执行的示意图300。客户端302、工作者304和验证者306可以是区块链网络的节点。客户端302可以是任何合适的计算机系统,其可以包括可执行代码,该可执行代码在被计算机系统的一个或多个处理器执行时,使得计算机系统接收智能合约308。在一个实施例中,智能合约308被使用高级编程语言(例如C、C++或Java)编码为源代码。在一个实施例中,可以利用诸如编译器、解释器和/或汇编器之类的软件将智能合约308转换为算术电路310,该算术电路310包括“线”,这些“线”带有来自域
Figure BDA00024864117700002010
的值并连接至加法和乘法门。应当注意的是,算术电路可以指逻辑电路,该逻辑电路可以由物理电路实施,该物理电路,包括通过物理线连接的一系列物理门(例如,使用晶体管-晶体管逻辑(TTL)的集成电路,诸如7400系列门、触发器、缓冲器、解码器、多路复用器等)。
在一个实施例中,客户端302向工作者304提供算术电路310和该电路的输入312。电路310可以用于生成二次程序Q,该二次程序Q包括提供原始电路的完整描述的一组多项式。在任一情况下,工作者304可以在输入312上执行电路
Figure BDA0002486411770000201
或二次程序
Figure BDA0002486411770000202
以产生一个或多个输出314。在一些实施例中,预期工作者(即证明者)将获得
Figure BDA0002486411770000203
的有效副本作为输出。
Figure BDA0002486411770000204
是对电路线的赋值,使得分配给输入线的值是x的值,中间值对应于
Figure BDA0002486411770000205
中每个门的正确操作,而分配给输出线的值是
Figure BDA0002486411770000206
如果声明的输出不正确(即
Figure BDA0002486411770000207
则不存在
Figure BDA0002486411770000208
的有效副本。在一个实施例中,期望工作者提供电路线的值的子集,其中,工作者事先并不知道电路线的值的所选子集。
在实施例中,使用输出
Figure BDA0002486411770000209
内部电路线(或其子集)的值以及评估密钥EK生成正确性证明316。该证明π可以存储在区块链上并且可以由多方验证而无需要求工作者304与多方分别交互。以这种方式,验证者306可以使用公共验证密钥VK和证明π来验证支付交易,从而验证合约。在某些情况下,如果验证失败,客户端302可以收回由支付交易锁定(encumber)的数字资产。
本文描述了在区块链网络上记录验证密钥的系统和方法。在许多情况下,区块链系统或网络用于如上所述的普通(标准)交易。根据本发明的实施例,有可能通过应用零知识简洁非交互式知识论证(Zero-knowledge Succinct Non-interactive Argument ofKnowledge,简称zk-SNARK)的实施方案提供用于创建和处理智能合约的系统。
在一个实施例中,交易包含称为脚本的小程序,这些脚本嵌入到交易的输入和输出中,并指定如何以及通过谁访问交易的输出。在比特币平台上,这些脚本是使用基于堆栈的脚本语言编写的。此外,区块链可以采用与数据(该数据可存储在区块中)量的最大数据阈值有关的约束条件,并且可以根据密钥(例如,编码多个椭圆曲线点的验证密钥VK)的大小来选择协议,该密钥的大小与允许的最大大小相关。例如,在基于比特币的协议中,在一个实施例中,锁定和解锁脚本的总大小不可以超过1650字节,并且赎回脚本的大小不可以超过520字节。在一个实施例中,解锁脚本和/或赎回脚本除了对验证密钥进行编码之外,还包括指令(例如,操作码),并且还可以包括其他指令和/或数据,该其他指令和数据用于验证工作者是否拥有验证密钥(例如,通过验证数字签名)。因此,生成提供如上所述的一些或全部功能的脚本是具有挑战性的,特别是结合使用较大的密钥大小,其在实施例中可以提供更大的安全性和/或安全性的加密保证。
在一个实施例中,作为锁定交易的一部分,客户端发布包括评估和验证密钥的公共参考字符串(Common Reference String,简称CRS)。在一个实施例中,CRS={EK,VK},尽管应该注意的是,如前所述,公共参考字符串可以包括任何其他合适的信息。评估密钥EK的大小至少部分地基于所考虑的电路的大小(例如,构成评估密钥EK的元素的数量与电路的内部门的数量相对应和/或成比例)。在一个实施例中,验证密钥的大小仅取决于输入和输出。在很多情况下,拥有证明的公共记录(例如,由证明者/工作者发布的工作证明或正确执行的证明)和相应的验证密钥VK很有用,因此,任何有权访问证明和验证密钥VK的实体都可以验证计算和证明的有效性。在一个实施例中,验证者306可以是任何合适的实体,如区块链的节点。还应注意,在一些实施例中,验证者306和客户端302是同一计算机系统。换句话说,在一些实施例中,任何可访问区块链网络的计算机系统都能够执行验证过程,该验证过程确定由上述声称的证明者/工作者提供的计算和证明的有效性。
在某些系统中,工作者的身份是已知的,并且客户端能够为执行合约直接向工作者付款。在一个实施例中,客户端通过获得与该工作者相关联的地址并将数字资产转移到与该工作者相关联的地址直接向该工作者付款。
根据各种实施例,图4示出了根据区块链协议的数据结构的示意图400,该区块链协议适合在区块链上记录验证密钥,其中,工作者能够证明拥有正确的验证密钥VK(例如,由客户端发布),以赎回数字资产,执行一系列操作(例如,执行智能合约)。此外,在一些实施例中,该协议允许在赎回资金以执行合约时包括正确性的证明。在一个实施例中,该协议是根据现有的区块链协议实现的,例如,本文所述的系统和方法可以在现有的比特币网络上实现,而无需修改比特币协议。
在一个实施例中,区块链系统支持各种类型的交易。在一个实施例中,根据基于比特币的系统,受支持的交易(例如,标准交易)是基于脚本散列的交易,例如支付脚本散列(P2SH)的交易。一般而言,基于脚本散列的交易是指任何交易,该任何交易验证解锁脚本的有效性包括提供与指定的加密散列值匹配的脚本。例如,在基于比特币的P2SH交易中,解锁脚本包括赎回脚本,锁定脚本包括至少一个条件,即由解锁脚本提供的赎回脚本的散列与指定值相匹配。例如,在基于比特币的系统中,可以基于以下内容描述锁定脚本:
OP_HASH160<20-byte hash of redeem script>OP_EQUAL
在一个实施例中,图4中的示意图400示出了适用于对验证密钥进行编码的结构的轮廓,其中工作者能够证明拥有正确的验证密钥VK。解锁脚本402和赎回脚本404可以根据支付脚本散列(P2SH)的交易描述的那些解锁脚本和赎回脚本实现。在某些情况下,区块链协议在解锁脚本402和相应的锁定脚本上强制实施最大总大小,和/或在赎回脚本404上强制实施最大总大小。例如,在基于比特币的系统中,P2SH标准交易必须小于或等于520字节。
解锁脚本402包括一个数据参数的集合,该数据参数集合满足放置在相应的锁定脚本中的一组条件。对于P2SH交易,锁定脚本通常包括散列值,并且要求解锁脚本包括赎回脚本,其中赎回脚本的散列与锁定脚本中编码的散列值相匹配。因此,在一个实施例中,锁定脚本通过对至少部分地基于该组约束条件的散列值进行编码、并通过要求解锁脚本中呈现的赎回脚本对该限制集合进行编码,间接地对该组条件进行编码。
具体地说,图4所示的解锁脚本402包括数字签名406、验证密钥VK的一个或多个子集(例如,第一子集412和最后一个子集416)、赎回脚本404以及附加的操作码(在本发明中也被称为“命令、操作、函数和指令”),如果被执行,则提供加密可验证的保证,即工作者拥有验证密钥VK。在一个实施例中,数字签名406是使用工作者的私钥生成的,并且可以使用与工作者相关联的公钥408对数字签名406的真实性进行加密验证。与工作者相关联的公钥408可以被编码在赎回脚本404中。因此,数字签名406充当工作者拥有验证密钥VK的证明。
在一个实施例中,验证密钥VK包括多个元素
Figure BDA0002486411770000231
其中每个元素是椭圆曲线上的一个点。验证密钥VK的元素可以划分为一个或多个子集。例如在图4中,示意图400示出了其中存在至少两个子集的示例,第一子集412和最后一个子集416—省略号表示在第一子集和最后一个子集之间可能存在其他的子集,但是情况未必总是如此—例如,可能有两个子集,其中第二子集是最后一个子集416。在一个实施例中,在此上下文中描述的每个子集都与任何其他子集不重叠,换句话说,如果元素
Figure BDA0002486411770000241
在一个子集中,它不是任何其他子集的成员。此外,在一个实施例中,验证密钥VK的每个元素都在一个子集的成员中。
需要注意的是,在某些情况下,验证密钥VK并没有被分割成多个不重叠的子集,而是在解锁脚本402中被编码为单个区块(即,作为整体),单个散列被编码在赎回脚本404中。与图4的讨论相关,解锁脚本将以类似于上下文描述的实施例的方式工作,其中唯一的散列值与散列整个验证密钥VK的输出进行比较。
继续上述对解锁脚本402所引用的讨论,解锁脚本还可以包括赎回脚本410。在一个实施例中,赎回脚本是一组参数,该组参数产生与在相应锁定脚本中编码的值匹配的散列输出。在一个实施例中,在两个步骤的过程中利用锁定脚本、解锁脚本和赎回脚本,其中在第一步骤中,对照锁定脚本检查赎回脚本以确定赎回脚本是否满足锁定脚本的条件,这些条件可能包含赎回脚本的散列值与预定值相匹配的条件。在一个实施例中,使用OP_HASH160操作码,其首先用SHA-256然后用RIPEMD-160对输入进行散列以产生散列输出。在一个实施例中,OP_HASH160操作的散列输出的大小为20字节(0x14字节)。
如上所述,解锁脚本402可以进一步包括操作码,其中解锁脚本402包括命令和数据,如果被执行,则该命令和数据提供加密可验证保证,即工作者拥有验证密钥VK。例如,对于将验证密钥VK分为两个子集的实施例,这样的解锁脚本可以按照以下方式来描述,诸如使用指令和数据(在括号中)描述的方式,该指令和数据基于堆栈的脚本语言(比如基于比特币的系统使用的脚本语言):
OP_PUSHDATA1<length of signature><signature>OP_PUSHDATA1<byte-lengthof VK1>VK1 OP_PUSHDATA1<byte-length of VK2>VK2 OP_PUSHDATA1<length of redeemscript><redeem script>
其中,如上所述,命令(例如“OP_PUSHDATA1”)的描述不带括号,而数据则用括号描述(例如“<length of signature>”是与数字签名406的字节大小对应的1字节整数)。符号VK1是指验证密钥VK的第一子集,而VK2是指验证密钥VK的第二子集,以使验证密钥VK=VK1||VK2、
Figure BDA0002486411770000251
Figure BDA0002486411770000252
应当注意,在某些情况下,验证密钥VK的各个子集具有相同的大小(例如,所有或一些子集包括与验证密钥VK相同数量的元素),但不总是这种情况。另外,“<redeem script>”是指赎回脚本的函数和数据,例如下文描述的示例性赎回脚本。
在一个实施例中,赎回脚本404用来满足在锁定脚本中编码的一个或多个条件。例如,锁定脚本可以包括散列值和条件,即解锁脚本包括例程,其中,例程上的散列输出产生与锁定脚本中包括的散列值匹配的输出值。在一个实施例中,该例程是赎回脚本404。在一个实施例中,对于验证密钥VK的每个子集,赎回脚本404包括对应的散列值、与工作者相关联的公钥414,以及附加操作码(在本发明中也被称为“命令、操作、函数和指令”),如果被执行,则该操作码提供加密可验证保证,即工作者拥有验证密钥VK。在一个实施例中,赎回脚本404在解锁脚本402的环境中执行。在一个实施例中,在赎回脚本中编码的散列值以相反的顺序编码,其中,验证密钥VK的相应子集出现在解锁脚本402中。例如,验证密钥VK的相应子集首先出现在解锁脚本402中,对应的第一散列414是出现在赎回脚本404中的最后一个散列值。同样,相对于验证密钥其他子集的散列,对应于验证密钥最后一个子集的散列418首先出现在赎回脚本中。应当注意,在这种情况下,该顺序是指散列值的相对顺序,并不暗示或强加相对于赎回脚本404中编码的其他数据和其他命令的任何顺序。继续前面的例子,合适的赎回脚本的描述方式如下:
OP_HASH160<HVK1>OP_EQUALVERIFY OP_HASH160<HVK2>
OP_EQUALVERIFY<PubKey worker>OP_CHECKSIG
其中,如上所述,命令(例如,“OP_HASH160”)的描述不带括号,而数据则用括号描述(例如,“<HVK1>”是20字节的值,与将OP_HASH160操作应用于VK1的结果相对应)。在一个实施例中,赎回脚本由客户端提供给工作者。应当注意,在一个实施例中,赎回脚本404不直接提供关于验证密钥VK的值的任何信息,其中验证密钥可用于促进密码攻击以确定验证密钥VK
在一个实施例中,区块链协议将解锁脚本402的最大大小定义为1650字节(包括1650字节)。区块链协议可以进一步定义520字节的最大大小,作为可以推入堆栈的最大整体数据块。在一个实施例中,验证密钥的元素的大小均为32字节。因此,根据上述约束条件,解锁脚本402可以包括以下内容:
Figure BDA0002486411770000261
因此,上述解锁脚本和赎回脚本可用于编码具有45个元素的验证密钥VK,每个元素的大小为32字节。
图5示出了根据本发明描述的各个实施例的锁定交易的示意图500。在一个实施例中,第一方502和第二方504以任何合适的方式就合约的条件达成一致。例如,当事方可离线同意一组合约条款(例如,通过当事方代表之间的面对面谈判,通过电话、电子邮件或任何其他合适的通信介质进行的谈判)。在一个实施例中,合约条款以编程方式达成协议,例如,计算机系统配置有参数,以评估合约的要约(例如履行价格)并确定是否接受要约。例如,第一方和第二方同意第一方向第二方出售并发行令牌,该令牌的成本为第二方同意支付的价格。在一个实施例中,令牌可以被赎回以用于有形资产(例如,消费品和服务)、数字资产及其任何组合。
在一个实施例中,第一方创建包括两个输入(例如,输入508和510)和两个输出(例如,输出512和514)的锁定交易506,并用关于应如何验证(例如,使用OP_CHECKSIG)签名的指示对其进行签名。在一个实施例中,该指示包括操作模式的指示和指示谁可以付款(例如,任何人都可以付款)的修饰符。在一个实施例中,输入和输出使用SIGHASH_SINGLE和SIGHASH_ANYONECANPAY签名。在一个实施例中,输入包括标称值的交易量(例如,几个比特币),而输出包括的交易量包括用于工作者的数字资产(其值可以基于诸如合约的价值等各种因素进行选择)和合约的价值(例如,第二方504根据合约条款同意向第一方502支付的数额)。
一般而言,操作模式可以提供锁定交易的哪些域的签名和/或以何种方式签名的指示。例如,其中所有可签名参数都被签名的第一操作模式(例如SIGHASH_ALL)。在一个实施例中,这包括交易的所有域,除了输入脚本。可支持的操作模式的第二个示例是不对输出进行签名的操作模式(例如SIGHASH_NONE),因此,其他实体可以通过更改其输入序列号来修改交易。可以支持的操作模式的另一示例是其中输入被签名但序列号被消隐的模式(例如,SIGHASH_SINGLE)。在一个实施例中,仅有一些或所有操作模式都受支持。此外,除了操作模式之外,关于仅对单个输出(或更一般地,输出的任何子集)进行签名且其他输出可任意选择,可以做出单独指示(例如,SIGHASH_ANYONECANPAY)。
接下来,将锁定交易506提供给第二方504。该锁定交易由第二方接收,该第二方验证该锁定交易是否正确。在这种情况下,锁定交易的正确性是指锁定交易准确地反映了各方之间的事先协议,并且正确性的验证包括,例如,验证令牌中编码的价格是否为各方之间商定的成本,合约条款是否采用先前约定的形式。在一个实施例中,确定锁定交易的正确性包括验证数字签名的真实性。
在确定锁定交易是正确的之后,第二方504添加一个新的输入516,该输入516可以包括数字资产(例如,作为各方协议条款的一部分商定的付款)和工作者为合约的执行支付的数字资产。第二方504也可以添加输出518,该输出518约束公共参考字符串,使用SIGHASH_SINGLE或SIGHASH_ALL签名并进行广播(例如,广播到区块链网络)。锁定交易被广播后,第一方502可以被认为是合约的所有者。在一个实施例中,密钥(如作为CRS的一部分,包括验证密钥VK和评估密钥EK)是使用域F生成的,其中
Figure BDA0002486411770000281
是该域的一个函数和对应的算术电路
Figure BDA0002486411770000282
其中
Figure BDA0002486411770000283
是大小为m和阶次为d相应的二次算术程序(例如,QAP)。另外,在一个实施例中,
Figure BDA0002486411770000284
是双线性映射,g是G的生成器。应该注意的是,虽然在这种情况下描述的表达式是为了表达清楚而选择的附加表达式,其他表示式(例如,指数表达式)也可以在本发明的实施例中使用。
在一个实施例中,通过选择随机或伪随机值rv,rw,s,αvwy,β,γ∈
Figure BDA0002486411770000285
并设置ry=rv·rw,rv·g=<gv>构建评估密钥EK和验证密钥VK。换句话说,一般而言,<a>=a·g。因此,评估密钥EK被定义为:
Figure BDA0002486411770000291
Figure BDA0002486411770000292
验证密钥VK被定义为:
VK=(<1>,<αv>,<αw>,<αy>,<γ>,<βγ>,<t(s)>,{<vk(s)><wk(s)><yk(s)>}k∈{0}∪[N])
其中N=Nin+Nout,即输入和输出的数量。在一个实施例中,具有配对映射的不对称配对将被定义为:
Figure BDA0002486411770000293
gi
Figure BDA0002486411770000294
的生成器。在这种情况下,VK将被定义为:
VK=(<1>1,<1>2,<αv>2,<αw>2,<αw>1,<αy>2,<β>1,<β>2,
<ryt(s)>1,{<vk(s)>1<wk(s)>2<yk(s)>1}k∈{0}∪[N])
其中ry=rv·rw
如上所述,评估密钥EK和验证密钥VK由组元素组成。应该注意的是,尽管为了清楚起见,本文讨论的组是椭圆曲线,具有足够高基数的任何组都是合适的。
在一个实施例中,存在配对功能基于椭圆曲线的实现方案。在一个实施例中,区块链网络的加密基于椭圆曲线,如secp256k1椭圆曲线。在一些实施例中,可以确定和/或估计在区块链上分配密钥所需的空间量。如上所述,验证密钥VK的元素的子集不涉及电路的大小,并且这些域所需的空间不依赖于电路的大小。
在某些情况下,标准区块链交易的最大大小对应于一个区块的最大大小。各种区块链系统可能具有各种上限,例如在基于比特币的系统中,标准交易定义的最大区块大小为1MB,最大标准交易大小为100KB。在某些区块链系统中,比如基于比特币的系统中,赎回脚本的大小为520字节或更小。在一个实施例中,赎回脚本的最大大小是可以被推送到堆栈上同时仍然符合标准交易条件的最大数据块的大小。在一个实施例中,解锁输入脚本和锁定脚本(例如,P2PK,P2PH等)的上限是1650字节。在一个实施例中,这等同于存储或以其他方式编码15个公钥的脚本。在一个实施例中,解锁脚本被称为输入脚本或签名脚本(例如,ScriptSig),并且包括数据参数的集合,该数据参数集合满足放置在先前脚本的条件,先前锁定脚本可被称为输出脚本或脚本公钥(scriptPubKey)。
因此,在一个实施例中,赎回脚本和相应的输入脚本以这样的方式设置:附加尽可能大的数据量,赎回脚本、相应的输入脚本和/或其他数据的设置至少部分取决于最大大小。在一个实施例中,解锁脚本包括或编码数字签名。在一个实施例中,图4示出了可能存在的最大解锁和锁定脚本的结构,该最大解锁和锁定脚本包括根据基于比特币的系统的标准类型交易的签名。应当注意,在一个实施例中,利用图4所示的结构以便在区块链系统的约束条件内(例如,标准交易的最大大小)附加尽可能大的数据量,但是在其他实施例中,该结构是以任何其他合适的方式定义的,例如允许少于可被附加的最大数据量的结构。
在一个实施例中,数据以非标准交易记录,既可作为标准交易的补充和/或替代。在一个实施例中,硬编码脚本的长度是10千字节(KB),并且区块链的一组挖矿节点为智能交易接受交易,这些智能交易原本被认为是非标准交易。换句话说,一些实施例利用可识别为智能交易的非标准交易,并且区块链网络的一个或多个节点接受这种交易。
图6示出了描述过程600的流程图,过程600根据至少一个实施例生成赎回脚本。过程600可以由任何合适的计算机系统执行,如结合图3在本发明中的其他地方描述的客户端。在一个实施例中,赎回脚本是在其他实施例的环境中生成的,例如结合图4描述的实施例。基于电路
Figure BDA0002486411770000301
和秘密s,客户端通过执行过程600确定包括验证密钥VK的公共参考字符串CRS。在一个实施例中,该过程根据依赖于各种子例程的协议进行,这些子例程执行各种函数。例如,no_TX(ARG)函数用于以字节或以任何合适的度量单位测量参数ARG的大小,在一个实施例中,该度量单位已转换为字节(例如,比特)。在一个实施例中,该函数用于确定要创建的锁定脚本的数量(602)。在一个实施例中,no_TX(ARG)函数测量ARG输入参数的字节大小,如果数据量可以存储在标准脚本中,则返回1,如果ARG超过标准交易中最大脚本的大小,则返回容纳数据量所需的必要输出(脚本)的交易数,该数据量与函数的输入ARG相对应。在一个实施例中,该函数仅返回与输入ARG相对应的数据量是否超过标准交易中脚本的最大大小的指示,例如真(TRUE)或假(FALSE)布尔指示或其任何等效指示(例如,等于FALSE指示的0整数值和等于TRUE指示的非零值)。在一个实施例中,向no_TX()子例程(例如,如上所述)提供验证密钥VK作为输入,提供了可用于确定要创建多少锁定交易的信息。
Figure BDA0002486411770000311
的值可以称为压缩密钥的大小。例如,验证密钥VK可以被划分为多个32位子序列。
Figure BDA0002486411770000312
可以是<k>的特定表示形式,例如,可以是<k>的十六进制等效形式。
根据一个实施例,该系统将验证密钥序列化为多个元素(604)。一般来说,序列化数据是指例如根据某些标准或协议设置的长度,将数据分成较小的块。例如,验证密钥VK可以划分为32位的块,即
Figure BDA0002486411770000313
在一个实施例中,块的大小至少部分地基于诸如压缩密钥之类的密钥的大小来选择。在一个实施例中,serialize(ARG)函数根据标准或协议设置的长度将ARG输入划分为较小的数据序列,例如,在一个实施例中,serialize(ARG)将数据序列序列化为连续的32字节子序列,尽管在其他实施例中,子序列可以具有由任何适当协议定义的不同的固定/可变长度。
一般而言,该系统选择验证密钥的元素的至少一个子集(606)。在一个实施例中,子集是总大小不超过阈值大小(例如,基于比特币的系统的堆栈对象的520字节的限制)的连续子集(例如,以上示例中所描述的那些)。在一个实施例中,通过按顺序选择符合规定大小限制的验证密钥VK的许多元素来确定子集。
在一个实施例中,该系统针对每个锁定交易,按照一组规则分配要包括在相应的解锁脚本中的一组密钥。在一个实施例中,协议对可以推送到堆栈上的数据对象的大小设有上限,例如,在比特币中,520字节是一个区块允许的最大大小。因此,如果验证密钥VK的大小小于或等于520字节(即如果系统能够确定可以对验证密钥进行编码而不将其拆分为多个子集)。在一个实施例中,系统计算所选元素的散列(608),如上所述,该所选元素可以是整个验证密钥VK。在一个实施例中,诸如OP_HASH160的操作码被用于散列子集。在一个实施例中,对象的散列利用多种加密散列算法,诸如SHA-256和RIPEMD-160,生成散列输出HVK,并被编码在赎回脚本中(如以下赎回脚本):
OP_HASH160 OP_EQUALVERIFY<PubKey worker>OP_CHECKSIG
当然,其他散列算法和相应的散列操作码也可以在各种实施例中使用。当赎回脚本与提供证明工作者拥有验证密钥的解锁脚本一起执行时,该赎回脚本可用于解锁由相应锁定脚本锁定(encumber)的数字资产。因此,赎回脚本的产生带有一个或多个条件(610),即对应的解锁脚本包括一个或多个参数,这些参数至少部分地基于所计算的散列值进行匹配。在一个实施例中,赎回脚本还包括以下条件:输出脚本包括使用工作者的私钥生成的数字签名,该工作者的私钥与在赎回脚本中编码的公钥相对应。
在一个实施例中,该系统确定验证密钥VK超过了堆栈上的数据块所允许的最大大小,并将验证密钥VK分为两个或更多子集。在一个实施例中,系统(例如)通过计算可以在协议的大小限制内编码的最大块数确定要包括在每个子集中的块数。在一个实施例中,系统使用最大的块数或未编码的剩余块数编码每个子集。例如,在基于比特币的系统中,其中,每个块
Figure BDA0002486411770000321
为32字节且
Figure BDA0002486411770000331
同时16<N≤32,验证密钥VK被划分为至少两个子集,例如第一子集
Figure BDA0002486411770000332
和第二子集
Figure BDA0002486411770000333
应当注意的是,在此示例中,VK1包括基于比特币的系统中最大堆栈数据块大小内允许的最大块数(即16x 32=512字节,这是在520字节的最大大小范围内,可以推送到堆栈上的最大整体数据块允许的最大块数)。在一个实施例中,每个子集,如VK1,VK2等被作为加密散列算法的输入提供以生成散列输出,并且该散列输出被编码为赎回脚本的条件,其中有效的解锁脚本提供了验证密钥VK或其一部分。作为示例,其中
Figure BDA0002486411770000334
对于16<N≤32且第二子集为
Figure BDA0002486411770000335
合适的赎回脚本可以描述为:
OP_HASH160<HVK2>OP_EQUALVERIFY OP_HASH160<HVK1>
OP_EQUALVERIFY<PubKey worker>OP_CHECKSIG
其中<HVK1>=HASH160(
Figure BDA0002486411770000336
)并且
Figure BDA0002486411770000337
在一个实施例中,系统生成第一散列<HVK1>,并确定从验证密钥元素的第二子集VK2生成第二散列<HVK2>。
作为第三示例,可以考虑结合图4描述的实施例,其中解锁脚本的最大大小是1650字节,而数据块的最大大小是520字节。系统最大化验证密钥
Figure BDA0002486411770000338
Figure BDA0002486411770000339
的大小,并选择第一子集
Figure BDA00024864117700003310
第二子集
Figure BDA00024864117700003311
和第三子集
Figure BDA00024864117700003312
计算相应的散列<HVK1>、<HVK2>和<HVK3>,并生成锁定脚本包括参数的条件,该参数与所计算的散列匹配,例如以下列方式:
OP_HASH160<HVK3>OP_EQUALVERIFY OP_HASH160<HVK2>
OP_EQUALVERIFY OP_HASH160<HVK1>OP_EQUALVERIFY<PubKeyworker>OP_CHECKSIG
每次生成散列时,系统可以确定是否应标识和散列其他子集(512)。在一个实施例中,系统基于确定验证密钥VK的每个元素是否在赎回脚本中具有对应条件来确定是否不需要额外的子集,该条件的满足基于工作者提供相应元素作为解锁脚本的一部分。在一个实施例中,系统使赎回脚本对于(例如)工作者可用(614),该工作者能够使用赎回脚本生成对应的解锁脚本。
为了将付款赎回给工作者(例如,与<PubKey worker>相关联的实体),在一个实施例中,工作者证明拥有正确的验证密钥VK。在一个实施例中,系统可以使用任何合适的证明,证明拥有正确的验证密钥VK,其中交易对方能够以加密方式验证工作者所声称的拥有证明。在一个实施例中,工作者将为每个锁定脚本创建一个解锁脚本,就像创建赎回脚本的情况一样,该解锁脚本将根据序列化的验证密钥VK的长度而有所不同。
如果序列化的验证密钥VK的长度具有足够小的基数(例如,VK足够小以至于可以将整个验证密钥推入堆栈而不进行分割),那么工作者将创建解锁脚本:
OP_PUSHDATA1<length of signature><signature>OP_PUSHDATA1<byte-length
of VK>VK OP_PUSHDATA1<length of redeem script><redeem script>
否则,如果序列化的验证密钥的长度超过适用的阈值,则工作者将VK分为两个或更多子集。例如,对于基于比特币的协议,其中
Figure BDA0002486411770000341
Figure BDA0002486411770000342
是32字节且
Figure BDA0002486411770000343
则创建解锁脚本:
OP_PUSHDATA1<length of signature><signature>OP_PUSHDATA1<byte-length
of VK1>VK1 OP_PUSHDATA1<byte-length of VK2>VK2 OP_PUSHDATA1
<length of redeem script><redeem script>
作为第三示例,可以考虑结合图4描述的实施例,其中解锁脚本的最大大小是1650字节,而数据块的最大大小是520字节。工作者将VK分为三个子集:
Figure BDA0002486411770000344
并创建解锁脚本:
OP_PUSHDATA1<length of signature><signature>OP_PUSHDATA1<byte-lengthof VK1>VK1 OP_PUSHDATA1<byte-length of VK2>VK2 OP_PUSHDATA1
<byte-length of VK3>VK3 OP_PUSHDATA1<length of redeem script><redeemscript>
除了明确讨论的实施例之外,还考虑了对本发明中所描述的实施例的各种扩展。在一个实施例中,诸如基于比特币的协议被用于实现本文描述的系统和方法,在某些情况下,现有协议可以被扩展以便支持附加功能。
例如,在一个实施例中,输出被分成多个转移,例如,输出被分成两个部分,一部分用于属于第一组G1的元素,另一部分用于第二组G2。因此,在此示例中,有两个付款给工作者的公钥的输入(使用脚本中每个组的组元素的十六进制表示)。对于两个输入中的每一个,重复此协议中对称配对的步骤。在一个实施例中,相应地,协议将被扩展以将验证密钥拼凑在一起。
作为第二示例,密钥(例如,分别按照从组G1和G2产生的元素的顺序)保持原样,并且扩展了协议(例如,现有的基于比特币的协议)以对密钥进行编码和解码,通过使用散列映射或任何其他合适的数据结构,将组元素的哪个32字节表示形式分离到属于哪个组。在一个实施例中,在现有协议(例如,由区块链网络的节点集的至少一个子集使用的协议的扩展)之上运行的软件被用于编码和解码密钥,并且将组元素的哪个32字节表示形式分离到属于哪个组。
在一个实施例中,图7示出了一个实施例的示意图700,其中在赎回数字资产以执行合约时,协议被修改为包括计算证明(704)。例如,扩展了基于比特币的协议以支持包括赎回数字资产以执行合约时的计算证明。在一个实施例中,计算证明包括固定数量的元素并且具有固定长度属性。图7示出了如何在区块链上记录计算证明的一个示例,其中第一数据块702(例如,第一数据块Data1)被分割,使得第一数据块702包括对应于计算证明704的元素,该计算证明704被推送到alt堆栈(例如,使用诸如OP_TOALTSTACK的命令),以便腾出空间来针对对应的公钥进行签名检查。在一个实施例中,对应于验证密钥的第一批元素在区块中被标记为“Data1”(708)。应当注意,数据块大小的注释纯粹是说明性的。
在本发明的范围内可以预期其他增强。如在别处所讨论的,可以通过附加支持来增强诸如本文所述协议,该附加支持可读取已验证密钥(例如,HASH160(VK))和验证密钥VK本身的散列值,并结合锁定和工作者赎回交易的交易标识符分别发布两者。因此,以这种方式,稍后验证工作者发布的正确性证明的实体可以这样做,确保密钥是客户最初发布的密钥。
在一个实施例中,本文描述的协议(例如,基于比特币的协议)通过对正确性的证明进行检查的附加操作码、命令或语句(例如,以上述方式)进行扩展。在一个实施例中,OP_CHECKPOC操作码受到支持并对正确性证明、验证密钥、输入(u)和输出(y)进行操作,操作方式与OP_CHECKSIG如何检查用于交易输入的签名是否有效的方式类似。在一个实施例中,OP_CHECKPOC返回真(TRUE)或假(FALSE)值,1或0值等,表征正确性证明是否通过验证。
图8是可用于实践本发明的至少一个实施例的计算设备800的示意性简化方框图。在各种实施例中,计算设备800可以用于实现以上图示和描述的任何系统。例如,计算设备800可以用作数据服务器、Web服务器,便携式计算设备、个人计算机或任何电子计算设备。如图8所示,计算设备800可以包括一个或多个处理器802,在实施例中,处理器通过总线子系统804与多个外围子系统通信并可有效地耦合到该外围子系统。在一些实施例中,这些外围子系统包括存储子系统806,该存储子系统包括存储器子系统808和文件/磁盘存储子系统810、一个或多个用户界面输入设备812、一个或多个用户界面输出设备814以及网络接口子系统816。此类存储子系统806可用于临时或长期存储信息。
在一些实施例中,总线子系统804提供了一种机制,该机制使计算设备800的各个组件和子系统能够按预期彼此通信。尽管总线子系统804被示意性地示出为单个总线,但是总线子系统的替代实施例可利用多个总线。在一些实施例中,网络接口子系统816提供到其他计算设备和网络的接口。在一些实施例中,网络接口子系统816用作用于从计算设备800接收数据以及将数据从计算系统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是代表从特定开始日期起发生的滴答数的计数器,并且在一些实施例中,其整体位于计算设备800中。在各个实施例中,本地时钟824用于以特定的时钟脉冲同步数据传输(该数据传输位于计算设备800的处理器和其中包含的子系统中),并可用于协调计算设备800与数据中心中的其他系统之间的同步操作。在另一个实施例中,本地时钟是可编程间隔计时器。
计算设备800可以是多种类型中的任何一种,包括便携式计算机设备、平板计算机、工作站或以下所述的任何其他设备。
另外,在某些实施例中,计算设备800可以包括可通过一个或多个端口(例如USB、耳机插孔、闪电连接器等)连接到计算设备800的另一设备。在实施例中,这样的设备包括接受光纤连接器的端口。因此,在一些实施例中,该设备是将光信号转换为电信号的设备,该电信号通过将设备连接至计算设备800的端口进行传输以进行处理。由于计算机和网络的不断变化的性质,图8中描绘的计算设备800的描述仅作为特定示例说明设备的优选实施例。比图8所示的系统具有更多或更少组件的许多其他配置都是可能的。
应当说明的是,上述实施例说明而非限制本发明,在不脱离本发明的由所附权利要求限定的范围的情况下,本领域技术人员将能够设计出许多替代性实施例。在权利要求中,括号中的任何附图标记不应解释为对权利要求的限制。词语“包括(comprising)”和“包括(comprises)”等并非在整体上排除其他元件和步骤的存在。在本说明书中,“包括(comprises)”意指“包括(includes)或由......组成(consists of)”,“包括(comprising)”意指“包括(including)或由......组成(consisting of)”。元件的单数引用不意味着排除这些元件的复数引用,反之亦然。本发明可以借助包括若干不同元件的硬件,以及借助适当编程的计算机来实施。在列举了若干装置的设备权利要求中,这些装置中的若干个可以由硬件的同一个部件来体现。不争的事实是,在相互不同的从属权利要求中列举了某些方法,并不代表这些方法的结合不能获得有益效果。
本文引用的所有参考文献,包括出版物、专利申请和专利,均以引用的方式并入本文,其引用程度如同每个参考文献均被单独地且具体地表示为通过引用并入本文并完整列出一样。

Claims (16)

1.一种计算机实现的方法,包括:
获取与区块链交易相关的第一脚本,所述第一脚本包括:
第一组命令;和
一个或多个加密散列值;
生成第二脚本,所述第二脚本包括:
第二组命令;
多个元素的一个或多个子集,其中,多个元素共同形成验证密钥,并且一个或多个子集共同包括验证密钥的每个元素;
第一脚本;和
与生成第二脚本的计算机系统相关联的标识符;和
至少部分地基于执行第一组命令和第二组命令来确定一个或多个加密散列值是否与验证密钥的一个或多个子集匹配,以生成计算机系统有权访问验证密钥的证明。
2.根据权利要求1所述的计算机实现的方法,其中,所述多个元素中的元素是椭圆曲线上的点。
3.根据前述任意一项权利要求所述的计算机实现的方法,其中,所述第一组命令和所述第二组命令共同包括指令,所述指令用于至少部分地基于所述验证密钥的所述一个或多个子集中的子集来确定所述一个或多个加密散列值中的第一加密散列值是否与散列输出相匹配。
4.根据权利要求3所述的计算机实现的方法,其中,至少使用SHA-256和RIPEMD-160加密散列算法来生成所述散列输出。
5.根据前述任意一项权利要求所述的计算机实现的方法,其中,获得所述第一脚本包括:
识别所述验证密钥的所述一个或多个子集;和
为所述验证密钥的所述一个或多个子集的每个子集计算相应的加密散列值,其中所述一个或多个加密散列值包括每个相应的加密散列值。
6.根据前述任意一项权利要求中所述的计算机实现的方法,还包括:在验证生成的证明之后,将由所述交易承担的数字资产的控制权转移到所述计算机系统。
7.根据权利要求6所述的计算机实现的方法,还包括:从第二计算机系统获得所述第一脚本,其中,所述第二计算机系统贡献了所述数字资产的至少一部分。
8.根据前述任意一项权利要求所述的计算机实现的方法,其中,所述交易是P2SH交易。
9.根据前述任意一项权利要求中所述的计算机实现的方法,其中,所述验证密钥的所述一个或多个子集的至少一个子集的大小大于或等于512字节,并且小于或等于520字节。
10.根据前述任意一项权利要求所述的计算机实现的方法,其中:
第一脚本的大小大于或等于58字节,并且小于或等于104字节;和
第二脚本的大小大于或等于1628字节,并且小于或等于1650字节。
11.根据前述任意一项权利要求所述的计算机实现的方法,其中,所述交易是根据区块链协议的标准交易。
12.根据前述任意一项权利要求所述的计算机实现的方法,其中,所述验证密钥的每个元素恰好在所述子集中的一个子集中。
13.根据前述任意一项权利要求所述的计算机实现的方法,其中,所述一个或多个子集是一个子集,所述一个子集包括所述验证密钥。
14.根据前述任意一项权利要求所述的计算机实现的方法,其中:
所述第一脚本还包括与所述计算机系统相关联的公钥;
与所述计算机系统相关联的所述标识符是使用与所述计算机系统相关联的所述公钥相对应的私钥生成的数字签名;和
所述计算机系统可以访问所述验证密钥的所述证明还至少部分基于所述数字签名和所述公钥。
15.一种系统,包括:
处理器;和
存储器,所述存储器包括可执行指令,所述可执行指令在被所述处理器执行时,使得所述系统执行根据前述任意一项权利要求所述的计算机实现的方法。
16.一种非暂时性计算机可读存储介质,存储有可执行指令,所述可执行指令在被计算机系统的处理器执行时,使所述计算机系统至少执行根据权利要求1至14中任意一项所述的计算机实现的方法。
CN201880073019.5A 2017-11-09 2018-10-29 在区块链上记录验证密钥的系统 Pending CN111345005A (zh)

Applications Claiming Priority (13)

Application Number Priority Date Filing Date Title
GBGB1718505.9A GB201718505D0 (en) 2017-11-09 2017-11-09 Computer-implemented system and method
GB1718505.9 2017-11-09
GB1719998.5 2017-11-30
GBGB1719998.5A GB201719998D0 (en) 2017-11-30 2017-11-30 Computer-Implemented system and method
GBGB1720768.9A GB201720768D0 (en) 2017-12-13 2017-12-13 Computer-implemented system and method
GB1720768.9 2017-12-13
GB1801753.3 2018-02-02
GBGB1801753.3A GB201801753D0 (en) 2018-02-02 2018-02-02 Computer-implemented system and method
GB1805948.5 2018-04-10
GBGB1805948.5A GB201805948D0 (en) 2018-04-10 2018-04-10 Computer-implemented system and method
GB1806444.4 2018-04-20
GBGB1806444.4A GB201806444D0 (en) 2018-04-20 2018-04-20 Computer-implemented system and method
PCT/IB2018/058434 WO2019092544A1 (en) 2017-11-09 2018-10-29 System for recording verification keys on a blockchain

Publications (1)

Publication Number Publication Date
CN111345005A true CN111345005A (zh) 2020-06-26

Family

ID=64100702

Family Applications (6)

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

Family Applications Before (3)

Application Number Title Priority Date Filing Date
CN201880072692.7A Pending CN111406379A (zh) 2017-11-09 2018-10-29 用于可证实计算的类似c的智能合约的算术增强
CN201880072678.7A Active CN111345004B (zh) 2017-11-09 2018-10-29 用于简化可执行指令以优化可验证计算的系统
CN202311496467.5A Pending CN117640170A (zh) 2017-11-09 2018-10-29 用于简化可执行指令以优化可验证计算的系统

Family Applications After (2)

Application Number Title Priority Date Filing Date
CN201880072801.5A Pending CN111316595A (zh) 2017-11-09 2018-10-29 用于保护验证密钥不被更改并验证正确性证明的有效性的系统
CN201880072729.6A Pending CN111316594A (zh) 2017-11-09 2018-11-01 分布式计算系统和方法

Country Status (9)

Country Link
US (8) US11658801B2 (zh)
EP (7) EP3707623A1 (zh)
JP (9) JP7234229B2 (zh)
KR (5) KR20200086284A (zh)
CN (6) CN111406379A (zh)
SG (5) SG11202004147RA (zh)
TW (1) TWI806918B (zh)
WO (5) WO2019092545A1 (zh)
ZA (1) ZA202002575B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113222747A (zh) * 2020-12-31 2021-08-06 上海能链众合科技有限公司 一种区块链隐私交易方法
CN115801288A (zh) * 2023-01-10 2023-03-14 南方科技大学 一种基于区块链和零知识证明的验证方法、系统及设备

Families Citing this family (38)

* 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
EP3707623A1 (en) 2017-11-09 2020-09-16 Nchain Holdings Limited System for simplifying executable instructions for optimised verifiable computation
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
US11711202B2 (en) 2019-05-29 2023-07-25 International Business Machines Corporation Committing data to blockchain based on approximate hash verification
US11429738B2 (en) 2019-05-29 2022-08-30 International Business Machines Corporation Blockchain endorsement with approximate hash verification
US11539527B2 (en) 2019-05-29 2022-12-27 International Business Machines Corporation Peer node recovery via approximate hash verification
US11570002B2 (en) 2019-05-29 2023-01-31 International Business Machines Corporation Reduced-step blockchain verification of media file
US11516000B2 (en) * 2019-05-29 2022-11-29 International Business Machines Corporation Approximate hash verification of unused blockchain output
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 杭州复杂美科技有限公司 交易攻击的防御方法、设备和存储介质
GB201913143D0 (en) * 2019-09-12 2019-10-30 Nchain Holdings Ltd Running a program from a blockchain
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
CN115066672A (zh) * 2020-02-21 2022-09-16 松下电器(美国)知识产权公司 控制方法、分析装置及程序
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 百度在线网络技术(北京)有限公司 区块链中事务请求处理方法、装置、设备和介质
CN111768187A (zh) 2020-08-31 2020-10-13 支付宝(杭州)信息技术有限公司 一种部署智能合约的方法、区块链节点和存储介质
CA3091660A1 (en) * 2020-08-31 2021-11-03 Polymath Inc. Method, system, and medium for blockchain-enabled atomic settlement
CN112926979A (zh) * 2020-09-07 2021-06-08 陈建芸 结合区块链通信的支付信息处理方法及区块链信息平台
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
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
CN113469690B (zh) * 2021-07-23 2024-03-26 佳乔(深圳)投资有限公司 一种基于区块链的交易结算方法
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
CN114978514B (zh) * 2022-07-27 2022-11-01 杭州友恭科技有限公司 密钥管理方法、系统、装置、电子装置和存储介质
US11792259B1 (en) 2022-09-28 2023-10-17 T-Mobile Innovations Llc Methods and systems for distributing rendering across devices in a customer premise
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 (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9215076B1 (en) * 2012-03-27 2015-12-15 Amazon Technologies, Inc. Key generation for hierarchical data access
US20160292672A1 (en) * 2015-03-31 2016-10-06 Nasdaq, Inc. Systems and methods of blockchain transaction recordation
US20160342977A1 (en) * 2015-05-20 2016-11-24 Vennd.io Pty Ltd Device, method and system for virtual asset transactions
US20170091726A1 (en) * 2015-09-07 2017-03-30 NXT-ID, Inc. Low bandwidth crypto currency transaction execution and synchronization method and system
CN106780032A (zh) * 2016-12-16 2017-05-31 杭州云象网络技术有限公司 一种多链场景下的区块链链间资产转移方法
US20170300872A1 (en) * 2016-04-18 2017-10-19 R3 Ltd. System and method for managing transactions in dynamic digital documents
US20170317833A1 (en) * 2016-04-30 2017-11-02 Civic Technologies, Inc. Methods and apparatus for providing attestation of information using a centralized or distributed ledger

Family Cites Families (97)

* 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 コンパイラ処理方法
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
US6711717B2 (en) * 2001-10-11 2004-03-23 California Institute Of Technology Method and system for compiling circuit designs
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
US20160004820A1 (en) 2005-02-01 2016-01-07 Newsilike Media Group, Inc. Security facility for maintaining health care data pools
US8200700B2 (en) * 2005-02-01 2012-06-12 Newsilike Media Group, Inc Systems and methods for use of structured and unstructured distributed data
TW200725415A (en) 2005-12-30 2007-07-01 Tatung Co Ltd Method for automatically translating high level programming language into hardware description language
WO2007102518A1 (ja) * 2006-03-07 2007-09-13 The University Of Tokushima 算術符号化装置、算術符号化方法、算術符号化プログラム及びプログラムを格納したコンピュータで読み取り可能な記録媒体
US7926040B2 (en) 2006-09-06 2011-04-12 International Business Machines Corporation Method and system for timing code execution in a korn shell script
US20100067686A1 (en) 2006-10-30 2010-03-18 Kazuhiro Minematsu Shared key block cipher apparatus, 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.
US8543885B2 (en) 2007-11-18 2013-09-24 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
EP2566053A4 (en) 2010-04-27 2013-11-13 Nec Corp ENCODING DEVICE, ERROR CORRECTING CODE CONFIGURATION METHOD, AND PROGRAM THEREOF
WO2012126086A1 (en) 2011-03-18 2012-09-27 Certicom Corp. Secure financial transactions
US8924966B1 (en) * 2011-03-31 2014-12-30 Emc Corporation Capture/revert module for complex assets of distributed information technology infrastructure
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
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
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
PL3073670T4 (pl) 2015-03-27 2021-08-23 Black Gold Coin, Inc. System i sposób osobistej identyfikacji i weryfikacji
WO2016155804A1 (en) 2015-03-31 2016-10-06 Nec Europe Ltd. Method for verifying information
US20160321751A1 (en) * 2015-04-28 2016-11-03 Domus Tower, Inc. Real-time settlement of securities trades over append-only ledgers
JP2017004044A (ja) 2015-06-04 2017-01-05 富士通株式会社 ライセンス管理プログラム、ライセンス管理方法、およびライセンス管理システム
CN106293892B (zh) 2015-06-26 2019-03-19 阿里巴巴集团控股有限公司 分布式流计算系统、方法和装置
EP3320475B1 (en) 2015-07-10 2020-03-04 Nec Corporation 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
RU2715505C1 (ru) * 2015-09-30 2020-02-28 Секисуй Кемикал Ко., Лтд. Межслойная пленка для ламинированного стекла и ламинированное стекло
WO2017079652A1 (en) 2015-11-05 2017-05-11 Pulsifer Allen 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
EP3380984A4 (en) * 2015-11-24 2019-07-31 Ben-Ari, Adi SYSTEM AND METHOD FOR THE PROTECTION OF DATA BY INTELLIGENT BLOCKCHAIN CONTRACT
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
CA3013185A1 (en) * 2016-02-23 2017-08-31 nChain Holdings Limited A method and system for securing computer software using a distributed hash table and a blockchain
BR112018016234A2 (pt) 2016-02-23 2019-01-02 Nchain Holdings Ltd método implementado por computador para controlar o acesso a um recurso, sistemas baseados em computador e método para controle de acesso a uma carteira digital
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
AU2017240796A1 (en) 2016-03-31 2018-10-25 Clause, Inc. System and method for creating and executing data-driven legal contracts
US10545739B2 (en) 2016-04-05 2020-01-28 International Business Machines Corporation LLVM-based system C compiler for architecture synthesis
ES2835784T3 (es) 2016-04-05 2021-06-23 Zamna Tech Limited Método y sistema para gestionar información personal dentro de sistemas informáticos independientes y redes digitales
KR102608099B1 (ko) 2016-04-11 2023-12-01 엔체인 홀딩스 리미티드 블록체인에서 안전한 피어-투-피어 통신을 위한 방법
US20170300897A1 (en) * 2016-04-14 2017-10-19 American Express Travel Related Services Company, Inc. Systems and Methods for an Electronic Wallet Payment Tool
EP3449452B1 (en) 2016-04-29 2022-06-29 Nchain Holdings Limited Implementing logic gate functionality using a blockchain
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 索尼公司 基于区块链的系统以及系统中的电子设备和方法
FR3052286B1 (fr) 2016-06-06 2018-06-15 Morpho Procede de verification d'un droit d'acces d'un individu
US10447478B2 (en) 2016-06-06 2019-10-15 Microsoft Technology Licensing, Llc Cryptographic applications for a blockchain system
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
WO2018127446A1 (en) 2017-01-06 2018-07-12 Koninklijke Philips N.V. Distributed privacy-preserving verifiable computation
JP6644195B1 (ja) 2017-01-06 2020-02-12 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. 認証されたデータ上のピノキオ/トリノキオ
CN106790253A (zh) * 2017-01-25 2017-05-31 中钞信用卡产业发展有限公司北京智能卡技术研究院 基于区块链的认证方法和装置
CN107274184A (zh) 2017-05-11 2017-10-20 上海点融信息科技有限责任公司 基于零知识证明的区块链数据处理
CN107179932A (zh) 2017-05-26 2017-09-19 福建师范大学 基于fpga高层次综合指令的优化方法及其系统
CN107330775A (zh) * 2017-07-05 2017-11-07 贵州大学 一种基于比特币协议的首价密封交易方法
US10268829B2 (en) 2017-08-11 2019-04-23 Dragonchain, Inc. Security systems and methods based on cryptographic utility token inventory tenure
WO2019033074A1 (en) * 2017-08-11 2019-02-14 Dragonchain, Inc. SYSTEMS AND METHODS OF INTERACTION WITH DISTRIBUTED REGISTERS
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
EP3707623A1 (en) 2017-11-09 2020-09-16 Nchain Holdings Limited System for simplifying executable instructions for optimised verifiable computation

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9215076B1 (en) * 2012-03-27 2015-12-15 Amazon Technologies, Inc. Key generation for hierarchical data access
US20160292672A1 (en) * 2015-03-31 2016-10-06 Nasdaq, Inc. Systems and methods of blockchain transaction recordation
US20160342977A1 (en) * 2015-05-20 2016-11-24 Vennd.io Pty Ltd Device, method and system for virtual asset transactions
US20170091726A1 (en) * 2015-09-07 2017-03-30 NXT-ID, Inc. Low bandwidth crypto currency transaction execution and synchronization method and system
US20170300872A1 (en) * 2016-04-18 2017-10-19 R3 Ltd. System and method for managing transactions in dynamic digital documents
US20170317833A1 (en) * 2016-04-30 2017-11-02 Civic Technologies, Inc. Methods and apparatus for providing attestation of information using a centralized or distributed ledger
CN106780032A (zh) * 2016-12-16 2017-05-31 杭州云象网络技术有限公司 一种多链场景下的区块链链间资产转移方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ANDREAS M.ANTONOPOULOS: "《Mastering Bitcoin》", 31 December 2014, pages: 132 - 134 *
MATTEO CAMPANELLI: "Zero-Knowledge Contingent Payments Revisited: Attacks and Payments for Services", 《2017 ACM SIGSAC CONFERENCE ON COMPUTER AND COMMUNICATIONS SECURITY》, 3 November 2017 (2017-11-03), pages 229 - 243 *
杨义先: "应用密码学 第2版", 北京邮电大学出版社, pages: 288 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113222747A (zh) * 2020-12-31 2021-08-06 上海能链众合科技有限公司 一种区块链隐私交易方法
CN113222747B (zh) * 2020-12-31 2024-01-26 上海零数众合信息科技有限公司 一种区块链隐私交易方法
CN115801288A (zh) * 2023-01-10 2023-03-14 南方科技大学 一种基于区块链和零知识证明的验证方法、系统及设备

Also Published As

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

Similar Documents

Publication Publication Date Title
EP3707871B1 (en) System for recording verification keys on a blockchain
CN111316615B (zh) 使用调解器计算机系统确保计算机程序正确执行的系统和方法
JP7285840B2 (ja) プルーフ検証に基づいてオフ・チェーン・データを認証するシステム及び方法
CN110663053A (zh) 将未确定来源的未确定数据安全地提供到区块链交易的锁定脚本中
TW201928755A (zh) 用以安全分享密碼材料之系統及方法
EP3966998A1 (en) Hash function attacks
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