CN114788222A - 用于安全和可验证的离线区块链交易的方法和系统 - Google Patents
用于安全和可验证的离线区块链交易的方法和系统 Download PDFInfo
- Publication number
- CN114788222A CN114788222A CN202080046994.4A CN202080046994A CN114788222A CN 114788222 A CN114788222 A CN 114788222A CN 202080046994 A CN202080046994 A CN 202080046994A CN 114788222 A CN114788222 A CN 114788222A
- Authority
- CN
- China
- Prior art keywords
- computing device
- blockchain
- data value
- transaction
- blockchain data
- 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
-
- 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
-
- 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
- G06Q20/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
-
- 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/02—Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
- G06Q20/027—Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP] involving a payment switch or gateway
-
- 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
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key 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/38—Payment protocols; Details thereof
- G06Q20/385—Payment protocols; Details thereof using an alias or single-use codes
-
- 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/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0877—Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
-
- 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/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- 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/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
- H04L9/0897—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
-
- 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/3226—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 a predetermined code, e.g. password, passphrase or PIN
- H04L9/3228—One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
-
- 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/3247—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 involving digital signatures
-
- 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/3297—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 involving time stamps, e.g. generation of time stamps
-
- 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
- G06Q2220/00—Business processing using cryptography
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- Strategic Management (AREA)
- General Physics & Mathematics (AREA)
- Finance (AREA)
- Computing Systems (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Storage Device Security (AREA)
Abstract
一种通过受信执行环境和限时凭证进行安全、能验证、离线区块链交易的方法,包括:在计算设备的受信执行环境中存储包括公钥和私钥组成的密码密钥对;由计算设备的发送器将公钥发送到区块链网络中的网关设备;由计算设备的接收器从网关设备接收限时凭证;由计算设备的处理设备生成区块链数据值,其中该区块链数据值至少包括限时凭证、交易金额和目的地址;由计算设备的受信执行环境使用私钥对所生成的区块链数据值进行数字签名;以及由计算设备的发送器将签名的区块链数据值发送到外部设备。
Description
相关申请的交叉引用
本申请要求于2019年7月12日提交的美国非临时申请第16/509,765号的权益和优先权。上述申请的全部公开内容通过引用并入本文。
技术领域
本公开涉及安全且可验证的离线区块链交易,具体涉及除了诸如移动设备之类的嵌入式系统中的受信执行环境之外还使用网关和限时凭证,以使得能够在没有与相关区块链网络中的任何节点的活跃连接的情况下在计算设备之间进行区块链交易。
背景技术
区块链具有优于传统支付系统的许多明显益处,尤其是区块链所提供的匿名性以及大多数区块链所提供的透明度,其中每笔交易都是公开可见的。然而,与其传统支付网络对应物相比,区块链也承受许多缺点。一个这样的缺点是需要与区块链节点的活跃通信信道。
在传统的支付交易中,通常作为处理的一部分与支付网络和金融机构交换消息。然而,在连接对支付网络或金融机构不可用的情况下,有时允许离线进行支付交易。在这些情况下,支付网络和/或发行机构可授权销售点、网关处理器、商户、收单机构或其他实体执行代表处理,其中可以使用可从支付工具本身获得的数据来授权支付交易,并且稍后将信息提供给支付网络进行同步。在通信可能较弱的情况下或在可能使通信失败或花费大量时间的大型网络拥塞的情况下,此类方法可能是有益的。
然而,对于区块链,目前没有这样的方法。区块链交易的处理需要连接到区块链网络中的节点,以便验证提议的交易(例如,确保付款人有足够的货币来支付交易金额并有权使用所提议的未花费的交易输出)。这样的验证常常被认为是必要的,因为任何离线交换都可能使付款人能够在区块链被更新之前不止一次使用未花费的交易输出,从而使付款人能够在多次交易中使用一个货币单位,这将导致一个或多个收款人在其支付时遭受损失。
因此,需要一种技术解决方案,以使得能够以在防止货币被用于多个离线交易的同时提供正确性的方式离线进行区块链交易。
发明内容
本公开提供了对通过受信执行环境和限时凭证执行安全、可验证、离线区块链交易的系统和方法的描述。使用了一种新型的区块链节点,在本文中称为网关,其中该网关保持与向其注册的每个区块链钱包相关联的货币金额和未花费的交易输出的记录。当用户希望能够离线进行区块链交易时,区块链钱包向网关注册并向其请求限时凭证。凭证被提供给钱包,其可以在离线交换期间与其他传统区块链交易信息一起传输给接收者。在一些实施例中,资产信息也存储在设备中,该设备即使在离线时也保持对区块链钱包可用的未花费的交易输出的记账,这用于确保没有输出被双重花费。该记账连同限时凭证使得能够离线进行区块链交易,同时防止双重花费,并且使收款人能够确保他们在与区块链网络的活跃连接可用时将接收正确的货币,并且还使收款人能够在随后的离线交易中立即使用该货币。
一种通过受信执行环境和限时凭证进行安全、可验证、离线区块链交易的方法包括:在计算设备的受信执行环境中存储包括公钥和私钥的密码密钥对;由计算设备的发送器将公钥发送到区块链网络中的网关设备;由计算设备的接收器从网关设备接收限时凭证;由计算设备的处理设备生成区块链数据值,其中该区块链数据值至少包括限时凭证、交易金额和目的地址;由计算设备的受信执行环境使用私钥对所生成的区块链数据值进行数字签名;以及由计算设备的发送器将签名的区块链数据值发送到外部设备。
一种通过受信执行环境和限时凭证执行安全、可验证、离线的区块链交易的系统包括:区块链网络的网关设备;计算设备,包括存储包括公钥和私钥的加密密钥对的受信执行环境、将公钥发送到网关设备的发送器、从网关设备接收限时凭证的接收器、以及生成区块链数据值的处理设备,其中该区块链数据值至少包括限时凭证、交易金额和目的地址,其中受信执行环境使用私钥对所生成的区块链数据值进行数字签名,并且发送器将签名的区块链数据值发送到外部设备;以及外部设备,接收签名的区块链数据值。
附图说明
从结合附图阅读时的示例性实施例的以下详细描述,本公开的范围得到最好的理解。附图中包括以下各图:
图1是示出根据示例性实施例的用于执行离线区块链交易的高级系统架构的框图。
图2是示出根据示例性实施例的用于通过受信执行环境执行离线区块链交易的图1的系统的计算设备的框图。
图3是示出根据示例性实施例的用于在图1的系统中执行离线区块链交易的过程的流程图。
图4是示出根据示例性实施例的用于通过受信执行环境和限时凭证来执行安全、可验证、离线区块链交易的示例性方法的流程图。
图5是示出根据示例性实施例的计算机系统架构的框图。
根据下文提供的详细描述,本公开的其他应用领域将变得清楚。应当理解的是,示例性实施例的详细描述仅旨在说明目的,因此不旨在必然限制本公开的范围。
具体实施方式
术语表
区块链—基于区块链的数字资产的所有交易的共享账本。一个或多个计算设备可以构成区块链网络,该区块链网络可被配置为处理和记录作为区块链中的区块的一部分的交易。一旦区块完成,就将该区块添加到区块链并从而更新交易记录。在许多情况下,区块链可以是按时间顺序的交易的账本,或者可以以适合供区块链网络使用的任何其他顺序呈现。在一些配置中,区块链中记录的交易可包括目的地址和资产金额,使得区块链记录多少货币可归属于特定地址。在一些情况下,交易是金融的而其他不是金融的,或者可能包括附加的或不同的信息,诸如源地址、时间戳等。在一些实施例中,区块链也可包括或者替代地包括几乎任何类型的数据作为被放置或需要被放置在分布式数据库中的交易的形式,并且可由区块链网络通过工作证明和/或与其相关联的任何其他合适的验证技术确认和核实(validate),该分布式数据库保持防止(甚至被其操作者)篡改和修订的不断增长的数据记录清单。在一些情况下,关于给定交易的数据还可包括附加到交易数据的附加数据,该附加数据不直接是交易的一部分。在一些情况下,将此类数据纳入区块链可能构成交易。在这种情况下,区块链可能不与特定的数字货币、法定货币或其他类型的货币直接相关联。
用于执行离线区块链交易的系统
图1示出了用于通过使用受信执行环境(TEE)和限时凭证在离线时(例如,没有与区块链节点的活跃连接)执行安全且可验证的区块链交易的系统100。
系统100可包括计算设备102。下面更详细讨论的计算设备102可包括区块链钱包。如在下面讨论的区块链钱包可以包括包含公钥和私钥的加密密钥对,其可以存储在计算设备102中的TEE中。TEE可以使得存储在其中的数据可能无法被计算设备102中的TEE之外的任何组件访问。换言之,计算设备102的TEE中存储的私钥可能无法被计算设备102的除了TEE本身和存储在其中的任何程序之外的任何组件访问。区块链钱包可用于作为区块链网络106的一部分转移数字资产。
区块链网络106可以包括多个区块链节点。每个节点可以是诸如在下面更详细地讨论的图5所示的计算系统,其被配置为执行与区块链的处理和管理相关的功能,包括区块链数据值的生成、对提议的区块链交易的验证、对数字签名的验证、新区块的生成、对新区块的核实以及对区块链的副本的维护。区块链可以是至少包括多个区块的分布式账本。每个区块可以至少包括区块头和一个或多个数据值。每个区块头可以至少包括时间戳、区块引用值和数据引用值。时间戳可以是生成区块头的时间,并且可以使用任何合适的方法(例如,UNIX时间戳、日期时间(DateTime)等)来表示。区块引用值可以是引用区块链中的较早区块(例如,基于时间戳)的值。在一些实施例中,区块头中的区块引用值可以是对在相应块之前最近添加的区块的区块头的引用。在示例性实施例中,区块引用值可以是经由对该最近添加的区块的区块头进行散列而生成的散列值。数据引用值可以类似地是对存储在包括区块头的区块中的一个或多个数据值的引用。在示例性实施例中,数据引用值可以是经由对一个或多个数据值进行散列而生成的散列值。例如,数据引用值可以是使用一个或多个数据值生成的默克尔树的根。
在每个区块头中使用区块引用值和数据引用值可使得区块链不可变。对数据值的任何尝试修改将需要为该区块生成新的数据引用值,这从而将需要新生成后续区块的区块引用值,进一步需要在每个后续区块中生成新的区块引用值。这将必须在区块链网络106中的每个单个节点中执行和更新,然后才能生成新区块并将其添加到区块链中,以便使要做出的改变永久。计算和通信限制可能使这样的修改变得极其困难(如果不是不可能的话),因此使区块链不可变。
在一些实施例中,区块链可用于存储关于在两个不同区块链钱包之间进行的区块链交易的信息。区块链钱包可包括用于生成数字签名的加密密钥对的私钥,这些数字签名用作付款人对区块链交易的授权,其中数字签名可以由区块链网络106使用加密密钥对的公钥来验证。在某些情况下,术语“区块链钱包”可以特指私钥。在其他情况下,术语“区块链钱包”可以指存储私钥以供在区块链交易中使用该私钥的计算设备102。例如,每个计算设备102可以各自具有它们自己的用于相应密码密钥对的私钥,并且可以各自是供在与和区块链网络相关联的区块链的交易中使用的区块链钱包。计算设备102可以是适合存储和利用区块链钱包的任何类型的设备,诸如还被配置为执行本文讨论的附加功能的台式计算机、膝上型计算机、笔记本计算机、平板计算机、蜂窝电话、智能电话、智能手表、智能电视、可穿戴计算设备、可植入的计算设备等。例如,包括或以其他方式访问TEE的任何计算设备都可适合作为计算设备102,其可以例如包括具有插入到读卡器中的TEE的智能卡,该读卡器可以作为计算设备102运行。在这种情况下,如果适用的话,“计算设备”可以指智能卡和/或读卡器。
如果适用的话,存储在区块链中的每个区块链数据值可以对应于区块链交易或其他数据存储。区块链交易至少可以包括:使用发送者的私钥生成的货币发送者(例如,计算设备102)的数字签名,使用接收者的公钥生成的货币接收者(例如,外部设备104,其可以是包括其自己的区块链钱包的另一个计算设备102,但可以是涉及所述计算设备102的交易的接收者)的区块链地址,以及转账的区块链货币金额或正在存储的其他数据。在一些区块链交易中,交易还可包括发送者的当前存储区块链货币的一个或多个区块链地址(例如,数字签名证明其对此类货币的访问之处),以及针对将由发送者保留的任何兑换(change)使用发送者的公钥生成的地址。可以在未来交易中使用的已将数字资产发送到的地址称为“输出”地址,因为每个地址以前都用于捕获先前区块链交易的输出,也称为“未花费交易”,因为有货币发送到先前交易中的地址,在该地址处该货币仍未被花费。在某些情况下,区块链交易还可包括发送者的公钥,以供实体在核实交易时使用。对于区块链交易的传统处理,这样的数据可以由发送者或接收者提供给区块链网络106中的节点。节点可以使用发送者的钱包的加密密钥对中的公钥来验证数字签名,并且还可以验证发送者对资金的访问(例如,未花费的交易尚未被花费并且曾被发送到与发送者的钱包相关联的地址),然后可以将区块链交易包含在新的区块中。在传统的区块链实现中,新区块可以在被添加到区块链并分发到区块链网络106中的所有节点之前由区块链网络106中的其他节点核实。在区块链数据值可能与区块链交易无关,而是其他类型数据的存储的情况下,区块链数据值可能仍包括或以其他方式涉及对数字签名的核实。
在系统100中,除了构成区块链网络106的其他节点之外,区块链网络106还可包括一个或多个网关设备108。网关设备108可以是也被配置为执行本文讨论的附加功能的全功能区块链节点。网关设备108可被配置为存储一个或多个资产类别的聚合状态。资产类别可以是一种类型的货币,诸如数字资产或法定货币之类。例如,在一个示例中,网关设备108可以存储区块链网络106独有的数字资产的聚合状态。在另一个示例中,网关设备108可以存储数字资产的状态以及美元的聚合状态。存储在网关设备108中的聚合状态可以是针对向其注册的每个计算设备102的资产类别的未花费交易输出和与其相关联的货币金额的记账。
例如,计算设备102的用户可能希望能够使用计算设备102进行离线区块链交易。用户可以使用计算设备102向网关设备108a注册。作为注册过程的一部分,计算设备102可以向网关设备108a发送(例如,使用任何合适的通信网络和方法,诸如应用编程接口、网页、应用程序等)计算设备的加密密钥对的公钥。网关设备108a可以在其中存储计算设备的区块链钱包的公钥以及针对网关设备108a的一个或多个资产类别的聚合状态,本文中也称为资产状态。在区块链钱包尚未用于该资产类别的交易的情况下,资产状态可以只是区块链钱包没有可用的该资产。在区块链钱包具有现有交易历史的情况下,网关设备108a可以使用公钥来识别区块链中涉及区块链钱包的所有交易,以识别计算设备102的聚合资产状态,包括其未花费的交易输出和相关的货币金额。
一旦计算设备102的资产状态在网关设备108a中被识别和注册,网关设备108a就可以识别计算设备102的限时凭证。限时凭证可以是可以用作计算设备102用于证明其执行离线区块链交易的授权的凭证的任何数据值。凭证可以例如是数字证书、由网关设备108a生成的数字签名、随机或伪随机值、或者任何其他合适的值。凭证可以是有时间限制的,使得它必须在预定的时间段内用于离线区块链交易以使得此类交易有效。在某些情况下,该时间段可以是对将限时凭证传输到离线区块链交易的接收者(例如,外部设备104)的限制。在其他情况下,该时间段可以对接收者何时连接到其自己的网关设备108b以成功验证和处理交易的限制。预定时间段可以由网关设备108a设置,或者可以由计算设备102设置,诸如在其对凭证的请求中。例如,计算设备102的用户可能对他们希望凭证持续多长时间有偏好,诸如如果他们知道他们何时将想要执行离线区块链交易。
在计算设备102正在请求新的限时凭证的情况下(例如,如果计算设备102先前已向网关设备108注册),计算设备102可能需要执行证明作为对限时凭证的请求过程的一部分。在这种情况下,TEE可以生成证明数据,该证明数据可包括关于存储在TEE中并由TEE执行的应用程序的数据以及存储在其中的数据。例如,证明数据可包括TEE及其应用程序的版本信息以及表明TEE尚未被篡改并且仍然是真实的数据。证明数据可被发送到网关设备108,其中网关设备108可能需要在生成限时凭证并将其发送回计算设备102之前成功核实TEE的证明数据。可以使用对相关领域的技术人员而言清楚的用于证明TEE的任何合适方法来确保TEE是真实的并且在提供限时凭证之前尚未被篡改。
计算设备102可以在注册之后从网关设备108a接收限时凭证及其资产状态。限时凭证可以存储在计算设备102的TEE中。资产状态可以存储在TEE中,或者可以存储在计算设备102的单独存储器中。当计算设备102要参与离线区块链交易时,计算设备102可以至少接收区块链交易的交易金额。该交易金额可以经由任何合适的方法来接收,诸如从来自外部设备104的传输,或者经由与计算设备102接口连接的输入设备来输入,诸如从使用计算设备102的键盘键入交易金额的用户接收。
一旦接收到交易金额,计算设备102就可以(例如,经由区块链钱包应用程序、在TEE中执行的单独应用程序等)验证区块链钱包具有足够的货币来支付交易。验证可包括针对正在离线区块链交易中使用的资产对计算设备102从网关设备108a接收到的资产状态进行检查。如果资产状态表明计算设备102没有足够的货币来支付交易,则可以通知计算设备102的用户并且可以禁止交易。如果有足够的货币来支付交易,则计算设备102可以为交易生成新的区块链数据值。该区块链数据值可包括接收到的交易金额,以及支付该交易金额所需的足够的未花费交易输出。在计算设备102可能应有兑换的情况下,可以使用计算设备的公钥生成地址以作为离线区块链交易的一部分接收多余的货币。
区块链数据值还可包括限时凭证,或者可以以其他方式附有限时凭证(例如,在计算设备102的传输中)。一旦区块链数据值被生成,计算设备102就可以使用TEE中存储的私钥对区块链数据值进行数字签名。签名的区块链数据值然后可被发送到外部设备104。在一些实施例中,在为对应于外部设备104的区块链钱包的离线区块链交易进行签名之前,区块链数据值还可包括目的地址。在这样的实施例中,外部设备104可以向计算设备102发送目的地址,或者可以向计算设备102发送外部设备的公钥以用于由此生成目的地址。在其他实施例中,外部设备104可以在接收到签名的区块链数据值之后使用其公钥生成目的地址,其中外部设备104可以在提交区块链交易时包括目的地址以用于一旦在线就进行验证。
一旦外部设备104具有签名的区块链数据值,一旦活跃连接再次可用(例如,外部设备104“在线”),外部设备104就可以将签名的区块链数据值发送到网关设备108(例如,相同的网关设备108a或与相同资产类别相关联的另一个网关设备108b)。在区块链数据值可包括限时凭证的一些情况下,限时凭证可被外部设备104移除,但是仍然可以伴随区块链数据值将限时凭证发送到网关设备108(例如,其中限时凭证可能由此不被添加到区块链中)。在某些情况下,外部设备104可能不需要对区块链数据值进行签名,而是可以简单地将计算设备102签名的区块链数据值转发到网关设备108。网关设备108b可以接收签名的区块链数据值,并且可以使用传统方法验证区块链交易(例如,验证未花费的交易输出,使用公钥的数字签名等),并且也可以验证限时凭证在预定时间段内被它所提供给的计算设备102使用(例如,通过使用在区块链数据值中包括的限时凭证的注册期间提供的公钥来验证数字签名)。如果交易被成功验证,则可以使用传统的方法和系统将其添加到区块链中。在某些情况下,如果适用的话,限时凭证可以在添加到区块链之前被从区块链数据值中移除。每个网关设备108然后可以更新计算设备102和外部设备104两者的资产状态。资产状态的更新可包括更新未花费的交易输出和相关联的货币金额,诸如通过移除计算设备的资产状态的未花费的交易输出并通过针对新区块链交易添加外部设备104的资产状态的新的未花费的交易输出。
在一些实施例中,一旦资产状态已被更新,网关设备108就可以向计算设备102和外部设备104发送具有其更新后的资产状态的通知。每个设备可以接收更新后的资产状态并且可以更新其中本地存储的资产状态数据。在一些情况下,当进行区块链交易时,计算设备102和外部设备104可以更新其自己的资产状态。例如,一旦签名的区块链数据值被发送到外部设备104用于离线区块链交易,或者当在线区块链交易被提交到节点进行处理时,计算设备102可以更新其资产状态。在某些情况下,计算设备102可以更新其资产状态,但是也可以从网关设备108接收更新后的资产状态的通知,其可以用于同步,诸如以确保本地资产状态关于区块链中存储的计算设备102的数据是准确的。如果计算设备102想要进行新的离线区块链交易,则计算设备102可以向网关设备108请求新的限时凭证。在某些情况下,原始限时凭证可能适合供计算设备102在多个离线区块链交易中使用,只要后续离线交易满足要求(例如,时间限制)即可。在某些情况下,仅当接收到新的限时凭证时,或者当计算设备102诸如通过对区块链网络106返回在线来请求更新后的资产状态时,更新后的资产状态才可被提供给计算设备102。
在一些实施例中,计算设备102可被配置为在对区块链网络106离线的时段期间执行多个离线区块链交易。在这样的实施例中,一旦签名的区块链数据值被发送到外部设备104,同时计算设备102仍然对区块链网络106离线,计算设备102就可以更新其资产状态。在这些实施例中,计算设备102可被配置为使用相同的限时凭证来执行额外的离线区块链交易,或者可以从网关设备108接收多个限时凭证以用于各离线区块链交易。在这种情况下,限时凭证可以是一次性使用的并且可以具有预定的使用顺序,其中一旦从外部设备104接收到签名的区块链数据值,网关设备108就可以在处理期间考虑这样的顺序(例如,如果在任何其他凭证之前接收到次级限时凭证,则网关设备108可以在接收到主限时凭证之前等待其处理,这诸如由于外部设备104上线的不同定时)。在这些实施例中,可以由计算设备102离线更新资产状态,诸如以防止计算设备102进行双重花费。例如,如果计算设备102将所有未花费的交易输出用于第一离线区块链交易,则将禁止任何随后的离线区块链交易,直到从网关设备108接收到没有未花费交易输出的新资产状态为止。
在一些实施例中,网关设备108可以通过使用智能合约来实现资产聚合功能。例如,区块链可包括一个或多个智能合约,这一个或多个智能合约被配置为当新交易被添加到区块链中时执行资产状态聚合,该区块链包括向网关设备108注册的区块链钱包。在某些情况下,资产聚合功能可以经由诸如计算设备102之类的其他设备(例如,在其中的TEE内)通过智能合约来实现。在其他实施例中,网关设备108所执行的动作可被以类似的方式自动化。在一些情况下,每当新的区块被添加到区块链中,网关设备108就可以更新资产状态。在其他情况下,当接收到对更新后的资产状态的请求或对新的限时凭证的请求时,网关设备108就可以更新资产状态。在其他情况下,网关设备108可以定期(例如,每天)更新资产状态。在这种情况下,时段可以基于限时凭证的时限时段,使得在限时凭证在离线交易中仍然可用时,不在网关设备108中更新资产状态。
本文讨论的方法和系统使计算设备102能够在发送者和接收者都从区块链网络106离线的同时参与区块链交易。使用来自网关设备108的限时凭证和聚合资产状态确保计算设备102只有在被授权时才能进行离线区块链交易,并且由于使用资产状态和对任何离线交易的限时凭证的要求而防止计算设备102双重花费的能力。区块链网络106中包括的网关设备108可以通过现有区块链节点促进该功能,从而需要对现有区块链网络106进行最少的修改,因此导致显著改进而无需大量资源消耗。
计算设备
图2示出了系统100中的计算设备102的实施例。对于相关领域的技术人员而言将清楚的是,图2所示的计算设备102的实施例仅作为说明而被提供,并且对于适合于执行如本文所讨论的功能的计算设备102的所有可能配置而言可能不是详尽无遗的。例如,如果受信执行环境被包括在计算设备102中,则在图5中示出并且在下面更详细地讨论的计算机系统500可以是计算设备102的合适配置。在某些情况下,系统100中的区块链网络中的每个网关设备108和外部设备104可以与图2中的计算设备102或图5中的计算机系统500类似地配置,诸如包括其中所示的组件。
计算设备102可包括接收设备202。接收设备202可被配置为经由一个或多个网络协议通过一个或多个网络接收数据。在一些情况下,接收设备202可被配置为经由一个或多个通信方法(诸如射频、局域网、无线区域网络、蜂窝通信网络、蓝牙、因特网等)从外部设备104、网关设备108以及其他系统和实体接收数据。在一些实施例中,接收设备202可包括多个设备,诸如用于通过不同网络接收数据的不同接收设备,诸如用于通过局域网接收数据的第一接收设备和用于经由因特网接收数据的第二接收设备。接收设备202可以接收以电子方式发送的数据信号,其中数据可被叠加在数据信号上或以其他方式编码在数据信号上并且经由接收设备202接收数据信号而被解码、解析、读取或以其他方式获得。在一些情况下,接收设备202可包括解析模块,该解析模块用于解析接收到的数据信号以获得叠加在其上的数据。例如,接收设备202可包括解析器程序,该解析器程序被配置为接收数据信号并将接收到的数据信号变换成由处理设备执行的功能的可用输入以执行本文描述的方法和系统。
接收设备202可被配置为接收由网关设备108以电子方式发送的数据信号,这些数据信号与资产状态信息和限时凭证叠加或以其他方式编码有资产状态信息和限时凭证。接收设备202还可被配置为接收由外部设备104以电子方式发送的数据信号,这些数据信号与用于生成区块链地址的区块链钱包的目的地址和/或公钥叠加或以其他方式编码有用于生成区块链地址的区块链钱包的公钥和/或目的地址。在计算设备102可以是离线区块链交易的接收者的情况下,接收设备202可以接收由外部设备104以电子方式发送的数据信号,这些数据信号与签名的区块链数据值叠加或以其他方式编码有签名的区块链数据值。
计算设备102还可包括通信模块204。通信模块204可被配置为在计算设备102的模块、引擎、数据库、存储器和其他组件之间传输数据以用于执行本文讨论的功能。通信模块204可包括一个或多个通信类型并且将各种通信方法用于计算设备内的通信。例如,通信模块204可包括总线、接触引脚连接器、导线等。在一些实施例中,通信模块204还可被配置为在计算设备102的内部组件和计算设备102的外部组件(诸如外部连接的数据库、显示设备、输入设备等)之间进行通信。计算设备102还可包括处理设备。如对于相关领域的技术人员而言将清楚的,处理设备可被配置为执行本文讨论的计算设备102的功能。在一些实施例中,处理设备可包括专门配置为执行处理设备的一个或多个功能的多个引擎和/或模块(诸如查询模块218、生成模块220、核实模块222等)和/或由专门配置为执行处理设备的一个或多个功能的多个引擎和/或模块组成。如本文所使用的,术语“模块”可以是特别编程为接收输入、使用该输入执行一个或多个处理以及提供输出的软件或硬件。基于本公开内容,由各种模块执行的输入、输出和处理对于本领域技术人员而言将是清楚的。
计算设备102可包括受信执行环境(TEE)206。TEE 206可以是计算设备102中的安全存储区域,其在机密性和完整性方面受到保护,并且可以与计算设备102中的其余组件隔离以使得只有存储在TEE 206中或以其他方式被TEE 206批准的应用程序可以访问存储在其中的数据。TEE 206可以是这样的:对TEE 206的任何试图篡改或对其的访问都可能导致TEE 206的破坏或其他不可操作性以防止其妥协。TEE 206可被配置为至少存储构成计算设备102的区块链钱包的加密密钥对的私钥以及从网关设备108接收到的任何限时凭证。在一些情况下,计算设备的区块链钱包的资产状态可以存储在TEE 206中。
计算设备102可包括查询模块218。查询模块218可被配置为对数据库执行查询以识别信息。查询模块218可以接收一个或多个数据值或查询串,并且可以在所指示的数据库(诸如计算设备102的TEE206或存储器226)上基于其来执行查询串以识别存储在其中的信息。查询模块218然后可以根据需要将识别出的信息输出到计算设备102的适当引擎或模块。查询模块218可以例如在计算设备102的存储器226上执行查询以识别计算设备的区块链钱包的资产状态以确定是否可以进行离线区块链交易,以更新计算设备102的资产状态,等等。
计算设备102也可包括生成模块220。生成模块220可被配置为生成供计算设备102在执行本文讨论的功能时使用的数据。生成模块220可以接收指令作为输入,可以基于指令生成数据,并且可以将所生成的数据输出到计算设备102的一个或多个模块。例如,生成模块220可被配置为生成新的区块链数据值、生成区块链地址、生成加密密钥对、生成数字签名等。
计算设备102还可包括核实模块222。核实模块222可被配置为作为本文讨论的功能的一部分对计算设备102执行核实和验证。核实模块222可以接收指令作为输入,其可包括要核实的数据和/或要在核实中使用的数据。核实模块222可以根据请求执行核实或验证,并且可以将核实的结果输出到计算设备102的另一个模块或引擎。核实模块222可以例如被配置为核实数字签名、核实资产状态、核实限时凭证或执行如本文所讨论的对计算设备102的任何其他核实。
计算设备102也可包括发送设备224。发送设备224可被配置为经由一个或多个网络协议在一个或多个网络上发送数据。在一些情况下,发送设备224可被配置为经由一个或多个通信方法、局域网、无线局域网、蜂窝通信、蓝牙、射频、因特网等向外部设备104、网关设备108和其他实体发送数据。在一些实施例中,发送设备224可包括多个设备,诸如用于通过不同网络发送数据的不同发送设备,诸如用于通过局域网发送数据的第一发送设备和用于经由因特网发送数据的第二发送设备。发送设备224可以以电子方式发送叠加有可由接收计算设备解析的数据的数据信号。在一些情况下,发送设备224可包括用于将数据叠加、编码或以其他方式格式化为适合发送的数据信号的一个或多个模块。
发送设备224可被配置为向外部设备104以电子方式发送叠加有或以其他方式编码有签名的区块链数据值的数据信号。发送设备224还可被配置为向网关设备108以电子方式发送叠加有或以其他方式编码有注册数据、对更新资产状态的请求、对新的限时凭证的请求等的数据信号。在计算设备102可以是离线区块链交易的接收者的情况下,发送设备224可被配置为向外部设备104以电子方式发送叠加有或以其他方式编码有计算设备的加密密钥对的公钥和/或离线区块链交易的目的地址的数据信号。在这样的实施例中,发送设备224也可被配置为将从外部设备104接收到的签名的区块链数据值发送到网关设备108。
计算设备102还可包括存储器226。存储器226可被配置为存储供计算设备102在执行本文讨论的功能时使用的数据,诸如公钥和私钥、对称密钥等。存储器226可被配置为使用合适的数据格式化方法和模式来存储数据,并且可以是任何合适类型的存储器,诸如只读存储器、随机存取存储器等。如对于相关领域的技术人员而言将清楚的,存储器226可以例如包括加密密钥和算法、通信协议和标准、数据格式化标准和协议、处理设备的模块和应用程序的程序代码、以及可能适合供计算设备102用于执行本文讨论的功能的其他数据。在一些实施例中,存储器226可以包括关系数据库或者可以以其他方式包括关系数据库,该关系数据库将结构化查询语言用于对存储在其中的结构化数据集的存储、识别、修改、更新、访问等。存储器226可被配置为存储例如附加的区块链数据、用于核实的凭证、使用规则模板、网关设备108的通信数据、智能合约、签名生成和验证算法、地址生成算法、区块链钱包应用程序代码、资产状态数据等。
离线区块链交易的过程
图3示出了在用于通过使用受信执行环境和限时凭证处理离线区块链交易的图1的系统100中执行的示例过程。
在步骤302中,计算设备102的生成模块220可以生成包括私钥和公钥的加密密钥对,其中私钥可以存储在计算设备102的TEE 206中。在一些情况下,密钥对可以在TEE 206本身中生成,诸如通过TEE 206内包括的生成模块220或者通过存储在TEE 206中并在TEE206内执行的单独应用程序来生成。在一些情况下,公钥也可以存储在TEE 206中,或者可以存储在计算设备102的单独存储器226中。在步骤304中,计算设备102的发送设备224可以将数据信号以电子方式发送到网关设备108以注册计算设备的区块链钱包。该数据信号可以至少包括计算设备102的公钥,并且还可以包括指定的资产类别以及来自TEE 206的对于它是真实的并且尚未被篡改的证明。
在步骤306中,网关设备108可以从计算设备102接收公钥(例如,和证明,如果适用的话)。在步骤308中,网关设备108可以存储计算设备的区块链钱包的公钥以及计算设备102的聚合资产状态,聚合资产状态包括与其相关联的任何未花费的交易输出和可用于该资产类别的输出的货币金额。在步骤310中,网关设备108可以为计算设备102生成限时凭证。在证明被包括的情况下,如果证明被成功核实,则网关设备108可以仅生成限时凭证。在一些实施例中,限时凭证可以是计算设备102独有的数字证书,并且可以限于在预定时间段期间使用。在步骤312中,网关设备108可以将限时凭证以电子方式发送到计算设备102。在一些情况下,发送也可包括针对由网关设备108确定的资产类别的计算设备的区块链钱包的资产状态。
在步骤314中,计算设备102的接收设备202可以接收限时凭证和资产状态。限时凭证可以存储在计算设备102的TEE 206中。在一些情况下,资产状态也可以存储在TEE 206中或者可以存储在单独的存储器226中。当是离线区块链交易的时候,那么,在步骤316中,将是离线区块链交易的接收者的外部设备104可以使用其自己的公钥生成目的区块链地址。在步骤318中,外部设备104可以使用合适的通信网络和方法将其目的地址发送到计算设备102。在步骤320中,计算设备102的接收设备202可以从外部设备104接收目的地址。
在步骤322中,计算设备102的生成模块220可以为离线区块链交易生成区块链数据值。该区块链数据值可包括离线交易的交易金额、从外部设备104接收到的目的地址、以及从网关设备108接收到的限时凭证(例如,作为区块链数据值的一部分或与其分开,如在上面讨论的)。计算设备102的生成模块220还可以使用计算设备102的私钥来生成(例如,在TEE 206内部)区块链数据值的数字签名。在步骤324中,计算设备102的发送设备224可以使用合适的通信网络和方法将签名的区块链数据值以电子方式发送到外部设备104。在步骤326中,外部设备104可以接收签名的区块链数据值。外部设备104然后可以存储签名的区块链数据值直到与网关设备108的连接可用,此时区块链数据值可被提交用于区块链的验证和更新。在一些实施例中,外部设备104可被配置为立即核实限时凭证以更新其自己的资产状态。
用于执行离线区块链交易的示例性方法
图4示出了用于通过受信执行环境和限时凭证来执行安全、可验证和离线的区块链交易的方法400。
在步骤402中,可以将加密密钥对存储在计算设备(例如,计算设备102)的受信执行环境(例如,受信执行环境206)中,该加密密钥对包括公钥和私钥。在步骤404中,公钥可以由计算设备的发送器(例如,发送设备224)发送到区块链网络(例如,区块链网络106)中的网关设备(例如,网关设备108)。在步骤406中,可以由接收器(例如,接收设备202)从网关设备接收限时凭证。
在步骤408中,可以由计算设备的处理设备(例如,生成模块220)生成区块链数据值,其中该区块链数据值至少包括交易金额和目的地址。在步骤410中,计算设备的受信执行环境可以使用私钥对所生成的区块链数据值进行数字签名。在步骤412中,可以由计算设备的发送器将签名的区块链数据值和限时凭证发送到外部设备(例如,外部设备104)。
在一个实施例中,计算设备中除受信执行环境之外的任何组件都可能无法访问私钥。在一些实施例中,方法400还可包括在生成区块链数据值之前由计算设备的接收器从外部设备接收目的地址。
在一个实施例中,方法400还可包括在计算设备的存储器(例如,存储器226)中存储计算设备的资产状态,其中该资产状态至少包括一个或多个未花费交易输出和相关联的货币金额。在进一步的实施例中,方法400甚至还可包括由计算设备的处理设备基于所生成的区块链数据值来更新所存储的资产状态。在另一个进一步的实施例中,存储器可以与受信执行环境分开。在又一进一步的实施例中,方法400还可包括:由计算设备的接收器从网关设备接送通知消息;以及由计算设备的处理设备基于该通知消息来更新所存储的资产状态。在更进一步的实施例中,通知消息可包括修改后的未花费交易输出和相关联的货币金额。
计算机系统架构
图5示出了计算机系统500,其中本公开的实施例或其部分可被实现为计算机可读代码。例如,可以在计算机系统500中使用硬件、软件、固件、其上存储有指令的非暂时性计算机可读介质或其组合来实现图1中的计算设备102、外部设备104和网关设备108,并且可以在一个或多个计算机系统或其他处理系统中实现图1中的计算设备102、外部设备104和网关设备108。硬件、软件或其任意组合可以体现用来实现图3和图4的方法的模块和组件。
如果可编程逻辑被使用,则这种逻辑可以在由可执行软件代码配置的商业可用处理平台上执行,以成为专用计算机或专用设备(例如,可编程逻辑阵列、专用集成电路等)。本领域的普通技术人员可以认识到,可以利用各种计算机系统配置来实践所公开的主题的实施例,这些计算机系统配置包括多核多处理器系统、小型计算机、大型计算机、用分布式功能链接或集群的计算机,以及普遍或可嵌入到实际上任何设备中的微型计算机。例如,可以使用至少一个处理器设备和存储器来实现上述实施例。
如本文讨论的处理器单元或处理器设备可以是单个处理器、多个处理器或其组合。处理器设备可具有一个或多个处理器“核”。如本文讨论的术语“计算机程序介质”、“非暂时性计算机可读介质”和“计算机可用介质”通常用来指代有形介质,诸如可移动存储单元518、可移动存储单元522以及安装在硬盘驱动器512中的硬盘。
根据该示例计算机系统500描述本公开的各种实施例。在阅读本说明书之后,如何使用其他计算机系统和/或计算机架构来实现本公开对于相关领域的技术人员将变得清楚。尽管操作可被描述为顺序过程,但是一些操作实际上可被并行地执行、并发地执行和/或在分布式环境中执行,并且程序代码被本地存储或远程存储以供单个或多个处理器机器访问。此外,在一些实施例中,可以重新排列操作的顺序而不脱离所公开的主题的精神。
处理器设备504可以是专门配置成执行本文讨论的功能的专用处理器设备或通用处理器设备。处理器设备504可以连接到通信基础设施506,诸如总线、消息队列、网络、多核心消息传递方案等。网络可以是适合于执行本文公开的功能的任何网络,并且可以包括局域网(LAN)、广域网(WAN)、无线网络(例如,WiFi)、移动通信网络、卫星网络、因特网、光纤、同轴线缆、红外线、射频(RF),或其任何组合。其他合适的网络类型和配置对于相关领域的技术人员将是清楚的。计算机系统500还可以包括主存储器508(例如,随机存取存储器、只读存储器等),并且还可以包括辅助存储器510。辅助存储器510可以包括硬盘驱动器512和可移动存储驱动器514,诸如软盘驱动器、磁带驱动器、光盘驱动器、闪存等。
可移动存储驱动器514可以以众所周知的方式从可移动存储单元518读取和/或向可移动存储单元518写入。可移动存储单元518可以包括可被可移动存储驱动器514读取和写入的可移动存储介质。例如,如果可移动存储驱动器514是软盘驱动器或通用串行总线端口,则可移动存储单元518可以分别是软盘或便携式闪存驱动器。在一个实施例中,可移动存储单元518可以是非暂时性计算机可读记录介质。
在一些实施例中,辅助存储器510可以包括用于允许计算机程序或其他指令被加载到计算机系统500中的可选装置,例如可移动存储单元522和接口520。如对于相关领域的技术人员将是清楚的,这种装置的示例可以包括程序盒和盒接口(例如,如在视频游戏系统中发现的)、可移动存储器芯片(例如,EEPROM、PROM等)和关联的插座,以及其他可移动存储单元522和接口520。
存储在计算机系统500中(例如,在主存储器508和/或辅助存储器510中)的数据可以存储在任何类型的合适的计算机可读介质上,诸如光学存储装置(例如,紧凑盘、数字多功能盘、蓝光盘等)或磁带存储装置(例如,硬盘驱动器)。可以以任何类型的合适的数据库配置(诸如关系数据库、结构化查询语言(SQL)数据库、分布式数据库、对象数据库等)来配置数据。合适的配置和存储类型对于相关领域的技术人员将是清楚的。
计算机系统500还可包括通信接口524。通信接口524可被配置为允许在计算机系统500与外部设备之间传送软件和数据。示例性通信接口524可以包括调制解调器、网络接口(例如,以太网卡)、通信端口、PCMCIA插槽和卡等。经由通信接口524传送的软件和数据可以是信号的形式,其可以是电子、电磁、光学或对于相关领域技术人员将是清楚的其他信号。信号可以经由通信路径526行进,通信路径526可被配置为承载信号并且可以使用导线、线缆、光纤、电话线、蜂窝电话链路、射频链路等来实现。
计算机系统500还可包括显示接口502。显示接口502可被配置为允许在计算机系统500与外部显示器530之间传送数据。示例性显示接口502可以包括高分辨率多媒体接口(HDMI)、数字视频接口(DVI)、视频图形阵列(VGA)等。显示器530可以是用于显示经由计算机系统500的显示接口502传输的数据的任何适当类型的显示器,包括阴极射线管(CRT)显示器、液晶显示器(LCD)、发光二极管(LED)显示器、电容式触摸显示器、薄膜晶体管(TFT)显示器等。
计算机程序介质和计算机可用介质可以指存储器,诸如主存储器508和辅助存储器510,其可以是存储器半导体(例如,DRAM等)。这些计算机程序产品可以是用于向计算机系统500提供软件的手段。计算机程序(例如,计算机控制逻辑)可以存储在主存储器508和/或辅助存储器510中。也可以经由通信接口524接收计算机程序。这样的计算机程序在被执行时可以使得计算机系统500能够实现本文所讨论的当前方法。特别地,计算机程序在被执行时可以使得处理器设备504能够实现本文所讨论的由图3和图4示出的方法。因此,这样的计算机程序可以表示计算机系统500的控制器。在使用软件实现本公开的情况下,软件可以被存储在计算机程序产品中,并且使用可移动存储驱动器514、接口520和硬盘驱动器512或通信接口524而被加载到计算机系统500中。
处理器设备504可包括被配置为执行计算机系统500的功能的一个或多个模块或引擎。每个模块或引擎可以使用硬件来实现,并且在一些情况下也可以利用诸如对应于存储在主存储器508或辅助存储器510中的程序代码和/或程序之类的软件。在这样的情况下,在由计算机系统500的硬件执行之前,程序代码可以由处理器设备504编译(例如,通过编译模块或引擎)。例如,程序代码可以是以编程语言编写的源代码,其被转换成诸如汇编语言或机器代码之类的低级语言以供处理器设备504和/或计算机系统500的任何附加硬件组件执行。编译过程可以包括使用词法分析、预处理、解析、语义分析、语法指导的转换、代码生成、代码优化以及可能适合于将程序代码转换成适合于控制计算机系统500执行本文公开的功能的低级语言的任何其他技术。对相关领域技术人员将清楚的是,这样的过程导致计算机系统500是独特编程为执行上面讨论的功能的专门配置的计算机系统500。
除了其他特征之外,与本公开一致的技术还提供了用于通过受信执行环境和限时凭证执行安全、可验证、离线的区块链交易的系统和方法。虽然上面已经描述了所公开的系统和方法的各种示例性实施例,但应当理解,它们仅仅是为了示例而非限制的目的而提出的。其不是详尽无遗的,并且不会将公开内容限制于所公开的确切形式。鉴于上述教导,修改和变化是可能的,或者在不背离广度或范围的情况下可以从本公开的实践中获得修改和变化。
Claims (16)
1.一种通过受信执行环境和限时凭证执行安全、能验证、离线区块链交易的方法,包括:
在计算设备的受信执行环境中存储包括公钥和私钥的密码密钥对;
由所述计算设备的发送器将所述公钥发送到区块链网络中的网关设备;
由所述计算设备的接收器从所述网关设备接收限时凭证;
由所述计算设备的处理设备生成区块链数据值,其中所述区块链数据值至少包括交易金额和目的地址;
由所述计算设备的受信执行环境使用所述私钥对所生成的区块链数据值进行数字签名;和
由所述计算设备的发送器将签名的区块链数据值和所述限时凭证发送到外部设备。
2.如权利要求1所述的方法,其中,所述私钥不能被所述计算设备中的除所述受信执行环境之外的任何组件访问。
3.如权利要求1所述的方法,还包括:
在所述计算设备的存储器中存储所述计算设备的资产状态,其中所述资产状态至少包括一个或多个未花费的交易输出和相关联的货币金额。
4.如权利要求3所述的方法,还包括:
由所述计算设备的处理设备基于所生成的区块链数据值来更新所存储的资产状态。
5.如权利要求3所述的方法,还包括:
由所述计算设备的接收器从所述网关设备接收通知消息;和
由所述计算设备的处理设备基于所述通知消息来更新所存储的资产状态。
6.如权利要求5所述的方法,其中,所述通知消息包括修改后的未花费的交易输出和相关联的货币金额。
7.如权利要求3所述的方法,其中,所述存储器与所述受信执行环境分离。
8.如权利要求1所述的方法,还包括:
在生成所述区块链数据值之前,由所述计算设备的接收器从所述外部设备接收所述目的地址。
9.一种通过受信执行环境和限时凭证执行安全、能验证、离线区块链交易的系统,包括:
区块链网络的网关设备;
计算设备,包括
受信执行环境,存储包括公钥和私钥的加密密钥对,
发送器,将所述公钥发送到所述网关设备,
接收器,从所述网关设备接收限时凭证,和
处理设备,生成区块链数据值,其中所述区块链数据值至少包括交易金额和目的地址,其中
所述受信执行环境使用所述私钥对所生成的区块链数据值进行数字签名,并且
所述发送器将签名的区块链数据值和所述限时凭证发送到外部设备;和
外部设备,接收签名的区块链数据值。
10.如权利要求9所述的系统,其中,所述私钥不能被所述计算设备中的除所述受信执行环境之外的任何组件访问。
11.如权利要求9所述的系统,还包括:
所述计算设备的存储器,存储所述计算设备的资产状态,其中所述资产状态至少包括一个或多个未花费的交易输出和相关联的货币金额。
12.如权利要求11所述的系统,其中,所述计算设备的处理设备基于所生成的区块链数据值来更新所存储的资产状态。
13.如权利要求11所述的系统,其中
所述计算设备的接收器从所述网关设备接收通知消息,并且
所述计算设备的处理设备基于所述通知消息来更新所存储的资产状态。
14.如权利要求13所述的系统,其中,所述通知消息包括修改后的未花费的交易输出和相关联的货币金额。
15.如权利要求11所述的系统,其中,所述存储器与所述受信执行环境分离。
16.如权利要求9所述的系统,其中,在生成所述区块链数据值之前,所述计算设备的接收器从所述外部设备接收所述目的地址。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/509,765 | 2019-07-12 | ||
US16/509,765 US11373179B2 (en) | 2019-07-12 | 2019-07-12 | Method and system for secure and verifiable offline blockchain transactions |
PCT/US2020/036926 WO2021011124A1 (en) | 2019-07-12 | 2020-06-10 | Method and system for secure and verifiable offline blockchain transactions |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114788222A true CN114788222A (zh) | 2022-07-22 |
Family
ID=74101689
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080046994.4A Pending CN114788222A (zh) | 2019-07-12 | 2020-06-10 | 用于安全和可验证的离线区块链交易的方法和系统 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11373179B2 (zh) |
EP (1) | EP3997835A4 (zh) |
CN (1) | CN114788222A (zh) |
WO (1) | WO2021011124A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115150103A (zh) * | 2022-08-29 | 2022-10-04 | 人民法院信息技术服务中心 | 基于区块链的数字凭证离线验证方法、装置及设备 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111639932B (zh) * | 2020-07-31 | 2020-11-17 | 支付宝(杭州)信息技术有限公司 | 一种基于区块链的离线资源转移方法及装置 |
US11922404B2 (en) * | 2020-09-25 | 2024-03-05 | LINE Plus Corporation | Method and system for payment for central bank digital currency |
CN112561407B (zh) * | 2021-02-20 | 2021-06-22 | 支付宝(杭州)信息技术有限公司 | 基于区块链的资产管理方法、系统及装置 |
CN113052599B (zh) * | 2021-03-31 | 2024-05-28 | 中国人民银行数字货币研究所 | 交易凭证的生成、验证及存储方法、装置、设备和系统 |
US20230145257A1 (en) * | 2021-11-05 | 2023-05-11 | Caerus Institute Llc | Patent licensing distributed ledger infrastructure and method thereof |
US11900367B2 (en) | 2021-12-14 | 2024-02-13 | Mastercard International Incorporated | Method and system for enabling traceable privacy-maintaining multi-hop offline transactions in digital currencies |
CN114638697B (zh) * | 2022-05-18 | 2022-11-15 | 浙江数秦科技有限公司 | 基于区块链的小额贷款管理系统 |
CN116703403B (zh) * | 2023-07-31 | 2023-10-20 | 成都创一博通科技有限公司 | 基于区块链网络的离线交易方法和金融服务平台 |
CN116866092B (zh) * | 2023-09-05 | 2024-01-05 | 中国民航信息网络股份有限公司 | 一种基于区块链网关的数据处理方法、装置及系统 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160012465A1 (en) * | 2014-02-08 | 2016-01-14 | Jeffrey A. Sharp | System and method for distributing, receiving, and using funds or credits and apparatus thereof |
US20150278796A1 (en) * | 2014-03-26 | 2015-10-01 | Google Inc. | Reserving account balance for concurrent payments in secure offline payment system |
US20160125403A1 (en) * | 2014-04-28 | 2016-05-05 | Chin-hao Hu | Offline virtual currency transaction |
US9807086B2 (en) * | 2015-04-15 | 2017-10-31 | Citrix Systems, Inc. | Authentication of a client device based on entropy from a server or other device |
CN106997530B (zh) * | 2016-01-25 | 2022-10-14 | 创新先进技术有限公司 | 基于移动终端卡模拟的信用支付方法及装置 |
US11354658B2 (en) | 2016-02-11 | 2022-06-07 | Mastercard International Incorporated | Method and system for offline blockchain exchanges |
US10853804B1 (en) * | 2016-04-22 | 2020-12-01 | Wells Fargo Bank, N.A. | Dynamic transaction token/dynamic pricing based on conditions of order |
US10282558B2 (en) * | 2016-09-02 | 2019-05-07 | The Toronto-Dominion Bank | System and method for maintaining a segregated database in a multiple distributed ledger system |
US11157900B2 (en) | 2017-03-24 | 2021-10-26 | Mastercard International Incorporated | Method and system for offline data transfer via machine-readable code |
WO2018223125A1 (en) | 2017-06-02 | 2018-12-06 | Visa International Service Association | Methods and systems for ownership verification using blockchain |
US10810581B2 (en) * | 2017-09-26 | 2020-10-20 | Paypal, Inc. | Secure offline transaction system using digital tokens and a secure ledger database |
WO2019074326A1 (en) * | 2017-10-12 | 2019-04-18 | Samsung Electronics Co., Ltd. | SECURE OFFLINE PAYMENT METHOD AND APPARATUS |
US11715099B2 (en) * | 2017-12-20 | 2023-08-01 | Mastercard International Incorporated | Method and system for trust-based payments via blockchain |
US20190213584A1 (en) * | 2018-01-11 | 2019-07-11 | Mastercard International Incorporated | Method and system for tokenized replacement of crypto currency addresses |
US10601828B2 (en) * | 2018-08-21 | 2020-03-24 | HYPR Corp. | Out-of-band authentication based on secure channel to trusted execution environment on client device |
ES2833552T3 (es) * | 2018-11-27 | 2021-06-15 | Advanced New Technologies Co Ltd | Sistema y método para la protección de información |
-
2019
- 2019-07-12 US US16/509,765 patent/US11373179B2/en active Active
-
2020
- 2020-06-10 WO PCT/US2020/036926 patent/WO2021011124A1/en unknown
- 2020-06-10 EP EP20841065.4A patent/EP3997835A4/en active Pending
- 2020-06-10 CN CN202080046994.4A patent/CN114788222A/zh active Pending
-
2022
- 2022-06-24 US US17/848,770 patent/US20220318794A1/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115150103A (zh) * | 2022-08-29 | 2022-10-04 | 人民法院信息技术服务中心 | 基于区块链的数字凭证离线验证方法、装置及设备 |
CN115150103B (zh) * | 2022-08-29 | 2022-11-29 | 人民法院信息技术服务中心 | 基于区块链的数字凭证离线验证方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
US20210012331A1 (en) | 2021-01-14 |
US11373179B2 (en) | 2022-06-28 |
EP3997835A4 (en) | 2023-08-09 |
WO2021011124A1 (en) | 2021-01-21 |
WO2021011124A8 (en) | 2022-06-23 |
US20220318794A1 (en) | 2022-10-06 |
EP3997835A1 (en) | 2022-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11949670B2 (en) | Method and system for trustworthiness using digital certificates | |
CN109711858B (zh) | 经由区块链防止欺诈性礼品卡的方法和系统 | |
CN110121727B (zh) | 一种为智能合同提供经证实、可审计和不可变输入的方法和系统 | |
CN109299939B (zh) | 用于具有完全密码可审核性的交易处理的方法和系统 | |
US11373179B2 (en) | Method and system for secure and verifiable offline blockchain transactions | |
US20180374094A1 (en) | Method and system for indexing consumer enrollment using blockchain | |
US20190188657A1 (en) | Method and system for outside guarantees for a blockchain transaction | |
EP3900257B1 (en) | Method and system for consent to time-bound queries in a blockchain | |
US11689355B2 (en) | Method and system for the atomic exchange of blockchain assets using transient key pairs | |
JP2024525174A (ja) | ハッシュロックを使用して、仲介された相互台帳ステーブルコインのアトミックスワップのための方法及びシステム | |
US20240086906A1 (en) | Method and system for providing token identity | |
KR20240145462A (ko) | 지불 네트워크에서 환불 거래 후 nft(대체불가능 토큰)의 소유권의 양도를 위한 방법 및 시스템 | |
US11989703B2 (en) | Method and system of blockchain disbursements | |
US20240257105A1 (en) | Method and system for activating wallet private keys through blockchain addresses | |
CN118401953A (zh) | 用于实现可追溯、维护隐私的多跳数字货币离线交易的方法和系统 | |
WO2024072730A1 (en) | Method and system for blockchain to apply sanctions | |
KR20240093521A (ko) | 자산의 원자적 교환을 위한 블록체인-기반 거래를 위한 방법 및 시스템 | |
CN118120180A (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 |