CN117015786A - 通用支付通道 - Google Patents

通用支付通道 Download PDF

Info

Publication number
CN117015786A
CN117015786A CN202280020313.6A CN202280020313A CN117015786A CN 117015786 A CN117015786 A CN 117015786A CN 202280020313 A CN202280020313 A CN 202280020313A CN 117015786 A CN117015786 A CN 117015786A
Authority
CN
China
Prior art keywords
service provider
computer
smart contract
provider computer
hub
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
CN202280020313.6A
Other languages
English (en)
Inventor
M·M·米纳伊比多利
R·库马雷桑
S·拉古拉曼
M·扎马尼
A·韦杰耶库恩
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.)
Visa International Service Association
Original Assignee
Visa International Service Association
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 Visa International Service Association filed Critical Visa International Service Association
Priority claimed from PCT/US2022/019927 external-priority patent/WO2022192658A1/en
Publication of CN117015786A publication Critical patent/CN117015786A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

公开了一种用于促进加密货币交易的方法。所述方法包括由中枢计算机从第一服务提供商计算机接收第一用户账户标识符,所述第一服务提供商计算机与第一用户装置和第一区块链网络通信。第一服务提供商计算机将一定金额的数字货币转移到第一区块链网络上的第一智能合约。中枢计算机还从第二服务提供商计算机接收第二用户账户标识符,所述第二服务提供商计算机与第二用户装置和包含第二智能合约的第二区块链网络通信。中枢计算机从第一服务提供商计算机接收第一金额的第一数字货币,然后将第二金额的第二数字货币转移到第二服务提供商计算机。

Description

通用支付通道
相关申请的交叉引用
本申请是PCT申请,要求2021年3月11日提交的美国临时专利申请第63/159,933号和2021年3月29日提交的美国临时专利申请第63/167,489号的优先权和权益,所述临时专利申请通过引用并入本文。
背景技术
如今,使用促进加密货币的区块链技术。然而,存在的加密货币的数量是众多的。通常没有允许使用不同类型的加密货币的两个用户在交易中相互支付的容易方式。
此外,区块链通常要求用户连接到区块链以将加密货币转移至其他用户。在线转账可能执行起来很繁琐。例如,对于进行多次微转账的一对用户来说,转账的速度可能很不方便,因为所有转账都必须添加到区块链网络中。
本公开的实施例单独地和共同地解决了此问题和其它问题。
发明内容
本发明的一个实施例包括一种方法。所述方法包括:由中枢计算机从第一服务提供商计算机接收第一用户账户标识符,所述第一服务提供商计算机与第一用户装置通信并且与第一区块链网络通信,所述第一服务提供商计算机随后将一定金额的第一数字货币转移到所述第一区块链网络上的第一智能合约;由所述中枢计算机从第二服务提供商计算机接收第二用户账户标识符,所述第二服务提供商计算机与第二用户装置通信并且还与包含第二智能合约的第二区块链网络通信,其中所述中枢计算机分别与所述第一区块链网络和所述第二区块链网络通信,并且所述中枢计算机经由第一交互信道与所述第一服务提供商计算机通信,并且所述中枢计算机经由第二交互信道与所述第二服务提供商计算机通信;由所述中枢计算机经由所述第一交互信道从所述第一服务提供商计算机接收第一金额的第一数字货币;以及由所述中枢计算机经由所述第二交互信道将第二金额的第二数字货币转移到所述第二服务提供商计算机。
公开了一种中枢计算机。所述中枢计算机包括:处理器;以及非暂态计算机可读介质,所述非暂态计算机可读介质包括可由所述处理器执行以执行操作的指令,所述操作包括:由中枢计算机从第一服务提供商计算机接收第一用户账户标识符,所述第一服务提供商计算机与第一用户装置通信并且与第一区块链网络通信,所述第一服务提供商计算机随后将一定金额的第一数字货币转移到所述第一区块链网络上的第一智能合约;由所述中枢计算机从第二服务提供商计算机接收第二用户账户标识符,所述第二服务提供商计算机与第二用户装置通信并且还与包含第二智能合约的第二区块链网络通信,其中所述中枢计算机分别与所述第一区块链网络和所述第二区块链网络通信,并且所述中枢计算机经由第一交互信道与所述第一服务提供商计算机通信,并且所述中枢计算机经由第二交互信道与所述第二服务提供商计算机通信;由所述中枢计算机经由所述第一交互信道从所述第一服务提供商计算机接收第一金额的第一数字货币;以及由所述中枢计算机经由所述第二交互信道将第二金额的第二数字货币转移到所述第二服务提供商计算机。
公开了另一种方法。所述方法包括:由第一服务提供商计算机生成包括第一数字货币的第一金额和第一参数的发送方承诺,其中所述第一参数包括交互建议的散列化秘密;由所述第一服务提供商计算机通过第一交互信道将所述发送方承诺传输至中枢计算机,其中所述中枢计算机随后生成包括第二数字货币的第二金额的服务器承诺,并将所述服务器承诺传输至第二服务提供商计算机;由所述第一服务提供商计算机从所述中枢计算机接收所述散列化秘密的秘密,其中所述第一用户装置通过对所述秘密进行散列化并将散列化秘密与先前接收的散列化秘密进行比较来验证所述秘密;由所述第一服务提供商计算机生成包括所述第一智能合约的第一参数的服务器收据;以及由所述第一服务提供商计算机将所述服务器收据传输至所述中枢计算机。
可参考以下详细描述和附图来更好地理解本发明的实施例的性质和优点。
附图说明
图1示出了根据实施例的通用交互系统的框图。
图2示出了根据实施例的智能合约的伪码。
图3示出了根据实施例的智能合约的辅助函数的伪码。
图4示出了根据实施例的智能合约的合约和时间事件处理程序的伪码。
图5示出了根据实施例的信道部署协议的流程图。
图6示出了根据实施例的检查信道状态协议的流程图。
图7示出了根据实施例的存款协议的流程图。
图8示出了根据实施例的授权协议的伪码。
图9示出了根据实施例的授权协议的流程图。
图10示出了根据实施例的转账协议的伪码。
图11示出了根据实施例的转账协议的流程图。
图12示出了根据实施例的信道关闭协议的流程图。
图13示出了根据实施例的示例性用户装置的框图。
图14示出了根据实施例的示例性服务提供商计算机的框图。
图15示出了根据实施例的示例性中枢计算机的框图。
具体实施方式
在论述本公开的实施例之前,可以进一步详细描述一些术语。
“用户”可以包括个人。在一些实施例中,用户可以与一个或多个个人账户和/或移动装置相关联。
“用户装置”可以是由用户操作的装置。用户装置的实例可以包括移动电话、智能手机、卡、个人数字助理(PDA)、膝上型计算机、台式计算机、服务器计算机、瘦客户端装置、平板式PC等。此外,用户装置可以是任何类型的可穿戴技术装置,例如手表、耳机、眼镜等。用户装置可包括能够处理用户输入的一个或多个处理器。用户装置还可包括用于接收用户输入的一个或多个输入传感器。如本领域中已知的,存在能够检测用户输入的多种输入传感器,例如加速度计、相机、麦克风等。由输入传感器获得的用户输入可以来自多种数据输入类型,包括但不限于音频数据、视觉数据或生物特征数据。用户装置可以包括用户可以操作的任何电子装置,所述电子装置还可以提供与网络的远程通信能力。远程通信能力的实例包括使用移动电话(无线)网络、无线数据网络(例如,3G、4G或类似网络)、Wi-Fi、Wi-Max,或者可以提供对网络(例如互联网或专用网络)的访问的任何其它通信介质。用户装置也可以是信用卡、借记卡或预付卡。
“授权实体”可以是对请求授权的实体。授权实体的实例可以是发行方、政府机构、文档存储库、访问管理员等。“发行方”通常可以指维护用户账户的商业实体(例如银行)。发行方也可以向消费者发行存储在诸如蜂窝电话、智能卡、平板计算机或膝上型计算机的用户装置上的支付凭证。
“数字钱包”可以包括允许个人进行电子商务交易的电子装置或服务。数字钱包可以存储用户简档信息、凭证、银行账户信息、一个或多个数字钱包标识符等,并且可以用于多种交易中,例如但不限于电子商务交易、社交网络交易、转账/个人支付交易、移动商务交易、邻近支付交易、游戏交易等。数字钱包可以设计成简化购买和支付过程。数字钱包可以允许用户将一个或多个支付卡加载到数字钱包上,以便进行支付而无需输入账号或出示实体卡。还可以使用数字钱包来管理加密货币和执行加密货币交易,包括例如在与数字钱包持有人相关联的加密货币地址处接收加密货币或将加密货币发送到其他加密货币地址。
“密钥对”可以包括一对链接的密码密钥。例如,密钥对可以包括公钥和对应的私钥。在密钥对中,第一密钥(例如,公钥)可以用于加密消息,而第二密钥(例如,私钥)可以用于解密所加密的消息。另外,公钥能够验证用对应的私钥生成的数字签名。公钥可以分布在整个网络中,以便允许验证使用对应私钥签名的消息。公钥和私钥可以呈任何合适的格式,包括基于RSA或椭圆曲线密码学(ECC)的格式。在一些实施例中,公/私密钥对中的公钥可以用作标识区块链上的实体的实体标识符。例如,第一用户账户标识符可标识区块链上的第一用户的数字货币账户。第一服务提供商标识符可以标识第一服务提供商或第一服务提供商计算机。
“交互”可以包括相互作用或影响。“交互”可以包括各方、各装置和/或各实体之间的通信、联系或交换。实例交互包括两方之间的交易和两个装置之间的数据交换。在一些实施例中,交互可以包括用户请求访问安全数据、安全网页、安全位置等。在其它实施例中,交互可以包括支付交易,在所述支付交易中,两个装置可以交互以促进支付。
“数字签名”可以包括用于消息的电子签名。数字签名可以是数字数据值、字母数字数据值或任何其他类型的数据。在一些实施例中,数字签名可以是使用密码算法从消息(或数据分组)和私钥生成的唯一数据值。在一些实施例中,可以使用使用公钥的验证算法来验证签名。数字签名可以用于证明发送方的真实性。
“散列”或“散列值”可以包括使用“散列函数”产生的任何数据元素。散列函数可以用于将任意大小的数据变换成固定大小(例如,1KB)的数据。散列函数可以用于生成对诸如秘密令牌的秘密数据的承诺,而不泄露秘密数据自身。一些散列函数是“抗冲突的”,意味着难以确定产生相同散列输出的两个输入。抗冲突散列函数可以用作区块链中的安全特征。
“区块链”可以包括数据库,所述数据库维护不断增长的记录列表安全,以防篡改和修订。区块链可以包括由一个或多个对等体记录的若干事件记录块。区块链中的每个块还可以包括时间戳和与前一块的链接。例如,每个块可以包括前一块的散列。换句话说,区块链中的事件记录可存储为一系列“块”或包括在给定时间段内发生的若干事件的记录的永久性文件。在完成块并且验证块之后可以由适当对等体将块附加到区块链。在本发明的实施例中,区块链可以是分布式的,并且可以在区块链网络中的每一对等体处维护区块链的副本。
区块链的“节点”可以包括计算机或软件节点。在一些情况下,区块链网络中的每个节点都有数字账本或区块链的副本。每个节点检查每笔交易的有效性。在一些情况下,如果大多数节点都表明交易有效,则将其写入块中。
“链外信道”或“交互信道”可以包括用于执行加密货币交易或微交易而不向底层区块链广播的信道。链外信道可以被称为“二层信道”。闪电网络中的信道是链外信道的实例。在一些实施方式中,可以通过向区块链部署智能合约来实现链外信道。然后,链外信道上的参与者可以在不向区块链广播的情况下彼此执行加密货币交易。可以通过广播“关闭”来关闭链外信道,此时,链外信道上的资金被分配给参与者。
“存储器”可以包括可存储电子数据的任何合适的一个或多个装置。合适的存储器可以包括非暂态计算机可读介质,其存储可由处理器执行以实现所要方法的指令。存储器的实例包括一个或多个存储芯片、磁盘驱动器等。此类存储器可使用任何合适的电气、光学和/或磁性操作模式来操作。
“处理器”可以包括任何合适的一个或多个数据计算装置。处理器可以包括一起工作以实现期望的功能的一个或多个微处理器。处理器可以包括CPU,该CPU包括至少一个高速数据处理器,该高速数据处理器足以执行用于执行用户和/或系统生成的请求的程序部件。CPU可以是微处理器,例如AMD的Athlon、Duron和/或Opteron;IBM和/或Motorola的PowerPC;IBM和Sony的Cell处理器;Intel的Celeron、Itanium、Pentium、Xenon和/或XScale;和/或类似的处理器。
图1示出了根据实施例的通用交互系统的框图。通用交互系统可包括第一授权实体计算机100、第一证书机构计算机102、第一区块链网络104、第一服务提供商计算机106、第一用户装置108、第二授权实体计算机110、第二证书机构计算机112、第二区块链网络114、第二服务提供商计算机116、第二用户装置118和中枢计算机120。
第一授权实体计算机100和第二授权实体计算机110可分别由第一授权实体和第二授权实体操作。在一些实施例中,在跨境交易的环境中,第一授权实体可以是第一国家(例如,美国)的中央银行,而第二授权实体可以是另一国家(例如,英国)的中央银行。
第一证书机构计算机102和第二证书机构计算机112可以由相同或不同证书机构操作。在一些实施例中,第一证书机构计算机102和第二证书机构计算机110可以是分别由银行、支付处理器或将在第一授权实体和第二授权实体授权的管理下的其它实体操作的计算机。
第一区块链网络104可以操作第一数字货币的第一区块链。第二区块链网络114可以操作第二数字货币的第二区块链。第一数字货币和第二数字货币可以相同或不同。在一些实施例中,第一区块链网络104可以由第一授权实体操作或使用,并且第二区块链网络114可以由第二授权实体操作或使用。
第一服务提供商计算机106可以由第一服务提供商操作。第一服务提供商可以向用户提供对数字钱包的访问。例如,第一服务提供商计算机106可以是数字钱包应用程序服务器,并且可以与安装在用户装置上的数字钱包应用程序通信。第二服务提供商计算机116可以由第二服务提供商操作,并且可以与第一服务提供商计算机106类似。第一用户装置108可以由第一用户操作,并且第二用户装置118可以由第二用户操作。中枢计算机120可以由诸如支付处理网络的处理网络来操作。
图1和以下附图中的任何附图的通用交互系统中的部件可以通过任何合适的通信介质彼此操作性通信。通信介质的合适实例可以是以下各项中的任一项和/或组合:直接互连;互联网;局域网(LAN);城域网(MAN);作为互联网节点的运行任务(OMNI);安全定制连接;广域网(WAN);无线网络(例如采用诸如但不限于无线应用协议(WAP);I-模式等的协议)等。图1的计算机、网络和装置之间的消息可以使用安全通信协议传输,所述安全通信协议是例如但不限于文件传输协议(FTP);超文本传输协议(HTTP);以及安全超文本传输协议(HTTPS)。
第一授权实体计算机100可以管理对第一数字货币的访问,所述第一数字货币可以是中央银行数字货币(CBDC)。例如,第一授权实体计算机100可以将密钥供应权限授予第一证书机构计算机102。在一些实施例中,第一证书机构计算机102可以将用于访问第一区块链网络104的密钥对(例如,通过数字证书)提供到诸如第一服务提供商计算机106的服务提供商计算机。然后,第一服务提供商计算机106可以使用所接收的密钥对的公钥访问第一区块链网络104或与该第一区块链网络交互。公钥可以用作标识第一服务提供商的第一服务提供商标识符。第一服务提供商标识符可以允许第一服务提供商计算机106在第一区块链网络104上发行账户。例如,第一服务提供商计算机106可以在第一区块链网络104上向操作第一用户装置108的第一用户发行账户。第一用户的账户可以由第一用户账户标识符(例如,用作第一区块链网络104上的账户的地址的第一用户装置108的公钥)标识。替代地,可使用包括分配给第一服务提供商的字母数字标识符的其它第一服务提供商标识符。
一旦第一服务提供商计算机106从第一证书机构计算机102接收密钥对,第一服务提供商计算机106就可以接着将数字货币账户提供给用户装置。例如,第一服务提供商计算机106可以通过向第一用户装置108供应第一用户公钥来将数字货币账户提供到第一用户装置108。例如,第一用户可以在第一用户装置108上安装数字钱包应用程序,该数字钱包应用程序然后向第一用户装置108提供第一用户公钥,所述第一用户公钥充当用于访问第一区块链网络104上的数字货币账户的第一用户账户标识符。在获得数字货币账户之后,第一用户装置108可以经由第一服务提供商计算机106与第一区块链网络104通信。第一服务提供商计算机106可以在第一区块链网络104上开放与中枢计算机120的附属信道。第一用户可通过第一服务提供商计算机106和中枢计算机120使用附属信道以将第一数字货币存入部署在第一区块链网络104上的智能合约中。在第一用户装置108(经由第一服务提供商计算机106)和中枢计算机已将一定金额的第一数字货币存入智能合约之后,可以建立交互信道。交互信道可以允许第一服务提供商计算机106代表第一用户装置106在无需访问第一区块链网络104的情况下直接与中枢计算机120通信并执行交互(例如,链外和跨链转账)。
可以在第二授权实体计算机110、第二证书机构计算机112(例如,以提供充当第二服务提供商标识符的公钥)、第二区块链网络114、第二服务提供商计算机116、第二用户装置118和中枢计算机120之间执行类似过程,以在第二服务提供商计算机116与中枢计算机120之间建立交互信道。在第二服务提供商计算机116与中枢计算机120之间建立交互信道之后,中枢计算机120可分别与第一区块链网络104和第二区块链网络114通信,经由第一交互信道与第一服务提供商计算机106通信,经由第二交互信道与第二服务提供商计算机116通信。第二服务提供商计算机116可以在第二区块链网络114上向第二用户提供由第二用户账户标识符(例如,第二用户装置118的公钥)标识的数字货币账户。
图2示出了根据实施例的智能合约200的伪码。智能合约200可包括多个合约函数和协议,所述多个合约函数和协议包括初始化函数、获取参数函数、获取状态函数、存款函数、初始化关闭函数、取款协议和声明协议。智能合约200可用于实现交互信道。智能合约200可以存储在区块链、中枢计算机和/或服务提供商计算机上。
在智能合约200中示出了示例性初始化函数。初始化函数可以将智能合约200部署到区块链网络并启动该智能合约。初始化函数由Init(cid,vk1,vk2,T)表示,可以将信道标识符cid、第一公钥vk1、第二公钥vk2和时间段T作为输入。
在初始化函数的第1行,信道标识符cid可以设置为信道标识符变量channelID,其可以是标识由智能合约200建立的交互信道的字符串(例如,随机生成的字符串、根据一些预定方法生成的字符串等)。第一公钥vk1可以设置为服务器公钥变量vkS,其可以是服务器计算机的公钥。第二公钥vk2可以设置为客户端公钥变量vkC,其可以是客户端(例如,第一用户或第二用户)的公钥。时间段T可以设置为disputeTime(争议时间)变量,该争议时间变量可以是在初始化信道的关闭时交互信道到期经过的时间。例如,第一公钥vk1可以是中枢计算机120的公钥,并且第二公钥vk2可以是第一服务提供商计算机106供应的第一用户装置的公钥(例如,第一用户账户标识符),并且时间T可以是一小时。
在初始化函数的第2行,在输入被设置为占位符变量之后,初始化函数接着可将交互信道的合约状态变量设置为活动状态Active,并且可以初始化若干其它变量。例如,最终索引变量finalidx、最终信用变量finalCredit、服务器存款变量serverDeposit、客户端存款变量clientDeposit、信道到期变量channelExpiry和关闭请求方变量closeRequestor可设置为零或空(null)。最终索引变量finalidx可以是保持使用交互信道执行的交互次数的计数的计数器。最终信用变量finalCredit可以是跟踪使用交互信道移动的数字货币的金额的变量(例如,如果客户端获得数字货币则为正值,或者如果客户端转移数字货币则为负值)。服务器存款变量serverDeposit可以是跟踪中枢计算机120最初(例如,经由附属信道)存入智能合约200的数字货币的金额的变量。客户端存款变量clientDeposit可以是跟踪服务提供商计算机(例如,第一服务提供商计算机106或第二服务提供商计算机116)最初(例如,经由附属信道)存入智能合约200的数字货币的金额的变量。信道到期变量channelExpiry可以是确定交互信道何时将到期的变量。关闭请求方变量closeRequestor可以是标识初始化交互信道的关闭的一方的变量。
在智能合约200中示出了示例性获取参数函数。获取参数函数可以检索交互信道的若干参数。由GetParams()表示的获取参数函数可以检索交互信道的信道标识符channelID、服务器公钥vkS、客户端公钥vkC和争议时间disputeTime。
在智能合约200中示出了示例性获取状态函数。获取状态函数可以检索交互信道的状态。由GetState()表示的获取状态函数可以检索第一智能合约的交互信道的状态status、最终索引变量finalidx、最终信用变量finalCredit、服务器存款变量serverDeposit、客户端存款变量clientDeposit、信道到期变量channelExpiry和关闭请求方变量closeRequestor。
在智能合约200中示出了示例性存款函数。存款函数可用于将数字货币存入智能合约200。也就是说,在开放交互信道时,存款函数可以发起将数字货币从智能合约200中涉及的实体的区块链账户转移到智能合约200。由Deposit(amount)表示的存款函数可以将数字货币的金额“amount”作为输入。
在存款函数的第1行和第2行,存款函数可以首先执行若干验证检查。例如,存款函数可以首先检查由智能合约200建立的交互信道是否是活动的,并且它可以另外通过检查调用方的公钥caller.vk是否等同于服务器公钥vkS或客户端公钥vkC来检查调用存款函数的一方是否是交互信道的授权用户。
在存款函数的第3行和第4行,存款函数接着可以确定调用方的身份。如果调用方的公钥caller.vk等同于服务器公钥vkS,则可以将金额添加到服务器存款变量。如果调用方的公钥caller.vk等同于客户端公钥vkC,则可以将金额添加到客户端存款变量。
在智能合约200中示出了由InitClose()表示的示例性初始化关闭函数。初始化关闭函数可用于初始化交互信道的关闭。
在初始化关闭函数的第1行,初始化关闭函数可以首先执行若干验证检查。例如,初始化关闭函数可以首先检查交互信道是已关闭,还是协同关闭。
在初始化关闭函数的第2行,初始化关闭函数可以接着确定交互信道是否是活动的。如果交互信道的合约状态变量是活动状态Active,那么初始化关闭函数可以将信道到期变量channelExpiry设置为争议时间(例如,通过将争议时间变量添加到调用初始化关闭函数时的时间戳currentTime)。然后,初始化关闭函数可以将合约状态变量设置为等于单方关闭状态UnilateralClosing(意味着双方中的一方已经初始化了交互信道的关闭),并且将关闭请求方变量设置为调用方的公钥。
在第3行,如果交互信道的合约状态变量是单方关闭状态UnilateralClosing(例如,两方中只有一方已初始化关闭),并且两方中的第二方调用初始化关闭函数(例如,当前调用方的公钥caller.vk不是关闭请求方变量closeRequestor中包括的公钥),初始化关闭函数可以将交互信道的合约状态变量设置为协作关闭状态CooperativeClosing(例如,双方已初始化关闭)。
在智能合约200中示出了由withdraw()表示的示例性取款函数。取款函数可用于从智能合约200提取数字货币。也就是说,在关闭交互信道时,取款函数可以发起将数字货币从智能合约200转移到智能合约200的实体的区块链账户。
在第1行,取款函数可以首先执行若干验证检查。例如,取款函数可以确定交互信道的合约状态变量是活动状态Active还是关闭状态Closed(例如,意味着交互信道当前正在使用,或已经关闭)。在取款函数的第2行,取款函数可另外执行验证检查以确定交互信道当前是否是活动的,但已超过其到期时间。
在取款函数的第3行,取款函数可以接着将最终信用变量添加到客户端存款变量,并从服务器存款变量减去最终信用变量。取款函数可以接着调用区块链网络的转账函数以执行链上转账。例如,取款函数可以使第一区块链网络104将(clientDeposit+finalCredit)金额的数字货币转移到第一用户的账户,并且将(serverDeposit–finalCredit)金额的数字货币转移到中枢计算机120账户。然后,在取款函数的第4行,取款函数接着可以将通用支付通道的合约状态变量设置为关闭状态Closed。
在智能合约200中示出了示例性声明协议。声明协议可用于声明链上交互。由Claim(cid,idx,clientCredit,txAmount,hash,expiry,secretReceived,σ,secret)表示的声明协议可以采用若干输入,包括信道标识符(“cid”)、索引(“idx”)、客户端信用(“clientCredit”)、交互金额(“txAmount”)、散列(“hash”)、到期时间(expiry)、接收秘密指示符(“secretReceived”)、签名(“σ”)和秘密(“secret”)。
在声明协议的第1行,声明协议可以首先执行验证检查。例如,声明协议可以确定输入索引是否小于或等于交互信道的最终索引变量。
在声明协议的第2行,声明协议另外可以通过检查接收秘密指示符的值来确定秘密是否被调用方接收(例如,secretReceived=“0”可指示调用方尚未接收到秘密,并且secretReceived=“1”可指示调用方已接收到秘密)。如果调用方尚未接收到秘密,则声明协议可确定当前时间是否已超过信道到期时间。声明协议还可以确定输入秘密散列(例如,使用预定散列函数)是否正确地等于输入散列。
在声明协议的第3行,声明协议可以接着确定调用方的身份。例如,如果调用方的公钥caller.vk等同于服务器公钥,则声明协议可以首先验证输入签名σ。输入签名σ可以是变量[channelID,idx,clientCredit,txAmount,hash,expiry,secretReceived]上的数字签名。声明协议可以通过从交互信道检索客户端公钥以验证签名σ来验证签名σ。然后,声明协议可以验证交互金额是否小于客户端持有的数字货币的金额(例如,客户端信用变量clientCredit可以存储使用交互信道转移的增加/减少客户端的数字货币的金额的数字货币的金额,使得客户端在任何点持有的数字货币的金额等于clientDeposit+clientCredit)。如果客户端持有的数字货币的金额足以支付交互金额,则声明协议可以更新最终信用变量(“finalCredit”)以等于从客户端信用变量(“clientCredit”)减去的交易金额(“txAmount”)(即,客户端向服务器转移txAmount的数字货币)。
如果调用方的公钥caller.vk等同于客户端公钥,则可能发生类似过程。可以通过从交互信道检索服务器公钥来验证输入签名σ。声明协议将替代地确定交互金额txAmount是否小于服务器持有的数字货币的金额(例如,serverDeposit–clientCredit)。声明协议可以更新最终信用变量以等于添加到客户端信用变量的交互金额(例如,服务器将txAmount的数字货币转移到客户端)。
在声明协议的第4行,声明协议可以接着更新最终索引变量以等于输入索引。然后,在声明协议的第5行中,可以调用初始化关闭函数以结束声明协议。
图3示出了根据实施例的智能合约的辅助函数300的伪码。多个辅助函数300可以与智能合约相关联。辅助函数300可以与智能合约的函数和协议结合使用以维持交互信道。辅助函数300可包括生成承诺函数、验证承诺函数、生成收据函数、验证收据函数和更新本地状态函数。
第一用户可以使用承诺来与第二用户交互。例如,承诺包括第一用户将第一金额的第一数字货币转移给第二用户的参数。承诺可以包括与所提议的交互相关联的若干参数、智能合约和用于执行交互的交互信道。此类参数的实例可包括标识将用于交互的交互信道的信道标识符;交互信道的合约状态变量(例如,“Active(活动)”,“Closed(关闭)”等);索引变量;跟踪客户端持有的数字货币的金额的客户端信用变量;提议的交互金额(例如,将从第一用户转移到第二用户的数字货币的金额);散列值,其中散列是通过对一些底层秘密值进行散列化(例如,hash=Hash(secret))生成的;此后不再可以声明承诺的到期时间;接收秘密指示符;以及先前提到的变量上的数字签名。可以在智能合约的承诺列表中包括承诺。
收据可用于声明承诺。收据可包括与智能合约和交互信道相关联的若干变量。收据中包括的变量可以是用承诺的变量更新的智能合约的变量和交互信道的变量(例如,可以通过使用智能合约300的声明协议来更新变量)。例如,承诺可以包括提议的交互金额,其中提议将客户端信用增加交互金额。收据可能包括更新的客户端信用,该更新的客户端信用包括交互金额。收据可以指示交互已最终完成,并且收据中包括的变量是已执行交互之后的最终变量。可以在智能合约的收据列表中包括承诺。
由CreatePromise(cid,state,txAmount,hash,expiry,sk)表示的生成承诺函数可用于生成承诺。在生成承诺函数的第1行,生成承诺函数可以将接收秘密指示符设置为等于“0”(例如,已生成交互的承诺,但尚未揭示底层秘密)。在生成承诺函数的第2行,生成承诺函数可以使用输入变量生成承诺。该承诺包括智能合约和交互信道的几个变量。所述变量可以包括信道标识符(“cid”)、索引变量(“idx”)、客户端信用变量(“clientCredit”)、交互金额(“txAmount”)、散列(“hash”)、到期时间(“expiry”)、接收秘密指示符(“secretReceived”)和先前变量上的数字签名(例如,使用输入秘密密钥sk)。然后,可以输出图3中的显示为[cid,idx,clientCredit,txAmount,hash,expiry,secretReceived,σ]的承诺,并将其添加到与交互信道相关联的智能合约。
可以使用由VerifyPromise(promise,cid,state,txAmount,hash,expiry,vk)表示的验证承诺函数来验证承诺。验证承诺函数可以将承诺、用于生成承诺的变量[cid,state,txAmount,hash,expiry]和验证密钥作为输入。在验证承诺函数的第1行,验证承诺函数可以将秘密接收指示符设置为等于“0”。在生成承诺函数的第2行,生成承诺函数可以通过使用验证密钥来验证签名并将签名的变量与输入变量进行比较来验证输入承诺的签名promise.σ。
由CreateReceipt(cid,state,sk)表示的生成收据函数可用于生成收据。生成收据函数可以将信道标识符、交互信道的状态和秘密密钥作为输入。在生成收据函数的第1行,交互金额txAmount、散列和信道标识符标识的交互信道上的最新收据的到期可设置为零或空,且接收秘密指示符可设置为“1”(例如,接收到承诺的底层秘密,因此可以声明承诺)。例如,生成收据函数可以使用信道标识符来标识交互信道。交互信道可以与包括承诺的智能合约相关联。在生成收据函数的第2行,收据可以使用承诺的更新变量生成收据。例如,在图3中示出了包括变量[cid,idx,clientCredit,txAmount,hash,expiry,secretReceived,σ]的收据。从此变量列表中,cid作为输入接收,idx从承诺中检索,clientCredit从承诺中检索,并且更新txAmount、hash、expiry和secretReceived。签名σ可以是先前变量上的数字签名。然后,可以输出收据并将其添加到智能合约的收据列表中。
由VerifyReceipt(receipt,cid,state,txAmount,hash,expiry,vk)表示的验证收据函数可用于验证收据。验证收据函数可将收据、用于生成收据的变量[cid,state,txAmount,hash,expiry]和验证密钥作为输入。在验证收据函数的第1行,验证收据函数可以将交互金额、散列和到期设置为零或空,并且将接收秘密指示符设置成等于“1”。在生成收据函数的第2行,生成收据函数可以通过使用验证密钥来验证签名并将签名的变量与输入变量进行比较来验证输入收据的签名receipt.σ。
由UpdateLocalState(localState,promise,increaseCredit)表示的更新本地状态函数可用于更新本地智能合约的变量。更新本地状态函数可以将智能合约的本地状态(例如,智能合约的本地存储副本,其可能与部署在区块链上的智能合约不同)、承诺和增加信用指示符作为输入。在更新本地状态函数的第1行,更新本地状态函数可以更新智能合约的索引变量(例如,如果索引变量是线性计数器,则更新可以将前一索引变量增加一)。在更新本地状态函数的第2行和第3行,更新本地状态函数可以通过检查增加信用指示符的值来确定是否将增加客户端信用变量。例如,如果增加信用指示符等于“1”,则更新本地状态函数可以确定智能合约的本地状态下的客户端信用变量将增加输入承诺的交互金额(例如,localState.clientCredit+promise.txAmount)。在另一实例中,如果增加信用指示符等于“0”,则更新本地状态函数可以确定智能合约的本地状态下的客户端信用变量将减少输入承诺的交互金额(例如,localState.clientCredit–promise.txAmount)。在更新本地状态函数的第4行,可以输出更新本地状态。
图4示出了根据实施例的智能合约的合约和时间事件处理程序400。合约和时间事件处理程序400可以是连续循环的处理线程,检查合约和基于时间的离线事件的状态。合约和时间事件处理程序400可以监视由一方建立的每个交互信道C。在第1行,合约和时间事件处理程序400可以检查交互信道的状态。
在第2行,合约和时间事件处理程序400确定合约状态是否为关闭状态Closed。如果交互信道关闭,则合约和时间事件处理程序400可以将交互信道变量C设置为零或空,使得在由一方建立的交互信道列表中不再包括交互信道。
在第3行,合约和时间事件处理程序400确定合约状态是否是协作关闭状态CooperativeClosing。如果交互信道处于协作关闭状态,则合约和时间事件处理程序400可以调用交互信道上的智能合约的取款函数。
在第4行,合约和时间事件处理程序400确定合约状态是否为单方关闭状态UnilateralClosing。在第4a行,合约和时间事件处理程序400可确定智能合约是否包含承诺,并确定是否已揭示承诺的秘密,如果已揭示,则合约和时间事件处理程序400可使用该承诺作为输入来调用智能合约的声明协议。在第4b行,合约和时间事件处理程序400可以确定智能合约是否包含收据,并且如果包含,可以使用收据作为输入来调用智能合约的声明协议。在第4c行,合约和时间事件处理程序400可确定智能合约是否不包含收据,以及是否包含不揭示秘密的承诺,且如果包含,可调用智能合约的初始化关闭函数。在第4d行,合约和时间事件处理程序400可确定交互信道是否已超过到期时间,且如果超过,则调用智能合约的取款函数。
在第5行,合约和时间事件处理程序400确定合约状态是否等同于“Active(活动)”,以及承诺是否尚未到期。在第5a行,合约和时间事件处理程序400可确定是否已揭示承诺的秘密,并且如果已揭示,则合约和时间事件处理程序400可使用承诺作为输入来调用智能合约的声明协议。在第5b行,合约和时间事件处理程序400可以接着从智能合约移除承诺。
图5示出了根据实施例的信道部署协议的流程图。信道部署协议部署协议可用于部署交互信道。第一服务提供商计算机106可以从第一用户装置108接收开始信道部署协议的指令。在一些实施例中,第一服务提供商计算机106和中枢计算机120可以在信道部署协议之前就包括信道标识符和争议时间的一些合约参数达成一致。
在步骤S500处,第一服务提供商计算机106可以将开放第一区块链网络104上的交互信道的请求传输至中枢计算机120。该请求可包括第一用户的公钥、信道标识符和用于部署第一智能合约的信道争议时间。第一用户的公钥可以是标识第一用户在第一区块链网络104上的第一数字货币账户的第一用户账户标识符的实例。
在步骤S502处,在从第一服务提供商计算机106接收到开放交互信道的请求之后,中枢计算机120可以验证第一区块链网络104是支持的区块链网络。例如,中枢计算机120可以验证已与第一区块链网络104建立附属信道。中枢计算机120可以针对所接收的请求生成请求标识符。第一服务提供商计算机106可以使用请求标识符来监测第一智能合约部署的状态。第一智能合约可能不会立即部署在第一区块链网络104上,因此第一服务提供商计算机106可以使用请求标识符来查询中枢计算机120关于第一智能合约部署的状态。
在步骤S504处,在启动对第一智能合约的部署之后,中枢计算机120可以将请求标识符和信道标识符传输至第一服务提供商计算机106。
在步骤S506处,中枢计算机120可以将智能合约部署请求传输至第一区块链网络104。中枢计算机120可以调用第一区块链网络104的部署合约函数以将第一智能合约部署到第一区块链网络104。例如,中枢计算机120可以使用第一智能合约代码(例如,用于生成第一智能合约的代码,类似于图2的智能合约200的伪码)传输运行部署合约函数的指令。
在步骤S508处,在接收到智能合约部署请求之后,第一区块链网络104可以运行部署合约函数以获得合约标识符。合约标识符可以是第一智能合约在第一区块链网络104上的地址。在获得合约标识符之后,第一区块链网络104可以将合约标识符传输至中枢计算机120。
在步骤S510处,在从第一区块链网络104接收到合约标识符之后,中枢计算机120可以使用第一智能合约的初始化函数将第一智能合约部署到区块链网络。例如,中枢计算机120可以使用初始化函数以其自身的公钥、第一用户装置108的公钥、信道标识符和争议时间作为输入,来在第一区块链网络104上用输入变量初始化第一智能合约。随后,第一智能合约可以实施第一服务提供商计算机106与中枢计算机120之间的交互信道,所述交互信道可以由信道标识符标识。
在步骤S512处,在第一区块链网络104上初始化第一智能合约之后,中枢计算机120可以将请求标识符和合约标识符传输至第一服务提供商计算机106。
在步骤S514处,在从中枢计算机120接收到请求标识符和合约标识符之后,第一服务提供商计算机106可以验证第一智能合约的部署。例如,第一服务提供商计算机106可以(例如,使用获取参数函数)检索第一智能合约的参数并验证信道标识符、第一用户装置108的公钥、中枢计算机120的公钥和争议时间等于正确的值。在一些实施例中,第一服务提供商计算机106可以使用合约标识符访问第一区块链网络104以检索第一智能合约。在验证第一智能合约的参数之后,第一服务提供商计算机106可以在本地存储第一智能合约。
可以在第二区块链网络114、第二服务提供商计算机116和中枢计算机120之间执行类似过程,以将第二智能合约部署到第二区块链网络114。
图6示出了根据实施例的检查信道状态协议的流程图。服务提供商计算机可以使用检查信道状态协议来检查区块链上的智能合约的状态。例如,在请求将第一智能合约部署到第一区块链网络104之后,第一服务提供商计算机106可以使用检查信道状态协议检查第一智能合约的部署状态。检查信道状态协议可以在部署合约之后使用,以检索智能合约的最新参数和状态信息。
在步骤S606处,第一服务提供商计算机106可以将检查信道状态请求传输至第一区块链网络104。检查信道状态请求可以包括在图5的步骤S502中生成的请求标识符,或合约标识符。
在步骤S608处,在从第一服务提供商计算机106接收到合约标识符或请求标识符之后,第一区块链网络104可以将第一智能合约的参数和状态信息传输至第一服务提供商计算机106。参数和状态信息可包括由第一智能合约的获取状态函数提供的数据,包括第一智能合约的交互信道的状态status、最终索引变量finalidx、最终信用变量finalCredit、服务器存款变量serverDeposit、客户端存款变量clientDeposit、信道到期变量channelExpiry和关闭请求方变量closeRequestor,第一用户装置108的公钥,中枢计算机120的公钥,信道标识符,争议时间等。
图7示出了根据实施例的存款协议的流程图。可以在智能合约被部署到区块链网络以将一定金额的数字货币转移到区块链网络上的智能合约之后使用存款协议。例如,第一用户装置108可以将存款请求传输至第一服务提供商计算机106。存款请求可包括使用存款协议将一定金额的第一数字货币转移到第一区块链网络104上的第一智能合约的指令。存款请求可包括合约标识符(例如,第一智能合约在第一区块链网络104上的地址)和将转移到由合约标识符标识的第一智能合约的一定金额的第一数字货币的指示。存款请求还可以包括标识操作第一用户装置108的第一用户在第一区块链网络104上的账户的第一用户账户标识符(例如,由第一服务提供商计算机106提供的第一用户装置108的公钥)。第一服务提供商计算机106可以使用第一用户账户标识符来验证第一用户持有账户以提供待转移的一定金额的第一数字货币。
在步骤S700处,在从第一用户装置108接收到存款请求之后,第一服务提供商计算机106可以验证第一智能合约是活动的。例如,第一服务提供商计算机106可以使用图6的检查信道状态协议来检索第一智能合约的参数和状态信息,包括第一智能合约的活动状态。
在步骤S702处,在检索第一智能合约的参数和状态信息之后,第一服务提供商计算机106可以与第一区块链网络104一起发起将一定金额的第一数字货币转移到第一智能合约。例如,第一服务提供商计算机106可以将转账请求传输至第一区块链网络104,所述转账请求包括将一定金额的第一数字货币从第一用户账户标识符标识的第一用户的账户转移到合约标识符标识的第一智能合约的指令。第一服务提供商计算机106接着可以更新本地存储的第一智能合约以包括该金额的数字货币的第一存款。
在步骤S704处,在从第一服务提供商计算机106接收到转账请求之后,第一区块链网络104可以将一定金额的第一数字货币从第一用户的账户转移到第一智能合约。
在步骤S706处,在完成将一定金额的第一数字货币从第一用户的账户转移到第一智能合约之后,第一区块链网络104可以通知第一服务提供商计算机106,或者第一服务提供商计算机106可以访问第一区块链网络104以确认一定金额的第一数字货币的转移已完成。第一服务提供商计算机106然后可以更新第一智能合约的本地副本以包括一定金额的第一数字货币。第一服务提供商计算机106接着可以将存款完成的通知传输至第一用户装置108。
中枢计算机120可以执行类似过程以将第一数字货币存入第一智能合约。另外,第二用户装置118结合第二服务提供商116可以执行类似过程以将第二数字货币存入第二智能合约。
图8示出了根据实施例的授权协议800。甲方可能希望与乙方进行交互。该交互可包括将数字货币从甲方转移到乙方。例如,操作第一用户装置108的第一用户可能希望访问操作第二用户装置118的第二用户提供的资源。在授权协议开始之前,乙方可以向甲方提供交互建议。例如,乙方可以提供包括交互金额txAmount、交互超时txExpiry和散列的交互建议。散列可以是秘密值的散列(例如,hash=Hash(secret)),其中仅乙方最初知道底层秘密。甲方用于交互的第一交互信道可以由cidA表示。类似地,乙方用于交互的第二交互信道可以由cidB表示。可以由vkA表示甲方的公钥(例如,第一用户装置108的公钥),由vkB表示乙方的公钥(例如,第二用户装置118的公钥),以及由vkS表示服务器S的公钥(例如,中枢计算机120的公钥)。
甲方可通过使用第一交互信道标识符cidA、第一智能合约的本地状态CA.localstate、交互金额txAmount、散列、第一分类账的完成交互到期时间(例如,完成交互到期时间可以包括交互到期时间txExpiry、第一分类账的延迟时间ledgerA.Δ,在该延迟时间,交互信道处于开放)和甲方的秘密密钥skA,使用生成承诺函数创建发送方承诺PA来启动授权协议。发送方承诺可包括第一交互信道标识符cidA、第一智能合约的本地状态CA.localstate、交互金额txAmount、散列、第一分类账的完成交互到期时间(例如,完成交互到期时间可以包括交互到期时间txExpiry、第一分类账的延迟时间ledgerA.Δ,在此延迟时间,交互信道处于开放)和使用甲方的秘密密钥skA生成的上述各项的数字签名。发送方承诺PA可以添加到第一智能合约CA的本地副本的承诺列表中。在将发送方承诺PA添加到第一智能合约CA的本地副本的承诺列表之后,甲方可以将发送方承诺PA和乙方的指示传输至服务器S。发送方承诺PA可包括交互金额txAmount,该交互金额可以是第一数字货币的第一金额。因此,甲方可以通过传输发送方承诺将第一金额的第一数字货币转移到服务器S。
在从甲方接收到发送方承诺时(例如,在从甲方接收到第一金额的第一数字货币之后),服务器S可以将发送方承诺PS添加到第一智能合约CS,A的本地副本的承诺列表。服务器S接着可以使用第二交互信道标识符cidB、第二智能合约的本地状态CS,B.localstate、发送方承诺的交互金额PA.txAmount、发送方承诺的散列PA.hash、第二分类账的完成交互到期时间(例如,完成交互到期时间可以包括交互到期时间txExpiry和延迟时间ledgerA.Δ,使得第二分类账的到期时间比第一分类账的到期时间短)和服务器的秘密密钥skS,使用生成承诺函数生成服务器承诺PS。服务器承诺可以包括第二交互信道标识符cidB、第二智能合约的本地状态CS,B.localstate、发送方承诺的交互金额PA.txAmount、发送方承诺的散列PA.hash、第二分类账的完成交互到期时间(例如,完成交互到期时间可以包括交互到期时间txExpiry和延迟时间ledgerA.Δ,使得第二分类账的到期时间比第一分类账的到期时间短)和使用服务器的秘密密钥skS生成的上述各项的数字签名。服务器S接着可以将服务器承诺PS添加到第二智能合约CS,B的本地副本的承诺列表。发送方承诺的交互金额PA.txAmount可以是第一数字货币的第一金额,或者可以是等价的第二数字货币的第二金额。然后,服务器S可以将服务器承诺PS传输至乙方。通过将服务器承诺PS传输至乙方,服务器S可以将第二金额的数字货币转账至乙方。
在从服务器S接收到服务器承诺PS时,乙方可以将发送方承诺PB添加到第二智能合约CB的本地副本的承诺列表。此外,乙方可以将散列的秘密添加到服务器承诺。
图9示出了根据实施例的授权协议的流程图。可以在图1的系统中实现图8的授权协议。例如,第一服务提供商计算机106可以扮演甲方的角色,第二服务提供商计算机116可以扮演乙方的角色,并且中枢计算机120可以扮演服务器S的角色。第一用户装置106经由第一服务提供商计算机106可发起与第二用户装置116经由第二服务提供商计算机116的交互。从第一用户装置108到中枢计算机120的通信可以通过第一智能合约实现的第一交互信道经由第一服务提供商计算机106发生。第一交互信道可经由第一服务提供商计算机106将第一用户装置108连接到中枢计算机120。类似地,从第二用户装置118到中枢计算机120的通信可以通过第二智能合约实现的第二交互信道经由第二服务提供商计算机116发生。第二交互信道可以经由第二服务提供商计算机116将第二用户装置118连接到中枢计算机120。在图9的实例中,与用户装置的往来通信示出为在服务提供商计算机处发起/结束,然而,可以存在将数据传输至用户装置的附加步骤,为了简洁将省略该附加步骤。
在步骤S900处,第一服务提供商计算机106可以传输与第二服务提供商计算机116的交互请求。例如,第一服务提供商计算机106可以从第一用户装置108接收指令,以启动将第一金额的第一数字货币转移到第二服务提供商计算机116。例如,第一数字货币的第一金额可以是10USDC。
在步骤S902处,在从第一服务提供商计算机106接收到交互请求之后,第二服务提供商计算机116可以生成交互建议,所述交互建议包括第二信道标识符、交互到期时间、第一数字货币的第一金额,以及通过对第二服务提供商计算机116已知的秘密值进行散列化而生成的散列。
在步骤S904处,在生成交互建议之后,第二服务提供商计算机116可以将交互建议传输至第一服务提供商计算机106。
在步骤S906处,在从第二服务提供商计算机116接收到交互建议之后,第一服务提供商计算机106可以使用交互建议中的数据生成发送方承诺。第一服务提供商计算机106可以使用生成承诺函数以第一参数作为输入来生成发送方承诺。第一参数可以包括交互建议中的数据和第一智能合约的数据。例如,第一参数可以包括第一交互信道标识符、第一智能合约的本地状态、第一数字货币的第一金额、散列、第一完成到期时间以及第一服务提供商计算机106的秘密密钥。发送方承诺可包括第一交互信道标识符、第一智能合约的本地状态、第一数字货币的第一金额、散列、第一完成到期时间以及连接在一起的前述各项的数字签名,所述数字签名使用第一服务提供商计算机106的秘密密钥形成。发送方承诺接着可以被传输至中枢计算机120。通过将发送方承诺传输至中枢计算机120,第一服务提供商计算机106可以将第一金额的第一数字货币转移到中枢计算机120。发送方承诺可以在中枢计算机120不连接到第一区块链网络的情况下将第一金额的第一数字货币转移到中枢计算机。在稍后阶段,中枢计算机120可以使用发送方承诺来声明在链上转移数字货币(例如,在关闭第一交互信道之后使用具有发送方承诺或服务器收据的声明函数)。
在步骤S908处,在从第一服务提供商计算机106接收到发送方承诺之后,中枢计算机120可以验证发送方承诺的第一参数上的数字签名。例如,中枢计算机120可以检索第一用户装置108的公钥以验证第一参数上的数字签名。中枢计算机120接着可确定第一智能合约是否包括足以进行交互的第一数字货币金额。例如,中枢计算机120可以访问第一智能合约的本地副本,以确定客户端存款(例如,第一用户向第一智能合约的初始数字货币存款)以及任何客户端信用金额(例如,智能合约中第一用户的数字货币的增加或减少)是否大于第一数字货币的第一金额10USDC(例如,当前转账金额)。一个此类实例可包括第一智能合约,该智能合约最初包括1000USDC的客户端存款和-500USDC的客户端信用。因此,中枢计算机120可以确定第一智能合约中第一服务提供商计算机106的第一数字货币金额500USDC足以完成10USDC的转账。中枢计算机120可另外确定是否有足够时间声明发送方承诺。例如,中枢计算机120可以将发送方承诺的到期时间与第一区块链网络104和第二区块链网络114的组合延迟时间进行比较。中枢计算机120可以接着将发送方承诺添加到第一智能合约的承诺列表。
由于发送方承诺可用于使用第一智能合约的声明函数执行数字货币的链上转账,所以中枢计算机120实际上经由第一交互信道从第一服务提供商计算机106接收第一金额的第一数字货币。中枢计算机120随后可以开始将第二金额的第二数字货币转移到第二服务提供商计算机116。中枢计算机120接着可使用生成承诺函数以第二参数作为输入来生成服务器承诺。第二参数可以包括第二交互信道标识符、第二智能合约的本地状态、发送方承诺中第一数字货币的第一金额、发送方承诺的散列、第二完成到期时间以及中枢计算机120的秘密密钥。第二承诺可以包括第二交互信道标识符、第二智能合约的本地状态、发送方承诺中第一数字货币的第一金额、发送方承诺的散列、第二完成到期时间以及连接在一起的前述各项的数字签名。可以使用中枢计算机120的秘密密钥生成数字签名。中枢计算机120接着可将服务器承诺添加到第二智能合约的承诺列表。中枢计算机120的秘密密钥可以用于在服务器承诺的第二参数上生成数字签名。
在步骤S910处,在生成服务器承诺之后,中枢计算机120可以将服务器承诺传输至第二服务提供商计算机116。将服务器承诺传输至第二服务提供商计算机116可以是中枢计算机120经由第二交互信道将第二金额的第二数字货币转移至第二服务提供商计算机116的实例。服务器承诺可以在第二服务提供商计算机116不连接到第二区块链网络的情况下将第二金额的第二数字货币转移到第二服务提供商计算机。在稍后阶段,第二服务提供商计算机116可以使用服务器承诺来声明在链上转移数字货币(例如,在关闭第二交互信道之后,使用具有服务器承诺或接收方收据的声明函数)。
在步骤S912处,在从中枢计算机120接收到服务器承诺之后,第二服务提供商计算机116可以验证服务器承诺的第二参数上的数字签名。例如,第二服务提供商计算机116可以从第二智能合约检索中枢计算机120的公钥,以验证第二参数上的数字签名。第二服务提供商计算机116可以接着确定第二智能合约是否包括足以进行交互的服务器存款金额。例如,第二服务提供商计算机116可以确定减去任何客户端信用金额的服务器存款是否大于第二数字货币的第二金额,其中第二数字货币的第二金额的值等于第一数字货币的第一金额的值。一个此类实例可包括第二智能合约最初将5000eCNY(数字元)存入第二智能合约,并且将3150eCNY的客户端信用金额(例如,第二数字货币的金额)存入第二智能合约。因此,第二服务提供商计算机116可以确定中枢计算机120的1850eCNY的第二数字货币的金额足以进行60eCNY(大约等于10USDC的eCNY金额)的转账。第二服务提供商计算机116可以另外验证尚未达到交互到期时间。在执行各种检查之后,第二服务提供商计算机116可以将服务器承诺添加到第二智能合约的承诺列表。第二服务提供商计算机116可以另外将散列的秘密添加到服务器承诺。稍后,第二服务提供商计算机116可以使用转账协议中的承诺来声明支付。
图10示出了根据实施例的转账协议1000的伪码。转账协议1000可用于完成由承诺指示的交互。转账协议1000可用于将承诺转换为收据,该收据可声明链外到区块链执行的转账。
乙方可能希望在第二交互信道上完成交互。乙方可以通过使用具有第二智能合约的当前本地状态CB.localstate、服务器承诺CB.promise和增加信用指示“1”(例如,乙方声明转账,因此增加信用指示“1”将交互金额添加到客户端信用变量)的更新本地状态函数更新第二智能合约的本地状态来开始转账协议1000。第二智能合约的更新的本地状态包括更新的客户端信用,使得第二智能合约中乙方可用的第二数字货币的总金额为(clientDeposit+clientCredit)。在一些实施例中,如果尚未添加,则乙方可以接着将散列的秘密添加到服务器承诺。乙方可以接着将该秘密以及甲方的指示传输至服务器S。
在从乙方接收到秘密和甲方的指示后,服务器S接着可以通过将散列化秘密与先前接收的散列进行比较来验证秘密正确地散列化到服务器承诺的散列。如果散列匹配,则服务器S可以使用具有第二智能合约的当前本地状态CB.localstate、服务器承诺CB.promise和增加信用指示“1”(例如,乙方声明转账,因此增加信用指示“1”将交互金额添加到客户端信用变量)的更新本地状态函数来更新第二智能合约的本地状态。
服务器S可以接着使用生成收据函数以第二智能合约的第二参数和服务器S的秘密密钥skS作为输入来生成接收方收据receiptS。第二智能合约的第二参数可包括第二交互信道标识符cidB和第二智能合约的本地状态CS,B.localstate。服务器S的秘密密钥可用于在第二智能合约的第二参数上生成数字签名。然后,服务器S可以从第二智能合约的承诺列表删除服务器承诺PS。然后,服务器S可以将接收方收据receiptS传输至乙方。
服务器S可以接着使用具有第一智能合约的当前本地状态为CS,A.localstate、发送方承诺CS,A.promise和增加信用指示“0”(例如,甲方提供转账,因此增加信用指示“0”将从客户端信用变量减去交互金额)的更新本地状态函数来更新第一智能合约的本地状态。然后,服务器S可以将散列的秘密添加到发送方承诺。然后,服务器S可以将秘密传输至甲方。
在从服务器S接收到秘密时,甲方可以通过将散列化秘密与先前接收的散列进行比较来验证该秘密正确地散列化到服务器承诺的散列。甲方接着可以使用具有第一智能合约的当前本地状态CA.localstate、发送方承诺CA.promise,和增加信用指示“0”(例如,甲方提供转账,因此增加信用指示“0”将从客户端信用变量减去交互金额)的更新本地状态函数来更新第一智能合约的本地状态。甲方接着可以使用生成收据函数以第一智能合约的第一参数和甲方的秘密密钥skA作为输入来生成服务器收据receiptA。第二参数可包括第一交互信道标识符cidA和第一智能合约的本地状态CA.localstate。甲方的秘密密钥skA可用于在第一智能合约的第一参数上生成数字签名。然后,甲方可以从第一智能合约的承诺列表移除发送方承诺CA.promise。然后,甲方可将服务器收据receiptA传输至服务器S。
在从甲方接收到服务器收据receiptA后,服务器S可以验证第一智能合约的第一参数上的数字签名。然后,服务器S可以从第一智能合约的承诺列表移除发送方承诺CS, A.promise。然后,服务器S可以将服务器收据receiptA添加到第一智能合约的收据列表。
在从服务器S接收到接收方收据receiptS后,乙方可以验证第二智能合约的第二参数上的数字签名。然后,乙方可以从第二智能合约的承诺列表移除服务器承诺CB.promise。然后,乙方可将接收方收据receiptS添加到第二智能合约的收据列表。
图11示出了根据实施例的转账协议的流程图。可以在图1的系统中实现图10的转账协议1000。例如,第一服务提供商计算机106可以扮演甲方的角色,第二服务提供商计算机116可以扮演乙方的角色,并且中枢计算机120可以扮演服务器S的角色。从图8的授权协议继续,第二服务提供商计算机116可能希望声明与第二交互信道上的交互相关联的支付。从第一用户装置108到中枢计算机120的通信可以通过第一智能合约实现的第一交互信道经由第一服务提供商计算机106发生。第一交互信道可经由第一服务提供商计算机106将第一用户装置108连接到中枢计算机120。类似地,从第二用户装置118到中枢计算机120的通信可以通过第二智能合约实现的第二交互信道经由第二服务提供商计算机116发生。第二交互信道可以经由第二服务提供商计算机116将第二用户装置118连接到中枢计算机120。在图9的实例中,与用户装置的往来通信示出为在服务提供商计算机处发起/结束,然而,可以存在将数据传输至用户装置的附加步骤,为了简洁将省略该附加步骤。
在步骤S1100处,第二服务提供商计算机116可以将接收方收据请求传输至中枢计算机120。接收方收据请求可包括发送方承诺的散列的底层秘密(例如,图9的步骤S902的散列中包括的散列的秘密)。
在步骤S1102处,在从第二服务提供商计算机116接收到秘密之后,中枢计算机120可以通过对该秘密进行散列化并将散列化秘密与服务器承诺的散列进行比较来验证该秘密。中枢计算机120接着可使用第二智能合约的当前本地状态、服务器承诺和增加信用指示“1”来更新第二智能合约的本地状态。第二智能合约的更新的本地状态可包括第二数字货币的第二金额的客户端信用变量。例如,第二智能合约的当前本地状态可以包括初始客户端信用变量3150eCNY。更新的本地状态可将客户端信用变量增加第二数字货币的第二金额(例如,等价于待转移的10USDC的eCNY),以形成(大致)3210eCNY的更新的客户端信用变量。中枢计算机120可以接着生成包括第二智能合约的第二参数的接收方收据。中枢计算机120可以使用生成收据函数以第二智能合约的第二参数和中枢计算机120的秘密密钥作为输入来生成收据函数。第二智能合约的第二参数可以包括第二交互信道标识符和第二智能合约的更新的本地状态。中枢计算机120的秘密密钥可用于生成第二智能合约的第二参数上的数字签名。中枢计算机120接着可以从第二智能合约的承诺列表移除服务器承诺。
中枢计算机120接着可以从第一智能合约检索发送方承诺。中枢计算机120接着可以使用第二智能合约的当前本地状态、发送方承诺和增加信用指示“0”来更新第一智能合约的本地状态。第一智能合约的更新的本地状态可包括第一数字货币的第一金额的客户端信用变量。例如,第一智能合约的当前本地状态可以包括负500USDC的初始客户端信用变量。更新的本地状态可将客户端信用变量减少第一数字货币的第一金额(例如,待转账的10USDC),以形成更新的客户端信用变量-510USDC。
在步骤S1104处,在生成接收方收据之后,中枢计算机120可以将接收方收据传输至第二服务提供商计算机116。
在步骤S1106处,在从中枢计算机120接收到接收方收据之后,第二服务提供商计算机116可以验证第二智能合约的第二参数上的数字签名。例如,第二服务提供商计算机116可以从第二智能合约检索中枢计算机120的公钥,以验证第二智能合约的第二参数上的数字签名。然后,第二服务提供商计算机116可以从第二智能合约上的承诺列表移除服务器承诺,并将接收方收据添加到第二智能合约上的承诺列表。
在步骤S1108处,在更新第一智能合约的本地状态之后,中枢计算机120可以将发送方承诺的散列的秘密传输至第一服务提供商计算机106。
在步骤S1110处,在从中枢计算机120接收到发送方承诺的散列的秘密之后,第一服务提供商计算机106可以通过对该秘密进行散列化并将散列化秘密与服务器承诺的散列进行比较来验证该秘密。然后,第一服务提供商计算机106可以使用第二智能合约的当前本地状态、发送方承诺和增加信用指示“0”来更新第一智能合约的本地状态。第一智能合约的更新的本地状态可包括第一数字货币的第一金额的客户端信用变量。例如,第一智能合约的当前本地状态可以包括负500USDC的初始客户端信用变量。更新的本地状态可将客户端信用变量减少第一数字货币的第一金额(例如,待转账的10USDC),以形成更新的客户端信用变量-510USDC。然后,第一服务提供商计算机106可以生成包括第一智能合约的第一参数的服务器收据。第一服务提供商计算机106可以使用生成收据函数以第一智能合约的第一参数和第一服务提供商计算机106的秘密密钥作为输入来使用生成收据函数。第一智能合约的第一参数可包括第一交互信道标识符和第一智能合约的更新的本地状态。第一服务提供商计算机106的秘密密钥可用于在第一智能合约的第一参数上生成数字签名。然后,第一服务提供商计算机106可以从第一智能合约的承诺列表移除发送方承诺。
在步骤S1112处,在生成服务器收据之后,第一服务提供商计算机106可以将服务器收据传输至中枢计算机120。
在步骤S1114处,在从第一服务提供商计算机106接收到服务器收据之后,中枢计算机120可以验证第一智能合约的第一参数上的数字签名。在验证第一智能合约的第一参数上的数字签名之后,中枢计算机120可以从第一智能合约的承诺列表移除发送方承诺,并且可以将服务器收据添加到第一智能合约的收据列表。
图12示出了根据实施例的信道关闭协议的流程图。信道关闭协议可以在转账协议之后执行。信道关闭协议可用于完成链上交互。信道关闭协议利用链外执行的数字货币交互来更新区块链。
在步骤S1200处,第一用户装置108可以将信道关闭请求传输至第一服务提供商计算机106。信道关闭请求可包括第一交互信道标识符。例如,在执行图11的转账协议之后,第一用户装置108可以将第一交互信道标识符传输至第一服务提供商计算机106,以请求关闭第一交互信道(例如,以将第一智能合约的活动状态改变为关闭状态)。
在步骤S1202处,在从第一用户装置108接收到信道关闭请求之后,第一服务提供商计算机106可以发起关闭第一交互信道。例如,第一服务提供商计算机106可以确定第一智能合约的承诺列表中是否存在任何剩余承诺。如果第一服务提供商计算机106在第一智能合约的承诺列表中找到不包括散列的底层秘密的承诺,则第一服务提供商计算机106可以使用该承诺作为输入来调用第一智能合约的声明协议。否则,如果第一服务提供商计算机106在第一智能合约的收据列表中找到收据,则第一服务提供商计算机106可以使用该收据作为输入来调用第一智能合约的声明协议。如果第一智能合约的收据列表和第一智能合约的承诺列表均为空,则第一服务提供商计算机106可以调用第一智能合约的初始化关闭函数。
在步骤S1204处,第一服务提供商计算机106可以使用承诺或收据调用声明协议,或调用初始化关闭函数。声明协议或初始化关闭函数可以将关闭第一交互信道的请求传输至第一区块链网络104。
在步骤S1206处,在从第一服务提供商计算机106接收到关闭请求之后,第一区块链网络104可以执行所接收的调用。例如,如果第一服务提供商计算机106使用服务器收据调用声明协议,则第一区块链网络104可以执行图2中描述的智能合约200的声明协议的函数。在此实例中,服务器收据中包括的第一智能合约的第一参数可用作声明协议的输入。例如,第一智能合约的第一参数可包括第一智能合约的本地状态。信道标识符、索引、客户端信用变量、交互金额、散列、交互到期时间等可从第一智能合约的本地状态检索。声明协议可使得设置智能合约的最终信用变量。例如,第一用户的最终信用变量可以等于(1000USDC存款)–(500客户端信用+10USDC交互金额)=490USDC。声明协议可以通过调用初始化关闭函数来结束。初始化关闭函数可以基于函数的调用方更新交互信道的状态。例如,交互信道的状态可以被更新为等于“UnilateralClosing(单方关闭)”或“CooperativeClosing(协作关闭)”中的一者。在此实例中,由于请求是由第一服务提供商计算机106发起的,因此函数的调用方是第一服务提供商计算机106。
在步骤S1208处,在调用初始化关闭函数之后,第一区块链网络104可以将交互信道的状态传输至第一服务提供商计算机106。
在步骤S1210处,在从第一区块链网络104接收到交互信道的状态之后,第一服务提供商计算机106可以将交互信道的状态传输至第一用户装置108。
在步骤S1212处,在从第一服务提供商计算机106接收到通用交互信道的状态之后,第一用户装置108可以将调用第一智能合约的取款函数(例如,智能合约200的取款函数)的指令传输至第一服务提供商计算机106。取款函数可以将一定金额的第一数字货币返回到第一用户账户标识符标识的第一用户的链上第一用户的账户,该金额等于最终信用变量。例如,取款函数可以将初始1000USDC存款中的490USDC返回到第一区块链网络104上的第一用户的账户。
图13示出了根据实施例的示例性用户装置1300的框图。用户装置1300可以包括处理器1302,该处理器可以耦合到存储器1304、网络接口1306和计算机可读介质1308。用户装置1300的实例可以是第一用户装置或第二用户装置。
存储器1304可以包含智能合约和交互信道等的数据。存储器1304可以在内部或在外部(例如,经由基于云的数据存储装置)耦合到处理器1302,并且可以包括易失性存储器和/或非易失性存储器(例如RAM、DRAM、ROM、闪存存储器或任何其他合适的存储器装置)的任何组合。
网络接口1306可以包括可允许用户装置1300与外部计算机和/或装置通信的接口。网络接口1306可以使得用户装置1300能够向诸如中枢计算机、服务提供商计算机、其它用户装置等的另一装置传送数据以及从该另一装置传送数据。网络接口1306的一些实例可包括调制解调器、物理网络接口(例如以太网卡或其它网络接口卡(NIC))、虚拟网络接口、通信端口、个人计算机存储卡国际协会(PCMCIA)插槽和卡等。由网络接口1306启用的无线协议可包括Wi-Fi。经由网络接口1306传递的数据可以呈信号的形式,所述信号可以是电信号、电磁信号、光信号,或者能够由外部通信接口接收的任何其它信号(统称为“电子信号”或“电子消息”)。可以包括数据或指令的这些电子消息可以经由通信路径或信道在网络接口1306与其它装置之间提供。如上所述,可以使用任何合适的通信路径或信道,例如电线或电缆、光纤、电话线、蜂窝链路、射频(RF)链路、WAN或LAN网络、互联网,或任何其它合适的介质。
计算机可读介质1308可包括数个软件模块,包括但不限于数字钱包应用程序1308A和通信模块1308B。
数字钱包应用程序1308A可包括使处理器1302在用户装置1300上维护数字钱包应用程序的代码。例如,数字钱包应用程序1308A可以用于与运行数字钱包应用程序服务器的服务提供商计算机通信。数字钱包应用程序1308A可以允许用户通过交互信道经由服务提供商计算机与中枢计算机通信。
通信模块1308B可包括使处理器1302生成消息、转发消息、重新格式化消息和/或以其它方式与其它实体通信的代码。
图14示出了根据实施例的示例性服务提供商计算机1400的框图。服务提供商计算机1400可以包括处理器1402,该处理器可以耦合到存储器1404、网络接口1406和计算机可读介质1408。服务提供商计算机1400的实例可以是第一服务提供商计算机或第二服务提供商计算机。
存储器1404和网络接口1406可以具有与先前描述的存储器1304和网络接口1306相同或不同的特征。
计算机可读介质1408可以包括用于一种方法的代码,所述代码可由处理器1402执行,所述方法包括:由第一服务提供商计算机生成发送方承诺,所述发送方承诺包括第一金额的第一数字货币和第一参数,其中所述第一参数包括交互建议的散列化秘密;由所述第一服务提供商计算机通过第一交互信道将所述发送方承诺传输至中枢计算机,其中所述中枢计算机随后生成包括第二金额的第二数字货币的服务器承诺,并将所述服务器承诺传输至第二服务提供商计算机;由所述第一服务提供商计算机从所述中枢计算机接收所述散列化秘密的秘密,其中所述第一用户装置通过对所述秘密进行散列并将散列化秘密与先前接收到的散列化秘密进行比较来验证所述秘密;由所述第一服务提供商计算机生成包括所述第一智能合约的第一参数的服务器收据;以及由所述第一服务提供商计算机将所述服务器收据传输至所述中枢计算机。
计算机可读介质1408可包括数个软件模块,包括但不限于区块链模块1408A、数字钱包模块1408B和通信模块1408C。
区块链模块1408A可包括使处理器1402与区块链网络通信的代码。例如,区块链模块1408A可以存储用于与区块链网络通信的公钥/私钥对。区块链模块1408A可以在区块链上建立通信信道,例如附属信道和交互信道。区块链模块1408A可以允许处理器1402在链上和链外转移数字货币。
数字钱包模块1408B可包括使处理器1402维护数字钱包应用程序服务器的代码。例如,数字钱包模块1408B可以用于与运行数字钱包应用程序的多个用户装置通信。数字钱包模块1408B可以允许服务提供商计算机1400与用户装置和中枢计算机通信。
通信模块1408C可以包括使处理器1402生成消息、转发消息、重新格式化消息和/或以其他方式与其他实体通信的代码。
图15示出了根据实施例的示例性中枢计算机1500的框图。中枢计算机1500可以包括处理器1502,该处理器可以耦合到存储器1504、网络接口1506和计算机可读介质1508。
存储器1504和网络接口1506可以具有与先前描述的存储器1304和网络接口1306相同或不同的特征。
计算机可读介质1508可以包括用于一种方法的代码,所述代码可由处理器1502执行,所述方法包括:由中枢计算机从第一服务提供商计算机接收第一用户账户标识符,所述第一服务提供商计算机与第一用户装置通信并且与第一区块链网络通信,所述第一服务提供商计算机随后将一定金额的第一数字货币转移到所述第一区块链网络上的第一智能合约;由所述中枢计算机从第二服务提供商计算机接收第二用户账户标识符,所述第二服务提供商计算机与第二用户装置通信并且还与包含第二智能合约的第二区块链网络通信,其中所述中枢计算机分别与所述第一区块链网络和所述第二区块链网络通信,并且所述中枢计算机经由第一交互信道与所述第一服务提供商计算机通信,并且所述中枢计算机经由第二交互信道与所述第二服务提供商计算机通信;由所述中枢计算机经由所述第一交互信道从所述第一服务提供商计算机接收第一金额的第一数字货币;以及由所述中枢计算机经由所述第二交互信道将第二金额的第二数字货币转移到所述第二服务提供商计算机。
计算机可读介质1508可包括数个软件模块,包括但不限于区块链模块1508A、智能合约模块1508B和通信模块1508C。
区块链模块1508A可包括使处理器1502与区块链网络通信的代码。例如,区块链模块1508A可以存储用于与区块链网络通信的公钥/私钥对。区块链模块1508A可以在区块链上建立通信信道,例如附属信道和交互信道。区块链模块1508A可以允许处理器1502在链上和链外转移数字货币。区块链模块1508A可以允许中枢计算机1500促进跨链交互。
智能合约模块1508B可包括使处理器1502向区块链部署和维护智能合约的代码。例如,智能合约模块1508B可以将智能合约存储在存储器1504中,所述智能合约可以使用区块链模块1508A部署到区块链网络。智能合约模块1508B可用于调用智能合约的函数和协议。
通信模块1408C可以包括使处理器1502生成消息、转发消息、重新格式化消息和/或以其他方式与其他实体通信的代码。
本发明的实施例提供了若干优势。实施例允许用户使用其用户装置执行区块链交互。标准用户装置可以安装由服务提供商管理的应用程序。服务提供商可以代表用户装置执行区块链操作,从而减少用户的计算负担。实施例提供了一种链外和跨链数字货币交互方法。实施例将智能合约部署到区块链网络,所述区块链网络实现用户装置经由服务提供商计算机与中枢计算机之间的交互信道。交互信道可以用于将一定金额的数字货币转移到智能合约。由交互信道执行的转账不需要写入区块链网络。相反,使用承诺和收据方案,其中承诺包括在建议转账时智能合约的参数,并且收据包括在链外完成建议转账之后智能合约的参数。承诺或收据可用于将链上转账写入区块链网络。另外,由于中枢计算机分别连接到第一用户装置和第二用户装置,因此中枢计算机可提供跨链支付。中枢计算机可以使用第一区块链网络上的第一智能合约连接到第一用户装置,并使用第二区块链网络上的第二智能合约连接到第二用户装置。中枢计算机可以经由由第一智能合约建立的第一交互信道接收第一金额的第一类型的数字货币,并且经由第二交互信道将第二金额的第二类型的数字货币(其值等于第一金额的第一类型的数字货币的值)转移到第二智能合约。
此外,如上所述,在上述承诺和收据方案的背景下使用秘密和秘密的散列允许各方进行涉及不同类型的加密货币的转账,以确认所有作出的承诺均已得到验证和确认。在仅使用收据的系统中,恶意中枢计算机可以从第一用户接收第一数字货币,并且不将第二数字货币转移到第二用户。根据实施例的承诺/收据方案减少了所需的信用,因为中枢计算机只能在其向第二用户提供收据之后从第一用户接收第一数字货币。如果第一用户是恶意的,并且不向中枢计算机提供收据,则中枢计算机可以访问发送方承诺,所述发送方承诺可以被带到区块链以声明第一数字货币。仅使用承诺的系统实际上需要链上转账。根据实施例的散列/秘密方案的使用有利地允许有条件转账。
本申请中描述的任何软件部件或功能可实施为使用例如Java、C、C++、C#、Objective-C、Swift的任何合适的计算机语言或例如Perl或Python的脚本语言使用例如常规的或面向对象的技术由处理器执行的软件代码。该软件代码可以作为一系列指令或命令存储在计算机可读介质上以供存储和/或传输,合适的介质包括随机存取存储器(RAM)、只读存储器(ROM)、磁性介质(例如硬盘驱动器或软盘),或者光学介质(例如光盘(CD)或数字通用光盘(DVD))、闪存存储器,等等。计算机可读介质可以是此类存储装置或传输装置的任何组合。
这类程序还可以使用适于经由包括互联网在内的符合多种协议的有线网络、光学网络和/或无线网络进行传输的载波信号来编码和传输。因此,根据本发明的一个实施例的计算机可读介质可以使用用此类程序编码的数据信号来创建。用程序代码编码的计算机可读介质可以与兼容装置一起封装或者(例如,经由因特网下载)与其他装置分开提供。任何此类计算机可读介质可以驻留于单个计算机产品(例如,硬盘驱动器、CD或整个计算机系统)上或内,并且可存在于系统或网络内的不同计算机产品上或内。计算机系统可以包括监视器、打印机,或者用于向用户提供本文所提及的任何结果的其他合适的显示器。
以上描述是说明性的并且不是限制性的。在阅读了本公开之后,本发明的许多变型形式对于本领域的技术人员将变得显而易见。因此,本发明的范围不应当参考上面的描述来确定,而是应当参考未决的权利要求连同其完整范围或等同物来确定。
在不脱离本发明的范围的情况下,任何实施例的一个或多个特征可以与任何其他实施例的一个或多个特征进行组合。
如本文所用,除非明确指示有相反的意思,否则使用“一个”、“一种”或“所述”旨在意指“至少一个/种”。

Claims (20)

1.一种方法,所述方法包括:
由中枢计算机从第一服务提供商计算机接收第一用户账户标识符,所述第一服务提供商计算机与第一用户装置通信并且与第一区块链网络通信,所述第一服务提供商计算机随后将一定金额的第一数字货币转移到所述第一区块链网络上的第一智能合约;
由所述中枢计算机从第二服务提供商计算机接收第二用户账户标识符,所述第二服务提供商计算机与第二用户装置通信并且还与包含第二智能合约的第二区块链网络通信,其中所述中枢计算机分别与所述第一区块链网络和所述第二区块链网络通信,并且所述中枢计算机经由第一交互信道与所述第一服务提供商计算机通信,并且所述中枢计算机经由第二交互信道与所述第二服务提供商计算机通信;
由所述中枢计算机经由所述第一交互信道从所述第一服务提供商计算机接收第一金额的所述第一数字货币;以及
由所述中枢计算机经由所述第二交互信道将第二金额的第二数字货币转移到所述第二服务提供商计算机。
2.根据权利要求1所述的方法,其特征在于,所述第一智能合约实现所述第一交互信道,所述第一交互信道经由所述第一服务提供商计算机将所述第一用户装置连接到所述中枢计算机,并且所述第二智能合约实现所述第二交互信道,所述第二交互信道经由所述第二服务提供商计算机将所述第二用户装置连接到所述中枢计算机。
3.根据权利要求1所述的方法,其特征在于,由所述中枢计算机经由所述第一交互信道从所述第一服务提供商计算机接收第一金额的第一数字货币,以及由所述中枢计算机经由所述第二交互信道将第二金额的第二数字货币转移到所述第二服务提供商计算机包括:
由所述中枢计算机经由所述第一交互信道从所述第一服务提供商计算机接收发送方承诺,其中所述发送方承诺包括第一参数;
由所述中枢计算机生成服务器承诺,所述服务器承诺包括第二参数;以及
由所述中枢计算机经由所述第二服务提供商计算机经由所述第二交互信道将所述服务器承诺传输至所述第二用户装置。
4.根据权利要求1所述的方法,其特征在于,所述第二用户装置将包括秘密的散列的交互建议传输至所述第一用户装置,并且其中所述方法还包括:
由所述中枢计算机从所述第二服务提供商计算机接收所述秘密,其中所述中枢计算机通过对所述秘密进行散列化并且将散列化秘密与先前接收的散列进行比较来验证所述秘密。
5.根据权利要求4所述的方法,还包括:
由所述中枢计算机生成接收方收据,所述接收方收据包括所述第二智能合约的第二参数;
由所述中枢计算机经由所述第二服务提供商计算机通过所述第二交互信道将所述接收方收据传输至所述第二用户装置;
由所述中枢计算机通过所述第一交互信道将所述秘密传输至所述第一服务提供商计算机,其中所述第一服务提供商计算机生成服务器收据,所述服务器收据包括所述第一智能合约的第一参数;以及
由所述中枢计算机经由所述第一服务提供商计算机通过所述第一交互信道从所述第一用户装置接收所述服务器收据。
6.根据权利要求1所述的方法,其特征在于,所述第一智能合约和所述第二智能合约与多个辅助函数相关联,所述多个辅助函数包括生成承诺函数、验证承诺函数、生成收据函数、验证收据函数或更新本地状态函数中的一个或多个。
7.根据权利要求1所述的方法,其特征在于,所述第一智能合约由所述中枢计算机部署到所述第一区块链网络,并且其中所述第二智能合约由所述中枢计算机部署到所述第二区块链网络。
8.根据权利要求1所述的方法,其特征在于,所述第一智能合约和所述第二智能合约包括合约状态,其中所述合约状态是活动状态、协作关闭状态、单方关闭状态、或关闭状态。
9.根据权利要求1所述的方法,其特征在于,所述第二数字货币的所述第二金额的值等于所述第一数字货币的所述第一金额的值。
10.根据权利要求1所述的方法,其特征在于,所述第一智能合约和所述第二智能合约包括合约函数和协议,所述合约函数和协议包括初始化函数、获取参数函数、获取状态函数、存款函数、初始化关闭函数、取款函数和声明协议中的一个或多个。
11.根据权利要求1所述的方法,其特征在于,所述中枢计算机在不连接到所述第一区块链网络或所述第二区块链网络的情况下接收所述第一金额的所述第一数字货币并且传输所述第二金额的所述第二数字货币。
12.根据权利要求1所述的方法,其特征在于,第一服务提供商标识符由第一证书机构计算机提供至所述第一服务提供商计算机,并且第二服务提供商标识符由第二证书机构计算机提供至所述第二服务提供商计算机。
13.根据权利要求1所述的方法,其特征在于,所述第一数字货币不同于所述第二数字货币。
14.根据权利要求1所述的方法,其特征在于,所述第一用户装置和所述第二用户装置为移动电话。
15.一种中枢计算机,所述中枢计算机包括:
处理器;以及
非暂态计算机可读介质,所述非暂态计算机可读介质包括可由所述处理器执行以执行操作的指令,所述操作包括:
由所述中枢计算机从第一服务提供商计算机接收第一用户账户标识符,所述第一服务提供商计算机与第一用户装置通信并且还与第一区块链网络通信,所述第一服务提供商计算机随后将一定金额的数字货币转移到所述第一区块链网络上的第一智能合约;
由所述中枢计算机从第二服务提供商计算机接收第二用户账户标识符,所述第二服务提供商计算机与第二用户装置通信并且还与包含第二智能合约的第二区块链网络通信,其中所述中枢计算机分别与所述第一区块链网络和所述第二区块链网络通信,并且所述中枢计算机经由第一交互信道与所述第一服务提供商通信,并且所述中枢计算机经由第二交互信道与所述第二服务提供商计算机通信;
由所述中枢计算机经由所述第一交互信道从所述第一服务提供商计算机接收第一金额的第一数字货币;以及
由所述中枢计算机经由所述第二交互信道将第二金额的第二数字货币转移到所述第二服务提供商计算机。
16.一种方法,包括:
由第一服务提供商计算机生成发送方承诺,所述发送方承诺包括第一数字货币的第一金额、和第一参数,其中所述第一参数包括交互建议的散列化秘密;
由所述第一服务提供商计算机通过第一交互信道将所述发送方承诺传输至中枢计算机,其中所述中枢计算机随后生成服务器承诺,所述服务器承诺包括第二数字货币的第二金额,并且将所述服务器承诺传输至第二服务提供商计算机;
由所述第一服务提供商计算机从所述中枢计算机接收所述散列化秘密的秘密,其中所述第一服务提供商计算机通过对所述秘密进行散列化并且将散列化秘密与先前接收的散列化秘密进行比较来验证所述秘密;
由所述第一服务提供商计算机生成服务器收据,所述服务器收据包括第一智能合约的第一参数;以及
由所述第一服务提供商计算机将所述服务器收据传输至所述中枢计算机。
17.根据权利要求16所述的方法,其特征在于,所述第一数字货币不同于所述第二数字货币,并且其中所述中枢计算机还生成接收方收据并且将所述接收方收据传输至所述第二服务提供商计算机,所述接收方收据包括部署在第二区块链网络上的第二智能合约的第二参数。
18.根据权利要求16所述的方法,其特征在于,部署在第一区块链网络上的所述第一智能合约将所述第一服务提供商计算机连接到所述中枢计算机,而不连接到所述第一区块链。
19.根据权利要求16所述的方法,其特征在于,所述第一智能合约的所述第一参数包括信道标识符、用户账户标识符、中枢标识符或争议时间中的一者或多者。
20.根据权利要求16所述的方法,还包括:
由所述第一服务提供商计算机从与第二用户装置通信的第一用户装置接收包括秘密的散列的所述交互建议。
CN202280020313.6A 2021-03-11 2022-03-11 通用支付通道 Pending CN117015786A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US63/159,933 2021-03-11
US202163167489P 2021-03-29 2021-03-29
US63/167,489 2021-03-29
PCT/US2022/019927 WO2022192658A1 (en) 2021-03-11 2022-03-11 Universal payment channel

Publications (1)

Publication Number Publication Date
CN117015786A true CN117015786A (zh) 2023-11-07

Family

ID=88576596

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280020313.6A Pending CN117015786A (zh) 2021-03-11 2022-03-11 通用支付通道

Country Status (1)

Country Link
CN (1) CN117015786A (zh)

Similar Documents

Publication Publication Date Title
US10147076B2 (en) Digital currency (virtual payment cards) issued by central bank for mobile and wearable devices
CA3011600C (en) Information transaction infrastructure
US20170053249A1 (en) Electronic Crypto-Currency Management Method and System
US20230344649A1 (en) Offline interaction system and method
Ramana et al. A three-level gateway protocol for secure m-commerce transactions using encrypted OTP
EP3200138A1 (en) Digital asset conversion
FR2834403A1 (fr) Systeme cryptographique de signature de groupe
WO2012123394A1 (en) Off-line transfer of electronic tokens between peer-devices
EP1442557A2 (fr) Systeme et procede pour creer un reseau securise en utilisant des justificatifs d'identite de lots de dispositifs
WO2016079403A1 (fr) Procédé de sécurisation d'un jeton de paiement.
FR2795262A1 (fr) Certificat du fabricant de module d'identite de protocole d'application sans fil
US20240152888A1 (en) Universal payment channel
FR2993382A1 (fr) Entite electronique securisee pour l'autorisation d'une transaction
US20220067717A1 (en) Blockchain system that includes bank nodes each having separate ledgers for identity, digital currency and other functions, and operation method thereof
US20180300717A1 (en) Cryptographically secure token exchange
CN110910109B (zh) 基于区块链的电子资源转移方法及装置
CN111062717B (zh) 一种数据转移处理方法、装置和计算机可读存储介质
FR2922669A1 (fr) Dispositif electronique portable pour l'echange de valeurs et procede de mise en oeuvre d'un tel dispositif
CN116802661A (zh) 基于令牌的链外交互授权
US20220353058A1 (en) Conditional offline interaction system and method
CN117015786A (zh) 通用支付通道
WO2019150255A1 (en) Digital currency (virtual payment cards) issued by central bank for mobile and wearable devices
US20230107197A1 (en) Blockchain based interaction processing
WO2023177902A1 (en) Offline interaction blockchain system and method
WO2023108127A1 (en) Universal payment channel system and method

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