CN117611146A - 将未确定来源的未确定数据安全地提供到区块链事务的锁定脚本中 - Google Patents

将未确定来源的未确定数据安全地提供到区块链事务的锁定脚本中 Download PDF

Info

Publication number
CN117611146A
CN117611146A CN202311131068.9A CN202311131068A CN117611146A CN 117611146 A CN117611146 A CN 117611146A CN 202311131068 A CN202311131068 A CN 202311131068A CN 117611146 A CN117611146 A CN 117611146A
Authority
CN
China
Prior art keywords
transaction
script
data
blockchain
blockchain 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
CN202311131068.9A
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 GBGB1708196.9A external-priority patent/GB201708196D0/en
Priority claimed from GBGB1708192.8A external-priority patent/GB201708192D0/en
Priority claimed from GBGB1708200.9A external-priority patent/GB201708200D0/en
Priority claimed from GBGB1708198.5A external-priority patent/GB201708198D0/en
Priority claimed from GBGB1708185.2A external-priority patent/GB201708185D0/en
Priority claimed from GBGB1708190.2A external-priority patent/GB201708190D0/en
Application filed by Nchain Holdings Ltd filed Critical Nchain Holdings Ltd
Publication of CN117611146A publication Critical patent/CN117611146A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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/389Keeping log of transactions for guaranteeing non-repudiation of a transaction
    • 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
    • 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/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • G06F21/645Protecting data integrity, e.g. using checksums, certificates or signatures using a third party
    • 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/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
    • G06Q20/0658Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash e-cash managed locally
    • 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/22Payment schemes or models
    • G06Q20/223Payment schemes or models based on the use of peer-to-peer networks
    • 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/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • 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/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3674Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes involving authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3825Use of electronic signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3827Use of message hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • 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/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/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
    • 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
    • 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
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • 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
    • G06Q2220/00Business processing using cryptography
    • 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/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
    • H04L9/3252Cryptographic 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 using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Accounting & Taxation (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Finance (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Algebra (AREA)
  • Data Mining & Analysis (AREA)
  • Power Engineering (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Peptides Or Proteins (AREA)
  • Window Of Vehicle (AREA)
  • Slot Machines And Peripheral Devices (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及例如基于共识的区块链的分布式分类账技术。对用于安全地提供来自确定或未确定来源的未确定数据的计算机执行的方法进行了说明。使用区块链网络来实现本发明。在区块链网络中的节点处接收要验证的第一事务,其中所述第一事务包括第一脚本。所述第一脚本至少包括第一值,所述第一值的至少一部分包括不被第二脚本约束的数据;和第二值。获得第二事务,其中所述第二事务已得到验证并且包括第二脚本。所述第二脚本由于被执行而使所述节点:由于所述第一脚本的执行而获得所述第一值和所述第二值;和至少部分地基于所述第一值和所述第二值来确认所述数据与数据来源相关联。通过执行所述第一脚本和所述第二脚本来验证所述第一事务。

Description

将未确定来源的未确定数据安全地提供到区块链事务的锁定 脚本中
本申请为中国申请号为201880033760.9,申请日为2018年05月14日,名称为“将未确定来源的未确定数据安全地提供到区块链交易的锁定脚本中”的专利申请的分案申请。
技术领域
本发明大体上涉及分布式分类账技术,包括区块链事务,且更具体地,涉及使字段从区块链事务注入解锁事务脚本中。本发明利用加密和数学技术来增强与通过区块链网络进行的电子转账有关的安全性。本发明特别适合,但不限于,在智能合约和状态机中使用。
背景技术
在本文中,我们使用术语“区块链”来包括所有形式的基于计算机的电子分布式分类账。这些包括基于共识的区块链和事务链技术、经过许可和未经许可的分类账、共享分类账及其变化形式。应注意,包括非商业应用在内的替代区块链(alternative blockchain)实现方式和协议也落入本发明的范围内。例如,无论是否发生加密货币交换,技术都可以提供优势,利用对可以在事务内编码的约束,具有限制的区块链实现方式。
区块链是点对点(peer-to-peer)的电子分类账,其实现为基于计算机的,去中心化的,分布式***,所述***由区块组成,而区块又由事务和其它信息组成。在一些示例中,“区块链事务”是指对包括数据和条件集的字段值的结构化集合进行编码的输入消息,满足所述条件集是将字段集写入区块链数据结构的前提条件。例如,每个事务都是对数字资产控制在区块链***参与者之间的转移进行编码的数据结构,并且包括至少一个输入和至少一个输出。在一些实现方式中,可以通过将数字资产的至少一部分从第一实体重新关联到第二实体来执行对数字资产的控制的转移。每个区块包括前一个区块的散列,因此区块被链接在一起以创建自区块链创建以来一直写入区块链的所有事务的永久性不可变记录。事务包括嵌入到其输入和输出中的被称为脚本的小程序,所述小程序规定如何以及通过谁可以访问事务的输出。在一些平台上,这些脚本是使用基于堆栈的脚本语言编写的。
也就是说,基于堆栈的脚本语言可以利用堆栈。使用堆栈,可以将值压入堆栈的顶部或从堆栈的顶部弹出。对堆栈执行的各种操作可以使得将一个或多个值推入堆栈的顶部或从堆栈的顶部弹出。例如,OP_EQUAL操作会从堆栈中弹出顶部两项,将它们进行比较,然后将结果(例如,如果相等则为1,如果不相等则为0)压入堆栈的顶部。对堆栈执行的其它操作,例如OP_PICK,可以允许从堆栈顶部以外的位置选择项。在一些本发明的实施例采用的一些脚本语言中,可能至少有两个堆栈:主堆栈和备用堆栈。脚本语言的一些操作可以将项从一个堆栈的顶部移动到另一个堆栈的顶部。例如,OP_TOALTSTACK将值从主堆栈的顶部移动到备用堆栈的顶部。
为了将事务写入区块链,必须对其进行“验证(validated)”。网络节点执行工作以确保每个事务均有效,而无效事务则被网络拒绝。一个节点可以具有不同于其它节点的有效性标准。由于区块链中的有效性是基于共识的,因此,如果大多数节点同意事务有效,则事务被视为有效。安装在节点上的软件客户端通过执行未花费事务(UTXO)锁定和解锁脚本来对部分引用UTXO的事务执行此验证工作。如果锁定和解锁脚本的执行评估为真,并且满足其它验证条件(如果适用),则事务被节点验证为有效。将经验证的事务传播到其它网络节点,随后网络节点可以选择将所述事务包括在区块链中。因此,为了将事务写入区块链,必须:i)由接收事务的第一节点验证事务-如果事务被验证,则所述节点将事务中继到网络中的其它节点;且ii)将事务添加到由网络节点构建的新区块;且ⅲ)挖掘,即将事务添加到过去事务的公共分类账。当将足够数量的区块添加到区块链以使事务实际上不可逆时,事务被视为已确认。
发明内容
本发明描述了一个或多个基于区块链的计算机程序的技术方面。基于区块链的计算机程序是记录在区块链事务中的机器可读和可执行程序。基于区块链的计算机程序包括可以处理输入以产生结果的规则,然后可以根据这些结果执行操作。如果锁定脚本既可以访问解锁事务又可以访问先前事务,则可以利用区块链来实现高度灵活和复杂的智能合约。当前研究的一个领域是使用基于区块链的计算机程序来实现“智能合约”。与将以自然语言编写的传统合约不同,智能合约可以是设计成自动执行机器可读合约或协议条款的计算机程序。
在实施例中,尽管可以在智能合约中的特定步骤对与特定实体的交互进行编码,但智能合约可以其它方式自动执行和自强制执行。在一些示例中,自动执行是指成功执行以实现UTXO的转移的智能合约的执行。应注意,在此类示例中,能够使得UTXO转移的“实体”是指能够创建解锁脚本而无需证明某些秘密知识的实体。换句话说,可以在不核验数据来源(例如,创建了解锁事务的实体)是否有权访问加密秘密(例如,私有非对称密钥、对称密钥等)的情况下验证解锁事务。同样,在此类示例中,自强制执行是指使区块链网络的验证节点根据约束来强制执行解锁事务。在一些示例中,从技术意义上使用“解锁”UTXO(也称为“花费”UTXO)是指创建引用UTXO并作为有效执行的解锁事务。
区块链事务输出包括锁定脚本和关于数字资产的所有权的信息。锁定脚本,也可以称为留置(encumbrance),通过指定转移UTXO所需符合的条件来“锁定”数字资产。例如,锁定脚本可以要求在解锁脚本中提供某些数据以解锁相关联的数字资产。锁定脚本在一些区块链中也称为“脚本公钥(scriptPubKey)”。要求一方提供数据以解锁数字资产的技术涉及将数据的散列嵌入锁定脚本内。然而,如果在创建锁定脚本时数据是未确定的(例如,未知的和未固定的),则会出现问题。
因此,期望提供在这些方面中的一个或多个方面中改进区块链技术的改进的方法和***。因此,根据本发明,提供了如所附权利要求书中所定义的方法和对应***。
本发明可以被描述为核验(verification)方法/***,和/或被描述为用于控制区块链事务的验证的控制方法/***。在一些实施例中,经验证的区块链事务使得事务记录在区块链上,这在一些应用中可以使得经由区块链进行数字资产的交换或转移。数字资产是由区块链管理的资源的单位。尽管在一些实施例中,数字资产可以用作加密货币,但是在实施例中,设想数字资产可以另外或替代地用于其它情形。应注意,本发明虽然适用于数字资产的控制,但是本发明本质上是技术性的,并且可以在利用区块链数据结构而不一定涉及数字资产转移的其它情形使用。如下所述,本发明还可以被描述为用于经由区块链网络或平台执行操作的新的、改进的和有利的方式的安全方法/***。
如下文将更详细描述的,在实施例中,通过采用解锁事务的字段值集和来自解锁事务的解锁脚本的签名散列(SIGHASH)类型作为输入并执行签名生成和核验操作,可以给予锁定脚本访问解锁事务的某些字段的权限。
如下文将更详细描述的,在实施例中,通过约束从解锁事务的某些字段中提取的事务标识符(ID),使得序列化的先前事务包括在解锁事务的解锁脚本中,可以给予锁定脚本访问先前事务中的字段集的权限。根据实施例,可以提供一种将序列化的先前事务注入区块链事务锁定脚本中的方法,所述方法采用对应于第一事务的第一字段值集和对应于另一事务的第二字段值集作为输入,从第一字段值集中提取事务标识符,并且基于第二字段值集确定另一事务对应于事务标识符。
如下文将更详细描述的,在实施例中,锁定和解锁脚本可以用于使得能够安全地提供来自确定或未确定来源的未确定数据。为了使来自未确定来源的数据免受更改的影响,可以将数据嵌入序列化的先前事务中。应注意,即使数据在序列化的先前事务中,从锁定脚本不会将所述数据约束为某一值的意义上来说,它也是未确定的。为了使来自确定来源的数据不被更改,可以将来自确定来源的公钥包括在锁定脚本中,在锁定脚本中,可以使用数据修改公钥,然后可以使用公钥来验证使用修改后的私钥签名的数据的签名。根据实施例,可以提供一种方法,来获得未确定数据和第二值,并且基于解锁脚本中提供的数据和第二值来验证未确定数据与数据来源相关联。
如下文将更详细描述的,在实施例中,可以通过从先前事务中提取约束参数并将约束参数应用于解锁事务的字段来创建参数化智能合约。可以通过具有约束的锁定脚本来实现参数化智能合约,所述约束通过由来自确定或未确定来源的解锁事务的解锁脚本中提供的安全的未确定数据进行参数化。根据实施例,可以提供一种方法,来获得未确定数据,可以根据所述未确定数据确定要应用于数字资产重新关联的约束集,并且根据所述约束集将数字资产与第二实体重新关联。
如下文将更详细描述的,在实施例中,将智能合约创建为自复制的,直到达到终止条件为止。根据实施例,可以提供一种方法,来检查是否满足终止条件,并且如果不满足终止条件,则检查先前事务的锁定脚本与解锁事务的锁定脚本是否匹配。
如下文将更详细描述的,在实施例中,可以使用参数化的自复制的智能合约来创建不可信任的确定性状态机。根据实施例,可以提供一种方法,来核验自复制的锁定脚本,并且至少部分地基于来自确定来源的输入和不可信任的确定性状态机的当前状态来确定不可信任的确定性状态机的下一状态。
本发明所描述和建议的新颖技术扩展了区块链的功能,而不会破坏确保区块链数据结构内存储的数据的完整性的区块链特性。例如,这些技术通过利用区块链网络来设置和强制执行重新关联数字资产的标准,从而改进了计算领域,特别是用于验证的条件被定义为嵌入记录中的智能合约的数字记录验证领域。另外,本发明所描述和建议的技术可以通过使区块链事务能够充当状态机而使计算机程序功能取决于记录在这种状态机中的状态来改进区块链网络的功能。
此外,本发明所描述和建议的技术可能必须植根于计算机技术中,以便克服由于安全性原因而专门设计为限制功能的区块链技术特有的问题。例如,脚本本身不支持复杂的流控制功能,例如发生循环。这种限制的一个优点是程序具有可预测的执行时间。将脚本限制为线性或树状决策任务的另一个显著优点是它避免了无限循环,无限循环可能被用作发起例如拒绝服务(DoS或DDoS)攻击之类的漏洞的手段。因此,增强并保留了区块链转移/交换的安全性,但是需要找到机制来实现语言本身不允许或不提供的功能。本发明在这方面取得了进步,通过自复制和自引用区块链事务锁定脚本的实现方式,至少部分地解决了区块链事务的当前限制。因此,本发明提供了技术问题的技术解决方案,并且在安全性、经由区块链的数字资产交换/转移的改进控制以及当前区块链相关功能的扩展方面提供了优点。
因此,根据本发明,可以提供一种如所附权利要求书中所定义的计算机实现的方法(和对应***)。可以将所述计算机实现的方法描述为区块链数据约束方法。所述计算机实现的方法可以包括:i)在区块链网络中的节点处接收对数字资产的控制进行转移的第一事务,所述第一事务包括第一脚本,所述第一脚本至少:包括第一事务的字段值集;并且由于被执行而使节点获得所述字段值集;ii)获得第二事务,所述第二事务与数字资产相关联,并且包括第二脚本,所述第二脚本由于被执行而使节点至少:至少部分地基于由于第一脚本的执行而提供的字段值集来生成签名;以及iii)通过执行第一脚本和第二脚本来验证第一事务。
可以在不核验创建第一事务的实体是否有权访问秘密信息的情况下成功执行对第一事务的验证。
第一脚本可以进一步包括非对称密钥对中的私有加密密钥。另外或替代地,第二脚本可以进一步使节点至少部分地基于私有加密密钥和掩码数来生成签名。另外或替代地,验证第一事务可以进一步包括验证签名是否与非对称密钥对中的公共加密密钥相关联。
第一脚本可以进一步指定签名散列类型。另外或替代地,字段值集可以至少部分地基于签名散列类型。
签名散列类型可以是指示第一事务的字段值集中的哪些字段值将被包括在签名中的值。
第二脚本可以是施加用于验证第一事务的条件集的锁定脚本。另外或替代地,锁定脚本的执行可以使节点通过确定是否已满足条件集来验证第一事务。
第一脚本可以是用于满足第二脚本的条件集的解锁脚本。
数字资产可以与区块链网络中的未花费事务输出相关联。
节点可以是通信连接到区块链网络中的至少一个其它节点的计算装置。
区块链网络可以由运行区块链协议实例的分布式电子装置组成。
可以使用图灵不完整指令集来编写第一脚本和第二脚本。
使用图灵完整指令集来编写第一脚本和第二脚本。
通过包括字段集,第一脚本可以使节点由于第一脚本的执行而使字段集可用作第二脚本的输入。
还期望提供一种***,所述***包括:处理器;以及包括可执行指令的存储器,所述可执行指令由于由处理器执行而使所述***执行所要求保护的任何方法。
还期望提供一种其上存储有可执行指令的非暂时性计算机可读存储介质,所述可执行指令由于由计算机***的处理器执行而使计算机***至少执行所要求保护的任何方法。
因此,根据本发明,可以提供一种如所附权利要求书中所定义的计算机实现的方法(和对应***)。可以将所述计算机实现的方法描述为区块链数据约束方法。所述计算机实现的方法可以包括:i)在区块链网络中的节点处接收对数字资产的控制进行转移的第一事务,所述第一事务包括第一脚本,所述第一脚本由于被执行而使节点至少:获得对应于第一事务的第一字段值集;以及获得对应于特定事务的第二字段值集;ii)获得第二事务,所述第二事务与数字资产相关联,并且包括第二脚本,所述第二脚本由于被执行而使节点至少:获得由于第一脚本的执行而提供的特定事务的第一字段值集和第二字段值集;从第一字段值集中提取事务标识符;以及至少部分地基于第二字段值集确定特定事务对应于事务标识符;以及iii)通过执行第一脚本和第二脚本来验证第一事务。
第二字段值集可以采用规范化格式。
节点可以通过生成第二字段值集的散列来确定特定事务对应于事务标识符。另外或替代地,节点可以通过核验散列与事务标识符匹配来确定特定事务对应于事务标识符。
特定事务可以与对被转移的数字资产的控制相关联。
特定事务可以与不同于被转移的数字资产的第二数字资产相关联。
可以在不核验创建第一事务的实体是否有权访问秘密信息的情况下成功验证第一事务。
节点可以是区块链网络的验证节点。
验证第一事务可以进一步包括由于第一事务的成功验证而将第一事务添加到区块链网络中的区块链。
第二脚本可以是施加用于验证第一事务的条件集的锁定脚本。另外或替代地,锁定脚本的执行可以使节点通过确定是否已满足条件集来验证第一事务。
第一脚本可以是用于满足第二脚本的条件集的解锁脚本。
第一脚本可以指定签名散列类型。另外或替代地,第二脚本可以进一步由于被执行而使节点获得由于第一脚本的执行而提供的签名散列类型。
第二脚本可以进一步由于被执行而使节点至少部分地基于签名散列类型来确定特定事务是与第一事务相关联的事务集的组成部分。
第二脚本可以进一步由于被执行而使节点至少部分地基于签名散列类型来确定特定事务对应于第二事务。
还期望提供一种***,所述***包括:处理器;以及包括可执行指令的存储器,所述可执行指令由于由处理器执行而使所述***执行所要求保护的任何方法。
还期望提供一种其上存储有可执行指令的非暂时性计算机可读存储介质,所述可执行指令由于由计算机***的处理器执行而使计算机***至少执行所要求保护的任何方法。
因此,根据本发明,可以提供一种如所附权利要求书中所定义的计算机实现的方法(和对应***)。可以将所述计算机实现的方法描述为区块链数据约束方法。所述计算机实现的方法可以包括:i)在区块链网络中的节点处接收对数字资产的控制进行转移的第一事务,所述第一事务包括第一脚本,所述第一脚本包括至少:第一值,所述第一值的至少一部分包括不受第二脚本约束的数据;以及第二值;ii)获得第二事务,所述第二事务与数字资产相关联,并且包括第二脚本,所述第二脚本由于被执行而使节点至少:由于第一脚本的执行而获得第一值和第二值;以及至少部分地基于第一值和第二值验证数据与特定来源相关联;以及iii)通过执行第一脚本和第二脚本来验证第一事务。
第二脚本可以是包括用于验证第二事务的条件集的锁定脚本。另外或替代地,第一脚本可以是用于满足锁定脚本的条件集的解锁脚本。
可以在不核验创建第一事务的实体是否有权访问秘密信息的情况下执行对第一事务的验证。
数据与数据来源关联的失败验证可能会导致验证第一事务失败。
特定来源的身份可以不受第二脚本约束。
特定事务可以是数据的特定来源。另外或替代地,第一值可以是特定事务的字段值集。另外或替代地,第二值可以包括与特定事务相关联的事务标识符。第二脚本可以通过验证特定事务对应于事务标识符来验证数据与数据来源相关联。
第二脚本可以通过验证事务标识符与特定事务的字段集的散列匹配来验证特定事务对应于事务标识符。
通过包括特定事务的字段集,第一脚本可以使节点由于第一脚本的执行而使特定事务的字段集可以用作第二脚本的输入。
特定事务可以是第二事务。
数据可以被编码在特定事务的字段中。
第二脚本可以约束特定来源的身份。
第二值可以是签名。另外或替代地,第二脚本可以进一步使节点获得与数据来源相关联的公钥,并且另外或替代地,至少部分地基于公钥和数据来生成修改后的公钥。另外或替代地,第二脚本可以至少部分地基于修改后的公钥来验证数据与数据来源相关联。
可以通过对公钥执行椭圆曲线点乘以数据值来生成修改后的公钥。
还期望提供一种***,所述***包括:处理器;以及包括可执行指令的存储器,所述可执行指令由于由处理器执行而使所述***执行所要求保护的任何方法。
还期望提供一种其上存储有可执行指令的非暂时性计算机可读存储介质,所述可执行指令由于由计算机***的处理器执行而使计算机***至少执行所要求保护的任何方法。因此,根据本发明,可以提供一种如所附权利要求书中所定义的计算机实现的方法(和对应***)。可以将所述计算机实现的方法描述为区块链数据约束方法。所述计算机实现的方法可以包括:i)在区块链网络中的节点处接收对数字资产的控制进行转移的第一事务,所述第一事务包括第一脚本,所述第一脚本由于被执行而使节点至少获得数据和第一事务的第一字段值集;ii)获得第二事务,所述第二事务包括第二脚本,所述第二脚本由于被执行而使节点至少:至少部分地基于由于第一脚本的执行而提供的数据来确定约束集;以及至少部分地基于第一字段值集来针对第一事务核验约束集;以及iii)根据由于第一脚本和第二脚本的执行而获得的约束集来转移对数字资产的控制。
可以在不核验创建第一事务的实体是否有权访问秘密信息的情况下执行对数字资产的控制的转移。
数据来源的身份可以不受第二脚本约束。
第二脚本可以约束数据来源的身份。
第二脚本可以包括可用于验证数据的特定数据来源的公钥。
验证数据可以包括至少部分地基于公钥和数据来生成修改后的公钥,并且另外或替代地,至少部分地基于修改后的公钥来确定数据与数据来源相关联。
可以至少部分地从数据中的参数集中导出约束集。
约束集的满足可以是用于重新关联数字资产的至少一部分的条件。
转移对数字资产的控制可以包括将数字资产从第一实体重新关联到第二实体。
可以至少部分地基于约束集来确定第二实体的身份。
数据来源可以是第二事务。另外或替代地,数据包括第二事务的第二字段值集。另外或替代地,第二脚本的执行可以使得至少部分地从第二字段值集中导出约束集。
可以至少部分地基于约束集来确定第二实体的身份。
约束集可以进一步使数字资产的至少一部分与第三实体重新关联。
还期望提供一种***,所述***包括:处理器;以及包括可执行指令的存储器,所述可执行指令由于由处理器执行而使所述***执行所要求保护的任何方法。
还期望提供一种其上存储有可执行指令的非暂时性计算机可读存储介质,所述可执行指令由于由计算机***的处理器执行而使计算机***至少执行所要求保护的任何方法。
因此,根据本发明,可以提供一种如所附权利要求书中所定义的计算机实现的方法(和对应***)。可以将所述计算机实现的方法描述为区块链数据约束方法。所述计算机实现的方法可以包括:i)在区块链网络中的节点处接收对数字资产的控制进行转移的第一事务,所述第一事务包括第一脚本,所述第一脚本由于被执行而使节点至少:获得第一事务的第一字段值集,所述第一字段值集包括第三脚本;以及获得第二事务的第二字段值集,所述第二字段值集包括第二脚本的副本;ii)获得第二事务,所述第二事务包括第二脚本,所述第二脚本由于被执行而使节点由于确定终止条件没有得到满足而至少:从第一字段值集获得第三脚本;以及确定第二脚本的副本与第三脚本匹配;以及iii)由于第一脚本和第二脚本的执行而转移对数字资产的控制。
第二事务可以是与数字资产相关联的事务。另外或替代地,第一事务可以是将数字资产的至少一部分从第一实体重新关联到第二实体的事务。
第一脚本可以是用于满足第二脚本的条件集的解锁脚本。
第二脚本可以是施加用于验证第一事务的条件集的锁定脚本。
第三脚本可以是施加用于验证未来事务的条件集的锁定脚本。
转移对数字资产的控制可以包括将数字资产从第一实体重新关联到第二实体。
确定终止条件没有得到满足可以包括确定与第二事务相关联的数字资产的数额足以重新关联数字资产的至少一部分。
可以将第三脚本嵌入第一字段值集的字段值中。
区块链网络可以由运行区块链协议实例的分布式电子装置组成。
可以在不核验创建第一事务的实体是否有权访问秘密信息的情况下执行对数字资产的控制的转移。
作为用于转移对数字资产的控制的另一条件,第二脚本可以进一步使节点核验第一事务符合附加约束。
第一和第二事务可以是与数字资产相关联的重复智能合约集的组成部分。
重复智能合约集可以由终止条件终止。
还期望提供一种***,所述***包括:处理器;以及包括可执行指令的存储器,所述可执行指令由于由处理器执行而使所述***执行所要求保护的任何方法。
还期望提供一种其上存储有可执行指令的非暂时性计算机可读存储介质,所述可执行指令由于由计算机***的处理器执行而使计算机***至少执行所要求保护的任何方法。
因此,根据本发明,可以提供一种如所附权利要求书中所定义的计算机实现的方法(和对应***)。可以将所述计算机实现的方法描述为区块链数据约束方法。所述计算机实现的方法可以包括:计算机实现的方法,包括:i)在区块链网络中的节点处接收对数字资产的控制进行转移的第一事务,所述第一事务包括第一脚本,所述第一脚本由于被执行而使节点至少获得第一事务的第一字段值集、第二事务的第二字段值集,以及输入;ii)获得第二事务,所述第二事务包括第二脚本,所述第二脚本包括规则集,所述第二脚本由于被执行而使节点至少:核验第二脚本与嵌入第一字段值集中的第三脚本匹配;至少部分地基于第二字段值集确定当前状态;以及至少部分地基于所述当前状态、所述输入和所述规则集确定下一状态;核验所述下一状态包括在第一字段值集中;以及iii)由于第一脚本和第二脚本的执行而转移对数字资产的控制。
第二脚本可以约束输入来源的身份。
所要求保护的任何方法可以进一步包括核验输入来源的加密秘密。
规则集可以是状态转换矩阵。
第三脚本可以是施加用于验证未来事务的条件集的锁定脚本。
第二脚本可以进一步使节点确定终止条件没有得到满足。
输入可以嵌入在第二字段值集中。
终止条件可以是与第二事务相关联的数字资产的大小不足以进行转移。
当前状态可以指示第二事务的状态。
下一状态可以指示在验证时第一事务的状态。
所要求保护的任何方法可以进一步包括接收第三事务。另外或替代地,所要求保护的任何方法可以进一步包括:从第一事务获得第四脚本,所述第四脚本由于被执行而使节点至少部分地基于下一状态、第二输入和规则集来确定不同于下一状态和当前状态的另一状态。
当前状态和下一状态可以是第一和第二事务的可能状态集的组成部分。
转移对数字资产的控制可以包括将数字资产从第一实体重新关联到第二实体。
还期望提供一种***,所述***包括:处理器;以及包括可执行指令的存储器,所述可执行指令由于由处理器执行而使所述***执行所要求保护的任何方法。
还期望提供一种其上存储有可执行指令的非暂时性计算机可读存储介质,所述可执行指令由于由计算机***的处理器执行而使计算机***至少执行所要求保护的任何方法。
因此,根据本发明,可以提供一种如所附权利要求书中所定义的方法(和对应***)。可以将所述方法描述为区块链数据约束方法。所述方法可以包括:i)在区块链网络中的节点处接收要验证的第一事务,所述第一事务包括第一脚本,所述第一脚本至少:包括第一事务的字段值集;并且由于被执行而使节点获得所述字段值集;ii)获得第二事务,所述第二事务已被验证并且包括第二脚本,所述第二脚本由于被执行而使节点至少:至少部分地基于由于第一脚本的执行而提供的字段值集来生成签名;以及iii)通过执行第一脚本和第二脚本来验证第一事务。
可以在不核验创建第一事务的实体是否有权访问秘密信息的情况下成功执行对第一事务的验证。
第一脚本可以进一步包括非对称密钥对中的私有加密密钥。另外或替代地,第二脚本可以进一步使节点至少部分地基于私有加密密钥和掩码数来生成签名。另外或替代地,验证第一事务可以进一步包括验证签名与非对称密钥对中的公共加密密钥相关联。
第一脚本可以进一步指定签名散列类型。另外或替代地,字段值集可以至少部分地基于签名散列类型。
签名散列类型可以是指示第一事务的字段值集中的哪些字段值将被包括在签名中的值。
第二脚本可以是施加用于验证第一事务的条件集的锁定脚本。另外或替代地,锁定脚本的执行可以使节点通过确定是否已满足条件集来验证第一事务。
第一脚本可以是用于满足第二脚本的条件集的解锁脚本。
验证第一事务可以使未花费事务输出转移。
节点可以是通信连接到区块链网络中的至少一个其它节点的计算装置。
区块链网络可以由运行区块链协议实例的分布式电子装置组成。
可以使用图灵不完整指令集来编写第一脚本和第二脚本。
使用图灵完整指令集来编写第一脚本和第二脚本。
通过包括字段集,第一脚本可以使节点由于第一脚本的执行而使字段集可用作第二脚本的输入。
还期望提供一种***,所述***包括:处理器;以及包括可执行指令的存储器,所述可执行指令由于由处理器执行而使所述***执行所要求保护的任何方法。
还期望提供一种其上存储有可执行指令的非暂时性计算机可读存储介质,所述可执行指令由于由计算机***的处理器执行而使计算机***至少执行所要求保护的任何方法。
因此,根据本发明,可以提供一种如所附权利要求书中所定义的方法(和对应***)。可以将所述方法描述为区块链数据约束方法。所述方法可以包括:i)在区块链网络中的节点处接收要验证的第一事务,所述第一事务包括第一脚本,所述第一脚本由于被执行而使节点至少:获得对应于第一事务的第一字段值集;以及获得对应于特定事务的第二字段值集;ii)获得第二事务,所述第二事务已被验证并且包括第二脚本,所述第二脚本由于被执行而使节点至少:获得由于第一脚本的执行而提供的第一字段值集和特定事务的第二字段值集;从第一字段值集中提取事务标识符;以及至少部分地基于第二字段值集来确定特定事务对应于事务标识符;以及iii)通过执行第一脚本和第二脚本来验证第一事务。
第二字段值集可以采用规范化格式。
节点可以通过生成第二字段值集的散列来确定特定事务对应于事务标识符。另外或替代地,节点可以通过核验散列与事务标识符匹配来确定特定事务对应于事务标识符。
特定事务可以与由于验证第一事务而转移的对数字资产的控制相关联。
特定事务可以与第二数字资产相关联,所述第二数字资产不同于由于验证第一事务而转移的数字资产。
可以在不核验创建第一事务的实体是否有权访问秘密信息的情况下成功验证第一事务。
节点可以是区块链网络的验证节点。
验证第一事务可以进一步包括由于第一事务的成功验证而将第一事务添加到区块链网络中的区块链。
第二脚本可以是施加用于验证第一事务的条件集的锁定脚本。另外或替代地,锁定脚本的执行可以使节点通过确定是否已满足条件集来验证第一事务。
第一脚本可以是用于满足第二脚本的条件集的解锁脚本。
第一脚本可以指定签名散列类型。另外或替代地,第二脚本可以进一步由于被执行而使节点获得由于第一脚本的执行而提供的签名散列类型。
第二脚本可以进一步由于被执行而使节点至少部分地基于签名散列类型来确定特定事务是与第一事务相关联的事务集的组成部分。
第二脚本可以进一步由于被执行而使节点至少部分地基于签名散列类型来确定特定事务对应于第二事务。
还期望提供一种***,所述***包括:处理器;以及包括可执行指令的存储器,所述可执行指令由于由处理器执行而使所述***执行所要求保护的任何方法。
还期望提供一种其上存储有可执行指令的非暂时性计算机可读存储介质,所述可执行指令由于由计算机***的处理器执行而使计算机***至少执行所要求保护的任何方法。
因此,根据本发明,可以提供一种如所附权利要求书中所定义的方法(和对应***)。可以将所述方法描述为区块链数据约束方法。所述方法可以包括:i)在区块链网络中的节点处接收要验证的第一事务,所述第一事务包括第一脚本,所述第一脚本包括至少:第一值,所述第一值的至少一部分包括不受第二脚本约束的数据;以及第二值;ii)获得第二事务,所述第二事务已被验证并且包括第二脚本,所述第二脚本由于被执行而使节点至少:由于第一脚本的执行而获得第一值和第二值;以及至少部分地基于第一值和第二值验证数据与特定来源相关联;以及iii)通过执行第一脚本和第二脚本来验证第一事务。
第二脚本可以是包括用于验证第二事务的条件集的锁定脚本。另外或替代地,第一脚本可以是用于满足锁定脚本的条件集的解锁脚本。
可以在不核验创建第一事务的实体是否有权访问秘密信息的情况下执行对第一事务的验证。
数据与数据来源关联的失败验证可能会导致验证第一事务失败。
特定来源的身份可以不受第二脚本约束。
特定事务可以是特定数据来源。另外或替代地,第一值可以是特定事务的字段值集。另外或替代地,第二值可以包括与特定事务相关联的事务标识符。第二脚本可以由于被执行而通过验证特定事务对应于事务标识符来验证数据与数据来源相关联。
第二脚本可以由于被执行而通过验证事务标识符与特定事务的字段集的散列匹配来验证特定事务对应于事务标识符。
通过包括特定事务的字段集,第一脚本可以使节点由于第一脚本的执行而使特定事务的字段集可以用作第二脚本的输入。
特定事务可以是第二事务。
数据可以被编码在特定事务的字段中。
第二脚本可以约束特定来源的身份。
第二值可以是签名。另外或替代地,第二脚本可以进一步使节点获得与数据来源相关联的公钥,并且另外或替代地,至少部分地基于公钥和数据来生成修改后的公钥。另外或替代地,第二脚本可以由于被执行而至少部分地基于修改后的公钥来验证数据与数据来源相关联。
可以通过对公钥执行椭圆曲线点乘以数据值来生成修改后的公钥。
还期望提供一种***,所述***包括:处理器;以及包括可执行指令的存储器,所述可执行指令由于由处理器执行而使所述***执行所要求保护的任何方法。
还期望提供一种其上存储有可执行指令的非暂时性计算机可读存储介质,所述可执行指令由于由计算机***的处理器执行而使计算机***至少执行所要求保护的任何方法。
因此,根据本发明,可以提供一种如所附权利要求书中所定义的方法(和对应***)。可以将所述方法描述为区块链数据约束方法。所述方法可以包括:i)在区块链网络中的节点处接收要验证的第一事务,所述第一事务包括第一脚本,所述第一脚本由于被执行而使节点至少获得数据和第一事务的第一字段值集;ii)获得第二事务,所述第二事务包括第二脚本,所述第二脚本由于被执行而使节点至少:至少部分地基于由于第一脚本的执行而提供的数据来确定约束集;以及至少部分地基于第一字段值集来针对第一事务核验约束集;以及iii)根据由于第一脚本和第二脚本的执行而获得的约束集来验证第一事务。
可以在不核验创建第一事务的实体是否有权访问秘密信息的情况下执行对第一事务的验证。
数据来源的身份可以不受第二脚本约束。
第二脚本可以约束数据来源的身份。
第二脚本可以包括可用于验证数据的特定数据来源的公钥。
验证数据可以包括至少部分地基于公钥和数据来生成修改后的公钥,并且另外或替代地,至少部分地基于修改后的公钥来确定数据与数据来源相关联。
可以至少部分地从数据中的参数集中导出约束集。
约束集的满足可以是用于重新关联数字资产的至少一部分的条件。
验证第一事务可以包括将数字资产从第一实体重新关联到第二实体。
约束集可以进一步使数字资产的至少一部分与第三实体重新关联。
可以至少部分地基于约束集来确定第二实体的身份。
数据来源可以是第二事务。另外或替代地,数据包括第二事务的第二字段值集。另外或替代地,第二脚本的执行可以使得至少部分地从第二字段值集中导出约束集。
可以至少部分地基于约束集来确定第二实体的身份。
约束集可以进一步使数字资产的至少一部分与第三实体重新关联。
还期望提供一种***,所述***包括:处理器;以及包括可执行指令的存储器,所述可执行指令由于由处理器执行而使所述***执行所要求保护的任何方法。
还期望提供一种其上存储有可执行指令的非暂时性计算机可读存储介质,所述可执行指令由于由计算机***的处理器执行而使计算机***至少执行所要求保护的任何方法。
因此,根据本发明,可以提供一种如所附权利要求书中所定义的方法(和对应***)。可以将所述方法描述为区块链数据约束方法。所述方法可以包括:i)在区块链网络中的节点处接收要验证的第一事务,所述第一事务包括第一脚本,所述第一脚本由于被执行而使节点至少:获得第一事务的第一字段值集,所述第一字段值集包括第三脚本;以及获得第二事务的第二字段值集,所述第二字段值集包括第二脚本的副本;ii)获得第二事务,所述第二事务包括第二脚本,所述第二脚本由于被执行而使节点由于确定终止条件没有得到满足而至少:从第一字段值集获得第三脚本;以及确定第二脚本的副本与第三脚本匹配;以及iii)由于第一脚本和第二脚本的执行而验证第一事务。
第一脚本可以是用于满足第二脚本的条件集的解锁脚本。
第二脚本可以是施加用于验证第一事务的条件集的锁定脚本。
第三脚本可以是施加用于验证未来事务的条件集的锁定脚本。
第二事务可以是与数字资产相关联的事务。另外或替代地,第一事务可以是将数字资产的至少一部分从第一实体重新关联到第二实体的事务。
验证第一事务可以包括将数字资产从第一实体重新关联到第二实体。
确定终止条件没有得到满足可以包括确定与第二事务相关联的数字资产的数额足以重新关联数字资产的至少一部分。
可以将第三脚本嵌入第一字段值集的字段值中。
区块链网络可以由运行区块链协议实例的分布式电子装置组成。
可以在不对创建第一事务的实体是否有权访问秘密信息进行核验的情况下执行对第一事务的验证。
作为用于验证第一事务的另一条件,第二脚本可以进一步使节点核验第一事务符合附加约束。
第一和第二事务可以是与数字资产相关联的重复智能合约集的组成部分。
重复智能合约集可以由终止条件终止。
还期望提供一种***,所述***包括:处理器;以及包括可执行指令的存储器,所述可执行指令由于由处理器执行而使所述***执行所要求保护的任何方法。
还期望提供一种其上存储有可执行指令的非暂时性计算机可读存储介质,所述可执行指令由于由计算机***的处理器执行而使计算机***至少执行所要求保护的任何方法。
因此,根据本发明,可以提供一种如所附权利要求书中所定义的方法(和对应***)。可以将所述方法描述为区块链数据约束方法。所述方法可以包括:i)在区块链网络中的节点处接收要验证的第一事务,所述第一事务包括第一脚本,所述第一脚本由于被执行而使节点至少获得第一事务的第一字段值集、第二事务的第二字段值集,以及输入;ii)获得第二事务,所述第二事务包括第二脚本,所述第二脚本包括规则集,所述第二脚本由于被执行而使节点至少:核验第二脚本与嵌入第一字段值集中的第三脚本匹配;至少部分地基于第二字段值集确定当前状态;以及至少部分地基于所述当前状态、所述输入和所述规则集确定下一状态;核验所述下一状态包括在第一字段值集中;以及iii)由于第一脚本和第二脚本的执行而验证第一事务。
第二脚本可以约束输入来源的身份。
所要求保护的任何方法可以进一步包括核验输入来源的加密秘密。
规则集可以是状态转换矩阵。
第三脚本可以是施加用于验证未来事务的条件集的锁定脚本。
第二脚本可以进一步使节点确定终止条件没有得到满足。
输入可以嵌入在第二字段值集中。
终止条件可以是与第二事务相关联的数字资产的大小不足以进行转移。
验证第一事务可以包括将数字资产从第一实体重新关联到第二实体。
当前状态可以指示第二事务的状态。
下一状态可以指示在验证时第一事务的状态。
所要求保护的任何方法可以进一步包括接收第三事务。另外或替代地,所要求保护的任何方法可以进一步包括:从第一事务获得第四脚本,所述第四脚本由于被执行而使节点至少部分地基于下一状态、第二输入和规则集来确定不同于下一状态和当前状态的另一状态。
当前状态和下一状态可以是第一和第二事务的可能状态集的组成部分。
还期望提供一种***,所述***包括:处理器;以及包括可执行指令的存储器,所述可执行指令由于由处理器执行而使所述***执行所要求保护的任何方法。
还期望提供一种其上存储有可执行指令的非暂时性计算机可读存储介质,所述可执行指令由于由计算机***的处理器执行而使计算机***至少执行所要求保护的任何方法。
附图说明
本发明的这些方面和其它方面将从本文中描述的实施例显而易见,且参考本文中描述的实施例进行阐明。现在将仅通过举例的方式并参考附图来描述本发明的实施例,其中:
图1示出可以在其中实现各种实施例的区块链环境;
图2示出根据实施例的不可信任的确定性状态机的示例;
图3示出通过实施例解决的与锁定脚本相关联的问题的示例;
图4示出根据实施例的解锁脚本可访问的数据的示例;
图5示出根据实施例的从序列化事务字段集生成签名的示例;
图6是示出根据实施例的使得注入序列化解锁事务字段集的示例的流程图;
图7示出通过实施例解决的与锁定脚本相关联的问题的另一示例;
图8示出根据实施例的使得注入序列化先前事务的示例;
图9示出根据实施例的取决于签名散列类型的可用字段集的示例;
图10示出根据实施例的从序列化事务中提取事务标识符的示例;
图11是示出根据实施例的使得注入序列化先前事务的示例的流程图;
图12示出根据实施例的不安全地提供来自未确定来源的未确定数据的示例;
图13示出根据实施例的安全地提供来自确定来源的未确定数据的示例;
图14示出根据实施例的将来自未确定来源的未确定数据安全地提供到锁定脚本中的示例;
图15是示出根据实施例的将未确定数据安全地提供到锁定脚本中的示例的流程图;
图16示出根据实施例的参数化智能合约的示例;
图17是示出根据实施例的执行参数化智能合约的示例的流程图;
图18示出通过实施例解决的智能合约复制问题的示例;
图19示出根据实施例的智能合约复制问题的解决方案的示例;
图20示出根据实施例解决的智能合约复制问题的另一示例;
图21示出根据实施例的自复制智能合约的示例;
图22示出根据实施例的具有终止条件的自复制智能合约的示例的流程图;
图23示出根据实施例解决的下一状态确定的问题的示例;
图24示出根据实施例的不可信任确定性状态机的示例;
图25示出根据实施例的不可信任确定性状态机的示例的流程图;以及
图26示出可以在其中实现各种实施例的计算环境。
具体实施方式
首先将参考图1,其示出根据本发明的实施例的与区块链相关联的示例区块链网络100。在实施例中,示例区块链网络100由运行区块链协议的实例的点对点分布式电子装置组成。在一些示例中,分布式电子装置被称为节点102。
节点102可以由任何合适的计算装置(例如,由数据中心中的服务器、由客户端计算装置(例如,台式计算机、膝上型计算机、平板计算机、智能手机等)、由计算资源服务提供者的分布式***中的多个计算装置、或由例如图26的计算装置2600等任何合适的电子客户端装置)组成。
在实施例中,节点102中的一个或多个节点通信连接到节点102中的一个或多个其它节点。这种通信连接可以包括有线或无线通信中的一个或多个。在实施例中,节点102各自维护区块链中所有事务的“分类账”的至少一部分。以这种方式,分类账是分布式分类账。由影响分类账的节点处理的事务可以由其它节点中的一个或多个验证,从而保持分类账的完整性。
在实施例中,节点102中的至少一些节点是网络节点,其执行复杂的计算,例如解决加密问题。解决加密问题的网络节点为区块链创建新区块,并将所述新区块广播到节点102中的其它节点。节点102中的其它节点核验网络节点的工作,并在核验后将区块接受到区块链中(例如,通过将其添加到区块链的分布式分类账中)。在一些示例中,区块是一组事务,通常用前一个区块的时间戳和“指纹”(例如,散列)标记。通过这种方式,每个区块都链接到前一个区块,从而在区块链中创建链接区块的“链”。在实施例中,通过节点102的共识将有效区块添加到区块链。另外,在一些示例中,区块链包括经过验证的区块的列表。
在实施例中,如本发明中所描述的,节点102中的至少一些节点用作验证事务的验证节点。在一些示例中,事务包括提供数字资产所有权的证明以及用于接受或转移数字资产所有权/控制权的条件的数据。在一些示例中,“解锁事务”是指将由先前事务的未花费事务输出(UTXO)指示的数字资产的至少一部分重新关联(例如,转移所有权或控制权)到与区块链地址相关联的实体的事务。在一些示例中,“先前事务”是指包括由解锁事务所引用的UTXO的事务。在一些实施例中,事务包括“锁定脚本”,所述“锁定脚本”以必须满足才能转移(“解锁”)所有权/控制权的条件留置事务。在一些实施例中,区块链地址是一串字母数字字符,其与数字资产的至少一部分的控制转移/重新关联到的实体相关联。在一些实施例中实现的一些区块链协议中,和实体相关联的公钥与区块链地址之间存在一一对应的关系。事务的验证可以包括验证锁定脚本和/或解锁脚本中指定的一个或多个条件。在成功验证事务104后,验证节点将事务104添加到区块链并将其分发到节点102。
图2示出本发明的示例实施例200。具体地,图2描绘了编码第一状态206的先前区块链事务202和编码第二状态208的解锁区块链事务204。在示例实施例200中,第一时间的第一状态206被表示为嵌入先前区块链202中的参数。关于参数化约束的更多细节可在图16的描述中找到。解锁区块链事务204将包括表示第二状态208的参数。
在示例实施例200中,事务202和204是字段值集,其包括一个或多个输入和一个或多个输出。在一些实施例中,输入和输出反映了将数字资产的至少一部分从至少一个实体重新关联到至少另一实体的意图。在示例实施例200中,先前区块链事务202是包括在区块链中的最新的、经过确认的事务。在示例实施例200中,解锁区块链事务204是近期事务,其尚待确认并且尚未包括在区块链中。解锁区块链事务204的每个输入都接收前一个区块链事务202的输出。
一些区块链技术,使用椭圆曲线数字签名算法(ECDSA)作为数字签名的数学方案。在实施例中,ECDSA是用于保护UTXO不被未经批准的实体获得的加密数字签名。一些区块链中的椭圆曲线数字签名(ECDS)通常会在其末尾附加签名散列标记(SIGHASH类型);然而,设想本发明的技术可与不实现SIGHASH类型的区块链技术一起使用。在这样的区块链技术中,ECDS被设想为符合特定区块链技术的签名生成原理。
在实施例中,SIGHASH类型是指在被序列化(例如规范化)和散列化之前从事务中提取的字段集。例如,SIGHASH类型会影响签名中包括事务的哪些字段。在一些示例中,SIGHASH类型可以是SIGHASH_ALL、SIGHASH_NONE、SIGHASH_SINGLE或SIGHASH_ANYONECANPAY中的一个或多个。在实施例中,类型SIGHASH_ALL指示除了输入脚本之外,要对事务中的所有字段进行散列和签名。在实施例中,类型SIGHASH_NONE指示不需要对输出进行签名,这可以允许其他人更新事务。在实施例中,类型SIGHASH_SINGLE指示对输入进行签名但是序列号留空白,因此其他人可以创建事务的新版本,但是唯一进行签名的输出是与输入在相同位置的输出。在实施例中,类型SIGHASH_ANYONECANPAY与其它类型组合,并指示对包括SIGHASH_ANYONECANPAY的输入进行签名,但是不需要对其它输入进行签名。SIGHASH类型可以由指示SIGHASH类型的值表示。例如,在一些实现方式中,SIGHASH_ALL由具有值1的字节表示,SIGHASH_NONE由具有值2的字节表示,SIGHASH_SINGLE由具有值3的字节表示,并且SIGHASH_ANYONECANPAY由具有值80的字节表示。在一些实现方式中,通过将字节值加在一起来执行对SIGHASH类型的组合。
在一些示例中,由SIGHASH类型确定的事务字段集是指由SIGHASH类型确定的以字节编码的对应事务的子集。例如,在SIGHASH类型为SIGHASH_ANYONECANPAY的情况下,签名中仅包括一个事务输入。
在实施例中,ECDS由一对以区别编码规则(DER)格式编码的256位数字(r,s)表示。然而,应注意,本发明的技术可与其它编码格式一起使用,例如基本编码规则(BER)或规范编码规则(CER)。ECDSA中使用的参数包括K(具有坐标(x,y)的椭圆曲线点),k(256位数字;通常是随机数以保护私钥),G(椭圆曲线上的基点,具有阶次n:n×G=0,其中0表示相同的椭圆曲线点),n是在椭圆曲线有限字段中用作参数的大质数,r(ECDS中256位数字之一),s(签名中另一个256位数字),k-1(k的模乘逆,即k-1k≡1mod n),m(被签名的消息/数据;在实施例中,通过散列函数将其调整为256位),a(私钥;例如256位数字)。在实施例中,如下生成ECDS。
首先,通过将k与生成器相乘来确定椭圆曲线点K:
K=k×G
然后,根据K确定点x,并根据以下公式确定ECDS中256位数字中的第一个,即r:
r=x mod n
然后,根据以下公式确定ECDS中256位数字中的第二个,即s:
s=k-1(m+r×a)mod n
最后,以DER格式对(r,s)进行编码。在给定签名(r,s)、消息/数据m以及与私钥a相对应的公钥A的情况下,签名是可验证的。为验证签名,计算v=s-1×(m×G+r×y)。如果v=r,则签名有效。
一些区块链使用称为“脚本”的脚本***。在本发明中,参考各种脚本操作码和关键字来执行各种操作。然而,设想其它区块链技术可以实现不同的指令集,因此,本发明中描述的操作码被认为是对由操作码而不是脚本中的特定操作码执行的操作的说明。在一些实施例中,脚本***是图灵不完整指令集(例如,不支持循环、递归、跳转语句等)。在其它实施例中,脚本***是图灵完整指令集。
本发明的某些实施例在脚本***或用于实现所描述的指令集的其它***在单个脚本中允许多于200条指令(例如,操作码)的假设下操作。同样,本发明的某些实施例还假设:
·在执行操作码脚本/指令集的***中,存在并启用了由本发明内容引用的操作码提供的功能;和/或
·可以通过创建自定义功能来实现所需的功能,这些功能被编写为提供期望的行为。这些自定义功能可能是为实现语言中存在的但已被禁用的op_code的功能而编写的,也可能是提供了脚本语言本身未提供的特定功能的“新”op_code。
本发明中引用的操作码的示例包括:
·OP_ECPX,其返回椭圆曲线点的x坐标
·OP_ADD,其将堆栈中的顶部两项相加
·OP_BIGMOD,其将堆栈中的顶部两项相除后返回余数
·OP_BIGMODADD,其对堆栈的顶部两项执行模数为堆栈的第三项的模数加法
·OP_BIGMODINVERSE,其执行模数负指数运算
·OP_BIGMODMUL,其对堆栈的顶部两项执行模数为堆栈的第三项的模数乘法
·OP_CAT,其将堆栈中的顶部两项连接在一起
·OP_CHECKSIG,其中根据SIGHASH类型从堆栈中弹出公钥和签名,并根据事务字段的签名进行核验。如果签名有效,则返回1,否则返回0。
·OP_CHECKSIGVERIFY,其功能与OP_CHECKSIG相同,但之后执行OP_VERIFY
·OP_DERENCODE,其以DER格式对堆栈中的顶部两项进行编码
·OP_DUP,其复制堆栈顶项
·OP_ECPMULT,其对堆栈上的顶部两项执行椭圆曲线点乘法(也称为椭圆曲线标量乘法)
·OP_ELSE,如果未执行前面的OP_IF或OP_NOTIF或OP_ELSE,则将执行这些语句;否则,如果执行了前面的OP_IF或OP_NOTIF或OP_ELSE,则不执行这些语句
·OP_ENDIF,其结束如果/否则区块
·OP_EQUAL,如果输入完全相等,则返回1,否则返回0
·OP_EQUALVERIFY,其与OP_EQUAL相同,但之后运行OP_VERIFY
·OP_FROMALTSTACK,其将输入放置在主堆栈的顶部,并将其从备用堆栈中删除
·OP_HASH256,其中输入被散列两次:首先使用SHA-256,然后使用RIPEMD-160
·OP_IF,如果堆栈顶值不为假,则执行语句并删除堆栈顶值
·OP_MUL,将堆栈中的顶部两项相乘
·OP_NOTIF,如果堆栈顶值为假,则执行语句并删除堆栈顶值
·OP_ROLL,其中堆栈中深为n项的项移至顶部
·OP_SUBSTR,返回字符串的一部分
·OP_SWAP,其中交换堆栈中的顶部两项
·OP_TOALTSTACK,其将输入放置在备用堆栈的顶部,并将其从主堆栈中删除
·OP_VERIFY,如果堆栈顶值不为真,则将事务标记为无效在实施例中,可以使用操作码来创建ECDS生成脚本,可以将其扩展以通过将SIGHASH字节附加到末尾来创建签名生成脚本OP_GENSIG。
表1:
在以上脚本中,将<SIGHASH字节>、消息<m>、私钥<a>和数字<k>按上述顺序输入到主(后进先出)堆栈中。执行脚本操作“OP_DUP OP_TOALTSTACK<PubK G>OP_ECPMULT”会使得将数字<k>复制到备用堆栈,并且将<k>与椭圆曲线生成器<PubK G>相乘以在主堆栈的顶部产生椭圆曲线点K。执行脚本操作“OP_ECPX<N>OP_BIGMOD OP_DUP OP_TOALTSTACK”会使得根据模n的L的x坐标计算r。将r的副本压入备用堆栈。执行脚本操作“<N>OP_BIGMODMUL<N>OP_BIGMODADD OP_FROMALTSTACK OP_SWAP OP_FROMALTSTACK<N>OP_BIGMODINVERSE<N>OP_BIGMODMUL”会根据=k-1(m+r×a)mod n计算s。最后,执行脚本操作“OP_DERENCODE OP_SWAPOP_CAT”会使得以DER格式对r和s进行编码,并与<SIGHASH字节>连接在一起。在本发明中,此脚本被称为OP_GENSIG。因此,在本发明的实施例中对OP_GENSIG的引用应被视为以上脚本中执行的操作的简写。
图3是示出通过本发明的实施例解决的与区块链事务相关联的问题的示例300。也就是说,在图3中示出的示例300的实施例中,先前事务302中的锁定脚本306不能直接读取解锁事务304的字段。如所提及的,在一些实施例中,先前事务302是包括在区块链中的最新的确认事务。同样,在一些实施例中,解锁事务304是尚未确认且尚未包括在区块链中的未来事务,表示试图重新关联由先前事务302控制的数字资产的至少一部分。
如上所述,在一些实施例中,锁定脚本306是通过指定为了转移输出而需要符合的条件来留置事务的脚本。更具体地,执行锁定脚本306用于:由于由区块链***的验证节点执行而从执行的解锁脚本接受数据,并基于所述数据执行某些操作,且返回解锁脚本的执行是否成功“解锁”(即,满足其中设置的条件集)锁定脚本的指示。在一些实施例中,锁定脚本306定义(例如,通过由解锁脚本提供的数据)必须满足以便成功验证事务的一个或多个数据约束。例如,锁定脚本306可以要求在解锁脚本中提供某些数据以解锁先前事务302的相关联数字资产。
图4描绘了示例400,其示出本发明的与先前事务402的锁定脚本406不同的解锁脚本408有权访问一个实施例中的解锁事务404的字段(例如,根据SIGHASH类型确定的解锁事务字段集)。在一些实施例中,先前事务402类似于图3的先前事务302。在一些实施例中,解锁事务404类似于解锁事务304。在一些实施例中,锁定脚本406具有与图3的锁定脚本306相似的特征。
在一些实施例中,解锁脚本408是放置在事务的输入上的可执行脚本,其试图满足锁定脚本放置在事务的输出上的条件集。解锁脚本也称为“scriptSig”。如上所述,已将解锁脚本408设计为提供根据SIGHASH类型确定的解锁事务字段集作为对锁定脚本的输入,从而使锁定脚本有权访问解锁事务的字段。关于序列化事务的内容和结构的更多细节可以在以下图5的描述中找到。注意,在实施例中,事务402和404包括附加字段。例如,在一些实施例中,“nVersion”是指区块链协议版本,“#vin”是指事务的多个输入的计数,“hash”是指要重新关联数字资产的实体的支付给公钥的散列(pay-to-public-key-hash),“#vout”是指事务的多个输出的计数,“nValue”是指剩余的未花费数字资产数额,并且“nLockTime”是指当事务完成时的时间戳。
图5示出如何形成序列化事务字段集的示例500。如图5所示,序列化事务510(即,以特定格式的一系列字节表示的事务)包括事务的字段值集。在512,签名者选择SIGHASH类型和数字k。数字k通常是随机数或伪随机数,以掩蔽/保护私钥,因此在本发明中有时被称为“掩码数”。事务的修改后的副本514是根据指定的SIGHASH类型(例如,在示例500中为SIGHASH_NONE+ANYONECANPAY)选择的序列化事务510的字段集的示例。签名者对事务的修改后的副本514进行散列处理(例如,执行双SHA-256散列),从而生成消息m516。然后,签名者使用SIGHASH类型、消息m、签名者的私钥以及数字k来创建签名,例如以上文结合图2所描述的方式。
下表示出典型的解锁和解锁脚本的示例,其中,使用OP_CHECKSIG操作码对照实体A的公钥来检查解锁脚本中指定的实体A的假定签名。
表2:
解锁脚本 锁定脚本
<Sig A> <PubK A>OP_CHECKSIG
因此,通过理解图5的签名生成,下表示出了在示例500中示出的过程的一部分被移至解锁脚本内的情况下,解锁和锁定脚本的示例。
表3:
解锁脚本可以进一步被修改为包括计算解锁脚本中的消息m的步骤。
表4:
然而,应注意,除了SIGHASH类型和根据SIGHASH类型确定的解锁事务字段集之外,过程的其它操作都可以移至锁定脚本。
表5:
因此,通过在锁定脚本内移动操作“OP_HASH256<a><k>OP_GENSIG”,使解锁脚本包括SIGHASH类型和根据SIGHASH类型确定的解锁事务字段集,以便有效。
以这种方式,使得序列化先前事务被注入锁定脚本中。下表示出了锁定和解锁脚本如何执行示例500的每个步骤过程并验证事务。
表6:
在本发明中,以上脚本可以被称为OP_UNLOCKINGTXINJECTION。因此,在本发明的实施例中对OP_UNLOCKINGTXINJECTION的引用应被视为以上脚本中执行的操作的简写。然而,应注意,提供SIGHASH类型和根据SIGHASH类型确定的解锁事务字段集的任何实体都可以接收事务输出。但是,这将成为有用的特征,如下文将更详细描述的。如上所述,在一些示例中,接收事务输出是指创建引用事务输出且将评估为有效因此接收事务输出的解锁事务。
根据各种实施例,图6是示出根据实施例的使得注入根据SIGHASH类型确定的解锁事务字段集的过程600的示例的流程图。过程600中的一些或全部(或所描述的任何其它过程,或这些过程的变化形式和/或组合)可以在配置有可执行指令和/或其它数据的一个或多个计算机***的控制下执行,并且可以实现为在一个或多个处理器上共同执行的可执行指令。可执行指令和/或其它数据可以存储在非暂时性计算机可读存储介质上(例如,永久存储在磁、光或闪存介质上的计算机程序)。
例如,过程600的一些或全部可以由例如图1的示例区块链网络100的区块链网络中的验证节点执行。此类验证节点可以由任何合适的计算装置(例如,由数据中心中的服务器、由客户端计算装置、由计算资源服务提供者的分布式***中的多个计算装置、或由例如图26的计算装置2600等任何合适的电子客户端装置)组成。过程600包括一系列操作,其中执行过程600的***结合图5中描述的方式执行未经验证的事务的解锁脚本和锁定脚本,因此获得SIGHASH类型和事务字段值集、生成签名并验证签名。
在602,***从寻求重新关联数字资产的至少一部分的实体获得未经验证的事务。未经验证的事务包括锁定脚本和解锁脚本。在执行锁定脚本之前由***执行解锁脚本。解锁脚本可以类似于以上表5和表6中所示的解锁脚本,并且指定SIGHASH类型且包括未经验证的事务的序列化字段集。因此,在604和606,执行过程600的***从解锁脚本获得SIGHASH类型和未经验证的事务的序列化事务字段值集,并将它们放置在主堆栈中。成功完成解锁脚本的执行后,***将使用在完成解锁脚本的执行时主堆栈的状态(在一些实现方式中为备用堆栈的状态)开始执行锁定脚本。锁定脚本可以类似于以上表5和表6中所示的锁定脚本。
在608,根据锁定脚本,***至少使用SIGHASH类型和由于解锁脚本的执行而放置在主堆栈上的事务字段值集和与公钥-私钥对相关联的私钥来生成签名。在610,根据锁定脚本,***针对密钥对的公钥成功验证签名。以这种方式,通过解锁脚本使事务字段集被注入锁定脚本中。应注意,取决于实施方案,可以以各种顺序和组合来执行操作602到610,并且一些操作可以与过程600的其它操作并行地执行。
图7是示出通过本发明的实施例解决的与区块链事务相关联的问题的示例700。也就是说,在图7所示的示例700中,锁定脚本706不能读取其所嵌入的事务的输入,因此不能直接读取先前事务的字段。在一些实施例中,事务704类似于图3的解锁事务304,其表示试图重新关联由先前事务控制的数字资产的至少一部分。如上所述,在一些实施例中,类似于图3的锁定脚本306,锁定脚本706是通过指定为了转移输出而需要符合的条件来留置事务的脚本。
图8示出通过提取事务ID并执行约束检查来使解锁脚本808包括序列化先前事务的示例800。具体地,图8描绘了利用来自先前事务802A到802B的输出的具有解锁脚本808的解锁事务804。可以看出,解锁脚本808使序列化先前事务被检索。在一些示例中,序列化先前事务是指先前事务的字段值集的未修改版本。
通过观察到事务ID是序列化事务的双SHA-256并且事务ID与事务具有一对一的映射,可以理解图8所描绘的实施例。因此,通过应用下表7中所示的约束条件,可以使事务注入解锁脚本中。
表7:
解锁脚本 锁定脚本
<序列化事务> OP_HASH256<事务ID>OP_EQUAL
通过使得不仅注入任何序列化事务,而且通过使得注入在解锁事务804的输入中引用的一个或多个序列化先前事务(例如,先前事务802A到802B),本发明的实施例进一步改进了这种注入。如上文参考图7所描述的,可以由解锁脚本806使根据SIGHASH类型确定的解锁事务字段集注入锁定脚本中,并且图9示出取决于指定的SIGHASH类型在序列化事务中包括了哪些字段。
图9示出取决于指定的SIGHASH类型在序列化事务中可用的字段集的示例900。然而,应注意,图9旨在是示意性的,并且在各种实施例中,存在比图9中所描绘的更多的SIGHASH类型。如图9所示,在具有不同SIGHASH类型的情况下,在根据SIGHASH类型确定的解锁事务字段集中包括不同的先前事务ID集(应注意,“散列”字段以高位优先格式表示事务ID)。在一些实施例中,嵌入锁定脚本的先前事务的事务ID始终可用,而不管指定了哪种SIGHASH类型。
因此,可以使某些字段出现在通过按以下方式约束SIGHASH类型而确定的解锁事务字段集中:首先,复制SIGHASH类型。接着,将SIGHASH类型压入堆栈中(例如SIGHASH_ALL)。最后,调用OP_EQUALVERIFY。从图9中可以看出,SIGHASH_ALL(如解锁事务904A所示)包括散列,所述散列,如所提及的,表示先前事务y和z的事务ID。相比之下,SIGHASH_ALL+ANYONECANPAY(如解锁事务904B所示)仅包括紧接在前的事务y的散列。在一些实施例中,解锁事务904A到904B类似于图3的解锁区块链事务204,其表示试图重新关联由先前事务(例如,事务y和/或x)控制的数字资产的至少一部分。可以通过使用子字符串操作码解析序列化事务直到达到期望的字段来完成提取事务ID,如图10所示。
图10示出在本发明的实施例中提取事务ID的示例1000。具体地,图10示出由高位优先格式的事务ID组成的散列1020是可以通过使用脚本内的子字符串操作码来提取的序列化事务1010的子字符串。在一些实施例中,在可提取事务ID之前,首先解析序列化事务1010以确定散列1020的位置,因为一些字段(例如,#vin、scriptSigLen、scriptSig、scriptPubKeyLen和scriptPubKey)具有可变字节长度。然而,设想在字段具有固定长度的实施方案中,解析可能不是必需的。
因此,在一些实施例中,通过构建锁定脚本,使得以参考图6描述的方式注入在解锁事务中引用的特定序列化先前事务,可以使先前事务ID可访问。例如,首先确定SIGHASH类型约束,提取事务ID,并且复制序列化先前事务,且对照从解锁事务序列化字段集(根据SIGHASH类型)提取的事务ID进行检查。应注意,可以执行此过程以使得注入多个不同的序列化先前事务。作为示例,表8提供了使得注入与解锁事务的输入X相对应的先前事务的脚本。
表8:
在以上脚本中,OP_EXTRACTXID是将包括事务ID和事务ID位置的数据作为所提取的事务ID的输入和输出的操作码/脚本。在本发明中,以上脚本可以被称为OP_PREVTXINJECTION。因此,在本发明的实施例中对OP_PREVTXINJECTION的引用应被视为以上脚本中执行的操作的简写。
然而,应注意,提供SIGHASH类型、根据SIGHASH类型确定的解锁事务字段集以及序列化先前事务的任何实体都可以获取事务输出。但是,这将成为有用的特征,如下文将更详细描述的。
作为另一个示例,表9提供了使得注入与被签名的输入相对应的先前事务的脚本。
表9:
在本发明中,与表8的脚本一样,表8中的上述脚本也可以被称为OP_SELFTXINJECTION。因此,在本发明的实施例中对OP_SELFTXINJECTION的引用应被视为以上脚本中执行的操作的简写。
还应注意,提供SIGHASH类型、根据SIGHASH类型确定的解锁事务字段集以及序列化先前事务的任何实体都可以获取事务输出。但是,这将成为有用的特征,如下文将更详细描述的。如上所述,在一些示例中,获得事务输出是指创建引用事务输出的解锁事务并成功验证所述解锁事务。
图11是示出根据各种实施例的使得注入序列化先前事务的过程1100的示例的流程图。过程1100中的一些或全部(或所描述的任何其它过程,或这些过程的变化形式和/或组合)可以在配置有可执行指令和/或其它数据的一个或多个计算机***的控制下执行,并且可以实现为在一个或多个处理器上共同执行的可执行指令。可执行指令和/或其它数据可以存储在非暂时性计算机可读存储介质上(例如,永久存储在磁、光或闪存介质上的计算机程序)。
例如,过程1100的一些或全部可以由例如图1的示例区块链网络100的区块链网络中的验证节点执行。此类验证节点可以由任何合适的计算装置(例如,由数据中心中的服务器、由客户端计算装置、由计算资源服务提供者的分布式***中的多个计算装置、或由例如图26的计算装置2600等任何合适的电子客户端装置)组成。过程1100包括一系列操作,其中执行过程1100的***结合执行未经验证的事务的解锁脚本和锁定脚本,且因此获得与从未经验证的事务中提取的事务ID相对应的序列化先前事务。
在1102,***从寻求重新关联数字资产的至少一部分的实体获得未经验证的事务。未经验证的事务包括锁定脚本和解锁脚本。锁定脚本和解锁脚本可以类似于以上表8和表9中所示的锁定脚本和解锁脚本。也就是说,锁定脚本包括指令集,所述指令集用作例如通过解锁脚本存储在主堆栈和备用堆栈中的输入值。如果评估为真,则指令集的执行将成功验证未经验证的事务。因此,解锁脚本在锁定脚本之前执行,从而在主堆栈和备用堆栈中设置欲由锁定脚本使用的值。图11的实施例中的未经验证的事务的解锁脚本包括序列化先前事务、SIGHASH类型和序列化解锁事务字段集。
由于其后跟随有锁定脚本的解锁脚本的执行,在1104,***获得序列化先前事务、SIGHASH类型和包括在解锁脚本中的序列化解锁事务字段集。在1106,***基于SIGHASH生成基于未经验证的事务的序列化字段值集的签名。应注意,SIGHASH类型会影响在签名生成中使用哪些字段,并且期望的SIGHASH可以取决于所寻求的特定先前事务。例如,表8示出用于提取先前事务(但不一定是包括相同锁定脚本的先前事务)的锁定脚本和解锁脚本,此表使用SIGHASH_ALL的SIGHASH类型。如图9所示,SIGHASH_ALL类型使得能够检索解锁事务的其它先前事务的输入。相比之下,表9示出用于提取具有相同锁定脚本的先前事务(即,先前事务与被签名的输入相对应)的锁定脚本和解锁脚本,此表使用SIGHASH_ALL|ANYONECANPAY的SIGHASH类型。如图9所示,SIGHASH_ALL|ANYONECANPAY的SIGHASH类型删除了除具有被签名输入的先前事务之外的其它先前事务的输入。
在1108,***验证先前生成的签名,然后在1110,通过对所获得的序列化先前事务执行双SHA-256,产生应与解锁事务的事务ID(即序列化字段值集)匹配的值。使用子字符串操作码,在1112,***提取序列化字段值集的事务ID,然后在1114,***确定通过序列化先前事务的双SHA-256产生的事务ID是否与序列化字段值集的事务ID匹配。应注意,在各种实施例中,匹配不一定需要相等。例如,如果两个值不相等,但在数学上等值,则这两个值可以匹配。作为另一示例,如果两个值对应于共同对象(例如,值)或以某种预定方式互补和/或它们满足一个或多个匹配标准,则这两个值可以匹配。通常,可以使用确定是否存在匹配的任何方式。还应注意,可以以各种顺序和组合(包括并行地)执行在1102到1114中执行的一个或多个操作。
图12示出示例1200,所述示例示出了通过本发明的实施例解决的与锁定脚本相关联的问题。也就是说,图12中描绘的示例1200示出了通过向锁定脚本提供未确定数据而出现的问题。在一些示例中,术语“未确定数据”是指通过解锁脚本提供的数据,所述解锁脚本对锁定脚本进行解锁,其中执行锁定脚本的节点没有先前指示。
在一些实施例中,先前事务1202类似于图3的先前事务302。同样,在一些实施例中,解锁事务1204类似于304。在一些实施例中,区块链1224由点对点的电子分类账中的事务区块集组成。在实施例中,区块链1224的每个区块包括先前区块的散列,使得区块被联接(即,“链接”)在一起以创建区块链中所有已验证事务的永久性不可变记录。
在一些实施例中,未确定来源1222A可以是试图获得先前事务1202的UTXO的实体。未确定来源1222B可以与未确定来源1222A相同或者可以是与未确定来源1222A不同的实体。在任一情况下,执行锁定脚本的节点在执行锁定脚本之前都不了解未确定来源1222A到1212B。
在示例1200中,锁定脚本1206是空白的,从而允许其在不事先知道数据来源或数据将是什么的情况下接受数据。在(例如,通过未确定来源1222A)创建解锁事务1204时,确定数据(“<d>”)。然而,由于解锁事务1204容易被更改(也就是说,是可变的),例如在其在区块链1224上被确认之前(此时解锁事务1204变为不可变的)被未确定来源1222B更改,因此这种锁定脚本存在安全问题。
图13示出示例1300,所述示例示出了在本发明的实施例中如何将来自确定来源的未确定数据安全地提供到锁定脚本1306中。也就是说,图13中描绘的示例1300示出在执行锁定脚本1306的节点具有将提供数据的来源(例如,确定来源1326)的先验知识而没有关于数据将是什么的先验知识的情况下出现的问题。在一些实施例中,先前事务1302类似于图3的先前事务302。同样,在一些实施例中,解锁事务1304类似于304。在一些实施例中,区块链1324类似于图12的区块链1224。
在示例1300中,锁定脚本1306用于使得执行锁定脚本1306的验证节点检查在解锁脚本1308中提供的数据是否已经由确定数据来源提供。也就是说,通过以下方式对数据进行乘法运算,可以基于数据(d)修改私钥以产生修改后的私钥(a′):
a′=a×d
通过按以下方式执行椭圆曲线点乘法以产生修改后的公钥(A′),可以类似地修改与未修改的私钥相对应的公钥(A):
A′=d×A
因此,锁定脚本1306可以用于使验证节点评估使用私钥签署的签名,所述私钥是基于数据使用所述数据来源的公钥(A)修改的。更具体地,签名检查操作码可以包括在锁定脚本1306中,其检查使用修改后的私钥签署的签名(SigA')是否对应于修改后的公钥,且因此是有效签名。可以例如通过使用OP_CHECKSIG操作码来执行所述检查。
如在示例1300中可以看到,锁定脚本1306的执行使节点将公钥放置在堆栈中,并在公钥与通过解锁脚本1308的先前执行而放置在堆栈中的数据之间执行椭圆曲线点乘法运算(OP_ECMULT)。然后,可以在由锁定脚本中指定的来源(例如,确定来源1326)创建解锁事务时确定数据。因此,锁定脚本知道提供数据的来源,但不知道数据将是什么。锁定脚本1306的进一步执行使得针对使用修改后的私钥签署的数据(也通过解锁脚本1308的先前执行而放置在堆栈中)的签名验证结果(例如,如果值匹配,则OP_CHECKSIG返回真)。此方法是安全的,因为对解锁事务1304的更改将使事务无效。然而,必须指定数据的来源(确定来源1326)。ECDSA中的签名核验算法涉及检查签名、公钥和消息是否具有特定的数学关系。消息可以是任何数据。在一些区块链中,核验操作码OP_CHECKSIG通过将消息限制为序列化事务同时仍允许核验消息是否来自特定来源来防止任何任意数据成为消息。本发明的实施例提供对此限制的替代解决方案。
在一些实施例中,未确定来源1322是不能更改数据的实体。在一些实施例中,确定来源1326是在生成锁定脚本1306时的已知实体,使得锁定脚本1306包括确定来源1326的公钥。
图14示出示例1400,所述示例示出了可以如何将来自未确定来源的未确定数据安全地提供到锁定脚本1406中。具体地,图14描绘了解锁事务1404,其基于结合图11的过程1100描述的锁定脚本来执行锁定脚本。在一些实施例中,先前事务1402类似于图3的先前事务302。同样,在一些实施例中,解锁事务1404类似于304。在一些实施例中,区块链1424类似于图12的区块链1224。
示例1400与图13的示例1300的不同之处在于,在创建锁定脚本1406时示例1400中的数据可以是未确定的。所讨论的数据将被嵌入先前事务1402中的某处,并且因此可以通过如上文相对于图8到11所描述的解析序列化先前事务来提取。
以这种方式,执行锁定脚本1406的节点不需要具有提供序列化先前事务的实体的先验知识,也不需要节点具有先前事务1402的先验知识。此外,被提交给区块链1424的先前事务1402在创建解锁事务1404时已经是不可变的,因此免于更改而不会导致解锁事务1404无效。然而,尽管执行锁定脚本1406的节点不具有数据的先验知识,但是在创建先前事务1402时数据是确定的。
在一些实施例中,锁定脚本1406是根据关于图11的过程1100所描述的脚本的脚本。在一些实施例中,解锁脚本1408类似于结合图8到11描述的解锁脚本。例如,如在示例1400中可以看到,解锁脚本1408包括至少一个序列化先前事务、SIGHASH类型和解锁事务1404的序列化解锁事务字段集。
未确定来源1422A是提供在序列化先前事务中编码的数据的实体。未确定来源1422B是试图拦截和更改解锁事务1404的实体。在一些实施例中,未确定来源1422A到1422B可以是相同或不同的实体。如在示例1400中可以看到,在创建锁定脚本1406时不需要知道未确定来源1422A的身份。此外,在创建锁定脚本1406时也不需要知道数据。但未确定来源1422B仍被阻止更改数据。
在实施例中,除了由解锁事务1404执行的锁定脚本之外,可以使用先前事务1402的各个字段来存储安全的未确定数据,包括先前事务1402的输出中的数字资产的数额或在先前事务1402的另一个输出的锁定脚本中编码的元数据。因此,示例1400的实施例实际上允许任何实体将数据嵌入先前事务中,支付锁定脚本1406的某些变化,并确保没有其它实体可以修改所述数据。此特征在下文描述的其它实施例中适用。
图15是示出根据各种实施例的安全地提供未确定数据的过程1500的示例的流程图。过程1500中的一些或全部(或所描述的任何其它过程,或这些过程的变化形式和/或组合)可以在配置有可执行指令和/或其它数据的一个或多个计算机***的控制下执行,并且可以实现为在一个或多个处理器上共同执行的可执行指令。可执行指令和/或其它数据可以存储在非暂时性计算机可读存储介质上(例如,永久存储在磁、光或闪存介质上的计算机程序)。
例如,过程1500的一些或全部可以由例如图1的示例区块链网络100的区块链网络中的验证节点执行。此类验证节点可以由任何合适的计算装置(例如,由数据中心中的服务器、由客户端计算装置、由计算资源服务提供者的分布式***中的多个计算装置、或由例如图26的计算装置2600等任何合适的电子客户端装置)组成。过程1500包括一系列操作,其中接收未经验证的事务,由于解锁脚本的执行而获得未确定数据和第二值,并且将未确定数据验证为与可信数据来源相关联。
在1502,***从寻求重新关联数字资产的至少一部分的实体获得未经验证的事务。未经验证的事务包括锁定脚本和解锁脚本。锁定脚本和解锁脚本可以类似于图13和14中所示的锁定脚本和解锁脚本。如果评估为真,则指令集的执行将成功验证未经验证的事务。因此,解锁脚本在锁定脚本之前执行,从而在主堆栈和备用堆栈中设置欲由锁定脚本使用的值。
在图13的实施例中,未经验证的事务的解锁脚本包括未确定数据(“<d>”)和使用修改后的私钥签名的未确定数据的签名(“<SigA'>”),所述修改后的私钥是通过使用椭圆曲线点乘法将确定的数据来源(例如,“Bob”)的私钥乘以未确定数据的值来修改的。因此,私钥将是椭圆曲线上的点。应注意,如上所述,术语“未确定”在此上下文中是指数据未指定或以其它方式由锁定脚本本身约束。以类似方式,“未确定数据来源”是其身份未由锁定脚本指定或约束的数据来源,而“确定数据来源”则在锁定脚本内约束身份为特定的数据来源(例如,通过包括数据来源的公钥)。图14的实施例中未经验证的事务的解锁脚本包括序列化先前事务的未确定数据、SIGHASH类型和序列化解锁事务字段集。以这种方式,由于数据来源是序列化先前事务,因此不需要由锁定脚本本身指定或约束数据来源。
由于其后跟随锁定脚本的解锁脚本的执行,在1504,***获得未确定数据,以及可用于使用与数据相关联的已确定或未确定来源来验证数据的值(例如,使用修改后的私钥签署的签名,或可以从中提取事务标识符的序列化解锁事务字段集)。
在1506,***验证数据。例如,在图13的实施例中,***通过使用椭圆曲线点乘法(如上所述)用数据修改公钥并验证修改后的公钥与使用对应私钥(所述私钥本身是使用椭圆曲线点乘法修改的)生成的签名相关联来确认数据与锁定脚本中包括的公钥相关联。作为另一个示例,在图14的实施例中,***通过以图11的过程1100的方式确定序列化先前事务的散列是否与从序列化解锁事务字段集中提取的事务ID匹配来验证数据对应于特定的先前事务。应注意,可以以各种顺序和组合(包括并行地)执行在1502到1506中执行的一个或多个操作。
图16示出本发明实施例的示例可参数化智能合约1600。具体地,图16描绘了具有锁定脚本1606的先前事务1602,所述锁定脚本对解锁事务1604的解锁脚本1608施加约束。通过回顾本发明在图3到6的描述中已经描述了可以如何使根据SIGHASH类型确定的解锁事务字段集注入锁定脚本1606中,可以理解图16中所描绘的实施例。进一步回顾图7到11的描述,本发明描述了在施加约束以使序列化先前事务被注入锁定脚本1606之前,可以如何使用子字符串操作码提取事务ID来解析根据SIGHASH类型确定的解锁事务字段集。此过程可以扩展为处理解锁事务字段集中的任何字段。
应注意,在图6和11的上下文中描述的锁定脚本未对创建解锁事务的特定实体施加约束。例如,锁定脚本不需要证明特定实体是否有权访问秘密(例如,私钥,产生特定散列的值等)。图16的实施例将这个概念关于创建解锁事务的特定实体不加区别地应用,但是对如何声明UTXO施加了某些约束。以这种方式,图16的实施例是自动执行的并且是自强制执行的。换句话说,如果不符合智能合约的条件(即不符合指定的约束条件),则合约将不会执行,因为验证将失败。
在一些实施例中,可以通过对解锁事务1604的输入(例如,要求来自“Alice”的输入)施加约束(例如,参数)来使锁定脚本中的智能合约能够交互。因为解锁脚本1608是锁定脚本1606的输入来源,所以在实施例中,可以使用解锁脚本1608中的安全的未确定数据来对锁定脚本1606中的智能合约进行参数化。在实施例中,以结合图13到15描述的方式对未确定的且安全的数据进行参数化能保护智能合约以防更改。在实施例中,参数化数据是未确定的。
本发明描述了两种用于向锁定脚本(例如,智能合约)提供安全的未确定数据的方法。第一方法是可以从确定来源获得安全的未确定数据,如在图13和15的上下文中所描述的。第二方法是可以从未确定来源(例如,先前事务)获得安全的未确定数据,如在图14到15的上下文中所描述的。在使用第一方法的实施例中,参数将由创建解锁事务的实体确定,并且将在创建解锁事务时进行设置(例如,在解锁脚本1608中)。在使用第二方法的实施例中,参数将由创建先前事务的实体确定,并且将在创建先前事务时设置(即,嵌入序列化先前事务中)。还应注意,在实施例中,可以组合第一方法和第二方法,使得一个或多个参数可以嵌入先前事务中,并且一个或多个其它参数可以嵌入解锁事务的解锁脚本中。
提供以下示例以说明可以如何使用这些方法创建智能合约。在示例中,为Alice创建或由Alice创建智能合约,将其收入的70%转至她的储蓄,并将其收入的30%转至她的投资经理Bob。她的储蓄账户与加密公钥A(PubK A)相关联,而她与Bob的账户与加密公钥B(PubK B)相关联。Alice的雇主实施了这份智能合约,此合约在发薪日以上述方式分配Alice的收入。因此,Alice的收入会按照她想要的方式自动分开。
在所述示例中,参数是由于智能合约的执行而转移的数字资产的数额。智能合约的执行将使得在根据上述标准确定对解锁事务1604的输出的约束之前,从先前事务1602中提取参数。表10提供了实施以上示例的示例解锁和锁定脚本:
表10:
图17是示出根据各种实施例的实现参数化智能合约的过程1700的示例的流程图。过程1700中的一些或全部(或所描述的任何其它过程,或这些过程的变化形式和/或组合)可以在配置有可执行指令和/或其它数据的一个或多个计算机***的控制下执行,并且可以实现为在一个或多个处理器上共同执行的可执行指令。可执行指令和/或其它数据可以存储在非暂时性计算机可读存储介质上(例如,永久存储在磁、光或闪存介质上的计算机程序)。
例如,过程1700的一些或全部可以由例如图1的示例区块链网络100的区块链网络中的验证节点执行。此类验证节点可以由任何合适的计算装置(例如,由数据中心中的服务器、由客户端计算装置、由计算资源服务提供者的分布式***中的多个计算装置、或由例如图26的计算装置2600等任何合适的电子客户端装置)组成。过程1700包括一系列操作,其中从嵌入安全的未确定数据中的参数中提取约束。
在1702,***执行脚本,所述脚本使得注入序列化先前事务(例如,图16的先前事务1602的序列化字段值)、SIGHASH类型,以及根据SIGHASH类型确定的解锁事务字段集(例如,解锁事务1604的字段值)。脚本可以是来自表8或9的脚本的变化形式。应注意,对于图16和17的可参数化智能合约,可能不需要完整地参考图11的过程1100,因为如果不需要来自未确定来源的参数,则可不需要序列化先前事务。
在1704,***以取决于参数来源是未确定来源还是确定来源的方式提取参数。例如,可以通过以结合图13描述的方式从解锁脚本1608中提取参数来执行从确定来源的数据提取参数。作为另一示例,可以通过以结合图14描述的方式从序列化先前事务中提取参数来执行从未确定来源的数据提取参数。作为又一示例,如果一些参数嵌入未确定来源的数据中并且一些参数从确定来源接收到,则可以编写脚本以组合图13和14的操作,从来自未确定来源和确定来源两者的数据中提取参数。
在1706,***从参数导出约束。例如,在表10的示例脚本中,参数是支付给智能合约的数额,导出约束包括确定要转付至Alice和Bob的支付给公钥的(pay-to-public-key,简称“P2PK”)地址的数额(例如70%和30%)。然而,预期参数和可从参数导出的约束可以是众多的,变化超出上述示例。
在1708,***对照根据SIGHASH类型确定的解锁事务字段值集来核验约束。也就是说,***对解锁事务的相关子集符合约束进行核验。如果解锁事务的相关子集符合约束,则确认解锁事务有效;否则,如果解锁事务的相关子集不符合约束,则认为解锁事务无效。应注意,可以以各种顺序和组合(包括并行地)执行在1702到1708中执行的一个或多个操作。
图18示出通过本发明的实施例解决的与重复智能合约相关联的问题的示例1800。也就是说,为了创建重复已知次数(例如五次)的事务,可以提前创建已知数量的解锁事务。尽管这对于少数事务而言是可管理的,但是对于具有许多重复事务的合约,提前生成所有解锁事务1804A到1804N可能变得很麻烦并且脚本1806A到1806N可能变得非常多。在示例中,Alice具有一定数额的数字资产,其价值可以交换为商品或服务。Alice已将这个款项分配给她的儿子Bob用来支付每天的学校午餐。图18的示例1800示出Alice可以提前为Bob的各个午餐事务创建解锁事务1804A到1804N。然而,如图19所示,本发明设想Alice可用的替代解决方案。
图19示出本发明的实施例的自复制智能合约的示例1900。如图19中所示,不是创建预定的一定数量的解锁事务来获得重复合约,而是可以基于结合图16到17描述的可参数化智能合约来创建具有终止条件的自复制智能合约1904。以这种方式,在以上示例中,Alice只需要创建一个解锁事务即可消耗先前事务1902中的数字资产的初始数额。解锁事务1904A包括使得解锁事务1904A将自身复制到下一解锁事务的脚本。所述脚本包括终止条件,所述终止条件使得在满足所述终止条件之后(例如,在n次出现之后)解锁事务1904N停止复制。
在一个可能的实现方式中,为了创建合约的事务链,提前创建未来事务,并且每个事务的锁定脚本将后续事务的锁定脚本嵌入,如图20所示。然而,对于自复制解锁事务,为了核验解锁事务的约束未修改,每个先前事务的锁定脚本(例如,智能合约)将需要安全地核验其是否与解锁事务中的锁定脚本匹配。
图20示出通过本发明的实施例解决的重复事务的问题的示例2000。也就是说,先前事务2002的锁定脚本(锁定脚本0)合并了第一解锁事务2004A的锁定脚本(锁定脚本1),而第一解锁事务2004A的锁定脚本本身又合并了第二解锁事务2004B的锁定脚本(锁定脚本2),依此类推,直到最后的解锁事务2004N。如果完全展开,很明显锁定脚本0与锁定脚本1不同,锁定脚本1与锁定脚本2不同,依此类推。因此,示例2000不能说是自复制的,因为锁定脚本不同。这个问题可以理解为源于自引用的问题。也就是说,锁定脚本将需要嵌入其自身的副本,从而成为无休止且无法解开的循环。因此,锁定脚本将不可确定。示例2000固定了循环可以解开的次数(n),然后将值分配给第n个锁定脚本,第n个锁定脚本又允许第n-1个锁定脚本将第n个锁定脚本嵌入,第n-1个锁定脚本又允许第n-2个锁定脚本将第n-1个锁定脚本嵌入,依此类推。但是,这将形成n个不同的锁定脚本。
图21示出针对自复制事务的简单实现方式的问题的解决方案的示例2100。具体地,图21描绘了复制智能合约,所述智能合约每次将发送给自身的数字资产数额减少一个单位,并且还向Alice支付1个单位的数字资产。也就是说,先前事务2102保持初始数额X。第一解锁事务2104A将1个单位的数字资产支付至属于Alice的支付给公钥的散列(pay-to-public-key-hash,简称“P2PKH”)地址,输出新的总计(X'=X-1)并且将其自身复制到第二解锁事务2104B。在一些示例中,P2PK或P2PKH可以用作将数字资产直接转移到与相应公钥相关联的实体的地址。第二解锁事务2104B同样将1个单位的数字资产支付至Alice,输出新的总计(X”=X'-1)并且同样复制自身。
因此,可以看出,随着过程继续进行而与初始数额X无关,最终将生成解锁事务以输出不可兑换数额的数字资产(例如零)。通过观察到每个后续解锁事务将比其先前事务拥有更少数额的数字资产,即使不扣除各种区块链协议中扣除的最低事务费用,也可以直观地理解这一点。因此,输出数额将收敛为零,这时处理事务变得毫无意义。然而,本发明的实施例包括通过实现终止条件以避免这种不可兑换的解锁事务来针对此问题的解决方案。
此外,在实施例中,图20中所示的问题的解决方案将使锁定脚本1接收均嵌入锁定脚本的第一数据(例如,解锁事务数据)和第二数据(例如,先前事务数据)。在这些实施例中,锁定脚本1对来自第一数据和第二数据的锁定脚本是否匹配进行核验。然后,如果锁定脚本1核验第二数据(先前事务数据)嵌入了锁定脚本1,则核验第一数据也嵌入了锁定脚本1。
下表11中提供了此类脚本的基本概述:
表11:
从以上脚本可以看出,已针对第一解锁事务2104A的锁定脚本核验了先前事务2102的锁定脚本,所述先前事务2102的锁定脚本是当前正在运行的将要解锁UTXO的锁定脚本,所述第一解锁事务将在未来在当前解锁事务是另一解锁事务(例如,第二解锁事务2104B)的先前事务时兑换。因此,如图18和20所示,不是为每个事务创建不同的解锁事务,而是脚本促使每个锁定脚本必须相同。如果先前事务2102的锁定脚本与第二解锁事务2104B将尝试解锁的(例如,第一解锁事务2104A)锁定脚本相同,则确保锁定脚本是真实的。
在实施例中,终止条件避免了先前事务没有足够资金但是锁定脚本仍然验证的情况;即不可兑换的事务。例如,可以实施终止条件以核验是否有足够的数字资产来执行下一事务,否则终止验证。作为更具体的示例,如果初始池包括365单位的数字资产加上每个事务费用所需的数额(例如,足以一年中每天进行一次事务),则终止条件可以核验剩余的单位数量超过完成事务所需;例如,只要有足够的资金,就可以继续验证事务。否则,如果资金不足,则满足终止条件并且终止验证。因此,如果在第366天资金不足,则确认不需要第366次解锁事务的锁定脚本,并且终止条件确保其终止锁定脚本的自复制。
图22是示出根据各种实施例的具有终止条件的自复制智能合约的过程2200的示例的流程图。过程2200中的一些或全部(或所描述的任何其它过程,或这些过程的变化形式和/或组合)可以在配置有可执行指令和/或其它数据的一个或多个计算机***的控制下执行,并且可以实现为在一个或多个处理器上共同执行的可执行指令。可执行指令和/或其它数据可以存储在非暂时性计算机可读存储介质上(例如,永久存储在磁、光或闪存介质上的计算机程序)。
例如,过程2200的一些或全部可以由例如图1的示例区块链网络100的区块链网络中的验证节点执行。此类验证节点可以由任何合适的计算装置(例如,由数据中心中的服务器、由客户端计算装置、由计算资源服务提供者的分布式***中的多个计算装置、或由例如图26的计算装置2600等任何合适的电子客户端装置)组成。过程2200包括一系列操作,其中如果不符合终止条件,则验证解锁事务和先前事务的锁定脚本是相同的,并且验证其它约束。
在2202,***接收未经验证的事务。***通过运行未经验证的事务的解锁脚本开始,然后开始执行与未经验证的事务所引用的数字资产相关联的先前(已验证的)事务的锁定脚本。将过程2200描绘为执行表11的示例脚本的变化形式。例如,在2204,执行过程2200的***确定是否满足终止条件。如上所述,在实现方式中,如果数字资产的数额不足以完成事务,则可以满足终止条件。然而,预期其它终止条件也是可能的。例如,终止条件可以是基于时间的;如果未经验证的事务在特定日期之前未得到验证,则可以满足终止条件。
在满足终止条件时,在2206,过程2200终止并且结束验证。否则,在2208,***从未经验证的事务中提取第一锁定脚本。应注意,第一锁定脚本是在当前未经验证的事务被验证之后将执行的锁定脚本,此时另一未经验证的事务尝试转移当前事务的UTXO。
在2210,***从序列化先前事务中提取第二锁定脚本。在此实施例中,第二锁定脚本是当前正在执行的锁定脚本的副本。在2212,执行过程2200的***确定第一锁定脚本是否与第二锁定脚本匹配(例如,两个锁定脚本是否相同)。如果锁定脚本不匹配,则在2214,***确定未经验证的事务未能通过验证并保持未经验证。
否则,在2216,***核验脚本中的任何剩余约束(例如,验证数字签名或先前事务的其它要求)。如果没有剩余约束,或者如果所有剩余约束都已成功验证,则事务成功验证。成功验证后,可以将事务添加到区块链。应注意,可以以各种顺序和组合(包括并行地)执行在2202到2216中执行的一个或多个操作。
图23示出通过本发明的实施例解决的问题的示例2300。具体地,图23描绘了使用区块链事务从第一状态转换到第二状态的状态机。在一些示例中,状态机的状态转换被解释为在给定当前状态、一个或多个输入2326以及状态规则集2306的情况下确定下一状态。图23的示例2300示出具有状态规则集2306和嵌入参数中的第一状态2328A的先前事务2302。在一些实施例中,创建解锁事务2304以接受来自确定来源的输入2326。输入2326与第一状态2328A结合可用于参考状态规则集2306确定嵌入解锁事务2304的参数中的第二状态2328B。
在实施例中,状态规则集是状态转换矩阵,其可以结合图16和17描述的方式由对解锁事务2304的约束来表示。在此类实施例中,通过当前状态和从其确定下一状态的输入对约束进行参数化。约束包括检查以确保解锁事务2304在特定字段中包括下一状态值。
在实施例中,当前状态被表示为嵌入事务中的参数,并且解锁事务2304将具有也嵌入解锁事务2304中的下一状态值。下一状态值是在解锁事务2304的字段值集内相对于智能合约的当前状态,如上所述,当创建解锁事务2304时可访问所述字段值集。在一些实施例中,在创建解锁事务2304时确定的参数中提供至少一个输入作为外部数据。为了安全起见,此类参数来自确定来源。这提供了确定性的状态转换。最后,通过采用上文结合图18到22描述的自复制智能合约的脚本,可以创建不可信任的确定性状态机实施例。在一些示例中,“不可信任”是指只要符合约束条件,任何实体都可以创建有效的解锁事务的属性;然而,在一些情况下,实体可能需要与确定来源进行交互以获得所需的输入。应注意,尽管结合图23到25描述的各种实施例是指从确定来源获得输入,但设想在一些实施例中,可以从未确定来源(例如从序列化先前事务)中获得一个或多个输入。
图24示出本发明的实施例的不可信任的确定性状态机的示例2400。如图24所示,示例2400可以包括在状态规则集2406中的第一状态2428A(“S1”)处的先前事务2402。在示例2400中,状态规则集2406提供下一状态的两个可能的状态2430A(“S2”或“S3”)。如在示例2400中可以看到,解锁事务2404采用其解锁脚本中的输入2426和嵌入先前事务2402的字段值集中的第一状态2428A(“S1”)作为输入,根据状态规则集2406确定适当的第二状态2428B(“S2”)。如在示例2400中进一步看到,状态转换矩阵现在提供了对于从第二状态2428B的下一状态转换可能的新状态2430B(“S4”或“S5”)。注意,状态规则集2406可以被编码为由当前状态和一个或多个输入参数化的切换语句或其它条件语句(例如,“如果-则-否则(if-then-else)”)。
在实施例中,在自复制锁定脚本中,在状态改变的规则集(例如状态转换矩阵)中表示每个可能的状态,并且特定事务表示处于特定状态的状态机。在此类实施例中,事务的锁定脚本被复制到试图将对数字资产的控制转移到下一事务的每个解锁事务,所述下一事务必须链接到当前事务。重复此过程,直到满足终止条件为止。因为输入不是固定的并且可以是未确定数据,所以可以基于特定的外部输入来改变状态机的状态。因此,未确定数据提供了可能影响下一状态的输入。
在说明性示例中,Alice借给Bob一些资源,Bob同意偿还Alice。如本发明中所描述的,不可信任的确定性状态机可以实现为智能合约,以表示Bob向Alice进行的转账。例如,可以构建智能合约,以便Bob在接下来的三个月中每月向Alice支付,如果过期未支付,则Bob的债务将进入收债阶段。因此,只要Bob每月进行一次转账,当前状态就保持在归还状态。然而,外部实体会提供指示Bob过期未转账的输入,然后状态转移到过期未转账状态。在过期未转账状态下,Alice可以释放事务并将其移交给收债员,随后,不可信任的确定性状态机切换到收债状态。在收债状态下,收债员将向Bob收债。可以使用图23到25中描绘的实施例的脚本的变化形式来创建此类智能合约。
在另一个示例中,Alice是一个非常慈善的人,她每个月都会捐赠1个单位的数字资产。她的规则是任何人都可以申领数字资产,但每月只能申领1个单位。Alice以本发明中描述的方式创建智能合约,并用数字资产的3个单位的初始池播种。Alice可以构建允许任何实体每月收取1个单位的数字资产的脚本。数字资产的剩余部分将复制到后续的智能合约。下表示出了实现本发明的不可信任的确定性状态机的解锁和锁定脚本的示例。
表12:
图25是示出根据各种实施例的用于不可信任的确定性状态机的过程2500的示例的流程图。过程2500中的一些或全部(或所描述的任何其它过程,或这些过程的变化形式和/或组合)可以在配置有可执行指令和/或其它数据的一个或多个计算机***的控制下执行,并且可以实现为在一个或多个处理器上共同执行的可执行指令。可执行指令和/或其它数据可以存储在非暂时性计算机可读存储介质上(例如,永久存储在磁、光或闪存介质上的计算机程序)。
例如,过程2500的一些或全部可以由例如图1的示例区块链网络100的区块链网络中的验证节点执行。此类验证节点可以由任何合适的计算装置(例如,由数据中心中的服务器、由客户端计算装置、由计算资源服务提供者的分布式***中的多个计算装置、或由例如图26的计算装置2600等任何合适的电子客户端装置)组成。过程2500包括一系列操作,其中自复制智能合约的锁定脚本被核验,从序列化先前事务获得当前状态,从解锁脚本获得输入,并且至少部分地基于状态规则集确定下一状态。过程2500反映了表12所见的示例脚本的变化形式。
在2502,***接收解锁事务。***通过运行解锁事务的解锁脚本开始,这会使序列化先前事务和嵌入锁定脚本中的输入被放入堆栈中。在2512检索这些输入。在2504,执行过程2500的***确定是否满足终止条件。终止条件可以是如结合图19到22所描述的终止条件。在实施例中,终止条件是在满足时使状态机转换结束的条件。如果满足终止条件,则执行过程2500的***进行到2506,之后不可信任的确定性状态机停止自复制。
在2508中,***以图22的2212中描述的方式核验先前事务锁定脚本与解锁事务锁定脚本是否匹配。如果锁定脚本不匹配,则验证失败,并且未验证解锁事务。否则,如果锁定脚本匹配,则在2510,***从序列化先前事务中提取可能状态集的当前状态。在2512,由于锁定脚本的执行,***获得放置在堆栈中的一个或多个输入。然后,在2514,***应用状态规则集,以基于当前状态和一个或多个输入来确定不可信任的确定性状态机的可能状态集的下一状态。在2516,***核验下一状态(例如,状态变量和其它与状态有关的数据,如果适用的话)被嵌入解锁事务中。***还可以应用锁定脚本中指定的任何剩余约束。在成功完成2502到2516的操作后,过程以2500结束,之后执行所述过程的***可以将解锁事务视为有效。应注意,可以以各种顺序和组合(包括并行地)执行在2502到2518中执行的一个或多个操作。
应注意,在描述所公开的实施例的上下文中,除非另有说明,否则使用关于执行“指令”通常不独立执行(例如,传输数据、计算等)的操作的可执行指令(也称为代码、应用程序、代理等)的表述表示机器正在执行指令,从而使机器执行指定的操作。
图26是可以用于实践本发明的至少一个实施例的计算装置2600的示意性简化框图。在各种实施例中,计算装置2600可以用于实现以上示出和描述的任何***。例如,计算装置2600可以配置成用作数据服务器、网络服务器、便携式计算装置、个人计算机或任何电子计算装置。如图26所示,计算装置2600可以包括一个或多个处理器2602,其可以配置成通过总线子***2604与多个***子***通信并且可操作地连接到多个***子***。处理器2602可以用于遍历本发明的实施例中在监督模型的随机森林中的决策树(例如,使得对各种搜索项的反向文档频率的评估等)。这些***子***可以包括存储子***2606,所述存储子***包括存储器子***2608和文件/磁盘存储子***2610、一个或多个用户界面输入装置2612、一个或多个用户界面输出装置2614以及网络接口子***2616。此类存储子***2606可以用于信息的临时或长期存储,例如与本发明中描述的事务相关联的细节、本发明中描述的历史记录的数据库以及本发明中监督模型的决策规则的存储。
总线子***2604可以提供用于使计算装置2600的各个组件和子***能够按预期彼此通信的机制。尽管总线子***2604被示意性地示出为单个总线,但是总线子***的替代实施例可以利用多个总线。网络接口子***2616可以提供到其它计算装置和网络的接口。网络接口子***2616可以用作用于计算装置2600从其它***接收数据以及向其它***传输数据的接口。例如,网络接口子***2616可以使数据技术人员能够将装置连接到无线网络,使得数据技术人员当在远程位置(例如用户数据中心)时能够传输和接收数据。总线子***2604可以用于将例如细节、搜索项等的数据传达到本发明的监督模型,并且可以用于将监督模型的输出通过网络接口子***2616传达到一个或多个处理器2602并传达到商户和/或债权人。
用户界面输入装置2612可以包括一个或多个用户输入装置,例如键盘;指向装置,例如集成鼠标、轨迹球、触摸板或图形输入板;扫描仪;条形码扫描仪;并入显示器中的触摸屏;音频输入装置,例如语音识别***、麦克风;以及其它类型的输入装置。通常,术语“输入装置”的使用旨在包括所有可能的类型的装置和用于向计算装置2600输入信息的机制。一个或多个用户界面输出装置2614可以包括显示子***、打印机或非视觉显示器,例如音频输出装置等。显示子***可以是阴极射线管(CRT)、平板装置,例如液晶显示器(LCD)、发光二极管(LED)显示器或投影或其它显示装置。通常,术语“输出装置”的使用旨在包括所有可能类型的装置和用于从计算装置2600输出信息的机制。一个或多个用户界面输出装置2614可以用于例如呈现用户界面以便于用户与应用程序交互,在这样的交互可能适当时执行所描述的过程及其中的变化形式。
存储子***2606可以提供计算机可读存储介质,用于存储可以提供本发明的至少一个实施例的功能的基本编程和数据构造。当由一个或多个处理器执行时,应用程序(程序、代码模块、指令)可以提供本发明的一个或多个实施例的功能,并且可以被存储在存储子***2606中。这些应用程序模块或指令可以由一个或多个处理器2602执行。存储子***2606可以另外提供用于存储根据本发明使用的数据的存储库。存储子***2606可以包括存储器子***2608和文件/磁盘存储子***2610。
存储器子***2608可以包括多个存储器,包括用于在程序执行期间存储指令和数据的主随机存取存储器(RAM)2618以及可以存储固定指令的只读存储器(ROM)2620。文件/磁盘存储子***2610可以为程序和数据文件提供非暂时性永久性(非易失性)存储,并且可以包括硬盘驱动器、软盘驱动器以及相关联的可移动介质、光盘只读存储器(CD-ROM)驱动器、光盘驱动器、可移动介质盒式磁盘以及其它类似的存储介质。
计算装置2600可以包括至少一个本地时钟2624。本地时钟2624可以是表示从特定开始日期开始发生的滴答数的计数器,并且可以一体地位于计算装置2600内。本地时钟2624可以用于以特定的时钟脉冲来同步计算装置2600的处理器和其中所包括的所有子***的处理器中的数据传送,并且可以用于协调计算装置2600与数据中心中的其它***之间的同步操作。在一个实施例中,本地时钟2624是原子时钟。在另一个实施例中,本地时钟是可编程间隔计时器。
计算装置2600可以具有各种类型,包括便携式计算机装置、平板计算机、工作站或下文描述的任何其它装置。另外,计算装置2600可以包括可以通过一个或多个端口(例如,USB、耳机插孔、闪电接口等)连接到计算装置2600的另一装置。可以连接到计算装置2600的装置可以包括配置成接受光纤连接器的多个端口。因此,此装置可以配置成将光信号转换为电信号,所述电信号可以通过将所述装置连接到计算装置2600的端口进行传输以用于处理。由于计算机和网络的不断变化的性质,因此图26中描绘的计算装置2600的描述是为了说明装置的优选实施例的特定示例。具有比图26中描绘的***更多或更少组件的许多其它配置是可能的。
因此,说明书和附图应被认为是说明性的而不是限制性的。然而,显而易见的是,在不脱离如权利要求中所阐述的本发明的范围的情况下,可以对其进行各种修改和改变。同样,其它变化形式也在本发明的范围内。因此,尽管所公开的技术易于进行各种修改和替换构造,但是其某些图示的实施例在附图中示出并且已在上文详细描述。然而,应了解,无意将本发明限制于所公开的特定形式,相反,其目的是涵盖落入如所附权利要求中所限定的本发明范围内的所有修改、替代构造和等效物。
除非本文另有说明或与上下文明显矛盾,否则在描述本公开的内容中(尤其在所附权利要求书的内容中)使用术语“a”和“an”和“the(所述)”以及类似指示物应理解为涵盖单数以及复数。除非另有指出,否则术语“包括(comprising)”、“具有(having)”、“包括(including)”和“包含(containing)应理解为开放式术语(即,意指“包括但不限于”)。术语“连接(connected)”,当未经修改且指物理连接时,应被解释为部分或全部包括在内、附接或接合在一起,即使存在某些干预。除非另外指示,否则本公开中值范围的列举仅旨在用作分别指代落入所述范围内的每个单独值的速记方法,并且每个单独值都并入说明书中,如同单独地列举一般。除非另有说明或与上下文相矛盾,否则术语“集(set)”(例如,“项目集(a set of items)”)或“子集(subset)”的使用应被解释为包括一个或多个组成部分的非空集合。此外,除非另有说明或与上下文相矛盾,否则术语对应集的“子集(subset)”不一定表示对应集的适当子集,而是子集和对应集可以相同。
除非另有明确说明或上下文明显矛盾,否则连接语言,例如“A、B、和C中的至少一个”或“A、B和C中的至少一个”形式的短语,通过上下文以另外的方式理解为一般用于表示项目、术语等,可以是A或B或C,或A和B和C的集的任何非空子集。例如,在具有三个组成部分的集的说明性示例中,连接短语“A、B、和C中的至少一个”和“A、B和C中的至少一个”指的是以下任何集:{A}、{B}、{C}、{A,B}、{A,C}、{B,C}、{A,B,C}。因此,此类连接语言通常并不意味着暗示某些实施例要求至少一个A、至少一个B和至少一个C均要存在。
除非另有说明或上下文明显矛盾,否则所描述的过程的操作可以任何合适的顺序执行。所描述的过程(或其变化形式和/或组合)可以在配置了可执行指令的一个或多个计算机***的控制下执行,并且可以实现为通过硬件或其组合在一个或多个处理器上共同执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用程序)。代码可以存储在计算机可读存储介质上,例如,呈包括可由一个或多个处理器执行的多个指令的计算机程序的形式。计算机可读存储介质可以是非暂时性的。
除非另外要求,否则所提供的任何和所有示例或示例性语言(如,“例如”)的使用仅在于更好地阐明本发明的实施例,且不对本发明的范围施加限制。本说明书中的任何语言均不应理解为指示实施本发明所必需的任何未主张要素。
描述了本发明的实施例,包括发明人已知的用于实施本发明的最佳模式。在阅读前面的描述后,这些实施例的变化对于所属领域的一般技术人员而言将变得显而易见。发明人期望熟练技术人员适当地采用这些变化形式,并且发明人意图以不同于所具体描述的方式实践本发明的实施例。因此,本发明的范围包括适用法律所允许的所附权利要求中所叙述主题的所有修改和等效物。此外,除非另有说明或上下文明显矛盾,否则上述元件的所有可能变化形式的任何组合都包括在本发明的范围内。
所引用的所有参考文献,包括出版物、专利申请以及专利特此以引用的方式并入,其引用程度就如同每一参考文献单独地并且特定地指示为以引用的方式并入并且全文阐述一般。
应注意,上文提及的实施例说明本发明而非限制本发明,且所属领域的技术人员将能够在不脱离如由所附权利要求书所界定的本发明的范围的情况下设计许多替代实施例。在权利要求书中,放置在圆括号内的任何附图标记不应被解释为限制权利要求。词语“包括(comprising,compries)”等不排除任何权利要求或整个说明书中列出的元件或步骤之外的元件或步骤的存在。在本说明书中,“包括(comprises)”意味着“包括(includes)或由...组成(consists of)”,并且“包括(comprising)”意味着“包括(including)或由...组成(consisting of)”。对元件的单数引用并不排除对此类元件的复数引用,且反之亦然。本发明可以通过包括几个不同元件的硬件以及通过适当编程的计算机来实现。在列出若干构件的装置权利要求项中,可以通过硬件中的同一个物件实施若干这些构件。在彼此不同的附属权利要求项中叙述某些措施这一单纯事实并不指示不能使用这些措施的组合来获得效果。

Claims (14)

1.一种计算机实现的方法,用于生成锁定区块链事务,所述方法包括:
提供所述锁定区块链事务的第一锁定脚本,其中所述第一锁定脚本被配置为,当与解锁区块链事务的第一解锁脚本一同被执行时:
获取所述解锁区块链事务的第一字段值集,所述第一字段值集包括所述解锁区块链事务的第二锁定脚本,
获取所述锁定区块链事务的第二字段值集,所述第二字段值集包括所述第一锁定脚本的副本,
对终止条件没有得到满足进行确定,以及
对所述第一锁定脚本的所述副本与所述解锁区块链事务的所述第二锁定脚本相匹配进行确定;以及
将所述锁定区块链事务提供至区块链网络的一个或多个节点。
2.根据权利要求1所述的方法,其中,所述第一锁定脚本被进一步配置为施加用于验证所述第一区块链事务的条件集合。
3.根据权利要求1或2所述的方法,其中,所述第一锁定脚本被配置为:如果与所述锁定区块链事务相关联的数字资产的数额足以重新关联所述数字资产中的至少一部分数字资产被得到确定,则确定所述终止条件没有得到满足。
4.根据权利要求1到3中任一项所述的方法,其中,所述第一锁定脚本被配置为:在不对创建所述解锁事务的实体有权访问秘密信息进行核验的情况下,验证所述解锁区块链事务。
5.根据权利要求1到4中任一项所述的方法,其中,所述第一锁定脚本被进一步配置为:作为用于验证所述解锁事务的另一条件,核验所述解锁事务符合附加约束。
6.一种计算机实现的方法,用于生成解锁区块链事务,所述方法包括:
提供解锁区块链事务的第一解锁脚本,其中所述第一解锁脚本用于与锁定区块链事务的第一锁定脚本一同执行;
提供解锁区块链事务的第二锁定脚本,其中所述第二锁定脚本与所述第一锁定脚本相匹配;
其中,如果满足以下情形,则所述解锁区块链事务有效:
所述锁定区块链事务的终止条件没有得到满足,和
所述第二锁定脚本与所述第一锁定脚本相匹配;以及
将所述解锁区块链事务提供至区块链网络的一个或多个节点。
7.根据前述任一项权利要求所述的方法,其中,所述锁定区块链事务是与数字资产相关联的事务;以及,所述解锁区块链事务是将所述数字资产中的至少一部分数字资产从第一实体重新关联到第二实体的事务。
8.根据前述任一项权利要求所述的方法,其中,所述第一解锁脚本被配置为满足所述第一锁定脚本的条件集合。
9.根据权利要求6或其任何从属权利要求所述的方法,其中,后续区块链事务包括第二解锁脚本和第三锁定脚本;其中所述第二锁定脚本被配置为,当与所述后续区块链事务的所述第二解锁脚本一同被执行时:
获取所述后续区块链事务的第三字段值集,所述第三字段值集包括所述后续区块链事务的所述第三锁定脚本;
获取所述解锁区块链事务的第四字段值集,所述第四字段值集包括所述第二锁定脚本的副本;
对所述终止条件没有得到满足进行确定;以及
对所述第二锁定脚本的所述副本与所述后续区块链事务的所述第三锁定脚本相匹配进行确定。
10.根据权利要求9所述的方法,其中,所述第二锁定脚本施加用于验证所述后续区块链事务的条件集合。
11.根据前述任一项权利要求所述的方法,其中,所述解锁事务和所述锁定事务是重复智能合约集的组成部分。
12.根据权利要求11所述的方法,其中,所述重复智能合约集由所述终止条件终止。
13.一种***,包括:
处理器;以及
存储器,所述存储器包括可执行指令,所述可执行指令由于由所述处理器执行而使所述***执行根据权利要求1到12中任一项所述的方法。
14.一种非暂时性计算机可读存储介质,其上存储有可执行指令,所述可执行指令由于由计算机***的处理器执行而使所述计算机***至少执行根据权利要求1到12中任一项所述的方法。
CN202311131068.9A 2017-05-22 2018-05-14 将未确定来源的未确定数据安全地提供到区块链事务的锁定脚本中 Pending CN117611146A (zh)

Applications Claiming Priority (14)

Application Number Priority Date Filing Date Title
GB1708198.5 2017-05-22
GB1708200.9 2017-05-22
GBGB1708196.9A GB201708196D0 (en) 2017-05-22 2017-05-22 Computer-implemented system and method
GBGB1708192.8A GB201708192D0 (en) 2017-05-22 2017-05-22 Computer-implemented system and method
GBGB1708200.9A GB201708200D0 (en) 2017-05-22 2017-05-22 Computer-implemented system and method
GBGB1708198.5A GB201708198D0 (en) 2017-05-22 2017-05-22 Computer-implemented system and method
GBGB1708185.2A GB201708185D0 (en) 2017-05-22 2017-05-22 Computer-implemented system and method
GBGB1708190.2A GB201708190D0 (en) 2017-05-22 2017-05-22 Computer-implemented system and method
GB1708190.2 2017-05-22
GB1708196.9 2017-05-22
GB1708192.8 2017-05-22
GB1708185.2 2017-05-22
PCT/IB2018/053338 WO2018215874A1 (en) 2017-05-22 2018-05-14 Secure provision of undetermined data from an undetermined source into the locking script of a blockchain transaction
CN201880033760.9A CN110663053B (zh) 2017-05-22 2018-05-14 将未确定来源的未确定数据安全地提供到区块链交易的锁定脚本中

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201880033760.9A Division CN110663053B (zh) 2017-05-22 2018-05-14 将未确定来源的未确定数据安全地提供到区块链交易的锁定脚本中

Publications (1)

Publication Number Publication Date
CN117611146A true CN117611146A (zh) 2024-02-27

Family

ID=62495838

Family Applications (8)

Application Number Title Priority Date Filing Date
CN202311131068.9A Pending CN117611146A (zh) 2017-05-22 2018-05-14 将未确定来源的未确定数据安全地提供到区块链事务的锁定脚本中
CN201880033816.0A Active CN110709872B (zh) 2017-05-22 2018-05-14 解锁交易字节码的约束注入
CN201880033814.1A Active CN110663054B (zh) 2017-05-22 2018-05-14 复制带有终止条件的智能合约
CN201880033817.5A Pending CN110709873A (zh) 2017-05-22 2018-05-14 不可信任的确定性状态机
CN201880033781.0A Active CN110651289B (zh) 2017-05-22 2018-05-14 促使先前交易的字节码注入区块链交易中
CN202410616725.7A Pending CN118365321A (zh) 2017-05-22 2018-05-14 解锁交易字节码的约束注入
CN202310793753.1A Pending CN117094709A (zh) 2017-05-22 2018-05-14 将未确定来源的未确定数据安全地提供到区块链事务的锁定脚本中
CN201880033760.9A Active CN110663053B (zh) 2017-05-22 2018-05-14 将未确定来源的未确定数据安全地提供到区块链交易的锁定脚本中

Family Applications After (7)

Application Number Title Priority Date Filing Date
CN201880033816.0A Active CN110709872B (zh) 2017-05-22 2018-05-14 解锁交易字节码的约束注入
CN201880033814.1A Active CN110663054B (zh) 2017-05-22 2018-05-14 复制带有终止条件的智能合约
CN201880033817.5A Pending CN110709873A (zh) 2017-05-22 2018-05-14 不可信任的确定性状态机
CN201880033781.0A Active CN110651289B (zh) 2017-05-22 2018-05-14 促使先前交易的字节码注入区块链交易中
CN202410616725.7A Pending CN118365321A (zh) 2017-05-22 2018-05-14 解锁交易字节码的约束注入
CN202310793753.1A Pending CN117094709A (zh) 2017-05-22 2018-05-14 将未确定来源的未确定数据安全地提供到区块链事务的锁定脚本中
CN201880033760.9A Active CN110663053B (zh) 2017-05-22 2018-05-14 将未确定来源的未确定数据安全地提供到区块链交易的锁定脚本中

Country Status (9)

Country Link
US (13) US11810018B2 (zh)
EP (8) EP3631724A1 (zh)
JP (13) JP7402051B2 (zh)
KR (9) KR102588710B1 (zh)
CN (8) CN117611146A (zh)
SG (3) SG10202112668XA (zh)
TW (1) TWI820024B (zh)
WO (6) WO2018215874A1 (zh)
ZA (1) ZA201908400B (zh)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017184198A (ja) * 2016-03-31 2017-10-05 ソニー株式会社 イメージセンサ、撮像装置、イメージセンサ特定方法、画像偽造防止方法および画像改変制限方法
EP3631724A1 (en) 2017-05-22 2020-04-08 Nchain Holdings Limited Secure provision of undetermined data from an undetermined source into the locking script of a blockchain transaction
GB201811263D0 (en) * 2018-07-10 2018-08-29 Netmaster Solutions Ltd A method and system for managing digital using a blockchain
US20210312472A1 (en) * 2018-08-17 2021-10-07 Telefonaktiebolaget Lm Ericsson (Publ) Method and system for prediction of smart contract violation using dynamic state space creation
US11062042B1 (en) 2018-09-26 2021-07-13 Splunk Inc. Authenticating data associated with a data intake and query system using a distributed ledger system
CN109729163A (zh) * 2018-12-28 2019-05-07 合肥达朴汇联科技有限公司 一种区块链的数据处理方法、装置电子设备及存储介质
US11502822B2 (en) 2019-03-04 2022-11-15 International Business Machines Corporation Static analysis of smart contract determinism
GB202002285D0 (en) * 2020-02-19 2020-04-01 Nchain Holdings Ltd Computer-implemented system and method
US11269859B1 (en) * 2019-05-22 2022-03-08 Splunk Inc. Correlating different types of data of a distributed ledger system
US11507562B1 (en) 2019-05-22 2022-11-22 Splunk Inc. Associating data from different nodes of a distributed ledger system
GB201907395D0 (en) * 2019-05-24 2019-07-10 Nchain Holdings Ltd Knowledge proof
GB2584154A (en) 2019-05-24 2020-11-25 Nchain Holdings Ltd Knowledge proof
GB201907392D0 (en) * 2019-05-24 2019-07-10 Nchain Holdings Ltd Proof-of-work
GB201907345D0 (en) 2019-05-24 2019-07-10 Nchain Holdings Ltd Protocol for validating blockchain transactions
US11050822B2 (en) * 2019-06-05 2021-06-29 International Business Machines Corporation Secure data dissemination
US11126593B2 (en) * 2019-06-15 2021-09-21 Facebook, Inc. Scalable, secure, efficient, and adaptable distributed digital ledger transaction network
US10790990B2 (en) * 2019-06-26 2020-09-29 Alibaba Group Holding Limited Ring signature-based anonymous transaction
CN110264207A (zh) * 2019-08-15 2019-09-20 广州蚁比特区块链科技有限公司 区块链分离处理方法及***
CN111144887A (zh) * 2019-12-20 2020-05-12 辽宁振兴银行股份有限公司 一种区块链共享数据的保护方法
CN111277415B (zh) * 2020-01-20 2023-12-19 布比(北京)网络技术有限公司 基于区块链智能合约的隐私保护方法及装置
WO2021165907A1 (en) * 2020-02-19 2021-08-26 nChain Holdings Limited Methods, data structures, and systems for ordered data logging
GB2592980A (en) * 2020-03-13 2021-09-15 Nchain Holdings Ltd Blockchain transaction double spend proof
EP3907644B1 (en) 2020-05-07 2022-10-05 Cambridge Cryptographic Ltd Blockchain
KR102383099B1 (ko) * 2020-05-12 2022-04-04 주식회사 블록체인기술연구소 블록체인 기반의 did 서비스, ipfs 기반의 데이터 공유 기술, 및 개인키 분산 저장 기술이 결합된 비대면 대용량 문서 접근 블록체인 시스템
CN112488713A (zh) * 2020-06-24 2021-03-12 杨刘琴 基于区块链大数据的安全识别方法、***及云服务平台
US11709819B2 (en) 2020-09-30 2023-07-25 International Business Machines Corporation Validating test results using a blockchain network
GB2599735A (en) 2020-10-12 2022-04-13 Cambridge Cryptographic Ltd Blockchain
EP4256751A1 (en) 2020-12-02 2023-10-11 Trock, Stanislav Blockchain
CN112714158B (zh) * 2020-12-21 2023-11-17 东软集团股份有限公司 事务处理方法、中继网络、跨链网关、***、介质和设备
CN113077344B (zh) * 2021-04-15 2023-06-30 恒生电子股份有限公司 基于区块链的交易方法、装置、电子设备及存储介质
GB202108385D0 (en) * 2021-06-11 2021-07-28 Nchain Licensing Ag A computer implemented method and system
KR102344118B1 (ko) 2021-07-01 2021-12-29 (주)코아메소드 블록체인 전자 계약 시스템
GB2609194A (en) * 2021-07-19 2023-02-01 Nchain Licensing Ag Enforcing conditions on blockchain transactions
GB2609193A (en) * 2021-07-19 2023-02-01 Nchain Licensing Ag Enforcing conditions on blockchain transactions
GB202112930D0 (en) * 2021-09-10 2021-10-27 Nchain Licensing Ag Signature verification
GB2611325A (en) * 2021-09-30 2023-04-05 Nchain Licensing Ag Propagating locking scripts
WO2024116092A1 (en) 2022-11-29 2024-06-06 Trock Stanislav Full-fledged smart contracts for utxo based blockchains

Family Cites Families (94)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7257554B1 (en) * 1999-03-19 2007-08-14 Hewlett-Packard Development Company, L.P. Anonymous purchases while allowing verifiable identities for refunds returned along the paths taken to make the purchases
KR101508794B1 (ko) * 2008-07-09 2015-04-06 삼성전자주식회사 Ndef 메시지에서 선택적으로 레코드들을 보안하기 위한 방법
CN102238146B (zh) 2010-04-27 2014-10-08 ***通信集团公司 认证方法、装置、认证中心及***
US10339524B2 (en) * 2012-07-31 2019-07-02 Worldpay, Llc Systems and methods for multi-merchant tokenization
AU2013205125B1 (en) * 2013-04-13 2014-07-31 Hasq Technology Pty Ltd Method and system for the secure transfer and verification of ownership of digital sequences
CN103226270B (zh) * 2013-05-03 2016-01-20 合肥京东方光电科技有限公司 一种半透半反液晶显示面板、显示装置及阵列基板
US10366386B2 (en) 2013-09-12 2019-07-30 Paypal, Inc. Electronic wallet fund transfer system
US9710808B2 (en) 2013-09-16 2017-07-18 Igor V. SLEPININ Direct digital cash system and method
US9595034B2 (en) * 2013-10-25 2017-03-14 Stellenbosch University System and method for monitoring third party access to a restricted item
US20160012465A1 (en) 2014-02-08 2016-01-14 Jeffrey A. Sharp System and method for distributing, receiving, and using funds or credits and apparatus thereof
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
FR3018370A1 (fr) * 2014-03-07 2015-09-11 Enrico Maim Procede et systeme de generation automatique de crypto-monnaies
US10776761B2 (en) * 2014-03-18 2020-09-15 nChain Holdings Limited Virtual currency system
CN103927659A (zh) * 2014-04-18 2014-07-16 刘志望 一种虚拟货币的即时转移和安全支付方法
US20150302400A1 (en) 2014-04-18 2015-10-22 Ebay Inc. Distributed crypto currency reputation system
JP6813477B2 (ja) 2014-05-09 2021-01-13 ヴェリタセウム アイエヌシー. 信頼度が低い、または信頼度が皆無の当事者間での価値転送を円滑化する装置、システム、または方法
WO2015175619A1 (en) * 2014-05-15 2015-11-19 Alibaba Group Holdiing Limited Method, apparatus, and system for operating an electronic account in connection with an electronic transaction
CN105099688B (zh) * 2014-05-15 2018-12-21 阿里巴巴集团控股有限公司 一种电子账户的操作方法、支付页面的展示方法及装置
CN104021080B (zh) * 2014-06-13 2017-01-11 中国民航信息网络股份有限公司 基于自定义脚本的自动化测试***
US10396992B2 (en) 2014-06-30 2019-08-27 Vescel, Llc Authentication of a user and/or a device through parallel synchronous update of immutable hash histories
US11232414B2 (en) * 2014-07-03 2022-01-25 Raise Marketplace Inc. Cryptocurrency verification system
US10148441B2 (en) 2014-09-12 2018-12-04 Verisign, Inc. Systems, devices, and methods for detecting double signing in a one-time use signature scheme
CN104392354B (zh) * 2014-11-05 2017-10-03 中国科学院合肥物质科学研究院 一种公钥地址与用户账号的关联和检索方法及其***
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
KR101660627B1 (ko) 2015-02-03 2016-09-28 한양대학교 에리카산학협력단 암호화 화폐의 거래를 보호하는 방법 및 장치
WO2016175914A2 (en) 2015-02-27 2016-11-03 Visa International Service Association Transaction signing utilizing asymmetric cryptography
AU2016235539B2 (en) * 2015-03-20 2019-01-24 Rivetz Corp. Automated attestation of device integrity using the block chain
EP3767878A1 (en) * 2015-03-27 2021-01-20 Black Gold Coin, Inc. A system and a method for personal identification and verification
EP3278287A4 (en) * 2015-03-31 2018-08-22 Nasdaq, Inc. Systems and methods of blockchain transaction recordation
US20160300234A1 (en) * 2015-04-06 2016-10-13 Bitmark, Inc. System and method for decentralized title recordation and authentication
CN104735164B (zh) * 2015-04-10 2018-05-18 网易(杭州)网络有限公司 一种保存文件信息的方法和装置
US10380702B2 (en) * 2015-05-01 2019-08-13 Monegraph, Inc. Rights transfers using block chain transactions
US20160342977A1 (en) * 2015-05-20 2016-11-24 Vennd.io Pty Ltd Device, method and system for virtual asset transactions
US10097356B2 (en) * 2015-07-02 2018-10-09 Nasdaq, Inc. Systems and methods of secure provenance for distributed transaction databases
US20170011460A1 (en) * 2015-07-09 2017-01-12 Ouisa, LLC Systems and methods for trading, clearing and settling securities transactions using blockchain technology
US11488147B2 (en) 2015-07-14 2022-11-01 Fmr Llc Computationally efficient transfer processing and auditing apparatuses, methods and systems
US20170085545A1 (en) * 2015-07-14 2017-03-23 Fmr Llc Smart Rules and Social Aggregating, Fractionally Efficient Transfer Guidance, Conditional Triggered Transaction, Datastructures, Apparatuses, Methods and Systems
GB2540976A (en) * 2015-07-31 2017-02-08 British Telecomm Access control
KR101661930B1 (ko) 2015-08-03 2016-10-05 주식회사 코인플러그 블록체인을 기반으로 하는 공인인증서 발급시스템
US10402792B2 (en) 2015-08-13 2019-09-03 The Toronto-Dominion Bank Systems and method for tracking enterprise events using hybrid public-private blockchain ledgers
US10937023B2 (en) 2015-10-15 2021-03-02 Paypal, Inc. Crypto currency chargeback system
KR101637854B1 (ko) * 2015-10-16 2016-07-08 주식회사 코인플러그 블록체인을 기반으로 하는 공인인증서 발급시스템과 이를 이용한 블록체인을 기반으로 하는 공인인증서 발급방법 및 블록체인을 기반으로 하는 공인인증서 인증시스템과 이를 이용한 블록체인을 기반으로 하는 공인인증서 인증방법
EP3365633B1 (en) * 2015-10-21 2020-02-26 Innogy Innovation Gmbh Meter of a supply system and supply system
US20170132625A1 (en) 2015-11-05 2017-05-11 Mastercard International Incorporated Method and system for use of a blockchain in a transaction processing network
US20170132626A1 (en) 2015-11-05 2017-05-11 Mastercard International Incorporated Method and system for processing of a blockchain transaction in a transaction processing network
US11941588B2 (en) 2015-11-06 2024-03-26 Cable Television Laboratories, Inc. Systems and methods for blockchain virtualization and scalability
US20170140408A1 (en) * 2015-11-16 2017-05-18 Bank Of America Corporation Transparent self-managing rewards program using blockchain and smart contracts
KR101590076B1 (ko) 2015-11-18 2016-02-01 주식회사 웨이브스트링 개인정보 관리 방법
US10423938B1 (en) * 2015-11-20 2019-09-24 United Services Automobile Association Identifying negotiable instrument fraud using distributed ledger systems
WO2017091530A1 (en) 2015-11-24 2017-06-01 Gartland & Mellina Group Blockchain solutions for financial services and other transaction-based industries
US10230756B2 (en) 2015-11-25 2019-03-12 International Business Machines Corporation Resisting replay attacks efficiently in a permissioned and privacy-preserving blockchain network
US9948467B2 (en) 2015-12-21 2018-04-17 Mastercard International Incorporated Method and system for blockchain variant using digital signatures
US10108812B2 (en) 2016-01-28 2018-10-23 Nasdaq, Inc. Systems and methods for securing and disseminating time sensitive information using a blockchain
EP3411824B1 (en) 2016-02-04 2019-10-30 Nasdaq Technology AB Systems and methods for storing and sharing transactional data using distributed computer systems
US11354658B2 (en) 2016-02-11 2022-06-07 Mastercard International Incorporated Method and system for offline blockchain exchanges
US10693658B2 (en) 2016-02-12 2020-06-23 Visa International Service Association Methods and systems for using digital signatures to create trusted digital asset transfers
EP4224396A1 (en) * 2016-02-23 2023-08-09 nChain Licensing AG Method and system for efficient transfer of cryptocurrency associated with a payroll on a blockchain that leads to an automated payroll method and system based on smart contracts
GB2571367A (en) 2016-02-23 2019-08-28 Nchain Holdings Ltd Tokenisation method and system for implementing exchanges on a blockchain
CN114679282A (zh) 2016-02-23 2022-06-28 区块链控股有限公司 用区块链实施的用于安全投票和分配的计数***和方法
CN105809062B (zh) 2016-03-01 2019-01-25 布比(北京)网络技术有限公司 一种合约构建、执行方法及装置
US10546296B2 (en) * 2016-04-13 2020-01-28 Paypal, Inc. Public ledger authentication system
US10803537B2 (en) 2016-04-18 2020-10-13 R3 Ltd. System and method for managing transactions in dynamic digital documents
CN105956923B (zh) * 2016-04-20 2022-04-29 上海如鸽投资有限公司 资产交易***以及资产的数字化认证和交易方法
US20190149337A1 (en) 2016-04-29 2019-05-16 nChain Holdings Limited Implementing logic gate functionality using a blockchain
CN118313834A (zh) 2016-04-29 2024-07-09 区块链控股有限公司 使用区块链实现逻辑门功能
CN106022917A (zh) 2016-05-08 2016-10-12 杭州复杂美科技有限公司 区块链撮合交易所方案
CN106096967A (zh) * 2016-06-20 2016-11-09 深圳市淘淘谷信息技术有限公司 一种用区块链来标示数字货币流通的方法
JP6939791B2 (ja) 2016-07-28 2021-09-22 日本電気株式会社 掲示板情報管理システム
CN110383756B (zh) 2016-07-29 2023-06-09 奇跃公司 加密签名记录的安全交换
GB201613176D0 (en) * 2016-07-29 2016-09-14 Eitc Holdings Ltd Computer-implemented method and system
US10417217B2 (en) 2016-08-05 2019-09-17 Chicago Mercantile Exchange Inc. Systems and methods for blockchain rule synchronization
CN106055993A (zh) * 2016-08-13 2016-10-26 深圳市樊溪电子有限公司 一种用于区块链的加密存储***及其使用方法
US10878522B2 (en) 2016-08-18 2020-12-29 First American Financial Corporation Systems and methods for using blockchains to record, manage, and transfer ownership rights to land titles
US10523443B1 (en) 2016-08-24 2019-12-31 Bruce Kleinman Devices, methods, and systems for cryptographic authentication and provenance of physical assets
CN106372941B (zh) * 2016-08-31 2019-07-16 江苏通付盾科技有限公司 基于区块链的ca认证管理方法、装置及***
CN106372868B (zh) * 2016-09-06 2020-02-18 联动优势科技有限公司 一种对写入区块链的交易数据的验证方法和装置
AU2016422515A1 (en) 2016-09-09 2019-02-21 Microsoft Technology Licensing, Llc. Tracing objects across different parties
US10832247B2 (en) 2016-09-15 2020-11-10 American Express Travel Related Services Company, Inc. Systems and methods for blockchain based payment networks
CN106504094B (zh) * 2016-11-25 2021-06-15 中国银行股份有限公司 基于区块链技术的分布式总账***的交易撮合方法及***
CN106649632B (zh) * 2016-12-07 2018-03-16 北京众享比特科技有限公司 数据同步方法及***
CN106598549B (zh) 2016-12-08 2019-02-01 天津米游科技有限公司 一种基于区块链的智能合约***及实现方法
US20180260921A1 (en) 2017-03-08 2018-09-13 Bsquare Corp. Remote machine operation through distributed permissioning
CN110603557B (zh) 2017-03-16 2024-04-12 香港物流及供应链管理应用技术研发中心 控制交易账本的***和方法
EP3379767B1 (en) 2017-03-24 2021-01-13 Hewlett-Packard Development Company, L.P. Distributed authentication
US20180285996A1 (en) 2017-04-03 2018-10-04 FutureLab Consulting Inc. Methods and system for managing intellectual property using a blockchain
US10832230B2 (en) 2017-04-04 2020-11-10 International Business Machines Corporation Scalable and distributed shared ledger transaction management
EP3396608A1 (en) * 2017-04-24 2018-10-31 BlockSettle AB Method and system for settling a blockchain transaction
EP3631724A1 (en) 2017-05-22 2020-04-08 Nchain Holdings Limited Secure provision of undetermined data from an undetermined source into the locking script of a blockchain transaction
GB201709760D0 (en) 2017-06-19 2017-08-02 Nchain Holdings Ltd Computer-Implemented system and method
EP3422221A1 (en) 2017-06-29 2019-01-02 Nokia Technologies Oy Electronic health data access control
US20190172026A1 (en) * 2017-12-02 2019-06-06 Alchemy Limited LLC Cross blockchain secure transactions
WO2019139678A1 (en) 2018-01-14 2019-07-18 Robot Cache, Inc. Methods and systems for media distribution employing contracts implemented in a distributed ledger
CN111612446A (zh) 2018-01-19 2020-09-01 阿里巴巴集团控股有限公司 区块链余额的调整方法及装置、电子设备
US11257081B2 (en) 2018-05-08 2022-02-22 Oracle International Corporation Integrating a blockchain ledger with an application external to the blockchain ledger

Also Published As

Publication number Publication date
US20240211943A1 (en) 2024-06-27
JP7232776B2 (ja) 2023-03-03
SG10202112668XA (en) 2021-12-30
TWI820024B (zh) 2023-11-01
JP2020522046A (ja) 2020-07-27
CN110663054B (zh) 2024-06-18
US20200160327A1 (en) 2020-05-21
US11456875B2 (en) 2022-09-27
US20230188354A1 (en) 2023-06-15
US20230376950A1 (en) 2023-11-23
KR102612799B1 (ko) 2023-12-13
WO2018215875A1 (en) 2018-11-29
KR20230169472A (ko) 2023-12-15
CN110663053A (zh) 2020-01-07
US11528145B2 (en) 2022-12-13
EP3631727A1 (en) 2020-04-08
EP3631726A1 (en) 2020-04-08
KR20200011949A (ko) 2020-02-04
CN110663054A (zh) 2020-01-07
ZA201908400B (en) 2023-06-28
TW201901546A (zh) 2019-01-01
JP2020521371A (ja) 2020-07-16
KR102611572B1 (ko) 2023-12-08
WO2018215876A1 (en) 2018-11-29
US20210184849A1 (en) 2021-06-17
US20200143339A1 (en) 2020-05-07
KR20200010286A (ko) 2020-01-30
CN118365321A (zh) 2024-07-19
EP3631723A1 (en) 2020-04-08
KR20200010287A (ko) 2020-01-30
EP4236198A3 (en) 2023-10-18
CN110663053B (zh) 2024-06-07
JP2023017958A (ja) 2023-02-07
US20230419319A1 (en) 2023-12-28
JP2020525880A (ja) 2020-08-27
JP7402051B2 (ja) 2023-12-20
JP7130673B2 (ja) 2022-09-05
JP2024063167A (ja) 2024-05-10
US20200099529A1 (en) 2020-03-26
WO2018215872A1 (en) 2018-11-29
EP4236198A2 (en) 2023-08-30
KR20200011435A (ko) 2020-02-03
US11509482B2 (en) 2022-11-22
US20230419317A1 (en) 2023-12-28
JP2023126974A (ja) 2023-09-12
JP7493571B2 (ja) 2024-05-31
US11893584B2 (en) 2024-02-06
EP4236199A3 (en) 2023-10-18
TW202405713A (zh) 2024-02-01
CN110709872A (zh) 2020-01-17
EP3631725A1 (en) 2020-04-08
WO2018215874A1 (en) 2018-11-29
CN110709873A (zh) 2020-01-17
KR20230132891A (ko) 2023-09-18
CN110709872B (zh) 2024-06-07
EP3631728A1 (en) 2020-04-08
KR102611570B1 (ko) 2023-12-08
WO2018215873A1 (en) 2018-11-29
EP4236199A2 (en) 2023-08-30
CN110651289A (zh) 2020-01-03
KR102599738B1 (ko) 2023-11-09
SG10202112659XA (en) 2021-12-30
CN110651289B (zh) 2024-07-19
JP7450678B2 (ja) 2024-03-15
JP2020521373A (ja) 2020-07-16
US20230092477A1 (en) 2023-03-23
JP2023126973A (ja) 2023-09-12
US11810018B2 (en) 2023-11-07
JP2020522047A (ja) 2020-07-27
KR20200010288A (ko) 2020-01-30
JP2022169691A (ja) 2022-11-09
JP7071403B2 (ja) 2022-05-18
JP2023154019A (ja) 2023-10-18
US11893582B2 (en) 2024-02-06
US20200175511A1 (en) 2020-06-04
KR20230135684A (ko) 2023-09-25
CN117094709A (zh) 2023-11-21
EP3631724A1 (en) 2020-04-08
US20200099528A1 (en) 2020-03-26
JP7186364B2 (ja) 2022-12-09
KR20200010289A (ko) 2020-01-30
KR102611574B1 (ko) 2023-12-08
US20230419318A1 (en) 2023-12-28
SG10202112667UA (en) 2021-12-30
JP2023062103A (ja) 2023-05-02
JP2020521370A (ja) 2020-07-16
US11411740B2 (en) 2022-08-09
KR102588710B1 (ko) 2023-10-16
CN110709871A (zh) 2020-01-17
WO2018215871A1 (en) 2018-11-29

Similar Documents

Publication Publication Date Title
CN110663053B (zh) 将未确定来源的未确定数据安全地提供到区块链交易的锁定脚本中
CN110709871B (zh) 可参数化的智能合约
TWI844486B (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