CN112805694A - 用于改进的实施区块链的智能合约的系统和方法 - Google Patents

用于改进的实施区块链的智能合约的系统和方法 Download PDF

Info

Publication number
CN112805694A
CN112805694A CN201980066567.XA CN201980066567A CN112805694A CN 112805694 A CN112805694 A CN 112805694A CN 201980066567 A CN201980066567 A CN 201980066567A CN 112805694 A CN112805694 A CN 112805694A
Authority
CN
China
Prior art keywords
transaction
contract
execution
block
transactions
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
CN201980066567.XA
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.)
NEUROLOGICAL TECHNOLOGIES Inc
NEUROLOGICAL Tech Inc
Original Assignee
NEUROLOGICAL TECHNOLOGIES Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEUROLOGICAL TECHNOLOGIES Inc filed Critical NEUROLOGICAL TECHNOLOGIES Inc
Publication of CN112805694A publication Critical patent/CN112805694A/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/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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1834Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • 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
    • 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/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key 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
    • 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
    • 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/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/3242Cryptographic 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 keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • 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/56Financial cryptography, e.g. electronic payment or e-cash

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Power Engineering (AREA)
  • Finance (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Computing Systems (AREA)
  • Economics (AREA)
  • Development Economics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种用于对智能合约的执行进行核实的方法和系统,包括将智能合约储存在具有至少一个一阶区块的区块链内。智能合约具有电子限定的合约条款的集合,每个条款由至少一个满意度值限定,并且合约条款的集合的满意度值的组合具有针对该合约的满意度散列值。对一个或更多个电子储存的二阶交易的集合进行读取,每个二阶交易具有一个或更多个执行值的子集合,并选择与合同条款相对应的交易的子集合。确定交易的子集合的执行值的组合的执行散列值。如果交易的子集合的执行值的组合的执行散列值与智能合约的满意度散列值匹配,则将智能合约确定为被完全执行。

Description

用于改进的实施区块链的智能合约的系统和方法
交叉引用
本申请要求于2018年8月30日提交的美国临时专利申请No.62/724688的优先权,并且标题为“SYSTEM AND METHOD FOR IMPROVED BLOCKCHAIN-IMPLEMENTED SMARTCONTRACT(用于改进的实施区块链的智能合约的系统和方法)”,该公开全部内容通过引用合并于此。
技术领域
本公开总体而言涉及区块链技术,并且更具体地涉及用于在区块链技术中实施智能合约的系统和方法。
背景技术
区块链是一系列操作或交易(transaction),它们被整合到一个仅顺序的追加数据库格式中。使区块链成为可能的重要技术是散列算法(hashing algorithm)。加密散列是一种算法,它将采用任何输入值,并且对于每个唯一输入值,总是会产生唯一输出。相同的输入将总是创建相同的输出,但是两个不同的输入将永远不会创建相同的输出。这样,散列是一种为特定内容创建唯一标识物的方法,其中可能永远不会仅从所得散列中推断出产生散列的原始内容。
通过将每条新的内容都包含在区块中,可以将其确认到区块链数据库中。每个区块都将包含一个或更多个已被确认为加密有效的内容。当创建新区块时,它将结合链中前一个区块的散列对其内容进行散列处理。随着区块的链的增长而形成区块链,这种情况不断发生。这项技术很有趣,因为攻击者无法更改区块链中的任何内容。任何试图破坏内容数据的篡改,即使是最小的数字也将完全更改散列链总和,并破坏链接。这很重要,因为它可以通过汇总散列链来确保从互联网上不受信任的计算机接收的数据有效。
具有加密的散列链的区块链数据库确保其数据不可能被篡改。这样,以某种随机的方式彼此连接的计算机就可以创建自愈的对等网络。每台计算机都连接到网络上的其他节点,它们本身也连接到其他节点,从而形成通信网格。如果一个对等方不回应,则网络永远不会受到影响,因为它会使用其他连接自然地重新平衡自身。该网络上的对等方将交换和同步区块链数据,而无需彼此信任。加密散列允许每个对等方汇总数据,并确认数据是按期望发送和接收的。
八卦消息协议建立在由对等网络确立的网络拓扑之上。该协议确定p2p网络上每个对等方之间交换消息的方式,以确保每个节点都将接收网络上发送的消息的副本,同时将消息重复(回声(echo))减到最少。当创建新交易以插入到区块链中时,节点会将此交易作为八卦消息发送给它所连接的多个对等方,然后它们会将该交易转发给自己的对等方,并持续直到整个网络都收到该消息为止。新交易将被核实,然后由每个参与者将该交易添加到临时交易池中,该交易将无限期保留,直到由确认区块确认为止。一旦确认,将其从交易池中移除,并永久追加到最终的区块链中。
发明内容
根据一个方面,提供了一种用于对智能合约的执行进行核实的方法,所述方法包括:
将智能合约储存/接收在具有至少一个一阶区块/交易的区块链中,所述智能合约具有电子限定的合约条款的集合,每个条款由至少一个满意度值限定,所述合约条款的集合的所述满意度值的组合具有针对智能合约的满意度散列值;
对一个或更多个电子储存的二阶交易的集合进行读取,每个二阶交易具有一个或更多个执行值的子集合;
从电子储存的二阶交易的集合中选择与智能合约的合约条款相对应的交易的子集合;
确定交易的子集合的执行值的组合的执行散列值;
如果交易的子集合的执行值的组合的执行散列值与智能合约的满意度散列值匹配,则将智能合约确定为被完全执行。
根据另一方面,提供了一种对区块链交易的参与方的身份进行核实的方法,所述方法包括在区块链内发布参与方初始化区块,所述参与方初始化区块包括:
与给定参与方相关联的唯一标识物;
从与参与方相关联的第一私人密钥得出的第一公开密钥;以及
从与参与方相关联的第二私人密钥得出的第二公开密钥。
根据另一方面,提供了一种用于对智能合约的执行进行核实的计算机实施系统,所述系统包括:至少一个数据储存设备和至少一个处理器,所述至少一个处理器耦合至至少一个储存设备,所述至少一个处理器被配置为:
将智能合约储存在具有至少一个一阶区块的区块链内,所述智能合约具有电子限定的合约条款的集合,每个条款由至少一个满意度值限定,所述合约条款的集合的满意度值的组合具有针对智能合约的满意度散列值;
对一个或更多个电子储存的二阶交易的集合进行读取,每个二阶交易具有一个或更多个执行值的子集合;
从电子储存的二阶交易的集合中选择与智能合约的合约条款相对应的交易的子集合;
确定交易的子集合的执行值的组合的执行散列值;以及
如果交易的子集合的执行值的组合的执行散列值与智能合约的满意度散列值匹配,则将智能合约确定为被完全执行。
根据又一方面,提供了一种用于对区块链交易的参与方的身份进行核实的计算机实施的系统,所述系统包括至少一个数据储存设备和耦合至至少一个储存设备的至少一个处理器。至少一个处理器被配置为在区块链内发布参与者初始化区块,所述区块链内的参与者初始化区块包括:
与给定参与方相关联的唯一标识物;
从与参与方相关联的第一私钥得出的第一公钥;以及
从与参与方相关联的第二私人密钥得出的第二公开密钥。
附图说明
为了更好地理解本文所描述的实施方式并更清楚地示出它们可以如何实现,现在仅以示例的方式参考示出了至少一个示例性实施方式的参考附图,并且在其中:
图1示出了根据一个示例实施方式的用于对智能合约进行储存的数据结构的图示;
图2示出了根据一个示例实施方式的交易事件条目的数据结构的图示;
图3示出了根据一个示例实施方式的用于对电子限定的交易事件条目进行储存的一阶区块链和用于对电子限定的交易事件条目进行储存的二阶区块链的示意图;
图4示出了根据一个示例实施方式的从电子储存的交易事件条目得出的交易的情形和各种状态的可视化表示形式;
图5示出了根据一个示例实施方式的满意度值的第一二叉散列树(binary hashtree)和相应执行值的第二二叉散列树的可视化表示形式;
图6示出了根据一个示例实施方式的与合约条款的多个满意度值相对应的扩展二叉散列树的可视化表示形式;
图7示出了根据一个示例性实施方式的用于对智能合约的执行进行核实的方法的操作步骤的流程图;
图8示出了根据一个示例实施方式的计算机实施的执行核实系统的操作模块的示意图;
图9示出了根据一个示例实施方式的用于建立机器可验证的智能合约的合约条款代码段(contract clause snippet)的可视化表示,该机器可验证的智能合约也可以使用自然语言来建立和表达;
图10A示出了合约条款代码段和修正的复合层的可视化表示形式,以及通过“整平”复合层而生成的智能合约的表示形式;
图10B示出了以层布置并以区块储存的文本叠层(text overlay)的示例的可视化表示形式;
图10C示出了通过修改条款或添加条款来进行修正的智能合约的进展的可视化表示形式;
图11A示出了根据一个示例实施方式的储存在区块链中的合约代码段的可视化表示形式;
图11B示出了根据一个示例实施方式的引用其他已经储存的代码段的代码段的可视化表示形式;
图12A示出了根据示例实施方式的具有身份核实的区块链的参与方初始化区块和交易区块的可视化表示形式;
图12B示出了根据示例实施方式的区块链的参与方初始化区块、认证更新区块和后续交易区块的可视化表示形式;以及
图13示出了根据示例实施方式的实施多签名应用的区块链的区块的可视化表示形式。
应当理解的是,为了示出的简单和清楚,附图中所示的元素不一定按比例绘制。例如,为了清楚起见,一些元素的尺寸可以相对于其他元素被放大。
具体实施方式
应当理解的是,为了示出的简单和清楚,在认为适当的情况下,可以在附图中重复附图标记以指示对应的或类似的元素或步骤。此外,阐述了许多具体细节,以便提供对本文所描述的示例性实施方式的透彻理解。然而,本领域的普通技术人员将理解,可以在没有这些具体细节的情况下实践本文描述的实施方式。在其它实例中,尚未详细描述公知的方法、过程和要素,以便不模糊本文所描述的实施方式。此外,该描述不应被认为以任何方式限制本文所描述的实施方式的范围,而是仅描述本文所描述的各种实施方式的实施例。
本文中的“智能合约”是指储存在计算机实施的区块链的一阶区块中的智能合约条款的集合。
本文中智能合约的“合约条款”是指限定执行义务的电子储存编码规则。通过确定由合约条款限定的一个或更多个满意度值存在于从储存的交易事件条目得出的交易的执行值中,可以在计算机系统内自动验证智能合约的合约条款的履行。
本文中“交易事件条目”是指储存与已经发生的现实生活事件(诸如由参与方执行的动作)有关的信息的数据条目。交易事件条目可以储存一个或更多个电子限定的事件要素(event component),诸如事件的电子限定的属性和/或信息变量和变量值。
本文中“交易”是指从一个或更多个交易事件条目中的一个或更多个事件要素得出或确定的信息。更具体地,可以从一个或更多个事件要素中确定或得出一个或更多个执行值,并且每个交易由执行值的子集合组成。
现在参考图1,其中示出了根据一个示例实施方式的用于对智能合约1进行储存的数据结构的图示。智能合约1被电子地储存为一个或更多个合约实例。每个合约实例包括至少一个电子限定的合约条款。每个合约条款由至少一个电子限定的满意度值来进一步限定。每个满意度值对应于由可能的执行值指示的值,该可能的执行值可以从跟踪现实生活事件的已储存交易事件条目中确定。从交易事件条目确定的执行值等于给定合约条款的给定满意度值的存在表示履行了对应于该满意度值的合约条款的部分。也就是说,合约条款的满意度值限定了考虑履行合约条款的目标值。
满意度值可以限定由可能的执行值指示的条件的存在。在这种情况下,满意度值仅限定必须存在的条件,如果条件为真,则满足满意度值。
满意度值可以限定变量和针对变量的目标值。如果执行值具有给定变量且该变量具有目标值,则满足满意度值。变量可以是具有特定类型和变量值的一条电子信息。可选的,变量可以是电子文档的类型,并且其值是电子文档中指示的电子信息。例如,变量可以是以下任一项:
·数值(实数、整数、浮点或其他)
·日期/时间;
·字符串;
·货币金额
·视听数字文件(例如:数字图像、音频文件或视频);
·数字文件;
·数字加密签名;
·网址(IP地址、URL等)
·计算机程序;
·编程脚本;
·数据块
·可以进行数字核实的任何其他类型的计算机数据;
·可以由人类用户核实并使用人类的数字签名确认的任何其他类型的计算机数据。
在图1所示的示例中,智能合约1的第一实例4a具有两个电子限定的合约条款8a和8b的集合。第一条款8a(“条款1”)限定了两个满意度值12a和12b。第一满意度值12a是条件类型,并且该满意度值简单地限定了将存在于从交易事件条目得出的执行值中的目标条件,以便将第一条款8a认为已执行。第二满意度值12b也是条件类型。第三满意度值是变量类型,在这种情况下,限定了在从交易事件条目得出的执行值中要识别的变量16a,并且还限定了该变量16a的满意度值12c。
第二条款8b(“条款2”)限定单个满意度值12d,该满意度值由第二变量16b进一步限定,该第二变量16b在从交易事件条目得出的执行值和该变量16b的目标值中被识别。
智能合约1中限定的合约条款可能会随着时间的推移而修正。例如,可以以增加新条款或修改现有条款的形式进行修正。可以理解的是,智能合约最初是由一个或更多个根合约条款的集合限定的,并且可以随着时间的推移对该集合进行修正。还应理解的是,对合约条款集合的修正使智能合约具有更新的电子限定的合约条款集合。
继续图1所示的示例,以添加新条款的形式提供了第一修正。该修正限定了具有第三变量16c和其满意度值12d的新条款。该新条款8c是示例性智能合约的第三条款,其使得限定该智能合约的条款的集合被更新。
图1的示例还以对智能合约的现有条款进行修改的形式示出了第二修正。该修正通过为第一变量16a限定修改后的满意度值12c'来限定对第一条款8a的更改。这将对形成智能合约的条款集合进行进一步修正。
根据各种示例实施例的本文所描述的智能合约可以被储存在区块链中。根据此类示例实施方式,储存智能合约的区块对应于区块链的一阶区块。这些区块将区别于根据各种示例性实施方式用于储存交易事件的二阶区块,如本文别处所述。
例如,区块链的一个或更多个一阶区块的初始集合可以储存根合约条款。可以将对形成智能合约的任何当前合约条款集合的一个或更多个修正储存在追加到区块链的前一区块的后续一阶区块中。通过将整个修正后的合约储存在追加区块中,可以储存智能合约的每个修正。可选地,可以通过储存对追加区块的增量更改来储存对智能合约的每个修正。例如,在图1中,形成智能合约的第一实例的根合约条款8a和条款8b被储存在第一一阶区块24a中。第一修正被储存在仅指示新合约条款8c的第二一阶区块24b中。第二修正被储存在第三一阶区块24c中,该区块仅指示对第一条款8a的修正。表示合约条款的电子储存数据可以根据本领域已知的其他方法而跨区块链的一阶区块分布。
基于储存在一阶区块外部的信息来判断储存在一阶区块中的智能合约是否已被完全执行(即,所有合约条款的满意度值已被满足)或部分执行。因此,智能合约被认为是基本不可变的,因为储存在一阶区块中以限定智能合约的数据内容保持不变,同时被生成以跟踪现实世界事件的信息可以随时间而发展,该信息用于判断是否执行(全部或部分)智能合约。将理解的是,对一阶区块的任何更改都将导致对智能合约的修正,而有关现实世界事件的不断发展的信息不会更改智能合约的条文。
如本文其他地方所述,提供有关现实世界事件的信息的数据可以被储存在交易事件条目集合中,该数据可以进一步被储存在区块链的二阶区块集合中。现在参考图2,其中示出了用于储存交易事件条目的数据结构的图示。值的执行可以通过电子储存的交易事件条目来确定或得出。一个或更多个执行值的集合可以限定在事件条目中正在跟踪的交易。应当理解,随着新的现实世界事件发生并被储存在交易事件条目中,正在进行的交易的属性可以随时间而发展。交易的属性可以由执行值限定,该执行值由交易事件提供的信息确定。发生新的现实世界事件可能会更改执行值,从而更改正在进行的交易的参数。
图2所示的示例示出了交易事件条目的系列100,交易事件条目可以被储存,使得事件条目在组合时可以表示不断发展的交易。每个事件条目代表在现实世界中已经发生的事件。每个交易事件条目可以包括一个或更多个事件要素,这些要素储存有关交易事件的信息。
例如,第一交易事件条目104a包括属性类型的第一事件要素108a和属性类型的第二事件要素108b。属性类型的第一事件要素108a和第二事件要素108b限定已经发生的事件的属性。
第二示例性交易事件条目104b包括属性类型的第三事件要素108c、属性类型的第四事件要素108d和变量类型的第五事件要素108e。变量类型可以对应于智能合约条款中限定的变量类型。变量类型事件要素包括给定变量的值112a。
第三示例性交易事件条目104c包括变量类型的第六事件要素108f和变量类型的第七事件要素108g。事件要素108f和事件要素108g中的每个事件要素都具有各自的值112b和112c。
跨一个或更多个储存的交易事件条目的一个或更多个事件要素可以限定执行值。执行值可以具有与储存在一阶区块中的智能合约中限定的合约条款之一的满意度值匹配的值。
例如,跨一个或更多个交易事件条目的一个或更多个属性可以指示存在由现实事件产生的条件,该条件给出执行值。由交易事件条目指示的条件的存在以及因此执行值的存在可以用于基于执行值是否匹配该条款的满意度值来判断是否满意合约条款。
跨一个或更多个交易事件的一个或更多个属性可以指示具有特定值的变量,该变量还给出执行值。在交易事件中指示的变量值也可以用于基于从执行值限定的变量值是否与该条款的满意度值匹配来判断是否满意合约条款。
执行值可以等于交易事件条目的事件要素中限定的值。执行值也可以通过跨一个或更多个交易事件条目的一个或更多个事件要素中限定的值来确定或得出。
如本文别处所述,所储存的交易事件条目储存表示在现实世界中发生的事件的信息。一个或更多个执行值限定从储存交易事件条目跟踪的交易。因此,交易是与智能合约中限定的一个或更多个合约条款相对应的一个或更多个执行值的子集合,使得可以使用执行值与合约条款的满意度值的比较来判断是否满意合约条款。因此,可以使用适当地确定执行值以形成交易来判断智能合约作为整体是否已经被满意。
根据各种示例实施方式,本文描述的电子储存的交易事件条目可以被储存在至少一个区块链中。根据本领域已知的方法,每个交易事件条目可以被储存在区块链的一个或更多个区块中。例如,如图2所示,每个交易事件条目都被储存在相应的区块中。
交易事件条目可以被储存在至少一个区块链中,该区块链独立于储存智能合约的一阶区块的区块链。即,由一阶区块形成的区块链独立于储存交易事件条目的至少一个其他区块链。
可选地,交易事件条目可以被储存在与一阶区块相同的区块链中。在这样的区块链中,用于储存智能合约的区块在逻辑上不同于储存交易事件条目的区块。这样就能与确定执行值并从储存交易事件条目的区块中得出交易分开,从一阶区块中建立智能合约。
现参考图3,其中示出了用于对电子限定的合约条款进行储存的一阶区块链和用于对电子限定的交易事件条目进行储存的二阶区块链的示意图。第一区块链120充当储存一个或更多个智能合约的一阶区块链。可以形成第二区块链的第二集合区块124储存交易事件条目。交易是从储存在区块124中的条目确定或得出的二阶“含义”或执行值的子集合。在所示的示例中,从储存的交易事件条目中确定两个交易(交易1和交易2)。将交易的执行值与一阶区块链的相应满意度值进行比较,以判断是否满意给定的智能合约。
可以理解,还可以储存一个或更多个附加的数据阶(例如:三阶、四阶等)。可以使用独特的区块将此类更高阶的数据储存在其他区块链内或相同的区块链内(例如:与第一区块链120或第二区块链124相同)。例如,代替将信息直接储存在二阶交易事件条目的事件要素内,可以将此类信息储存为高阶数据,并且二阶交易事件条目的事件要素可以链接到高阶数据。
现在参考图4,其中示出了根据示例实施方式的,从电子储存的交易事件条目得出的交易的情形和各种状态的可视化表示形式200,以及与智能合约的相应合约条款的满意度值的比较。
给定合约条款的满意度值在示例中表示为“期望值”。在所示的示例中,这些是变量“A”和“B”,分别具有值“1”和“2”。这些在框204中以图解方式表示。也就是说,从包括执行值具有值“1”的变量“A”和值“2”的变量“B”(从而与限定的满意度值匹配)的执行值的交易事件所得出的交易将指示已经履行合约条款。
合约条款由给定的满意度散列值限定,该满意度散列值对应于通过将散列函数应用于为合约条款限定的满意度值而生成的散列值。
根据一个示例实施方式,将满意度值储存在二叉散列树结构中,并且满意度散列值表示在二叉散列树的给定级别上与合约条款相对应的散列值,并通过适当地散列所有子级到给定级别的满意度值而获得。在所示的示例中,用于给定条款的满意度散列值208是“AABBCC”。应当理解,确定具有满意度值208,就好像在交易事件条目中存在具有相同满意度值的执行值一样。还将意识到,用于储存满意度值的二叉散列树结构非常适合于在区块链内储存智能合约的满意度值。
还示出了根据到目前为止已经生成的交易事件条目确定的当前执行值。由交易事件条目确定并与给定合约条款的满意度值进行比较的交易执行值以二叉散列树形式排列,以具有与该合约条款的满意度值的二叉散列树相同的逻辑排列。因此,在执行值与满意度值匹配的情况下,将从二叉散列树为满意度值生成相同的散列值,并从二叉散列树为执行值生成相同的散列值。
在图4的示例性交易的第一状态中,如表216a所示,从交易事件条目得出的执行值指示针对变量“A”和变量“B”的值缺失,如框212a所示。缺失值生成执行散列值“XYZ”(框220a)。由于满意度散列值与执行散列值不匹配,因此合约条款被确定为不满意。
缺失值可能对应于没有发生任何现实世界事件的情况,该事件将导致储存对具有这些值的变量进行指示的交易事件条目。例如,在合约条款中限定的满意度值可以包括变量“A”作为照片ID和满意度值“约翰·史密斯(John Smith)”以及变量“B”作为个人身份号码(pin code)和满意度值“ABC123”。对应的交易是从交易事件条目确定的执行值的子集合,以指示接收到的照片ID和接收到的个人身份号码的值。在不完整的部分交易状态216a中,尚未在(一个或更多个)现实世界事件中提供照片ID和个人身份号码,因此该值是缺失的。
在同一交易的第二种状态中,交易的执行值现在对于变量“A”具有值“1”,并且对于变量“B”具有值“3”。这将生成“CCFFGG”的执行散列值(框212b和框220b)。由于该执行散列值与满意度散列值“AABBCC”不匹配,因此处于第二状态216b的交易被认为未履行给定的合约条款。例如,现在储存了附加交易事件条目,以反映现实世界中的事件,在该事件中,用户为“约翰·史密斯”提供了照片ID,但未提供正确的个人身份号码。交易的当前状态反映了从这些附加事件条目确定的执行值。
在同一交易的第三种状态中,交易的执行值现在对于变量“A”具有值“1”,并且对于变量“B”具有值“3”。这将生成“AABBCC”的执行散列值(框212c和框220c)。由于该执行散列值与满意度散列值“AABBCC”匹配,因此处于第三状态216c的交易被认为已经履行给定的合约条款。例如,现在储存了附加交易事件条目,以反映现实世界中的事件,在该事件中,用户为“约翰·史密斯”提供了照片ID,并且也提供正确的个人身份号码。
现在参考图5,其中示出了用于一组合约条款(例如:条款和各种子条款)的满意度值的第一二叉散列树240和用于判断该组条款是否被满意的对应执行值的第二二叉散列树248的可视化表示形式。限定第一二叉散列树240的右侧分支的满意度值。例如,第一二叉散列树240的右侧分支的满意度值对应于图1的示例中所示的智能合约的部分,如下所示:
条件1 费用低于50000美元
条件2 将于2019年1月1日完成工作
变量1′ 已完成工作的照片(在修正中更新)
变量2 核实者1的确认
变量3 核实者2的确认
将理解的是,在二叉散列树的给定等级上的每个节点限定各自的散列值,该散列值是由从该节点向下一等级的子节点生成的散列值和来自该节点的满意度值的散列值的级联。这能够在每个级别上判断针对该级别和所有子节点的满意度值是否存在于一个或更多个交易的执行值中。
第二二叉散列树248具有与满意度值相对应的执行值,并且以相同的二叉散列树排列进行排列。在所示的示例中,右侧分支具有来自一个或更多个交易的执行值。此外,这些执行值等于第一二叉散列树240的右侧分支中的满意度值。因此,用于二阶二叉散列树248的右侧分支的中间节点252与对应节点256具有相同的散列值“BB+CC+H:DD”。然而,由于二阶二叉散列树248的左侧分支中的执行值尚未匹配一阶二叉散列树240的左侧分支,因此整个二阶二叉散列树248的根执行散列值260与一阶二叉散列树240的满意度散列值264不匹配。
生成限定最终满意一阶二叉散列树240的右侧分支的满意度值的交易的执行值的交易事件条目可以由图2的示例性交易事件条目表示,如下所示:
Figure BDA0003012237010000151
Figure BDA0003012237010000152
Figure BDA0003012237010000161
Figure BDA0003012237010000162
Figure BDA0003012237010000163
Figure BDA0003012237010000164
Figure BDA0003012237010000165
Figure BDA0003012237010000171
现在参考图6,其中示出了根据一个示例实施方式的可以对应于合约条款的多个满意度值的扩展二叉散列树的可视化表示形式;例如,给定的合约条款可以具有顶级满意度值的集合。这些顶级满意度值在顶级树276中表示。给定的合约条款也可以具有与该合约条款的子条款相对应的较低级别的满意度值。在示出的示例中,每个子条款代表一个里程碑或部分交易。第一子条款由第一低级树280表示,并且第二子条款由第二低级树284表示。每个低级树具有各自的满意度散列值(“DEF”用于第一树280,“XYZ”用于第二树284)。来自储存的交易事件条目的一个或更多个交易的执行散列值与用于第一低级树280的第一满意度散列值匹配,表示满意第一子条款(第一里程碑完成)。同样地,来自储存的交易事件条目的一个或更多个交易的执行散列值与用于第二低级树284的第二满意度散列值匹配,表示满意第二子条款(第二里程碑完成)。将理解的是,可以确定子条款中的任一子条款的完成,而不必确定已经履行整个条款。此外,通过将用于两个低级树的执行散列值与顶级树的执行散列值组合,可以确定整个条款已被执行。
现在参考图7,其中示出了根据一个示例性实施方式的用于核实智能合约的执行的方法300的操作步骤的流程图。
在步骤304,生成智能合约。本文别处描述了用于生成智能合约的各种示例性方法。生成智能合约可以包括迭代修正智能合约(修改或添加新的合约条款),如本文其他地方所述。将理解的是,智能合约可以在与执行用于核实智能合约的执行的方法的系统分离的系统上生成,并且生成智能合约的步骤可以被认为不是用于核实智能合约的执行的方法的一部分。
在步骤308,接收要分析以确定其执行的智能合约。收到的智能合约对应于智能合约的当前版本,其可以是智能合约的初始版本或当前修正版本。
在步骤312,确定用于智能合约的满意度散列值。这可以包括为智能合约的所有条款(和所有满意度值)确定全局满意度散列值。这也可能包括确定用于智能合约中的单个条款或子条款的中间满意度散列值。
在步骤316,从交易事件条目中得出或确定形成与给定智能合约的满意度值相对应的交易的执行值。如本文别处所述,交易事件条目可以被储存在区块链的二阶区块内。
在步骤320,确定用于与满意度值相对应的交易的执行散列值。如本文别处所述,可以以与满意度值的二叉散列树对应的方式而以二叉散列树排列来排列执行值。可以确定全局执行散列值。也可以确定与单个条款或子条款相对应的中间执行散列值。
在步骤324,将来自步骤316的(一个或更多个)满意度散列值与来自步骤320的(一个或更多个)执行散列值进行比较。这能够判断整体上是否已经执行了智能合约。该判断还可以指示智能合约已被部分执行,并且还可以识别已经执行的那些条款和尚未执行的其他条款。如果智能合约已经被完全执行,则该方法进行到步骤328以指示智能合约已经被执行。
如果智能合约未执行(或仅部分执行),则该方法返回到步骤316以基于新储存的交易事件条目更新用于交易的执行值。可选地,根据一些示例性实施例,该方法可以返回到步骤308以接收智能合约的更新版本。
区块链本质上是一系列不可变的区块,他们通过加密散列链进行链接和保护。本文描述的各种示例性实施方式提供了一种用于限定不可变的计算机可实施的智能合约的机制。此外,通过跟踪交易事件条目中的现实世界事件并得出与智能合约相对应的交易的执行值,智能合约的执行状态可以随时间而发展。也就是说,交易的执行值可以随时间而更改。因此,这些交易是与不可变的智能合约分离的二阶含义。
通过这种方法,可以建立结构上不可变的、以加密的方式强制执行的合约,同时仍然允许条件和变量随着时间的推移被对部分交易进行追溯性修改的事件修改,从而逐步确认合约的执行。这可以允许创建复杂的智能合约,以完全不可变的方式具有多组里程碑。这种方法还允许随着时间跟踪交易的状态的能力作为二阶含义(例如:交易可以是不完整的、部分完成的或完全执行的),而不会破坏储存不可变智能合约的一阶区块链的结构和加密完整性。
根据本文描述的各种示例实施方式,引入了一阶智能合约和二阶交易的概念。智能合约和交易都可以在(一个或更多个)区块链中表示。一阶合约条款在区块链中被储存为完全不可变的,并通过永久加密散列相互链接。二阶交易(部分交易)是独立于一阶合约条款的可变第二等级解释。例如,虽然表示现实世界事件的交易事件条目可以以不可变的方式储存在区块链中,但是限定交易(具有二阶含义)的执行值是从事件条目中得出的。因此,交易的状态和执行值是可变的。示出智能合约的执行所需的智能合约的目标满意度值可以通过具有与满意度值匹配的执行值的经确认的二阶交易随时间提供。然后完成的交易可以追溯写入一阶区块链,而不会破坏区块之间的散列关系和储存智能合约的一阶区块链的加密完整性。
如本文别处所述,现实世界事件可以以交易事件条目的形式以不可变的方式储存在区块链中。如本文别处所述,诸如在图4的示例中,交易事件条目允许得出或确定进一步限定交易状态的执行值。随着追加新的事件条目,交易的状态也会更新。这种可变交易(在本文中也称为部分交易)可以被储存为交易条目。这些条目可以包括用于储存从交易事件条目中得出或确定的特定执行值的存储器插槽。可选地,存储器插槽可以储存从执行值生成的特定散列值。储存在存储器插槽中的执行值(或执行散列值)还可以被临时储存在执行核实系统中。可选地,这些值可以被储存在区块链中,以便在新事件发生时随时间跟踪部分交易的状态。在任何给定时间被储存在存储器插槽中的执行值(或执行散列值)的每个集合限定了部分交易的状态。
因此,电子储存的智能合约可以被认为是较低的“N”阶交易(例如:N=1,在本文所述示例中为一阶)。智能合约的合约条款限定了需要确定或得出的执行值(以满意度值的形式),并进一步指示了要在交易条目中分配的、用于储存部分交易的存储器插槽。由事件条目确定或得出的执行值限定并在交易条目的存储器插槽中跟踪的部分交易可以被认为是“N+1”阶交易(例如:N+1=2,在本文中描述的示例中为二阶)。随着新事件的发生和执行值的更改,部分交易的状态也将更改。据观察,由区块链的加密保险所提供的仅追加、不可变的性质非常适合限定合约关系。然而,在确定合约的执行时可能需要可变性,因为合约的执行状态发生了变化—时间上的执行状态是可变的。一种解决方案是,每次交易状态发生变化时(例如:由于现实世界事件的结果),在区块链中创建条目。虽然这提供了不可变性,但该解决方案会在区块链上产生多余的交易数据重复,这会使用更多的磁盘空间和带宽。本文所描述的各种示例性实施方式克服了该缺点,同时保留区块链的不可变性,并允许所跟踪的交易的执行值中的可变性。
本文描述的各种示例性实施方式利用散列值。满意度散列值是从一阶智能合约生成的,并表示当智能合约被认为已履行时将出现的散列值。为从二阶交易事件条目得出的交易的执行值生成执行散列值。不完整、不正确或无效的执行值会生成与满意度散列值不匹配的执行散列值,从而指示尚未执行合约。如本文别地所述,交易的状态可以随时间而修改。随着新的现实世界事件的发生,交易的执行值不断发展,直到执行散列值与满意度散列值匹配。在此点上,智能合约(合约的条款或子条款)被认为已执行。否则,如果散列值不同,则认为合约未完全执行。
在安全性方面,通过根据各种示例性实施方式在二阶区块链内储存交易事件条目,篡改允许确定合约已被执行的二阶交易执行值将变得非常困难。尽管从事件条目得出的执行值在时间上是变化的,但是由储存的交易事件条目的加密有效性(不可变的)支持这些不断发展的值。通过重播交易事件条目,交易的执行值将在时间上出现变化。因此,交易事件条目核实交易执行值的发展。
在将合约编译为中间压缩二进制格式(包含与合约有关的所有信息并对其进行解释所需的信息)之后,智能合约的合约条款可以被理解为插入一阶区块链中的目标部分交易。因此,智能合约代表了合约完成所需的所有一阶目标交易的完整结构。当执行值限定与目标交易匹配的现实世界交易时,会发生完成。储存的目标交易可以包括多个里程碑链,每个里程碑链都取决于其前一个交易能否成功实现。如果合约是永久性的,则可以在成功完成前一个里程碑之后以动态方式添加后一个里程碑。
这些一阶目标交易(即,合约条款)使用理想的散列相互链接,并添加到区块链中以保持一阶不可变。这些目标交易将全部是部分交易,因此在二阶提供含义。
本文描述的用于限定智能合约和确定或得出交易的执行值的各种示例实施方式允许计算机实施的对智能合约的执行的解释和核实。
虽然本文所描述的用于限定和核实智能合约和合约条款的示例很容易适用于确定参与方之间执行义务的满意度,但应当理解,本文所描述的系统和方法可以适用于涉及跟踪一个或更多个条件集合和/或一个或更多个变量值集合的存在的任何用例。在一阶交易中限定(一个或更多个)条件和/或(一个或更多个)变量值,同时跟踪事件以允许建立二阶交易,其中一阶条款和二阶部分交易可以被储存在一个或更多个区块链中。例如,它可以用于跟踪检查和评论系统内(诸如,在电子商务平台内)的状态和结果。现在参考图8,其中示出了用于核实智能合约的执行的计算机实施的执行核实系统400的操作模块的示意图。本文所描述的系统400被呈现为一系列计算机实施的模块。
本文所描述的系统在本文中被描述为可以在可编程计算机上执行的计算机程序中实现的模块,每个可编程计算机包括至少一个处理器、数据储存系统(包括易失性和非易失性存储器和/或储存元件)、至少一个输入设备和至少一个输出设备。例如,但不限于,可编程计算机可以是可编程逻辑单元、大型计算机、服务器、个人计算机、互连计算机网络、基于云的程序或系统、笔记本电脑、个人数据辅助设备、蜂窝电话、智能手机或平板电脑设备。
每个程序优选地以高级过程或面向对象编程和/或脚本语言来实现,以与计算机系统通信。但是,如果需要,这些程序可以用汇编语言或机器语言实施。在任何情况下,该语言都可以是编译或解释语言。
如本文别处所述,计算机实施的一阶区块链120将一个或更多个智能合约的合约条款储存在一阶区块内。如本文别处所述,可以提供计算机实施的二阶区块链124以将交易事件条目储存在二阶区块内。
系统400包括第一区块链引擎404,其被配置为检索和解释储存在第一区块链120上的电子数据。检索到的数据可以包含与储存的一个或更多个智能合约的合约条款有关的数据。第一区块链引擎404还可以被配置为将数据块写入第一区块链120。写入的数据可以包含与对一个或更多个智能合约的合约条款进行修正有关的数据。
系统400包括第二区块链引擎408,其被配置为检索和解释储存在第二区块链124上的电子数据。检索到的数据可以包含与储存的交易事件条目有关的数据。第二区块链引擎408还可以配置为将数据块写入第二区块链124。写入的数据可以包含与跟踪现实世界事件的新交易事件条目有关的数据。根据各种示例性实施方式,相互交易的各种第三参与方可以将交易事件条目写入二级区块链。
系统400包括第一合约汇编器模块412,其被配置成通过第一区块链引擎404从来自一阶区块链120检索的数据中提取相关的智能合约。第一合约汇编器模块412可以从检索到的区块中识别那些储存与给定智能合约有关的数据的特定区块。在智能合约跨多个区块储存的情况下,诸如由于随着时间的推移而进行的修正(对条款或新添加的条款的修改),第一合约汇编器模块412可操作为汇编智能合约的部分以生成用于核实的完整智能合约。
系统400包括第二合约汇编器模块416,其被配置为提取与由第一合约汇编器模块412提取的相关智能合约相对应的相关交易事件条目。第二合约汇编器模块416接收由第一合约汇编器模块412汇编的智能合约,并从来自二阶区块链124检索的数据中识别那些储存与该智能合约有关的交易事件条目的特定区块。相关交易事件条目可以是那些储存关于现实世界事件的信息的条目,这些条目允许确定或得出与智能合约的合约条款相对应的交易的执行值。如本文别处所述,执行值允许判断是否已经满意智能合约。
系统400包括解释器模块420,该解释器模块420被配置成基于储存在交易事件条目中的信息自动判断是否已经执行了智能合约。解释器模块420可以提取由第二合约汇编器模块416汇编的智能合约的满意度值。在满意度值排列在一个或更多个二叉树中的情况下,解释器模块420可以从满意度值生成一个或更多个满意度散列值(例如:用于整个合约的全局满意度散列值和/或用于合约条款或子条款的部分散列值)。
解释器模块420还可以从由第二合约汇编器模块416提取的交易事件条目确定或得出执行值。如本文别处所述,可以从一个或更多个事件要素确定或得出执行值。执行值的子集对应于智能合约的合约条款。
根据一个示例实施方式,并且如图8所示,执行值的确定或得出可以基于来自内容提供模块424的输入,该内容提供模块424被配置为提供用于从交易事件条目的事件要素中确定或得出执行值的内容。该内容可以基于规则库428,该规则库428储存电子限定的规则,该规则进一步限定应该如何基于法律法规和/或判例法解释事件要素。规则库428可以基于法律的变化而随时间被更新。解释规则的示例可以是如何处理落在周末或假日的截止日期(例如:截止日期是前一个工作日,或延长到下一个工作日)。另一示例是用于判断建筑物是否符合建筑规范的建筑规范集合。
解释器模块420还被配置为将汇编的智能合约的满意度值与从交易事件条目确定或得出的执行值进行比较,并从比较中判断是否已经执行了智能合约(或者是否已经执行了智能合约的至少部分)。如本文别处所述,将执行值与对应的满意度值进行比较,并且如果两个集合的值匹配,则认为智能合约已执行(或者认为针对该集合的满意度值的条款已执行)。
根据各种示例实施方式,解释器模块420被配置成以与智能合约的对应满意度值的一个或更多个二叉树相同的排列方式排列一个或更多个二叉树中的执行值。解释器模块420还可以从执行值生成一个或更多个执行散列值(例如,用于所有交易的执行值的全局执行散列值和/或用于交易或子交易的执行值的集合的部分执行散列值)。
基于智能合约的满意度值(满意度散列值)与从交易事件条目确定或得出的执行值(执行散列值)的比较,解释器模块420被配置为输出指示以下内容的智能合约的状态:智能合约是完全执行还是部分执行。该输出还可以指示智能合约的合约条款或子条款的状态(例如:特定条款是否已完全执行,但整个合约尚未执行)。
在一些示例实施方式中,解释器模块420还可以将合约的状态指示为未解决。在一些情况下,解释器模块420可以向争议解决模块432输出相关信息,诸如智能合约的相关条款和解决合约所需的相关交易事件条目。争议解决模块432可以进一步将该信息提供给智能合约的各方,以允许在执行核实系统400之外解决合约。
现在参考图9,其中示出了合约条款代码段的可视化表示形式500,该合约条款代码段用于建立机器可验证的智能合约,该合约也可以使用自然语言来建立和表达。合约条款代码段的使用允许用户建立电子储存的智能合约,该智能合约可以根据本文描述的各种方法和系统进行核实,同时也可以使用自然语言表达。
合约代码段库504,其储存多个预限定的合约条款模板(以下也称为“合约代码段”)。用户可以通过选择预限定的合约条款模板的集合来建立合约。预限定的合约条款模板可以限定以下一者或更多者:
·自然语言短语,用于以自然语言表达合约条款;
·一个或更多个变量字段和对应的值字段,用于限定满意度值,每个满意度值具有变量类型和变量值;
·一个或更多个条件字段,用于限定具有条件的一个或更多个满意度值。
合约代码段可以包含各种信息,这些信息指示该代码段的逻辑含义,用于计算机实施对从该代码段创建的合约条款的核实。可以在自定义编程标记语言的帮助下执行对从代码段创建的条款的解释,该自定义编程标记语言将基本上以机器脚本的形式解释该行为。这些脚本还限定了如何访问储存的事件条目中的事件要素,诸如合约的参与方、期望的时间框架以及由用户添加或合约需求的任何其他相关变量。脚本还可以限定如何从交易事件条目中储存的数据中得出或确定执行值或执行散列值。例如,脚本可以限定要应用于交易事件条目的事件要素中的数据的函数或算法,以确定执行值。脚本还可以限定用于生成执行散列值的执行值的结构,该执行散列值将与用于确定智能合约的合约条款的执行的满意度散列值相比较。例如,包含脚本的代码段本身可以组织成二叉树,并且应用于交易事件条目中的数据的每个脚本的输出可以用于为该代码段树生成执行散列值。
自定义标记语言为了利用区块链的继承系统和链接特性而建立,自定义标记语言的设计允许从先前建立的元素的代码段中建立人类可读的语句。每个语句都由两个主要部分组成:文本生成标记元素,其限定如何确立人类可读的文本生成,和支持编程的脚本,其将文本赋予机器程序性含义。文本标记语言允许用不同的标识物和变量标记文本的各个部分,然后这些标识物和变量可以链接到支持的编程脚本中。
这些代码段的重要特性是它们是完全可覆盖的,并且代码段的任何部分都可以被另一部分叠加,从而更改原始含义并将两者合并为新的代码段。系统400能够核实在覆盖组合之后所得到的含义仍然有效,并且将其与文档上的其他含义相关联以确保稳健性。
代码段还可以包含编程代码提示,以帮助系统解释文本构造的法律意图,以及它相对于其他代码段的输入和输出的行为。这种计算线索语言确保语句的任何部分都可以被新的层覆盖,从而赋予它新的含义,同时帮助系统确认期望的行为仍然符合法律期望。该语句堆栈可以由系统整平、编译和使用,以确定智能合约的合并条款。
每个代码段被设计为可以编译并以自然语言(诸如英语、法语、西班牙语、中文或任何其他合适的语言)表达。
语言的格式设置允许短语的任何部分都由代码的代码段组成。例如,在伪代码中,如果确定代码段生成词语[限定:代码段1--“让它存在”]([define:snippet1--”let therebe”])和另一个[限定:代码段2-“光”]([define:snippet2—“light”]),然后代码段[限定:代码段3-[代码段1][代码段2]]([define:snippet3--[snippet1][snippet2]])会产生短语“让光存在”。
如果要覆盖区块的内容,例如:[限定:代码段4-[代码段3]([define:snippet4--[snippet3]),[替换:代码段2-“地球上的和平”]]([replace:snippet2—“peace onearth”]]),则此叠加的结果会是:“让地球上存在和平”。任何其他引用代码段3的块仍然会产生相同的短语“让光存在”。因此,代码段4就变成了叠层,这取决于它从先前区块中继承的先前代码段的含义和内容。这些代码段还可以合并其他代码段,就像编程代码可以包含提供自己的可执行行为的常规函数一样。因此,代码段可以被建立成代码段的层次结构,从简单的短语开始,到最终形成复杂的段落和文档。
脚本语言还允许为机器创建更高阶的操作、语句和含义,这些操作、语句和含义可以更好地适应合约语句的解释和流程。可以制定专门的指令,对更高层级的法律语言结构和解释进行操作。通常的编程语句,诸如条件、循环、函数等,也可以用来补充含义,并嵌入到这个自定义编程脚本语言中。这些特殊操作将被理解,并且能够在自定义建立的虚拟机引擎中执行。
合约代码段还可以指示从该代码段创建的合约条款的自然语言文本结构。这些代码段还将包含语言翻译指令,其将使得理解脚本语言的系统(例如:合约汇编器模块412)能够生成合约代码段中限定的语句的人类可读版本。
合约代码段可以在智能合约中分层。例如,对于合约代码段的自然语言表达,每个内部代码段将生成自己的语言,这被注入到父级中,直到形成完整的语言段落。该语言生成层将能够基于底层脚本和翻译指令的编程含义来生成世界上任何语言的文本。当用户将在用户界面上制作合约时,他们以其首选的通信语言看到代码段的人类可读语言结果,而不是编程语句(除非配置为也这样做)。
合约工作台508是用户界面,其中用户可以选择预限定的合约条款模板并在模板的字段中输入期望的满意度值以填充智能合约。因此,用户界面允许用户通过选择合约条款的集合和限定满意度值来建立智能合约。合约工作台508还允许用户创建自定义合约代码段。
因此,该系统将能够以编程形式解释合约,并以文本形式生成合约,以便人类用户能够阅读该语言并理解其含义,而无需查看证实其背后语言的编程。通过解释代码段层次结构的编程含义,该系统将能够为用户生成各种可视化辅助,诸如合约结构和时间进度、条件分支、检测逻辑错误、检测冲突语句以及从代码中推断出的任何其他操作。
在所示的示例中,与用户看到的信息相对应的合约工作台508示出用户已经限定了变量“参与方”和“完成日期”。用户还选择了代码段“协议”、“补偿”和“见证”,以及限定了“协议”代码段中“文档”字段的值和用于“补偿代码段”的竞争条件。
脚本化合约表示形式512示出了用于智能合约的电子限定的合约条款和相关联的满意度值,这些合约是从由用户经由合约工作台508限定的值和选择的代码段来进行建立的。例如,在条款之一中限定了变量类型的满意度值,并要求文档的值为“文档X2”。将工作费用低于值“费用建议(CostProposal)”的条件限定为用于合约条款“补偿”的满意度值。
自然语言表示形式516示出了同一智能合约的自然语言表达。
一旦用户完成智能合约的建立,就可以对智能合约进行编译以储存在区块链的一阶区块内。智能合约可以以二进制形式520进行编译。可以在散列树524中排列合约的满意度值,使得每个合约条款具有各自的满意度散列值,并且还生成整个智能合约的根散列值。
根据示例性实施方式,区块链的一阶区块用于建立编程语句的链接列表,这些语句彼此建立以确立法律含义。在编译时,这些语句最终会被系统整平,系统将解析区块链以生成可读且有意义的法律文档。
创建可覆盖的联锁语句的叠加层。这些语句在区块链上相互链接。这些语句在区块链上相互链接。较新的区块链接到先前的父块(parent block),该父块包含预先格式化、验证并打包到结构化的语言条款库中的某些永久性法律语句集合。较新的区块通过链接到先前的区块自动继承先前的区块的所有语句和引用。然后,它可以自由地用自己的更改覆盖先前的区块,从而有效地创建语句或合约条款的新“版本”。语句的任何部分都可以通过使用表达性脚本语言来覆盖,该表达性脚本语言对修改及其在含义上的影响进行编纂。任何将来的区块将链接到先前的区块,但仍将保持不可变,因为覆盖的更改仅对链接到新区块的区块有效。
法律合约的描述语言是非常复杂的并且设计成机器友好的。为了产生人类可读的格式,使用了特殊的渲染器(或解释器),它将解析由引用的链接列表继承的区块链中的所有区块,并将每个层整平,以产生最终的人类可读的法律合约,为绑定协议做好准备。通过将这些层整平在一起,含义和经过编纂的解释也将被整平,从而影响含义的结果。
图10A示出了合约条款代码段和修正的复合层的可视化表示形式,以及通过“整平”复合层而生成的智能合约的表示形式。左侧表示形式示出3个复合层,而右侧表示形式示出复合层被整平以生成最终渲染的文档。
图10B示出了以层排列并储存在区块中的文本叠层的示例的可视化表示形式。应当理解,对先前合约代码段的修改被储存在后续追加的区块中。
图10C示出了通过修改条款或添加条款来进行修正的智能合约进展的可视化表示形式。将理解的是,尽管图10C的示例示出了对文本字符串的修正,但是这种修正也可以应用于合约条款/合约代码段的任何部分。
通过使用此能力以建立于先前的语句,可以创建现有的和经用户验证的代码段的库。最终,制作合约的用户将只需要重用现有的代码段,这将导致指向先前区块引用的简单链接。这将通过限制重复来节省磁盘空间,并且随着时间的推移,绝大多数新合约将占用最少的磁盘空间,而是由简单的引用进行建立。这将节省大量磁盘空间,从而进一步优化应用程序。
所描述的区块链继承系统的有益效果是能够链接至合约代码段,既可以作为完整的法律文档部分,也可以作为特殊的段落和部分。不同的法律代码段可以表示在区块链上先前限定并链接的区块中限定的文档的任何部分。这些离散的法律要素可以被汇编以创建完成且完整的法律文本。
在公共可用的层区块中组织语句的区块链的能力还允许创建可以公共可用的引用代码段库。然后可以将已由人类索赔代理人、律师、判例法或法院判决验证的每个区块语句传递给另一个用户以链接到此区块。
出于同样的原因,法律文档层可以作为模板来链接并开始建立。由于一阶区块链的不可变的本质,用户可以确信他们所继承的合约永远不会更改。这确保了法律合约模板的坚实基础。
图11A示出了储存在区块链中的合约代码段的可视化表示形式,其中后一个区块(区块52)引用储存在前一个区块中的代码段以形成结果合约540。
图11B示出了代码段的可视化表示形式,该代码段引用了其他已储存的代码段,并进一步限定了满意度值以限定智能合约的合约条款。由此产生的自然语言表达的代码段也被示出。
返回参考图8,执行核实系统400还包括允许用户建立智能合约的各种模块。预限定代码段库504储存用户可访问的一个或更多个预限定代码段。用户可以通过编辑模块508访问代码段库504以及储存在一阶区块链上的先前创建的代码段。编译器还可以使用合约代码段经由编辑模块508来创建与由用户创建的合约条款相对应的区块。编译器可以进一步经由第一区块链引擎404将区块写入一阶区块链。
根据各种示例实施方式,区块链还可以被配置为在发布诸如交易事件条目100之类的交易到区块链时,允许给定的参与方标识自己。用于交易事件条目的附加执行值可以是执行交易的参与方,诸如上传照片的参与方的身份(例如:对应于图4中的框212a)。
此外,可以提供该标识,而不必完整地链接至属于该给定参与方的单个唯一的公开加密密钥。因此,这允许将参与方的身份与唯一的公开加密密钥“分离”。应当理解,在各种区块链中的重要安全问题是用于向区块链发布区块的公开密钥的完整性,以及用于在访问该区块链时以加密的方式生成公开密钥的参与方的私人密钥的完整性。在许多情况下,参与方的私人密钥遭到破坏,诸如被盗或丢失,这会对原参与方产生严重后果。例如,该参与方拥有的资产(例如:加密货币)现在正被其他人访问(其中,私人密钥被盗),或者根本无法访问(私人密钥丢失)。
根据用于核实区块链交易的参与方的身份的示例实施方式,可以将唯一标识物归属于区块链上的参与方或参与者,由此唯一标识物不与单个唯一公开密钥相关联。例如,唯一标识物可以是从与该参与方有关的各种信息的唯一散列中获得的唯一账号,诸如与该参与方相关联的公开密钥、创建日期和时间等。可以实施工作证明和随机数,以确保由不受信任的用户创建新的唯一标识物的速率限制因素。还可以实施中央标识权威机构以控制针对参与方希望在区块链上进行交易的新的标识物的创建。
每个唯一标识物还与多个公开密钥相关联。每个公开密钥都可以从唯一的私人密钥得出。在参与方初始化交易期间,在区块链的区块内发布唯一标识物和与该唯一标识物相关联的多个公开密钥。因此,唯一标识物和相关联的公开密钥对在区块链上操作的所有参与方可见。例如,参与方初始化交易区块可以包括与给定参与方相关联的唯一标识物、从与该参与方相关联的第一私人密钥得出的第一公开密钥(例如:在该参与方的拥有中)和从与该参与方相关联的第二私人密钥得出的第二公开密钥(例如:在该参与方的拥有中)。
在发布参与方初始化交易之后,该参与方可以在区块链中的任何后续区块中提供其唯一标识物和其公开密钥之一。当然,该公开密钥是从属于该参与方的与其相关联的私人密钥以加密的方式生成的。
另一参与者(诸如另一设备)可以通过验证唯一标识物和公开密钥的存在来验证和核实后续交易。验证参与者可以将后续交易区块的唯一标识物和公开密钥与最初在参与方初始化交易中发布的标识物和公开密钥的集合进行比较。如果两条信息都包含在后续交易区块中,则核实该交易。
现在参考图12A,其中示出了示例性区块链的两个区块的可视化表示形式。第一区块600是参与方初始化区块。如上所述,参与方初始化区块包括第一公开密钥602(“AAA”)和第二公开密钥604(“BBB”)以及具有唯一散列ID(“AABBCC”)形式的唯一标识物606,所有这些都与初始化参与方相关联。
第二区块610是后续交易区块。该区块包括第一公开密钥620和与初始化参与方相关联的唯一标识物606。该区块还包括区块内容212,其可以是交易执行值,如本文别处所述。
如上所述,当核实第二区块610时,参考在参与方初始化区块600中发布的唯一标识物606和公开密钥602、604。
参与方可以进一步发布认证更新区块,以更新和覆盖在参与方初始化区块中发布的标识信息。特别地,参与方初始化区块包括初始唯一标识物、在参与方初始化区块中发布的至少一个公开密钥以及至少一个密钥更改条目。密钥更改条目更改了在参与方初始化区块中呈现的至少公开密钥的值。例如,第一个公开密钥可以具有其更改的值,因此成为从与该参与方关联的第三私人密钥得出的第三公开密钥。与参与者初始化区块中的第二公开密钥相同的第二公开密钥被呈现,以核实发布认证更新区块的参与方的身份。
在发布认证更新区块之后,然后参与方可以通过提供其唯一标识物和具有更改值的其公开密钥(即,第三公开密钥)来发布附加交易区块。因此,具有值更改的参与方初始化区块的公开密钥(即,第一公开密钥)不能再用于在后续的交易区块中核实参与方的身份。
当核实在认证更新区块之后发布的交易区块时,核实参与方验证唯一标识物和具有更改值的公开密钥(第三公开密钥)的存在。如果后续交易不包含更改值公开密钥,则将其确定为无效交易。
现在参考图12b,其中示出了示范性区块链的三个区块的可视化表示形式,示范性区块链包括在认证更新区块620之后发布的参与方初始化区块600、认证更新区块620和交易区块610’。参与方初始化区块600永久地发布到区块链,因此与其图12a中的表示形式保持不可变。认证更新区块620包括针对给定参与方的唯一标识物以及用于核实身份的第二公开密钥604。可以通过返回参考参与方初始化区块600来进行该核实。认证更新区块620还包括具有值(“CCC”)的更改值密钥622,该更改值密钥也对应于第三公开密钥。现在可以在后续交易区块(诸如区块610’)中使用该密钥。应当理解,后续的交易区块610’现在包括第三公开密钥622,并且在核实期间,参考认证更新区块620以核实该交易。
应当理解,多个认证更新区块620可以随着时间而链接,其中,每个认证更新区块包括唯一标识物以及先前认证更新区块的至少一个公开密钥和至少一个更改值公开密钥。先前认证更新区块的公开密钥用于核实当前认证更新区块。更改值公开密钥添加了新的公开密钥,以用于对后续的交易区块进行核实。更改值公开密钥还可以替换先前的公开密钥,使得该密钥不再可以用于对后续的交易区块进行核实。
应当理解,上述对参与方初始化区块和后续的认证更新区块的链接允许参与方使用其唯一标识物来发布交易区块。此外,标识和验证不依赖于单个唯一的公开密钥。相反,认证更新区块的链接允许随着时间的推移更改用于核实区块的公开密钥。因此,该参与方的身份与其使用的公开密钥脱钩。
这种脱钩还提供了比使用单个唯一的公开密钥更高级别的安全性。例如,当参与方不再拥有特定公开密钥(例如:第一公开密钥602)时,诸如相关联的私人密钥被泄露(丢失或被盗),该参与方可以使用其仍然拥有的备份密钥(例如:第二公开密钥604)来发布包含备份密钥和更改值密钥的认证更新区块。由于备份密钥是在参与方初始化区块中发布的,因此区块链上的所有参与者都知道该密钥,并且存在共识以及对核实很有用。更改值密钥也已广为人知,并且可以用于核实后续交易区块。此外,可以根据需要在后续认证更新区块中发布附加的更改值密钥。
交易的核实可以与如上所述的用于对智能合约的执行进行核实的方法和系统结合使用。例如,可以使用唯一标识物和发布的公开密钥根据需要核实每个具有执行值的二阶交易。此外,包含在二阶交易中的唯一标识物可以是用于确定智能合约的满意度的交易的执行值之一。
有效识别区块链上发布的交易区块的参与方的能力也可以用于在区块链上提供附加功能。
在一个示例应用中,由于与公开密钥脱钩的唯一标识物允许参与方在区块链上被唯一标识时进行操作,因此它还允许系统为链上的一些设备分配特殊角色。例如,可以通过呈现自己及其公开密钥并将自己标识为链中的受信任节点来创建特殊的集中式仲裁人设备。从那时起,由此身份在链上执行并由其承诺的公开密钥签名的任何动作将确保对网络的其余部分都始终都来自此特定账户。因此,这些特殊的受信任节点可以执行其他角色在链上无法执行的与其角色相关的特殊操作,诸如参与共识建立、免除区块确认、发送关于恶意设备的警告消息。
在另一示例应用中,在区块链上使用恒定的唯一标识物以及更改值公开密钥允许系统随着时间的推移关联并评估这些用户在区块链上的活跃度。这允许系统确立有关特定账户的统计信息,并基于其行为来为它们分配特殊的信任值。当节点在链上操作并遵守规则时,它的信任级别可能会增加,从而赋予它其他节点不可用的特殊特权。如果账户行为不端,则它的信任级别可能会降低,以至于它可能被完全禁止进入网络。当从受信任的账户接收交易时,网络上的节点的行为可能与从不受信任的账户接收交易时有所不同。
在另一示例应用中,可以监视各方的链上行为。通过在区块链上确立一定的规则(例如,任何设备(通过ip地址标识)不得操作超过3个账号,并且每天公布超过10个交易),可以确定好的活动参与方和差的活动参与方。遵守这些规则的设备将在网络上不受阻碍地操作。但是,违反这些规则的账户,诸如潜在地不可靠的第三方网站为其用户操作多个钱包,最终将被系统禁止。这种方法确保了对大容量提供商的适当控制,防止其操作并渗透网络或提供不可靠的批量服务。
区块链规则将由具有特定角色的节点定期发布,以使用特殊指令交易更新这些规则。当公开节点将接收到这些规则更新时,它们将修改其行为以反映新的指令。
为了使选定的第三方合作伙伴的集合能够操作批量交易,可以向那些被确定为足够值得信任的各方提供区块链上的特殊大批量证书,该证书将有效地授予他们代表其他用户执行批量操作的操作许可证。受信任的节点将在区块链上发出特殊的证书交易,该交易将标识许可证应用到的账户,以及允许其代表哪些账户进行操作。该许可证书还将包含其他相关信息,诸如有效日期、到期日等,并由具有特殊公认角色的身份(诸如仲裁人)签名。
当这样获得许可的操作者进行操作时,他们会在交易中追加其证书许可标识物,然后再将它们在对等网络上发送。将交易转发到网络的其他节点将接收这些交易,并将注意到包含的许可证书编号,并使用链上发布的证书对其进行核实。如果该证书被认为是有效的,则他们将允许交易并将其中继到网络,否则他们将禁止没有此类证书的账户和IP地址。
可以通过引用已发布的帐号进行此验证。例如,该证书将允许帐号AAA代表账户BBB、CCC和DDD进行操作。
签名和引用以隐秘的方式发布的公开密钥,节点可以知道该交易的所有者确实是AAA,然后将对证书进行核实。如果他们是代表账户(比如BBB)进行操作,则BBB签名也将包括在内,确认该操作者可以作为针对BBB的操作者进行操作,并且利用其许可证书允许其为BBB进行操作。
下面是可以授予的许可的示例:
{
″Certificateld″:″033bd16d-1dda-4410-96eb-1d47f730063e″,
″CertificateVersion″:″1.0.0″,
″ModeratorUuid″:″28900372-717b-4de7-a1c9-ae6ca482ecc8″,
″KeyDeclarationBlockUuid″:″6dcc410c-878d-4121-9662-7d8b733e90de″,
″PartnerAccountUuid″:″cfOb25cc-7523-4401-bcfa-d6f6ee2d29ae″,
″PartnerWebsiteUrl″:″https://*.partnersite.com″,
″EmissionDate″:″2018-05-12T14:32:40.0547143Z″,
″ValidUntil″:″2019-05-12T14:32:40.0566328Z″,
″PermittedAccounts″:[″596ecc59-5597-44bb-b2c9-881ef52a3e6d″,″e0861fa8-2fde-4e73-92d1-839caOOd50ef″,″8a1a7475-8a3f-446d-b178-848c4cca74f9″],
″Hash″:
″25mHph9dhgGQQTCqdEUKSB15VkuxjHatc1RoLCt2DK1FYqJrk3DWmyFgHERu4WM96″,
″Signature″:
″111LZ5rX7p7q22hN6HqjF3gfMvNU6hfYa7EZvL4pG7PhDvVq2XDA3pcAViEEEbJKUut″
}
在另一应用中,当为参与方创建新的唯一标识物时,可以将其与其他账户作为共同签名者链接到该唯一标识物。当为该账户创建新交易时,它将被区块发射设备拦截,并在等待与此交易相关的额外事件时继续保持预定的宽限期。此集中式设备将等待此账户中其他账户列表中的其他二阶交易来确认其签名。如果在分配的时间范围内未收到所需的签名,则该交易将被删除并随着超时被作废。如果接收到所有必需的签名,则中央设备将声明此交易为有效,并且用自己的签名对其进行确认。图13示出了多签名应用的示例实施方式,其中针对两参与方呈现了第一参与方初始化区块600a和第二参与方初始化区块600b,并且还呈现了联合参与方初始化区块600c。仅具有一个签名(一个唯一标识物)的交易区块610a被认为是无效的。具有两个签名(两个唯一标识物)的第二交易区块610b被认为是有效的。
在另一应用中,可以在参与方初始化区块中添加相关号,集中节点可以使用该相关号来确定该账户是特别注册的,并且必须以特殊方式进行处理。如果集中式节点从该账户接收到交易,并意识到它需要例如多因素认证,则中央设备将在特定时间段内保持该交易,使得它就可以在区块链外执行需要做的事情,以确认账户的所有者确实打算发送此交易。如果所有者确认了区块链之外的交易,则中央设备将确认该交易。如果未确认任何内容,则该交易将超时、删除并作废。这种机制对于防止密钥被盗非常有用。
尽管上述描述提供了实施方式的示例,但是将理解的是,在不脱离所述实施方式的精神和工作原理的情况下,所描述的实施方式的一些特征和/或功能易于修改。因此,上文所描述的内容意在是说明性的,而非限制性的,并且本领域技术人员将理解,可以在不脱离如本文所附权利要求中所限定的本发明的范围的情况下进行其他变体和修改。

Claims (44)

1.一种用于对智能合约的执行进行核实的方法,所述方法包括:
将所述智能合约储存在具有至少一个一阶区块的区块链内,所述智能合约具有电子限定的合约条款的集合,每个条款由至少一个满意度值限定,所述合约条款的集合的所述满意度值的组合具有针对所述智能合约的满意度散列值;
对一个或更多个电子储存的二阶交易的集合进行读取,每个二阶交易具有一个或更多个执行值的子集合;
从所述电子储存的二阶交易的集合选择与所述智能合约的合约条款相对应的交易的子集合;
确定所述交易的子集合的所述执行值的组合的执行散列值;以及
如果所述交易的子集合的所述执行值的组合的所述执行散列值与所述智能合约的所述满意度散列值相匹配,则将所述智能合约确定为被完全执行。
2.根据权利要求1所述的方法,其中,满意度值限定以下各项中的一项:
能够由执行值指示的条件的存在;和
能够由执行值指示的变量的值。
3.根据权利要求1或2所述的方法,其中,将所述二阶交易储存为交易事件条目,每个交易事件条目均具有至少一个事件要素;以及
其中,每个二阶交易由一个或更多个事件要素表示。
4.根据权利要求3所述的方法,其中,每个执行值是通过至少一个事件要素确定的。
5.根据权利要求3或4所述的方法,其中,将所述交易事件条目储存在区块链的一个或更多个二阶区块内。
6.根据权利要求1至5中的任一项所述的方法,其中,将所述二阶区块储存在具有所述至少一个一阶区块的区块链内,所述二阶区块能够区分于所述至少一个一阶区块。
7.根据权利要求1至5中的任一项所述的方法,其中,将所述二阶区块储存在独立于具有所述至少一个一阶区块的区块链的附加区块链内。
8.根据权利要求1至7中的任一项所述的方法,其中,用于所述智能合约的每个合约条款的所述至少一个满意度值对应于所述合约条款的使所述合约条款被认为满意而所需的至少一个需求值。
9.根据权利要求1至8中的任一项所述的方法,其中,与所述智能合约的所述合约条款相对应的二阶交易的所述子集合基本上包括具有与形成所述智能合约的所述合约条款的集合相匹配的执行值的交易。
10.根据权利要求1至9中的任一项所述的方法,其中,与针对所述智能合约的所述满意度散列值相匹配的二阶交易的所述子集合的所述执行值的组合的所述执行散列值表示使所述二阶交易具有与所述智能合约的满意度值的组合相匹配的执行值的组合的状态,从而进一步指示所述智能合约的所有合约条款已经是满意的。
11.根据权利要求1至10中的任一项所述的方法,其中,所述至少一个一阶区块中的每个一阶区块储存形成所述智能合约的所述合约条款的子集合。
12.根据权利要求1至11中的任一项所述的方法,还包括:
将对所述智能合约的修正储存在所述一个或更多个一阶区块的至少一个新区块内。
13.根据权利要求12所述的方法,其中,对所述智能合约的修正包括以下各项中的一项或更多项:
对所述智能合约的给定合约条款进行修改,由此所述至少一个新区块指示对所述给定合约条款的至少一个满意度值的更新;以及
将至少一个新的合约条款添加到所述合约条款的集合中,由此所述至少一个新区块指示针对所述至少一个新的合约条款中的每个合约条款的至少一个新的满意度值。
14.根据权利要求12或13所述的方法,其中,经修正的智能合约具有经更新的电子限定的合约条款的集合,并且其中,经更新的合约条款的集合的所述满意度值的组合具有经更新的满意度散列值;
所述方法还包括:
从所述电子储存的二阶交易的集合选择与所述经修正的智能合约的所述经更新的电子限定的合约条款的集合相对应的经更新的交易的子集合;
确定所述经更新的交易的子集合的所述执行值的组合的经更新的执行散列值;以及
如果所述经更新的执行散列值与针对所述经修正的智能合约的经更新的满意度散列值相匹配,则将所述经修正的智能合约确定为被完全执行。
15.根据权利要求1至14中的任一项所述的方法,还包括:
在所述区块链的区块内发布参与方初始化交易,所述参与方初始化交易包括:
与给定参与方相关联的唯一标识物;
从与所述参与方相关联的第一私人密钥得出的第一公开密钥;以及
从与所述参与方相关联的第二私人密钥得出的第二公开密钥;以及
其中,所述交易的子集合中的至少一个给定交易包括作为所述交易的执行值中的一个执行值的所述唯一标识物。
16.根据权利要求15所述的方法,其中,所述至少一个给定交易基于包含所述第一公开密钥的给定交易而被核实为有效交易,所述第一公开密钥从提供所述第一私人密钥的参与方以加密的方式生成。
17.根据权利要求15或16所述的方法,还包括对认证更新区块进行发布,所述认证更新区块包括:
所述唯一标识物;
从提供所述第二私人密钥的所述参与方以加密的方式生成的所述第二公开密钥;以及
从与所述参与方相关联的第三私人密钥得出的第三公开密钥;以及
其中,如果在所述认证更新交易之后发生的所述交易的子集合中的给定交易包含从提供所述第三私人密钥的所述参与方以加密的方式生成的所述第三公开密钥,则将所述给定交易确定为有效交易;以及
其中,如果在所述认证更新交易之后发生的所述交易的子集合中的另一给定交易不包含所述第三公开密钥,则将所述另一给定交易确定为无效交易。
18.一种对区块链交易的参与方的身份进行核实的方法,所述方法包括:
在区块链内发布参与方初始化区块,所述参与方初始化区块包括:
与给定参与方相关联的唯一标识物;
从与所述参与方相关联的第一私人密钥得出的第一公开密钥;以及
从与所述参与方相关联的第二私人密钥得出的第二公开密钥。
19.根据权利要求18所述的方法,还包括:
在所述区块链内发布事件交易区块,所述事件交易区块包括:
与事件有关的执行值;
与所述给定参与方相关联的所述唯一标识物;以及
从提供所述第一私人密钥的所述参与方以加密的方式生成的第一公开密钥。
20.根据权利要求19所述的方法,其中,基于包含所述第一公开密钥的所述区块,将所述事件交易区块确定为有效。
21.根据权利要求18至20中的任一项所述的方法,还包括对认证更新区块进行发布,所述认证更新区块包括:
所述唯一标识物;
从提供所述第二私人密钥的所述参与方以加密的方式生成的所述第二公开密钥;以及
从与所述参与方相关联的第三私人密钥得出的第三公开密钥。
22.根据权利要求21所述的方法,其中,如果在所述认证更新交易之后发布的给定事件交易区块包含从提供所述第三私人密钥的所述参与方以加密的方式生成的所述第三公开密钥,则将所述给定事件交易区块确定为有效交易;以及
其中,如果在所述认证更新交易之后发布的另一事件交易区块不包含所述第三公开密钥,则将所述另一事件交易区块确定为无效交易。
23.一种用于对智能合约的执行进行核实的计算机实施系统,所述系统包括:
至少一个数据储存设备;
至少一个处理器,所述至少一个处理器耦合至所述至少一个储存设备,所述至少一个处理器被配置为:
将所述智能合约储存在具有至少一个一阶区块的区块链内,所述智能合约具有电子限定的合约条款的集合,每个条款由至少一个满意度值限定,所述合约条款的集合的所述满意度值的组合具有针对所述智能合约的满意度散列值;
对一个或更多个电子储存的二阶交易的集合进行读取,每个二阶交易具有一个或更多个执行值的子集合;
从所述电子储存的二阶交易的集合选择与所述智能合约的合约条款相对应的交易的子集合;
确定所述交易的子集合的所述执行值的组合的执行散列值;以及
如果所述交易的子集合的所述执行值的组合的所述执行散列值与所述智能合约的所述满意度散列值相匹配,则将所述智能合约确定为被完全执行。
24.根据权利要求23所述的系统,其中,满意度值限定以下各项中的一项:
能够由执行值指示的条件的存在;和
能够由执行值指示的变量的值。
25.根据权利要求23或24所述的系统,其中,所述二阶交易被储存为交易事件条目,每个交易事件条目均具有至少一个事件要素;以及
其中,每个二阶交易由一个或更多个事件要素表示。
26.根据权利要求25所述的系统,其中,每个执行值是通过至少一个事件要素确定的。
27.根据权利要求25或26所述的系统,其中,所述交易事件条目被储存在区块链的一个或更多个二阶区块内。
28.根据权利要求23至27中的任一项所述的系统,其中,所述二阶区块被储存在具有所述至少一个一阶区块的区块链内,所述二阶区块能够区分于与所述至少一个一阶区块。
29.根据权利要求23至27中的任一项所述的系统,其中,所述二阶区块被储存在独立于具有所述至少一个一阶区块的区块链的附加区块链内。
30.根据权利要求23至29中的任一项所述的系统,其中,用于所述智能合约的每个合约条款的所述至少一个满意度值对应于所述合约条款使所述合约条款被认为满意而所需的至少一个需求值。
31.根据权利要求23至30中的任一项所述的系统,其中,与所述智能合约的所述合约条款相对应的二阶交易的所述子集合基本上包括具有与形成所述智能合约的所述合约条款的集合相匹配的执行值的交易。
32.根据权利要求23至31中的任一项所述的系统,其中,与针对所述智能合约的所述满意度散列值相匹配的二阶交易的所述子集合的所述执行值的组合的所述执行散列值表示使所述二阶交易具有与所述智能合约的满意度值的组合相匹配的执行值的组合的状态,从而进一步指示所述智能合约的所有合约条款已经是满意的。
33.根据权利要求23至32中的任一项所述的系统,其中,所述至少一个一阶区块中的每个一阶区块储存形成所述智能合约的所述合约条款的子集合。
34.根据权利要求23至33中的任一项所述的系统,其中,所述处理器还被配置为:
将对所述智能合约的修正储存在所述一个或更多个一阶区块的至少一个新区块内。
35.根据权利要求34所述的系统,其中,对所述智能合约的修正包括以下各项中的一项或更多项:
对所述智能合约的给定合约条款进行修改,由此所述至少一个新区块指示对所述给定合约条款的至少一个满意度值的更新;以及
将至少一个新的合约条款添加到所述合约条款的集合中,由此所述至少一个新的区块指示针对所述至少一个新的合约条款中的每个合约条款的至少一个新的满意度值。
36.根据权利要求34或35所述的系统,其中,经修正的智能合约具有经更新的电子限定的合约条款的集合,并且其中,经更新的合约条款的集合的所述满意度值的组合具有经更新的满意度散列值;
所述处理器还被配置为:
从所述电子储存的二阶交易的集合选择与所述经修正的智能合约的所述经更新的电子限定的合约条款的集合相对应的经更新的交易的子集合;
确定所述经更新的交易的子集合的所述执行值的组合的经更新的执行散列值;以及
如果所述经更新的执行散列值与针对所述经修正的智能合约的经更新的满意度散列值相匹配,则将所述经修正的智能合约确定为被完全执行。
37.根据权利要求23至36中的任一项所述的系统,其中,所述处理器还被配置为:
在所述区块链的区块内发布参与方初始化交易,所述参与方初始化交易包括:
与给定参与方相关联的唯一标识物;
从与所述参与方相关联的第一私人密钥得出的第一公开密钥;以及
从与所述参与方相关联的第二私人密钥得出的第二公开密钥;以及
其中,所述交易的子集合中的至少一个给定交易包括作为所述交易的执行值中的一个执行值的所述唯一标识物。
38.根据权利要求37所述的系统,其中,所述至少一个给定交易基于包含所述第一公开密钥的给定交易而被核实为有效交易,所述第一公开密钥从提供所述第一私人密钥的参与方以加密的方式生成。
39.根据权利要求37或38所述的系统,还包括对认证更新区块进行发布,所述认证更新区块包括:
所述唯一标识物;
从提供所述第二私人密钥的所述参与方以加密的方式生成的所述第二公开密钥;以及
从与所述参与方相关联的第三私人密钥得出的第三公开密钥;以及
其中,如果在所述认证更新交易之后发生的所述交易的子集合中的给定交易包含从提供所述第三私人密钥的所述参与方以加密的方式生成的所述第三公开密钥,则将所述给定交易确定为有效交易;以及
其中,如果在所述认证更新交易之后发生的所述交易的子集合中的另一给定交易不包含所述第三公开密钥,则将所述另一给定交易确定为无效交易。
40.一种用于对区块链交易的参与方的身份进行核实的计算机实施的系统,所述系统包括:
至少一个数据储存设备;
至少一个处理器,所述至少一个处理器耦合至所述至少一个储存设备,所述至少一个处理器被配置为用于在区块链内发布参与方初始化区块,所述参与方初始化区块包括:
与给定参与方相关联的唯一标识物;
从与所述参与方相关联的第一私人密钥得出的第一公开密钥;以及
从与所述参与方相关联的第二私人密钥得出的第二公开密钥。
41.根据权利要求40所述的系统,其中,所述处理器还被配置为:
在所述区块链内发布事件交易区块,所述事件交易区块包括:
与事件有关的执行值;
与所述给定参与方相关联的所述唯一标识物;以及
从提供所述第一私人密钥的所述参与方以加密的方式生成的第一公开密钥。
42.根据权利要求41所述的系统,其中,基于包含所述第一公开密钥的所述区块,将所述事件交易区块确定为有效。
43.根据权利要求40至42中的任一项所述的系统,其中,所述处理器还被配置为用于对认证更新区块进行发布,所述认证更新区块包括:
所述唯一标识物;
从提供所述第二私人密钥的所述参与方以加密的方式生成的所述第二公开密钥;以及
从与所述参与方相关联的第三私人密钥得出的第三公开密钥。
44.根据权利要求43所述的系统,其中,如果在所述认证更新交易之后发布的给定事件交易区块包含从提供所述第三私人密钥的所述参与方以加密的方式生成的所述第三公开密钥,则将所述给定事件交易区块确定为有效交易;以及
其中,如果在所述认证更新交易之后发布的另一事件交易区块不包含所述第三公开密钥,则将所述另一事件交易区块确定为无效交易。
CN201980066567.XA 2018-08-30 2019-08-28 用于改进的实施区块链的智能合约的系统和方法 Pending CN112805694A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862724688P 2018-08-30 2018-08-30
US62/724,688 2018-08-30
PCT/CA2019/051189 WO2020041878A1 (en) 2018-08-30 2019-08-28 System and method for improved blockchain-implemented smart contract

Publications (1)

Publication Number Publication Date
CN112805694A true CN112805694A (zh) 2021-05-14

Family

ID=69644785

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980066567.XA Pending CN112805694A (zh) 2018-08-30 2019-08-28 用于改进的实施区块链的智能合约的系统和方法

Country Status (10)

Country Link
US (1) US20210320806A1 (zh)
EP (1) EP3844637A4 (zh)
JP (1) JP2021535668A (zh)
KR (1) KR20210090611A (zh)
CN (1) CN112805694A (zh)
AU (1) AU2019329945A1 (zh)
BR (1) BR112021003852A2 (zh)
CA (1) CA3110567A1 (zh)
SG (1) SG11202102023YA (zh)
WO (1) WO2020041878A1 (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA3064499A1 (en) * 2017-06-14 2018-12-20 Visa International Service Association Systems and methods for creating multiple records based on an ordered smart contract
US20200151686A1 (en) * 2018-11-14 2020-05-14 Royal Bank Of Canada System and method for cross-border blockchain platform
KR102505911B1 (ko) * 2019-11-27 2023-03-06 한국전자통신연구원 정책기반 스마트 계약을 생성하기 위한 방법 및 그 장치
US11620722B2 (en) 2019-11-27 2023-04-04 Electronics And Telecommunications Research Institute Method and apparatus of generating policy-based smart contract
US20210264419A1 (en) * 2020-02-21 2021-08-26 International Business Machines Corporation Resolution of conflicting data
WO2021188860A1 (en) * 2020-03-20 2021-09-23 Mastercard International Incorporated Method and system to manage dispute resolution via a digital asset network
CN113448541B (zh) * 2020-03-26 2023-08-01 宏碁股份有限公司 区块链随机数生成系统及区块链随机数生成方法
CN111598696B (zh) * 2020-05-19 2023-04-07 京东科技信息技术有限公司 基于区块链的交易追溯方法和装置
CN111724257B (zh) * 2020-05-28 2024-04-12 天津大学 一种用于区块链中链下支付的再平衡策略执行方法
WO2020169126A2 (en) 2020-06-08 2020-08-27 Alipay Labs (singapore) Pte. Ltd. Managing user authorizations for blockchain-based custom clearance services
WO2020169127A2 (en) 2020-06-08 2020-08-27 Alipay Labs (singapore) Pte. Ltd. User management of blockchain-based custom clearance service platform
EP3844699A4 (en) * 2020-06-08 2021-08-18 Alipay Labs (Singapore) Pte. Ltd. BLOCKCHAIN-BASED PROCESSING OF IMPORT CLEARANCE DATA
EP3841491B1 (en) 2020-06-08 2023-08-02 Alipay Labs (Singapore) Pte. Ltd. Blockchain-based smart contract pools
CN111936994A (zh) 2020-06-08 2020-11-13 支付宝实验室(新加坡)有限公司 用于海关清关的基于区块链的文档注册
CN111936995A (zh) 2020-06-08 2020-11-13 支付宝实验室(新加坡)有限公司 海关清关数据的分布式存储
WO2022081921A1 (en) * 2020-10-14 2022-04-21 Blockchains, Inc. Multisignature key custody, key customization, and privacy service
US20230013119A1 (en) * 2021-07-19 2023-01-19 International Business Machines Corporation Tainted asset marker management
KR20230036797A (ko) * 2021-09-08 2023-03-15 삼성전자주식회사 블록체인 네트워크에서 트랜잭션을 생성하는 전자 장치 및 그의 동작 방법
CN117941315A (zh) * 2021-09-16 2024-04-26 索尼集团公司 信息处理装置、信息处理方法和程序
KR20240014270A (ko) 2022-07-25 2024-02-01 배민효 합의 그룹의 공유를 통해 컨트랙트 모델의 검증과 합의를 제공하는 단위 컨트랙트 시스템
KR20240014271A (ko) 2022-07-25 2024-02-01 배민효 단위 컨트랙트의 선택적인 조합을 통한 합성 컨트랙트 모델 시스템

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106878000A (zh) * 2017-03-06 2017-06-20 中钞信用卡产业发展有限公司北京智能卡技术研究院 一种联盟链共识方法及系统
US20170289111A1 (en) * 2016-04-01 2017-10-05 Jpmorgan Chase Bank, N.A. Systems and methods for providing data privacy in a private distributed ledger
US20180005186A1 (en) * 2016-06-30 2018-01-04 Clause, Inc. System and method for forming, storing, managing, and executing contracts
US20180109516A1 (en) * 2016-10-13 2018-04-19 Coinplug, Inc. Method for providing certificate service based on smart contract and server using the same
US20180183600A1 (en) * 2016-12-28 2018-06-28 Mastercard International Incorporated Method and system for providing validated, auditable, and immutable inputs to a smart contract
WO2018131004A2 (fr) * 2017-01-16 2018-07-19 Enrico Maim Procédés et systèmes pour l'exécution de programmes dans des environnements sécurisés
US20180241546A1 (en) * 2017-02-17 2018-08-23 Tianqing Leng Splitting digital promises recorded in a blockchain

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170134280A1 (en) * 2015-11-11 2017-05-11 Mastercard International Incorporated Method and system for validation of hashed data via acceptance frames
CN105893042A (zh) * 2016-03-31 2016-08-24 北京航空航天大学 一种基于区块链的智能合约的实现方法
GB201607477D0 (en) * 2016-04-29 2016-06-15 Eitc Holdings Ltd A method and system for controlling the performance of a contract using a distributed hash table and a peer to peer distributed ledger
US20210342828A1 (en) * 2017-01-25 2021-11-04 State Farm Mutual Automobile Insurance Company Systems and methods for anti-money laundering compliance via blockchain
GB201706132D0 (en) * 2017-04-18 2017-05-31 Nchain Holdings Ltd Computer-implemented system and method
CN111201752A (zh) * 2017-08-11 2020-05-26 塞库尔开放系统公司 基于哈希的数据验证系统
US10769869B2 (en) * 2018-06-27 2020-09-08 International Business Machines Corporation Self-driving vehicle integrity management on a blockchain
US11108544B2 (en) * 2018-07-02 2021-08-31 International Business Machines Corporation On-chain governance of blockchain
WO2020051540A1 (en) * 2018-09-06 2020-03-12 Clause, Inc. System and method for a hybrid contract execution environment

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170289111A1 (en) * 2016-04-01 2017-10-05 Jpmorgan Chase Bank, N.A. Systems and methods for providing data privacy in a private distributed ledger
CN109313753A (zh) * 2016-04-01 2019-02-05 摩根大通国家银行 用于在私有分布式账本中提供数据隐私的系统和方法
US20180005186A1 (en) * 2016-06-30 2018-01-04 Clause, Inc. System and method for forming, storing, managing, and executing contracts
US20180109516A1 (en) * 2016-10-13 2018-04-19 Coinplug, Inc. Method for providing certificate service based on smart contract and server using the same
US20180183600A1 (en) * 2016-12-28 2018-06-28 Mastercard International Incorporated Method and system for providing validated, auditable, and immutable inputs to a smart contract
CN110121727A (zh) * 2016-12-28 2019-08-13 万事达卡国际公司 一种为智能合同提供经证实、可审计和不可变输入的方法和系统
WO2018131004A2 (fr) * 2017-01-16 2018-07-19 Enrico Maim Procédés et systèmes pour l'exécution de programmes dans des environnements sécurisés
CN110392888A (zh) * 2017-01-16 2019-10-29 E·马伊姆 用于在安全环境中执行智能合约的方法和系统
US20180241546A1 (en) * 2017-02-17 2018-08-23 Tianqing Leng Splitting digital promises recorded in a blockchain
CN106878000A (zh) * 2017-03-06 2017-06-20 中钞信用卡产业发展有限公司北京智能卡技术研究院 一种联盟链共识方法及系统

Also Published As

Publication number Publication date
CA3110567A1 (en) 2020-03-05
EP3844637A1 (en) 2021-07-07
SG11202102023YA (en) 2021-03-30
EP3844637A4 (en) 2022-06-08
US20210320806A1 (en) 2021-10-14
KR20210090611A (ko) 2021-07-20
BR112021003852A2 (pt) 2021-05-18
JP2021535668A (ja) 2021-12-16
AU2019329945A1 (en) 2021-04-08
WO2020041878A1 (en) 2020-03-05

Similar Documents

Publication Publication Date Title
CN112805694A (zh) 用于改进的实施区块链的智能合约的系统和方法
US11431486B2 (en) System or method to implement consensus on read on distributed ledger/blockchain
US11886421B2 (en) Systems, methods, and apparatuses for distributing a metadata driven application to customers and non-customers of a host organization using distributed ledger technology (DLT)
CN110495132B (zh) 用于在分布式网络节点内生成、上传和执行代码区块的系统和方法
US11803537B2 (en) Systems, methods, and apparatuses for implementing an SQL query and filter mechanism for blockchain stored data using distributed ledger technology (DLT)
US20200250295A1 (en) Systems, methods, and apparatuses for protecting consumer data privacy using solid, blockchain and ipfs integration
US20190236559A1 (en) Systems, methods, and apparatuses for implementing smart flow contracts using distributed ledger technologies in a cloud based computing environment
US20190236562A1 (en) Systems, methods, and apparatuses for implementing document interface and collaboration using quipchain in a cloud based computing environment
US20190238525A1 (en) Systems, methods, and apparatuses for implementing super community and community sidechains with consent management for distributed ledger technologies in a cloud based computing environment
CN112287034B (zh) 一种数据同步方法、设备以及计算机可读存储介质
Jonathan et al. Security issues and vulnerabilities on a blockchain system: A review
US11973878B2 (en) Non-fungible token custody chain for multi-component hardware devices
CN116975901A (zh) 基于区块链的身份验证方法、装置、设备、介质及产品
Jain et al. Smart contract-security assessment integrated framework (SC-SIF) for hyperledger fabric
Haq et al. Design pattern for secure object oriented information systems development
Lekshmi et al. Data auditing in cloud storage using smart contract
Stampernas Blockchain technologies and smart contracts in the context of the Internet of Things
US11687656B2 (en) Secure application development using distributed ledgers
Kobeissi et al. Ledger design language: designing and deploying formally verified public ledgers
Kobeissi et al. Ledger Design Language: Towards Formal Reasoning and Implementation for Public Ledgers
Yadav et al. Blockchain Technology: and its Applications
Liljefors et al. Formalizing security properties in blockchain protocols
Rovira Sánchez Verification of Self-Sovereign Identities in Ethereum applied to a Media Reuse Smart Contracts Scenario
Habib et al. A decentralized Git version controlsystem: A proposed architecture and evaluation of decentralized Git using DAG-based distributed ledgers
CN114201503A (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