CN115280347A - 与区块链相关联的服务的平台的计算服务 - Google Patents
与区块链相关联的服务的平台的计算服务 Download PDFInfo
- Publication number
- CN115280347A CN115280347A CN202180015986.8A CN202180015986A CN115280347A CN 115280347 A CN115280347 A CN 115280347A CN 202180015986 A CN202180015986 A CN 202180015986A CN 115280347 A CN115280347 A CN 115280347A
- Authority
- CN
- China
- Prior art keywords
- event
- transaction
- intelligent contract
- client
- event stream
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/36—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
- G06Q20/065—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/36—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
- G06Q20/367—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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/3239—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Computer Networks & Wireless Communication (AREA)
- Accounting & Taxation (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Strategic Management (AREA)
- Theoretical Computer Science (AREA)
- Finance (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Human Resources & Organizations (AREA)
- Entrepreneurship & Innovation (AREA)
- Tourism & Hospitality (AREA)
- Power Engineering (AREA)
- Quality & Reliability (AREA)
- Operations Research (AREA)
- Marketing (AREA)
- Economics (AREA)
- Data Mining & Analysis (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
在一个方面,本公开提出了用于为与客户端的区块链相关联的事务实现或提供计算服务或执行服务的方法、设备和系统。更详细地,本公开涉及一种用于基于来自所述客户端的超文本传输协议(HTTP)传输协议格式请求来执行一个或更多个智能合约的方法。所述方法包括:访问所述请求中的智能合约SC;标识使用所述区块链实现的事件流ES,其中,所述事件流ES特定于所述智能合约SC,所述事件流ES表示所述智能合约SC的状态。确定所述智能合约的当前状态ESn。然后,所述方法包括:调用所述智能合约SC的执行。然后,所述方法通过处理在所述接收的请求中标识并且通过创建区块链事务处理的所述事件流ES的新事件En来调用所述事件流ES的更新。然后,基于所述新事件En,将所述区块链上的所述智能合约的所述当前状态更新为ESn=ESn+i。然后,提供与更新后的当前状态ESn+i相关联的结果。
Description
技术领域
本公开总体涉及用于实现与一个或更多个客户端的分布式分类账(即区块链)相关联的一项或更多项服务的平台的方法和系统。具体而言,本公开涉及但不限于提供对与一个或更多个客户端的区块链相关联的多个功能和应用程序的访问,例如事件流或机器可读合约的实现方式。
背景技术
在本文中,术语“区块链”涵盖所有形式的基于计算机的电子分布式分类账。这些分类账包括基于共识的区块链和事务链技术、许可和非许可的分类账、共享分类账、公共和私有区块链,及其变型。虽然已提出并开发了其他区块链实施方案,但是区块链技术最广为人知的应用是比特币分类账。为了方便和说明的目的,在本文中可能会提及比特币。但应注意,本公开不限于与落入本公开范围内的比特币区块链以及与任何类型的数字资产或数字资产的表示相关联的替代区块链实施方案和协议一起使用。术语“客户端”、“实体”、“节点”、“用户”、“发送方”、“接收方”、“支付方”、“收受方”在本文中可指计算资源或基于处理器的资源。在本文中,术语“比特币”可包括源自或基于比特币协议的任何版本或变型。术语“数字资产”可以指任何可转让的资产,诸如加密货币、表示至少一部分财产的代币、智能合同、许可证(即软件许可证)或媒体内容的DRM合约等。应当理解的是,贯穿本文使用的术语“数字资产”表示可能与价值相关联的商品,该价值可以作为事务中的支付从一个实体转移到另一实体或提供给另一实体。
区块链是一种点对点的电子分类账,其实现为基于计算机的去中心化的分布式系统,所述系统由区块组成,而区块又由事务(transaction)组成。每个事务是一种数据结构,所述数据结构对所述区块链系统中参与者之间的数字资产控制权的转移进行编码,并且包括至少一个输入和至少一个输出。每个区块都包含先前区块的哈希值,由此区块被链接在一起,以创建自所述区块链创建以来写入其中的所有事务的永久性的不可更改的记录。事务包括嵌入到其输入和输出中的小程序,称为脚本,这些脚本指定如何以及由谁访问所述事务的输出。在比特币平台上,这些脚本是使用基于堆栈的脚本语言编写的。
为了将事务写入区块链,必须对其进行“验证”。网络节点(矿工)进行工作以确保每个事务均有效,而无效事务则被网络拒绝。安装在所述节点上的软件客户端通过执行其锁定和解锁脚本对未花费的事务输出(UTXO)执行此验证工作。如果所述锁定和解锁脚本的执行评估为TRUE,则所述事务有效,然后将所述事务写入所述区块链。因此,为了将事务写入所述区块链,所述事务必须:i)由接收所述事务的第一个节点进行验证——如果所述事务通过验证,则此节点将其中继到网络中的其他节点;ii)添加到由矿工建造的新区块中;iii)已开采,即,添加到过去事务的公共分类账中。
应当理解,矿工执行的工作的性质将取决于用于维护区块链的共识机制的类型。虽然工作量证明(PoW)与原始比特币协议相关联,但应当理解,可以使用其他共识机制,诸如股权证明(PoS)、委托股权证明(DPoS)、容量证明(PoC)、过去时间证明(PoET)、权威证明(PoA)等。不同的共识机制在节点之间的挖掘分布方式上有所不同,成功挖掘区块的几率取决于矿工的哈希能力(PoW)、矿工持有的加密货币的数量(PoS)、委托矿工持有的加密货币的数量(DPoS)、矿工存储加密难题的预定解决方案的能力(PoC)、随机分配给矿工的等待时间(PoET)等。通常,矿工会因挖掘区块而获得激励或奖励。例如,比特币区块链用新发行的加密货币(比特币)和与区块中的事务相关联的费用(事务费用)奖励矿工。对于比特币区块链,加密货币的发行量会随时间的推移而减少,其激励最终仅由事务费用组成。因此,可以理解,事务费用的处理是将数据提交到公共区块链(诸如比特币区块链)的底层机制的一部分。
如先前所提及的,给定区块中的每个事务对区块链系统参与者之间的数字资产控制权转移进行编码。数字资产不一定对应于加密货币。例如,数字资产可能与文档、图像、实体对象等的数字表示有关。向矿工支付加密货币和/或事务费用可能只是作为一种激励,通过执行必要的工作来维持区块链的有效性。与区块链相关联的加密货币可能是矿工的安全保障,区块链本身是主要与加密货币以外的数字资产相关的事务的账本,而区块链本身是主要与加密货币以外的数字资产相关的事务分类账。在某些情况下,参与者之间的加密货币转账可能由不同于和/或独立于使用区块链维护事务分类账的实体的实体来处理。
一旦作为UTXO存储在区块链中,用户就可将相关联资源的控制权转移到与另一事务中的输入相关联的另一地址。这种转移通常使用数字钱包完成,但实际上并非如此。该数字钱包可以是:设备;物理介质;程序;诸如台式机、笔记本电脑或移动终端等计算设备上的应用程序;或与诸如互联网等网络上的域相关联的远程托管服务。数字钱包存储公钥和私钥,并可用于:跟踪与用户相关联的资源、代币和资产等的所有权;接收或花费数字资产;转移可能与诸如加密货币、许可证、财产或其他类型的资源等数字资产相关的代币。
虽然区块链技术最广为人知的是用于实现加密货币,但数字企业家正在探索如何利用比特币所基于的加密安全系统和可存储在区块链上的数据来实现新的系统。如果区块链可以用于加密货币领域之外的自动任务和过程,则会非常有利。这种解决方案将能够发挥区块链的优势(例如,永久性防篡改事件记录、分布式处理等),同时其应用将更加广泛。
当前研究的一个领域是使用区块链实现“智能合约”。这些是设计成自动执行机器可读合约或协议条款的计算机程序。与以自然语言编写的传统合约不同,智能合约是机器可执行程序,它包括能够处理输入以产生结果的规则,然后使得根据这些结果执行动作。与区块链相关的另一关注领域是使用“代币”(或“彩色币”)来表示现实世界的实体,并通过区块链转移现实世界的实体。潜在的敏感或保密项目可以由无可辨别意义或价值的代币表示。因此,代币充当允许从区块链引用现实世界项目的标识符。
利用区块链的优点提供永久性防篡改事件记录时,上述示例或场景需要客户端、客户端实体、计算设备或与客户端相关联的终端,以包括或实现软件和/或硬件或处理器/模块,例如一种数字钱包,这种数字钱包用于实现用于管理数字资产以及管理由比特币中本聪愿景(BSV)区块链等使用的椭圆曲线数字签名算法(ECDSA)的加密密钥的功能。此外,客户端设备还需要能够实现区块链事务构建并能够访问BSV库。因此,客户端不仅需要包括实现此类功能的处理,还需要确保在能够利用区块链网络发送、接收和查看数据和/或数字资产之前,对此类流程实施适当的安全措施,其中所述数据和/或数字资产涉及智能合约或表示现实世界资产事务的代币。
因此,需要实现安全、低复杂度、用户友好、高效和稳健的技术,这些技术将允许任何客户端(无论在计算上是否复杂)能够以简单、快速、准确、可靠和安全的方式即时访问与所述区块链相关联的有用应用程序并与其交互,该方式在计算上和功能上不那么繁琐。更具体地,需要利用分布式分类账(区块链)技术,以及提高记录的安全性、透明度和可靠性的优点来为多个区块链相关服务或应用程序提供公共平台或接口,使任何客户端计算设备能够确保与该客户端相关联的任何数据、事件或数字资产能够被即时且安全地挖掘或轻松地写入区块链,从而提供其持久性防篡改和可审计记录,其可以根据需要创建、写入、更新、读取或查看。
现在已设计出这种改进的解决方案。本公开通过提出一种或更多种技术来解决上述技术问题,因此,与客户端相关联的数据或信息可以通过为与区块链相关联的一项或更多项服务提供应用程序编程接口(API)的方法、设备和系统来简单、安全且即时地写入区块链或从区块链获取,而无需此类客户端实现用于使用区块链的任何处理或功能,同时仍然能够利用与区块链相关联的所有优点。
发明内容
在第一方面,本公开提出了用于为与客户端的区块链相关联的事务实现或提供计算服务或软件执行服务的方法、设备和系统。更详细地,本公开涉及一种用于基于来自所述客户端的超文本传输协议(HTTP)传输协议格式请求来执行一个或更多个智能合约的方法。所述方法包括:访问所述请求中的智能合约SC;标识使用所述区块链实现的事件流ES,其中,所述事件流ES特定于所述智能合约SC,所述事件流ES表示所述智能合约SC的状态。确定所述智能合约的当前状态ESn。然后,所述方法包括:调用所述智能合约SC的执行。然后,所述方法通过处理在所述接收的请求中标识并且通过创建区块链事务处理的所述事件流ES的新事件En来调用所述事件流ES的更新。然后,基于所述新事件En,将所述区块链上的所述智能合约的所述当前状态更新为ESn=ESn+1。然后,提供与更新后的当前状态ESn+1相关联的结果。
在第二方面,本公开提出了用于访问与区块链相关联的智能合约的方法、设备和系统。更详细地,根据第二方面所述的方法包括以下步骤:获取或标识与用于执行智能合约SC的平台相关联的端点;以及向所述平台发送对与所述智能合约SC有关的一个或更多个事件En的请求,其中所述请求基于HTTP格式发送。所述方法包括:获取一个或更多个软件库和验证工具,用于处理与所述智能合约SC相关联的数据。所述方法还包括:接收基于与所述请求的事件En有关的区块链事务的输出脚本的结果,所述结果表示所述智能合约SC的更新后状态,所述结果使用HTTP格式接收。
贯穿本说明书使用的词语“包含”或变体(例如“包括”或“包含”)将被理解为意味着包含规定的元素、整数、步骤或元素、整数或步骤组,但不排除任何其他元素、整数或步骤或元素、整数或步骤组。
附图说明
现将仅通过举例的方式并参考附图对本公开的各方面和实施例进行说明,其中:
图1是示出与区块链相关联的多项服务的平台的概述的示意图;
图1a是第一方面提供的图1中所示多项服务的平台的计算服务的组件的示意图;
图1b是第一方面提供的图1a中所示计算服务的执行器平台或处理器的组件的示意图;
图2是示出用于执行由与平台服务相关联的一个或更多个处理器实现的一个或更多个智能合约的方法的流程图;
图3是示出用于创建由与平台服务相关联的一个或更多个处理器实现的智能合约的与区块链相关联的事件流的方法的流程图;
图4是示出用于更新由与平台服务相关联的一个或更多个处理器实现的智能合约的与区块链相关联的事件流的方法的流程图;
图5是示出用于终止由与平台服务相关联的一个或更多个处理器实现的智能合约的与区块链相关联的事件流的方法的流程图;
图6是示出第二方面提供的用于访问由与客户端相关联的一个或更多个处理器实现的与区块链相关联的智能合约的方法的流程图;
图7是以智能合约的执行为例示出游戏执行的示意图;
图7a是示出示例性智能合约的一种状态的状态机的示意图;
图7b是示出示例性智能合约的单个事件的状态转换的示意图;
图8是示出与示例性智能合约的事件相关联的数据和/或流程的序列图;
图9是示出可以实现本公开的各个方面和实施例的计算环境的示意图。
具体实施方式
本公开总体涉及提供与区块链相关联的多项服务的平台,该平台被提供给多个客户端,并由与应用程序编程接口(API)相关联的至少一个平台处理器实现。此类多项服务的平台的示例在nChain Holdings Limited于2020年2月19日递交的申请号为2002285.1的英国专利申请案中列出。
有利地,平台处理器API允许基于Web的交互界面,即,其可以实现为一个或更多个客户端的Web服务,使得可以使用基于Web的服务的标准互联网通信协议通过互联网进行通信。例如,可以基于诸如TCP/IP等传输层协议来发送和接收诸如HTTP、HTTPS等应用层或客户端与服务器之间的层(在这种情况下为平台服务)中的HTTP消息或请求。在本公开中,对HTTP传输协议或HTTP API的引用也包括诸如TCP/IP、UDP、HTTPS等所有标准互联网通信协议。
平台处理器可以实现为HTTP API端点、或与HTTP API端点相关联。在一些示例中,平台处理器实现为表征状态转移(REST)端点。有利地,该API可以实现为REST端点,从而还允许客户端使用标准互联网或基于网络的协议(例如,HTTP或HTTPS)进行通信。有利地,通过实现作为用于一个或更多个客户端的API提供的平台,允许与客户端相关联的一个或更多个处理器注册,或者使用平台处理器提供的Web服务向区块链写入或访问数据。与平台相关联的一个或更多个处理器可以使用基于标准的接口设计来实现所提供的一项或更多项服务,例如但不限于表征状态转移(REST),REST是用于开发Web服务和基于Web的交互的架构模式。因此,有利地,客户端可以通过HTTP或类似互联网命令与平台服务通信。更有利地,对于任何所提供的服务,客户端不需要实现BSV、比特币、区块链知识、ECDSA或其他加密密钥管理库或事务构建软件(例如数字钱包软件等)。使用一个或更多个处理资源或用户终端的客户端仅可通过某些公知的认证技术进行注册以使用平台,该认证技术包括密码保护授权或标准公钥基础设施(PKI)等,用于验证客户端身份。然后,客户端应能够通过基本HTTP或类似格式与平台服务通信。
可以通过该平台提供的与区块链相关联的服务的一些示例包括:
-数据服务,用于将数据写入/提交给区块链,以改变区块链的状态;
-数据服务,用于读取/获取反映区块链的当前状态的数据;
-与简单支付验证相关联的服务,用于与区块链相关联的事务;
-与管理与区块链相关联的一个或更多个事件流和/或机器可读合约相关联的服务;
-与管理数字钱包框架相关联的服务,用于多个客户端。
在示例中,如果可以有多个处理器或Web服务器与平台处理器相关联,则可以应用程序编程接口(API)转换器可被提供用于:以HTTP传输协议格式从客户端接收请求;将所接收的请求转换为远程过程调用(RPC)格式;将RPC请求发送到多个处理器中的给定处理器,该给定处理器被配置用于实现所接收的请求中标识的服务。在反向流路径中,可以以RPC格式接收来自给定处理器的相关联的响应,并将该响应进行转换以使用HTTP或类似传输协议发送到客户端。这是有利的,因为它允许客户端使用基于Web的平台API经由简单的HTTP来传送与区块链相关联的请求,并且无缝地提供与实现上述服务的任何节点或服务器的互操作性,但是这些节点或服务器不使用针对Web服务的互联网协议通信标准进行通信。所实现的API转换器不限于HTTPS到RPC的转换,反之亦然;或者就此而言,也不限于其他基于Web的协议到平台处理器支持的替代通信协议的转换,此类平台处理器实现上述服务、用于给定加密货币的网络或以其他方式可以设想的数字资产中的一个或更多个。该反向流路径包括:以RPC格式从相应处理器接收与对应的区块链事务相关联的响应,并且相应地使用HTTP转换相应响应以发送到客户端。因此,有利地,由平台处理器实现所提出的接口能够实现无缝通信,用于在客户端和矿工使用不同的无线数据通信协议和机制时向区块链提交事务。
在一些示例中,HTTP API可以与和平台处理器相关联的句柄或别名相关联。此类解决方案以nChain Holdings Limited的名义在申请号为16/384696的美国专利申请案和申请号为1907180.2的英国专利申请案中提出。这些申请案规定了基于别名的支付服务和相关协议,其称为bsvalias支付服务,其中别名用于寻址,而不是实体的公共地址。在这种情况下,别名将特定于平台处理器并且由基于别名的寻址服务(例如,bsvalias)提供,该寻址服务具有可从定义的或公知的位置访问的机器可读资源,该机器可读资源提供与平台处理器有关的一项或更多项功能的详细信息。此外,别名还可以与用于认证的非对称加密密钥对相关联。
在第一方面,本公开提供了一种用于执行与区块链相关联的一个或更多个智能合约的计算机实现的方法,该方法由与应用程序编程接口(API)相关联的平台处理器实现,以使客户端能够访问用于执行智能合约的服务。这涉及如上所述的平台的执行服务或计算服务,因为其涉及促进与客户端的区块链相关联的执行或操作。API可以基于HTTP API,也可以基于如上所述的平台处理器的基于别名的寻址端点。
根据第一方面所述的方法包括以下步骤:从客户端接收请求,该请求与智能合约SC有关。众所周知,智能合约或机器可读合约是一种计算机协议或软件,旨在以数字方式促进、验证或强制执行两个或更多个实体之间的合约或协议的谈判或履行。客户端可以是与上述平台服务相关联的多个客户端中的一个客户端。在一些实施例中,来自客户端的请求基于超文本传输协议(HTTP)传输协议格式。从请求中标识要执行的智能合约。例如,这可以基于请求中的标识符或关键字。该方法包括:访问与请求有关的智能合约SC。智能合约可以从平台内提供的合约存储库等存储模块访问,也可以远程定位或托管在平台处理器可以访问的服务器上。
然后,该方法包括:标识与区块链相关联的事件流(ES),事件流ES特定于智能合约SC并且表示智能合约SC的状态。用于在区块链中实现事件流的示例性机制在nChainHoldings Limited于2020年2月19日递交的申请号为2002285.1的英国专利申请案中列出。事件流提供按顺序执行的事件的确切序列的日志,并在区块链上实现。与请求中的智能合约SC有关的事件流ES可以直接从区块链中获取,也可以从复制区块链上的事件流的链下日志或数据库中获取。例如,平台处理器可以与快照实例数据库相关联,该快照实例数据库被配置为提供或指示在任何给定时间记录在区块链中的相应事件流ES中的智能合约SC的当前状态。每个智能合约将只有一个事件流与多个客户端中的给定客户端相关联。在一些实施例中,多个客户端中的每个客户端可以与可用于标识与相应客户端相关联的特定智能合约SC的账户或标识符相关联。
在一些实施例中,事件流在区块链上实现为确定有限状态自动机(DFA)等有限状态机(FSM),FSM是公知的计算术语,表示具有有限数量状态的系统,并且可以在给定时间内仅处于一种状态,具有用于从一个阶段转换到下一个阶段的转换函数或触发事件。在一些实施例中,此类事件流可用于表示技术过程的控制手段或技术。事件流ES表示区块链上的机器可读合约或智能合约,其中,有利地,智能合约SC的过去状态和当前状态的不可变记录写入区块链中。在一些实施例中,从客户端接收的请求包括触发事件,以使得能够在事件流ES中进行状态转换,例如改变智能合约SC的状态。
根据第一方面所述的方法包括以下步骤:确定智能合约SC的当前状态ESn。这是基于与其有关的事件流ES确定的。SC的当前状态表示为ESn,其中,n是从0至N的整数,每个整数n表示与智能合约SC相关联的事件的当前状态或当前数量,N表示n的最大或最终的值或状态。在一些实施例中,当前状态的确定可以基于根据与事件流ES相关联的最新结果的当前状态的指示或记录。如上所述,所述结果表示智能合约SC的状态,并且可以存储在区块链上或存储在事件流ES的一个或更多个单独的链下存储资源(例如,与特定于智能合约SC的事件流ES有关的数据的事件日志)中。
在一些实施例中,相应智能合约SC的事件流ES可以基于与事件流ES相关联的较早或上一个区块链事务的标识符来标识。在一些实施例中,如果没有标识请求中的智能合约SC的事件流,或者如果没有标识与智能合约SC相关联的事件流ES的先前状态,则这将确定当前状态为第一状态,即n=0,并且将为与智能合约相关联的客户端创建新事件流。在一些实施例中,当前状态也可以直接从区块链的事件流ES中检索或读取。这可以由如上所述的数据读取器执行,其可以是平台处理器提供的多项服务中的一项服务。
然后,本公开的方法包括:基于所接收的请求,调用智能合约SC的执行。在一些实施例中,标识或创建智能合约SC的事件流ES后,智能合约SC的软件代码或逻辑的执行将自动触发。在一些实施例中,来自客户端的请求可以由与平台相关联的一个或更多个处理器执行。在其他实施例中,智能合约代码或逻辑的执行可以基于无服务器执行技术,其中平台处理器被配置为从可供使用的多个服务器或服务器池中标识可用服务器。在这种情况下,将向可用服务器提供所需的任何API和/或驱动程序和/或可执行代码等,以执行与智能合约SC相关联的一个或更多个软件例程或编程指令。
该方法包括以下步骤:调用与智能合约SC有关的事件流ES的处理或更新,使得事件流基于所接收的请求反映智能合约SC的状态。这包括处理事件流的新事件En。新事件En基于从客户端接收的对智能合约SC的请求。这可以是与智能合约的请求相关联的事件数据。在一些实施例中,该事件是用于执行上述智能合约SC的同一事件,因为事件流与该事件有关并跟踪智能合约SC的阶段。在一些实施例中,标识每个相应项目后,上述调用智能合约SC和事件流的步骤基于事件数据协同或同时进行。在一些实施例中,执行智能合约SC逻辑后,即处理事件流ES。在一些实施例中,可以通过执行智能合约来标识事件流的基于请求的新事件En。因此,通过这种方式,可以将智能合约软件本身视为事件流ES的输入,并且在处理任何数据之前对智能合约软件进行公证或将其保存到事件流。这可能是为客户端初始化新智能合约SC的情况。
在一些实施例中,调用与智能合约有关的事件流ES的处理或更新的步骤由平台处理器执行。在其他实施例中,调用事件流ES的处理或更新的步骤进一步包括以下步骤:访问如上所述的与平台处理器相关联的数据写入器或数据服务,以通过将数据写入与区块链相关联的事件流ES来处理新事件En。
然后,该方法包括:基于现在为与区块链相关联的事件流ES处理的新事件En,获取智能合约的更新后的当前状态ESn+1。然后,该方法包括:基于智能合约SC的更新后的当前状态,存储或提供结果,其中,ESn=ESn+1。在一些实施例中,结果可以HTTP传输格式直接提供给客户端。
有利地,第一方面使得能够建立和/或维护/更新防篡改记录或日志,或用于确认与事件流相关联的事件的顺序发生的证书,其中所述事件基于针对给定智能合约的所接收的客户端输入,用于执行智能合约。因此,本公开提出了用于处理(即,创建、更新和/或终止)使用区块链实现的事件流ES的方法、设备和系统,并且自动创建与和事件流ES有关的智能合约SC相关联的事件的防篡改日志或记录。
在一些实施例中,结果可以存储在上述智能合约的快照实例数据库中,或者存储在跟踪智能合约SC的执行的事件流ES的单独链下日志中,其中每个存储的事件流特定于给定智能合约。有利地,在事件日志或链下实例快照数据库中提供结果作为快照使得智能合约SC的状态能够由任何其他实体(例如,客户端或任何相关第三方,取决于提供或允许的访问权限)轻松且独立地验证,而无需获取与区块链中的事件流相关联的事务。
在第一方面的一些实施例中,响应于从客户端接收请求,该方法包括以下步骤:向客户端提供一个或更多个软件库和/或验证工具,用于处理与智能合约SC相关联的数据。这可以软件开发套件的形式提供。有利地,软件库为客户端提供了重放事件流的功能,以便能够基于给定事件独立地获取智能合约的状态或快照。有利地,提供给客户端的验证工具使客户端能够将恢复或重播的智能合约快照与所获取的结果进行比较,即基于存储在智能合约SC的区块链上的事件流ES。在一些实施例中,验证工具还确保可以使用可能存储在链下存储日志或实例快照数据库中的智能合约的当前快照来验证重播或恢复的事件流,以验证它们是否匹配。在一些实施例中,验证工具还可以使客户端能够执行与区块链中事件流ES相关联的数据的比较,例如在需要审计的情况下。如果重新创建或恢复的事件流与所获取的结果匹配,则可以确定所获取的结果与区块链中记录的结果一致,并且在到达客户端时或之前未受到恶意方的篡改。如果重新创建的事件流与所获取的结果不匹配或与存储在反映智能合约SC的事件流ES的链下存储空间中的结果快照不匹配,这可以指示结果可能不是智能合约状态的真实反映。在一些实施例中,如果使用恢复的事件流进行比较不会实现匹配,则可能存在错误通知或消息,该错误通知或消息是在与验证工具相关联的此类比较之后针对客户端生成的。在一些情况下,还可以将这种差异告知平台处理器。
现在将说明与基于在平台处理器处接收的客户端请求中的一些事件数据来处理新事件En相关联的步骤。
在第一方面的一些实施例中,如果确定n=0,则将新事件En标识为第一事件,以创建与智能合约SC有关的相应事件流ES。在这种情况下,通过以下步骤来处理新事件En,所述步骤可以由平台处理器或用于计算服务模块的特定执行器平台来实现,也可以由数据写入器模块来实现,该数据写入器模块也可以是与平台相关联的服务中的一项服务。为智能合约SC创建第一区块链事务TX0,包括作为尘埃输出的第一未花费输出。在本公开的区块链事务上下文中,区块链事务尘埃或简单“尘埃”被理解为数字资产或加密货币的可花费事务,该数字资产或加密货币的输出具有低价值或极小价值,即该价值可以远远小于在区块链中挖掘输出的费用。尘埃输出可以是可花费的加密货币或数字资产输出的最小值。在一些实施例中,与此类尘埃事务相关联的数字资产或加密流动资金(即,处理其输出中数字资产的最小值转移的那些数字资产或加密流动资金)可以由平台处理器提供或管理。换言之,本公开中提到的区块链事务的尘埃输出与其价值低于事务的价值限制的数字资产相关联,即,尘埃输出的价值可能低于花费此类事务可能需要的挖矿费等。
如果确定0<n<N,其中,N是n的最终值或最大值,则将En标识为用于修改与智能合约SC相关联的现有事件流ES的事件。在这种情况下,通过以下步骤来处理新事件En,所述步骤可以由平台处理器或用于计算服务模块的特定执行器平台来实现,也可以由数据写入器模块来实现,该数据写入器模块也可以是与平台相关联的服务中的一项服务。创建当前区块链事务TXn,包括:第一输入,花费与事件流的上一个事务相关联的尘埃输出;第一未花费事务输出,作为当前事务的尘埃输出;以及最终未花费事务输出,与表示当前事件En的事件数据相关联。在一些实施例中,事件数据包括在数据载体元素中。这可以是事务的不可花费的OP-RETURN输出。在一些实施例中,当前区块链事务的最终未花费事务输出中的事件En的事件数据包括事件数据的哈希值。这有利地对事件流ES的事件数据内容进行保密。在一些实施例中,所述事件数据的哈希值由平台处理器应用,从而有利地允许平台服务或处理器私下保存此类事件数据。在其他实施例中,所述事件数据的哈希值在包括在平台处理器接收的请求中之前由客户端设备应用。有利地,这使客户端能够在请求中私下保存事件或与事件相关联的数据,甚至不与平台共享事件或数据。在其他实施例中,最终未花费事务输出中的事件En的事件数据包括原始事件数据,该原始事件数据在写入或提交给区块链后在区块链上公开。
如果确定n=N,则将En标识为最终事件,以终止与智能合约SC相关联的事件流ES。在这种情况下,通过以下步骤来处理新事件En,所述步骤可以由平台处理器或用于计算服务模块的特定执行器平台来实现,也可以由数据写入器模块来实现,该数据写入器模块也可以是与平台相关联的服务中的一项服务。创建最终区块链事务TXN,最终区块链事务TXN包括:第一输入,花费与事件流的上一个事务相关联的尘埃输出;第一未花费事务输出,与超过定义的尘埃输出限值(即,超过数字资产或加密货币的定义值或最小值)的数字资产相关联。有利地,在这种情况下,不存在尘埃输出表示事件流终止,因为这表示事件流中没有更多要跟踪的事件,即序列中没有更多事件。第一输出超过尘埃限值的规定是以信令方式表明链的结束。进一步地,最终区块链事务没有任何事件数据输出,即不存在数据载体元素,这有利地表明这不是改变事件流而是终止事件流的数据事件。
在上述关于事件流ES的n的三种情况中的任一种情况中,事务提交给区块链,并且与事务相关联的结果基于HTTP传输协议格式提供。在一些实施例中,与请求相关联的事件(即E0、En或EN)可以是与相应请求有关的单个事件或两个或更多事件。例如,请求可以包括每个E0、En或EN的两个或更多个子事件的数据集。在一些实施例中,结果基于事务的事件数据输出或与相应事务相关联的事件。在一些实施例中,返回的任何结果或事件数据都可以保存在事务的不可花费的OP_RETURN输出中。这是一种脚本操作码,可用于在区块链上写入任意数据,也可用于将事务输出标记为无效。再如,OP_RETURN是脚本语言操作码,用于创建事务的不可花费输出,其可以将元数据等数据存储在事务中,从而将元数据不可变地记录在区块链上。元数据可以包括希望存储在区块链中的日志或条目或文档。在一些实施例中,事件数据或结果可以被视为相应事务的不可花费输出中包括的有效载荷。此类输出可以通过终止该输出的锁定脚本的操作码(例如,上文提到的OP_RETURN)变得不可花费。然而,在其他实施例中,可以通过其他方式包括有效载荷或事件数据。如上所述,结果与智能合约SC的当前状态的快照有关。该结果存储在与平台处理器相关联的智能合约的实例状态数据库或另一链下事件日志中和/或可从所述实例状态数据库或所述另一链下事件日志访问。
在一些实施例中,与事件流ES相关联的结果包括确认以下至少一项的证书:
-事务标识符,在该事务标识符中事件En过去提交给区块链;
-默克尔包含证明,证明事务包括在区块链中的区块头中;
-区块头的副本,所述事务过去包括在区块头中。
在事务中使用尘埃输出对于维护所有事务在与正在执行的智能合约有关的事件流ES中发生时的不可变顺序记录是有利且至关重要的。这是因为,尽管通过将事务发布到区块链,所有区块链事务都将带有时间戳并按顺序保留在区块链中,但这并不保证其顺序保持不变。这是因为,事务可能在不同时间被挖掘到区块中。因此,在区块链中,只有链中的区块按时间顺序进行排序,单独的事务并非如此。然而,为了跟踪、记录和审计可能是智能合约的事件流的事件的准确顺序,有利地,使用序列中的下一个事务的第一输入必须花费的尘埃输出确保按时间顺序跟踪事务的顺序并创建防篡改记录。这是因为,一旦挖掘到区块中,从序列中的上一个事务到下一个事务的尘埃支付即可确保:根据比特币协议规则,所嵌入的数据载体元素(每个事务中的最终输出)的序列无法重新排序,并且不会发生插入或删除,这可能会改变序列,而不会立即明显地表明事件流已被破坏。在一些实施例中,比特币协议固有的双重花费保护确保加密货币(例如,尘埃)在不同地址之间移动,并且因此相关联的事件仍然按时间顺序进行排序。因此,这提高了区块链上的智能合约以及使用与智能合约相应的事件流的一系列事件发生的日志、副本或复制的安全性。如上所述,与尘埃输出相关联的资金可以由平台处理器提供或管理。在一些实施例中,平台处理器提供运营浮动等的挖掘费,以确保尘埃输出产生实际挖掘的Tx。
在一些实施例中,确定要用于与事件流ES相关联的请求的分层确定性密钥链K。此类密钥链对于给定事件流是唯一的。然后,可以针对相关联的每个事件导出来自种子密钥或父密钥或主密钥对K的加密私钥/公钥对,使得K=Kn=0至N,其中,n是从0至N的整数,每个整数n表示与智能合约SC相关联的事件的当前状态或当前数量,N表示n的最大值或最终值。有利地,这可确保针对特定事件流导出的密钥与公共主密钥或种子密钥有关,并且可以导出用于处理每个相应事件。有利地,通过这种方式,利用针对当前事件导出的密钥Kn来保护与尘埃输出相关联的锁定脚本,并且使用先前密钥对Kn-1,第一输入中的每个第一输入花费先前事务的尘埃输出。这确保输出只能与对应的密钥对一起花费,该密钥对特定于相应的先前事务。
在一些实施例中,如上文针对第三方面所讨论的,创建的每个事务可以进一步包括与数字资产相关联的其他输入。这可以基于由平台处理器管理的运营浮动来提供。在一些实施例中,这可以与由支付处理器维护或控制的数字资产或加密货币资源或基金相关联,以涵盖区块链的事务挖矿费以及一个或更多个其他操作等。事务还可以具有与数字资产相关联的一个或更多个变更输出。如上所述,最终事务具有所有变更输出。
在一些实施例中,可以基于与提交的区块链事务相关联的事务标识符来标识事件流ES。在一些实施例中,还可以基于与最近提交的区块链事务相关联的事务标识符来标识与事件流ES相关联的状态。
在一些实施例中,该方法包括:将记录副本或基于事件流ES的每个事件的结果的日志存储在链下存储资源中。该存储资源可以与平台处理器相关联,或者在不同的设备、数据库或服务中,当客户端请求时,可以从该设备、数据库或服务中请求或检索该存储资源。有利地,与事件流的结果相关联的日志的存储是单独存储的,以避免要求下载整个区块链并通过数据筛选与事件流相关联的任何查询。在审计或数据验证的情况下,可以检查实现事件流的区块链本身。然后,如前面说明的,可以使用备份或单独的副本进行对事件流的快速查询和独立验证。
在第三方面的一些实施例中,提供了一种用于访问智能合约的计算机实现的方法,该方法由多个客户端中的给定客户端的一个或更多个处理器实现,包括以下步骤:获取或标识与一个或更多个处理器相关联的应用程序编程接口(API)端点,所述一个或更多个处理器与平台相关联;以及请求与智能合约SC的执行相关联的服务。所述方法还包括:发送对与智能合约SC有关的一个或更多个事件En的请求。如上所述,使用超文本传输协议(HTTP)传输协议格式来发送请求。
然后,该方法包括:获取一个或更多个软件库和/或验证工具,用于处理与智能合约SC相关联的数据。该方法还包括:接收与区块链事务的输出脚本相关联的结果,其中所述区块链事务与所请求的事件En有关,所述结果基于HTTP传输协议格式接收。在一些实施例中,该结果包括智能合约SC的更新后状态的指示。在一些实施例中,该方法进一步包括以下步骤:使用一个或更多个软件库恢复与智能合约SC相关联的快照或状态,所述恢复可以基于接收到的与事件流ES的事件En相关联的结果或使用所述结果来执行,即类似于重放与事件En相关联的事件流。然后,该方法包括:使用一个或更多个验证工具,将恢复的快照与从事件流ES获取的结果进行比较,以独立地验证智能合约的状态。如上所述,如果在比较/验证之后存在任何差异,即基于重放或恢复的事件流与另一链下结果或所获取的结果不匹配,则可以向客户端和/或平台处理器发送错误消息或通知。
在一些实施例中,该方法包括:对与所请求的事件En相关联的事件数据应用哈希函数,使得该请求包括事件En的哈希事件数据,而不是原始数据。
本公开的各方面还包括一种计算设备,所述计算设备包括处理器和存储器,所述存储器包括可执行指令,在由所述处理器执行时,所述可执行指令使得所述设备执行如上所述的计算机实现的方法,其中所述计算设备与平台处理器有关。
本公开的各方面还包括一种计算设备,所述计算设备包括处理器和存储器,所述存储器包括可执行指令,在由所述处理器执行时,所述可执行指令使得所述设备执行如上所述的计算机实现的方法,其中所述计算设备与客户端有关。
本公开的各方面还包括一种计算机系统,所述计算机系统包括:至少一个平台处理器,通过无线通信网络与至少一个客户端通信耦合,所述至少一个平台处理器与用于处理来自所述至少一个客户端的HTTP请求的应用程序编程接口(API)端点相关联,所述至少一个平台处理器根据上述计算设备实现,所述至少一个客户端根据上述客户端计算设备实现。至少一个平台处理器通过无线通信网络与平台服务的以下组件中的一个或更多个组件通信耦合:智能合约存储库;事件流日志;实例状态数据库;以及数据写入器。
本公开的各方面还包括其上存储有可执行指令的计算机可读存储介质,在由计算机的处理器执行时,所述可执行指令使得所述计算机执行上述任何方面和实施例的方法。
现在参照附图以图示方式描述一些具体实施例,其中相似的附图标记表示相似的特征。
一种用于提供与区块链相关联的多项服务的平台服务的概述
用于提供上述多项服务的平台处理器可以是平台即服务(PaaS)和/或软件即服务(SaaS)产品,有利地,平台处理器使得能够使用BSV区块链等区块链网络来快速交付有用的现实世界业务和技术应用,例如管理软件控制的技术系统或智能合约。平台服务概述见图1,其中示出了系统的概要示意图。平台服务具有提供API 108的平台处理器100,通过API108,一个或更多个客户端可以访问服务。
如图所示,平台服务100由三个服务系列组成,旨在让用户和组织轻松、安全地利用区块链的独特属性提供的优势,而无需在客户端实际实现任何基于区块链的软件、知识或库。这些服务包括:
-数据服务102,旨在简化链作为商品数据分类账的使用;
-计算服务104,旨在提供由比特币SV等数字资产支持的通用计算框架;
-商务服务106,提供企业级能力,用于使用比特币SV等数字资产处理事务。
本公开的各方面和实施例主要涉及结合图1a和图1b进一步说明的计算服务104。
如上所述,可以在API处通过或使用HTTPS协议从客户端接收请求,因为API实现为Web服务。然后,所请求的服务由一个或更多个服务模块或处理资源102-106使用底层软件110来实现,此类区块链/平台接口软件110与区块链相关联,即实现用于创建、处理和提交与区块链相关联的事务的资源、库和/或密钥管理钱包实现方式。处理后,可以将事务提交给区块链网络105(而不是实现任何此类功能或事务库的客户端)。客户端最多可以或能够实现与加密货币或某些其他数字资产相关联的数字钱包等,但这并不是必需的,因为平台服务100也可以为客户端提供和管理数字资产。
有利地,客户端以HTTP传输协议格式发送和接收基于区块链的服务的请求,因此客户端可以利用区块链独有的所有优势和服务,而无需实现任何事务能力或区块链库。这是因为该服务是通过平台API提供的,该平台API可以是HTTP或REST API端点。例如,RESTAPI设计标准可以通过互联网使用由下面的表格示出的以下HTTP命令处理HTTP请求和通信,这是客户端所需的全部功能,即能够通过互联网发送和接收消息。平台处理器远程执行命令,或为客户端单独执行命令。
命令 | GET | POST | PUT | DELETE | PATCH |
资源 | 读取 | 创建 | 更新或创建 | 删除 | 部分更新 |
来自客户端的所接收请求可以是HTTP GET或HTTP POST或HTTP PUT或HTTP PATCH请求,该HTTP GET或HTTP PUT或HTTP PATCH请求包括特定于给定客户端的客户端标识符以及该平台提供的多项服务中所请求的给定服务的服务标识符或与其相关联,如上所述。在一些情况下,发送到客户端的结果是基于客户端标识符的HTTP POST请求。
在一些示例中,为了简化基于区块链的计算和事务的寻址,已经存在一些机制,其中使用可记忆且用户更友好的别名而不是一个或更多个实体的复杂公共地址。此类解决方案以nChain Holdings Limited的名义在申请号为16/384696的美国专利申请案和申请号为1907180.2的英国专利申请案中提出。这些文档规定了基于别名的支付服务和相关协议,其称为bsvalias支付服务,其中别名用于目标寻址,而不是客户端实体或实际上平台100等服务实体的公共地址。此类系统中的别名通常与发送/接收实体的域名相关联,并且可以是URI或电子邮件地址。因此,只要发送者或实体知道别名或者向发送者或实体提供别名,这对于bsvalias支付系统或基于别名的寻址机制就足够了。例如,可以使用保存在用于bsvalias或其他支付服务的公知URI或位置中的机器可读资源(例如,JavaScript对象表示法(JSON)文档)中提供的指令,将消息发送到客户端的别名。在本公开的一些实施例中,多个客户端中的一个或更多个客户端可以具有上述别名等别名来标识相应客户端。类似地,平台100的API也可以与用于寻址的别名等相关联。
此外,还可以基于客户端标识符以及与客户端标识符对应的记录核实客户端,该记录与平台处理器相关联。例如,此类记录可以在客户端登录或注册时创建并存储在平台处理器中或与平台处理器关联。然后,基于客户端的成功核实,该方法包括:基于服务标识符以及相应记录中包括的属性或设置,确定来自客户端的所接收请求是否有效。在一些情况下,所述属性或设置可以指示是否允许给定客户端访问全部或部分所请求的服务。例如,可以在属性或设置中提供与客户端标识符相关联的一个或更多个级别的权限。例如,可以允许给定客户端请求服务以读取区块链上关于特定事件的数据,但不允许修改、删除或终止此类事件;而另一客户端可能具有与一项或更多项服务有关的所有操作的权限。
在一些示例中,验证给定客户端的身份的步骤可以基于与客户端相关联的数字签名。包括与每个客户端相关联的私钥和公钥(或公共地址)的加密密钥对可用于验证对服务的请求确实源自给定客户端,即其中由私钥签名的数据只能使用对应的公钥进行恢复或核实。如果验证基于数字签名,则可以使用和实现标准公钥基础设施(PKI)技术。
第一方面:一种用于提供与区块链相关联的计算服务以执行智能合约的平台
图1a更详细地示出了由图1所示平台100提供的计算服务104的一些组件,以及与其交互以执行图2中所示的本公开的各方面和实施例的组件的图示。图1a中所示的组件说明如下。
数据服务1004包括数据写入器,该数据写入器可以是通过比特币SV区块链1005写入(即,公证或公开)数据的HTTP API。应当理解的是,本公开并不限于仅使用此类区块链。可以在图1a中的客户应用程序1001中提供与数据服务1004相关联的客户端工具。这可以采用客户端实体/设备中提供的软件应用程序的形式。客户应用程序1001可以用于验证经认证的数据,从而允许任何一方验证该数据自从包含在区块链中以来未被篡改。这些工具可以通过平台服务100提供,也可以基于记录的规范独立实现。
计算服务104(来自图1)示出为包括执行器平台1000。在一些实施例中,执行器平台1000在本公开中称为平台处理器,用于实现计算服务。此外,还提供了合约存储库1003。这可以包括Web图库,以允许客户浏览预先构建的智能合约软件的目录。执行器平台1000为客户提供部署和执行智能合约的平台即服务功能。合约存储库是预先构建的平台配置智能合约的集合。在多个客户表达相同(或非常相似)的智能合约需求的情况下,平台服务100可以实现此类合约,以便立即进行零开发部署。合约存储库1003将允许客户管理员访问此类交钥匙合约的选项,以及Web和API配置及参数化功能。
对于计算服务104,客户端或客户应用程序1001还包括软件开发套件(SDK),该软件开发套件具有用于智能合约的文档、库、示例和本地运行时,以允许客户开发人员在部署或调用智能合约平台之前在本地构建和测试其合约。此外,还包括验证工具,其可以是非平台工具,用于在给定智能合约代码和底层事件流数据的情况下验证智能合约实例的执行正确性。
执行器平台1000可以包括图1b中所示的以下组件,并且与图1a中所示的客户端应用程序1001和数据服务1004交互。在一些实施例中,下面图2至图5中所示的方法以及图8中示出的示例性场景可以由执行器平台1000执行。
事件网关1000a和1000b:这些网关可以是JSON-over-HTTP或bsvalias端点,用于将从客户端接收的输入数据等事件馈送到合约中。在一些实施例中,这些网关提供连接外部输入和用于认证和授权的现有或内置解决方案的桥梁。事件网关1000a和1000b可以被配置为实现HTTP API的功能,以提供可以访问或提供给客户端实体等其他实体的端点。事件网关可以由执行器平台1000的网关服务实现。
图1b中所示的合约管理API 1006允许客户或客户端上传智能合约程序并配置其执行环境。该组件可以与上述激活的网关(包括认证和授权)、事件流属性(公证或公开)以及升级智能合约软件的方法相关联或由其提供或通过其提供,该智能合约软件可以存储在图1a中讨论的合约存储库1003中,和/或可以与下面讨论的合约存储库1007相关联。在一些实施例中,该组件可以负责提供要发送到客户端实体的任何库或软件工具和功能,以便处理与智能合约或与智能合约相关联的事件流相关联的数据。
合约存储库1007:该组件可以被配置为提供用于存储和管理API,以便实现智能合约。该组件可以被配置为存储合约可执行文件,以便执行器平台100定位并恢复从客户端接收的给定输入的适当句柄或智能合约标识符,从而执行智能合约代码。在一些实施例中,这可以实现为合约存储库1003本身或在其内部实现,也可以分开实现以调用存储在合约存储库1003中的智能合约软件。
执行器1008:这是用于图1中的平台100和图1a中的执行器平台1000的计算服务104的平台处理器的处理或计算组件。执行器1008被配置为在通过网关1000a和/或1000b接收到客户端输入时为智能合约提供无服务器执行平台。因此,执行器1008可以被配置为通过调用由客户端标识的适当合约来对通过网关接收的事件作出响应。该执行器进一步被配置为调用与和区块链中的合约相关联的事件流相关联的处理。例如,这可以包括管理智能合约状态持久性和/或连接到下游事件流API。该执行器进一步被配置为从存储库中恢复智能合约和/或从状态数据库中检索实例状态,以便确定智能合约的当前状态。该执行器可以进一步被配置为将输入事件记录到事件流中,并执行智能合约,使得其处理在区块链上的事件流中公证的输入事件数据。该执行器进一步提供要保存回实例状态数据库(见下文)的智能合约的更新后的快照状态,以便链下存储智能合约的状态。
实例状态数据库1009:该组件是一个存储检查点或数据库,反映在完成来自客户端的事件处理后的合约状态。该组件可以被配置为在由执行器1008在给定智能合约程序的调用之间进行处理之后存储合约的快照状态(通过对所有输入应用合约规则而导出的状态)。
智能合约的实现方式–概述
众所周知,合约是一种具有法律约束力的协议,其承认并规范协议各方的权利和义务。协议通常涉及商品、服务、金钱或其中任何一项的承诺的交换。智能合约是一种计算机协议,旨在以数字方式促进、验证或强制执行合约的谈判或履行。
例如,Ethereum是一种常见的平台,其能够运行可以视为智能合约的内容。比特币脚本本身可以视为一种智能合约,因为它是在事务实体之间强制执行一组规则的软件,可以说使比特币成为一种智能合约平台。R3的Corda可以视为智能合约平台以及各种其他类似区块链的平台。
智能合约可以大致分为以下几类:
链上合约:比特币脚本等链上智能合约将合约规则与合约实例的参数打包在一起。执行审计跟踪是在链上公布的,并且(假设底层区块链提供了此类保证)是永久性且不可变的。链上合约的示例包括原子交换、R难题(R-Puzzle)、累加器树和支付渠道。在所有情况下,仍然需要配套的链下基础设施,但合约的核心通过比特币脚本表达,并由矿工执行,作为事务核实的一部分。
链下合约:链下智能合约作为传统的计算机软件存在,由所有缔约方都接受的实体运营。本公开中未进一步考虑未使用区块链的链下合约。
混合合约:混合合约是链上和链上方法的混合。混合智能合约通过利用区块链增强来链下合约的功能。通常,这些附加功能包括数据完整性的可证明性和安全性。几个新兴的混合智能合约平台正处于开发阶段或已经推出。示例包括Tokenized和GearSV。
在区块链的基础上构建智能合约平台具有优点,其中底层区块链提供了某些以其他方式难以或不可能实现的保证。在本公开中,术语“区块链”可以用于描述公共的工作量证明区块链,尤其是比特币SV。但是,应当理解的是,本公开的各方面和实施例并不限于此。
任何形式的智能合约都能通过自动化实现价值。正确实现的智能合约将按照编入其中的规则自主执行。通过自动化可以实现价值,因为可以在普通且廉价的硬件上自动处理大量合约实例,而错误率低于非自动化替代流程。通过将智能合约平台绑定到区块链,区块链的内在属性可以由在该平台上运行的所有智能合约继承。这些优点主要是通过链的不可变性、单一记录保存实体的不存在性以及区块链的底层安全原语(例如,BSV)来获得。
数据可以提交到基于区块链的商品分类账。在提交时,捕获数据和相关元数据。该元数据始终包括时间戳,因为区块链充当一种形式的见证或时间戳权限。此外,该元数据还可以包括数字签名和相关公钥形式的身份信息,其中,该公钥可以根据现有法律优先级识别为用于标识的代理。这可以包括公钥已由某个可信第三方或认证机构认证的情况,或者服务提供商已代表经认证的客户端应用签名的情况。
提交到基于区块链的商品分类账后,即可证明数据自承诺以来没有发生任何变化。这可以用于证明未发生记录篡改。由于不依赖单一的记录保存机构,因此无法控制任何此类机构,以便改变记录或对区块链作为见证者的来源产生怀疑。至少考虑到通过自动化降低成本并减少错误,通过明显篡改记录保存增强审计和问责,以及能够利用比特币的基本安全原语,实现与区块链相关联的智能合约是有利的。
有限状态机(FSM)是一种数学计算模型。FSM是一种抽象机器,可以在任何给定时间恰好处于有限数量状态中的一种状态。FSM可以响应于一些输入而从一种状态转变到另一种状态,从一种状态到另一种状态的转变称为转换。FSM可以通过其一系列状态、初始状态以及触发每次转换的输入定义。状态机复制假设所复制的过程是确定有限状态自动机(DFA),并且可以进行每个事件的原子广播。这基于分布式共识,与事务复制模型有许多共同之处。DFA是一种一次只处于一种状态的软件模型。FSM可以在状态之间转换的唯一方式是响应外部事件。复制建立在该属性的基础上,通过意识到如果FSM是确定性的并且事件的输入流在机器之间准确地复制,则处理这些事件的每台机器将以完全相同的状态结束。
在本公开的各方面和实施例中,将智能合约实现为FSM,更具体地,实现为DFA,即在给定时间恰好处于一种状态的软件模型。
根据本公开执行智能合约
图2涉及本公开的第一方面提供的用于执行与区块链相关联的智能合约的方法。图2中的方法由与用于该服务的应用程序编程接口(API)相关联的平台处理器实现。平台处理器可以是图1a中所示的执行器平台1000或执行器平台1000内的执行器1008,用于实现图1中所示的平台服务100的计算服务104。
步骤202描述了从客户端接收请求,该请求与智能合约(SC)有关。该请求采用超文本传输协议(HTTP)传输协议格式,并通过API或bsvalias网关提供,如上面图1b中所示。
步骤204描述了访问与该请求有关的智能合约S。首先从请求中标识要执行的智能合约。例如,这可以基于请求中的标识符或关键字。该方法包括:访问与请求有关的智能合约SC。智能合约可以分别从执行器平台1000内提供的图1a中所示的合约存储库1003或图1b中所示的存储库1007等存储模块访问,或者所述存储模块可以从平台处理器可访问的位置远程定位或托管。
步骤206描述了标识与区块链相关联的事件流(ES),事件流ES特定于智能合约SC并且表示智能合约SC的状态。与请求中的智能合约SC有关的事件流ES可以直接从区块链中获取,也可以从复制区块链上的事件流ES的链下日志或数据库中获取,以提供合约的当前快照,例如实例快照数据库1009。可以基于与在步骤202中在请求中标识的智能合约SC有关的事务标识符来标识事件流ES。
事件流ES表示区块链上的机器可读合约或智能合约,并且基于如上所述的用于跟踪智能合约SC的状态的有限状态机(FSM)实现。
步骤208确定了智能合约SC的当前状态ESn。这是基于与其有关的事件流ES确定的。智能合约SC的当前状态表示为ESn,其中,n是从0至N的整数,每个整数n表示与智能合约SC相关联的事件的当前状态或当前数量,N表示n的最大或最终的值或状态。在一些实施例中,当前状态的确定可以基于根据与表示智能合约SC的状态的事件流ES相关联的最新结果的当前状态的指示或记录。这可以直接从与区块链上的事件流ES相关联的事务中确定,也可以在用于事件流ES的一个或更多个单独的链下存储资源(例如,与特定于智能合约SC的事件流ES有关的数据的事件日志)中确定。
步骤210描述了基于所接收的请求,调用智能合约SC的执行。在一些实施例中,标识或创建智能合约SC的事件流ES后,智能合约SC的软件代码的执行将自动触发。图3至图5中更详细地示出了事件流ES的创建或上传过程。在一些实施例中,来自客户端的请求可以由与平台处理器相关联的一个或更多个处理器执行。在其他实施例中,智能合约代码的执行可以基于无服务器执行技术。
无服务器计算是一种云计算执行模型,其中云提供商运行服务器,并动态管理机器资源的分配。无服务器计算可以简化将代码部署到生产环境中的过程。扩展、容量规划和维护操作可能对开发人员或操作人员隐藏。AWS Lambda、Azure Functions和CloudflareWorker等常见的无服务器平台不仅提供了运行时环境,在该环境中开发人员或操作人员不必担心底层计算环境(虚拟机、操作系统配置等),还提供了用于生产可在主机基础设施上运行的无服务器软件的SDK。
现有的无服务器执行提供程序围绕其运行时提供丰富的配置,以及可执行文件的现成入口点。常见的入口点包括端点、消息队列和文件存储。这些入口点或网关符合将输入馈送到逻辑处理器(软件)的智能合约模型。在采用入口点网关和商品运行时环境的这种模型时,平台可以将所有来源的所有输入记录到事件流中(例如,通过数据服务1004)。具有认证和授权功能的网关进一步提供输入门控或授权。最后,在实例化新的智能合约实例时,在写入任何事件之前捕获事件流中的合约软件的标识符或哈希值能够进一步确认事件流的任何副本正在运行与智能合约相关联的正确FSM。
步骤212描述了调用与智能合约SC有关的事件流ES的处理或更新。在一些实施例中,调用与智能合约有关的事件流ES的处理或更新的步骤由(即,执行器平台1001内的)平台处理器执行。在其他实施例中,调用事件流ES的处理或更新的步骤进一步包括以下步骤:访问如上所述的与平台处理器相关联的数据写入器(请参见图1a中的数据服务1004),以通过将数据写入与区块链相关联的事件流ES来处理新事件En。
在一些实施例中,事件流涉及一种状态机,并且表示在区块链中实现为有限状态自动机(DFA)等有限状态机的机器可读合约或智能合约。FSM可以通过其一系列状态、初始状态以及每个转换的条件来定义。在比特币SV区块链中,UTXO集合可以视为状态机,其中,给定输出的花费状态是事务(机器)的先前输入的函数。因此,通过重放所有事务,可以使用区块链确定地建立任何输出的当前花费状态和UTXO集合的当前内容。因此,在图2的实施例中,该请求可以视为改变智能合约SC的当前状态的请求。
步骤214描述了基于所接收的请求,处理新事件En。根据请求是调用或更新新合约或现有合约,还是终止与客户端相关联的现有合约,图3至图5中更详细地说明了该处理。
步骤216描述了在新事件En的处理之后或基于该处理,获取智能合约的更新后的当前状态ESn。指示或基于更新后状态的结果可以存储在与平台处理器相关联的链下事件日志中。在一些实施例中,该结果基于发送到客户端的智能合约的更新后的当前状态ESn+1。该结果可以与对应区块链事务的输出脚本相关联。在一些情况下,该结果包括能够重新创建或恢复事件流的快照的功能,以便能够根据事件流的存储版本或可信版本验证所恢复的版本。
在一些实施例中,还可以向客户端提供具有软件库和验证工具的SDK,以使客户端能够独立地处理和验证结果。这些工具能够恢复和重放事件流ES。然后,可以根据平台内(例如,实例快照数据库中)保存的当前快照状态,验证智能合约SC的状态。如果事件流重放的快照状态与链外存储状态或所获取的结果匹配,则可以根据智能合约逻辑来验证操作和执行是否正确。
有利地,在图2中所示的本公开中,在将智能合约建模为具有事件流中所有输入事件的复制的DFA的情况下,智能合约的所有各方能够验证合约软件的操作,即智能合约软件已根据规则集准确地执行逻辑,并且如果满足某些预定义的要求,则在不信任合约的任何其他各方的情况下未发生篡改。
在给定相同输入的情况下,非确定性合约(例如,依赖于事件流之外的数据源或事件的合约)可能不会产生相同的状态。非确定性的常见来源包括时间函数和(伪)随机数生成器。这些非确定性的来源易于处理,从而变成确定性来源。时间可以从外部获取,并作为输入数据馈送到合约中,就像任何其他输入数据一样。通过这种方式,时间由事件流ES捕获,并且可以复制。
可以使用多种不同的技术构建(伪)随机数。通常,这些技术首先从可用熵开始播种随机数生成器,然后从该点开始的随机数遵循确定性模式。更复杂的技术可以防止所复制日志的持有者猜测序列中生成的下一个随机数,但仍允许事后验证正确的操作。其他非确定性来源可以采用类似的方式处理。如果智能合约需要外部数据,例如关于资产、商品、工具或类似主题的当前价格知识,则该价格可以作为输入进行馈送。
有利地,在图2中所示的本公开中,在事件流中捕获所有输入并复制到各方,以验证合约操作的正确性。根据合约的确定性行为,显然必须复制输入,以便合约的任何(授权)方可以独立地验证操作的正确性。
有利地,在图2中所示的本公开中,输入可以进行门控或保护。如果合约输出是输入流的函数,则必须对这些输入进行门控,以便只有授权方(即,能够访问智能合约的有效客户端)才能提供输入。未能强制执行对产生输入事件的操作进行授权的智能合约可能会产生根据软件有效但根据协议条款无效的输出状态。
有利地,在图2中所示的本公开中,事件日志被准确地传输到所有副本,而不会发生任何篡改。如果在复制目标之间修改、篡改、更改、省略或以其他方式破坏日志,则每个目标可以获得合约当前状态的不同视图。使用事件流跟踪智能合约的连续执行状态可以防止任何可能的篡改。
有利地,在图2中所示的本公开中,事件流的复制目标运行相同的FSM或智能合约实例。否则,如果日志被正确复制,但在复制目标之间日志中的软件处理条目不一致,则每个目标仍然可以获得合约当前状态的不同视图。对可以独立验证的智能合约的当前快照使用事件流可防止错误复制。
一些基于区块链的现有智能合约平台试图将智能合约软件复制到网络中的各种节点。网络中的每个节点处理每个合约的每个输入。然而,这将平台的扩展潜力限制为网络中最弱节点的较高吞吐量。使用如上图2中说明的事件流来跟踪区块链中智能合约的执行使得能够链下存储智能合约的快照,并且通过允许验证方重新创建事件流来实现独立验证,然后可以将事件流与所存储的当前快照进行比较。
因此,如图2中所示的本公开的机制为智能合约的执行提供了以下功能和优点:
-所有输入记录到事件流中。
-链下和安全输入事件存储允许事件流对所有输入进行公证,而不会在链上显示这些输入。
-可以将智能合约软件本身视为输入,并且在处理任何数据之前对流进行公证。
-合约通过无服务器执行平台运行。
-合约响应通过网关(HTTP API和BSV别名)接收的事件。合约执行环境提供(有限)状态管理,允许在事件执行之间保持合约实例的快照状态。执行器可以恢复先前的快照状态,并与事件输入一起提供,并且在智能合约执行后保持更新后的快照状态。
-平台处理器提供了用于处理非确定性行为(时间和随机数)的常见来源的机制。
-SDK可以提供给客户端,并且可以包括:
ο用于构建智能合约的库,这些库管理进入/退出状态快照的接收和生成以及输入解析;
ο开发模式运行时,用于测试开发人员设备合约;
ο丰富的文档,包括快速入门、演练、API参考材料、开发运行时操作人员说明;
ο一种验证工具,能够从平台恢复事件流和合约实例并重放事件流以验证合约的给定状态。
图3、图4和图5讨论了用于实现表示图2中所讨论的智能合约SC的事件流ES的方法,以在区块链上建立智能合约截至当前状态的不可变顺序日志或记录。在一些实施例中,除了存储在区块链上之外,日志还可以在链下提供或存储。由于事件流ES基于与事务相关联的输入和输出,所述技术提出了一种方法,用于在区块链上建立与表示智能合约SC的事件流ES相关联的所有事务的不可变时序日志。事件流ES可以使用FSM、DFA等表示智能合约。
图3-5可以由与应用程序编程接口(API)相关联的平台处理器实现。在一些实施例中,图3-5中的步骤可以由执行器组件执行,该执行器组件与图1中所示的计算服务模块104相关联,并在图1b中更详细地说明。在其他实施例中,图3-5中的步骤可以由数据写入器执行,该数据写入器与图1中所示的数据服务模块102相关联,并在图1b中更详细地说明。在这种情况下,数据写入器将由平台处理器的执行器触发或调用。
图3涉及创建新事件流。
步骤302描述了从客户端接收请求,该请求与给定客户端的新智能合约相关联。图3涉及使用区块链为SC创建新事件流ES。如上所述,来自客户端的请求采用超文本传输协议(HTTP)传输协议格式。
在步骤304中,由于该请求是对与客户端相关联的新智能合约的请求,因此将为该智能合约SC初始化或创建新事件流ES。该步骤涉及标识请求中现在与智能合约相关联的新事件。
步骤306描述了获取与第一事件E0相关联的数据,这是针对在步骤302中基于所接收请求中的事件数据在区块链中为智能合约SC创建的新事件流ES。
步骤308描述了为新事件流ES创建第一区块链事务TX0,其中,n=0。在一些实施例中,在创建第一事务之前,该步骤还包括:确定将与要创建的新事件流ES一起使用的分层确定性(HD)密钥链K。在一些实施例中,这可以通过与平台处理器相关联的HD钱包实现方式来实现,以基于已知BIP21协议来生成密钥(从种子密钥或父密钥或主密钥开始)的分层树状结构。HD密钥创建和传输协议显著简化了密钥生成,并允许创建可独立操作的子账户,使每个父账户能够监测或控制其子账户,即使该子账户泄露也是如此。HD协议使用单个根种子密钥来创建子密钥、孙密钥和其他降级密钥的层次结构,这些密钥具有单独的确定性生成的整数值。每个子密钥还从其父密钥获取确定性生成的种子,称为链码。通过这种方式,一个链码泄露不一定会影响整个层次结构的整数序列。除上述优点之外,在本方面中,该密钥生成由平台处理器执行,因此从客户端移除了该密钥生成的资源和功能。因此,客户端不需要实现HD钱包。在步骤308中,密钥链K包括从所选择的父密钥对导出的一系列私钥/公钥对,使得:
K=Kn=0至N,
其中,n是从0至N的整数,每个整数n表示与事件流ES相关联的事件的当前长度或当前数量,N表示n的最大值或最终值。
在一些实施例中,执行认证和授权检查,此类检查可以是API访问令牌存在性测试或会话检查或密码/数字签名测试,或用于核实客户端或由客户端作出的服务请求的某些其他适当方法。
步骤310描述了在步骤308中创建的区块链事务TX0的输出至少包括作为尘埃输出的第一未花费事务输出(UTXO0_dust)。在一些实施例中,所述尘埃输出与锁定脚本相关联,该锁定脚本使用在步骤308中从HD密钥链K导出的一系列密钥中的第一导出密钥对K0来保护。尘埃输出与低于事务的定义限制或具有定义的最小值的(数字资产)值相关联,即低于花费此类事务所需的挖矿费。此外,还可以存在其他输入,该输入与和运营浮动相关联的数字资产或是维护或和支付处理器相关联的数字资产或加密货币基金相关联。事务中的其他输出也可以是数字资产变更输出。
因此,在一些实施例中,根据本实施例的用于区块链事务以创建事件流ES的创建模板是第一输入不能是尘埃输入的模板。这是为了有利地指示事件流中没有上一个条目,并且这是第一个条目。创建模板还指定模板的第一输出是尘埃输出,并且没有数据载体或数据输出(因此没有OP_RETURN),因为除创建新事件流ES之外,不存在与创建状态相关联的事件数据。
步骤312描述了将事务TX0提交给区块链。在该步骤中,事务可以提交给比特币SV网络等区块链,以便由与平台处理器相关联的矿工节点或BSV节点软件包含在后续区块中。在一些实施例中,挖掘后,事务标识符TX0可以用于唯一地标识新创建的事件流ES或与客户端相关联的新智能合约。
步骤314描述了将与在TX0中创建的事件流ES相关联的结果发送到客户端,该结果以HTTP传输协议格式提供。与事件流有关的结果可以从区块链中单独复制或保存。
图4涉及通过将新事件附加到与区块链上的智能合约相关联的现有事件流ES来更新智能合约的状态。
步骤402描述了从客户端接收请求,该请求是修改或更新在请求中标识的现有智能合约SC。来自客户端的请求采用超文本传输协议(HTTP)传输协议格式。
在步骤404中,确定智能合约的当前状态ESn。这是基于特定于智能合约SC的事件流ES确定的。事件流ES在区块链中存储或实现。在一些情况下,智能合约SC的当前状态也可以根据链下存储的事件流ES的快照或日志来确定。例如,该日志或快照数据库可以在图1中所示的平台100内提供,或者可以存储在平台处理器可从中检索或访问的位置。
如结合图3的步骤308所讨论的,在一些实施例中,区块链上的事件流ES与密钥链或密钥种子对K相关联,使得K=Kn=0至N,其中,n是从0至N的整数,每个整数n表示与事件流ES相关联的事件的当前长度或当前数量,N表示n的最大值或最终值。在一些实施例中,执行认证和授权检查,此类检查可以是API访问令牌存在性测试或会话检查或密码/数字签名测试,或用于核实客户端或由客户端作出的服务请求的某些其他适当方法。
步骤406描述了基于在步骤402中接收的请求中的智能合约SC的事件数据来标识或获取与事件En相关联的数据,该事件是当前添加或附加到区块链上的事件流ES的事件。
步骤408包括标识与智能合约SC的事件流ES相关联的上一个区块链事务TXn-1。标识后,则确定与所标识的上一个事务TXn-1相关联的密钥对Kn-1。如上所述,这可以基于在步骤404中描述的同一种子密钥对K。
步骤410描述了为事件流ES创建当前区块链事务TXn,其中,0<n<N。在一些实施例中,从种子密钥对K中导出当前事件En的密钥对Kn。为要附加到事件流ES的当前事件En创建的区块链事务TXn包括:
-第一输入,花费与上一个事务TXn-1相关联的尘埃输出,所述花费使用上一个事务的所获取密钥对Kn-1来授权;
-第一未花费事务输出(UTXOn_dust),作为当前事务TXn的尘埃输出,所述尘埃输出与使用导出的密钥对来保护的锁定脚本相关联;以及
-最终未花费事务输出(UTXOn_data),与表示当前事件En的事件数据相关联。
如上所述,尘埃输出与低于事务的定义限制或具有定义的最小值的(数字资产)值相关联。此外,还可以存在基于运营浮动的与数字资产相关联的其他输入。该浮动可以由平台处理器控制。事务中的其他输出也可以是数字资产变更输出。
因此,在一些实施例中,根据本实施例的用于区块链事务以更新事件流的更新模板是第一输入必须是尘埃输入且第一输出必须是尘埃输出的模板。这是为了有利地指示事件流中存在先前条目。这也指示相关事件En(目前或当前事件数据)在智能合约SC的先前的事务或状态之后发生。因此,事务有利地遵循尘埃链并在下一状态之前进行。更新模板包括数据载体,即携带事件数据或与当前事件或状态相关联的结果的数据输出。这可以是不可花费的OP_RETURN输出。
在事务中使用尘埃输出对于维护所有事务在区块链中的事件流ES中发生时的不可变顺序记录的区块链是有利的。这是因为,尽管通过将事务发布到区块链,所有区块链事务都将带有时间戳并按顺序保留在区块链中,但这并不保证其顺序保持不变。这是因为,事务可能在不同时间被挖掘到区块中。使用正在花费的上一个事务的尘埃输出作为当前事务的第一输入,其中花费基于与每个事务的锁定/解锁脚本有关的相应唯一密钥,可确保按时间顺序生成事件流的清晰防篡改顺序记录。
步骤412描述了将事务TXn提交给区块链。在该步骤中,事务可以提交给比特币SV网络等区块链,以便由与平台处理器相关联的矿工节点或BSV节点软件包含在后续区块中。在一些实施例中,挖掘后,事务标识符可以用于唯一地标识事件流ES或智能合约SC。
步骤414描述了将与在TXn中创建的事件流ES相关联的结果发送到客户端,该结果以HTTP传输协议格式提供。该结果可以单独复制或保存到区块链。在一些实施例中,这可以基于最终未花费事务输出(UTXOn_data)中的事件数据。在一些实施例中,(UTXOn_data)中事件En的事件数据包括所述事件数据的哈希值,从而确保所述事件数据由平台处理器保密。哈希值可以由平台处理器应用,也可以由客户端应用,即,在生成与在步骤中在支付处理器处接收的针对事件En的请求有关的事件数据之前,在一些实施例中应用。在由客户端应用的情况下,请求中的事件数据即使在到达平台处理器之前也是保密的。在其他实施例中,事件数据可以作为可从区块链公开获得的原始数据来提供。
图5涉及终止区块链上的现有智能合约和对应事件流。
步骤502描述了从客户端接收请求,该请求与终止现有智能合约SC有关,其中现有智能合约SC与使用区块链实现的事件流ES相关联。来自客户端的请求采用超文本传输协议(HTTP)传输协议格式。
如结合图3的步骤308所讨论的,区块链上的事件流ES与密钥链K相关联,使得K=Kn=0至N,其中,n是从0至N的整数,每个整数n表示与事件流ES相关联的事件的当前长度或当前数量,N表示n的最大值或最终值。在一些实施例中,执行认证和授权检查,此类检查可以是API访问令牌存在性测试或会话检查或密码/数字签名测试,或用于核实客户端或作出的请求的某些其他适当方法。
在步骤504中,确定智能合约的当前状态ESn。这是基于特定于智能合约SC的事件流ES确定的。事件流ES在区块链中存储或实现。在一些情况下,智能合约SC的当前状态也可以根据链下存储的事件流ES的快照或日志来确定。例如,该日志或快照数据库可以在图1中所示的平台100内提供,或者可以存储在平台处理器可从中检索或访问的位置。
步骤506描述了基于在步骤502中接收的请求中的智能合约SC的事件数据来标识或获取与最终事件EN相关联的数据,该事件是当前添加或附加到区块链上的事件流ES的事件。
步骤508包括标识与智能合约SC的事件流ES相关联的上一个区块链事务TXN-1。标识后,则确定与所标识的上一个事务TXN-1相关联的密钥对KN-1。如上所述,这基于在步骤504中描述的同一种子密钥对K。
步骤510描述了为新事件流ES创建当前区块链事务TXN,其中,n=N。在一些实施例中,从种子密钥对K中导出当前事件EN的密钥对KN。为当前事件EN创建以终止智能合约的事件流ES的区块链事务TXN包括:
-第一输入,花费与上一个事务TXN-1相关联的尘埃输出,所述花费使用在步骤508中获取的上一个事务的所获取密钥对KN-1来授权;
-第一未花费事务输出(UTXON),与超过定义的尘埃输出限制的数字资产相关联。
对于描述智能合约SC的终止状态的事件流中的最终事件,所有事务输出都返回变更。不存在尘埃输出,因为没有要求或不需要跟踪终止事件流的下一阶段。因此,当n=N时,平台处理器不提供尘埃输出,换言之,输出可以视为与事件流ES相关联的变更输出(数字资产支付)。这有利地标记或指示正在跟踪的事件流的最终终止状态。在一些实施例中,当事件或合约处于终止状态时,输出也不存在事件数据或数据载体元素,即不存在OP_RETURN。因此,不会生成单独的尘埃和数据载体输出以终止事件流ES,并且第一输出高于尘埃限制以通过信令方式表明这是区块链上事件流的结束,并且不存在也指示终止的数据输出。可能存在与运营浮动的数字资产相关联的其他输入或变更输出。在一些实施例中,与结合图3和图4列出的尘埃相关联的数字资产的价值可以简单地添加到一个或更多个其他输出中。
因此,在一些实施例中,根据本实施例的用于终止事件流的区块链事务的关闭模板是第一输入必须是尘埃输入的模板,与图6中的更新模板的第一输入一样。第一输出不能是尘埃输出,并且这有利地充当分类账结束标记,并进一步区分关闭模板和更新模板。与图3中的创建模板一样,关闭模板中不存在数据载体,例如OP_RETURN。
步骤512描述了将事务TXN提交给区块链。在该步骤中,事务可以提交给比特币SV网络等区块链,以便由与平台处理器相关联的矿工节点或BSV节点软件包含在后续区块中。
步骤514描述了将与在TXN中创建的事件流ES相关联的结果发送到客户端,该结果以HTTP传输协议格式提供。
图6涉及本公开的第二方面,并示出一种用于访问平台(例如,图1中所示的平台100)以执行与区块链相关联的智能合约的计算机实现的方法。图6中的方法由与客户端相关联的一个或更多个处理器实现。
在步骤602中,标识与平台相关联的应用程序编程接口(API)端点。如前所述,这可以是与主机平台处理器相关联的API,并且可以有一个或更多个其他处理器负责实现服务,每个处理器具有服务端点或目的地址。
在步骤604中,客户端准备对图1中的计算服务104等服务的请求。该请求与和智能合约SC有关的一个或更多个事件En相关联。在一些实施例中,该步骤包括:对与所请求的事件En相关联的事件数据应用哈希函数,使得该请求包括事件En的哈希事件数据,而不是原始数据,从而提高保密性和安全性。
在一些实施例中,客户端在请求中包括客户端别名或标识符和/或服务标识符,使得请求可以路由到正确的端点,并且使得平台处理器可以检查请求客户端的有效性以及客户端使用所请求服务的权限。
在步骤606中,使用超文本传输协议(HTTP)或类似传输协议格式发送在步骤604准备的请求,因为平台处理器实现为HTTP或REST API。这可以由用于上述平台处理器的网关服务来管理和/或提供。
步骤608包括:获取一个或更多个软件库和验证工具,用于处理与智能合约SC相关联的数据。软件库可以包括能够基于向与智能合约SC相关联的事件流ES提供的事件En的重放或恢复来恢复智能合约SC的状态快照或实例的功能。这可以软件开发套件(SDK)的形式提供。有利地,随SDK一起提供给客户端的验证工具使客户端能够将恢复或重播的智能合约快照与事件流ES的相应存储或获取的实例(描述智能合约SC的最终状态)进行比较。这是为了检查客户端接收到的任何结果未篡改,或者未向客户端提供不正确的结果。
在步骤610中,然后接收基于智能合约的当前状态的结果。在一些实施例中,所接收的结果与请求中的事件En相关联的区块链事务的输出脚本有关。该结果以HTTP传输协议格式提供给客户端。在一些实施例中,该结果可以标识当前反映在事件流中的智能合约的状态。与最新事件En相关联的事件流ES可以单独保存在区块链的日志或事件流存储器中,该区块链在平台处理器中或与平台处理器相关联。
有利地,在步骤608中,软件库向客户端提供基于与智能合约SC的真实或实际输入事件En有关的测试输入事件TEn来重放或恢复智能合约SC的快照或实例的功能。测试输入TEn可以基于由平台处理的最新事件En,也可以是由客户端提供的较早输入事件En。然后,可以使用基于该测试事件TEn的该恢复快照来独立地验证智能合约的状态ESn,如事件流ES中记录的对应真实事件En的状态或之后的状态。
在一些情况下,客户端可能已经具有与智能合约SC的软件相关联的可执行代码,使得客户端可以基于测试事件TEn来运行软件。在其他实施例中,客户端能够通过平台处理器直接调用与智能合约SC相关联的可执行代码,而无需使用平台的任何网关服务,即可以通过远程过程调用(RPC)进行直接调用。通过这种方式,客户端可以通过使用对应的测试输入TEn来调用代码,以便基于给定的输入事件En来测试或重放给定实例。因此,软件库允许出于验证或审计目的重建与智能合约SC的事件流ES相关联的真实事件En。
验证工具可以包括提供给客户端的一个或更多个软件模块或代码,其有利地使客户端能够将重新创建或恢复的快照与针对给定事件En记录在(区块链)事务上的智能合约的状态进行比较,即与和智能合约SC有关的事件流ES相关联。应当注意的是,虽然被验证的真实事件En不一定是事件流ES中的最新事件,但这通常是最常见的情况。应当注意的是,可以基于已经发生并且已经提供给或写入事件流ES的任何其他较早真实事件En来提供测试输入TEn。
在一些实施例中,验证工具还确保能够通过与可以存储在链下(例如,在事件日志或实例快照数据库中)的智能合约SC的当前快照或状态进行比较来验证重播或恢复的事件流,以验证它们是否匹配。在一些实施例中,根据需要,验证工具还可以使客户端能够执行与区块链中事件流ES直接关联的数据的比较。
因此,在一些实施例中,验证工具结合与客户端相关联的SDK(客户端库)启用或执行以下步骤:
(a)获取与智能合约SC相关联的可执行代码。在一些示例中,这可以基于客户端已经可用的二进制代码,或者客户端可以直接通过执行器平台调用智能合约软件的最新版本。
(b)直接(即在不使用平台的网关或HTTPS API的情况下)提供测试输入事件TEn,该测试输入事件基于针对智能合约已经发生的实际或真实事件En,并且因此已经写入区块链中。因此,测试事件TEn基于智能合约中与日志(即,事件流ES)相关联的区块链上已处理和存储的真实事件En或与其相同。因此,验证工具具有直接调用合约软件以重放事件流ES的功能,以基于使用对应的测试输入事件TEn来验证的事件En来恢复智能合约SC的快照或状态。
(c)由于验证工具被配置为通常基于测试事件而不是已经发生的真实事件来调用合约软件,因此执行器平台100不会写入数据或调用数据写入操作或服务来将此类测试事件TEn记录到与智能合约SC相关联的事件流ES中。可以将验证工具调用的测试事件的记录记录在与客户端或平台相关联的其他链下日志或存储库中。然而,没有测试事件写入区块链中,并且事件流仅包括已经发生的智能合约SC的真实事件序列En的明确指示。
有利地,通过根据本公开第一方面和第二方面所述的方法实现的用于跟踪智能合约执行的与区块链相关联的事件流及其顺序日志的实现方式提供了与事件的不可变性和智能合约的事件排序的不可变性有关的保证。写入后,以下列任何方式篡改智能合约的任何尝试都将被阻止或变得明显:
-更改事件的内容
-对事件进行重新排序
-在流开始处或中间位置插入事件
-从流中的任意位置删除事件
换言之,本公开使得与跟踪智能合约的事件流有关的以下属性是可证明的:
-事件流中的各个条目自写入后未曾修改
-先前连续条目之间未插入任何条目
-未删除任何条目
-未对任何条目进行重新排序
这些属性和优点具有许多实际应用,从审计/合规性日志到状态机复制,再到更高效、防篡改、准确的方法,用于从所有客户端的区块链中读取数据并将数据写入区块链。
实现方式示例
捕获事件流ES等事件日志将对其有用的事件流的一个示例是使用区块链来跟踪和记录被配置用于Noughts O和Crosses X(或通常称为井字游戏)等游戏的智能合约SC的应用程序。
下面将介绍不同类型的智能合约的构建,以说明如何通过平台服务实现特定的结果。这里的智能合约SC用于井字游戏。
井字游戏是一款纸笔游戏,由X和O两个玩家轮流标记3×3网格中的空格。在水平、垂直或对角线上成功放置三个标记的玩家即为获胜者。为了赢得游戏,玩家必须将他们的三个标记放置在水平、垂直或对角线上。
图7中示出了该游戏的图示。
游戏供O和X两个玩家参与。可以对玩家进行命名并由其轮流占用单元格,直到构建出获胜的单元格,或者不会构建出此类单元格。
每个单元格由坐标对A1、B1、……、B3、C3标记。单个单元格可能被占用,也可能为空。占用的单元格必须由一个玩家占用。整个游戏可以建模为一对嵌套状态机。图7a中示出了单个单元格的状态机。
图7b中示出了外部状态机,其中包含上述单元格状态机(A1至C3)的9个实例。
游戏的一次玩法可以由描述玩家的一些初始元数据来表示,然后是按顺序占用的单元格的日志。这为任何副本或实体或节点重放游戏提供了足够的数据,同时为独立验证游戏的结果提供了足够的数据。
本文档前面的示例性游戏由其事件流表示,可以如下所示:
上述日志中的每个条目将是该游戏(SC)的事件流ES中的事件En。
爱丽丝和鲍勃可以使用移动应用程序等定制客户端软件来与平台服务网关交互。网关将与图1b中所示的底层执行器平台交互,该平台将安排构建新事件流ES,然后负责将事件馈送到适当的智能合约程序SC中。
在每个回合之后,封装为一系列链上事务的事件流ES可以复制或发送回爱丽丝和鲍勃两者,以便允许本地或客户端侧应用程序显示游戏的当前状态ESn。或者,在游戏的快照状态无关紧要的情况下,游戏的当前状态也可以在更新时呈现给两个玩家。
图8中的序列流程图详细说明了玩家在游戏中移动的过程。
在该示例中,不存在显示为发送给其他玩家的明确消息,但可能存在这种情况。为了简化上图,省略了内部消息传递。智能合约事件流实现了合约事件的观察者复制功能。因此,任何授权实体都可以订阅给定事件流ES的通知以接收更新。类似地,可以添加快照通知,但上文未示出。
下文使用井字游戏的相同示例,提供了使用事件流ES为智能合约SC提供顺序事件的不可变防篡改日志的示例。
例如,假设n=4(对于智能合约,即游戏,从0至4的5种状态)的游戏处于以下状态:
A | B | C | |
1 | O | O | |
2 | O | ||
3 | X | X |
随着游戏的进行,通过根据第三方面所述的方法,基于区块链事务的输出的日志可以记录如下:
0 | B2 |
1 | A3 |
2 | A1 |
3 | C3 |
4 | C1 |
假设有人试图篡改或更改为该序列维护的日志的副本,例如,当n=4时,为结果插入不同的条目,使得日志不会反映游戏的实际状态,如下所示:
0 | B2 |
1 | A3 |
2 | A1 |
3 | C3 |
4 | B3 |
4 | C1 |
这将立即从对区块链上事件流的自动生成的顺序日志的检查或审计中标识出来,因为对于n=3的事务,花费尘埃输出的事务的输入将不会被核实。应当理解的是,如果此类游戏涉及金融事务(例如,付费游戏),玩家可能希望检查其游戏日志的真实性,以及给定游戏提供商是否遵循其宣传的赔率或难度。通过如上所述将给定游戏的各个游戏条目(或其哈希值)存储在事件流ES中,可以确保玩家能够独立于游戏提供商维护的任何内部系统来检查和验证游戏中的事件。
此外,应当进一步理解的是,给定事件流中的每个事件不需要对应于在游戏会话内发生的各个事件。可以为需要所述事件的准确防篡改顺序日志的任何事件日志定义事件流。例如,给定事件流中的事件示例可以包括本地或远程(优选地,链下)执行的给定智能合约的输入和/或输出;在给定在线消息收发对话的两个或更多个参与者之间发送的消息;由传感器或物联网(IoT)设备执行的用于测量天气、车辆、货物、人员等的位置等的物理测量;药物/药物跟踪–包括生产地、运输、分配器位置、处方剂量、受体信息等;金融事务,例如贷记和/或借记账户的金额(无论账户是使用加密货币还是法定货币贷记)、汇率变化、交易执行、购买商品或股票的请求等。最终,生成和使用事件流的上下文将由使用平台处理器生成此类事件流的一方随意使用。
现在转到图9,提供了可用于实施本公开的至少一个实施例的计算设备2600的说明性简化框图。在各种实施例中,所述计算设备2600可用于实现以上示出和说明的任何系统。例如,计算设备2600可被配置为用作图中DBMS的一个或更多个组件,或者计算设备2600可被配置为与给定用户相关联的客户端实体,该客户端实体针对由图9的DBMS管理的数据库提出数据库请求。因此,计算设备2600可以是便携式计算设备、个人计算机或任何电子计算设备。如图9所示,计算设备2600可包括具有一级或更多级高速缓存的一个或更多个处理器以及存储器控制器(统称为2602),所述存储器控制器可被配置为与包括主存储器2608和永久存储器2610的存储子系统2606通信。如图所示,主存储器2608可以包括动态随机存取存储器(DRAM)2618和只读存储器(ROM)2620。存储子系统2606和高速缓存存储器2602可用于存储信息,诸如与本公开中所描述的事务和区块相关联的细节。处理器2602可用于提供本公开中描述的任何实施例的步骤或功能。
处理器2602还可以与一个或更多个用户界面输入设备2612、一个或更多个用户界面输出设备2614和网络接口子系统2616通信。
总线子系统2604可以提供用于使计算设备2600的各个组件和子系统能够按预期彼此通信的机制。虽然总线子系统2604示意性地示出为单个总线,但是总线子系统的替代实施例可以利用多个总线。
网络接口子系统2616可以向其他计算设备和网络提供接口。网络接口子系统2616可以作为从计算设备2600接收数据和向其他系统传输数据的接口。例如,网络接口子系统2616可以使数据技术人员能够将设备连接到网络,使得数据技术人员能够在远程位置(例如数据中心)向设备发送数据并从设备接收数据。
用户界面输入设备2612可以包括一个或更多个用户输入设备,例如键盘;指点设备,如集成鼠标、轨迹球、触摸板或图形平板电脑;扫描仪;条形码扫描仪;包含在显示器中的触摸屏;音频输入设备,如语音识别系统、麦克风;以及其他类型的输入设备。一般而言,术语“输入设备”的使用旨在包括用于向计算设备2600输入信息的所有可能类型的设备和机制。
一个或更多个用户界面输出设备2614可包括显示子系统、打印机、或非视觉显示器(例如音频输出设备等)。显示子系统可以是阴极射线管(CRT)、平板设备(例如液晶显示器(LCD))、发光二极管(LED)显示器或投影或其他显示设备。通常,术语“输出设备”的使用旨在包括用于从计算设备2600输出信息的所有可能类型的设备和机制。例如,可以使用一个或更多个用户界面输出设备2614来呈现用户界面,以便于用户与执行所描述的过程和其中变型的应用程序进行交互(当这种交互可能合适时)。
存储子系统2606可以提供计算机可读存储介质,该计算机可读存储介质用于存储可提供本公开的至少一个实施例的功能的基本编程和数据构造。当由一个或更多个处理器执行时,应用程序(程序、代码模块、指令)可以提供本公开的一个或更多个实施例的功能,并且可以存储在存储子系统2606中。这些应用程序模块或指令可以由一个或更多个处理器2602执行。存储子系统2606可另外提供用于存储根据本公开所使用的数据的存储库。例如,主存储器2608和高速缓存存储器2602可以为程序和数据提供易失性存储。永久存储器2610可以提供用于程序和数据的永久(非易失性)存储,且可包括闪存、一个或更多个固态驱动器、一个或更多个磁硬盘驱动器、一个或更多个具有关联可移动介质的软盘驱动器、一个或更多个具有关联可移动介质的光驱动器(例如CD-ROM或DVD或蓝光)以及其他类似的存储介质。这样的程序和数据可以包括用于执行如在本公开中描述的一个或更多个实施例的步骤的程序以及与在本公开中描述的事务和区块相关联的数据。
计算设备2600可以是各种类型的,包括便携式计算机设备、平板电脑、工作站或下文描述的任何其他设备。另外,计算设备2600可包括可通过一个或更多个端口(例如,USB、耳机插孔、闪电连接器等)连接至计算设备2600的另一设备。可以连接到计算设备2600的设备可以包括被配置为接受光纤连接器的多个端口。因此,该设备可以被配置为将光信号转换成电信号,所述电信号可经由将该设备连接至计算设备2600进行处理的端口传输。由于计算机和网络的不断变化的性质,图9所示的计算设备2600的描述仅用作说明设备的优选实施例的特定示例。与图9中描述的系统相比,具有更多或更少组件的许多其他配置是可能的。
列举的示例性实施例
本公开在此基于与上述方面相关的以下条款进行讨论,本文中提供这些条款作为示例性实施例,以便更好地解释、描述和理解要求保护的方面和实施例。
1.一种用于执行与区块链相关联的一个或更多个智能合约的计算机实现的方法,所述方法由与应用程序编程接口(API)相关联的平台处理器实现,所述方法包括以下步骤:
从客户端接收请求,所述请求与智能合约(SC)相关,来自所述客户端的所述请求基于超文本传输协议(HTTP)传输协议格式;
访问与所述请求有关的所述智能合约SC;
标识与所述区块链相关联的事件流(ES),所述事件流ES特定于所述智能合约SC,所述事件流表示所述智能合约SC的状态;
基于所述标识的事件流ES,确定所述智能合约SC的当前状态ESn,其中,n是从0至N的整数,每个整数n表示与所述智能合约SC相关联的事件的当前状态或当前数量,N表示n的最大或最终的值或状态;
基于所述接收的请求,调用所述智能合约SC的执行;
通过以下步骤调用与所述智能合约SC有关的所述事件流ES的更新,所述步骤包括:
基于所述接收的请求,处理新事件En;和
基于所述新事件En,获取所述智能合约的更新后的当前状态ESn+1;以及
基于所述智能合约的所述更新后的当前状态ESn+1,存储或提供结果。
2.根据条款1所述的方法,其中,所述调用所述智能合约SC的执行的步骤进一步包括:
从所述接收的请求中获取特定于所述智能合约SC的标识符;
基于所述标识符,从合约存储库访问所述给定的智能合约SC;
将所述智能合约SC提供给一个或更多个处理器,用于执行与所述智能合约相关联的一个或更多个软件例程或编程指令。
3.根据条款1或2所述的方法,其中,基于确定n=0,所述处理新事件En的步骤包括以下步骤:
将所述接收的请求中的所述智能合约SC的所述新事件En标识为第一事件,以创建与所述智能合约SC有关的相应事件流ES;
通过创建包括作为尘埃输出的第一未花费输出UTXO0_dust的区块链事务TX0,处理所述接收的事件En;
将所述事务TX0提交给所述区块链;以及
提供与所述更新后的事件流ES相关联的结果。
4.根据条款3所述的方法,其中,所述区块链事务TX0包括所述智能合约SC的标识符或哈希值。
5.根据条款1或2所述的方法,其中,基于确定0<n<N,所述处理新事件En的步骤包括以下步骤:
将所述接收的请求中的所述智能合约SC的所述新事件En标识为当前事件,以修改与所述智能合约SC有关的所述相应事件流ES;
通过创建区块链事务TXn,处理所述接收的事件En,所述区块链事务TXn包括:
第一输入,花费与所述事件流ES的上一个事务相关联的尘埃输出;
第一未花费事务输出UTXOn_dust,作为尘埃输出;和
最终未花费事务输出UTXOn_data,与表示当前事件En的事件数据相关联;将所述事务TXn提交给所述区块链;以及
提供与所述更新后的事件流ES相关联的结果。
6.根据条款5所述的方法,其中,所述当前区块链事务TXn的所述最终未花费事务输出(UTXOn_data)中的所述事件En的所述事件数据包括所述事件数据的哈希值。
7.根据条款6所述的方法,其中,所述事件数据的所述哈希值由所述平台处理器应用。
8.根据条款6所述的方法,其中,所述事件数据的所述哈希值在包括在所述平台处理器接收的所述请求中之前由所述客户端应用。
9.根据条款6所述的方法,其中,所述当前区块链事务TXn的所述最终未花费事务输出(UTXOn_data)中的所述事件En的所述事件数据包括原始事件数据。
10.根据条款1或2所述的方法,其中,基于确定n=N,所述处理新事件En的步骤包括以下步骤:
将所述接收的请求中的所述智能合约SC的所述新事件En标识为最终事件,以终止所述事件流ES;
通过创建区块链事务TXN,处理所述接收的事件En,所述区块链事务TXN包括:
第一输入,花费与所述事件流ES的上一个事务相关联的尘埃输出;和
最终未花费输出(UTXON),与超过定义的尘埃输出值的数字资产相关联;
将所述创建的事务TXN提交给所述区块链;以及
提供与TXN中的所述事件流ES相关联的结果。
11.根据条款3至10中任一项所述的方法,其中,所述提交步骤包括:将所述创建的事务包括在与要挖掘的区块链相关联的后续区块中。
12.根据条款3至11中任一项所述的方法,包括以下步骤:基于与所述提交的区块链事务相关联的事务标识符,标识所述事件流ES。
13.根据条款3至12中任一项所述的方法,包括以下步骤:基于与所述提交的区块链事务相关联的事务标识符,标识所述智能合约SC的状态。
14.根据条款3至13中任一项所述的方法,其中,所述创建的区块链事务进一步包括:
与数字资产相关联的输入;以及
与所述数字资产相关联的一个或更多个变更输出。
15.根据条款14所述的方法,其中,所述数字资产与运营浮动相关联。
16.根据条款3至15中任一项所述的方法,包括以下步骤:确定将与和所述智能合约SC有关的所述事件流ES一起使用的分层确定性密钥链K,其中,所述密钥链K包括从所选择的父密钥对导出的一系列私钥/公钥对,使得K=Kn=0至N。
17.根据前述任一项条款所述的方法,其中,所述调用与所述智能合约有关的所述事件流ES的更新的步骤进一步包括以下步骤:访问与所述平台处理器相关联的数据写入器,以处理所述新事件En。
18.根据前述任一项条款所述的方法,其中,所述结果是所述智能合约SC的快照状态,所述结果存储在与所述平台处理器相关联的实例状态数据库中和/或可从所述实例状态数据库访问。
19.根据前述任一项条款所述的方法,其中,所述结果基于所述HTTP传输协议格式提供给所述客户端。
20.根据前述任一项条款所述的方法,其中,与所述智能合约SC的所述当前状态ESn相关联的所述结果包括确认以下至少一项的证书:
-事务标识符,在所述事务标识符中所述事件En过去提交给所述区块链;
-默克尔包含证明,证明所述事务包括在所述区块链中的区块头中;
-所述区块头的副本,所述事务过去包括在所述区块头中。
21.根据前述任一项条款所述的方法,其中,所述智能合约SC实现为有限状态机(FSM)。
22.根据前述任一条款所述的方法,包括:将基于所述智能合约SC的所述事件流ES的每个事件的结果的副本或记录或日志存储在链下存储资源中。
23.根据前述任一项条款所述的方法,其中,所述API是超文本传输协议(HTTP)应用程序编程接口(API)端点,并且其中所述端点使用安全HTTP(HTTPS)提供给所述客户端。
24.根据条款1至23中任一项所述的方法,其中所述API是与所述平台处理器相关联的别名,所述别名特定于所述平台处理器并且由基于别名的寻址服务提供,所述寻址服务具有可从定义的或公知的位置访问的机器可读资源,所述机器可读资源包括与所述平台处理器有关的一项或更多项功能,并且其中所述别名与用于认证的非对称加密密钥对相关联。
25.根据前述任一项条款所述的方法,其中,响应于从所述客户端接收所述请求,所述方法包括以下步骤:提供一个或更多个软件库和/或验证工具,用于处理与所述智能合约SC相关联的数据,所述智能合约SC与所述请求相关联。
26.一种用于访问与区块链相关联的智能合约的计算机实现的方法,所述方法由多个客户端中的给定客户端的一个或更多个处理器实现,所述方法包括以下步骤:
获取或标识与一个或更多个处理器相关联的应用程序编程接口(API)端点,所述一个或更多个处理器与平台相关联,用于执行智能合约SC;
向所述平台发送对与所述智能合约SC有关的一个或更多个事件En的请求,其中所述请求基于超文本传输协议(HTTP)传输协议格式发送;
获取一个或更多个软件库和验证工具,用于处理与所述智能合约SC相关联的数据;以及
接收基于与所述请求的事件En有关的区块链事务的输出脚本的结果,所述结果表示所述智能合约SC的更新后状态,所述结果使用HTTP传输协议格式接收。
27.根据条款26所述的方法,包括:对所述事件En的事件数据应用哈希函数,使得所述请求包括所述事件En的哈希事件数据。
28.根据条款26或27所述的方法,进一步包括以下步骤:
基于所述结果,使用所述一个或更多个软件库恢复与所述智能合约SC相关联的所述事件流ES;
使用所述一个或更多个验证工具,将所述恢复的事件流ES与所述结果进行比较,以验证所述智能合约的所述状态。
29.根据条款26至28中任一项所述的方法,其中,所述一个或更多个软件库与从所述平台接收的软件开发套件(SDK)相关联。
30.根据条款26至27中任一项所述的方法,其中,所述客户端与和所述平台处理器相关联的别名相关联,所述别名特定于所述平台处理器并且由基于别名的寻址服务提供,所述寻址服务具有可从定义的或公知的位置访问的机器可读资源,所述机器可读资源包括与所述客户端有关的一项或更多项功能,并且其中所述别名与用于认证的非对称加密密钥对相关联。
31.一种计算设备,包括处理器和存储器,所述存储器包括可执行指令,所述处理器执行所述可执行指令时,使得所述设备执行根据条款1至25中任一项所述的计算机实现的方法,所述计算设备与平台处理器有关。
32.一种计算设备,所述计算设备包括处理器和存储器,所述存储器包括可执行指令,所述处理器执行所述可执行指令时,使得所述设备执行根据条款26至30中任一项所述的计算机实现的方法,其中所述计算设备与客户端有关。
33.一种计算机系统,所述计算机系统包括:
至少一个平台处理器,通过无线通信网络与至少一个客户端通信耦合,所述至少一个平台处理器与用于处理来自所述至少一个客户端的HTTP请求的应用程序编程接口(API)端点相关联,所述至少一个平台处理器根据条款31所述的计算设备实现,所述至少一个客户端根据条款32所述的计算设备实现,其中所述至少一个平台处理器通过所述无线通信网络与平台服务的以下组件中的一个或更多个组件通信耦合,所述平台服务为多个客户端提供与区块链相关联的多项服务:
智能合约存储库;
事件流日志;
实例状态数据库;以及
数据写入器。
34.一种计算机可读存储介质,其上存储有可执行指令,计算机的处理器执行所述可执行指令时,使得所述计算机执行根据条款1至30中任一项所述的方法。
应当注意的是,上述的方面和实施例是说明而不是限制本公开,并且本领域技术人员在不脱离由所附权利要求书所限定的本公开的范围的情况下将能够设计许多替代实施例。在权利要求书中,括号中的任何附图标记都不应解释为对权利要求的限制。词语“包括”等不排除任一项权利要求或说明书中整体列出的元件或步骤之外的元件或步骤的存在。在本说明书中,“包括”是指“包含“或”由......组成”。元件的单数形式并不排除此类元件的复数形式,反之亦然。本公开可以通过包括几个不同元件的硬件以及通过适当编程的计算机来实现。在列举几个装置的设备权利要求中,这些装置中的几个装置可以由同一硬件来体现。在互不相同的从属权利要求中引用某些措施的事实并不意味着不能有利地使用这些措施的组合。
Claims (34)
1.一种用于执行与区块链相关联的一个或更多个智能合约的计算机实现的方法,所述方法由与应用程序编程接口API相关联的平台处理器实现,所述方法包括以下步骤:
从客户端接收请求,所述请求与智能合约SC相关,来自所述客户端的所述请求基于超文本传输协议HTTP传输协议格式;
访问与所述请求有关的所述智能合约SC;
标识与所述区块链相关联的事件流ES,所述事件流ES特定于所述智能合约SC,所述事件流表示所述智能合约SC的状态;
基于所述标识的事件流ES,确定所述智能合约SC的当前状态ESn,其中,n是从0至N的整数,每个整数n表示与所述智能合约SC相关联的事件的当前状态或当前数量,N表示n的最大或最终的值或状态;
基于所述接收的请求,调用所述智能合约SC的执行;
通过以下步骤调用与所述智能合约SC有关的所述事件流ES的更新,所述步骤包括:
基于所述接收的请求,处理新事件En;和
基于所述新事件En,获取所述智能合约的更新后的当前状态ESn+1;以及
基于所述智能合约的所述更新后的当前状态ESn+1,存储或提供结果。
2.根据权利要求1所述的方法,其中,所述调用所述智能合约SC的执行的步骤进一步包括:
从所述接收的请求中获取特定于所述智能合约SC的标识符;
基于所述标识符,从合约存储库访问所述给定的智能合约SC;
将所述智能合约SC提供给一个或更多个处理器,用于执行与所述智能合约相关联的一个或更多个软件例程或编程指令。
3.根据权利要求1或2所述的方法,其中,基于确定n=0,所述处理新事件En的步骤包括以下步骤:
将所述接收的请求中的所述智能合约SC的所述新事件En标识为第一事件,以创建与所述智能合约SC有关的相应事件流ES;
通过创建包括作为尘埃输出的第一未花费输出UTXO0_dust的区块链事务TX0,处理所述接收的事件En;
将所述事务TX0提交给所述区块链;以及
提供与所述更新后的事件流ES相关联的结果。
4.根据权利要求3所述的方法,其中,所述区块链事务TX0包括所述智能合约SC的标识符或哈希值。
5.根据权利要求1或2所述的方法,其中,基于确定0<n<N,所述处理新事件En的步骤包括以下步骤:
将所述接收的请求中的所述智能合约SC的所述新事件En标识为当前事件,以修改与所述智能合约SC有关的所述相应事件流ES;
通过创建区块链事务TXn,处理所述接收的事件En,所述区块链事务TXn包括:
第一输入,花费与所述事件流ES的上一个事务相关联的尘埃输出;
第一未花费事务输出UTXOn_dust,作为尘埃输出;和
最终未花费事务输出UTXOn_data,与表示当前事件En的事件数据相关联;
将所述事务TXn提交给所述区块链;以及
提供与所述更新后的事件流ES相关联的结果。
6.根据权利要求5所述的方法,其中,所述当前区块链事务TXn的所述最终未花费事务输出UTXOn_data中的所述事件En的所述事件数据包括所述事件数据的哈希值。
7.根据权利要求6所述的方法,其中,所述事件数据的所述哈希值由所述平台处理器应用。
8.根据权利要求6所述的方法,其中,所述事件数据的所述哈希值在包括在所述平台处理器接收的所述请求中之前由所述客户端应用。
9.根据权利要求6所述的方法,其中,所述当前区块链事务TXn的所述最终未花费事务输出UTXOn_data中的所述事件En的所述事件数据包括原始事件数据。
10.根据权利要求1或2所述的方法,其中,基于确定n=N,所述处理新事件En的步骤包括以下步骤:
将所述接收的请求中的所述智能合约SC的所述新事件En标识为最终事件,以终止所述事件流ES;
通过创建区块链事务TXN,处理所述接收的事件En,所述区块链事务TXN包括:
第一输入,花费与所述事件流ES的上一个事务相关联的尘埃输出;和
最终未花费输出UTXON,与超过定义的尘埃输出值的数字资产相关联;
将所述创建的事务TXN提交给所述区块链;以及
提供与TXN中的所述事件流ES相关联的结果。
11.根据权利要求3至10中任一项所述的方法,其中,所述提交步骤包括:将所述创建的事务包括在与要挖掘的区块链相关联的后续区块中。
12.根据权利要求3至11中任一项所述的方法,包括以下步骤:基于与所述提交的区块链事务相关联的事务标识符,标识所述事件流ES。
13.根据权利要求3至12中任一项所述的方法,包括以下步骤:基于与所述提交的区块链事务相关联的事务标识符,标识所述智能合约SC的状态。
14.根据权利要求3至13中任一项所述的方法,其中,所述创建的区块链事务进一步包括:
与数字资产相关联的输入;以及
与所述数字资产相关联的一个或更多个变更输出。
15.根据权利要求14所述的方法,其中,所述数字资产与运营浮动相关联。
16.根据权利要求3至15中任一项所述的方法,包括以下步骤:确定将与和所述智能合约SC有关的所述事件流ES一起使用的分层确定性密钥链K,其中,所述密钥链K包括从所选择的父密钥对导出的一系列私钥/公钥对,使得K=Kn=0至N。
17.根据前述任一项权利要求所述的方法,其中,所述调用与所述智能合约有关的所述事件流ES的更新的步骤进一步包括以下步骤:访问与所述平台处理器相关联的数据写入器,以处理所述新事件En。
18.根据前述任一项权利要求所述的方法,其中,所述结果是所述智能合约SC的快照状态,所述结果存储在与所述平台处理器相关联的实例状态数据库中和/或可从所述实例状态数据库访问。
19.根据前述任一项权利要求所述的方法,其中,所述结果基于所述HTTP传输协议格式提供给所述客户端。
20.根据前述任一项权利要求所述的方法,其中,与所述智能合约SC的所述当前状态ESn相关联的所述结果包括确认以下至少一项的证书:
-事务标识符,在所述事务标识符中所述事件En过去提交给所述区块链;
-默克尔包含证明,证明所述事务包括在所述区块链中的区块头中;
-所述区块头的副本,所述事务过去包括在所述区块头中。
21.根据前述任一项权利要求所述的方法,其中,所述智能合约SC实现为有限状态机FSM。
22.根据前述任一项权利要求所述的方法,包括:将基于所述智能合约SC的所述事件流ES的每个事件的结果的副本或记录或日志存储在链下存储资源中。
23.根据前述任一项权利要求所述的方法,其中,所述API是超文本传输协议HTTP应用程序编程接口API端点,并且其中所述端点使用安全超文本传输协议HTTPS提供给所述客户端。
24.根据权利要求1至23中任一项所述的方法,其中所述API是与所述平台处理器相关联的别名,所述别名特定于所述平台处理器并且由基于别名的寻址服务提供,所述寻址服务具有可从定义的或公知的位置访问的机器可读资源,所述机器可读资源包括与所述平台处理器有关的一项或更多项功能,并且其中所述别名与用于认证的非对称加密密钥对相关联。
25.根据前述任一项权利要求所述的方法,其中,响应于从所述客户端接收所述请求,所述方法包括以下步骤:提供一个或更多个软件库和/或验证工具,用于处理与所述智能合约SC相关联的数据,所述智能合约SC与所述请求相关联。
26.一种用于访问与区块链相关联的智能合约的计算机实现的方法,所述方法由多个客户端中的给定客户端的一个或更多个处理器实现,所述方法包括以下步骤:
获取或标识与一个或更多个处理器相关联的应用程序编程接口API端点,所述一个或更多个处理器与平台相关联,用于执行智能合约SC;
向所述平台发送对与所述智能合约SC有关的一个或更多个事件En的请求,其中所述请求基于超文本传输协议HTTP传输协议格式发送;
获取一个或更多个软件库和验证工具,用于处理与所述智能合约SC相关联的数据;以及
接收基于与所述请求的事件En有关的区块链事务的输出脚本的结果,所述结果表示所述智能合约SC的更新后状态,所述结果使用HTTP传输协议格式接收。
27.根据权利要求26所述的方法,包括:对所述事件En的事件数据应用哈希函数,使得所述请求包括所述事件En的哈希事件数据。
28.根据权利要求26或27所述的方法,进一步包括以下步骤:
基于所述结果,使用所述一个或更多个软件库恢复与所述智能合约SC相关联的所述事件流ES;
使用所述一个或更多个验证工具,将所述恢复的事件流ES与所述结果进行比较,以验证所述智能合约的所述状态。
29.根据权利要求26至28中任一项所述的方法,其中,所述一个或更多个软件库与从所述平台接收的软件开发套件SDK相关联。
30.根据权利要求26至27中任一项所述的方法,其中,所述客户端与和所述平台处理器相关联的别名相关联,所述别名特定于所述平台处理器并且由基于别名的寻址服务提供,所述寻址服务具有可从定义的或公知的位置访问的机器可读资源,所述机器可读资源包括与所述客户端有关的一项或更多项功能,并且其中所述别名与用于认证的非对称加密密钥对相关联。
31.一种计算设备,所述计算设备包括处理器和存储器,所述存储器包括可执行指令,所述处理器执行所述可执行指令时,使得所述设备执行根据权利要求1至25中任一项所述的计算机实现的方法,所述计算设备与平台处理器有关。
32.一种计算设备,所述计算设备包括处理器和存储器,所述存储器包括可执行指令,所述处理器执行所述可执行指令时,使得所述设备执行根据权利要求26至30中任一项所述的计算机实现的方法,其中所述计算设备与客户端有关。
33.一种计算机系统,所述计算机系统包括:
至少一个平台处理器,通过无线通信网络与至少一个客户端通信耦合,所述至少一个平台处理器与用于处理来自所述至少一个客户端的HTTP请求的应用程序编程接口API端点相关联,所述至少一个平台处理器根据权利要求31所述的计算设备实现,所述至少一个客户端根据权利要求32所述的计算设备实现,其中所述至少一个平台处理器通过所述无线通信网络与平台服务的以下组件中的一个或更多个组件通信耦合,所述平台服务为多个客户端提供与区块链相关联的多项服务:
智能合约存储库;
事件流日志;
实例状态数据库;以及
数据写入器。
34.一种计算机可读存储介质,其上存储有可执行指令,计算机的处理器执行所述可执行指令时,使得所述计算机执行根据权利要求1至30中任一项所述的方法。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GBGB2002285.1A GB202002285D0 (en) | 2020-02-19 | 2020-02-19 | Computer-implemented system and method |
GB2002285.1 | 2020-02-19 | ||
GBGB2013929.1A GB202013929D0 (en) | 2020-09-04 | 2020-09-04 | Computer-implemented system and method |
GB2013929.1 | 2020-09-04 | ||
PCT/IB2021/051260 WO2021165816A1 (en) | 2020-02-19 | 2021-02-15 | Compute services for a platform of services associated with a blockchain |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115280347A true CN115280347A (zh) | 2022-11-01 |
Family
ID=74701528
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180015986.8A Pending CN115280347A (zh) | 2020-02-19 | 2021-02-15 | 与区块链相关联的服务的平台的计算服务 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20230095965A1 (zh) |
EP (1) | EP4107687A1 (zh) |
JP (1) | JP2023513848A (zh) |
KR (1) | KR20220143705A (zh) |
CN (1) | CN115280347A (zh) |
TW (1) | TW202139127A (zh) |
WO (1) | WO2021165816A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220012695A1 (en) * | 2020-07-12 | 2022-01-13 | sensePass LTD. | System and method for management of data exchange with multiple protocols in a computer network |
WO2022118263A1 (en) * | 2020-12-02 | 2022-06-09 | Trock Stanislav | Blockchain |
US12132820B1 (en) * | 2021-05-20 | 2024-10-29 | Verisign, Inc. | Blockchain network identifier claiming using registration status requests |
US20230072264A1 (en) * | 2021-08-17 | 2023-03-09 | Julian Coccia | Method For Certification, Validation And Correlation Of Bills Of Materials In A Software Supply Chain |
KR102610011B1 (ko) * | 2021-10-21 | 2023-12-04 | 고려대학교 산학협력단 | DApp의 스마트 컨트랙트 수수료 감소 방법, 이를 수행하기 위한 기록 매체 및 연산 서버 |
US20230412402A1 (en) * | 2022-06-15 | 2023-12-21 | International Business Machines Corporation | Endorsement policy consolidation in blockchain networks |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10333705B2 (en) * | 2016-04-30 | 2019-06-25 | Civic Technologies, Inc. | Methods and apparatus for providing attestation of information using a centralized or distributed ledger |
-
2021
- 2021-02-15 JP JP2022549739A patent/JP2023513848A/ja active Pending
- 2021-02-15 WO PCT/IB2021/051260 patent/WO2021165816A1/en unknown
- 2021-02-15 EP EP21707789.0A patent/EP4107687A1/en active Pending
- 2021-02-15 CN CN202180015986.8A patent/CN115280347A/zh active Pending
- 2021-02-15 US US17/800,859 patent/US20230095965A1/en active Pending
- 2021-02-15 KR KR1020227031820A patent/KR20220143705A/ko unknown
- 2021-02-19 TW TW110105840A patent/TW202139127A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
US20230095965A1 (en) | 2023-03-30 |
TW202139127A (zh) | 2021-10-16 |
KR20220143705A (ko) | 2022-10-25 |
WO2021165816A1 (en) | 2021-08-26 |
JP2023513848A (ja) | 2023-04-03 |
EP4107687A1 (en) | 2022-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11743137B2 (en) | Systems, methods, and apparatuses for implementing a metadata driven rules engine on blockchain using distributed ledger technology (DLT) | |
US11824970B2 (en) | Systems, methods, and apparatuses for implementing user access controls in a metadata driven blockchain operating via distributed ledger technology (DLT) using granular access objects and ALFA/XACML visibility rules | |
CN111295660B (zh) | 用于将区块链连接到数字孪生的计算机实现的系统和方法 | |
CN115280347A (zh) | 与区块链相关联的服务的平台的计算服务 | |
US20230119035A1 (en) | Platform services verification | |
Zakhary et al. | Towards global asset management in blockchain systems | |
CN115176248A (zh) | 与区块链相关联的一系列事件的事件流 | |
US20220156725A1 (en) | Cross-chain settlement mechanism | |
KR102627868B1 (ko) | 블록체인에서 생성된 데이터를 인증하는 방법 및 시스템 | |
TWI646487B (zh) | 具權限分級和避免重複執行的智能合約執行系統及其方法 | |
JP2023530594A (ja) | 分散型データベースにおける許可されたイベント処理 | |
KR20200063295A (ko) | 인공지능형 rm 블록체인모듈·스마트 tcv형 연구비관리중개모듈·클라우드 컴퓨팅 모듈·빅데이터 플랫폼제어모듈로 이루어진 abcd형 국가연구개발사업 일원화 연구비관리장치 및 방법 | |
US20230097203A1 (en) | System and method for generating blockchain token support from a set of declarations | |
CN118786645A (zh) | 用于在计算机网络中使用基于密码术的存储应用来促进去中心化应用中的安全区块链操作的系统和方法 | |
Antal et al. | Distributed Ledger Technology Review and Decentralized Applications Development Guidelines. Future Internet 2021, 13, 62 | |
US20230093411A1 (en) | Synchronising event streams | |
CN115151934A (zh) | 平台服务验证 | |
US20240330917A1 (en) | Cryptographic contract and method of use | |
Kamshetty | SmartBase: an authentic document sharing web application | |
CN117745425A (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 |