CN116157818A - 允许虚拟货币到期日期的电子钱包 - Google Patents

允许虚拟货币到期日期的电子钱包 Download PDF

Info

Publication number
CN116157818A
CN116157818A CN202180059952.9A CN202180059952A CN116157818A CN 116157818 A CN116157818 A CN 116157818A CN 202180059952 A CN202180059952 A CN 202180059952A CN 116157818 A CN116157818 A CN 116157818A
Authority
CN
China
Prior art keywords
evc
recipient
transaction
blockchain
transferee
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
CN202180059952.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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN116157818A publication Critical patent/CN116157818A/zh
Pending legal-status Critical Current

Links

Images

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/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • G06Q20/4014Identity check for transactions
    • 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/02Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
    • 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/0652Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash e-cash with decreasing value according to a parameter, e.g. time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3676Balancing accounts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3678Payment 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 e-cash details, e.g. blinded, divisible or detecting double spending
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3821Electronic credentials
    • G06Q20/38215Use of certificates or encrypted proofs of transaction rights
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3825Use of electronic signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key 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/0825Key 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/088Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
    • 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

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

一种计算机实现的系统和方法使用即将到期的虚拟货币(EVC)钱包用户的设备的处理器。取得与区块链相关联的并且被寻址到与EVC钱包相关联的地址的EVC交易。EVC交易包括作为虚拟货币用户规则(VCUR)的一部分的EVC的到期日期。如果EVC的到期日期已过去,则该方法自动地并且在没有用户干预的情况下将EVC转移到在VCUR中指定的受让方。

Description

允许虚拟货币到期日期的电子钱包
背景技术
在此公开了一种用于利用允许虚拟货币具有到期日期的电子钱包的系统和相关方法。使用区块链技术的虚拟货币(加密资产)已经获得了作为行业和世界经济中的交换媒介的公认的使用。比特币是一种这样的虚拟货币,其已经非常可靠地工作了十年以上。其可靠性使得一些公司由于其高识别率和极好的便利性而甚至采用了以虚拟货币支付部分薪水的系统。使用钱包应用的虚拟货币用户可以使用虚拟货币执行包括支付、货币转移、货币接收、余额管理等的交易。
然而,目前没有机制来调节或控制虚拟货币使用。一旦虚拟货币交易已经发生,虚拟货币的接收方可以以他们选择的任何方式使用虚拟货币。尽管这在某些情况下可能是有利的,但是在其它情况下是不利的,例如当货币旨在以特定方式使用时,这可能类似于其预期用途是针对特定商家的礼品卡。通过不允许对虚拟货币的使用进行控制,虚拟货币的功能性价值比真实货币减少。
发明内容
可能希望具有一种专用虚拟货币,其具有到期日期以鼓励在特定时间段内使用。此外,可能希望具有一组预先定义的接收方,其具有专用虚拟货币钱包以保存专用虚拟货币,并且在到期之前可以向其进行转移/交易。在到期时,可以以自动方式并且在没有虚拟货币在到期之前具有的限制的情况下向受让方进行转移。
根据本文公开的一个方面,提供了一种计算机实现的方法,包括使用即将到期的虚拟货币EVC钱包用户的设备的处理器,所述方法包括:取得与区块链相关联的并且被寻址到与所述EVC钱包相关联的地址的EVC交易。所述EVC交易包括所述EVC的到期日期,所述EVC遵从虚拟货币用户规则VCUR,所述到期日期是所述VCUR的一部分。所述方法还基于所述到期日期已过去的第一条件,确定所述EVC交易中的所述EVC的所述到期日期是否已过去。一旦所述到期日期已过去,所述方法自动地并且在没有用户干预的情况下将所述EVC转移到在所述VCUR中指定的受让方。提供一种使用遵从VCUR的EVC的方法是有利的,因为其增强了使用虚拟货币的灵活性,并且能够鼓励EVC以EVC发布方预期的方式被使用。
根据本文公开的另一个方面,一种即将到期的虚拟货币(EVC)装置包括存储器和处理器。所述处理器被配置为:取得与区块链相关联的并且被寻址到与EVC钱包相关联的地址的EVC交易。所述EVC交易包括所述EVC的到期日期,所述EVC遵从虚拟货币用户规则VCUR,所述到期日期是所述VCUR的一部分。所述处理器还被配置为:确定所述EVC交易中的所述EVC的所述到期日期是否已过去;以及基于所述到期日期已过去的第一条件,自动地并且在没有用户干预的情况下将所述EVC转移到在所述VCUR中指定的受让方。提供一种用于使用遵从VCUR的EVC的装置的优点在于,它提供了一种用于利用与使用常规虚拟货币的那些EVC相分离的EVC的平台,同时允许EVC在预先指定的条件下被转换为常规虚拟货币。
根据本文所公开的另一方面,一种用于由发布方发布即将到期的虚拟货币EVC的计算机实现的方法包括:使用处理器来创建包括多个账户记录的账户列表,每个账户记录包括关于与EVC接收方标识符相关联的EVC接收方是在一组预先定义的EVC接收方的内部还是外部的指示符。所述账户记录对应于多个EVC接收方。所述方法还包括:创建包括多个目的地记录的EVC接收方目的地列表,每个目的地记录包括所述EVC接收方标识符、公钥、虚拟货币地址、以及关于所述EVC接收方是在一组预先定义的EVC接收方的内部还是外部的所述指示符。所述方法还包括:针对用于保存用于所述EVC接收方的EVC的多个EVC钱包中的每个EVC钱包,设置EVC接收方地址和安全密钥,以及将所述EVC钱包中的所述每个EVC钱包分发到相应的所述EVC接收方。提供一种发布遵从VCUR的EVC的方法的优点在于,其允许EVC发布方以EVC发布方期望的方式鼓励使用EVC。
根据另一个方面,一种即将到期的虚拟货币EVC系统包括如本文所述的EVC发布方设备。一种用于即将到期的虚拟货币装置的计算机程序产品包括一个或多个计算机可读存储介质以及共同被存储在所述一个或多个计算机可读存储介质上的程序指令,所述程序指令包括用于实现上述方法的程序指令。
此外,实施例可以采取可从计算机可用或计算机可读介质访问的相关计算机程序产品的形式,所述计算机可用或计算机可读介质提供由计算机或任何指令执行系统使用或与计算机或任何指令执行系统结合使用的程序代码。出于本说明书的目的,计算机可用或计算机可读介质可以是任何装置,其可以包含用于存储、传送、传播或传输程序的机制,该程序由指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合使用。
附图说明
本文参考不同的主题描述了各种实施例。具体地,一些实施例可以参考方法来描述,而其他实施例可以参考装置和系统来描述。然而,本领域技术人员将从以上和以下描述中了解到,除非另外指出,除了属于一种类型的主题的特征的任何组合之外,与不同主题相关的特征之间的任何组合,特别是方法的特征与装置和系统的特征之间的任何组合,也被认为是在本文档内公开的。
从下文将描述的一个或多个实施例的示例中,以上定义的方面以及本文公开的其它方面是显而易见的,并且参考一个或多个实施例的示例进行解释,但是本发明不限于此。仅通过示例的方式并参考以下附图描述了各种实施例:
图1A是根据本文公开的一个或多个实施例的数据处理系统(DPS)的框图;
图1B是描绘根据本文公开的实施例的云计算环境的示意图;
图1C是描绘根据本文公开的实施例的抽象模型层的示意图;
图1D是示出根据示例实施例的包括数据库的系统的网络图的框图;
图2A是示出根据示例实施例的示例区块链架构配置的框图;
图2B是示出根据示例实施例的区块链交易流程的流程图;
图3A是示出根据示例实施例的许可网络的框图;
图3B是示出根据示例实施例的另一个许可网络的框图;
图3C是示出根据示例实施例的无许可网络的框图;
图4是示出基本区块链序列的框图;
图5A是示出根据示例实施例的被配置为执行本文描述的一个或多个操作的示例系统的框图;
图5B是示出根据示例实施例的被配置为执行本文描述的一个或多个操作的另一个示例系统的框图;
图5C是示出根据示例实施例的被配置为利用智能合约的另一个示例系统的框图;
图5D是示出根据示例实施例的被配置为利用区块链的又一个示例系统的框图;
图6A是示出根据示例实施例的用于新区块被添加到分布式分类账的过程的框图;
图6B是示出根据示例实施例的新数据区块的内容的框图;
图6C是示出根据示例实施例的用于数字内容的区块链的框图;
图6D是示出根据示例实施例的可表示区块链中的区块的结构的区块的框图;
图7A是示出根据示例实施例的存储机器学习(人工智能)数据的示例区块链的框图;
图7B是示出根据示例实施例的示例量子安全区块链的框图;
图8是示出根据本公开的实施例的可用于实现本文描述的方法、工具和模块中的一个或多个以及任何相关功能的示例计算机系统的高级框图的框图;
图9是示出根据一些实现的分布式分类账(区块链)的框图;
图10是示出根据一些实现的两个出让方(transferor)向受让方的转移的框图;
图11A是示出根据一些实现的EVC可被转移到的一组预先定义的EVC接收方的使用的框图;
图11B是根据一些实现的类似于图11A但是另外示出了未使用的EVC可被自动转移到的受让方的框图;
图12是示出用于实现由管理机构/发布方在创建和分发EVC时使用的系统的一些实施例的过程的流程图;
图13A和13B包含根据一些实现的可以由EVC接收方经由其设备上的EVC钱包应用来利用的过程的流程图;
图14是示出根据一些实现的用于向受让方自动支付的过程的流程图;
图15A和15B是根据一些实现的示出用于操作系统的组件和这些组件的交互的组合框图-过程图的部分。
具体实施方式
允许虚拟货币到期日期的电子钱包的概述
本公开考虑使用电子钱包,该电子钱包允许使用区块链技术的虚拟货币(诸如虚拟货币)遵从与虚拟货币相关联的特定虚拟货币使用规则(VCUR)。如本文所定义的,术语“虚拟货币”也可以包括数字货币。一种这样的VCUR可以具有到期日期。这样,为了方便起见,本文使用术语“即将到期的虚拟货币”(EVC)来描述遵从VCUR(它们不一定包括到期日期)的虚拟货币并将EVC与“常规”虚拟货币区分开。此外,如下所述,除非在“虚拟货币”之前用形容词“常规”来指代,否则本文所使用的术语“虚拟货币”是任何类型的基于区块链的虚拟货币的代理。
另一个这样的VCUR是具有能够接收EVC的EVC钱包并且可以向其进行EVC转移的接收方的列表。当VCUR指示EVC的到期(例如到期日期)时,VCUR可指示EVC向受让方的自动转移。这种转移可以将EVC转换为常规虚拟货币,即,没有VCUR并且可以保存在普通虚拟货币钱包中的虚拟货币。EVC钱包可以保存不同类型的电子/数字/虚拟货币。
下列缩写词可以在以下使用:
API 应用程序接口
ARM 高级RISC机器
CD-ROM 光盘
CMS 内容管理系统
CoD 按需分配容量
CPU 中央处理单元
CUoD 容量按需升级
DPS 数据处理系统
DVD 数字多功能盘
EVC 即将到期的虚拟货币(具有到期日期或遵从其他虚拟货币使用规则的虚拟货币;具有到期日期的本地虚拟货币)
EVCU 即将到期的虚拟货币(单位)
EPROM 可擦写可编程只读存储器
FPGA 现场可编程门阵列
HA 高可用性
laaS 基础设施即服务
I/O 输入/输出
IPL 初始程序加载
ISP 互联网服务提供商
ISA 指令集架构
LAN 局域网
LPAR 逻辑分区
PaaS 平台即服务
PDA 个人数字助理
PLA 可编程逻辑阵列
RAM 随机存取存储器
RISC 精简指令集计算机
ROM 只读存储器
SaaS 软件即服务
SLA 服务水平协议
SRAM 静态随机存取存储器
VCUR 虚拟货币使用规则
WAN 广域网
数据处理系统概览
图1A是根据一个或多个实施例的示例DPS的框图。在该说明性示例中,DPS 10可以包括通信总线12,通信总线12可以提供处理器单元14、存储器16、永久性存储装置18、通信单元20、I/O单元22和显示器24之间的通信。
处理器单元14用于执行可加载到存储器16中的软件指令,处理器单元14可以是多个处理器、多核处理器或一些其它类型的处理器,这取决于特定的实现。如本文所用,关于项目的数字是指一个或多个项目。此外,处理器单元14可以使用多个异构处理器系统来实现,其中主处理器与辅助处理器一起存在于单个芯片上。作为另一个说明性示例,处理器单元14可以是包含相同类型的多个处理器的对称多处理器系统。
存储器16和永久性存储装置18是存储设备26的示例。存储设备可以是能够临时和/或永久地存储信息的任何硬件,这些信息例如但不限于数据、功能形式的程序代码和/或其他合适的信息。在这些示例中,存储器16可以是例如随机存取存储器或任何其他合适的易失性或非易失性存储设备。取决于特定的实现,永久性存储装置18可以采取各种形式。
例如,永久性存储装置18可包含一个或多个组件或设备。例如,永久性存储装置18可以是硬盘驱动器、闪存、可重写光盘、可重写磁带或上述的一些组合。永久性存储装置18所使用的介质也可以是可移动的。例如,可移动硬盘驱动器可以用于永久性存储装置18。
这些示例中的通信单元20可提供与其它DPS或设备的通信。在这些示例中,通信单元20是网络接口卡。通信单元20可以通过使用物理和无线通信链路中的一种或两种来提供通信。
输入/输出单元22可允许与可连接到DPS 10的其它设备输入和输出数据,例如,输入/输出单元22可通过键盘、鼠标和/或一些其它适当的输入设备提供用于用户输入的连接。此外,输入/输出单元22可以将输出发送到打印机。显示器24可以提供向用户显示信息的机制。
用于操作系统、应用和/或程序的指令可以位于存储设备26中,存储设备26通过通信总线12与处理器单元14通信。在这些说明性示例中,指令以功能性形式在永久性存储装置18上。这些指令可以被加载到存储器16中以便由处理器单元14执行。不同实施例的过程可以由处理器单元14使用计算机实现的指令来执行,这些指令可以位于诸如存储器16的存储器中。这些指令被称为程序代码38(在下面描述)、计算机可用程序代码、或者可以由处理器单元14中的处理器读取和执行的计算机可读程序代码。不同实施例中的程序代码可以被包含在不同的物理或有形的计算机可读介质(诸如存储器16或永久性存储装置18)上。
DPS 10还可以包括网络29的接口。该接口可以包括硬件、驱动器、软件等,以允许通过有线和无线网络29进行通信,并且可以实现任意数量的通信协议,包括例如处于开放系统互连(OSI)七层模型的各个级别的协议。
图1A还示出了可以包含程序代码38的计算机程序产品30。程序代码38可以以功能性形式位于可选择性移除的计算机可读介质32上,并且可以被加载到或传送到DPS 10以便由处理器单元14执行。在这些示例中,程序代码38和计算机可读介质32可以形成计算机程序产品30。在一个示例中,计算机可读介质32可以是计算机可读存储介质34或计算机可读信号介质36。计算机可读存储介质34可以包括例如插入或放置到驱动器或作为永久性存储装置18的一部分的其他设备中的光盘或磁盘,以便传送到作为永久性存储装置18的一部分的存储设备(诸如硬盘驱动器)。计算机可读存储介质34还可以采取连接到DPS 10的永久性存储装置(诸如硬盘驱动器、拇指驱动器或闪存)的形式。在一些实例中,计算机可读存储介质34不可从DPS 10移除。
替代地,程序代码38可以使用计算机可读信号介质36被传送到DPS 10。计算机可读信号介质36可以是例如包含程序代码38的传播数据信号。例如,计算机可读信号介质36可以是电磁信号、光信号和/或任何其它适当类型的信号。这些信号可以通过通信链路传输,例如无线通信链路、光缆、同轴电缆、电线和/或任何其他合适类型的通信链路。换言之,在说明性示例中,通信链路和/或连接可以是物理的或无线的。
在一些说明性实施例中,程序代码38可以从另一设备或DPS通过计算机可读信号介质36在网络上被下载到永久性存储装置18以便在DPS 10内使用,例如,存储在服务器DPS中的计算机可读存储介质中的程序代码可以通过网络从服务器被下载到DPS 10。提供程序代码38的DPS可以是服务器计算机、客户端计算机或能够存储和传送程序代码38的一些其它设备。
针对DPS 10示出的不同组件不意味着对可以实现不同实施例的方式提供架构限制。不同的说明性实施例可以在包括除了DPS 10所示的组件或代替DPS 10所示的组件的组件的DPS中实现。
云计算概览
应当理解,尽管本公开包括关于云计算的详细描述,但是本文中记载的教导的实现不限于云计算环境。相反,本发明的实施例能够结合现在已知或以后开发的任何其它类型的计算环境来实现。
云计算是一种服务交付模型,用于实现对可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池的方便的按需网络访问,可配置计算资源可以以最小的管理努力或与服务的提供者的交互来快速供应和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
特性如下
按需自助:云消费者可以单方面地自动地根据需要提供计算能力,诸如服务器时间和网络存储,而不需要与服务的提供者进行人工交互。
广域网接入:能力在网络上可用,并且通过促进由异构的薄或厚客户端平台(例如,移动电话、膝上型计算机和PDA)使用的标准机制来访问。
资源池化:供应商的计算资源被集中以使用多租户模型来服务多个消费者,其中不同的物理和虚拟资源根据需求被动态地分配和重新分配。存在位置无关的意义,因为消费者通常不控制或不知道所提供的资源的确切位置,但是能够在较高抽象级别(例如国家、州或数据中心)指定位置。
快速弹性:在一些情况下,可以快速且弹性地提供快速向外扩展的能力和快速向内扩展的能力。对于消费者,可用于提供的能力通常看起来不受限制,并且可以在任何时间以任何数量购买。
测量服务:云系统通过利用在适合于服务类型(例如,存储、处理、带宽和活动用户账户)的某一抽象级别的计量能力来自动地控制和优化资源使用。可以监视、控制和报告资源使用,从而为所利用服务的提供者和消费者两者提供透明度。
服务模型如下
软件即服务(SaaS):提供给消费者的能力是使用在云基础设施上运行的提供者的应用。应用程序可通过诸如web浏览器(例如,基于web的电子邮件)等瘦客户机界面从各种客户机设备访问。消费者不管理或控制包括网络、服务器、操作系统、存储、或甚至个别应用能力的底层云基础结构,可能的例外是有限的用户专用应用配置设置。
平台即服务(PaaS):提供给消费者的能力是将消费者创建或获取的应用部署到云基础设施上,该消费者创建或获取的应用是使用由提供商支持的编程语言和工具创建的。消费者不管理或控制包括网络、服务器、操作系统或存储的底层云基础设施,但具有对部署的应用和可能的应用托管环境配置的控制。
基础设施即服务(IaaS):提供给消费者的能力是提供处理、存储、网络和消费者能够部署和运行任意软件的其它基本计算资源,所述软件可以包括操作系统和应用。消费者不管理或控制底层云基础设施,但具有对操作系统、存储、部署的应用的控制,以及可能对选择的联网组件(例如,主机防火墙)的有限控制。
部署模型如下
私有云:云基础设施仅为组织操作。它可以由组织或第三方管理,并且可以存在于建筑物内或建筑物外。
社区云:云基础设施由若干组织共享,并且支持具有共享关注(例如,任务、安全要求、策略和合规性考虑)的特定社区。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
公有云:云基础设施可用于一般公众或大型工业群体,并且由销售云服务的组织拥有。
混合云:云基础设施是两个或更多云(私有、共同体或公共)的组合,所述云保持唯一实体,但是通过使数据和应用能够移植的标准化或私有技术(例如,用于云之间的负载平衡的云突发)绑定在一起。
云计算环境是面向服务的,其焦点在于无状态、低耦合、模块性和语义互操作性。在云计算的核心是包括互连节点的网络的基础设施。
现在参考图1B,描绘了说明性云计算环境52。如图所示,云计算环境52包括一个或多个云计算节点50,云消费者使用的本地计算设备(诸如例如个人数字助理(PDA)或蜂窝电话54A、台式计算机54B、膝上型计算机54C和/或汽车计算机设备54N)可以与云计算节点50通信。节点50可彼此通信。它们可以被物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上所述的私有云、社区云、公共云或混合云、或它们的组合。这允许云计算环境52提供基础设施即服务、平台即服务和/或软件即服务,云消费者不需要为这些服务维护本地计算设备上的资源。要理解的是,图1B中所示的计算设备54A-N的类型仅仅旨在进行说明,并且计算节点50和云计算环境52可通过任何类型的网络和/或网络可寻址连接(例如,使用网络浏览器)与任何类型的计算机化设备通信。
现在参考图1C,示出了由云计算环境52(图1B)提供的一组功能抽象层。应当预先理解,图1C中所示的组件、层和功能仅旨在是说明性的,并且本发明的实施例不限于此。如所描述,提供以下层和对应功能:
硬件和软件层60包括硬件和软件组件。硬件组件的示例包括:大型机61;基于RISC(精简指令集计算机)架构的服务器62;服务器63;刀片服务器64;存储设备65;以及网络和联网组件66。在一些实施例中,软件组件包括网络应用服务器软件67和数据库软件68。
虚拟化层70提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器71;虚拟存储72;虚拟网络73,包括虚拟专用网络;虚拟应用程序和操作系统74;以及虚拟客户端75。
在一个示例中,管理层80可以提供以下描述的功能。资源供应81提供用于在云计算环境内执行任务的计算资源和其他资源的动态采购。计量和定价82在云计算环境中使用资源时提供成本跟踪,并为这些资源的消费开账单或发票。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及为数据和其他资源提供保护。用户门户83为消费者和系统管理员提供对云计算环境的访问。服务水平管理84提供云计算资源分配和管理,使得满足所需的服务水平。服务水平协议(SLA)规划和履行85为根据SLA预期未来需求的云计算资源提供预安排和采购。
工作负载层90提供可以利用云计算环境的功能的示例。可以从该层提供的工作负荷和功能的示例包括:地图和导航91;软件开发和生命周期管理92;虚拟教室的教学提供93;数据分析处理94;交易处理95;以及即将到期的虚拟货币处理96。
计算环境52中的任何节点50以及计算设备54A-N可以是DPS 10。
区块链基础细节
如在本文的附图中总体描述和图示的,本发明的组件可以以各种不同的配置来布置和设计。因此,如附图中表示的方法、装置、非暂时性计算机可读介质和系统中的至少一个的实施例的以下详细描述并不旨在限制所要求保护的申请的范围,而是仅仅表示所选择的实施例。
在一个或多个实施例中,如贯穿本说明书所描述的特征、结构、或特性可以以任何适合的方式被组合或移除。例如,贯穿本说明书的短语“示例实施例”、“一些实施例”或其他类似语言的使用是指以下事实:结合实施例所描述的特定特征、结构或特性可以被包括在至少一个实施例中。因此,贯穿本说明书出现的短语“示例实施例”、“在一些实施例中”、“在其它实施例中”、或其它类似语言不一定都指同一组实施例,并且在一个或多个实施例中,可以任何合适的方式组合或去除所描述的特征、结构、或特性。此外,在图中,元件之间的任何连接可以允许单向和/或双向通信,即使所描绘的连接是单向或双向箭头。而且,在附图中描绘的任何设备可以是不同的设备。例如,如果移动设备被示为发送信息,则有线设备也可被用于发送该信息。
此外,尽管在实施例的描述中可以使用术语“消息”,但是本申请可以应用于许多类型的网络和数据。此外,尽管在示例性实施例中可以描述特定类型的连接、消息和信令,但是本申请不限于特定类型的连接、消息和信令。
示例实施例提供了方法、系统、组件、非暂时性计算机可读介质、设备和/或网络,它们提供了对区块链网络中的虚拟货币实施到期机制或其他虚拟货币使用规则。
在一个实施例中,本申请利用作为分布式存储系统的去中心化数据库(诸如区块链),该分布式存储系统包括彼此通信的多个节点。去中心化数据库包括与能够在互不信任的各方之间维护记录的分布式分类账相类似的仅附加不可变数据结构。不可信方在本文中称为对等方或对等节点。每个对等方维护数据库记录的副本,并且没有单个对等方可以在没有在分布式对等方之间达成共识的情况下修改数据库记录。例如,对等方可以执行一致协议以验证区块链存储交易,将存储交易分组成块,以及在块上建立散列链。为了一致性,该过程根据需要通过排序存储交易而形成分类账。在不同实施例中,可以使用经许可的和/或无许可区块链。在公共或无许可区块链中,任何人都可以在没有特定身份的情况下参与。公共区块链可以涉及原生加密货币并且使用基于不同协议(诸如工作证明(PoW))的共识。另一方面,经许可的区块链数据库提供共享共同目标但不完全相互信任的一组实体(诸如交换资金、商品、信息等的企业)之间的安全交互。
本申请可以利用操作任意的可编程逻辑的区块链,其被定制为去中心化存储方案并且被称为“智能合约”或“链码”。在一些情况下,可存在被称为系统链码的用于管理功能和参数的专用链码。本申请还可以利用智能合约,智能合约是可信的分布式应用,其利用区块链数据库的防篡改特性和节点之间的基础协议(该基础协议被称为背书或背书策略)。与本申请相关联的区块链交易在被提交至区块链之前可以被“背书”,而未被背书的交易被忽略。背书策略允许链码以对于背书必需的对等节点集合的形式指定用于交易的背书方。当客户端将交易发送给在背书策略中指定的对等方时,该交易被执行以验证该交易。在验证之后,交易进入排序阶段,其中使用共识协议来产生被分组成块的背书交易的有序序列。
本申请可以利用作为区块链系统的通信实体的节点。在不同类型的多个节点可在同一物理服务器上运行的意义上,“节点”可执行逻辑功能。节点被分组在信任域中并且与以不同方式控制这些节点的逻辑实体相关联。节点可以包括不同的类型,诸如向背书方(例如,对等方)提交交易调用以及向排序服务(例如,排序节点)广播交易提议的客户端或提交-客户端节点。另一类型的节点是对等节点,对等节点可接收客户端提交的交易、提交交易并维持区块链交易的分类账的状态和副本。对等方也可以具有背书方的作用,尽管这不是必需的。排序服务节点或排序器是运行用于所有节点的通信服务的节点,并且该节点实现递送保证,诸如在提交交易和修改区块链的世界状态时向系统中的每个对等节点广播,该世界状态是初始区块链交易(其通常包括控制和设置信息)的另一个名称。
本申请能够利用分类账,分类账是区块链的所有状态转变的排序防篡改记录。状态转变可以由参与方(例如,客户端节点、排序节点、背书方节点、对等节点等)提交的链码调用(即,交易)引起。每个参与方(诸如对等节点)可维护分类账的副本。交易可以导致一组资产键-值对作为一个或多个操作数(诸如创建、更新、删除等)被提交到分类账。分类账包括用于在块中存储不可变的排序记录的区块链(也称为链)。分类账还包括维护区块链的当前状态的状态数据库。
本申请可以利用作为交易日志的链,该交易日志被构造为散列链接的区块,并且每个区块包含具有N个交易的序列,其中N等于或大于1。区块头部包括区块的交易的散列以及前一个区块的头部的散列。以这种方式,分类账上的所有交易可被排序和加密地链接在一起。因而,不可能篡改分类账数据而不破坏散列链。最近添加的区块链块的散列表示链上的在该区块之前已经出现的每个交易,从而使得可以确保所有对等节点都处于一致且可信的状态。链可以被存储在对等节点文件系统(即,本地的、附加的存储、云等)上,从而有效地支持区块链工作负载的仅附加性质。
不可变分类账的当前状态表示被包括在链交易日志中的所有键的最新值。因为当前状态表示通道已知的最新键值,所以有时将其称为世界状态。链码调用执行针对分类账的当前状态数据的交易。为了使这些链码交互高效,键的最新值可以被存储在状态数据库中。状态数据库可以简单地是到链的交易日志中的索引视图,因此可以在任何时间从链中重新生成状态数据库。在对等节点启动后并且在交易被接受之前,可以自动恢复(或者生成(如果需要的话))状态数据库。
本文描述和描绘的解决方案的一些益处包括一种用于在区块链网络中使用即将到期的虚拟货币或遵从虚拟货币使用规则的虚拟货币的方法和系统。示例实施例通过扩展数据库的特征(不可变性、数字签名和作为单一真理来源)来解决时间和信任的问题。示例实施例在基于区块链的网络中提供了一种用于在区块链网络中进行隐私保护的基于属性的文档共享的解决方案。根据资产类型和基于智能合约管理资产的规则,区块链网络可以是同构的。
区块链与传统数据库的不同之处在于,区块链不是中央存储,而是去中心化的、不可变的和安全的存储,其中节点必须共享对存储中的记录的改变。区块链中固有的并且帮助实现区块链的一些属性包括但不限于不可变的分类账、智能合约、安全性、隐私、去中心化、共识、背书、可访问性等,它们在本文中被进一步描述。根据各个方面,由于对区块链固有且唯一的不可变的会计责任、安全性、隐私、允许的去中心化、智能合约的可用性、背书和可访问性,实现了用于区块链网络中的隐私保护的基于属性的文档共享的系统。具体地,区块链分类账数据是不可变的,并且提供了用于区块链网络中的即将到期的虚拟货币或遵从虚拟货币使用规则的虚拟货币的有效方法。此外,区块链中加密的使用提供了安全性并建立了信任。智能合约管理资产的状态以完成生命周期。示例区块链是许可去中心化的。因此,每个最终用户可以具有其自己的分类账副本以供访问。多个组织(和对等方)可以被装载在区块链网络上。密钥组织可以用作背书对等方以验证智能合约执行结果、读取集和写入集。换言之,区块链固有特征提供了有效实现用于区块链网络中的即将到期的虚拟货币或遵从虚拟货币使用规则的虚拟货币的方法。
示例实施例的益处之一在于,其通过实现用于在基于区块链的系统中的即将到期的虚拟货币或遵从虚拟货币使用规则的虚拟货币的方法来改进计算系统的功能。通过本文描述的区块链系统,计算系统可通过提供对诸如分布式分类账、对等方、加密技术、MSP、事件处理等能力的访问来执行区块链网络中的隐私保护的基于属性的文档共享的功能。此外,区块链使得能够创建业务网络并使得任何用户或组织在该业务网络上参与。这样,区块链不仅仅是数据库。区块链具有创建用户和机载/机外(on-board/off-board)组织的业务网络以便以智能合约的形式协作和执行服务过程的能力。
示例实施例提供了优于传统数据库的许多益处。例如,通过区块链,实施例提供了对于区块链固有且唯一的不可变的会计责任、安全性、隐私、允许的去中心化、智能合约的可用性、背书和可访问性。
同时,传统数据库不能用于实现示例实施例,因为它不将所有各方带入业务网络,它不创建可信协作并且不提供数字资产的高效存储。传统数据库不提供防篡改存储,并且不提供对所存储的数字资产的保存。因此,所提出的用于区块链网络中的即将到期的虚拟货币或遵从虚拟货币使用规则的虚拟货币的方法不能在传统数据库中实现。
同时,如果传统数据库被用于实现示例实施例,则示例实施例将遭受不必要的缺点,诸如搜索能力、缺乏安全性和交易速度慢。另外,用于区块链网络中即将到期的虚拟货币实现共享的自动化方法将完全是不可能的。
因此,示例实施例提供了针对遵从使用规则的虚拟货币领域中的问题的具体解决方案。
示例实施例还改变了数据可如何被存储在区块链的区块结构内。例如,数字资产数据可以被安全地存储在数据区块的特定部分中(即,在头部、数据段或元数据中)。通过将数字资产数据存储在区块链的数据区块内,数字资产数据可以通过区块的散列链接链被附加到不可变的区块链分类账。在一些实施例中,数据区块可以通过使与数字资产相关联的个人数据不与资产一起被存储在区块链的传统区块结构内而不同于传统数据区块。通过移除与数字资产相关联的个人数据,区块链可以基于不可变的会计责任和安全性来提供匿名的益处。
根据示例实施例,提供了一种用于区块链网络中的即将到期的虚拟货币或遵从虚拟货币使用规则的虚拟货币的系统和方法。区块链文档处理器可具有两个组件:
-私有脱链(off-chain)处理器,其管理与参与者相关的私有信息的安全处理;以及
-分类账处理器,其管理使用网络的一致性算法对与区块链网络的所有参与者共享的公共信息的处理。
根据示例实施例,意图与其他组织共享文档的组织中的每一个组织使用连接到区块链网络的区块链文档处理器。使用该文档处理器,组织可以在分类账上建立以下项:
-文档模板的列表;
-将在分类账上以散列形式共享的每个文档模板的属性;
-来自不同模板的用于匹配和共享文档的关键属性的组合;以及
-合作伙伴Merkel树:可以基于合作组织的标识符(ID)来建立每个合作伙伴Merkel树。
所有文档(文件,JSON)被存储在脱链数据存储器上。仅属性散列和文档标识符(ID)作为区块链交易的一部分被提交。
根据一个示例实施例,文档标识符和文档类型可以被链接到散列属性以供共享。经散列的所有者的组织ID可以包括复合密钥,使得:
-给定文档ID,文档处理器可获得所有经散列的属性以供共享;以及
-给定用于共享的经散列的属性,文档处理器可以获得所有文档ID及它们的经散列的所有者组织ID。
当文档被记录并给定它的经散列的属性以供共享时,文档处理器可获得所有文档及它们的经散列的所有者组织ID。处理器可以检查传入的文档所有者组织ID和每个所有者组织ID是否是合作伙伴Merkel树的一部分。如果ID属于用于合格组织关系内的文档子集的合作伙伴Merkel树,则处理器可以获得逻辑匹配所需的模板。基于评估经散列的属性匹配,处理器可以获得传入文档需要被链接到的文档的列表(及文档的所有者)。然后,处理器可以创建链接文档。处理器可以生成一次性通行码,使得参与者可以链接到该文档并将该文档传递通过所有参与者。参与者然后可以用一次性密码和经散列的组织ID来查询区块链以取得传入的文档密钥。使用该文档密钥,参与者可以从拥有方(即,区块链节点)取得共享文档,并将该文档存储在接收方的离链存储器上。
图1D示出了根据示例实施例的用于区块链网络中的即将到期的虚拟货币或遵从虚拟货币使用规则的虚拟货币的逻辑网络图。
参考图1D,示例网络100包括连接到表示文档所有者组织的其它区块链(BC)节点105的文档处理器节点102。文档处理器节点102可以被连接到区块链106,区块链106具有用于存储要在节点105之间共享(110)的数据的分类账108。虽然该示例仅详细描述了一个文档处理器节点102,但是多个这样的节点可以被连接到区块链106。应当理解,文档处理器节点102可以包括附加组件,并且在不脱离本文公开的文档处理器节点102的范围的情况下,可以移除和/或修改本文描述的一些组件。文档处理器节点102可以是计算设备或服务器计算机等,并且可以包括处理器104,处理器104可以是基于半导体的微处理器、中央处理单元(CPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)和/或另一个硬件设备。尽管描绘了单个处理器104,但是应当理解,文档处理器节点102可以包括多个处理器、多个核等,而不脱离文档处理器节点102系统的范围。
文档处理器节点102还可以包括非暂时性计算机可读介质112,其上可以存储可由处理器104执行的机器可读指令。机器可读指令的示例被示为114-120,并且在下面进一步讨论。非暂时性计算机可读介质112的示例可以包括包含或存储可执行指令的电子、磁、光或其他物理存储设备。例如,非暂时性计算机可读介质112可以是随机存取存储器(RAM)、电可擦除可编程只读存储器(EEPROM)、硬盘、光盘或其它类型的存储设备。
在一些实施例中,处理器104可以执行第一机器可读指令114以取得与区块链相关联的并且被寻址到与EVC钱包相关联的地址的EVC交易,该EVC交易包括EVC的到期日期,EVC遵从虚拟货币用户规则(VCUR),到期日期是虚拟货币用户规则的一部分。如上所述,区块链分类账108可以存储要在节点105之间共享的数据。区块链106网络可被配置为使用管理针对多个参与节点的交易的一个或多个智能合约。处理器104可以执行第二机器可读指令116以确定EVC交易中的EVC的到期日期是否已过去。处理器104可以执行第三机器可读指令118以基于到期日期已过去的第一条件,自动地并且在没有用户干预的情况下将EVC转移到在VCUR中指定的受让方。
图2A示出根据示例实施例的区块链架构配置200。参照图2A,区块链架构200可包括特定区块链元素,例如,一组区块链节点202。区块链节点202可以包括一个或多个节点204-210(这四个节点仅通过示例来描绘)。这些节点参与许多活动,诸如区块链交易添加和确认过程(共识)。区块链节点204-210中的一个或多个可以基于背书策略对交易进行背书,以及可以为架构200中的所有区块链节点提供排序服务。区块链节点可发起区块链认证并试图写入被存储在区块链层216中的区块链不可变分类账,区块链不可变分类账的副本也可存储在支持物理基础设施214上。区块链配置可以包括被链接到应用编程接口(API)222以访问和执行所存储的程序/应用代码220(例如,链码、智能合约等)的一个或多个应用224,所存储的程序/应用代码220可以根据参与者寻求的定制配置来创建并且可以维护它们自己的状态、控制它们自己的资产以及接收外部信息。这可以被部署为交易并且经由附加到分布式分类账而被安装在所有区块链节点204-210上。
区块链基础或平台212可包括不同层的区块链数据、服务(例如,加密信任服务、虚拟执行环境等)和支持物理计算机基础设施,支持物理计算机基础设施可用于接收和存储新交易并向试图访问数据条目的审核方提供访问。区块链层216可以公开接口,该接口提供对处理程序代码和参与物理基础设施214所必需的虚拟执行环境的访问。密码信任服务218可用于验证交易(诸如资产交换交易)并保持信息私有。
图2A的区块链架构配置可经由通过区块链平台212公开的一个或多个接口和提供的服务来处理和执行程序/应用代码220。代码220可以控制区块链资产。例如,代码220可以存储和传输数据,并且可以由节点204-210以智能合约和相关联的链码的形式来执行,该链码具有经受它的执行的条件或其他代码元素。作为非限制性实例,可以创建智能合约以执行提醒、更新和/或经历改变、更新等的其他通知。智能合约本身可用于识别与分类账的授权和访问要求以及使用相关联的规则。例如,文档属性信息226可由被包括在区块链层216中的一个或多个处理实体(例如,虚拟机)处理。结果228可以包括多个经链接的共享文档。物理基础设施214可以用于取得本文所述的任何数据或信息。
智能合约可以经由高级应用和编程语言来创建,并且然后被写到区块链中的区块。智能合约可以包括利用区块链(例如,分布式区块链对等方网络)而被注册、存储和/或复制的可执行代码。交易是智能合约代码的执行,该执行可以响应于满足与智能合约相关联的条件而被完成。执行智能合约可以触发对数字区块链分类账的状态的可信修改。由智能合约执行引起的对区块链分类账的修改可以通过一个或多个共识协议在整个分布式区块链对等方网络中被自动复制。
智能合约可以以键-值对的格式向区块链写入数据。此外,智能合约代码可以读取存储在区块链中的值,并在应用操作中使用这些值。智能合约代码可以将不同逻辑操作的输出写入到区块链中。代码可以用于在虚拟机或其他计算平台中创建临时数据结构。被写入区块链的数据可以是公共的和/或可以被加密并被维持为私有。由智能合约使用/生成的临时数据由供应的执行环境保存在存储器中,然后一旦识别了区块链需要的数据,该临时数据就被删除。
链码可以包括具有附加特征的智能合约的代码解释。如本文所描述的,链码可以是被部署在计算网络上的程序代码,其中链码在共识过程期间由链验证器一起执行和验证。链码接收散列并且从区块链中取得与通过使用先前存储的特征提取器创建的数据模板相关联的散列。如果散列标识符的散列和从所存储的标识符模板数据创建的散列相匹配,则链码向所请求的服务发送授权密钥。链码可以向区块链写入与加密细节相关联的数据。
图2B示出根据示例实施例的在区块链的节点之间的区块链交易流250的示例。参考图2B,交易流可包括由应用客户端节点260发送到背书对等节点281的交易提议291。背书对等方281可以验证客户端签名并执行链码功能以发起交易。输出可以包括链码结果、在链码中读取的一组键/值版本(读取集)以及在链码中写入的一组键/值(写入集)。如果被批准,则将提议响应292连同背书签名一起发送回客户端260。客户端260将背书组装在交易有效载荷293中,并将其广播到排序服务节点284。然后,排序服务节点284将经排序的交易作为区块在通道上递送给所有对等方281和283。在提交到区块链之前,每个对等方281-283可以验证交易。例如,对等方可以检查背书策略以确保指定对等方的正确分配已经对结果进行签名并对照交易有效载荷293认证了签名。
再次参考图2B,客户端节点260通过构造请求并将其发送到作为背书者的对等节点281来启动交易291。客户端260可以包括利用所支持的软件开发工具包(SDK)的应用,该SDK利用可用的API来生成交易提议。提议是调用链码函数以使得数据可以被读取和/或写入到分类账(即,为资产写入新的键值对)的请求。SDK可以充当垫片(shim)以将交易提议封装成适当的架构化格式(例如,远程过程调用(RPC)上的协议缓冲器)并采用客户端的加密证书来产生交易提议的唯一签名。
作为响应,进行背书的对等节点281可以验证(a)交易提议形成良好,(b)交易在过去尚未被提交(重放攻击保护),(c)签名有效,以及(d)提交者(在该实例中,客户端260)被适当地授权以在该通道上执行所提议的操作。进行背书的对等节点281可以将交易提议输入作为对所调用的链码函数的自变量(arguments)。然后,对照当前状态数据库执行链码以产生包括响应值、读集合和写集合的交易结果。然而,此时没有对分类账进行更新。在292,值集合连同进行背书的对等节点281的签名一起作为提议响应292被传递回客户端260的SDK,SDK解析有效载荷以供应用消费。
作为响应,客户端260的应用检查/验证进行背书的对等方签名,并且比较提议响应以确定提议响应是否相同。如果链码仅查询了分类账,则应用将检查查询响应并且通常将不向排序节点服务284提交交易。如果客户端应用旨在将交易提交给排序节点服务284以更新分类账,则应用确定在提交之前所指定的背书策略是否已被满足(即,交易所必需的所有对等节点是否对该交易进行了背书)。在此,客户端可以仅包括交易的多方中的一方。在这种情况下,每个客户端可以具有它们自己的进行背书的节点,并且每个进行背书的节点将需要对该交易进行背书。该架构使得即使应用选择不检查响应或以其他方式转发未背书的交易,背书策略仍将由对等方强制执行并在提交验证阶段得到保持。
在成功检查之后,在步骤293,客户端260将背书组装成交易并在交易消息内将交易提议和响应广播至排序节点284。交易可包含读/写集、进行背书的对等方签名和通道ID。排序节点284不需要检查交易的全部内容以便执行它的操作,相反,排序节点284可以简单地从网络中的所有通道接收交易,按通道对交易按时间顺序进行排序,并且每通道创建交易区块。
交易的区块被从排序节点284递送到通道上的所有对等节点281-283。区块内的交易294被验证以确保任何背书策略被满足并确保自从由交易执行生成读集合以来,分类账状态针对读集合变量没有改变。区块中的交易被标记为有效或无效。此外,在步骤295,每个对等节点281-283将区块附加到通道的链,并且对于每个有效交易,写入集被提交到当前状态数据库。发出事件以向客户端应用通知交易(调用)已经被不可变地附加到链,以及通知交易被验证还是被无效。
图3A示出了以分布式、去中心化对等架构为特征的经许可的区块链网络300的示例。在该示例中,区块链用户302可以向经许可的区块链304发起交易。在该示例中,交易可以是部署、调用或查询,并且可以通过利用SDK的客户端侧应用、直接通过API等来发布。网络可以提供对诸如审核方之类的监管方306的访问。区块链网络运营商308管理成员许可,诸如将监管方306登记为“审核方”以及将区块链用户302登记为“客户端”。审核方可以被限于仅查询分类账,而客户端可以被授权以部署、调用和查询特定类型的链码。
区块链开发者310可编写链码和客户端侧应用。区块链开发者310可以通过接口将链码直接部署到网络。为了在链码中包括来自传统数据源312的证书,开发者310可使用带外连接来访问数据。在该示例中,区块链用户302通过对等节点314连接到经许可的区块链304。在进行任何交易之前,对等节点314从管理用户角色和许可的证书授权机构316取得用户的登记和交易证书。在一些情况下,区块链用户必须拥有这些数字证书以便在经许可的区块链304上进行交易。同时,尝试利用链码的用户可能被要求在传统数据源312上验证他们的凭证。为了确认用户的授权,链码可以使用通过传统处理平台318到该数据的带外连接。
图3B示出了以分布式、去中心化对等架构为特征的经许可的区块链网络320的另一个示例。在该示例中,区块链用户322可以向经许可的区块链324提交交易。在该示例中,交易可以是部署、调用或查询,并且可以通过利用SDK的客户端侧应用、直接通过API等来发布。网络可以提供对诸如审核方之类的监管方326的访问。区块链网络运营商328管理成员许可,诸如将监管方326登记为“审核方”以及将区块链用户322登记为“客户端”。审核方可以限于仅查询分类账,而客户端可以被授权以部署、调用和查询特定类型的链码。
区块链开发者330编写链码和客户端侧应用。区块链开发者330可以通过接口将链码直接部署到网络。为了在链码中包括来自传统数据源332的凭证,开发者330可以使用带外连接来访问数据。在该示例中,区块链用户322通过对等节点334连接到网络。在进行任何交易之前,对等节点334从证书授权机构336取得用户的登记和交易证书。在一些情况下,区块链用户必须拥有这些数字证书以便在经许可的区块链324上进行交易。同时,尝试利用链码的用户可能被要求在传统数据源332上验证他们的凭证。为了确认用户的授权,链码可以使用通过传统处理平台338到该数据的带外连接。
在一些实施例中,本文中的区块链可以是无许可区块链。与要求许可以便加入的经许可的区块链相比,任何人都可以加入无许可区块链。例如,为了加入无许可区块链,用户可以创建个人地址并通过提交交易并因此将条目添加到分类账来开始与网络交互。此外,所有各方具有在系统上运行节点以及采用挖掘协议来帮助验证交易的选择。
图3C示出了由包括多个节点354的无许可区块链352处理的交易的过程350。发送方356希望经由无许可区块链352向接收方358发送支付或某一其他形式的价值(例如,契约、医疗记录、合同、商品、服务或可被封装在数字记录中的任何其他资产)。在一个实施例中,发送方设备356和接收方设备358中的每一个可具有提供用户界面控制和交易参数的显示的数字钱包(与区块链352相关联)。作为响应,交易贯穿区块链352被广播至节点354。取决于区块链352的网络参数,节点基于无许可区块链352创建者建立的规则(其可以是预先定义的或动态分配的)来验证360交易。例如,这可以包括验证所涉及的各方的身份等。可以立即验证交易,或者可以将交易与其他交易放置在队列中,并且节点354基于一组网络规则来确定交易是否有效。
在结构362中,有效交易被形成为块并且被用锁(散列)来密封。该过程可以通过挖掘节点354之中的节点来执行。挖掘节点可以利用另外的软件,该软件特别地用于针对无许可区块链352挖掘和创建区块。每个区块可以由使用由网络商定的算法创建的散列(例如,256位数等)来标识。每个区块可以包括头部、指向链中的前一个区块的头部的散列的指针或参考、以及一组有效交易。对前一个区块的散列的参考与区块的安全独立链的创建相关联。
在区块可以被添加到区块链之前,区块必须被验证。针对无许可区块链352的验证可包括工作证明(PoW),PoW是从区块的头部导出的谜题的解。虽然在图3C的示例中未示出,但是用于验证区块的另一个过程是权益证明。与工作证明(其中算法奖励解决数学问题的挖掘者)不同,对于权益证明,新区块的创建者根据其财富(也被定义为“权益”)以确定性方式被选择。然后,由所选择的/所选节点执行类似的证明。
利用挖掘364,节点尝试通过对一个变量进行增量改变直到解满足全网络目标来求解区块。这产生PoW,从而确保正确答案。换言之,潜在的解必须证明在求解该问题时计算资源被耗尽。在一些类型的无许可区块链中,可以向挖掘者奖励用于正确挖掘区块的价值(例如,钱币等)。
在此,PoW过程连同区块的成链一起使得区块链的修改极其困难,因为攻击者必须修改所有后续区块以便使对一个区块的修改被接受。此外,随着新区块被挖掘,修改区块的难度增加,并且后续区块的数量增加。通过分发366,被成功验证的区块被分发通过无许可区块链352,并且所有节点354将该区块添加到作为无许可区块链352的可审计分类账的多数链中。此外,由发送方356提交的交易中的值被存入或以其他方式被转移到接收方设备358的数字钱包。
图4是示出了三个交易的基本区块链序列400的框图。第一区块包含第一头部410a和构成第一区块的第一组交易420a。区块头部包含前一个区块头部的散列412a和Merkle根414a。Merkle根414a是作为区块链网络中的区块的一部分的所有交易的所有散列的散列,该散列确保在对等方之间传递的数据区块是完整的、未损坏的和未改变的。第二区块包含第二头部410b和构成第二区块的第二组交易420b。该区块头部包含前一个区块头部410a的散列412b和Merkle根414b。第三区块包含第三头部410c和构成第三区块的第三组交易420c。区块头部包含前一个区块头部410b的散列412c和Merkle根414c。区块的数量可以扩展到任何可行的长度,并且可以相对容易地检查/验证散列值。
图5A示出了包括被配置为执行根据示例性实施例的各种操作的物理基础设施510的示例系统500。参考图5A,物理基础设施510包括模块512和模块514。模块514包括区块链520和智能合约530(其可以驻留在区块链520上),智能合约530可以执行包括在任何示例实施例中的任何操作步骤508(在模块512中)。步骤/操作508可以包括所描述或描绘的实施例中的一个或多个,并且可以表示从一个或多个智能合约530和/或区块链520写入或读取的输出或写入信息。物理基础设施510、模块512和模块514可以包括一个或多个计算机、服务器、处理器、存储器和/或无线通信设备。此外,模块512和模块514可以是相同的模块。
图5B示出了被配置为执行根据示例实施例的各种操作的另一个示例系统540。参考图5B,系统540包括模块512和模块514。模块514包括区块链520和智能合约530(其可以驻留在区块链520上),智能合约530可以执行包括在任何示例实施例中的任何操作步骤508(在模块512中)。步骤/操作508可以包括所描述或描绘的实施例中的一个或多个,并且可以表示从一个或多个智能合约530和/或区块链520写入或读取的输出或写入信息。物理模块512和模块514可以包括一个或多个计算机、服务器、处理器、存储器和/或无线通信设备。此外,模块512和模块514可以是相同的模块。
图5C示出根据示例实施例的被配置为在订约方之间利用智能合约配置的示例系统和被配置为在区块链上强制执行智能合约条款的调解服务器。参考图5C,配置550可以表示由显式识别一个或多个用户设备552和/或556的智能合约530驱动的通信会话、资产转移会话或处理或过程。智能合约执行的执行、操作和结果可以由服务器554管理。智能合约530的内容可能需要作为智能合约交易的各方的实体552和556中的一个或多个的数字签名。智能合约执行的结果可以作为区块链交易被写到区块链520。智能合约530驻留在可以驻留在一个或多个计算机、服务器、处理器、存储器和/或无线通信设备上的区块链520上。
图5D示出了根据示例实施例的包括区块链的系统560。参考图5D的示例,应用编程接口(API)网关562提供用于访问区块链逻辑(例如,智能合约530或其他链码)和数据(例如,分布式分类账等)的公共接口。在该示例中,API网关562是用于通过将一个或多个实体552和556连接至区块链对等方(即,服务器554)来对区块链执行交易(调用、查询等)的公共接口。在此,服务器554是区块链网络对等组件,该区块链网络对等组件保存世界状态和分布式分类账的副本,从而允许客户端552和556查询关于世界状态的数据以及将交易提交到区块链网络中,在区块链网络中,根据智能合约530和背书策略,进行背书的对等方将运行智能合约530。
以上实施例能够以硬件、由处理器执行的计算机程序、固件或以上项的组合来实现。计算机程序可体现在计算机可读介质(例如存储介质)上。例如,计算机程序可以驻留在随机存取存储器(“RAM”)、闪存、只读存储器(“ROM”)、可擦除可编程只读存储器(“EPROM”)、电可擦除可编程只读存储器(“EEPROM”)、寄存器、硬盘、可移动盘、紧凑盘只读存储器(“CD-ROM”)、或本领域已知的任何其他形式的存储介质中。
示意性存储介质可耦接到处理器,使得处理器可从存储介质读取信息和将信息写入到存储介质。在替代方案中,存储介质可与处理器成一体。处理器和存储介质可驻留在专用集成电路(“ASIC”)中。在替代方案中,处理器和存储介质可作为分离组件而驻留。
图6A示出根据示例实施例的新区块被添加到分布式分类账620的过程600,图6B示出根据示例实施例的用于区块链的新数据区块结构630的内容。新数据区块630可以包含文档链接数据。
参考图6A,客户端(未示出)可向区块链节点611、612和/或613提交交易。客户端可以是从任何源接收的指令以制定在区块链620上的活动。作为示例,客户端可以是代表请求者(诸如设备、个人或实体)行动的应用,以提议针对区块链的交易。多个区块链对等方(例如,区块链节点611、612和613)可以维护区块链网络的状态和分布式分类账620的副本。在区块链网络中可存在不同类型的区块链节点/对等方,包括模拟并背书由客户端提出的交易的进行背书的对等方以及验证背书、验证交易和提交交易到分布式分类账620的提交对等方。在此实例中,区块链节点611、612和613可执行背书方节点、提交方节点或两者的角色。
分布式分类账620包括在区块中存储不可变的排序记录的区块链和维护区块链622的当前状态的状态数据库624(当前世界状态)。每个通道可以存在一个分布式分类账620,并且每个对等方针对它们作为成员的每个通道而维护它自己的分布式分类账620副本。区块链622是交易日志,该交易日志被构造为散列链接的区块,其中每个区块包含具有N个交易的序列。区块可包括诸如图6B中所示的各种组件。区块的链接(由图6A中的箭头示出)可以通过在当前区块的区块头部内添加先前区块的头部的散列来生成。以此方式,区块链622上的所有交易被排序并被加密地链接在一起,从而防止篡改区块链数据而不破坏散列链接。此外,由于链接,区块链622中的最新区块代表在它之前出现的每个交易。区块链622可以被存储在支持仅附加的区块链工作负载的对等文件系统(本地或附加存储)上。
区块链622的当前状态和分布式分类账620可以被存储在状态数据库624中。此处,当前状态数据表示曾经被包括在区块链622的链交易日志中的所有键的最新值。链码调用对照状态数据库624中的当前状态来执行交易。为了使这些链码交互极其高效,所有键的最新值被存储在状态数据库624中。状态数据库624可以包括到区块链622的交易日志中的索引视图,因此可以在任何时间从链中重新生成该索引视图。在交易被接受之前,在对等方启动时,状态数据库624可自动被恢复(或者被生成,如果需要的话)。
背书节点从客户端接收交易,并基于模拟结果对交易进行背书。背书节点持有模拟交易提议的智能合约。当背书节点对交易进行背书时,背书节点创建交易背书,该交易背书是指示模拟交易的背书的从背书节点到客户端应用的签名响应。对交易进行背书的方法取决于可以在链码中指定的背书策略。背书策略的示例是“多数背书对等方必须对交易进行背书”。不同的通道可具有不同的背书策略。客户端应用将经背书的交易转发至排序服务610。
排序服务610接受经背书的交易,将它们排序到区块中,以及向提交对等方递送区块。例如,当已经达到交易阈值、定时器超时或另一条件时,排序服务610可以发起新区块。在图6A的示例中,区块链节点612是提交对等方,其已接收到新数据区块630以供存储在区块链620上。区块链中的第一个区块可以被称为起源区块,其包括关于区块链、其成员、存储在其中的数据等的信息。
排序服务610可以包括排序器集群。排序服务610不处理交易、智能合约或维护共享分类账。相反,排序服务610可以接受经背书的交易并且指定这些业务被提交到分布式分类账620的顺序。可以设计区块链网络的架构,使得‘排序’(例如,Solo、Kafka、BFT等)的具体实现变成可插拔组件。
交易以一致的顺序被写到分布式分类账720。交易的顺序被确立以确保对状态数据库724的更新在这些更新被提交至网络时是有效的。与其中通过求解密码谜题或挖掘而发生排序的加密货币区块链系统(例如,虚拟货币等)不同,在本示例中,分布式分类账720的各方可以选择最适合该网络的排序机制。
当排序服务610初始化新数据区块630时,新数据区块630可以被广播到提交对等方(例如,区块链节点611、612和613)。作为响应,每个提交对等方通过检查以确保读取集和写入集仍匹配状态数据库624中的当前世界状态来验证新数据区块630内的交易。具体地,提交对等方可以确定当背书方模拟交易时存在的读数据是否与状态数据库624中的当前世界状态相同。当提交对等方验证了交易时,交易被写到分布式分类账620上的区块链622,并且状态数据库624被用来自读-写集的写数据来更新。如果交易失败,即,如果提交对等方发现读-写集与状态数据库624中的当前世界状态不匹配,则被排序到区块中的交易将仍然被包括在该区块中,但该交易将被标记为无效,并且状态数据库624将不被更新。
参考图6B,被存储在分布式分类账620的区块链622上的新数据区块630(也被称为数据区块)可以包括多个数据段,诸如区块头部640、区块数据650和区块元数据660。应当理解,图6B中所示的各种所描绘的块及其内容(诸如新数据区块630及其内容)仅仅是示例,并且不意味着限制示例实施例的范围。新数据区块630可以在区块数据650内存储N个交易(例如,1、10、100、500、1000、2000、3000等)的交易信息。新数据区块630还可以包括到区块头部640内的前一个区块(例如,在图6A中的区块链622上)的链路。具体地说,区块头部640可包括前一个区块的头部的散列。区块头部640还可包括唯一区块号、新数据区块630的区块数据650的散列等。新数据区块630的区块号可以是唯一的并且以不同顺序被分配,诸如从零开始的递增/顺序排序。
区块数据650可以存储被记录在新数据区块630内的每个交易的交易信息。例如,交易数据可以包括以下中的一个或多个:交易的类型、版本、时间戳、分布式分类账620的通道ID、交易ID、时期、有效载荷可见性、链码路径(部署tx)、链码名称、链码版本、输入(链码和函数)、客户端(创建者)标识(诸如公钥和证书),客户端的签名、背书方的身份、背书方签名、提议散列、链码事件、响应状态、命名空间、读取集(由交易读取的键和版本的列表等),写入集(键和值的列表等)、开始键、结束键、键列表、Merkel树查询概要等。可针对N个交易中的每个交易存储交易数据。
在一些实施例中,区块数据650还可以存储向区块链622中的散列链接的区块链添加附加信息的新数据662。附加信息包括本文描述或描绘的步骤、特征、过程和/或动作中的一个或多个。因此,新数据662可以被存储在分布式分类账620上的区块的不可变日志中。存储此新数据662的益处中的一些反映于本文所揭示和描绘的各种实施例中。尽管在图6B中,新数据662被描绘在区块数据650中,但是也可以位于区块头部640或块元数据660中。新数据662可包括被用于链接组织内的文档的文档合成密钥。
区块元数据660可存储元数据的多个字段(例如,作为字节阵列等)。元数据字段可以包括关于区块创建的签名、对最后配置区块的参考、标识区块内的有效和无效交易的交易过滤器、对区块进行排序的排序服务的存留的最后偏移等。签名、最后配置块、以及排序器元数据可以由排序服务610来添加。同时,区块的提交者(诸如区块链节点612)可以基于背书策略、读/写集的验证等来添加有效性/无效性信息。交易过滤器可包括大小等于区块数据650中的交易的数量的字节阵列和标识交易是否有效/无效的验证码。
图6C示出了根据本文描述的实施例的用于数字内容的区块链670的实施例。数字内容可包括一个或多个文件和相关联的信息。文件可包含媒体、图像、视频、音频、文本、链接、图形、动画、网页、文档或其他形式的数字内容。区块链的不可变的、仅附加的方面充当保护措施来保护数字内容的完整性、有效性和真实性,从而使数字内容适合用于法律程序(其中可接受性规则适用)或其中考虑证据或其中数字信息的呈现和使用以其他方式感兴趣的其他设置中。在这种情况下,数字内容可以被称为数字证据。
可以以各种方式形成区块链。在一个实施例中,数字内容可以被包括在区块链本身中以及可以从区块链本身来访问。例如,区块链的每个区块可以连同相关联的数字内容一起存储参考信息(例如,头部、值等)的散列值。然后,散列值和相关联的数字内容可以一起被加密。因此,每个区块的数字内容可以通过解密区块链中的每个区块来访问,并且每个区块的散列值可以用作参考前一个区块的基础。这可以说明如下:
区块1 区块2......区块N
散列值1 散列值2 散列值N
数字内容1 数字内容2 数字内容N
在一个实施例中,数字内容可以不被包括在区块链中。例如,区块链可在没有任何数字内容的情况下存储每个区块的内容的经加密的散列。数字内容可以被存储在与原始文件的散列值相关联的另一个存储区域或存储器地址中。另一个存储区域可以是用于存储区块链的同一个存储设备,或者可以是不同的存储区域或者甚至是单独的关系数据库。通过获得或查询感兴趣区块的散列值,然后在存储区域中查找与该实际数字内容相对应地存储的值,可以参考或访问每个区块的数字内容。此操作可以例如由数据库网守(gatekeeper)来执行。这可以说明如下:
Figure BDA0004113715310000381
Figure BDA0004113715310000391
在图6C的示例性实施例中,区块链670包括被加密地链接在有序序列中的多个区块6781、6782、…、678N,其中N≥1。用于链接区块6781、6782、…、678N的加密可以是多个键控或非键控散列函数中的任何函数。在一个实施例中,区块6781、6782、…、678N经受散列函数,该散列函数从基于区块中的信息的输入产生n位字母数字输出(其中,n是256或另一个数)。这样的散列函数的示例包括但不限于SHA型(SHA代表安全散列算法)算法、Merkle-Damgard算法、HAIFA算法、Merkle-tree算法、基于随机数的算法、以及防冲突的PRF算法。在另一个实施例中,区块6781、6782、…、678N可通过与散列函数不同的函数被加密地链接。为了说明的目的,参考散列函数(例如,SHA-2)进行以下描述。
区块链中的区块6781、6782、…、678N中的每一个包括头部、文件的版本、以及值。作为区块链中的散列的结果,头部和值对于每个区块是不同的。在一个实施例中,该值可被包括在头部中。如下文更详细描述的,文件的版本可以是原始文件或原始文件的不同版本。
区块链中的第一个区块6781被称为起源区块,并且包括头部6721、原始文件6741和初始值6761。用于起源区块以及实际上在所有后续区块中的散列方案可以变化。例如,第一区块6781中的所有信息可被一起散列并且一次散列,或者第一区块6781中的信息的每一个或一部分可被分开散列,然后可执行被分开散列的部分的散列。
头部6721可以包括一个或多个初始参数,其例如可以包括版本号、时间戳、随机数、根信息、难度级、共识协议、持续时间、媒体格式、源、描述性关键字、和/或与原始文件6741和/或区块链相关联的其他信息。头部6721可以自动地(例如,通过区块链网络管理软件)或由区块链参与者手动地生成。与区块链中的其他区块6782至678N中的头部不同,起源区块中的头部6721不参考前一个区块,这只是因为不存在前一个区块。
起源区块中的原始文件6741可以是例如在被包括在区块链中之前在具有或没有处理的情况下由设备捕获的数据。通过系统的接口从设备、媒体源或节点接收原始文件6741。原始文件6741与元数据相关联,元数据例如可以由用户、设备和/或系统处理器手动地或自动地生成。元数据可以被包括在与原始文件6741相关联的第一区块6781中。
起源区块中的值6761是基于原始文件6741的一个或多个唯一属性生成的初始值。在一个实施例中,一个或多个唯一属性可以包括原始文件6741的散列值、原始文件6741的元数据、以及与文件相关联的其他信息。在一个实施例中,初始值6761可基于以下唯一属性:
1)SHA-2计算的原始文件的散列值
2)发端设备ID
3)原始文件的开始时间戳
4)原始文件的初始存储位置
5)用于软件当前控制原始文件和相关联元数据的区块链网络成员ID
区块链中的其他区块6782至678N也具有头部、文件和值。然而,与第一区块6721不同,其他区块中的头部6722至672N中的每一个包括紧接在前的区块的散列值。紧接在前的区块的散列值可以仅是前一个区块的头部的散列或者可以是整个前一个区块的散列值。通过在剩余区块的每一个中包括前一个区块的散列值,可以在逐块的基础上执行从第N个区块返回到起源区块(和相关联的原始文件)的跟踪,如箭头680所指示的,以建立可审计的和不可变的监管链。
其他区块中的头部6722至672N中的每一个还可以包括其他信息,例如,版本号、时间戳、随机数、根信息、难度级、共识协议、和/或总体上与对应的文件和/或区块链相关联的其他参数或信息。
其他区块中的文件6742至674N可以等于原始文件或者可以是起源区块中的原始文件的修改版本,这取决于例如所执行的处理的类型。所执行的处理的类型可从区块到区块变化。该处理可以涉及例如对在前区块中的文件的任何修改,如编辑信息或以其他方式改变文件的内容、将信息从这些文件移除、或将信息添加或附加到这些文件上。
另外或可替代地,处理可以涉及只是从在前区块复制文件、改变文件的存储位置、分析来自一个或多个在前区块的文件、将文件从一个存储或存储器位置移动到另一个、或执行相对于区块链的文件和/或其相关联的元数据的动作。涉及分析文件的处理可以包括例如附加、包括或以其他方式将各种分析、统计或与该文件相关联的其他信息相关联。
其他区块中的其他区块6762至676N中的每一个中的值是唯一的值,并且作为所执行的处理的结果都是不同的。例如,任何一个区块中的值对应于前一个区块中的值的更新版本。该更新反映在被赋值的区块的散列中。区块的值因此提供在区块中执行了什么处理的指示,以及还允许通过区块链返回到原始文件的跟踪。该跟踪确认文件在整个区块链中的监管链。
例如,考虑先前区块中的文件的多个部分被编辑、阻挡或像素化以便保护在文件中显示的人的身份的情况。在这种情况下,包括被编辑文件的区块将包括与被编辑文件相关联的元数据,例如,如何执行编辑、谁执行编辑、编辑发生的时间戳等。元数据可以被散列以形成值。因为区块的元数据与被散列以形成前一个区块中的值的信息不同,所以这些值彼此不同且可在解密时被恢复。
在一个实施例中,当发生以下任何一者或多者时,可以更新前一个区块的值(例如,计算新的散列值)以形成当前区块的值。在此示例实施例中,可以通过对以下指出的信息的全部或一部分进行散列来计算新的散列值。
a)如果文件已经以任何方式被处理(例如,如果文件被编辑、复制、更改、访问或采取一些其他动作),则新SHA-2计算的散列值
b)文件的新存储位置
c)所识别的与该文件相关联的新元数据
d)从一个区块链参与者向另一个区块链参与者转移对文件的访问或控制
图6D示出根据一个实施例的可表示区块链690中的区块结构的区块的实施例。该区块Blocki包括头部672i、文件674i和值676i
头部672i包括前一个区块Blocki-1的散列值和附加参考信息,该附加参考信息例如可以是本文所讨论的任意类型的信息(例如,包括参考、特性、参数等的头部信息)。所有区块参考前一个区块的散列,当然起源区块除外。前一个区块的散列值可以仅是前一个区块中的头部的散列或前一个区块中的信息的全部或部分(包括文件和元数据)的散列。
文件674i包括多个数据,如按顺序的数据1、数据2、…、数据N。使用描述与数据相关联的内容和/或特性的元数据1、元数据2、…、元数据N来标记数据。例如,每个数据的元数据可以包括用于指示数据的时间戳、处理数据、指示数据中描绘的人员或其他内容的关键词、和/或可以有助于作为整体建立文件的有效性和内容(特别是其使用数字证据)的其他特征的信息,例如,如结合以下讨论的实施例所描述的。除了元数据之外,每个数据可以被标记有对前一个数据的参考1、参考2、…、参考N以防止篡改、文件中的间隙、以及通过文件的顺序参考。
一旦元数据被分配给数据(例如,通过智能合约),在没有散列改变(这可以容易地被识别以用于无效)的情况下不能更改元数据。因此,元数据创建了可被访问以供区块链中的参与者使用的信息的数据日志。
值676i是散列值或基于先前讨论的任何类型的信息计算的其他值。例如,对于任何给定区块Blocki,该区块的值可被更新以反映针对该区块执行的处理,例如,新的散列值、新的存储位置、相关联的文件的新的元数据、控制或访问的转移、标识符、或将被添加的其他动作或信息。尽管每个区块中的值被示出为与文件的数据的元数据和头部分离,但是在另一个实施例中,该值可以部分地或整体地基于此元数据。
一旦形成了区块链670,在任何时间点,可以通过查询区块链以获得跨区块的值的交易历史来获得文件的不可变监管链。该查询或跟踪过程可开始于解密最近被包括的区块(例如,最后(第N个)区块)的值,然后继续解密其他区块的值,直到到达起源区块并恢复原始文件为止。解密还可包括解密每个区块处的头部和文件以及相关联的元数据。
解密是基于在每个区块中发生的加密的类型来执行的。这可涉及使用私钥、公钥、或公钥-私钥对。例如,当使用非对称加密时,网络中的区块链参与者或处理器可使用预定算法生成公钥和私钥对。公钥和私钥通过某种数学关系相互关联。公钥可公开被分发以用作从其他用户接收消息的地址,例如,IP地址或家庭地址。私钥保密并且用于对发送到其他区块链参与者的消息进行数字签名。签名被包括在消息中,使得接收方可以使用发送方的公钥来验证。这样,接收方可以确信只有发送方可能已经发送该消息。
生成密钥对可类似于在区块链上创建账户,但不必实际上在任何位置进行注册。此外,在区块链上执行的每个交易由发送方使用它们的私钥进行数字签名。此签名确保仅账户的所有者能够跟踪和处理(如果在由智能合约所确定的许可的范围内)区块链的文件。
图7A和7B示出了可以在本文中并入和使用的区块链的用例的附加示例。具体地,图7A示出了存储机器学习(人工智能)数据的区块链710的示例700。机器学习依赖于大量历史数据(或训练数据)来构建预测模型以便对新数据进行准确预测。机器学习软件(例如,神经网络等)经常可以筛选数百万个记录以挖掘非直观模式。
在图7A的示例中,主机平台720构建并部署用于资产730的预测监视的机器学习模型。在此,主机平台720可以是云平台、工业服务器、web服务器、个人计算机、用户设备等。资产730可以是任何类型的资产(例如,机器或设备等),诸如飞机、机车、涡轮机、医疗机器和设备、油气设备、客轮、船只、车辆等。作为另一示例,资产730可以是非有形资产,诸如股票、货币、数字币、保险等。
可以使用区块链710来显著地改进机器学习模型的训练过程702和基于经训练的机器学习模型的预测过程704两者。例如,在702中,不是要求数据科学家/工程师或其他用户收集数据,而是历史数据可由资产730本身(或通过中间物,未示出)存储在区块链710上。这能够显著地减少主机平台720在执行预测模型训练时所需的收集时间。例如,使用智能合约,数据可以直接地并且可靠地从其起始位置直接传输到区块链710。通过使用区块链710来确保所收集的数据的安全性和所有权,智能合约可以直接将数据从资产发送到使用该数据来建立机器学习模型的个体。这允许在资产730之间共享数据。
可以基于共识机制将所收集的数据存储在区块链710中。共识机制拉入(经许可的节点)以确保正在被记录的数据被验证并准确。所记录的数据被加时间戳、被加密地签名并且是不变的。因此,所记录的数据是可审计的、透明的并且是安全的。在特定情况下(即,供应链、医疗、物流等),添加直接写入区块链的IoT设备能够增大被记录的数据的频率和准确度。
此外,机器学习模型在所收集的数据上的训练可以由主机平台720采取多轮细化和测试。每个轮次可以基于附加数据或先前未被考虑的数据以帮助扩展机器学习模型的知识。在702中,不同的训练和测试步骤(以及与其相关联的数据)可以由主机平台720存储在区块链710上。机器学习模型的每个细化(例如,变量、权重等的变化)可以被存储在区块链710上。这提供了如何训练模型以及使用什么数据来训练模型的可验证证明。此外,当主机平台720已经获得最终训练的模型时,所得到的模型可以被存储在区块链710上。
在模型已经被训练之后,模型可以被部署到现场环境,其中,模型可以基于最终训练的机器学习模型的执行来做出预测/决定。例如,在704中,机器学习模型可以用于诸如飞机、风力涡轮机、医疗机器等资产的基于条件的维护(CBM)。在该示例中,从资产730反馈的数据可以被输入到机器学习模型并且被用于进行事件预测,诸如故障事件、错误代码等。通过在主机平台720处执行机器学习模型而做出的判定可以被存储在区块链710上以提供可审核/可验证的证明。作为一个非限制性示例,机器学习模型可以预测资产730的一部分的未来崩溃/失败,并且创建替换该部分的警报或通知。此决策背后的数据可由主机平台720存储在区块链710上。在一个实施例中,本文描述和/或描绘的特征和/或动作可以在区块链710上或相对于区块链710发生。
区块链的新交易可被一起收集到新区块中并被添加到现有散列值。然后将其加密以创建新区块的新散列。当交易被加密时,新散列被添加到下一交易列表,以此类推。结果是各自包含所有先前区块的散列值的区块的链。存储这些区块的计算机定期比较它们的散列值以确保它们全部一致。任何不一致的计算机丢弃引起该问题的记录。这种方法对于确保区块链的防篡改是良好的,但它不是完美的。
对此系统施加诡计的一种方式是使不诚实的用户以他们的偏好改变交易列表,但是以保持散列不变的方式。这可以通过暴力完成,换言之,通过改变记录、加密结果以及查看散列值是否相同。并且如果不同,则反复地尝试,直到找到匹配的散列为止。区块链的安全性是基于这样的信念:普通计算机只能在完全不切实际的时间尺度(诸如宇宙的年龄)上执行这种暴力攻击。相比之下,量子计算机要快得多(快1000倍)并且因此造成大得多的威胁。
图7B示出了实现量子密钥分发(QKD)以防止量子计算攻击的量子安全区块链752的示例750。在该示例中,区块链用户可以使用QKD来验证彼此的身份。QKD利用诸如光子的量子粒子发送信息,在不破坏量子粒子的情况下窃听者无法复制该信息。这样,发送方和接收方通过区块链可以确定彼此的身份。
在图7B的示例中,存在四个用户754、756、758和760。每对用户可在它们之间共享密钥762(即,QKD)。由于在该示例中存在四个节点,因此存在六对节点,因此使用六个不同的密钥762,包括QKDAB、QKDAC、QKDAD、QKDBC、QKDBD和QKDCD。每个对可以通过使用量子粒子(例如光子)发送信息来创建QKD,在不破坏量子粒子的情况下窃听者无法复制该信息。这样,一对用户能够确定彼此的身份。
区块链752的操作是基于以下两个过程:(i)交易的创建,以及(ii)聚集新交易的区块的构造。可以类似于传统的区块链网络来创建新交易。每个交易可以包含与发送方、接收方、创建时间、待转移的金额(或值)、证明发送方拥有用于操作的资金的参考交易列表等相关的信息。该交易记录然后被发送到所有其他节点,在其他节点处,该交易记录被输入到未确认交易池中。在此,两方(即,754-760之中的一对用户)通过提供他们的共享密钥762(QKD)来认证交易。该量子签名可被附接至每个交易,使得交易非常难以篡改。每个节点相对于区块链752的本地副本检查它们的条目以验证每个交易具有足够的资金。然而,交易尚未被确认。
可以使用广播协议以分散方式创建区块,而不是对区块执行传统的挖掘过程。在预定时间段(例如,秒、分钟、小时等),网络可将广播协议应用于任何未确认的交易,从而达成关于交易的正确版本的拜占庭协议(共识)。例如,每个节点可以拥有私有值(该特定节点的交易数据)。在第一轮中,节点将它们的私有值传送给彼此。在随后的轮次中,节点传送它们在前一个轮次从其他节点接收的信息。在此,诚实节点能够在新区块内创建完整的一组交易。此新的区块可以被添加到区块链752。在一个实施例中,本文描述和/或描绘的特征和/或动作可在区块链752上或相对于区块链752发生。
现在参考图8,示出了根据本公开的实施例的可以用于实现本文描述的方法、工具和模块以及任何相关功能中的一个或多个(例如,使用计算机的一个或多个处理器电路或计算机处理器)的示例计算机系统800的高级框图。在一些实施例中,该计算机系统可以是如上所述的DPS 10。在一些实施例中,计算机系统800的主要组件可以包括一个或多个CPU802、存储器子系统804、终端接口812、存储接口816、I/O(输入/输出)设备接口814和网络接口818,所有这些组件可以直接或间接地通信耦合,以便经由存储器总线803、I/O总线808和I/O总线接口单元810进行组件间通信。
计算机系统800可以包含一个或多个通用可编程中央处理单元(CPU)802A、802B、802C和802D,在此一般称为CPU 802。在一些实施例中,计算机系统800可以包含相对大的系统的典型的多个处理器;然而,在其它实施例中,计算机系统800可以替代地是单CPU系统。每个CPU 802可以执行存储在存储器子系统804中的指令,并且可以包括一级或多级板载高速缓存。
系统存储器804可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)822或高速缓存824。计算机系统800还可以包括其它可移动/不可移动、易失性/非易失性计算机系统存储介质。仅作为示例,存储系统826可被提供用于从诸如“硬盘驱动器”等不可移动、非易失性磁介质中读取和向其写入。尽管未示出,但可提供用于从可移动、非易失性磁盘(例如,“软盘”)中读取和向其写入的磁盘驱动器,或可提供用于从诸如CD-ROM、DVD-ROM等可移动、非易失性光盘中读取或向其写入的光盘驱动器或其它光学介质。另外,存储器804可以包括闪存,例如,闪存棒驱动器或闪存驱动器。存储器设备可以通过一个或多个数据介质接口连接到存储器总线803。存储器804可以包括至少一个程序产品,该程序产品具有一组(例如,至少一个)程序模块,这些程序模块被配置为用于执行不同实施例的功能。
一个或多个程序/实用程序828(每个程序/实用程序具有至少一组程序模块830)可以被存储在存储器804中。程序/实用程序828可包括系统管理程序(也称为虚拟机监视器)、一个或多个操作系统、一个或多个应用程序、其它程序模块和程序数据。操作系统、一个或多个应用程序、其它程序模块和程序数据或其某种组合中的每一个可包括联网环境的实现。程序828和/或程序模块830一般执行各实施例的功能或方法。
尽管存储器总线803在图8中被示为在CPU 802、存储器子系统804和I/O总线接口810之间提供直接通信路径的单个总线结构,但是在一些实施例中,存储器总线803可以包括多个不同的总线或通信路径,其可以以各种形式中的任何形式来布置,诸如分层的点对点链路、星形或网状配置、多层总线、并行和冗余路径、或任何其他适当类型的配置。此外,虽然I/O总线接口810和I/O总线808被示为单个相应的单元,但是在一些实施例中,计算机系统800可以包含多个I/O总线接口单元810、多个I/O总线808或两者。此外,虽然示出了将I/O总线808与通向各种I/O设备的各种通信路径分开的多个I/O接口单元,但是在其他实施例中,一些或所有I/O设备可以直接连接到一个或多个系统I/O总线。
在一些实施例中,计算机系统800可以是多用户大型计算机系统、单用户系统、或服务器计算机或具有很少或没有直接用户接口但从其它计算机系统(客户端)接收请求的类似设备。此外,在一些实施例中,计算机系统800可以被实现为台式计算机、便携式计算机、膝上型或笔记本计算机、平板计算机、袖珍计算机、电话、智能电话、网络交换机或路由器、或任何其他适当类型的电子设备。
图8描绘了示例计算机系统800的代表性主要组件。然而,在一些实施例中,各个组件可以具有比图8中所表示的更大或更小的复杂度,可以存在不同于图8中所示的组件或除了这些组件之外的组件,并且这些组件的数量、类型和配置可以改变。
如本文更详细地讨论的,可以设想,本文描述的方法的一些实施例的一些或所有操作可以以替代顺序执行或者可以根本不执行;此外,多个操作可以同时发生或作为更大过程的内部部分发生。
允许虚拟货币到期日期的电子钱包
系统概述
本公开考虑使用电子钱包,该电子钱包允许使用区块链技术的虚拟货币具有作为与虚拟货币相关联的一组虚拟货币使用规则(VCUR)之一的到期日期。这样的虚拟货币在此将被称为即将到期的虚拟货币(EVC),即,具有与之相关联的使用规则的区块链虚拟货币。与EVC名称相反,到期日期不必是与EVC相关联的(一个或多个)VCUR的实际VCUR,EVC术语的使用只是为了简明起见。而且,“即将到期的虚拟货币”和“EVC”将意味着使用区块链技术并且具有与之相关联的至少一个VCUR并且可以在交易中容纳可选信息的所有虚拟货币。为了简明起见,术语“虚拟货币”在此将被定义为包括所有区块链虚拟货币以及数字货币,并且除非显式指出(通过使用术语“常规虚拟货币”),否则将不仅仅指实际或正常虚拟货币。EVC可以表示数字令牌,其在此也可以称为“本地虚拟货币”。这种EVC例如可以表示货币令牌,该货币令牌在指定期限之后已到期时可以变得不可用或者可以自动地被转移到自由选择的目的地/受让方(例如慈善组织等)。
存在这样的情况,其中希望根据VCUR(例如在特定的时间段内)向某一组实体进行购买和/或支付。例如,可能希望将EVC用于补贴,例如援助授予,或者用于在某个国家或某个地区中在某个时间段内花费的经济刺激措施的补贴。用于这种环境的现有有效方案限于间接方案,例如礼券和具有到期日期的优惠券。在电子货币系统中,这种方案限于在有限的时间段内进行积分退款等。在某些情况下,可能希望开发一种由诸如国家、特殊区域或大规模公司之类的大型组织或实体使用电子货币的方案,该方案将对策成本、帮助授予等的到期日期设置为VCUR,从而获得立即、有效和高效的结果。根据一些实施例,本文公开了一种用于实现EVC的机制,其中管理机构(例如,市政当局、公司或其他这样的实体)向用户分发具有VCUR的EVC和专用钱包。
EVC可以用于例如在本地经济区之外的商店中支付,或者用于向本地经济区中的用户支付。支付给本地经济区之外的EVC可用作普通虚拟货币而不会到期。诸如到期日期的VCUR可以由管理机构确定,管理机构是创建用于EVC的原始VCUR的实体。到期日期可以例如是预先确定的,或者可以在每次交易完成之后延长到例如N天。可以实现一种方案,使得已经到期而未在一组预先定义的EVC接收方内被使用的EVC被转移到预先指定的转移目的地列表上的转移目的地(账户)。在一些实施例中,转移目的地可以是接收作为礼物的转移的捐赠者目的地。结果,可以促进EVC在到期日期内并且根据VCUR的使用。在一些实施例中,系统允许受让方(例如受赠方组织)针对被转移的EVC自动地发布收据(例如捐赠证书),从而例如有助于捐赠者的纳税减免和/或晋升。可以构造该组预先定义的EVC接收方以实现EVC的上述使用。
在一些实施例中,EVC目的地可限于EVC接收方目的地列表(参见下表2)中的那些目的地。该列表中的接收方可以被分类成具有EVC钱包的分发目的地(本地、内部或在该组预先定义的EVC接收方内的那些目的地)以及没有EVC钱包的目的地(全球、外部或在该组预先定义的EVC接收方外部的那些目的地)。当通过指定具有EVC钱包的目的地(本地、内部)来发送款项时,交易可以被给予期限信息,并且由汇款伙伴接收的金额将在到期日期内被使用或者当达到到期日期时(或者触发其他VCUR时)被自动发送。然后,该金额将被发送到目的地(例如,慈善机构)。如果目的地被指定(全球、外部)为不具有EVC钱包,并且EVC被发送到这样的目的地,则期限信息将不被添加到交易。“全球、外部”的汇款接收方可以使用普通钱包,并将所接收的金额用作普通虚拟货币而对期限或目的地没有限制。换言之,EVC钱包将根据由于在寻址到自身的交易中设置的到期日期而产生的限制和由于专用钱包的规范而使目的地限于该列表的限制来发送款项。
以下定义和描述可以适用于本文所使用的各种术语。对于虚拟货币,交易被记录在分布式对等网络上的分布式分类账(区块链)中。原始令牌可以通过使用在每个虚拟货币交易中可选地可用的空间(例如比特币TM的OP_RETURN字段)来实现。本地虚拟货币(也可以被称为EVC)是一种用于以具有到期日期的令牌的形式来交换价值的介质。由于使用虚拟货币区块链,EVC可以具有与虚拟货币的安全性和抗伪造性等同的安全性和抗伪造性。本地经济区域网络(也可以被称为一组预先定义的EVC接收方,其限制EVC的循环范围)被如下定义。虚拟货币的交易在未规定数量的用户之间执行,而本地虚拟货币或EVC的交易只能在由发布方分发给特定用户的专用钱包应用之间执行。由此,可以在虚拟货币的全球非集中式网络或其他虚拟货币上构建由发布方管理的一组预先定义的EVC接收方,例如本地经济区域网络。一种用于生成地址和私钥的装置生成虚拟货币地址,在这些虚拟货币地址之间可以进行本地虚拟货币或EVC的交易。该装置生成对应于这些地址的私钥。所生成的信息被保存在被分发给指定用户的钱包应用中,这使得可以使每个钱包应用向另一个所生成的地址进行支付。
每个专用钱包应用可以执行向该组预先定义的EVC接收方内部或外部的另一个地址的款项转移。专用钱包应用可以通过定期访问呈现装置来获得基本信息,例如贸易伙伴的目的地地址的列表、自动转移目的地和到期日期系数。专用钱包应用可以从虚拟货币区块链提取未用于交易的余额,提取到期的余额以及以正常虚拟货币转移的方式将余额自动地转移到转移目的地。用于输入和呈现基本信息的装置能够接收诸如本地经济区域网络中的特定用户的地址列表、自动转移目的地和到期日期系数之类的基本信息的输入。基本信息可以定期地从每个专用钱包应用引用以及由每个专用钱包应用使用。该装置可以由EVC的发布方管理。
如下所述,EVC的生命可以按阶段来描述。第一阶段是由发布方创建EVC,发布方例如可以通过向普通虚拟货币(或其他货币)添加VCUR来将它们转换成EVC。在第二阶段中,发布方可以将EVC分发给一组EVC接收方。为此,EVC接收方必须具有专用EVC钱包应用程序,该应用可以由发布方建立,或者由EVC接收方通过例如将应用从在线商店下载到设备来建立。一旦EVC钱包被建立,发布方可以将EVC转移到EVC接收方。EVC的生命以EVC接收方继续,接收方在从发布方接收到EVC时将EVC存储在接收方的EVC钱包中。
在EVC生命的下一阶段中,即,EVC接收方的EVC使用或自动转移阶段,在VCUR中指定的任何到期之前,EVC接收方可以将EVC转移到其他EVC,但是只能转移到由发布方在EVC接收方目的地列表中的其他VCUR中指定的那些EVC,如下所述。然而,一旦EVC到期,它们就被自动地并且在没有EVC接收方(或其它)干预的情况下被转移到受让方,例如慈善机构。在一些实施例中,受让方只由发布方指定。在其它实施例中,受让方可以由EVC接收方(初始地或通过修改发布方的受让方)指定,这可能受到某些限制。此外,在一些实施例中,EVC接收方在EVC到期之前可以将一些EVC转移到其他EVC,并且这种转移可以在没有VCUR的情况下进行,即,作为普通虚拟货币。在其它实施例中,EVC接收方可以根据发布方的初始VCUR来转移具有包含相同、更多或更少限制的VCUR的EVC。VCUR可以以相同或改变的形式跨多个排序的交易潜在无限地转移,或者VCUR可以在某一点终止并且EVC可以被转换成普通虚拟货币。
在一些实施例中,在EVC中表示的资金被转移到没有VCUR的受让方,即,作为普通虚拟货币或其他形式的货币。EVC接收方可以在到期之前转移EVC。在一些实施例中,该转移维持VCUR,而在其它实施例中,该转移可以去除一些或全部VCUR。VCUR可被并入作为交易的一部分(例如,到期日期),或者可作为带外(即,在普通虚拟货币通信之外)通信(例如,下文所述的EVC接收方目的地列表和受让方目的地列表)来传送,或是这两者。
图9是示出包括多个区块910的分布式分类账(区块链)虚拟货币分类账900的框图,每个区块910包括多个交易920。分布式分类账900在分布式对等网络上实现。虚拟货币的用户由虚拟货币地址来标识。虚拟货币用户使用钱包应用,并通过使用与用户地址配对的密钥,证明在其目的地址被设置为该地址的交易中的所转移金额的所有权。
用户拥有其所有权的转移金额的虚拟货币可以被转移到另一个虚拟货币用户。如在说明性示例交易920中可以看到的,Alice以10个虚拟货币单位(VCU)(TxIN(交易输入))930开始,然后将2个虚拟货币VCU转移到Bob。在交易产生之后,由挖掘者(挖掘操作员)将虚拟货币交易记录到分类帐900,因此在交易920中设置作为挖掘者的补偿的要支付的0.05VCU的费用(挖掘费用)。所得到的结果(TxOUT(交易输出))940成为所记录的交易920的一部分。由于虚拟货币交易920的数据结构,可以将除了与虚拟货币的转移和接收有关的信息之外的可选信息(元数据)950设置到虚拟货币交易。取决于钱包应用的实现,该系统可以转移除虚拟货币之外的任何资产,并且记录与虚拟货币和交易相关的信息。
交易920被顺序地记录在虚拟货币分类账900中。钱包应用对每次交易920中的转移金额求和,并将所计算的金额视为可用余额。钱包应用管理与嵌入在交易920中的公钥配对的私钥,以证明交易920中的转移金额的所有权。
图10是示出了两个转移方(左侧的交易920)向受让方(右侧的交易920)的转移的框图。在这些交易920中,Alice以10VCU开始,然后将2VCU转移到Bob,在已经应用0.05VCU的费用之后,Alice留下7.95VCU 940。类似地,Joe以10VCU开始,然后将3VCU转移到Bob,在已经应用0.05VCU之后,Joe留下6.95VCU 940。最右侧的交易920示出了Bob在Bob的钱包应用的TxIN 930中从Alice和Joe接收2+3VCU作为5VCU。
图10进一步示出了最右侧的交易920作为Bob将2VCU转移到Erin的交易。然而,在这种情况下,2VCU在具有存储在可选信息950中的到期信息的EVC中。可选信息950包含一个区域,例如比特币TM中称为OP_RETURN的80字节区域,在虚拟货币脚本中允许对该区域进行自由描述。可以在可选信息950中指定到期日期,以及可以在目的地信息960中指定诸如捐赠目的地的受让方目的地,其可以构成也可以不构成交易920的一部分。本文描述的专用钱包应用可以被配置为执行限制/VCUR,并且在到期时自动转移到受让方地址。使用EVC的该交易920可以允许自动转移,例如将EVC的到期金额捐赠给指定受让方,例如慈善组织。在图10中,在一个说明性示例中,如果到期日期为2020年8月1日,并且受让方目的地为Red
Figure BDA0004113715310000561
则如果在2020年8月1日或之前尚未花费EVC,则该EVC可以被自动地转移到Red
Figure BDA0004113715310000562
的钱包中。在一些实施例中,EVC在初次使用时(在到期之前或之后)恢复为普通虚拟货币并且没有VCUR。当EVC被发送到EVC钱包之外的地址时,或者当EVC由于到期而被发送到自动目的地时,接收方在普通虚拟货币钱包中使用所接收的金额,因此对期限或目的地没有限制,因此,接收方能够发送常规虚拟货币。
图11A是示出了EVC可被转移到的一组预先定义的EVC接收方的使用的框图。在普通虚拟货币交易920'中,第一人1105引导资金从其自己的虚拟货币钱包到第二人1110的转移。交易被记录在区块链分类账1120中并且被在区块链的对等方之间共享。
在利用EVC(本地币)的系统1130中,管理机构(发布方)1152向可能使用EVC的用户(EVC接收方)1154提供在VCUR(例如到期日期)范围内的EVC。发布方1152是对虚拟货币设置使用限制(VCUR)以使虚拟货币成为EVC的发布方。发布方1152可以在执行本文描述的处理过程中利用发布方设备,例如DPS 10。发布方1152可以在例如具有由虚拟货币区块链提供的高稳健性的分布式对等网络上发布原始EVC,这使得能够构建VCUR,诸如定义内部接收方1156的那些VCUR,内部接收方是例如经济区(本地经济区)的该组预先定义的EVC接收方1140的成员,在经济区中,EVC的流通范围或用于EVC的一组内部接收方1156是有限的。内部接收方1156是可以接收EVC并在EVC的VCUR之内使用EVC的那些接收方。在一些实施例中,如果EVC接收方1154在EVC到期之前与内部接收方1156(即,在该组预先定义的EVC接收方1140(诸如本地经济区)之内的具有拥有EVC能力的钱包的那些接收方)一起使用EVC,则EVC失去其限制性属性(来自VCUR),并且可以被内部接收方1156用作普通虚拟货币。在其它实施例中,如果EVC接收方1154在EVC到期之前与内部接收方1156一起使用EVC,则EVC保持其限制性属性(来自VCUR),并且可以被内部接收方1156用作EVC。任何已到期并且未被使用的EVC都可以用于向预先指定的受让方1147的转移,例如向已经被预先设置为捐赠目的地的慈善组织等的捐赠。
在一些实施例中,发布方1152将专有钱包分发到EVC接收方1154和其他内部接收方1156,并且向在与专有钱包相对应的地址处的汇款伙伴发布具有到期日期的交易。EVC钱包可以在被寻址到自身的交易中设置的到期日期的约束下以及由于专用钱包的规范而将下一个目的地限于列表(表2)的约束下发送款项。这些到期日期和目的地限制构成了被施加于拥有他们自己的钱包的人的VCUR。作为EVC钱包的分发者的管理机构1152设置到期日期并定义分发列表。管理机构1152也是强制实施VCUR的实体。在一些实施例中,外来者不能是这些VCUR的主题。一组预先定义的收款人1150区域可以被视为具有他们自己的EVC钱包的用户的网络。
在一些实施例中,诸如捐赠目的地(图11B中的医院)的受让方1147可以使用EVC作为一般虚拟货币,换言之,没有VCUR(到期日期已过去)的虚拟货币。尽管EVC接收方1145和受让方1147在“EVC接收方目的地列表”(表2)中并且可被指定为来自专用钱包的目的地,但是在一些实施例中,EVC接收方1145和受让方1147都没有专用EVC钱包。
在一些实施例中,在到期日期之前接收到EVC的接收方1156不能将所接收的金额用作普通虚拟货币。EVC钱包将交易作为EVC发送到在“EVC接收方目的地列表”(表2)中描述的“本地(内部)”目的地,并作为普通虚拟货币发送到“全球(外部)”目的地。VCUR将被收取到专用钱包中接收的EVC的费用。另外,如果接收方1156的常规虚拟货币钱包的地址被定义在EVC接收方目的地列表(表2)中,则可以从专用钱包向该地址发送款项,但未对此进行假定。这是因为如果接收方1156将具有到期日期的EVC的全部金额发送给其所拥有的常规虚拟货币钱包,则经济区域的定义和EVC钱包都将没有意义。这提供了一种在期限内将款项作为“常规虚拟货币”发送到“全球(外部)”目的地并促使EVC所有者在期限内使用EVC的机制。
在其它实施例中,分层VCUR可由发布方提供,分层VCUR可在每次EVC被转移时改变。在示例实施例中,在一些实施方式中,未使用的EVC可以有助于激活慈善和社会贡献。当以这种方式被使用时,EVC的持有者(初始EVC接收方1154)可以接收未使用的EVC的捐赠证书,作为这些EVC接收方1154有权享有税收收益的证据。在一些实施例中,EVC接收方1154、发布方1152和内部接收方1156中的一个或多个可以利用EVC钱包作为加载到其设备(例如DPS 10)上的特殊应用。
发布方1152可以是在EVC上强制实施VCUR的发布方,或者在一些实施例中,可以在具有预先存在的VCUR的EVC上强制实施附加的VCUR。VCUR还可以描绘EVC可以和不可以被用作使用EVC的交易的一部分的对象。该描绘可以通过定义一组预先定义的EVC接收方1150(至少包含内部接收方1156)来进行,在EVC到期之前,EVC可以与该组预先定义的EVC接收方一起使用。在到期之前,EVC不能与该组预先定义的EVC接收方1140之外的那些EVC接收方一起使用。VCUR在定义谁/什么在该组预先定义的EVC接收方1150中以及谁不在其中1140方面可以是非常灵活的。例如,该组预先定义的EVC接收方1150可由地理边界来定义。这样的定义可以是例如地理围栏(包括非邻接区域)的形式,并且可以包括一个或多个国家、州、县、城市或任何其它可定义的区域。
在一些实施例中,此类边界可应用于在该组预先定义的EVC接收方之内的内部接收方1156的居所或工作地点。如在本文中的其他位置所述,在一些实施例中,在到期之前原始EVC接收方1154对内部接收方1156初始使用EVC之后,内部接收方1156不能在没有EVC对其它内部接收方1156的妨碍(VCUR)的情况下使用EVC。
尽管VCUR可以包括地球物理边界,但这仅仅是可以施加的一种类型的限制规则。然而,除了地球物理边界之外,或者代替地球物理边界,存在可以作为VCUR的一部分而被施加的其它类型的限制或规则。例如,VCUR可以限于公司或其补贴、政府实体、企业类型(例如,绿色技术)、特定原因(例如,对抗乳腺癌)或任何其他可定义的实体。因此,根据一些实施例,VCUR可以提供用于使用基于区块链1120构建的EVC来构建本地经济区的手段。VCUR还可以提供用于促进EVC的使用的手段,使得EVC在到期日期内和在本地经济区中或在该组预先定义的EVC接收方内被使用。可以使用虚拟货币区块链分类账1120在特定参与者/受让方之间构建该组预先定义的EVC接收方。然后,EVC(预定日期或交易日期+N天)可以分布在本地经济区或该组预先定义的EVC接收方中。EVC可由专用于特定的一组预先定义的EVC接收方(例如在本地经济区域内的那些EVC接收方)的钱包应用读取,并且只能在到期日期内在区块链上被处理。在一些实施例中,超出其到期日期的EVC可随后被自动转移到由管理机构/发布方1152(例如慈善组织)识别的受让方1147。在一些实施例中,受让方1147接收所有虚拟货币而不受阻碍(VCUR),在其他实施例中,一些其他VCUR可以被附加到这些虚拟货币。这种附加VCUR可以是本文描述的任何一个或所有VCUR,除了不应使用相同的到期日期,因为它已经到期。通过使用诸如虚拟货币分类账的虚拟货币区块链分类账1120,可以使用现有区块链分类账来执行交易,并且因此不需要构建新的原始区块链。
有利地,本文公开的各种实施例允许诸如大规模公司或国家等的大型组织在特定时间段内有效且高效地使用对策成本、援助授予等。即使当EVC已经到期时,转移(诸如捐赠等)的证据也可以以收据的形式提供,使得在到期触发转移时已经接收EVC的人可以享受某些利益,诸如税收利益。
图11B是与图11A类似的框图,但是其另外示出了未使用的EVC可在EVC到期时(和/或根据任何其它VCUR)被自动发送到的受让方1147。在图11B中,受让方是医院1147,其已经在EVC的VCUR中被指定为由于EVC超过其到期日期而产生的EVC的接收方。在接收到转移时,医院1147可将转移的收据发出给原始EVC接收方1154的持有者。如果转移已经被指定为捐赠,则收据可以是捐赠证书的形式。这种收据可以被用于例如记录保存、税务申报等。
图12是示出了用于实现由管理机构/发布方1152在创建和分发EVC时使用的系统的一些实施例的过程1200的流程图。在操作1205中,系统接收并处理发布方1152的指令,并着手获取“常规”虚拟货币作为要用作EVC的资金。在操作1210中,创建帐户列表。该操作可以包括,对于由发布方1152标识的每个用户,生成:私钥、公钥和虚拟货币地址。下表示出了这种账户列表可能看起来的样子。
Figure BDA0004113715310000611
表1
示例账户列表
发布方1152可以管理EVC最初要被分发到的分发目标用户(EVC接收方1154)以及可能成为来自EVC接收方1154的目的地的用户(内部接收方1156和受让方1147)。将用户指定为本地(即,内部接收方1156)意味着用户是该组预先定义的EVC接收方1150中的参与者,例如本地经济区中的参与者。将用户指定为全球意味着用户是该组接收方1140之外的指定贸易伙伴,诸如在本地经济区之外。作为说明性示例,医院和/或药房可以作为全球贸易伙伴参与以限制医疗援助的使用;可以指定某些商店以促进在公司集团内流通。在从发布方1152接收到信息时,系统可以建立适当的存储区域以构造和存储该信息,包括可以被分发给EVC的用户(或者更具体地,可以是DPS 10的用户设备)的专用EVC钱包应用。
在操作1215中,创建具有地址的目的地列表。除了省略私钥之外,该列表看起来可以类似于表1的帐户列表。下表2提供了EVC接收方目的地列表的示例。
Figure BDA0004113715310000621
表2
示例EVC接收方目的地列表
在操作1220中,由发布方1152创建诸如捐赠目的地列表之类的受让方1147目的地列表,并将其格式化和存储在系统的存储器和/或系统内的相应设备中。受让方目的地列表可指定在未使用的EVC到期时要接收这些EVC的实体。在一些实施例中,受让方目的地列表可允许输入相应受让方要接收的到期EVC的比率或百分比。下表3提供了未使用的和已到期的EVC在到期后将被自动转移到的受让方(例如捐赠)目的地列表以及转移比率的示例。
Figure BDA0004113715310000631
表3
示例受让方目的地列表
在操作1225中,在一些实施例中,由发布方1152创建到期日期系数,并且将到期日期系数存储在系统的存储器和/或系统的相应设备中。在一些实施例中,并且根据一种用于执行此操作的示例方法,到期日期是将值N设置为超过当前(发布)日期的天数作为每个交易的到期日期。例如,如果EVC创建/发布日期是2020年10月14日,并且N被设置为五,则到期日期将是2020年10月19日。换言之,N可以用作从EVC的创建开始的时间增量值。除了EVC创建日期之外,其他事件也可用作触发器。例如,复活节假日(其逐年变化)可以用作到期的触发器。在其它实施例中,可基于EVC创建日期来设置不变的固定日期。触发器不必是基于时间的,而可以是基于事件的。作为示例,触发器可以基于被定义为季节性降雨超过特定量的事件。也可以使用例如布尔逻辑来实现用于触发的更复杂规则。例如,触发器可以是“季节性降雨的第一次发生=20厘米和2020年8月15日”。触发事件可以是任何类型的事件:时间相关事件、天气条件、商业条件、性能条件等。
在操作1230中,可发布交易以便向在分发列表上并且在该组预先定义的EVC接收方(例如经济区)之内的地址支付EVC。作为示例,可以创建交易920,其中TxIN 930显示发布方有20VCU,TxOUT 940显示Alice有19.95VCU,费用为0.05VCU。在交易920的可选信息950中可以指定在2021年3月8日上午10:00时的到期日期。该可选信息可以被写入常规虚拟货币特定OP_RETURN区域(其是80字节),并且该信息可以包括到期日期和可选的时间以及EVC的标识-例如:LOCAL_VCU_20201910。利用该信息,EVC拥有具有在其分发时设置的到期日期的余额。一些虚拟货币的OP_RETURN的80字节限制了可以在交易数据中传递的信息量,并且使用EVC钱包应用来传递本文的表中描述的元数据。然而,其他区块链可能能够容纳更大的可选数据大小,从而允许一些或全部表数据或其他VCUR在交易本身内传递。
在一些实施例中,在其中发布方1152向EVC钱包分发目的地的地址发布EVC的操作1230中,可以针对每个地址改变值N。然而,当从作为分发目的地的EVC钱包地址(1154、1156)发送EVC时,不能独立地改变值N。假定以下项之一可以被设置为在从作为分发目的地的EVC钱包地址(1154、1156)发送EVC的交易中的到期日期。
·当前(支付执行)日期+天数N
·管理实体在发布EVC时首先指定的日期
在前者中,到期日期可以随着每个交易而延长,但是在后者中,到期日期从发布时间起保持不变。
在操作1235中,系统将“自己的”地址和密钥设置到要被分发的每个EVC钱包应用。例如,Alice的EVC钱包应用可以被设置为地址:XXX,私钥:111,以及公钥:xxx。Bob的EVC钱包应用可以被设置为地址:YYY,私钥:222,以及公钥:yyy。该信息在被嵌入EVC钱包中时不需要向EVC钱包的用户公开。
在操作1240中,包含特定用户信息的EVC钱包应用可以被分发给每个钱包(或EVC钱包应用)的相应用户,例如EVC接收方1154。
图13A和13B包含可由EVC接收方1154经由其设备上的EVC钱包应用而利用的过程的流程图。在相关信息获得过程1300中,EVC接收方1154可以接收例如目的地列表,诸如表2中所示的EVC接收方目的地列表。EVC接收方1154可在操作1302中获得EVC接收方目的地列表,以及在操作1304中获得到期日期系数(N),如上所述。其他数据结构可以用于将相同或相似的数据传送到EVC接收方1154,并且可以使用例如常规虚拟货币功能来传递信息。“获得目的地列表”和值N可以通过EVC钱包与服务器系统之间的通信而不是通过区块链来获得。可以通过在激活EVC钱包时或在激活期间以规则时间间隔从服务器系统获得该信息来完成该信息的获得。
在余额过程1310(到EVC接收方1154)的呈现中,在操作1312中,从区块链中取得被寻址到EVC接收方1154的未使用的EVC交易。例如,可以确定作为EVC接收方的Alice具有20个VCU作为EVC(EVCTC)。在操作1314中,可确定是否存在被寻址到EVC接收方1154的任何未使用的EVC交易。如果否(1314:否),则如块1315所示,余额为0,并且处理进行到操作1318。如果是(1314:是),则在操作1316中,系统确定其到期日期尚未过去的EVCTC的金额。在操作1318中,未到期的EVCTC的金额被呈现为余额。在该示例中,Alice的EVCTC中的十五个EVCTC没有到期,因此这被呈现为她的余额。可以基于涉及EVC接收方1154的每个交易920的TxOut940来确定交易920是否被寻址到EVC接收方的地址。可以基于可选信息950中的OP_RETURN中的描述(标识符和到期日期)来确定交易920是否是具有原始EVC的交易。
图13B继续可由EVC接收方1154利用的各种过程。过程1320示出了使用EVC的支付。在操作1322中,EVC接收方1154可以通过使用其EVC钱包应用从EVC接收方目的地列表中选择例如目的地地址来选择内部接收方1156。参考上表2,EVC接收方1154即Alice可以选择Bob作为内部接收方1156,即,接收EVC的支付的人。在操作1324中,EVC接收方1154可指示支付内部接收方(Bob)1156的支付金额,例如1VCU。在操作1326中,EVC接收方1154的钱包应用进行检查以查看EVC接收方的钱包中的余额是否足以进行支付。如果否(操作1326:否),则该过程结束,并且在一些实施例中,可将对此的指示(例如显示在用户设备的屏幕上的消息)呈现给EVC接收方1154。否则(操作1326:是),EVC接收方1154的钱包应用在操作1328中发出被寻址到内部接收方(Bob)1156的支付交易。
图13B中的交易920示出了可能发生的示例交易。作为TxIN 930,EVC接收方的地址示出了它们的(Alice的)余额。作为TxOUT 940,示出了目的地(内部接收方1156)地址和支付金额(例如,如上所述,较少的挖掘费)。OP_Return字段950可以包括标识符号和到期日期(例如,当前日期,加上N天)。为了交易跟踪和聚合,可以提供标识符号来标识EVC,它可以被实际使用或不被使用。在一些实施例中,仅EVC可以被发送到专用EVC钱包,因此,EVC钱包只需标识以EVC钱包的地址为目的地的交易以确定该交易是否是EVC。
可以基于每个交易920的TxOut 940来确定交易是否被寻址到内部接收方1156的地址。可以基于OP_RETURN 950中的描述(标识符和到期日期)来确定交易920是否是具有原始EVC的交易。在转移目的地不同于专用钱包的情况下(即,与“EVC收件人目的地列表”(表2)中“全球,外部”的人进行贸易),EVC可以用作普通的常规虚拟货币。
过程1330示出了EVC交易的接收和由内部接收方1156或受让方1147的使用。过程1330描述了接收方显示将EVC发送到发送方所需的信息(目的地址,金额)的过程。在一些实施例中,EVC钱包可显示和读取快速响应(QR)码。对于其由这后两个实体(1156,1147)的使用,VCUR已经被移除,并且EVC被转换成常规虚拟货币,该常规虚拟货币可以被用于向外部接收方1145(例如商店)进行购买。
图14是示出用于向诸如受赠方(例如,图中所示的医院)之类的受让方1147自动支付的过程1400的流程图。每个EVC钱包应用可以保存在每个未使用的交易(即,构成EVC钱包应用的余额的交易)中设置的EVC的到期日期和时间。钱包应用可以在到期时自动地启动自动支付。然后,可以根据VCUR(例如预先设置为自动捐赠目的地的比率)分发到期余额。
在操作1405中,EVC钱包应用可以获得受让方1147(例如,受赠方)目的地以及各个受让方1147的比率,如果存在这种比率的话(或者换言之,单个受让方是否获得100%的转移)。该信息可以例如以上述表3的形式提供。在操作1410中,EVC钱包应用可以从区块链中取得被寻址到EVC接收方1154的EVC交易。如果在操作1415中不存在这种EVC交易(1415:否),则该过程结束。否则(1415:是),在操作1420中,对于那些到期日期已过去的EVC交易,EVC钱包应用可添加EVC交易金额。
然后,在操作1425中,EVC钱包应用可以根据受让方目的地列表(例如表3)的受让方1147目的地来自动发出交易。图14所示的交易920用在TxIN 930描述中列出的EVC接收方1154以及在TxOUT 940描述中的受让方(例如,受赠方)目的地地址和相应支付金额来说明这一点。在此实施例中,在OP_RETURN中没有描述可选信息950,并且交易在受让方1147的目的地处可以用作普通虚拟货币。在表3中呈现的受让方目的地列表的情况下,当到期余额为1000时,向受让方目的地组织AA支付800,以及向受让方目的地组织BB支付200。
在操作1430中,可以记录向受让方1147的自动支付的交易ID,并且可以将通知(例如,以转移的收据的形式)发送回EVC接收方1154(EVC钱包的所有者)。自动支付的记录可以被呈现给EVC接收方1154并以预定格式被输出。可以通过使用区块链探索器等借助交易ID在虚拟货币区块链中搜索交易,交易然后被输出以供查看或用于其他用途。
图15A和15B是示出用于操作系统的组件和这些组件的交互的组合框图-过程图的部分,参考标号指示了上述过程和操作。如图15A所示,发布方1152可以获取常规虚拟货币并将它们转换成EVC(操作1510(1205)))。最左侧的交易920示出在TxIN 930列中没有内容,但是,作为示例,发布方1152利用1000个虚拟货币并将其转换成EVC中的1000。将这些设置为VCUR在块1515中示出。在操作1520(1210-1235),可以执行基本输入地址生成,其中Alice、Bob和Joe被指定为EVC接收方1154。EVC被设置为在从发布EVC起N=15天时到期。
在操作1530(1240),向EVC接收方1154(即,Alice、Bob和Joe)的相应EVC钱包1525进行EVC的实际分发。最右侧的交易920示出了发布方1152正在向作为EVC接收方1154的Alice 500、Bob300和Joe 200分发1000个EVC(TxIN 930)。为了简单起见,未示出交易中可能存在的服务费。
转到图15B,在操作1540中(1320),交易在EVC接收方1153(Joe)和内部接收方1156(Alice)之间发生。Joe在EVC中向Alice转移150,Alice在她的EVC钱包中具有650的现有余额。最左侧的交易920在TxIN 930处示出了EVC为200的Joe,TxOUT 940示出了EVC为150的Alice和EVC为50的Joe,这两者都具有9月23日的到期日期。
在操作1550中(1400),从EVC接收方1154到受让方1147的转移已经由一些EVC的到期自动触发。转移1550操作的焦点日期是9月20日。由于EVC接收方1154在其钱包中具有EVC,其中钱包中500个EVC已到期而150个未到期,因此向受让方1147进行自动转移。在所示的转移1550中,受让方1147是医院。最右侧的交易920示出了这一点,其中Alice的500个EVC(已到期的EVC)被示为TxIN 930,而TxOUT 940示出了向接收方的自动转移的结果。150个EVC的金额保留在Alice的钱包中,直到在以后的日期到期。操作1560(1440)简单地示出了可以向EVC接收方1154Alice提供1565证明(诸如收据或其他形式的自动转移确认),以便她具有EVC转移的记录。Joe和Alice之间的交易是在专用EVC钱包之间进行的,并且支付给Alice的150个EVC具有到期日期。
技术应用
因此,本文公开的一个或多个实施例提供了对计算机技术的改进。例如,对数字交易分类帐的改进以及对数字交易分类帐支持的数据和交易的附加灵活性允许包括更大灵活性和安全性的更有效和高效的计算机交易文档记录。本文解决的一个技术问题是某些使用规则可能不适合交易数据本身。如本文所使用的,标准的虚拟货币交易允许80字节用于它的可选数据,但是复杂VCUR不适合在该有限空间内。尽管如此,在该有限的可选数据内包括部分VCUR允许它被识别为EVC。将带外通信用于VCUR的其余部分有利地允许比其它方式可能应用的VCUR显著更复杂的VCUR被应用于EVC。
计算机可读介质
本发明可以是处于任何可能的技术细节集成度的系统、方法和/或计算机可读介质。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质(或多个介质),这些计算机可读程序指令用于使处理器执行本发明的各方面。
计算机可读存储介质可以是能够保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、诸如上面记录有指令的打孔卡或凹槽中的凸起结构的机械编码装置,以及上述的任何适当组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤线缆的光脉冲)、或通过导线传输的电信号。
本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络(例如因特网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据、或者以一种或多种编程语言(包括面向对象的编程语言,例如Smalltalk、C++等)和过程编程语言(例如“C”编程语言或类似的编程语言)的任意组合编写的源代码或目标代码。计算机可读程序指令可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为独立的软件包执行,部分在用户的计算机上并且部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(LAN)或广域网(WAN),或者可以连接到外部计算机(例如,使用因特网服务提供商通过因特网)。在一些实施例中,为了执行本发明的各方面,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化。
在此参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。将理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令来实现。
这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,其可以引导计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的各方面的指令。
计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。
附图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方案中,框中所注明的功能可不按图中所注明的次序发生。例如,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的专用的基于硬件的系统来实现。

Claims (25)

1.一种计算机实现的方法,包括使用即将到期的虚拟货币EVC钱包用户的设备的处理器,所述处理器被配置用于:
取得与区块链相关联的并且被寻址到与EVC钱包相关联的地址的EVC交易,所述EVC交易包括所述EVC的到期日期,所述EVC遵从虚拟货币用户规则VCUR,所述到期日期是所述VCUR的一部分;
确定所述EVC交易中的所述EVC的所述到期日期是否已过去;以及
基于所述到期日期已过去的第一条件,自动地并且在没有用户干预的情况下将所述EVC转移到在所述VCUR中指定的受让方。
2.根据权利要求1所述的方法,还包括:
从受让方目的地列表中获得所述受让方;
其中,所述EVC作为没有所述VCUR的虚拟货币被转移到所述受让方。
3.根据权利要求2所述的方法,其中,所述受让方目的地列表是从正常区块链交易在带外接收的。
4.根据权利要求1所述的方法,还包括:接收将所述EVC转移到所述受让方的收据。
5.根据权利要求1所述的方法,其中,所述到期日期被存储在被记录在所述区块链中的所述交易的可选信息字段中。
6.根据权利要求1所述的方法,其中,所述到期日期是在所述交易的创建之后的天数。
7.根据权利要求1所述的方法,其中,所述受让方包括多个受让方,每个受让方指示他们各自要接收的所述EVC的一部分;
所述方法还包括:
将所述EVC的相应部分转移到与所指示的部分相对应的每个受让方。
8.根据权利要求1所述的方法,还包括:
获得EVC接收方目的地列表,所述EVC接收方目的地列表定义所述EVC用户可以向其转移所述EVC的一组预先定义的接收方,所述EVC接收方目的地列表形成所述VCUR的一部分;以及
基于所述到期日期尚未过去的第二条件,将所述EVC转移到所述VCUR中的所述一组预先定义的接收方中的接收方。
9.根据权利要求8所述的方法,还包括:
从所述EVC接收方目的地列表中获得所述接收方;
其中,所述EVC作为具有所述VCUR的虚拟货币被转移到所述接收方。
10.根据权利要求8所述的方法,还包括:
接收从所述EVC接收方目的地列表中选择的接收方的目的地地址;
接收所输入的支付金额;
进行所述EVC钱包具有大于或等于所输入的金额的EVC余额的充分性确定;以及
响应于所述充分性确定为真,将所输入的支付金额从所述EVC钱包转移到所述接收方。
11.根据权利要求1
0所述的方法,其中,转移所输入的支付金额是在没有所述VCUR的情况下被转移的。
12.一种即将到期的虚拟货币EVC装置,包括:
存储器;以及
处理器,其被配置为:
取得与区块链相关联的并且被寻址到与EVC钱包相关联的地址的EVC交易,所述EVC交易包括所述EVC的到期日期,所述EVC遵从虚拟货币用户规则VCUR,所述到期日期是所述VCUR的一部分;
确定所述EVC交易中的所述EVC的所述到期日期是否已过去;以及
基于所述到期日期已过去的第一条件,自动地并且在没有用户干预的情况下将所述EVC转移到在所述VCUR中指定的受让方。
13.根据权利要求12所述的装置,其中,所述处理器还被配置为:
从受让方目的地列表中获得所述受让方;
其中,所述EVC作为没有所述VCUR的虚拟货币被转移到所述受让方。
14.根据权利要求13所述的装置,其中,所述处理器还被配置为:
获得EVC接收方目的地列表,所述EVC接收方目的地列表定义所述EVC用户可以向其转移所述EVC的一组预先定义的接收方,所述EVC接收方目的地列表形成所述VCUR的一部分;以及
基于所述到期日期尚未过去的第二条件,将所述EVC转移到所述VCUR中的所述一组预先定义的接收方中的接收方。
15.一种用于即将到期的虚拟货币装置的计算机程序产品,所述计算机程序产品包括:
一个或多个计算机可读存储介质,以及共同存储在所述一个或多个计算机可读存储介质上的程序指令,所述程序指令包括用于执行以下操作的程序指令:
取得与区块链相关联的并且被寻址到与EVC钱包相关联的地址的EVC交易,所述EVC交易包括所述EVC的到期日期,所述EVC遵从虚拟货币用户规则VCUR,所述到期日期是所述VCUR的一部分;
确定所述EVC交易中的所述EVC的所述到期日期是否已过去;以及
基于所述到期日期已过去的第一条件,自动地并且在没有用户干预的情况下将所述EVC转移到在所述VCUR中指定的受让方。
16.根据权利要求15所述的计算机程序产品,其中,所述程序指令还配置所述处理器以:
获得EVC接收方目的地列表,所述EVC接收方目的地列表定义所述EVC用户可以向其转移所述EVC的一组预先定义的接收方,所述EVC接收方目的地列表形成所述VCUR的一部分;以及
基于所述到期日期尚未过去的第二条件,将所述EVC转移到所述VCUR中的所述一组预先定义的接收方中的接收方。
17.一种即将到期的虚拟货币EVC系统,包括:
EVC发布方设备,其包括:
存储器;以及
处理器,其被配置为:
创建包括多个账户记录的账户列表,每个账户记录包括关于与EVC接收方标识符相关联的EVC接收方是在一组预先定义的EVC接收方的内部还是外部的指示符,其中,所述账户记录对应于多个EVC接收方;
创建包括多个目的地记录的EVC接收方目的地列表,每个目的地记录包括所述EVC接收方标识符、公钥、虚拟货币地址、以及关于所述EVC接收方是在一组预先定义的EVC接收方的内部还是外部的所述指示符;
创建与所述EVC的到期日期相关的值;
针对用于保存用于所述EVC接收方的EVC的多个EVC钱包中的每个EVC钱包,设置EVC接收方地址和安全密钥;以及
将所述EVC钱包中的所述每个EVC钱包分发到相应的所述EVC接收方。
18.根据权利要求17所述的系统,其中,所述EVC设备的所述处理器还被配置为:
接收从所述EVC接收方目的地列表中选择的接收方的目的地地址;
接收所输入的支付金额;
进行所述EVC钱包具有大于或等于所输入的金额的EVC余额的充分性确定;以及
响应于所述充分性确定为真,将所输入的支付金额从所述EVC钱包转移到所述接收方。
19.根据权利要求17所述的系统,其中:
转移所输入的支付金额是在没有所述VCUR的情况下被转移的;
所述受让方包括多个受让方,每个受让方指示他们各自要接收的所述EVC的一部分;以及
所述EVC设备的所述处理器还被配置为:将所述EVC的相应部分转移到与所指示的部分相对应的每个受让方。
20.根据权利要求17所述的系统,其中,所述EVC发布方设备的所述处理器还被配置为:
获取初始虚拟货币;以及
通过利用所述初始虚拟货币以通过包括金额和与所述到期日期相关的值而创建交易,来发布针对EVC接收方的交易。
21.根据权利要求17所述的系统,其中:
所述多个账户记录中的每个账户记录包括EVC接收方标识符、私钥、公钥以及虚拟货币地址;以及
所述EVC发布方设备处理器还被配置为:
创建包括多个受让方目的地记录的受让方目的地列表,每个受让方目的地记录包括受让方目的地标识符和虚拟货币地址。
22.一种计算机实现的方法,包括使用即将到期的虚拟货币EVC发布方的设备的处理器,所述处理器被配置用于:
创建包括多个账户记录的账户列表,每个账户记录包括EVC接收方标识符、私钥、公钥、虚拟货币地址、以及关于与所述EVC接收方标识符相关联的EVC接收方是在一组预先定义的EVC接收方的内部还是外部的指示符,其中,所述账户记录对应于多个EVC接收方;
创建包括多个目的地记录的EVC接收方目的地列表,每个目的地记录包括所述EVC接收方标识符、所述公钥、所述虚拟货币地址、以及关于所述EVC接收方是在一组预先定义的EVC接收方的内部还是外部的所述指示符;
创建与所述EVC的到期日期相关的值;
针对用于保存用于所述EVC接收方的EVC的多个EVC钱包中的每个EVC钱包,设置EVC接收方地址和安全密钥;以及
将所述EVC钱包中的所述每个EVC钱包分发到相应的所述EVC接收方。
23.根据权利要求22所述的方法,还包括:
获取初始虚拟货币;以及
通过利用所述初始虚拟货币以通过包括金额和与所述到期日期相关的值而创建交易,来发布针对EVC接收方的交易。
24.根据权利要求22所述的方法,还包括:
创建包括多个受让方目的地记录的受让方目的地列表,每个受让方目的地记录包括受让方目的地标识符和虚拟货币地址。
25.根据权利要求24所述的方法,其中,所述受让方是多个受让方中的一个受让方,并且所述多个受让方中的每个受让方已关联有与所述转移相关联的EVC的金额的百分比或比率。
CN202180059952.9A 2020-07-28 2021-07-20 允许虚拟货币到期日期的电子钱包 Pending CN116157818A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/940,444 2020-07-28
US16/940,444 US20220036323A1 (en) 2020-07-28 2020-07-28 Electronic wallet allowing virtual currency expiration date
PCT/IB2021/056537 WO2022023875A1 (en) 2020-07-28 2021-07-20 Electronic wallet allowing virtual currency expiration date

Publications (1)

Publication Number Publication Date
CN116157818A true CN116157818A (zh) 2023-05-23

Family

ID=80004495

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180059952.9A Pending CN116157818A (zh) 2020-07-28 2021-07-20 允许虚拟货币到期日期的电子钱包

Country Status (5)

Country Link
US (1) US20220036323A1 (zh)
JP (1) JP2023535605A (zh)
CN (1) CN116157818A (zh)
GB (1) GB2612270A (zh)
WO (1) WO2022023875A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4086139A1 (en) 2020-07-07 2022-11-09 Amsted Rail Company, Inc. Systems and methods for railway asset management
US12079783B2 (en) * 2020-10-20 2024-09-03 Ricoh Company, Ltd. Information processing system, document management device, and recording medium
US12081979B2 (en) * 2020-11-05 2024-09-03 Visa International Service Association One-time wireless authentication of an Internet-of-Things device
JP7566233B1 (ja) 2023-11-21 2024-10-15 久利寿 帝都 電子通貨基盤を実現するための方法およびシステム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7028187B1 (en) * 1991-11-15 2006-04-11 Citibank, N.A. Electronic transaction apparatus for electronic commerce
US20030191719A1 (en) * 1995-02-13 2003-10-09 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US9600817B2 (en) * 2014-03-04 2017-03-21 Bank Of America Corporation Foreign exchange token
US10210490B2 (en) * 2015-02-13 2019-02-19 Sony Corporation Processing electronic monetary transactions using plurality of virtual currency instruments
US10504178B2 (en) * 2015-11-04 2019-12-10 Chicago Mercantile Exchange Inc. System for physically delivering virtual currencies
US11088826B2 (en) * 2018-02-27 2021-08-10 International Business Machines Corporation Managing assets with expiration on a blockchain

Also Published As

Publication number Publication date
US20220036323A1 (en) 2022-02-03
WO2022023875A1 (en) 2022-02-03
JP2023535605A (ja) 2023-08-18
GB2612270A (en) 2023-04-26
GB202302591D0 (en) 2023-04-12

Similar Documents

Publication Publication Date Title
CN114450708B (zh) 基于现有链码的链码推荐
WO2021105836A1 (en) Dynamic permission assignment and enforcement for transport process
CN112241919B (zh) 具有数据流控制的多域区块链网络
CN114365116A (zh) 来自私有区块链的更新的链外通知
WO2022017413A1 (en) Sustainable tokens for supply chain with privacy preserving protocol
US20220036323A1 (en) Electronic wallet allowing virtual currency expiration date
CN112084255A (zh) 机器学习应用的有效验证
US20230070625A1 (en) Graph-based analysis and visualization of digital tokens
US20220179869A1 (en) Coexistence mediator for facilitating blockchain transactions
CN114363327A (zh) 区块链网络中的合规机制
US11455598B2 (en) Automated conflict resolution
US20230057898A1 (en) Privacy preserving auditable accounts
US11640392B2 (en) Blockchain endorsement agreement
CN115668856A (zh) 分散式数据库中的许可事件
CN112052474A (zh) 蓝光拷贝服务
Dash et al. Artificial intelligence models for blockchain-based intelligent networks systems: Concepts, methodologies, tools, and applications
CN114981773A (zh) 无冲突版本控制
CN115427980A (zh) 上下文完整性保持
WO2021116813A1 (en) Anonymization of partners
US20210117919A1 (en) Last-mile deliver coordination
CA3167522A1 (en) Blockchain-based security token for kyc verification
US20220051129A1 (en) Blockchain-enabled model drift management
Kumar et al. Blockchain technology and applications
Vestergaard et al. Distributed ledger technology: beyond the hype
CN112016118A (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