CN117829826A - 数字资产建模 - Google Patents

数字资产建模 Download PDF

Info

Publication number
CN117829826A
CN117829826A CN202311567042.9A CN202311567042A CN117829826A CN 117829826 A CN117829826 A CN 117829826A CN 202311567042 A CN202311567042 A CN 202311567042A CN 117829826 A CN117829826 A CN 117829826A
Authority
CN
China
Prior art keywords
ledger
daml
proposed
transaction
entry
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
CN202311567042.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.)
Digital Asset Switzerland GmbH
Original Assignee
Digital Asset Switzerland GmbH
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 Digital Asset Switzerland GmbH filed Critical Digital Asset Switzerland GmbH
Publication of CN117829826A publication Critical patent/CN117829826A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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/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/08Payment architectures
    • G06Q20/12Payment architectures specially adapted for electronic shopping systems
    • G06Q20/123Shopping for digital content
    • G06Q20/1235Shopping for digital content with control of digital rights management [DRM]
    • 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/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/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/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
    • 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/006Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving public key infrastructure [PKI] trust models

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Economics (AREA)
  • Development Economics (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Display Devices Of Pinball Game Machines (AREA)
  • Professional, Industrial, Or Sporting Protective Garments (AREA)
  • Prostheses (AREA)
  • Storage Device Security (AREA)

Abstract

本申请涉及数字资产建模。提供了一种对关于多方权利建模的数字资产及其演变进行授权的计算机实现的方法、***以及非暂时性计算机可读存储介质。

Description

数字资产建模
本申请是2017年4月28日提交的发明名称为“数字资产建模”的PCT国际申请PCT/IB2017/052462进入中国国家阶段专利申请201780040778.7的分案申请。
交叉引用
本申请根据35USC§119要求2016年4月29日在美国专利商标局(USPTO)提交的美国临时专利申请第62/329,888号(Atty.Dkt.16-30013-US-PV,Client Dkt.DAH-2016011P)的题为Digital Asset Modeling Language Simulator的优先权,其内容整体以引用方式并入本文中。
技术领域
本发明涉及用于建模、跟踪和结算数字资产、证券和交易的数字资产建模***和方法。
背景技术
用于结算资产、债券和交易的现有封闭的集中管理的分类账被认为是不透明且容易出错的。这使得监督变得繁琐,需要许多重复的流程和分类账,并且可能存在欺诈。现有分类账架构的第一个也是目前最大的替代方案是以分布式数字分类账为代表,它使用区块链数据结构。分布式数字分类账操作的基本原则是***被设置为利用公钥-私钥密码术的对等交易机制,没有中央中介或中央存储库,并允许网络中的所有参与者实时持有和验证分类账的完整副本的完整性。分布式数字分类账区块链的设计是为了创建不可信任的本地资产分布式数字分类账,其可以在全球与匿名方交换。
当前在类分布式数字分类账或类区块链***上支持数字资产所构建的平台通常没有构造成为金融机构提供全面保护,这可能是法律对其许多现有交易业务所要求的。这些平台通常可能没有考虑过金融机构和金融交易的监管制度。因此,机构投资者对进入数字资产市场犹豫不决,并避免在现有业务中使用分布式分类账。
在整个本说明书中,词语“包括”或变体将被理解为暗示包括所述元件、整数或步骤,或元件组、整数组或步骤组,但是不排除任何其它元件、整数或步骤,或元素组、整数组或步骤组。
在整个本说明书中,词语“包括”或变体将被理解为暗示包括所述元件、整数或步骤,或元件组、整数组或步骤组,但是不排除任何其它元件、整数或步骤,或元素组、整数组或步骤组。
发明内容
本文公开的实施例提供了用于增加数字资产的计算机执行交易的灵活性的机制。实施例提供新的数据模型和功能,以允许执行交易的计算机***以新的和有利的方式操作。提供了一种对关于多方权利的数字资产及其演变进行建模的示例性实施例方法,该方法包括:提供使用其中定义的至少一个选择中用于关于多方中的至少一方的权利处理数字资产的一个选择来执行不超过一次的等待函数实例,所述等待函数实例在受影响的各方同意后并入以完成与至少一个选择相关联的配置函数实例;提供需要多方中的至少一方同意执行的同意函数实例;以及提供用于存储所执行函数实例的结果的仅附加分类账。
提供了一种建模和/或记录数字资产及其演变的示例性实施例方法,包括多方的相关权利,该方法包括:确定等待函数,该等待函数包括在其中定义的至少一个用于处理数字资产的选择,其中至少一个选择具有相关的配置函数和相应的选择步骤条件。该方法还包括执行等待函数实例不超过一次,其中在接收到至少一个选择所需的各方同意的指示并从该至少一个选择接收到有效选择筛选时,该方法还包括执行该至少一个选择的相关的配置函数实例,其中在确定满足有效选择筛选的选择步骤条件的情况下,等待函数终止;确定用于创建与数字资产相关联的同意记录的同意函数,其中该方法还包括基于接收协议所需的各方同意的指示来执行同意函数实例。该方法还包括将执行的函数实例的结果发送到仅附加分类账以进行存储。
可以提供如上所述的建模和/或记录数字资产及其演变的方法,其中相应权利受到威胁的多方中的至少一方与需要其同意的多方中的至少一方相同。可以提供该方法,还包括提供删除函数,该删除函数需要受影响方的同意使同意函数无效或禁用未执行的等待函数,其中仅附加分类账存储执行的等待函数、同意函数和删除函数的结果。可以提供该方法,其中数字资产包括现金和/或现金支付、物债、股权、债券、商品、期货、权利或货物中的至少一种。可以提供该方法,其中等待函数的至少一个选择是由多方中的至少一方的代表进行的。可以提供该方法,其中等待函数的至少一个选择是由多方中的至少两方的相应代表进行的。可以提供该方法,其中仅附加分类账包括区块链。可以提供该方法,其中可以基于模式匹配来查询仅附加分类账以获得数字资产状态。可以提供该方法,其中可以使用基于顶层定义的查询来查询仅附加分类账以获得分类账中的所有模型的数字资产状态。可以提供该方法,还包括提供删除函数以使活动模型无效并且不再可用于将来的交易。
提供了一种解释关于多方权利的建模的数字资产及其演变的示例性实施例方法,该方法包括:使用其中定义的至少一个选择中用于关于多方中的至少一方的权利处理数字资产的一个选择来执行等待函数实例不超过一次,所述等待函数实例在受影响的各方同意后并入以完成与至少一个选择相关联的配置函数实例;执行需要多方中的至少一方同意执行的同意函数实例;以及将执行的函数实例的结果存储在仅附加分类账中。
提供了一种解释建模的数字资产及其演进的示例性实施例方法,包括多方的相关权利,该方法包括:执行等待函数实例不超过一次,其中等待函数实例包括其中定义的至少一个用于处理数字资产的选择,并且该至少一个选择具有相关的配置函数和相应的选择步骤条件,其中在接收到该至少一个选择所需的各方同意的指示并且从该至少一个选择中接收到有效选择筛选时,该方法还包括执行该至少一个选择的相关的配置函数实例,其中在确定满足有效选择筛选的选择步骤条件的情况下,等待函数终止。该方法还包括在接收到协议所需的各方同意的指示时,执行同意函数实例以创建与数字资产相关联的同意记录。该方法还包括将所执行的函数实例的结果发送到仅附加分类账中。
可以提供解释上述建模的数字资产及其演变的方法,其中相应权利受到威胁的多方中的至少一方与需要其同意的多方中的至少一方相同。可以提供该方法,还包括执行删除函数,该删除函数需要受影响各方的同意使同意函数无效或禁用未执行的等待函数,并且将执行的等待函数、同意函数和删除函数的结果存储在仅附加分类账中。该方法可以是其中数字资产包括现金和/或现金支付、物债、股权、债券、商品、期货、权利或货物中的至少一种。可以提供该方法,其中等待函数的至少一个选择是由多方中的至少一方的代表进行的。可以提供该方法,其中等待函数的至少一个选择是由多方中的至少两方的相应代表进行的。可以提供该方法,其中仅附加分类账包括区块链。可以提供该方法,其中可以基于模式匹配来查询仅附加分类账以获得数字资产状态。可以提供该方法,其中可以使用基于顶层定义的查询来查询仅附加分类账以获得分类账中的所有模型的数字资产状态。可以提供该方法,还包括执行删除函数以使活动模型无效并且不再可用于将来的交易。
提供了一种示例性实施例数字***,其被配置成解释关于多方权利的建模的数字资产及其演变,该***包括:至少一个处理器,其被配置成使用其中定义的至少一个选择中用于关于多方中的至少一方的权利处理数字资产的一个选择来执行等待函数实例不超过一次,所述等待函数实例在受影响的各方同意后并入以完成与该至少一个选择相关联的配置函数实例,并被配置成在至少一个选择内执行需要多方中的至少一方的同意执行的同意函数实例;以及至少一个存储设备,其被配置成将执行的函数实例的解释结果存储在仅附加分类账中。
提供了一种示例性实施例数字***,其被配置成解释建模的数字资产及其演进,包括多方的相关权利,该***包括:至少一个处理器,其被配置成执行等待函数实例不超过一次,其中等待函数实例包括其中定义的至少一个用于处理数字资产的选择,并且该至少一个选择具有相关的配置函数和相应的选择步骤条件,其中在接收到该至少一个选择所需的各方同意的指示并且从该至少一个选择中接收到有效选择筛选时,该方法还包括执行该至少一个选择的相关的配置函数实例,其中在确定满足有效选择筛选的选择步骤条件的情况下,等待函数终止。所述至少一个处理器还被配置成:在接收到协议所需的各方同意的指示时,执行同意函数实例以创建与数字资产相关联的同意记录。该***还包括至少一个存储设备,其被配置成将所执行的函数实例的解释结果存储在仅附加分类账中。
可以提供上述***,其中相应权利受到威胁的多方中的至少一方与需要其同意的多方中的至少一方相同。可以提供该***,其中处理器还被配置成执行删除函数,该删除函数需要受影响各方的同意使同意函数无效或禁用未执行的等待函数,并且将等待函数、同意函数和删除函数的执行结果存储在仅附加分类账中。可以提供该***,其中数字资产包括现金和/或现金支付、物债、股权、债券、商品、期货、权利或货物中的至少一种。可以提供该***,其中等待函数的至少一个选择是由多方中的至少一方的代表进行的。可以提供该***,其中等待函数的至少一个选择是由多方中的至少两方的相应代表进行的。可以提供该***,其中仅附加分类账包括区块链。可以提供该***,其中可以基于模式匹配来查询仅附加分类账以获得数字资产状态。可以提供该***,其中可以使用基于顶层定义的查询来查询仅附加分类账以获得分类账中的所有模型的数字资产状态。可以提供该***,其中处理器还被配置成执行删除函数以使活动模型无效并且不再可用于将来的交易。
本文公开的实施例可提供用于增加数字资产的计算机执行交易的灵活性的机制。实施例可以提供新的数据模型和功能,以允许执行交易的计算机***以新的和有利的方式操作。
附图说明
从以下具体实施方式,特别是结合附图时,可以更清楚地理解说明性的非限制性的示例性实施例,其中:
图1是示出了根据本发明的示例性实施例的用于数字资产建模语言(DAMLTM)的语言识别器的流程图;
图2是示出了根据本发明的示例性实施例的相对于动作的状态变化的混合模拟图;
图3是示出了根据本发明的示例性实施例的相对于图2的状态变化的数字化状态的混合模拟图;
图4是示出了根据本发明的示例性实施例的将图3的状态记录到分类账的混合模拟图;
图5是示出了根据本发明的示例性实施例的图4的分类账的状态变化、安全和授权的混合模拟图;
图6是示出了根据本发明的示例性实施例的图5的可修改、安全和授权的分类账的复制的混合模拟图;
图7是示出了根据本发明的示例性实施例的图6的复制分类账的分布式同意的混合模拟图;
图8是示出了与本发明的示例性实施例对比的未被注意的图7的分布式分类账内的无效或不一致状态的传播的混合模拟图;
图9是示出了与本发明的示例性实施例对比的被注意到的图8的分布式分类账内的无效或不一致状态的传播的混合模拟图;
图10是示出了根据本发明的示例性实施例的图8和图9的分类账内的无效或不一致状态的录入验证和预防的混合模拟图;
图11是示出了根据本发明的示例性实施例的图10的分类账的验证过程的动态加强和扩展的混合模拟图;
图12是示出了根据本发明的示例性实施例的使用具有针对单方定义的动作的等待函数的DAMLTM代码的混合图;
图13是示出了根据本发明的示例性实施例的使用针对条件内的多方之间的真实世界协议定义的动作的DAMLTM代码的混合图;
图14是示出了根据本发明的示例性实施例的在本机可互换数字资产上操作的DAMLTM代码的混合图;
图15是示出了根据本发明的示例性实施例的具有图12的由双方对单方逻辑交替动作的DAMLTM代码的混合图;
图16是示出了根据本发明的示例性实施例的组合多个步骤的DAMLTM代码的混合图;
图17是示出了根据本发明的示例性实施例的用于双方之间的资产交换的DAMLTM代码的混合图;
图18是示出了根据本发明的示例性实施例的DAMLTM代码选择的混合图;
图19是示出了根据本发明的示例性实施例的DAMLTM代码组成的混合图;
图20是示出了根据本发明的示例性实施例的DAMLTM有序分类账条目的混合图;
图21是示出了根据本发明的示例性实施例的具有有序的分类账条目的基于DAML的分类账的混合图;
图22是示出了根据本发明的示例性实施例的具有有序和带时间戳的分类账条目的基于DAML的分类账的混合图;
图23是示出了根据本发明的示例性实施例的跨多方的两个示例性DAMLTM存储和分类账逻辑部署的混合图;
图24是示出了根据本发明的示例性实施例的具有分类账条目的DAMLTM交易的混合图;
图25是示出了根据本发明的示例性实施例的具有分类账条目和保密的DAMLTM交易的混合图;
图26是示出了根据本发明的示例性实施例的包括提交新分类账条目交易的多方授权的基于DAML的分类账的混合图;
图27是示出了根据本发明的示例性实施例的包括散列与条目和详细信息的基于DAML的双层分类账的混合图;
图28是示出了根据本发明的示例性实施例的基于DAML的以散列为中心的公共分类账层或公共日志的混合图;
图29是示出了根据本发明的示例性实施例的基于DAML的私人且可共享的私人分类账的混合图;
图30是示出了根据本发明的示例性实施例的具有相关联的分类账条目识别和分类账条目活跃度跟踪的双层DAMLTM分类账的混合图;
图31是示出了根据本发明的示例性实施例的具有面向块的逻辑以及相关联的分类账条目识别和以块为中心的活跃度跟踪的双层DAMLTM分类账的混合图;
图32是示出了根据本发明的示例性实施例的各方(party-to-party)共享私人分类账条目属性的证书或可证明属性的混合图;
图33是示出了根据本发明的示例性实施例的分布式分类账的托管和非托管副本的混合图;
图34是示出了根据本发明的示例性实施例的用于同意、等待和删除命令的DAMLTM分类账条目类型的混合图;
图35是示出了根据本发明的示例性实施例的DAMLTM同意命令的使用的混合图;
图36是示出了根据本发明的示例性实施例的实例化的分类账条目的混合图;
图37是示出了根据本发明的示例性实施例的股权模型内的外部通知的协议的DAMLTM代码的混合图;
图38是示出了根据本发明的示例性实施例的在立方体模型内使用等待命令的DAMLTM代码的混合图;
图39是示出了根据本发明的示例性实施例的具有删除命令的DAMLTM分类账的混合图;
图40是示出了根据本发明的示例性实施例的具有以角色为中心的流程的分类账算法的混合图;
图41是示出了根据本发明的示例性实施例的具有以角色为中心的流程和评论的分类账算法的混合图;
图42是示出了根据本发明的示例性实施例的以一方为中心的分类账算法流程的混合图;
图43是示出了根据本发明的示例性实施例的以分类账为中心的分类账算法的混合图;以及
图44是示出了根据本发明的示例性实施例的用于发起分类账交易的功能的混合图。
图45是根据一个示例的用于建模和/或记录数字资产的数字***的示意图;
图46是操纵数据结构以建模和/或记录数字资产及其演变的计算机实现的方法的流程图;
图47是操纵数据结构以建模和/或记录数字资产及其演变的另一种计算机实现的方法的流程图;
图48是图46和图47中描述的方法的附加步骤的流程图;
图49是表示合约模板的示意图;
图50是与活动合约相关的交互的示意图;
图51示出了等待函数实例的表示;
图52是不活动合约和新合约的示意图;以及
图53是处理设备的示例。
具体实施方式
将参照附图更全面地描述本发明构思,附图中示出了示例性实施例。然而,本发明构思可以以许多不同的形式具体实施,并且不应该被解释为限于本文阐述的实施例。在整个本说明书中,相同的附图标记可以指代相同的元件。如本文所使用,词语“模型”被定义为至少一组协议或潜在交易,根据某些管理规则,诸如可能由主合约提供,例如会或不会有可能表示数字表示的协议或具有法律约束力的合约。
如图1中所示,用于数字资产建模语言TM(DAMLTM)的语言识别器通常由附图标记100表示。语言识别器是在计算机处理器的控制下执行的例程。DAMLTM包括可以存储为计算机可读数据结构的预定义语句。语言识别器包括开始块110,其将控制传递到输入块112。输入块112接收计算机可执行源代码,诸如从存储器或通信信道接收,并将控制传递到功能块116。块116在为DAMLTM语言定义的一元解析器组合块114的帮助下对所接收的源代码执行词法分析和语法分析,并且当成功生成解析的DAMLTM语言的抽象语法树118时,该语法树又将控制传递给结束块120。抽象语法树118被存储为数据结构。DAMLTM处理逻辑的当前示例性实施例采用DAMLTM抽象语法树结构并将其变换为新的DAMLTM抽象语法树,并且基于作为数据结构存储序列化DAMLTM抽象语法树数据的每个DAMLTM分类账条目数据结构。DAMLTM处理逻辑的替代实施例可以使用替代解析器技术将DAMLTM源代码转换为DAMLTM抽象语法树,诸如例如递归下降。DAMLTM分类账条目的替代实施例可以存储DAMLTM语言表达的以数据为中心的表示,诸如例如,通过在类型推断步骤和去功能化步骤的帮助下进一步编译DAMLTM抽象语法树以用一阶结构替换DAMLTM语言的更高阶的功能结构。
在操作中,DAMLTM识别器在计算机处理器的控制下解释适合于对数字资产建模的功能和语法。示例性实施例DAMLTM识别器实现所有DAMLTM核心语言特征。
使用Haskell样式支持DAMLTM评论,诸如:
--这是行评论
{-
这是多行评论。以及评论{-可以--嵌套-}
-}
基元类型包括以下内容:Bool是两个布尔值真和假。Text是Unicode字符的序列。Integer是任意大小的有符号整数。Decimal是浮点十进制数。“party(方)”是法人实体的唯一标识符。Time是与实现相关的精度的绝对时间点。RelTime是时间点之间的名义差值(继承相同的精度)。ContractId是合约具体实例的标识符(数字等效于打印具体合约的纸张的物理标识)。
存在用于函数类型的组合类型,其使用如Haskell中的->运算符构建。例如,“Integer->Text”是针对获取整数类型的一个参数并返回文本值的函数。
DAMLTM还支持以下特殊类型:记录是在运行时检查其访问的标记值的记录。选择是提供给一方的选择。在示例性实施例中,每个选择由一方进行。在替代实施例中,模型合约可以并入一方的代表的概念或者和/或诸如公钥基础结构(PKI)的授权方案,使得一方的代表可以做出这样的选择。协议是关于必须发生的脱离分类账事件的协议。合约涵盖模型或潜在合约的条款。更新是分类账更新的说明,用于在分类账中创建和停用活动模型。场景是对多方的合约交互的描述,DAMLTM实施例可以将其用于单元测试。断言是断言某个布尔条件的计算结果为真。纯值是包装成使得可以在分类账更新或方案中用作无副作用步骤的值。
以下单词是该语言的关键词:等待、在、称为、如果、选择、则、否则、使得、其、练习、同意、连同、针对、使、在……中、创建、提交、承担、场景、更新。
基元类型的表达是从文字、内置函数、函数应用和λ抽象构建的。两个Bool文字为真和假。Text(文本)文字使用双引号编写,并使用与Haskell字符串文字相同的转义规则(参见Haskell Report 2010的第2.6节)。示例文本文字是“Hello world”,表示字符串‘Hello world’。Integer(整数)文字被写为基数为10的数字,可能带有前缀-用于负数。示例是1024和-1。Decimal(小数)文字表示浮点十进制数。它通过小数点与整数文字区分开来。例如,1234.56789、0.5或1.0。小数文字的一般形式由正则表达式[0-9]+\.[0-9]+给出。请注意,DAMLTM忽略是小数文字中的尾随零;例如,1.5==1.50==1.5000。“Party(方)”文字被编写为单引号之间的字母数字字符序列。示例是‘CITI GROUP’和‘DA’。在示例性实施例中,假设字母数字字符足以形成合法实体的唯一标识符。在替换实施例中,具体标准(例如,LEI)可以用于引用合法实体。
Time(时间)文字总是被解释为UTC时间并且根据ISO-8061被写为文字并且被限制为由以下正则表达式接受的子集:[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}(:[0-9]{2}(\.[0-9]+)?)?Z。例如,2007-04-05T14:30Z、2007-04-05T14:30:00Z和2007-04-05T14:30:00.0Z都表示2007年4月5日的UTC时间14:30。时间文字可以有任意亚秒精度。然而,实现方式定义了实际可以表示多少精度。RelTime文字表示两个绝对时间点之间的名义差值。无论是否已经或将要引入闰秒,两个时间点之间的名义差值总是相同的。相对时间表示为秒的分数,例如,toRelTime(24.0*60.0*60.0)表示构成一天的秒数(参见下面的toRelTime的解释)。虽然RelTime文字可以指定秒的任意分数,但是实现方式定义了实际可以表示多少精度。然而,所有实现方式都保证RelTime和Time(时间)具有相同的精度。在替代实施例中,诸如‘1d’的替代文字可用于表示在实现方式的最大精度中单日开始和结束之间的相对时间。
没有用于编写ContractId类型的文字的固定方法,因为ContractId的形式取决于执行模型。记录使用花括号编写,如JavaScript中所示。例如,{"x":1,"y":2}是其中两个字段标记为x和y的记录,其值为1::Integer和2::Integer。DAMLTM实施例当前不跟踪该类型中存在哪些Integer字段。此外,只能使用文字字符串作为标签。DAMLTM实施例使用{}作为空记录。
DAMLTM实施例支持标准Haskell运算符||,&&,不是用于布尔析取、连接和否定(参见Haskell Report 2010的第9章)。DAMLTM实施例支持标准算术运算符+、-、*、/、^用于在通用优先级下整数的加法、减法、乘法、整除和取幂。与在Haskell中一样,它们可以写在括号中,以便在前缀表示法中使用它们。例如,(+)1 2是编写1+2的另一种方式。与Haskell相反,DAMLTM实施例要求中缀运算符被空格包围。这解决了2--2到中值2-(-2)的模糊性。在使用绝对和相对时间时,请参阅下面的-和+的重载版本。
DAMLTM实施例将该组Decimal定义为存在整数n和k使得d==n/10^k的所有有理数d。也就是说,Decimal是小数的小子集,包括以小数形式编写时的终止、非终止、重复和非重复的有理和无理数。Decimal(带有大写“D”)仅包括小数的终止子集。以下说明DAMLTM如何支持使用Decimal。DAMLTM实施例使算术运算符+、-、*重载以执行Decimal的加法、减法和乘法。这些运算符都不执行任何舍入,因为在加法、减法和乘法下关闭了小数组。
DAMLTM实施例支持使用函数舍入::Integer->Decimal->Decimal以将Decimal舍入到给定精度,其中舍入prec d将Decimal d舍入到形式n/10^prec的最接近的Decimal并且通过使用偶数n向Decimal舍入而解决了连结(ties),这也称为银行家的舍入模式。例如,
舍入0 2.5==2.0 舍入0(-2.5)==-2.0
舍入0 3.5==4.0 舍入0(-3.5)==-4.0
舍入0 3.2==3.0 舍入0(-3.2)==-3.0
舍入0 3.8==4.0 舍入0(-3.8)==-4.0
没有“正确”的舍入模式。DAMLTM实施例可以根据需要添加进一步的舍入模式。
注意,该组Decimal在除法时未被关闭;例如,除以两个Decimal不一定生成Decimal。例如,1.0/3.0==0.3333...是有理数,但不是(终止)Decimal。因此,DAMLTM实施例提供函数divD::Integer->Decimal->Decimal->Decimal,以计算舍入到给定整数精度的两个小数的有理除法的结果。该舍入模式与一种舍入相同。DAMLTM实施例使用函数remD::Integer->Decimal->Decimal->Decimal提供对该除法的余数的访问。divD与remD之间的关系使得如下法则成立:1)针对所有x y。y*divD prec x y+remD prec x y==x。2)针对所有x y。abs(remD prec x y)<abs y。3)针对所有x y。sign(remD prec x y)=sign y*signx。
DAMLTM实施例支持使用函数fromInteger::Integer->Decimal从Integer转换为Decimal并使用函数toInteger::Decimal->Integer转换为Integer,其中toInteger d转换舍入0d的结果。DAMLTM实施例假设所有执行模型在内部以固定但实现方式专用的精度将RelTimes表示为Decimal。因此,DAMLTM实施例支持使用函数fromRelTime::RelTime->Decimal从RelTime转换为Decimal并使用函数toRelTime::Decimal->RelTime转换为RelTime,其中fromRelTime提供与RelTime相对应的Decimal秒数并且toRelTime d将给定d秒数舍入到实现方式专用的RelTime精度。请注意,这意味着所有dt的toRelTime(fromRelTime dt)==dt。
DAMLTM实施例支持如下所有基元类型的总顺序。Bool:假<真。Text:实现方式定义。Integer:整数的总排序。Decimal:小数的总排序。Party(方):实现方式定义。Time:绝对时间沿线性时间轴排序。更正式地说,t2::Time。/>RelTime:相对时间根据其Decimal表示排序。ContractId:实现方式定义。
DAMLTM实施例支持所有基元类型的相等性,使得 DAMLTM实施例使用与Haskell相同的中缀运算符,例如,DAMLTM实施例使用==、/=、<=、>=、<、>来分别表示等式、不等式、小于或等于、大于或等于、小于、和大于(参见HaskellReport 2010的第9章)。此外,DAMLTM实施例支持运算符(~)::ContractId->Contract->Bool,其中coid~co表示coid是指分类账中的活动合约的合约id,而这个活动合约是co的实例。
DAMLTM实施例使用(<>)::Text->Text->Text运算符支持Text值的串联。DAMLTM实施例支持对Text的重载操作,其以实现方式定义的方式将任何基元类型的值转换为文本值。DAMLTM实施例还支持show操作,该show操作以实现定义的方式将任何类型的任何值转换为文本值。这用于场景开发期间的调试。
DAMLTM实施例重载+和-运算符使得(+)::Time->RelTime->Time表示时间点移位了相对时间并且(-)::Time->Time->RelTime表示计算第一参数与第二参数之间的时差。对于所有t1,t2::Time,这些运算符之间的关系是t1+(t2-t1)==t2。
如在JavaScript中那样使用括号来编写记录访问。例如,表达式r[“x”]试图访问记录r中标记为“x”的字段。记录值使用大括号和文字字符串构建,如JavaScript中所示。例如,{“x”:1,“y”:2}是具有两个字段“x”和“y”的记录。
DAMLTM实施例在Haskell中使用λ抽象,但总是用类型注释;例如,\(a::Integer)(b::Integer)(c::Text)->toText(a+b)<>c。函数应用如在Haskell中使用并置编写。它是左关联的并且比所有中缀运算符绑定得更强。
DAMLTM实施例如Haskell中使用非递归设绑定(let-bindings),但是多个绑定必须用分号分隔;例如,设x=4;y=5;在x+y中。形式语法由下式给出:设var1=expr1;var2=expr2;…varN=exprN;在表达式中。不允许递归设绑定。
DAMLTM实施例如在Haskell中使用惰性评估if-then-else分支表达式。形式语法是:if条件then表达式1否则表达式2。例如,if所有者=='ACME'then“卖出”else“买入”。
DAMLTM基于以下假设:模型的主要目的是描述在什么约束下以及何时生效的协议。这些协议形成了分类账中模型与现实世界中效果的联系。协议的含义可以通过人工解释来确定,也可以根据适用的合法***来可选地确定,就像纸质合约一样。
介绍性DAMLTM实施例包括协议、选择和模型。提供了选择、分类账更新和模型的正式语法和语义。替代DAMLTM实施例提供了进一步的示例以帮助加深对该建模语言的理解。
在示例性实施例中,DAMLTM实施例使用同意关键字指定协议,其语法是party(方)1、…、party(方)N同意协议文本。例如:‘UBS’、‘Alice’同意“‘UBS’在账户‘CH42 1234 5’上存入100瑞士法郎。”意味着表示‘UBS’和‘Alice’之间的协议必须在本协议生效时将100瑞士法郎(CHF)存入‘CH42 1234 5’账户。
DAMLTM实施例使用λ抽象将这样的协议转换为协议模板。例如,定义deposit=\(obligor::Party)(owner::Party)(amount::Integer)(account::Text)->obligor,所有者同意toText obligor<>"deposits"<>toText amount<>"CHF on'"<>account<>"'.";允许人们将上述协议写成:deposit'UBS”Alice'100"CH42 1234 5"。
模型的编写者需要确保协议的文本描述在解释模型的合法***的背景下是精确的。从模型语言的角度来看,DAMLTM实施例不解释协议的合法文本,而是认为各方之间的每个协议都是各方的义务。
DAMLTM实施例通过给予他们选择来对各方的许可建模。例如,选择'Alice'选择账号::文本然后存入'UBS”Alice'100账户意味着'Alice'可以选择'UBS'必须存入100瑞士法郎的账户。模型是可供各方(可能是多方)同时使用的选择组。例如,iouSellSettle=\(obligor::Party)(owner::Party)(amount::Integer)->await{"settle":owner choosesaccount::Text then deposit obligor owner amount account,"sell":owner choosesnewOwner::Party then iouSellSettle obligor newOwner amount};是以CHF为单位的可以结算或出售的I-owe-you模型(IOU)的模板。模型iou'Alice”UBS'100表示具体的IOU建模,'UBS'欠'Alice'100CHF。
之前的iouSellSettle示例提供了有关如何指定模型的直觉。在下文中,DAMLTM实施例将给出选择和模型的语法和语义的精确定义。这些定义很难解释,因为它们通过第三个概念相互递归,DAMLTM实施例称之为分类账更新。直观地说,这三个概念的关系如下。1.模型是一组互斥的选择。2.选择是给予特定方在特定时间执行特定类型的分类账更新的许可。3.分类账更新是如何通过创建新协议和模型,在现有模型上执行选择,删除现有模型或断言有关在特定时间分类账状态的语句来更新分类账的说明。
在下文中,DAMLTM实施例首先给出并解释模型、选择和分类账更新的语法。然后,DAMLTM实施例解释了如何表示分类账的状态以及DAMLTM实施例如何使用分类账更新在状态之间转换。DAMLTM实施例使用以下语法指定模型。等待标识为contractIdBinder,名为contractNameExpr{"choiceName1":choice1,...,"choiceNameN":choiceN}。这样的表达式指定了为这些选择的控制方提供了标记为choiceName1到choiceNameN的N个选择的模型。变量contractIdBinder的类型为ContractId,并且可用于在选择1到N的定义中以及在contractNameExpr表达式中指代具体模型实例的标识。通过给出唯一的合约id作为参数,contractIdBinder可用于关联多个选项。variablecontractName的类型为Text,并且是模型的任意名称,以利于调试。如果不需要,则可以省略命名为contractName和标识为contractIdBinder的部分。
DAMLTM实施例使用以下语法指定选择。controllingPartyExpr在choiceTimeBinder中选择valueBinder1::Type1,…,valueBinderL::TypeL,使得booleanChoiceCondExpr然后updateExpr。这样的选择表达式指定选择由controlsPartyExpr表示的一方在将来的某个时间选择所需类型的值,并且如果这些值和它们被选择的时间满足booleanChoiceCondExpr,则执行由updateExpr表示的分类账更新。只有在该分类账更新成功执行的情况下,选择成功。
分类账更新反映交易,存储为数据结构,并使用以下内置函数之一或使用更新块来构造:create::ContractOrAgreement->Update.delete::ContractId->Contract->Update.exercises::Party->Label->Any->....->Any->ContractId->Update.assert::Bool->Update.pure::Any->Update。直观地,DAMLTM实施例使用create来创建模型或协议,使用delete以停用活动模型,使用exercise来强制各方在活动模型上执行选择,使用assert以断言关于分类账的当前状态的语句,以及使用pure以构建分类账更新,其刚刚返回值但不更改分类账。
更新块允许执行多个连续的分类账更新作为一个原子分类账更新。使用以下语法指定更新块:update[updateStatement1~>binder1,...,updateStatementN~>binderN,lastUpdateStatement]。DAMLTM实施例使用波浪形箭头~>来命名各个更新语句的执行结果。然后可以在以后的更新语句中使用这些名称来引用这些结果。
模型可以是递归的,如先前的iouSellSettle示例中所示。指定此类递归的方法是使用命名的顶层定义,稍后将在“DAMLTM程序”一节中进行说明。DAMLTM实施例减少了使用句法糖指定模型的句法开销。DAMLTM实施例允许将模型和协议用作更新,并且DAMLTM实施例允许将更新记录用作更新。
当使用模型c作为更新时,其效果与创建c的效果相同。DAMLTM实施例添加此功能,因为创建模型是最常见的更新动作。当使用记录{"l1":upd1,...,"lN":updN}作为更新时,它的效果与update[upd1~>v1,...,updN~>vN、pure{"l1":v1,...,"lN":vN}]中的一个相同。DAMLTM实施例添加该特征,因为DAMLTM实施例通常需要返回许多中间更新动作的结果。
DAMLTM实施例将模型、选择和分类账更新的语义解释为转换***。该转换***的状态是分类账,它是从ContractIds到模型的有限映射,以及有效的协议日志。转换由分类账更新的解释给出。注意,DAMLTM实施例为每个解释指定如何更改分类账以及分类账更新返回什么结果值。DAMLTM实施例在解释更新块时需要这些结果,其中后面的分类账更新可以参考早期分类账更新的结果。
DAMLTM实施例通过评估agreementExpr来解释表达式create agreementExpr,检查它确实是party1,…,partyN同意legalText的形式的协议,然后记录该协议现在有效。该分类账更新的结果是协议本身。
DAMLTM实施例通过评估contractExpr来解释表达式create contractExpr。如果该评估使用模型co成功,则DAMLTM实施例将该模型co存储在新分配的合约id coid下。该分类账更新的结果是合约id coid。
DAMLTM实施例通过首先评估contractIdExpr和contractExpr来解释表达式deletecontractIdExpr contractExpr。如果该评估使用文字合约id coid和模型co成功,则DAMLTM实施例检查该coid识别等于模型co的活动模型。在这种情况下,DAMLTM实施例从分类账中移除coid。请注意,DAMLTM实施例要求将模型co指定为delete(删除)的一部分,以便能够静态分析哪些方受此删除影响。删除的结果是空记录{}。
DAMLTM实施例解释利用coid上的choiceValue1,…choiceValueN的partyExprexercises“choiceLabel”形式的分类账更新,如下所述。DAMLTM实施例首先评估partyExpr。如果这导致文字方名称角色,则DAMLTM实施例查找与coid相关联的活动模型。如果coid标识活动模型co,则DAMLTM实施例将其标记为无效。然后,DAMLTM实施例查找由co中的“choiceLabel”标识的选择。如果角色与选择的控制者相同,则DAMLTM实施例会进行此选择;例如,DAMLTM实施例首先使用给定的choiceValue和当前时间来实例化选择的条件及其后续分类账更新。然后,DAMLTM实施例检查选择的条件,并且如果成功,则解释选择的后续。使用exercises构建的分类账更新的结果是选择的后续结果。请注意,该解释可能是递归的,但保证终止。
DAMLTM实施例通过评估booleanExpr来解释表达式assert booleanExpr,然后检查结果是否为真。如果是这种情况,则解释成功。否则,则失败。Assert(断言)分类账更新的结果是空记录{}。
DAMLTM实施例通过评估x并将其作为该分类账更新的结果返回来解释表达式purex。因此,DAMLTM实施例可以使用pure来构造返回特定结果的无副作用的分类账更新。
DAMLTM实施例通过在将先前updateStatement的结果替换为绑定器之后一个接一个地解释updateStatement来解释更新块更新[updateStatement1~>binder1,…,updateStatementN~>binderN,lastUpdateStatement]。更新块的结果是lastUpdateStatement的结果。如果任何语句失败,则对更新块的解释将失败;仅在更新块成功的情况下才应用对分类账的所有效果。因此,更新块允许构建原子复合分类账更新。
还可以定义组合其它模型模板的模型模板。例如,定义选项=\(controller::Party)(tlb::Time)(tub::Time)(next::Contract)->await{"exercise":controllerchooses at t such that tlb<=t&&t<=tub then next};提供名为选项的组合器,它允许一方在特定的时间间隔内输入模型。
在所有先前的示例中,选择仅导致创建零到多个新模型。以下可以拆分和合并的IOU示例显示了如何在“合并”选择中使用更新块以原子地删除(停用)合并的模型,并在更大的数量上创建新的IOU模型:iouChf=\(obligor::Party)(owner::Party)(amount::Integer)->await{"settle":owner chooses account::Text then deposit obligorowner amount account,"sell":owner chooses newOwner::Party then iouChf obligornewOwner amount,"split":owner chooses newAmount::Integer such that 0<newAmount&&newAmount<amount then{"iou1":iouChf obligor owner newAmount,"iou2":iouChf obligor owner(amount-newAmount)},"merge":owner choosesotherIou::ContractId,otherAmount::Integer then update[delete otherIou(iouChfobligor owner otherAmount),iouChf obligor owner(amount+otherAmount)]};。
DAMLTM实施例还可以使用模型来通过使用需要特定方执行决策的选择来协调对其它模型的改变。例如,下面的模板可用于要求付款人在特定时间之前转移支付的所有权。
--在瑞士法庭面前必须在两方之间进行协商的违约模板。
--要求如上所述在一定时间内通过转移IOU的所有权进行支付的--模型模板。
然后,使用iouChf支付的组合器可以定义如下。
DAMLTM实施例将一组顶层定义称为DAMLTM程序。DAMLTM实施例当前使用分号将这些定义分开,这是由于以下局部解析模糊性:a=b c=d将被解析为a=b c,其中以下=d的解析失败。因此,DAMLTM实施例对每个顶层定义使用如下尾随分号,a=b;c=d以避免对分号的需要。
场景是关于多方如何经由存储在分类账中的一个或多个模型进行交互的描述。DAMLTM实施例包括语言场景的特殊符号,因为它们用作模型模板的重要文档和测试用例。
以下是上一节中IOU定义的示例场景。
对于更新块,DAMLTM实施例使用波浪形箭头来绑定场景动作的结果;并且场景的结果是其最后一步的结果。上述示例中的绑定变量的类型如下。ubsIou::ContractId;aliceIou::Record;now::Time;settled::Record;。请注意,aliceIou记录的形式将为{"iou":contractId},并且其中一个已结算的记录将为{"settle":agreement}。这是根据上述iou定义中"sell"和"settle"选择的后续标记确定的。
DAMLTM实施例可以模式匹配到场景步骤的结果的记录中。例如,'Alice'在aliceIou["iou"]~>{"settle":agreement}上用"CH42 1234 5"运用"settle"。这将步骤的结果记录的"settle"条目绑定到变量名称协议。DAMLTM实施例可以将记录模式匹配到任意深度,例如,这是有效模式:{"foo":{"bar":{"baz":varName}}}。
模式不需要是完整的;也就是说,模式中可以省略结果记录中存在的标签。与结果记录中不存在的标签进行的模式匹配将导致错误(例如,如果解释则为运行时错误)。变量名称的遮蔽由其标签键的顺序决定。在前面的示例中,变量varName的标签键是["foo","bar","baz"]。该变量将使用["foo","bar"]的标签键来遮蔽一个变量。在示例{"a":varName,"b":varName}中,varName绑定由["b"]访问的条目,因为键["b"]位于键["a"]之后。
场景的默认解释如下。从空分类账开始,按顺序执行场景的步骤。
提交分类账更新。形式为party1,…,partyN commit updateExpr的表达式表示party1,…,partyN各方共同同意他们想要提交由updateExpr表示的分类账更新。如果updateExpr可以成功解释为当前分类账上的状态转换,则会成功。DAMLTM实施例要求明确指定同意提交的各方,因为这些是允许在解释的分类账更新中有义务的唯一方。替代实施例可以指定有义务方的概念。
控制时间。Pass relTimeExpr~>newTimeBinder步骤通过relTimeExpr提升当前场景时间,并将新场景时间绑定到newTimeBinder。可以使用此功能来确定场景的初始时间,如下所示:pass(toRelTime 1.0)~>now。
表达预期。Assert booleanExpr步骤会评估布尔表达式,如果该表达式为假,则会使场景失败。否则没有效果。mustFail关键字可以修饰场景步骤以指示它应该失败。如果内部步骤没有,则这样的步骤失败,反之亦然。例如,说明模型不能被结算两次是有意义的。
调试。Trace textExpr步骤评估Text表达式并创建场景步骤,该步骤不以任何方式更改分类账,但在步骤描述中包含已评估的文本,因此这可用于调试场景并使用toText函数查看值。示例:trace("gergely's trace"<>toText(42+123))。
可以使用描述注释用文本表达来注释任何表达式。这些是使用以下语法编写的:{@DESC textExpr@}someOtherExpression和ItsArguments。描述注释尽可能地右端绑定,如果只想注释函数本身,则必须使用括号,例如,
\(f::Integer->Integer)(arg::Integer)->
({@DESC"the function's description"@}f)
({@DESC"the argument's description"@}arg)
DAMLTM实施例使用该方法,因为在注释整个模型或选择的常见情况下这需要较少的括号。请注意,对于同一表达式上的多个注释,将保留最内层注释,并忽略其它注释。特别地,DAMLTM实施例使用描述注释来使用非合法绑定的人员可读文本来缩小模型以用于GUI目的。例如,DAMLTM实施例可以如下引入命名的iou模型。
Await(等待)关键字的描述注释由解释器记住并在打印最终分类账时使用。例如,当完成场景时,DAMLTM实施例可以具有该输出。
最终分类账:
这里,DAMLTM实施例可以看到IOU的简短描述,其示出了银行拥有Alice$1并且Bob$2。
许多模型需要多方选择,但是对这些选择的顺序无关紧要。可以使用此处描述的语言功能指定此类模型。然而,这些规范的大小在必须做出选择的各方的数量上是指数级的,因为DAMLTM实施例必须列举所有可能的选择排序。为了避免这种指数***,DAMLTM实施例为多方并行选择引入了明确的支持。
DAMLTM实施例如下解释了对并行选择的支持。DAMLTM实施例首先提供介绍性示例。然后,DAMLTM实施例为并行选择和关于各个并行选择的决定指定正式语法。最后,DAMLTM实施例解释了并行选择的语义。
以下示例合约对用于在两方之间交换两个可销售合约的选项的提议建模。
/>
与先前的示例相反,await选择的后续由两个并行选择步骤保护。第一步对alice的选择建模预先提交她的货物,第二步对bob的选择建模预先提交他的货物。这两个步骤只是预先提交,因为只要第二方尚未提供他的货物,alice和bob仍然可以对他们的各自的货物进行选择。由于它只是交换选项,因此DAMLTM实施例为alice和bob两者都提供取消交换的选择。只要只有alice或bob行使其“交换”选择的部分,这两种选择仍然可用。请注意,一旦第二方做出预先提交的选择,实际的货物交换就会原子地发生。
具有并行选择步骤的选择的正式语法如下。
/>
值绑定器的范围使得每个选择步骤界限值可以在相应的每个选择步骤布尔条件中被引用;并且可以在选择的布尔条件和所有选择的后续中引用所有界限值。请注意,选择步骤组必须非空,并且所有步骤必须以不同方式标记。DAMLTM实施例选择使用不同类型的括号{|and|}变体,以确保记录和并行选择可以清楚地区分。因此,DAMLTM实施例保持语法不受阻碍以用于稍后的记录概括。
DAMLTM实施例扩展了决策的正式语法,使得人们不仅可以引用选择的标签,还可以引用选择步骤的标签。这允许指定一方执行其选择步骤之一的决定。具体语法如下:利用contractIdExpr上的choiceStepValue1,...,choiceStepValueN,partyExpr exercises"choiceLabel""choiceStepLabel"。例如,以下场景创建ious的OptionalSwap并进行运用。
/>
如下运用并行选择的语义。由单个选择步骤保护的选择c与正常选择表现相同,其条件是选择步骤的条件和c的条件的结合。对于有多个选择步骤保护的选择,使决策角色现在用v1,...,vN对由N个选择步骤保护的选择c的“step_i”运用exercises"choiceLabel""step_i"
其如下工作。DAMLTM实施例首先检查角色是否控制step_i,然后DAMLTM实施例检查值v1,…,vN的类型是否与预期类型匹配,最后DAMLTM实施例检查是否满足step_i的选择步骤条件。如果所有这些检查都成功,则DAMLTM实施例删除当前模型,并创建新模型,该模型记录选择步骤step_i的决策。
更具体地,假设模型c是上述optionalSwapTestscenario中optSwapId1指向的模型。然后,步骤'Bob'在时间t执行的optSwapId1~>optSwapId2上使用bobIou1运用"swap""bob"将标记optSwapId1为不活动状态,并在[在t处用bobIou1运用"swap""bob"]之后引入指向c的新合约id optSwapId2,其中之后是特殊关键字,用于标记必须应用于模型的未决决策列表。
替代DAMLTM实施例将允许在DAML的输入语法中指定未决决策。这些功能在参考语义中完全指定和实现。然而,并非所有执行模型都一定支持它们。因此,DAMLTM实施例针对其支持的执行模型中的每个特征进行陈述。
例如,利益相关者批准的HyperLedger当前不支持逐点观察或表格合约查询语言的DAMLTM特征。金融合约通常取决于外部公共衡量指标,如股票收盘价或股息支付公告。DAMLTM实施例称这种外部公共衡量指标为可观察数据。有许多模型可用于形式化可观察数据。DAMLTM实施例在daml-design-considerations.md文档中探讨了其中的几个。这里,在本节中,DAMLTM实施例解释了对简单模型的支持,其中1.各方可以发布他们自己的带时间戳的不可变数据值的命名数据馈送,以及2.模型可以依赖于这些数据馈送的逐点观察。
DAMLTM实施例不要求将这些数据值发布在分类账上。相反,DAMLTM实施例假设存在一些允许各方传递数据馈送的值并且证明数据馈送在某个时间点达到特定值的方式。从概念上讲,数据馈送的状态在任何时候都对应于部分定义的分段常数函数。随着数据馈送的状态的发展,对应函数变得越来越多地被定义,但是从未在已定义的时间点更改值。更正式地,DAMLTM实施例可以将类型a的值的数据馈送的状态表示为类型的非空列表Feed a=[(Time,a)]类型,其中时间点是严格单调的。令feed=[(t_0,v_0),(t_1,v_1),...,(t_n,v_n)]为Feed(馈送)类型的非空列表。然后,对应的部分定义的分段常数函数是将时间点t映射到以下的函数
1.如果在馈送中存在连续的一对定时值(t_i,v_i)和(t_(i+1),v_(i+1)),使得t_i<=t<t_(i+1),则为v_i,
2.如果t_n==t,则为v_n,以及
3.如果上述两个条件均不满足,则未定义。
注意,该定义意味着(t_n,v_n),馈送中的最后定时值仅定义t==t_n的对应函数的值。对于所有t>t_n,对应的函数是未定义的。
如前所述,DAMLTM实施例不修复要在分布式分类账设置中使用的数据馈送的发布方案。然而,选择上述定义的原因之一是它允许直接的发布方案。也就是说,发布方可以通过将其与基于散列的链接一起签名到先前的发布来将新值发布到数据馈送。例如,以下定义例示了在两个连续时间点t0和t1>t0发布数据馈送。
hash_0=hash(t_0,v_0);
feed_0=sign('PublisherPk',("feedName",hash_0))
hash_1=hash(hash_0,(t_1,v_1));
feed_1=sign('PublisherPk',("feedName",hash_1))
...
该示例假设对应于散列hash_0和hash_1的字节串要么在已发布的消息中内联,要么经由如IPFS的内容可寻址文件***来发布。显然,有许多方法可以提高这种发布方案的效率(例如,构建定时值块,或者使用经过验证的流广播协议,如TESLA等)。DAMLTM实施例预期这些效率改进中的大多数与数据馈送的定义性和不变性的假设兼容。因此,DAMLTM实施例不进一步追求本文档中用于数据馈送的这些发布方案的详细信息。
在模型语言的参考实现方式中,DAMLTM实施例提供以下两个函数来管理数据馈送的查询以及将新的定时值发布到代表party(方)专用的数据馈送。
observeFeedAt::Party->Text->Time->Any
publishToFeed::Party->Text->Any->Scenario Unit
DAMLTM实施例使用表达式observeFeedAt publisher feedName t来查询发布者在时间t发布的数据馈送feedName的值。如果在t处未定义Feed的值,则该表达式的评估将失败。如果t在馈送feedName的第一次发布数据点之前或在最后发布的数据点之后,则会出现这种情况。
DAMLTM实施例使用表达式publishToFeed publisher feedName expr来表示将expr的值发布到发布者的馈送feedName的场景步骤。该发布值的时间戳是当前场景时间,这意味着无法将数据发布到将来。
以下示例演示了observeFeedAt与publishToFeed之间的相互作用。
每次必须明确地发布每个馈送的限制的灵感来自分布式分类账的立场,其中必须明确地发布签名的散列链的每个扩展。然而,使用上述原语,这在测试场景中可能证明会有点麻烦。因此,DAMLTM实施例设想,如果需要这样的函数,则替代DAMLTM实施例可以引入函数fixAllFeeds::Scenario Unit,其发布所有馈送的最后值作为带有当前场景时间的时间戳的值。
可以在数据馈送上参数化模型模板。上述对数据馈送的支持最小。然而,DAMLTM实施例预期它为利用取决于这些外部数据馈送的选择来制定模型模板提供显著表现力。制定此类模型模板的关键思想是将时间相关的速率表示为Time->Decimal类型和时间相关条件的函数,作为Time->Bool类型的函数。然后,这种模板的调用者可以使用给定的时间值来检查数据馈送。
注意,该决策意味着该语言中的功能不是完全纯粹的。它们取决于分类账的状态(由于~函数),以及数据馈送的状态(由于observeFeedAt函数)。这是可接受的,因为DAMLTM实施例具有严格的评估语义,这确保了当DAMLTM实施例评估表达式时总是清楚的。替代DAMLTM实施例的评估语义可以踊跃地评估应用和参数,并且一旦遇到不饱和应用、等待或选择就停止。
表格合约查询语言提供对查询基于合约的分类账的支持。查询基于数据结构的句法模式匹配,DAMLTM实施例考虑在从基于合约的分类账中读取时发挥核心作用。本节中描述的语言功能作为关于模式匹配在背景中如何表现的基础。这种理解可以用于GUI的开发和用于选择执行的合约特定自动化的开发。
在计算机***上具体实施的执行环境将DAMLTM中指定的模型存储在分类账中。DAMLTM实施例想要提供用于查询这样的数据库以查看在分类账中有效的合约及其参数的手段。例如,DAMLTM实施例可以向分类账查询它当前包含多少活动“IOU”合约。或者有多少“IOU”合约,其中债务人被称为“UBS”。GUI可能希望以表格形式呈现分类账中所有活动“IOU”的查询结果,如下所示。
由于不使用固定数据模式存储合约,而是作为表示抽象语法树(AST)的数据结构,因此分类账的基础数据库实现方式不能提供这样的表。DAMLTM实施例提供了借助于分类账中活动模型的AST表示的句法模式匹配来查询分类账得到具有给定参数的活动模型的工具。通过查看示例可能最好地理解这个概念。
/>
DAMLTM实施例提供函数traceMatchingContracts,其句法为traceMatchingContracts contractPatternExpr,以针对场景中的解释器分类账运行查询。contractPatternExpr是包含模式变量的表达式。模式变量通过前导'?'字符与正常变量区分开来。简单的模式示例是?a+2。对于?a=3,这个模式在句法上匹配3+2,但是这个模式与3+9不匹配。下表给出了另外示例:
/>
DAMLTM实施例可以通过使用模式变量参数调用函数来创建模式。例如,iouSellSettle?obligor?owner?amount是匹配使用iouSellSettle模型模板创建的模型的模式。
如以上示例所示,traceMatchingContracts接受具有模式变量的Contract类型的表达式。然后将所得合约模式与所有活动模型进行匹配,并将结果作为解释的一部分进行报告。DAMLTM实施例尚未在场景结果中公开结果,因为DAMLTM实施例还不能表示结果列表。
两个模式变量?ContractId、?ChoiceTime是保留的模式变量名,并且不能在模型模式中使用。它们分别匹配模型的contractIdBinder和choiceTimeBinder。如果模型由两个变量中的任何一个参数化,则解释器将以与普通模式变量相同的方式报告它们的值。
分类账中的所有模型都可以进行模式匹配吗?给定具体的分类账,可能会询问是否可以使用模式匹配查询检索所有活动模型。这当然是正确的,因为总是可以使用模型的AST查询每个模型本身而不使用任何变量作为查询。因此,可以重新设计问题:给定具体的DAMLTM文件,针对公司有兴趣处理的所有模型定义模板,影响该公司的所有模型可以使用基于来自该DAMLTM文件的顶层定义的查询进行模式匹配?这通常不成立,因为可能存在嵌套的await语句,这些语句产生的活动模型没有对应的顶层定义。然而,如果DAMLTM实施例要求所有await仅发生在如下构造的顶层定义中,则可以匹配所有所得模型。
该限制不限制表达性。因此,替代DAMLTM实施例可以研究将嵌套的await自动转换到这种形式。一旦DAMLTM实施例具有该转换,DAMLTM实施例总是可以使用模式匹配来在模型的每个合约模板表格表示与基于本机AST的表示之间切换。
替代实施例提出了语言扩展。以下部分包含当前未在示例性执行模型中实现的完全指定的扩展。
解析并执行必选的义务示例。许多模型要求各方在给定的时间限制内做出某些选择。DAMLTM实施例可以通过使用如上面的'mustPayIouWithin'示例中所示的惩罚性条款来用这里描述的模型语言表示这种义务。然而,添加所有这些惩罚性条款变得相当麻烦,这就是为什么DAMLTM实施例针对必选的义务添加明确的句法和语义支持。
DAMLTM实施例以三个步骤解释对必选义务的支持。DAMLTM实施例首先给出介绍性的示例。然后,DAMLTM实施例指定必选义务的正式语法;最后DAMLTM实施例呈现它们的语义。以下合约对在另一个模型上执行“卖出”选择的义务进行建模,直到达到某个最大时间。
这些语言要素是必选的义务,并且直到履行该义务为止。以下场景说明了mustPayUntil合约模板的使用。
支持可选选项和必选义务的选择步骤的正式语法是:
其中t0和t1是Time类型的表达式,它们不引用任何选择的绑定值,并且[选择|必选]意味着必须使用|的任一侧的两个关键字之一。在t0后和直到t1约束条件对于可选选择都是可选的。对于必选义务,只有在t0后约束条件是可选的。
DAMLTM实施例以两部分解释扩展选择步骤的语义。在t0后直到t1时间约束条件被评估。然后,该实施例定义何时违反‘必选’义务以及这种违反的后果是什么。
具有tMin后约束条件的任何选择或必选义务只能在时间t>=tMin时进行。具有直到tMax约束条件的任何选择或必选义务ch只能在时间t<tMax时进行。DAMLTM实施例将tMax称为ch的界限。DAMLTM实施例决定将tMin之后直到tMax解释为形式{t|tMin<=t<tMax}的时间间隔,以确保与t0之后直到t1以及t1之后直到t2形式的两个约束条件相关联的间隔保证不相交。因此,DAMLTM实施例简化了避免同时可获得两个选择的困境情况。DAMLTM实施例决定使间隔针对其最小时间闭合,以确保被0之后约束条件的选择ch与没有0之后约束条件的选择ch具有相同的行为。
如果t大于或等于ch的界限,则在时间t违反必选义务ch。如果在时间t违反其必选义务之一,则在时间t违反包含必选义务的模型实例。DAMLTM实施例通过禁用所有各方的所有选择来冻结违反的模型。
完全冻结违反的模型的动机如下。DAMLTM实施例设计了必选的义务,用于没有解决违规的默认行为的模型。如果存在默认行为,则DAMLTM实施例可以并且将通过提供用于处理对方违约的可选选择来对其进行编码。DAMLTM实施例预期通过提出解决方案模型来解决模型c中必选义务的违规,该解决方案模型要求模型c的所有利益相关者进行批准,然后删除模型c连带地创建其它模型以补偿由于违规造成的损害。以下示例说明了这种必选义务的违规及其解决方案。
/>
替代DAMLTM实施例包括DAMLTM实施例可能想要在替代执行环境中添加的模型语言的扩展。它们可能包括相对时间的描述性文字,如'1d',表示相对时间的一天。类似地,用于测量相对时间的其它常见单位。合法协议的Mustache模板:描述合法文本的明确语法非常详细。提供了Mustache模板风格的轻量级替代方案。例如,DAMLTM实施例可以使用如下协议。
公开选择(Public Choices)在每当一些partyMakingChoiceBinder在choiceTimeBinder前缀进行选择时进行解释。DAMLTM实施例允许使用定义明确转换函数的轻量级语法来定义新类型,并且在表示类型上引入所有函数的提升版本。这些新类型旨在减少位置调用惯例中混淆的机会数量。
newtype Amount=Integer
fromAmount::Amount->Integer
toAmount::Integer->Amount
newtype Account=Text
fromAccount::Account->Text
toAccount::Text->Account
类型+运算符扩展包括DAMLTM实施例设想有用的一组扩展,其可以全部被描述为使用这些类型的附加类型和功能组。DAMLTM实施例目前设想以下实施例。银行日历支持,因为银行模型可能在很大程度上取决于交易地点专用的日历惯例。DAMLTM实施例可能希望为定制运算符提供良好定义的语义以捕获这些惯例。时间通常在当地交换时区。许多期权/期货在每月的第3个星期五08:30过期。商务假期期间需要特殊待遇,日期通常移到假期前。因此,使用诸如businessDayOrBefore(t,"Europe/Zurich")之类的可观察量可能是有用的。
简单的可观察量是可用的,因为许多模型需要访问市场数据和物理现实的其它可观察值,其中存在如何测量它们的客观定义。如果在共享可观察值的公共定义的参与者之间执行模型,那么形式为obs::Text->Time->Integer的运算符将非常有用并且足以在特定时间查找可观察值的值。请注意,该查找将在将来失败。如果模型方想要将可观察值的发布委托给第三方,则DAMLTM实施例可以使用加密收据,如下一节中所述。
加密收据可用于支持模型演进与离开分类账加密语句的绑定;例如,对于经过认证的市场数据。简单的基于密钥的收据在选择条件中直接使用签名。基于策略的收据基于证明承载授权,并允许使用精细的策略来检查在选择条件下提供的收据。
转到图2,通常用附图标记200指示可旋转的2×2×2多面拼图立方体。为了便于描述,提供该立方体作为有点类似于智能模型的示例以表示模型的潜在状态。立方体的状态被定义为在三个可见面中的每一个上显示的四个块的有序颜色。在初始状态下,立方体的六个面中的每相应的一个的所有四个部分是六种颜色中的相应一种,诸如红色(R)、白色(W)、蓝色(B)、黄色(Y)、绿色(G)和黑色(B)。第一次交易将立方体转换为顶部90度顺时针旋转。第二次交易将立方体转换为右旋90度顺时针旋转。
现在转到图3,通常用附图标记300表示要为图2的立方体记录的状态的表示的示例。初始状态是{B,B,B,B,R,R,R,R,Y,Y,Y,Y,…};顶部90度顺时针旋转后的状态是{R,R,B,B,G,G,R,R,Y,Y,Y,Y,…};并且右旋90度顺时针旋转后的状态为{R,W,B,W,R,G,R,G,Y,B,Y,R,…}。
如图4中所示,通常用附图标记400表示按时间顺序记录到仅附加分类账的立方体的状态。这里,首先附加{B,B,B,B,R,R,R,R,Y,Y,Y,Y,…}的初始状态;接下来附加{R,R,B,B,G,G,R,R,Y,Y,Y,Y,…}的第二状态;并且最后附加{R,W,B,W,R,G,R,G,Y,B,Y,R,…}的第三状态。
转到图5,通常由附图标记500指示改变仅附加分类账的语义、安全性和授权、度量。这类度量可以包括将先前记录的智能模型的状态标记为已取代,从而创建绑定到智能模型的每个新状态的加密散列和/或签名;并使用Merkle树或区块链来确保提交到分类账的每个分类账是根据对先前分类账条目的可证明的引用来源构建的,遵循先前定义的验证规则的可验证提交,允许以后共享隐藏的可证明属性,并且防篡改。
现在转向图6,通常用附图标记600指示分类账的复制副本。复制副本可用于使分类账对局部故障具有稳健性。
如图7中所示,通常用附图标记700指示在分类账600的复制副本中具有批准和同意分配的分类账。同意有助于维护单个版本的分布式分类账。
转到图8,通常用附图标记800指示附加有最新批准条目的分类账700。如图所示,分类账800包括立方体正面的明显的未加以注意的错误。这不是可接受的状态,但如果没有验证分类账条目的语义正确性的其它算法,则不排除这种状态。在分类账中包括这种错误或不一致状态的情况不是DAMLTM分类账存储的当前示例性实施例。
现在转向图9,通常用附图标记900指示错误的分类账。这里,明显被注意并被提交的相同错误状态已成为所有节点上的分布式同意。这不是可接受的状态,但如果没有验证分类账条目的语义正确性的其它算法,则不排除这种状态。在分类账中包括这种错误或不一致状态的情况不是DAMLTM分类账存储的当前示例性实施例。
如图10中所示,通常用附图标记1000指示具有对分类账条目的语义正确性的验证的分类账,以避免输入不正确的分类账条目。这里,针对较高规则或主模型的验证产生了无效结论,并且由于验证失败,一方或多方阻止分类账条目输入分类账。在正确验证的情况下,可以在分类账日志内包括“验证逻辑”来提交分类账条目。DAMLTM存储和分类账逻辑的当前示例性实施例具有一方或多方拒绝错误或语义上不正确的提出的分类账条目交易。DAMLTM存储和分类账逻辑的当前示例性实施例具有以区块链的形式维护散列树基本逻辑的各方,允许重新访问和重新检查每个分类账交易的完整验证历史以用于审计目的。
转到图11,通常用附图标记1100指示其中在分类账内定义验证算法,加强和扩展分类账条目验证的能力的分类账。这里,应用于分布式分类账的每个实例的验证算法可能取决于先前分类账条目内定义的算法,并应用所得动作和验证。这使得验证更加强大和可扩展。DAMLTM存储的当前示例性实施例使用DAMLTM的正式属性来验证DAMLTM功能的后续执行,使用先前存储的基于DAMLTM数字资产的分类账条目作为验证DAMLTM执行逻辑的基础,并验证包括新的基于DAML的分类账条目。
现在转到图12,通常用附图标记1200指示DAMLTM代码的实例。该DAMLTM代码定义六个面中的每一个的四个部分中的每一个(总计24)的颜色类型的变量(示例方定义所定义的类型),针对每个部分指示六种颜色之一。该代码还包括DAMLTM“等待”函数,例如,该函数等待一方选择旋转顶侧或右侧。这里,每个选择产生新的“立方体”,同时消耗较旧的立方体,而立方体2的定义包括其验证规则。
如图13中所示,通常用附图标记1300指示DAMLTM代码的实例。该代码包括DAMLTM“等待”功能,其等待party1的选择(“选择”)“使得”如果每一侧是单一颜色,“则”各方“同意”“立方体被解决”。这里,DAMLTM允许各方同意分类账外部的语句及其解释。
转到图14,通常用附图标记1400指示DAMLTM代码的实例。该代码包括DAMLTM“等待”函数,其等待party1的选择(“选择”)“使得”如果每侧是单个颜色,“则”各方“同意”“立方体被解决”并且奖品从party2转移(“transferAsset”)到party1。因此,DAMLTM允许各方对本机可互换数字资产(例如,HyperLedger中的资产)进行操作。
现在转到图15,通常用参考数字1500指示允许双方交替移动的DAMLTM的实例。该DAMLTM双方交替移动示例不同于图12的示例,图12的示例中仅一方可以选择两个所示动作中的一个。
如图16中所示,通常用附图标记1600指示组合多个步骤的DAMLTM代码的实例。这是多移动示例,其中必须满足“使得”条件以便验证被接受并允许进行更新。
转到图17,通常用附图标记1700指示用于两方之间的资产交换的示例性DAMLTM代码。这可以经由递归扩展到多方之间的立方体交换。
因此,DAMLTM分类账输入可以是协议,“等待”(活动模型)等待各方做出一个或多个选择,和/或对本机可互换资产的操作。DAMLTM协议将各方与“现实世界”数据或“现实世界”活动和/或承诺联系起来。DAMLTM的活动模型和对数字资产的操作都是数据和算法,因为它们“包含”以数据为中心的协议,并且它们允许活动模型运用和作为算法的资产操作。活动模型运用的验证规则在每个活动模型“内”定义,它们就像区块链脚本一样,但实际上使用更复杂的语言,新的活动模型可以创建新的验证规则。
现在转到图18,通常用附图标记1800指示示例性DAMLTM代码条目类型。一旦被运用,活动模型总是变为不活动模型。也就是说,在选择筛选中只能选择一个,并且一旦选择,该选择筛选就不再可用。
如图19中所示,通常用附图标记1900指示示例性DAMLTM代码选择。组成允许每个模型步骤如期望的那样复杂。这里,除了多次移动之外,等待图16的“前180”,呈现了“交换立方体”的另一个等待。更新部分通过创建有效交换的立方体并通过使先前的立方体处于无效状态来删除先前的立方体从而交换两个立方体。
转到图20,通常用附图标记2000指示具有有序分类账条目的示例性基于DAMLTM的分类账。分类账是这里示出为X,Y,Z的有序分类账条目组。DAMLTM分类账存储的当前示例性实施例是仅附加顺序排序,其中维持严格的“一维”顺序。DAMLTM存储的替代实施例可以用于通过使用不太严格且逻辑上仍然正确的分类账条目排序(例如,通过使用直接非循环图)来实现更好的缩放。
现在转到图21,通常用附图标记2100指示具有有序分类账条目的另一示例性基于DAMLTM的分类账。虽然图20的严格一维排序是按顺序的,但是局部排序与全局排序允许其它顺序排序可能性。这里,拓扑分类或直接非循环图(DAG)技术可用于缩放到更大的场景和更复杂的可能性。
转到图22,通常用附图标记2200指示具有有序和带时间戳的分类账条目的示例性基于DAMLTM的分类账。该分类账包含有序且带时间戳的一组分类账条目,在此示出为X,Y,Z。DAMLTM分类账存储的当前示例性实施例是仅附加分类账,其中利用每个单调增加的带时间戳的分类账条目来维护时间信息。
转到图23,通常用附图标记2300指示跨多方的两个示例性DAMLTM存储和分类账逻辑部署。这里,一个(右)具有如图22中的集中逻辑,而另一个(左)具有分布式逻辑。DAMLTM存储和分类账逻辑的集中式实施例集中在关键业务方(例如,交换机)周围,其中各方仍可维护其自己版本的DAMLTM存储和分类账逻辑。DAMLTM存储和分类账逻辑部署的分布式实施例被分布成支持不集中在关键业务方周围的业务流程。DAMLTM存储的这个和类似实施例可以用于通过使用弱增加的时间戳来实现更大的缩放(例如,其中不相关的分类账条目没有时间依赖性)。
现在转到图24,通常用附图标记2400指示具有作为数据结构存储的分类账条目和保密性的示例性DAMLTM交易。示出了集中式(左)和分布式(右)分类账实施例。这里,C方和D方无法查看某些分类账条目,而A方和B方可以查看。例如,使用已知的加密技术可以有效地掩蔽对一方可见的分类账,使得分类账交易显示仅对授权方可见的分类账条目,诸如支持保密性。这里,分类账交易可以包括作为“组”添加的多个分类账条目,其中交易逻辑确保该组的“全部或毫无”执行逻辑。提供保密性和部分可见性,这是由于并非交易中涉及的所有各方都需要或被授权查看该交易的所有分类账条目,因为交易可以包括交易参与者子组所私有的分类账条目。支持交易和输入***/附加授权,其中多方需要授权交易以进行输入或提交。
现在转到图25,通常用附图标记2500指示具有分类账条目和保密性的示例性DAMLTM交易。这里,B方不能查看某些分类账条目,而A方可以查看。可以有效地掩蔽对一方可见的分类账,使得分类账交易显示仅对授权方可见的分类账条目,诸如支持保密性。这里,分类账交易可以包括作为“组”添加的多个分类账条目,其中交易逻辑确保该组的“全部或毫无”执行逻辑。提供保密性和部分可见性,这是由于并非交易中涉及的所有各方都需要或被授权查看该交易的所有分类账条目,因为交易可以包括交易参与者子组私人的分类账条目。支持交易和输入***/附加授权,其中多方需要授权交易以进行输入或提交。
如图26中所示,通常用附图标记2600指示包括提交新的分类账输入交易的多方授权的示例性基于DAML的分类账。这里,通过验证受影响方来提供授权。来自一个或多个验证方的授权可以保证提交给分类账的所有新分类账条目满足适当且先前商定的分类账逻辑。受影响方的授权可能被提交以同意在分类账条目内定义的将来业务变体和场景。也就是说,一方或多方同意所提议的基于DAML的分类账交易的即时和可能的将来分类账执行影响。同样,一方或多方同意对提出的基于DAML的分类账交易的跨方(cross-party)关系产生即时和可能的将来影响。DAMLTM分类账的当前示例性实施例具有同意DAMLTM分类账执行逻辑的一方或多方,以及具有同意在对所提议的DAMLTM分类账交易进行解释之后、在先前商定的外部合法协议的背景下改变两方或多方之间的合法权利和义务的一方或多方。DAMLTM分类账的替代实施例可以具有由合法机构认证的授权,以允许DAMLTM分类账交易在两方或更多方之间定义法律约束关系,而无需在先前的外部协议框架内工作。DAMLTM分类账的替代实施例可以具有由多个合法机构认证的授权,以允许DAMLTM分类账交易在两个或多个合法管辖范围内的两方或更多方之间定义法律约束关系。DAMLTM分类账的当前示例性实施例具有验证DAMLTM分类账执行逻辑的正确性的一方或多方。
如图27中所示,通常用附图标记2700指示包括散列与条目和详细信息的示例性基于DAMLTM的双层分类账。这里,所有各方具有匿名化的交易和散列值,但是B方不具有A方所具有的一些详细信息。散列键与分类账条目相关联。散列与每个分类账条目相关联,但散列不显示分类账条目详细信息。散列有助于提供分类账条目详细信息的证明而不会显示它们。双层分类账包括分类账或散列数据日志,以及具分类账条目的分类账。两个分类账层包括交易结构和/或可选的区块结构。
如图28中所示,通常用附图标记2800指示示例性的基于DAML的散列中心公共分类账层或公共日志。这里,公共分类账提供可证明的授权引用。这个公共分类账是“散列”的分类账,其隐藏分类账输入数据。每个分类账条目的散列是对该分类账条目的匿名引用。这提供了交易提交状态,其中各方基于其私人分类账对交易授权,但是交易提交在公共分类账中。私人分类账提交取决于公共分类账提交。该特定实施例仅实现散列,并且没有有限的生命周期,也没有交叉条目依赖性。也就是说,公共分类账是如下日志,其中条目是与存储在私人分类账中的详细分类账条目相关联的散列值,并且公共分类账条目是对详细私人条目的匿名引用。分类账交易提交由公共分类账中的一方或多方授权,并且该公共分类账提交状态确定私人分类账的交易的提交状态。DAMLTM分类账的当前示例性实施例不包括其条目的任何生命周期(散列值),也不包括交叉条目依赖性,因此可以被视为日志。DAMLTM分类账的替代实施例可以包括附加逻辑,诸如某些分类账详细信息的同态加密,并实现进一步的分类账逻辑。
如图29中所示,通常用附图标记2900指示示例性的基于DAML的私人且可共享的私人分类账层。这里,私人分类账包括授权的私人且可共享的私人分类账。分类账条目数据可以“基于需要知道”共享。由于各方不接收、也不查看或存储他们不是“参与者”的分类账条目,因此保持隐私。私人和公共分类账通过分类账条目的散列链接。授权和交易提交适用于两者,包括由一方(例如验证方)建立和共享、安全分发和加密的Merkle树上的“基于Merkle树的证明”;其中需要知道的基础可以由具有部分私人分类账视图的一方使用。
私人分类账基于请求方与所请求的私人分类账属性的关系,在需要知道的基础上向其它方提供与公共分类账相关联的属性的证书或“正确性证明”。通过私人数据属性的公共分类账条目的证书和证明方案的当前示例性实施例是基于Merkle签名方案的。证书和证明方案的替代实施例是可能的,例如基于PKI和证明携带方案。
如图30中所示,通常用附图标记3000指示具有相关的分类账条目识别和分类账条目活跃度跟踪的示例性两层DAMLTM分类账。这两个分类账条目属性的当前示例性实施例基于散列结构构建,该散列结构驻留在私人分类账层中,其中散列树/图用于将唯一和相关的加密散列值与分类账条目相关联,同时捕获基于DAMLTM(和可能的非DAMLTM)的私人分类账条目之间的非循环依赖关系,同时逐步更新Merkle树结构用于跟踪每个分类账条目的活跃度(活动状态与不活动状态)。分类账条目识别和分类账条目活跃度跟踪的替代实施例可以经由捕获散列值分配逻辑内和活跃度跟踪结构内的物理分区模型的属性来解决分类账条目数据的非均匀性质来实现可缩放性。
如图31中所示,通常用附图标记3100指示具有面向块的逻辑以及相关的分类账条目识别和以块为中心的活跃度跟踪的示例性两层DAMLTM分类账。用于跟踪分类账条目活跃度的当前示例性实施例是将分类账交易重新组合为多个交易的块,并使用每个新的交易块逐步更新私人分类账Merkle树。面向块的分类账条目活跃度跟踪的替代实施例可以经由捕获散列值分配逻辑内和面向块的活跃度跟踪结构内的物理分区模型的属性来解决分类账条目数据的非均匀性质从而实现可缩放性。
如图32中所示,通常用附图标记3200指示示例性的多方(party to party)共享私人分类账条目属性的证书或可证明属性。共享私人分类账条目属性的证书或可证明属性的当前示例性实施例基于需要知道而提供基于Merkle签名方案的特定分类账条目的证书,可选地由与分类账条目散列值相关联的部分更深的私人分类账数据支持。这里,分类账活跃度的授权基于“Merkle签名”。
转到图33,通常用附图标记3300指示分布式分类账的托管和非托管副本。这里,公共版本在左列中,而私人版本在右列中。公共和私人版本的托管副本分别位于A1方、A2方等的第一行,而非托管副本分别位于B方和C方的最后两行。也就是说,可以托管一方分类账,或者可以由相应方管理一方分类账。
现在转到图34,通常用附图标记3400指示用于同意、等待和删除命令的示例性DAMLTM分类账条目类型。存在三种主要类型的DAMLTM分类账条目。这里,同意通常意味着一方或多方同意现实世界的变化,或者在指定方之间达成真实的承诺。等待通常意味着执行等待稍后或将来对分类账的“预定义”更改的许可或承诺。删除通常意味着先前输入的活动模型已停用(诸如停用/废弃/无效)。分类账条目还可以包括由支持分类账定义的本机加密资产。这些是单独的分类账条目,可以由类型为等待的DAMLTM分类账条目引用和创建(参见图14)。在操作中,Await(等待)可以作为提议,而Choose(选择)和/或Agree(同意)可以作为接受。
如图35中所示,DAMLTM同意命令的示例性使用通常由附图标记3500指示。这里,语法和语义完全取决于各方同意“离开分类账(off ledger)”,但是协议的所有各方需要授权。更详细地说,“同意”意味着一方或多方同意现实世界的变化。语法等完全由各方同意“离开分类账”。协议的所有各方都需要对其进行授权。在一些情况下,如果授权具有合法地位且符合其它合法要求,则此类协议或有效模型可以具体实施合法强制执行的合约。例如,主合约可用于给予此类协议合法地位。否则,主合约可能会赋予协议其它特征。协议或活动模型历史实际上不能被删除,但协议可能会取代之前的协议,从而使之前的协议失效。因此,函数Delete(删除)使模型处于不活动状态,但无需删除其历史记录。“分类账逻辑”不会自动知道现实世界效果的范围。
转到图36,分类账条目是通常用附图标记3600指示的“实例化”条目。这里,左列中的代码表示立方体的非实例化模型模板,中间列表示要实例化到模板中的数据值,而右列表示包括数据值的实例化活动模型。
现在转到图37,通常用附图标记3700指示在股票模型内用于外部通知的协议的示例性DAMLTM代码,其中各方同意他们以该事件的格式制作和接收事件的通知。在替代实施例中,协议可以用在许多其它DAMLTM应用中。
如图38中所示,通常用附图标记3800指示在立方体模型中使用等待命令的示例性DAMLTM代码。这里,“Await”等待对分类账稍后/将来“预定义和预授权”更改的许可或承诺。这些是等待条目提供的逻辑“选择”。每个选择产生一个新的“立方体”或活动模型,同时消耗较旧的模型,使其成为不活动模型。在该示例中,立方体2模型的定义也是其验证规则集。
转到图39,通常用附图标记3900指示具有删除命令的DAMLTM分类账。删除命令用于将活动模型转换为不活动模型,诸如通过使任何先前活动条目停用/废弃/无效。这里,较早(较高)删除引用等待,而较晚(较低)删除引用同意。
交易束或交易块全部或毫不作为单个步骤执行,包括以下三个部分。
1.创建、定义或导出束中的交易以包含:
a.一组以下一个或多个:
i.停用先前的分类账条目;
ii.在同一交易中创建和停用的瞬态条目;和/或
iii.创建新的分类账条目。
b.对于每个条目:
i.哪些方需要对其授权(受影响的各方);
ii.哪些方查看该条目(哪一方可见该条目);和/或
iii.需要b(i)和b(ii)的推理理由/证据,以支持每一方验证检查的合理性。
2.获取受影响方的授权以获取内容。
3.使用授权将交易提交到分类账。
在第一部分中,交易和/或分类账条目可以由单方提议和/或创建,或者由多方共同提议和/或创建。交易可以作为以数据为中心的交易条目组传递,或者作为DAMLTM脚本传递,该脚本生成具有可选支持salt代码的交易条目。每个交易条目可以独立于过去而与先前的分类账条目无关,或者它可以依赖于一个或多个先前的分类账条目。如果受影响的各方以前无法看到,则提议方提供了对其提议的分类账交易进行验证的基础。例如,不依赖于过去的条目不需要参考先前的条目以进行证明。
现在转到图40和图41,通常用附图标记4000和4100指示具有以角色为中心的流的分类账算法。分类账算法被分布并且依次或可选地并行地重复以下操作步骤。
在步骤和/或节点1处,启动分类账交易。分类账交易提议是从解释现有分类账条目而创建的,或者可选地源自于其。一方创建“分类账条目更新”,指定预期的交易。可选地,多方可以一起就创建分类账条目更新达成一致。由分类账条目更新引起的对分类账的影响(也可称为“核心交易”)由该方的DAMLTM引擎***计算。
在步骤和/或节点2处,所提议的交易可以包括输出、输入、授权和证明/认证。输出可以包括一组一个或多个新的分类账条目。可能存在任意类型的分类账条目,但主要类型是分类账条目的销毁(DAMLTM删除),以及新分类账条目的创建,诸如具有选择逻辑的DAMLTM协议或DAMLTM等待。输入可以包括对现有活动分类账条目的一组零个或多个引用。对于每个交易分类账条目,授权信息可以包括哪些方需要在该交易中对其进行授权(受影响或验证方),哪些方查看该条目(哪一方可见该条目),可选地哪些方需要对导出动作授权,并支持与认证交易所需的分类账条目相关联的Merkle签名。
在步骤和/或节点3处,授权分类账交易。这里,创建授权请求并将其发送给相关方。创建请求并仅发送给需要授权的各方,并且每个请求都包含交易分类账条目的副本,不包括该方无法查看的条目。
在步骤和/或节点4处,协调分类账交易。提供授权方的数字签名。这些是每个分类账交易或每个Merkle签名生成的,该签名与分类账交易的Merkle树内或者可能与交易块的Merkle树内的分类账条目相关联。在提供授权之前,每一方都会检查交易、分类账条目和可见Merkle树散列的正确性。
在步骤和/或节点5处,存储分类账交易。参与交易的每一方都将新的分类账条目存储在其分类账的私人层中,但尚未将这些条目提交到私人存储。
在步骤和/或节点6处,提交分类账交易。具有分布式一致性算法(例如,HyperLedger)的分类账的共享公共层使用其Merkle树散列和授权来存储和提交新交易,但是没有交易条目详细信息。
在步骤和/或节点7处,分类账交易被提交到分类账存储的私人层。参与新交易的每一方都可以在分类账的公共层中提交其先前存储的交易条目详细信息。
DAMLTM分类账的当前示例性实施例具有专用方,其验证每个新的DAMLTM分类账条目交易提议(例如,交换实体)。DAMLTM分类账的当前示例性实施例具有由一方提出的新的DAMLTM分类账条目交易,并且提议方和另外的专用方同意新交易对分类账的影响以及与其它方的关系。多方同意是通过不同方以连续输入DAMLTM分类账交易的方式完成的,以便结合多方同意构建DAMLTM逻辑。DAMLTM分类账的替代实施例可以允许任何数量方同意新的DAMLTM交易对分类账的影响以及与其它方的关系。
转到图42,通常用附图标记4200指示以一方为中心的分类账算法流程。这里,功能块4210启动分类账,包括分类账的私人共享层4212和分类账的公共层4214,并且将控制传递到决策块4220。决策块4220等待一方动作,然后将控制传递到功能块4230和/或4240。功能块4230在私人共享分类账4212上启动分类账交易,并将控制传回决策块4220以等待进一步的一方动作。功能块4240授权公共分类账4214上的分类账交易,并将控制传回决策块4220以等待进一步的一方动作。
现在转到图43,通常用附图标记4300指示以分类账为中心的分类账算法。这里,功能块4310启动分类账,包括分类账的私人共享层4312和分类账的公共层4314,并将控制传递到决策块4320。决策块4320基于分类账事件将控制传递给功能块4330、4340、4350、4360和/或4370中的一个或多个,其中每个分类账事件实现其特定功能并将控制传回决策块4320以等待下一个分类账事件。这里,功能块4330授权分类账交易;功能块4340协调分类账交易;功能块4350将分类账存储在私人共享分类账4312中;功能块4360将分类账交易提交给各方分类账的公共层4314;并且/或者功能块4370将存储状态提交给各方分类账的私人层。
如图44中所示,通常用附图标记4400指示用于启动分类账交易的示例性功能。在输入块4410处,一方基于业务意图消息(BIT)启动新的DAMLTM更新表达式,并且将控制传递到功能块4420。功能块4420使用DAMLTM引擎以核心交易(CT)4412的形式计算所提议的DAMLTM更新对分类账的影响,并将控制传递到功能块4430。功能块4430启动并协调分类账上的核心交易。核心交易4412枚举预期的变化,并提供数字签署分类账条目的钩子(hook)。基本提议的交易详细信息可能包括新的分类账条目(将成为活动模型的输出),以及要删除的分类账条目(将成为不活动模型的输入)。此外,每个交易都指定哪一方必须对每个分类账条目授权,以及哪一方可以“查看”每个分类账条目(哪一方可见该分类账条目),以及以BIT的加密散列形式进行的认证,并支持Merkle证明。
DAMLTM引擎还可以包括DAMLTM模拟器,其提供观察DAMLTM建模活动并与之交互的能力。DAMLTM是一种新型的合约规范语言(CSL)。用户可以通过运行场景并观察DAMLTM模型如何在场景中使用及进展来检查开发的DAMLTM代码。例如,他们可以使用此可见性来观察他们的输入如何被吸收到基于DAMLTM的分类账中。
DAMLTM模拟器可以与DAMLTM引擎一起部署到用户可访问的主机上。DAMLTM模拟器可以作为二进制部署,其中DAMLTM建模代码作为源代码。该源代码可在模拟器中可见。因此,用户可以在DAMLTM内查看其业务流程的建模,但可能不会修改此安装。DAMLTM模拟器包括用户界面(UI)部分。可以经由HTTP、HTTPS等限制对UI的访问。
在操作中,基于DAML的分类账属性确保连续分类账操作之间的过程连续性。它们被定义为固定的,并在各方之间达成预先商定,但它们也可以逐步管理。在当前示例性实施例中,它们用“核心基元的分类账”实现,然后如同一个或多个关键方(例如,交换实体)的版本管理一样演进,从而允许分类账语义的向后兼容性。虽然考虑了可变语义,但是示例性实施例对现有的分类账条目使用固定语义,因为这些规则的新版本可能会使各方有责任将分类账条目从先前版本迁移到新版本。可以为将来的分类账条目引入新版本函数语义,只要它们维护旧分类账条目的现有语义即可。例如,可以通过版本或日期来跟踪这样的新版本函数。然而,注意,该示例性实施例可以取决于可能会受到改变的外部合法协议,因此应该通过修订日期来跟踪。
各方就分类账条目及其作为数据的表示达成一致。分类账条目定义了各方可以通过分类账的介质达成一致。这些是用词法、语法、二进制和其它表示来定义的。DAMLTM的示例性实施例可以使用同意、等待、删除、转移和其它HyperLedgerTM兼容的数字资产分类账基元。以前和将来的分类账条目解释和现实世界协议的语义。分类账条目解释语义定义了通过算法解释或评估分类账条目的确定性方法。分类账条目的语义可能会影响以前和将来的分类账条目。
在DAML中,“删除”条目使DAML中的先前分类账条目无效或停用,但保留可审计历史。对“等待选择”的执行的解释提供了删除“选择的等待条目”的“权利”,以及创建满足支持分类账条目更新的约束条件的零个或多个新的分类账条目的权利。
在协议中,分类账条目的语义可以影响将来的分类账条目。在DAML中,“等待”分类账条目授权稍后的“选择”以创建与给定属性匹配的分类账条目。将来的解释可能取决于将来的分类账输入数据。在DAML中,等待选择筛选配置可以包括模板,该模板可选地取决于要在一个或多个将来分类账条目中提供的零个或多个参数。
分类账条目的语义可以影响物理世界。在DAML中,“同意”分类账条目将多方与“现实世界”协议关联。分类账条目更新声明的语义定义了用于从分类账条目更新声明中以算法方式创建新的分类账条目的确定性方法。在DAML中,更新语句和通用后续操作具有这类语义。
授权规则可以用在算法中,该算法计算哪些方需要同意创建新的分类账条目。这些考虑了从一个或多个现有分类账条目的解释中导出的分类账条目的影响,或者是否独立于过去创建分类账条目。这考虑了通过将可信方指定为验证授权方以及在活动分类账条目的Merkle树上使用Merkle签名,可以确保“保密面”的连续性。
强制执行验证方的语义。分类账条目解释语义可以定义验证方,目的是通过确保分类账逻辑的正确性和基于Merkle树的逻辑的“连续性”来确保“无双重交易”。中心概念是可以在DAML内定义验证方。在示例性实施例中,这还意味着如果一方将成为验证方,而之前不是,并且如果该方没有足够的分类账详细信息来确保验证,则需要从另一方接收附加分类账详细信息,并且能够在制定的保密规则中显示其对分类账的新视图的一致性,或者不允许对提议的交易进行授权。
在算法中使用语义和保密规则,该算法计算哪些方可以查看新的分类账条目。这考虑了分类账条目的授权需求。此外,salt和Merkle树实现规则定义了计算分类账条目或分类账条目更新的一个或多个散列密钥的确定性方法。给定相同的分类账条目和salt值,这些规则将产生相同的散列值,并且给定相同的分类账条目更新和相同的salt值序列,产生相同的散列序列。每个分类账条目的一个散列值由更新定义。
具有加密属性的散列不允许散列用于导出关于它们从其导出的分类账条目的信息。例如,DAMLTM引擎实现方式不会受到仅用于确认有效性的散列的影响。
在交易中,分类账条目被添加为具有“全部成功”或“全部失败”原子属性的“组”。这就是DAMLTM分类账交易的概念。多方需要授权交易以便输入(提交),但并非交易中涉及的所有方都需要查看交易的所有分类账条目。这是因为交易可能包括交易参与者子组私人的分类账条目。虽然各方正在就交易达成一致,但它们在技术上授权交易中的分类账条目。因此,他们的数字签名与个人分类账条目相关联。“交易”逻辑进一步确保“全部或毫无”执行逻辑。
使用DAML,存在三种类型的分类账条目。可以说删除类型通过将其转换为不活动模型来使先前条目停用/废弃/无效。等待类型具体实施了对分类账的稍后或将来“预定义”更改的许可或承诺。同意类型要求多方各自同意一个或多个步骤、条件或结果。
等待条目提供如下“选择”:授权方“约束自身以允许对等待的选择产生后果”。同意条目要求一方或多方就现实世界的改变达成一致,尽管其结果可以被停用,但协议本身不能被删除。“分类账逻辑”不知道范围,因此如果可以“删除”这样的范围,则它将是不确定的。
默认情况下,协议的所有各方都需要对其进行授权。该协议可能取代之前的协议。协议通常是“多变的”,但不是必须的。协议的语法和解释完全取决于各方同意“离开分类账”。示例性实施例分类账记录这类离开分类账协议,但不试图解释它们。在特定情况下,如果各方的意图及其相应的授权具有合法地位,则导致活动模式的此类协议可能符合特定司法管辖范围的法律强制执行合约的要求。一般而言,分类账并不关心给定协议是否在法律上可强制执行,并且示例性实施例不区分一般协议和满足合法可强制执行合约标准的协议。在需要时,本发明构思设想主合约可用于将DAMLTM协议作为特定管辖范围内的合约的合法地位。
上面讨论的所有分类账条目、代码、声明性语句、数据结构等可以存储在非暂时性计算机可读存储介质中。本文描述的功能步骤可以通过在处理器上执行的计算机代码来完成。可以在存储的数据结构上完成上述各种数据操作,以创建由计算机处理器以不同方式处理的变换数据结构。实施例的各种函数(诸如等待函数)允许计算***以新的方式操作从而完成交易并提供现有技术中未发现的优点。各种流程图步骤可以由在计算机处理器上执行的软件模块完成。图中所示的圆柱体可以表示数据结构,诸如存储记录的数据库,其以所描述的方式***纵以允许计算***对数据进行操作并变换数据。
图45中示出了执行本文描述的一个或多个计算机实现的方法的数字***5000的示例。***5000可以利于数字资产及其演变的建模和/或记录,包括多方的相关权利。作为示例,多方可以包括第一用户5001和第二用户5003。第一用户5001与第一节点5002相关联,而第二用户5003与第二节点5004相关联。第一用户5002和第二节点5004可以与第三节点5007通信。这允许来自第一和第二节点(并且由相应用户操作)到第三节点5007的消息、通知、指示、选择、授权等。
第一节点5002、第二节点5004和第三节点5007可以是电子设备,诸如计算机、平板计算机、移动通信设备、计算机服务器、计算机终端等。这样的电子设备可以包括处理设备、数据存储和用户接口。用户接口的示例包括键盘、鼠标、监视器、触摸屏显示器等。
具有处理设备5008的第三节点5007与至少一个存储设备5009通信。在一些示例中,存储设备5009是用于仅附加分类账的数据仓库5011,诸如硬盘、磁盘、固态存储设备。在一些示例中,用于仅附加分类账的存储设备是对等分布式分类账5013的形式。对等分布式分类账5013可以与一个或多个处理设备5015相关联以接收和记录数据。在一些示例中,对等分布式分类账5013包括区块链。
***还可以包括可以是所涉及的各方之一的另一用户5017。另一个用户5017可以使用代表,诸如第二用户5003(和对应的第二节点5004)来与***5000交互。
应当理解,第一节点5002、第二节点5004、第三节点5007和数据存储5009可以通过可以包括局域网、广域网中的一个或多个的一个或多个网络彼此通信。在一些示例中,这可以包括***域网。在一些示例中,通信可以包括包括互联网的通信网络。
图46示出了操纵数据结构以对数字资产及其演变进行建模和/或记录的方法100的示例。该方法的至少一部分可以在第三节点5007处执行。这包括提供1200等待函数实例,使用至少一次使用其中定义的至少一个选择中用于关于多方中的至少一方的权利处理数字资产的一个选择来执行该等待函数实例不超过一次,所述等待函数实例在受影响的各方同意后并入以完成与至少一个选择相关联的配置函数实例。
在一些示例中,可以在接收到从与各方5001、5017相关联的节点5002、5003发送5100的同意指示后启动该步骤1200。
方法100还可以包括提供1300同意函数实例,其需要多方的至少一方同意执行。在一些示例中,可以在接收到与同意函数相关联的同意指示后启动该步骤1300,所述同意函数从与各方5001、5017相关联的节点5002、5003发送5100。
方法100还可以包括向仅附加分类账提供访问4000,以便存储所执行的函数实例的结果。反过来,至少一个存储设备5009可以将结果存储5200在仅附加分类账中。
在一些示例中,***5000可以执行解释关于多方权利的建模的数字资产及其演变的方法。这可以包括执行上述等待函数1200的等待函数实例并执行上述同意函数1300的同意函数实例。然后,这些执行的函数实例的结果可以存储在仅附加分类账中。
现在将参考图47描述由***5000执行的方法6000的另一示例。该方法6000的至少一部分可以在第三节点5007处执行。这示出了操纵数据结构以建模和/或记录数字资产及其演变的计算机实现方法,包括多方的相关权利。方法6000包括确定6100等待函数,该等待函数包括在其中定义的至少一个用于处理数字资产的选择,其中该至少一个选择具有相关的配置函数和相应的选择步骤条件。
方法6000还包括执行6200等待函数实例不超过一次,其中在接收到至少一个选择所需的各方同意的指示并从该至少一个选择接收到有效选择筛选时,该方法进一步包括执行该至少一个选择的相关的配置函数实例,其中在确定满足有效选择筛选的选择步骤条件的情况下,等待函数终止。
应当理解,步骤6100和6200中的任一个和/或两个可以从接收到至少一个选择所需的一方或多方的同意指示和/或接收到由与各方5001、5003相关联的节点5002、5004发送6250的有效选择筛选来启动。在一些示例中,同意指示可以明确地或隐含地包括选择筛选(反之亦然)。
方法6000还包括确定用于创建与数字资产相关联的同意记录的同意函数,其中该方法还包括基于接收协议所需的各方的同意来执行同意函数实例。可以通过接收从节点5002、5004发送6350的协议所需的同意指示来启动该同意函数。
方法6000还包括将执行的函数实例的结果发送6400到仅附加分类账以进行存储。反过来,存储设备5009将结果存储6450在仅附加分类账中。
方法100、6000的一些其它示例可以进一步包括确定6700删除函数,该删除函数在被执行时需要受影响方的同意以使同意函数无效或禁用未执行的等待函数。该步骤6700可以响应于接收从与各方5001、5017相关联的节点5002、5003发送6750的受影响方的同意指示以使同意函数无效或禁用未执行的等待函数。该方法进一步包括将执行的等待函数、同意函数和删除函数的结果发送6800到仅附加分类账以进行存储。反过来,至少一个存储设备5009可以将结果存储在仅附加分类账中。
上述方法和***可以应用于各种数字资产。在一些示例中,这类数字资产可以是有形资产(例如铁矿石、小麦、咖啡、黄金等)的代表或与其相关联。例如,高度可交易商品(诸如可互换商品)的现代交易被视为数字资产。作为示例,黄金可以使用(数字)代币在各方之间进行数字交易,而无需黄金本身的实际交换。在其它示例中,数字资产可以代表其它权利,诸如在可转让票据(例如钞票)中的支付权。类似于传统钞票,其可以并入诸如密封件、水印、磁条之类的防伪解决方案,数字资产还需要安全特征以维持数字资产的完整性。这可包括并入装置以防止双重支出并保留可用于审计的不可变记录。
现在将描述如何建模和演化数字资产的非限制性示例。在该示例中,数字资产将包括相关联的权利(其可以在各方之间的关系的条款和条件中)。在一些示例中,这些条款和协议中的一些可以(至少部分地)标准化或在各方之间的一组协议中。例如,在交易情况下,主协议可能会详细说明经销商与其托管人之间的关系,明确托管人何时以及如何行事以及描述每个托管人的责任。在医疗保健领域,主协议可以是医院提供者与门诊护理供应商之间的风险分担协议。主协议的操作可以部分地通过该方法(例如,数字资产的演进)来得到帮助。
在一些示例中,各方之间的关系可以被视为合约(在某种意义上,存在对可以包括条款和条件的协议的各方的提议和接受)。由于可能存在大量数字资产并且一些数字资产可能彼此相似或彼此共享相似的特性,因此包括至少部分含有与数字资产相关的信息(例如条款和条件)的模板可能是有益的。合约模板包含协议语句、所有适用的参数以及对该数据进行操作时可以做出的选择。它指定可接受的输入和所得输出。因此,它描述了实现合约时将发生的状态变化。合约模板在有关各方签字之前不生效。合约模板包含占位符而不是实际名称、金额、日期等。
图49示出了表示合约模板7001的示意图。一方(诸如所有者7003)具有某种货币。所有者7003可以做出选择:
i.将钱存入银行7007(第一选择7011);或者
ii.将其出售给第二方7005(可能是为了换取商品或服务)(第二选择7013)。
在第一选择7011中,钱进入银行7007处的银行账户,并且在第二选择7013中,钱进入第二方7005。如上所述,合约模板可以包含占位符而不是实际名称、金额、日期等,因为这些可以在各方提供其选择和/或同意的稍后阶段进行确定。这允许合约模板被多次使用(和/或适当地修改)。应当理解,合约模板可以存储在数据仓库的库中以供检索。在一些示例中,合约模板可以正式化或定义各方的至少部分权利(如果他们如下所述输入合约)。
活动合约可以是其中占位符已被实际数据替换的合约的实例。它已被接受并且已生效以及绑定到至少一个参与者上。活动合约可以是上述合约模板的修改和/或执行示例。
图50示出了活动合约7101的示例的示意图,其中所有者7003详细信息已经被特定人员Alice 7103替换。类似地,第二方7005被指定为Bob 7105。银行7007可以在合约模板中定义或者特定银行可以在活动合约7101中定义。因此在活动合约中,Alice有钱并且她有两个选择:
i.将钱存入银行7007(第一选择7011);或者
ii.出售给Bob 7105(第二选择7013)。
在上述方法中,活动合约的这种状态可以由等待函数(或者更具体地是等待函数的实例)提供。这在图51中示出,其示出了等待函数实例7201,包括Alice 7103的两个选择7011、7013。
如果Alice 7103选择第一选择7011(即“支付”选项),则代码确定接下来发生的是相关配置函数7211的执行。Alice的选择和银行同意将钱存入Alice的账户(通过当打开Alice的银行账户时的以前协议,或临时协议)可能表示各方同意Alice的选择。在该示例中,关联的配置函数是银行将钱存入Alice的账户。相应的选择步骤条件可以包括接收银行7007已经向Alice的账户存款的确认的条件。
如果Alice 7103选择第二选择7013(即,“出售”选项),则代码确定基于合约模板创建合约的新实例7223,但是这次,Bob是具有货币以及存款和出售选项的人。也就是说,第二选择7013的相关配置函数是创建合约7223的新实例。相应的选择步骤条件可以包括创建合约的新实例7223的指示。替代地或组合地,另一个相应的选择步骤条件可以包括已经做出有效选择的Bob 7105或者已经将钱存入Bob账户的银行7007。
当使用合约并且已经做出选择时,它不再可用。也就是说,用户不能再次出售相同的资产或两次存入相同的货币。这可以通过在确定满足有效选择的选择步骤条件的情况下等待函数终止来实现。
选择步骤条件可以允许并行选择步骤,同时防止双重支出。重要的是,如果不满足或不能满足或无法实现较早选择步骤的较早选择步骤条件,则这可以允许有效地筛选后续并行的选择。例如,假设Alice7103最初选择第一选择7011但是银行7007不能将钱存入Alice的账户(例如,Alice的账户已被关闭)。因此,Alice做出了选择,但是不能满足选择步骤条件。因此,这仍然是活动合约(并通过活动等待函数执行),使得Alice可以做出另一种选择,诸如第二选择7013。这可以防止Alice陷入无法实现的选择的情况。
一旦合约被“使用”,等待函数实例7201就被终止(即,当进行有效选择并且满足相应的选择步骤条件时)。因此,所使用的合约变为不活动合约,并且不再能够被执行(即,Alice不能再做出选择)。这防止了双重支出。***的特征是不删除这些项目,因此合约(或与合约关联的分类账中存储的信息)不会从仅附加分类账中删除。这保持了***的完整性,并可能有助于审查和审计。图52示出了不活动合约7101'(其对应于终止的等待函数实例),其中Alice已经做出有效选择7013并且因此不再做出任何其它选择。结果是Bob可以在新等待函数实例7223中做出选择,诸如出售给Charlie 7106或存入7007银行。
然而,在一些情况下,一个或多个定义的选择是不期望的或不能被选择的。这可能包括需要记录与未预期或可建模的事件相关的数字资产的相关信息的情况。这可能是影响数字资产的“真实世界”事件。因此,该***还包括允许记录现实世界事件的步骤。
这可以包括同意函数(或其实例)以允许与数字资产相关联的同意记录被记录在仅附加分类账上。同意函数可在接收到协议所需的各方同意后执行。例如,所需的各方可能是权利受到影响或受到威胁的那些方。
在一些示例中,同意函数可以与同意函数实例和/或选择步骤条件相关联。例如,选择的一部分可以包括执行“真实世界”或“离开分类账”动作,并且执行此动作可能需要同意函数实例来记录该动作。参考上面的示例,当银行将钱存入Alice或Bob的账户时,这可能导致在***外的该支付的存款单或收据。因此,Alice 7103和银行7007,或者Bob 7105和银行7007可能需要提供他们都同意进行存款的指示,并且该指示可以用作同意将此记录为分类账上的同意记录。在数字资产代表有形商品的其它示例中,同意函数可用于记录商品的交付,诸如双方同意交付一定数量的煤。
删除函数实例(和删除函数实例)可以用于在受影响方的同意下使记录在仅附加分类账上的先前条目禁用或无效。该函数与同意函数相结合,可以使***具有一定的灵活性来纠正错误,而不会从仅附加分类账记录中删除信息。
上述方法和***可以允许用户对特定合约或合约模板编码并执行合约以查看各种选择的结果。这可以允许用户向下操练以查看各种合约选项(即选择,这可能反过来导致另外的合约和附加选择)。这允许用户实际上沿着任何路径走下去,以任何有效的方式与建模的合约交互并查看结果。在一些示例中,这还可以允许模拟一个或多个用户的合约和交互。因此,在一些示例中,***和方法可以适于作为分析工具。
图53示出了可以与节点5002、5004、5007相关联的处理设备5008的示例。处理设备5008包括经由总线9330彼此通信的处理器9310、存储器9320和接口设备9340。存储器9320存储用于实现上述方法100、6000的指令和数据,并且处理器9310执行来自存储器9320的指令(诸如计算机程序)以实现方法。接口设备9340可以包括通信模块,其利于与通信网络的通信,并且在一些示例中,利于与用户接口和诸如数据仓库5009的***设备以及其它节点的通信。应当注意,虽然处理设备5008可以是独立的网络元件,但是处理设备5008也可以是另一网络元件的一部分。此外,由处理设备5008执行的一些功能可以分布在多个网络元件之间。例如,多个处理设备5008可以在***域网中执行该方法。
虽然已经通过示例关于非限制性示例性实施例描述了本发明构思;但基于本文公开的教示,其它替换、修改和变更对于相关领域的普通技术人员将是明显的。因此,所附权利要求的范围旨在包括对本文所述示例性实施例的所有这些替代、修改和变更,以及落入本发明的范围和精神内的其等效物。

Claims (20)

1.一种对关于多方权利建模的数字资产及其演变进行授权的计算机实现的方法,所述方法包括:
确定多方对数字资产的权利,其中所述数字资产能够通过执行第一函数实例来处置,第一函数实例至少包括其中定义的用于处置数字资产的第一选择;
由与第一授权方相关联的计算机接收提议的交易,所提议的交易被配置为更新由计算机网络的多个不同节点维护的仅附加分类账,所提议的交易包括由执行第一函数实例而产生的一个或多个所提议的分类账条目,其中所述计算机是有权接收与所提议的交易有关的信息的私有节点;
由所述计算机接收来自请求节点的授权请求,所述授权请求用于请求一个或多个数字签名以授权所述一个或多个所提议的分类账条目中的至少一个条目;
由所述计算机基于以下因素确定需要所述一个或多个数字签名:参考现有活动分类账条目的输入数据和随所提议的交易提供的授权数据;
由所述计算机接收所述第一授权方的同意,以授权所提议的交易的当前和未来分类账执行影响;
在接收到第一授权方的同意后,由所述计算机对所述一个或多个所提议的分类账条目中的所述至少一个条目进行数字签名,以提供对所述一个或多个所提议的分类账条目中的所述至少一个条目的授权;
由所述计算机向所述请求节点发送对所述一个或多个所提议的分类账条目中的所述至少一个条目的授权,以允许执行第一函数实例并将所执行的第一函数实例的结果作为已提交的交易存储在更新的仅附加分类账中;并且
至少接收所更新的仅附加分类账的一部分。
2.根据权利要求1所述的计算机实现的方法,其中所提议的交易包括每个分类账条目授权数据,其针对所述一个或多个所提议的分类账条目中的每一个条目,识别需要对相应的所提议的分类账条目进行授权的一个或多个分类账条目授权节点。
3.根据权利要求2所述的计算机实现的方法,还包括:验证所述一个或多个所提议的分类账条目中的每一个条目都被需要对所述相应的所提议的分类账条目进行授权的每个分类账条目授权节点授权。
4.根据权利要求2所述的计算机实现的方法,还包括:根据每个分类帐条目授权数据,仅对所述计算机所需的所提议的分类帐条目进行数字签名。
5.根据权利要求1所述的计算机实现的方法,其中所述仅附加分类账包括在所述计算机网络的多个节点之间共享的公共分类账,所述公共分类账存储已提交的交易的密码表示。
6.根据权利要求5所述的计算机实现的方法,其中已提交的交易的密码表示包括已提交的交易的散列。
7.根据权利要求1所述的计算机实现的方法,其中所提议的交易在被提交时创建记录到私人共享分类账中的数字资产的新的活动模型。
8.根据权利要求1所述的计算机实现的方法,还包括:
确定有权接收所提议的交易和被数字签名的分类账条目的所述多个节点的私有子集;并且
仅将所提议的交易和被数字签名的分类账条目的可读版本发送给所述私有节点。
9.根据权利要求8所述的计算机实现的方法,还包括:
验证所述多个节点的授权子集已授权所提议的交易的当前和未来分类账执行影响;
验证后执行所述第一函数实例;并且
将执行的第一函数实例的结果作为已提交的交易存储在由每个私有节点复制的私有共享分类账中。
10.一种对关于多方权利建模的数字资产及其演变进行授权的***,所述***与多方中的第一授权方相关联,所述***包括:
一个或多个处理器;和
存储指令的存储器,当所述指令由一个或多个处理器执行时,使所述一个或多个处理器:
确定多方对数字资产的权利,其中所述数字资产能够通过执行第一函数实例来处置,第一函数实例至少包括其中定义的用于处置数字资产的第一选择;
接收提议的交易,所提议的交易被配置为更新由计算机网络的多个不同节点维护的仅附加分类账,所提议的交易包括由执行第一函数实例而产生的一个或多个所提议的分类账条目,其中所述***是有权接收与所提议的交易有关的信息的私有节点;
接收来自请求节点的授权请求,所述授权请求用于请求一个或多个数字签名以授权所述一个或多个所提议的分类账条目中的至少一个条目;
基于以下因素确定需要所述一个或多个数字签名:参考现有活动分类账条目的输入数据和随所提议的交易提供的授权数据;
接收所述第一授权方的同意,以授权所提议的交易的当前和未来分类账执行影响;
在接收到第一授权方的同意后,对所述一个或多个所提议的分类账条目中的所述至少一个条目进行数字签名,以提供对所述一个或多个所提议的分类账条目中的所述至少一个条目的授权;
向所述请求节点发送对所述一个或多个所提议的分类账条目中的所述至少一个条目的授权,以允许执行第一函数实例并将所执行的第一函数实例的结果作为已提交的交易存储在更新的仅附加分类账中;并且
至少接收所更新的仅附加分类账的一部分。
11.根据权利要求10所述的***,其中所提议的交易包括每个分类账条目授权数据,其针对所述一个或多个所提议的分类账条目中的每一个条目,识别需要对相应的所提议的分类账条目进行授权的一个或多个分类账条目授权节点。
12.根据权利要求11所述的***,其中所述指令还使得所述一个或多个处理器:
验证所述一个或多个所提议的分类账条目中的每一个条目都被需要对所述相应的分类账条目进行授权的每个分类账条目授权节点授权。
13.根据权利要求11所述的***,其中所述指令还使得所述一个或多个处理器:
根据每个分类帐条目授权数据,仅对计算机所需的分类帐条目进行数字签名。
14.根据权利要求10所述的***,其中所述仅附加分类账包括在所述计算机网络的多个节点之间共享的公共分类账,所述公共分类账存储已提交的交易的密码表示。
15.根据权利要求14所述的***,其中已提交的交易的密码表示包括已提交的交易的散列。
16.根据权利要求10所述的***,其中所提议的交易在被提交时创建记录到私人共享分类账中的数字资产的新的活动模型。
17.根据权利要求10所述的***,其中所述指令还使得所述一个或多个处理器:
确定有权接收所提议的交易和被数字签名的分类账条目的所述多个节点的私有子集;并且
仅将所提议的交易和被数字签名的分类账条目的可读版本发送给所述私有节点。
18.根据权利要求17所述的***,其中所述指令还使得所述一个或多个处理器:
验证所述多个节点的授权子集已授权所提议的交易的当前和未来分类账执行影响;
验证后执行所述第一函数实例;并且
将执行的第一函数实例的结果作为已提交的交易存储在由每个私有节点复制的私有共享分类账中。
19.一种非暂时性计算机可读介质,存储用于对关于多方权利建模的数字资产及其演变进行授权的指令,所述指令在由与多方中的第一授权方相关联的一个或多个处理器执行时,使所述一个或多个处理器:
确定多方对数字资产的权利,其中所述数字资产能够通过执行第一函数实例来处置,第一函数实例至少包括其中定义的用于处置数字资产的第一选择;
接收提议的交易,所提议的交易被配置为更新由计算机网络的多个不同节点维护的仅附加分类账,所提议的交易包括由执行第一函数实例而产生的一个或多个所提议的分类账条目,其中所述一个或多个处理器是有权接收与所提议的交易有关的信息的私有节点;
接收来自请求节点的授权请求,所述授权请求用于请求一个或多个数字签名以授权所述一个或多个所提议的分类账条目中的至少一个条目;
基于以下因素确定需要所述一个或多个数字签名:参考现有活动分类账条目的输入数据和随所提议的交易提供的授权数据;
接收所述第一授权方的同意,以授权所提议的交易的当前和未来分类账执行影响;
在接收到第一授权方的同意后,对所述一个或多个所提议的分类账条目中的所述至少一个条目进行数字签名,以提供对分类账条目的授权;
向所述请求节点发送对所述一个或多个所提议的分类账条目中的所述至少一个条目的授权,以允许执行第一函数实例并将所执行的第一函数实例的结果作为已提交的交易存储在更新的仅附加分类账中;并且
至少接收所更新的仅附加分类账的一部分。
20.根据权利要求19所述的非暂时性计算机可读介质,其中所提议的交易包括每分类账条目授权数据,其针对所述一个或多个所提议的分类账条目中的每一个条目,识别需要对相应的所提议的分类账条目进行授权的一个或多个分类账条目授权节点。
CN202311567042.9A 2016-04-29 2017-04-28 数字资产建模 Pending CN117829826A (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201662329888P 2016-04-29 2016-04-29
US62/329,888 2016-04-29
US15/181,144 US10810583B2 (en) 2016-04-29 2016-06-13 Digital asset modeling
US15/181,144 2016-06-13
CN201780040778.7A CN109804396B (zh) 2016-04-29 2017-04-28 数字资产建模
PCT/IB2017/052462 WO2017187394A1 (en) 2016-04-29 2017-04-28 Digital asset modeling

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201780040778.7A Division CN109804396B (zh) 2016-04-29 2017-04-28 数字资产建模

Publications (1)

Publication Number Publication Date
CN117829826A true CN117829826A (zh) 2024-04-05

Family

ID=60158454

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202311567042.9A Pending CN117829826A (zh) 2016-04-29 2017-04-28 数字资产建模
CN201780040778.7A Active CN109804396B (zh) 2016-04-29 2017-04-28 数字资产建模

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201780040778.7A Active CN109804396B (zh) 2016-04-29 2017-04-28 数字资产建模

Country Status (9)

Country Link
US (4) US10810583B2 (zh)
EP (1) EP3449445A4 (zh)
JP (3) JP6966474B2 (zh)
KR (1) KR102431291B1 (zh)
CN (2) CN117829826A (zh)
AU (3) AU2016266092A1 (zh)
CA (1) CA3022425A1 (zh)
SG (1) SG11201809467UA (zh)
WO (2) WO2017189027A1 (zh)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170124152A1 (en) 2015-11-02 2017-05-04 LeapYear Technologies, Inc. Differentially private processing and database storage
US10810583B2 (en) * 2016-04-29 2020-10-20 Digital Asset Holdings Digital asset modeling
EP3465592A1 (en) * 2016-06-06 2019-04-10 Financial & Risk Organisation Limited Systems and methods for providing a personal distributed ledger
US11601498B2 (en) 2016-09-12 2023-03-07 Baton Systems, Inc. Reconciliation of data stored on permissioned database storage across independent computing nodes
WO2018051305A1 (en) * 2016-09-19 2018-03-22 Thomson Reuters Global Resources Unlimited Company Systems and methods for interception of smart contracts
US10355869B2 (en) * 2017-01-12 2019-07-16 International Business Machines Corporation Private blockchain transaction management and termination
CN107025559B (zh) 2017-01-26 2020-09-18 创新先进技术有限公司 一种业务处理方法及装置
CN107360206B (zh) * 2017-03-29 2020-03-27 创新先进技术有限公司 一种区块链共识方法、设备及***
US10896165B2 (en) * 2017-05-03 2021-01-19 International Business Machines Corporation Management of snapshot in blockchain
DE102017209014A1 (de) * 2017-05-30 2018-12-06 Robert Bosch Gmbh Verfahren und Vorrichtung zum Anfügen von Transaktionen an eine Blockkette
WO2018224955A1 (en) * 2017-06-07 2018-12-13 nChain Holdings Limited Computer-implemented system and method for managing large blocks over a blockchain network
US10643202B2 (en) * 2017-07-25 2020-05-05 Bank Of America Corporation Real-time processing distributed ledger system
CN111183445B (zh) 2017-08-01 2024-03-08 数字资产(瑞士)股份有限公司 用于数字资产自动承诺结算的方法和装置
US10698879B1 (en) * 2017-10-12 2020-06-30 EMC IP Holding Company LLC Data management for extended multi-cloud environment
WO2019092725A1 (en) * 2017-11-13 2019-05-16 Newglobes Ltd. Novel means and methods for implementation of secure transactions.
US20190164157A1 (en) 2017-11-28 2019-05-30 American Express Travel Related Services Company, Inc. Transaction authorization process using blockchain
US20190188698A1 (en) * 2017-12-19 2019-06-20 Tbcasoft, Inc. Computer apparatus for cross-ledger transfers between distributed ledgers
US11055432B2 (en) 2018-04-14 2021-07-06 LeapYear Technologies, Inc. Budget tracking in a differentially private database system
US11797988B2 (en) * 2018-04-19 2023-10-24 Vechain Foundation Limited Transaction processing
US11398900B2 (en) 2018-06-21 2022-07-26 Oracle International Corporation Cloud based key management
EP3815014A4 (en) * 2018-06-28 2022-03-30 Coinbase Inc. WALLET RECOVERY PROCESS
US11023214B2 (en) * 2018-07-30 2021-06-01 Roger James Poon System and method for eliminating runtime out-of-bounds errors and exceptions
US20200065802A1 (en) * 2018-08-27 2020-02-27 Digital Asset (Switzerland) GmbH Eligibility of a digital asset for a transaction
KR20200034020A (ko) 2018-09-12 2020-03-31 삼성전자주식회사 전자 장치 및 그의 제어 방법
US10922097B2 (en) * 2018-09-18 2021-02-16 International Business Machines Corporation Collaborative model execution
CN109345388B (zh) * 2018-09-20 2020-09-08 百度在线网络技术(北京)有限公司 区块链智能合约验证方法、装置及存储介质
US11250411B2 (en) * 2018-10-16 2022-02-15 American Express Travel Related Services Company, Inc. Secure mobile checkout system
US11258604B2 (en) * 2018-10-19 2022-02-22 Oracle International Corporation Rewiring cryptographic key management system service instances
WO2020082078A1 (en) 2018-10-19 2020-04-23 Digital Asset (Switzerland) GmbH Privacy preserving validation and commit architecture
US11474854B2 (en) * 2018-10-30 2022-10-18 International Business Machines Corporation Transformation of inter-organization process for execution via blockchain
US10430605B1 (en) * 2018-11-29 2019-10-01 LeapYear Technologies, Inc. Differentially private database permissions system
CN109903026A (zh) 2018-12-14 2019-06-18 阿里巴巴集团控股有限公司 基于区块链的事件处理方法及装置、电子设备
CN109903027A (zh) 2018-12-14 2019-06-18 阿里巴巴集团控股有限公司 基于区块链的事件处理方法及装置、电子设备
CN110088793B (zh) 2018-12-19 2023-10-20 创新先进技术有限公司 区块链网络中的数据隔离
US11755769B2 (en) 2019-02-01 2023-09-12 Snowflake Inc. Differentially private query budget refunding
CN109961364B (zh) * 2019-02-19 2021-04-06 众安信息技术服务有限公司 一种基于有向无环图的交易方法及***
US10642847B1 (en) 2019-05-09 2020-05-05 LeapYear Technologies, Inc. Differentially private budget tracking using Renyi divergence
KR102279731B1 (ko) 2019-06-20 2021-07-20 방소윤 디지털자산화 서비스 시스템
CN114041159A (zh) * 2019-08-01 2022-02-11 松下电器(美国)知识产权公司 控制方法、服务器及程序
US11336455B2 (en) * 2019-09-25 2022-05-17 International Business Machines Corporation Consensus protocol for blockchain DAG structure
CA3096619A1 (en) * 2019-10-18 2021-04-18 2218716 Alberta Ltd. System and method for digitally tokenizing securities and managing subscription and distribution transactions
US11328084B2 (en) 2020-02-11 2022-05-10 LeapYear Technologies, Inc. Adaptive differentially private count
JP6808109B1 (ja) * 2020-03-04 2021-01-06 三菱電機株式会社 管理装置、管理方法、及び、管理プログラム
KR20220060339A (ko) 2020-11-04 2022-05-11 방소윤 디지털자산거래 및 기금운용 장치 및 그 장치의 구동방법
US11636185B2 (en) * 2020-11-09 2023-04-25 International Business Machines Corporation AI governance using tamper proof model metrics
WO2023281963A1 (ja) 2021-07-09 2023-01-12 株式会社神戸製鋼所 欠陥監視装置、欠陥監視方法、溶接支援システム及び溶接システム

Family Cites Families (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978779A (en) 1997-11-14 1999-11-02 Merrill Lynch, Pierce, Fenner & Smith Distributed architecture utility
MXPA00008877A (es) * 1998-03-11 2002-04-24 Foliofn Inc Metodo y aparato para permitir a los inversionistas individuales o pequenos u otros, crear y administrar una cartera de valores u otros bienes u obligaciones sobre una base efectiva de costos.
US20130191278A1 (en) 1999-05-03 2013-07-25 Jpmorgan Chase Bank, N.A. Method and System for Processing Internet Payments Using the Electronic Funds Transfer Network
WO2001006392A2 (en) * 1999-07-21 2001-01-25 Global Straight Through Processing Association Ltd. Systems and methods for facilitating settlement of cross-border securities transactions
US7130807B1 (en) * 1999-11-22 2006-10-31 Accenture Llp Technology sharing during demand and supply planning in a network-based supply chain environment
US20020152086A1 (en) * 2001-02-15 2002-10-17 Smith Ned M. Method and apparatus for controlling a lifecycle of an electronic contract
US7337141B2 (en) * 2001-04-20 2008-02-26 Ioptions Hedging employee stock options
US20030023539A1 (en) * 2001-07-27 2003-01-30 Wilce Scot D. Systems and methods for facilitating agreement definition via an agreement modeling system
US8121913B2 (en) 2003-08-19 2012-02-21 Swiss Reinsurance Company Ltd. Architecture for account reconciliation
US20060036530A1 (en) * 2004-08-10 2006-02-16 Gary Shkedy Method and apparatus for facilitating micro energy derivatives transactions on a network system
US8468244B2 (en) * 2007-01-05 2013-06-18 Digital Doors, Inc. Digital information infrastructure and method for security designated data and with granular data stores
CA2724297C (en) 2010-12-14 2013-11-12 Xtreme Mobility Inc. System and method for authenticating transactions through a mobile device
US20130166455A1 (en) 2011-12-23 2013-06-27 Douglas Feigelson Creating and using digital currency
US20150379510A1 (en) * 2012-07-10 2015-12-31 Stanley Benjamin Smith Method and system to use a block chain infrastructure and Smart Contracts to monetize data transactions involving changes to data included into a data supply chain.
US9818109B2 (en) * 2012-08-16 2017-11-14 Danny Loh User generated autonomous digital token system
US10210341B2 (en) 2013-02-12 2019-02-19 Amazon Technologies, Inc. Delayed data access
US9547771B2 (en) 2013-02-12 2017-01-17 Amazon Technologies, Inc. Policy enforcement with associated data
US9953317B2 (en) 2013-03-13 2018-04-24 Shopkeep.Com, Inc. Method and system for secure key rotation
US20140279540A1 (en) 2013-03-15 2014-09-18 Fulcrum Ip Corporation Systems and methods for a private sector monetary authority
JP2014197726A (ja) 2013-03-29 2014-10-16 株式会社東芝 計測装置、情報処理装置、鍵管理装置および使用量計算システム
EP3008684A4 (en) 2013-06-14 2017-02-22 Aquilon Energy Services, Inc. Energy collaboration platform
US9443093B2 (en) 2013-06-20 2016-09-13 Amazon Technologies, Inc. Policy enforcement delays
US9594542B2 (en) * 2013-06-20 2017-03-14 Viv Labs, Inc. Dynamically evolving cognitive architecture system based on training by third-party developers
US20150120569A1 (en) 2013-10-31 2015-04-30 Bitgo, Inc. Virtual currency address security
US10140477B2 (en) 2013-12-09 2018-11-27 Thales E-Security, Inc. Obfuscating in memory encryption keys
WO2015106285A1 (en) * 2014-01-13 2015-07-16 Yago Yaron Edan Verification method
US20150209678A1 (en) 2014-01-30 2015-07-30 Leetcoin Inc. Gaming Platform System and Method for Interactive Participation by Players with Successes and Losses Transacted Using Bitcoin
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
US20150235011A1 (en) 2014-02-19 2015-08-20 Adobe Systems Incorporated Drm protected video streaming on game console with secret-less application
US20150254640A1 (en) 2014-03-05 2015-09-10 Cryptographi, Inc. Method and apparatus for digital currency paper wallet
US20150262173A1 (en) 2014-03-17 2015-09-17 Bank Of America Corporation System and Method for Wire Transfers Using Cryptocurrency
WO2015142765A1 (en) 2014-03-17 2015-09-24 Coinbase, Inc Bitcoin host computer system
WO2015140745A2 (en) 2014-03-19 2015-09-24 Ascom Deutschland Gmbh A system and method for managing workflows associated with a document exchanged between a first service provider and a second service provider
US20150287014A1 (en) 2014-04-08 2015-10-08 Ebay Inc. Managing check in applications using protocol handlers
US11270298B2 (en) 2014-04-14 2022-03-08 21, Inc. Digital currency mining circuitry
US20150324909A1 (en) * 2014-05-06 2015-11-12 C1 Bank System and method for creating ad hoc self-enforcing contracts in network-based exchanges
US20150324789A1 (en) 2014-05-06 2015-11-12 Case Wallet, Inc. Cryptocurrency Virtual Wallet System and Method
KR101591245B1 (ko) 2014-05-09 2016-02-04 주식회사 코인플러그 와이파이망을 기반으로 하는 디지털 가상화폐 결제시스템
WO2015171580A1 (en) * 2014-05-09 2015-11-12 Veritaseum, Inc. Devices, systems, and methods for facilitating low trust and zero trust value transfers
US11164164B2 (en) 2014-05-15 2021-11-02 Uphold Global Foundation System and method for converting cryptocurrency to virtual assets whose value is substantiated by a reserve of assets
US9722795B2 (en) 2014-05-20 2017-08-01 Vmware, Inc. Digitally signing JSON messages
US9818092B2 (en) * 2014-06-04 2017-11-14 Antti Pennanen System and method for executing financial transactions
US20150363770A1 (en) 2014-06-16 2015-12-17 Bank Of America Corporation Cryptocurrency Transaction Payment System
US20150363772A1 (en) 2014-06-16 2015-12-17 Bank Of America Corporation Cryptocurrency online vault storage system
US20150363769A1 (en) 2014-06-16 2015-12-17 Bank Of America Corporation Cryptocurrency Real-Time Conversion System
US10127552B2 (en) 2014-06-16 2018-11-13 Bank Of America Corporation Cryptocurrency aggregation system
US10275772B2 (en) 2014-06-16 2019-04-30 Bank Of America Corporation Cryptocurrency risk detection system
US9836790B2 (en) 2014-06-16 2017-12-05 Bank Of America Corporation Cryptocurrency transformation system
US20150363782A1 (en) 2014-06-16 2015-12-17 Bank Of America Corporation Cryptocurrency transaction validation system
US10255600B2 (en) 2014-06-16 2019-04-09 Bank Of America Corporation Cryptocurrency offline vault storage system
US20150363777A1 (en) 2014-06-16 2015-12-17 Bank Of America Corporation Cryptocurrency suspicious user alert system
US20150363778A1 (en) 2014-06-16 2015-12-17 Bank Of America Corporation Cryptocurrency electronic payment system
US10109010B2 (en) * 2014-09-15 2018-10-23 Aesthetic Integration Ltd. System and method for modeling and verifying financial trading platforms
WO2016053760A1 (en) * 2014-09-30 2016-04-07 Raistone, Inc. Systems and methods for transferring digital assets using a de-centralized exchange
US20160098730A1 (en) * 2014-10-01 2016-04-07 The Filing Cabinet, LLC System and Method for Block-Chain Verification of Goods
US20160117471A1 (en) * 2014-10-22 2016-04-28 Jan Belt Medical event lifecycle management
SG11201708000PA (en) * 2015-03-31 2017-10-30 Nasdaq Inc Systems and methods of blockchain transaction recordation
CN107683488B (zh) * 2015-04-05 2023-09-05 数字资产(瑞士)股份有限公司 数字资产中介电子结算平台
CN104915249A (zh) 2015-05-21 2015-09-16 北京比特大陆科技有限公司 矿池中挖虚拟数字币的方法和装置
KR102286959B1 (ko) * 2015-05-26 2021-08-10 티제로 아이피, 엘엘씨 암호화 기술을 사용한 트랜잭션에서 의도의 난독화
AU2016288644A1 (en) * 2015-07-02 2018-02-22 Nasdaq, Inc. Systems and methods of secure provenance for distributed transaction databases
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
US11915332B2 (en) * 2015-10-02 2024-02-27 Loyyal Holdings Incorporated System and process for tokenization and management of liability
US10269012B2 (en) * 2015-11-06 2019-04-23 Swfl, Inc. Systems and methods for secure and private communications
US20170132615A1 (en) 2015-11-11 2017-05-11 Bank Of America Corporation Block chain alias for person-to-person payments
US20170140408A1 (en) * 2015-11-16 2017-05-18 Bank Of America Corporation Transparent self-managing rewards program using blockchain and smart contracts
WO2017098519A1 (en) 2015-12-08 2017-06-15 Tallysticks Limited A system and method for automated financial transaction validation, processing and settlement using blockchain smart contracts
US10013573B2 (en) * 2015-12-16 2018-07-03 International Business Machines Corporation Personal ledger blockchain
US10142347B2 (en) * 2016-02-10 2018-11-27 Bank Of America Corporation System for centralized control of secure access to process data network
US10346406B2 (en) * 2016-03-28 2019-07-09 International Business Machines Corporation Decentralized autonomous edge compute coordinated by smart contract on a blockchain
AU2017240796A1 (en) * 2016-03-31 2018-10-25 Clause, Inc. System and method for creating and executing data-driven legal contracts
US11526938B2 (en) * 2016-03-31 2022-12-13 Refinitiv Us Organization Llc Systems and methods for providing financial data to financial instruments in a distributed ledger system
US10810583B2 (en) * 2016-04-29 2020-10-20 Digital Asset Holdings Digital asset modeling
US20170331896A1 (en) * 2016-05-13 2017-11-16 De La Rue International Limited Methods and systems for processing assets

Also Published As

Publication number Publication date
CN109804396B (zh) 2023-12-05
SG11201809467UA (en) 2018-11-29
JP7250881B2 (ja) 2023-04-03
US10810583B2 (en) 2020-10-20
US11531983B2 (en) 2022-12-20
US20200160290A1 (en) 2020-05-21
KR102431291B1 (ko) 2022-08-10
JP2023078372A (ja) 2023-06-06
CN109804396A (zh) 2019-05-24
US11983706B2 (en) 2024-05-14
AU2017257446A1 (en) 2018-11-22
JP6966474B2 (ja) 2021-11-17
US20190147415A1 (en) 2019-05-16
EP3449445A1 (en) 2019-03-06
AU2017257446B2 (en) 2022-11-24
JP2019522255A (ja) 2019-08-08
WO2017187394A1 (en) 2017-11-02
EP3449445A4 (en) 2019-11-13
US20170316391A1 (en) 2017-11-02
AU2016266092A1 (en) 2017-11-16
JP2022020685A (ja) 2022-02-01
WO2017189027A1 (en) 2017-11-02
CA3022425A1 (en) 2017-11-02
AU2023201080A1 (en) 2023-03-23
US20230281611A1 (en) 2023-09-07
KR20190006506A (ko) 2019-01-18
US10803451B2 (en) 2020-10-13

Similar Documents

Publication Publication Date Title
CN109804396B (zh) 数字资产建模
US11789933B2 (en) System and method for a hybrid contract execution environment
Lu et al. Integrated model‐driven engineering of blockchain applications for business processes and asset management
TW201933204A (zh) 產生智能合約的方法及裝置
CN110874739A (zh) 实现高完整性、高带宽、低延迟、安全处理的分布式计算和存储网络
Abdelhamid et al. Blockchain and smart contracts
CN114363327A (zh) 区块链网络中的合规机制
Wu et al. Blockchain Quick Start Guide: A beginner's guide to developing enterprise-grade decentralized applications
Haffke Technical analysis of established blockchain systems
US20230070625A1 (en) Graph-based analysis and visualization of digital tokens
WO2022178421A1 (en) Method and apparatus for decentralized management of trusted data on trustless networks
Pierro A User-Centered Perspective for the blockchain Development
Kumar et al. Addressing transparency vis-a-vis privacy in portability of health insurance through blockchain
US20230097203A1 (en) System and method for generating blockchain token support from a set of declarations
Henry Towards trustworthy, flexible, and privacy-preserving peer-to-peer business process management systems
Pandey et al. Blockchain Architecture and Policy for Transforming Healthcare Industry
US20240007479A1 (en) Method and apparatus for decentralized management of trusted data on trustless networks
Khanna et al. Decentralized Vehicle Registry on Blockchain
Qureshi et al. Auto-generation of Blockchain-Based Distributed Applications Using Ontologies
Sharma et al. Smart Contract and Distributed Ledger for Healthcare Informatics
Tanwar Smart Contracts for Building Decentralized Applications
Ziegler Blockchain Industry Implementation and Use Case Framework: A Survey
Gupta et al. Critical Review of Blockchain Technology: Opportunities and Challenges
Ahubele et al. An Improved Ethereum-Based Model for Smart Contract Implementation

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