CN117425907A - 用于使用散列锁的经调解的跨分类账稳定币原子交换的方法和系统 - Google Patents

用于使用散列锁的经调解的跨分类账稳定币原子交换的方法和系统 Download PDF

Info

Publication number
CN117425907A
CN117425907A CN202280040458.2A CN202280040458A CN117425907A CN 117425907 A CN117425907 A CN 117425907A CN 202280040458 A CN202280040458 A CN 202280040458A CN 117425907 A CN117425907 A CN 117425907A
Authority
CN
China
Prior art keywords
blockchain
processing server
computing device
address
transaction
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
CN202280040458.2A
Other languages
English (en)
Inventor
S·拉维纳坦
黄东浩
官翰聪
K·程
P·H·L·李
马卫明
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.)
Mastercard Asia Pacific Pte Ltd
Original Assignee
Mastercard Asia Pacific Pte Ltd
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 Mastercard Asia Pacific Pte Ltd filed Critical Mastercard Asia Pacific Pte Ltd
Publication of CN117425907A publication Critical patent/CN117425907A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • 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/389Keeping log of transactions for guaranteeing non-repudiation of a 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/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
    • 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/381Currency conversion
    • 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/3827Use of message hashing
    • 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
    • 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/409Device specific authentication in transaction processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic 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
    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/085Payment architectures involving remote charge determination or related payment systems
    • G06Q20/0855Payment architectures involving remote charge determination or related payment systems involving a third party
    • 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/3674Payment 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 involving authentication
    • 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
    • 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/3829Payment protocols; Details thereof insuring higher security of transaction involving key management

Landscapes

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

Abstract

一种用于调解原子交换的方法,包括:从第一计算设备接收交换请求,所述交换请求包括与第一区块链相关联的第一地址和与第二区块链相关联的网络标识符;使用所述网络标识符和与第二区块链相关联的第二地址识别第二计算设备;生成证明值并使用证明值生成散列锁;(i)将散列锁和第二地址传输到第一计算设备,以及(ii)将散列锁和第一地址传输到第二计算设备;核实第一区块链上用于转移到第一地址的第一区块链交易,并且核实第二区块链上用于转移到第二地址的第二区块链交易;以及将证明值传输到与第一区块链和第二区块链相关联的区块链节点。

Description

用于使用散列锁的经调解的跨分类账稳定币原子交换的方法 和系统
技术领域
本公开涉及原子交换(atomic swap)的调解,具体而言是使用调解过程的利用原子交换和散列锁在分开的区块链分类账之间交换货币的能力。
背景技术
区块链最初是作为一种用于使用密码货币进行支付交易的存储机制创建的。使用区块链提供了许多好处,诸如去中心化、分布式计算、关于交易的透明度,并且还为交易中涉及的个人或实体提供匿名性。区块链更受欢迎的方面之一是它是不可变的记录:作为链的一部分的每笔交易都存储在其中,并且由于计算要求和带宽限制而无法改变,特别是当链变得越来越长且区块链网络增加更多节点时。
区块链的普及和多功能性导致出现了大量的区块链,每个区块链都使用自己唯一的数字货币。许多对区块链感兴趣的用户和实体可发现自己出于各种原因有兴趣参与多个区块链。因此,此类用户可以有兴趣将一种区块链货币兑换成另一种区块链货币,或者参与与另一个用户的交易,其中使用不同的货币。传统上有两种方法进行此类交易。第一种是利用交易所(exchange)服务,该服务或者要求用户将其私钥交给交易所,或者让双方将其货币转移到交易所。但是,由于交出其私钥或将所有资金托付给第三方所涉及的危险,许多方可能对使用交易所的任一种选项都持谨慎态度。第二种传统方法是使用原子交换。原子交换利用散列锁来确保或者双方都将收到他们的货币,或者双方都不会收到他们的货币。但是,原子交换通常要求两个区块链使用相同的散列方法,并且要求双方能够生成和利用完成原子交换所需的散列。
因此,需要对执行原子交换进行技术改进,其中各方可以使用传统区块链钱包功能性自由参与,并且与所涉及的区块链使用的散列方法无关。
发明内容
本公开提供了用于调解原子交换的系统和方法的描述。处理服务器生成散列锁所需的数据,包括要使用的证明值。处理服务器通过向原子交换所涉及的双方提供地址和散列锁来充当双方的调解器。各方使用由处理服务器提供的散列锁和地址进行必要的交易。处理服务器核实两笔交易是否都已发布到适当的区块链,然后提供证明值以使区块链释放散列锁,从而将资金释放给各方。使用处理服务器使双方能够利用原子交换,而无需自己生成散列锁,或者甚至无需与另一方进行通信,这提供了更容易的执行和更高的安全性。其结果是对于所涉及的各方来说都更加安全且更容易执行的改进的原子交换。
一种用于调解原子交换的方法,包括:由处理服务器的接收器从第一计算设备接收交换请求,其中所述交换请求至少包括与第一区块链相关联的第一地址和与第二区块链相关联的网络标识符;由处理服务器的处理器至少基于所述网络标识符和与第二区块链相关联的第二地址识别第二计算设备;由处理服务器的处理器生成证明值和散列锁,其中散列锁是至少使用证明值生成的;由处理服务器的传输器(i)将至少散列锁和第二地址传输到第一计算设备,以及(ii)将至少散列锁和第一地址传输到第二计算设备;由处理服务器的处理器核实发布到第一区块链以将第一货币金额转移到第一地址的第一区块链交易,以及发布到第二区块链以将第二货币金额转移到第二地址的第二区块链交易;以及由处理服务器的传输器将至少证明值传输到与第一区块链相关联的第一区块链节点和与第二区块链相关联的第二区块链节点。
一种用于调解原子交换的系统,包括:第一计算设备;第二计算设备;以及处理服务器,包括接收器,从第一计算设备接收交换请求,其中所述交换请求至少包括与第一区块链相关联的第一地址和与第二区块链相关联的网络标识符,处理器至少基于所述网络标识符和与第二区块链相关联的第二地址来识别第二计算设备,以及生成证明值和散列锁,其中散列锁是至少使用证明值生成的,传输器,(i)将至少散列锁和第二地址传输到第一计算设备,以及(ii)将至少散列锁和第一地址传输到第二计算设备,其中处理服务器的处理器还核实发布到第一区块链以将第一货币金额转移到第一地址的第一区块链交易,以及发布到第二区块链以将第二货币金额转移到第二地址的第二区块链交易,以及处理服务器的传输器还将至少证明值传输到与第一区块链相关联的第一区块链节点和与第二区块链相关联的第二区块链节点。
附图说明
当结合附图阅读时,从以下示例性实施例的详细描述中可以最好地理解本公开的范围。附图中包括以下各图:
图1是图示根据示例性实施例的用于调解原子交换的高级系统架构的框图。
图2是图示根据示例性实施例的用于调解原子交换的图1的系统的处理服务器的框图。
图3A和图3B是图示根据示例性实施例的用于在图1的系统中执行经调解的原子交换的过程的流程图。
图4是图示根据示例性实施例的用于调解原子交换的示例性方法的流程图。
图5是图示根据示例性实施例的计算机系统架构的框图。
根据下文提供的详细描述,本公开的其它应用领域将变得清楚。应该理解的是,示例性实施例的详细描述仅用于说明的目的,因此,并不旨在必然地限制本公开的范围。
具体实施方式
术语表
区块链——基于区块链的货币的所有交易的公共分类账。一个或多个计算设备可以包括区块链网络,区块链网络可以被配置为处理和记录交易,作为区块链中的区块的一部分。一旦区块完成,该区块就被添加到区块链中,并由此更新交易记录。在许多情况下,区块链可以是按时间次序的交易的分类账,或者可以以适合区块链网络使用的任何其它次序呈现。在一些配置中,记录在区块链中的交易可以包括目的地地址和货币金额,使得区块链记录多少货币归因于特定地址。在一些情况下,交易是金融的而其它的不是金融的,或者可能包括附加的或不同的信息(诸如源地址、时间戳等等)。在一些实施例中,区块链还可以包括或者可替代地包括几乎任何类型的数据,作为被放置或者需要被放置在分布式数据库中的交易的形式,并且可以通过区块链网络经由工作证明和/或与此相关的任何其它合适的验证技术被确认和验证,该分布式数据库保持防止(甚至被其操作者)篡改和修订的不断增长的数据记录清单。在一些情况下,关于给定交易的数据还可以包括附加数据,这些附加数据不直接属于附加到交易数据的交易的一部分。在一些情况下,将这种数据包括在区块链中可以构成交易。在这种情况下,区块链可以不与具体的数字、虚拟、法定或其它类型的货币直接相关联。
用于调解原子交换的系统
图1图示了用于利用调解器在两个区块链之间执行原子交换的系统100。
系统100可以被配置为启用在两个不同的区块链网络106(在图1中被示为区块链网络106a和106b)之间发生的原子交换。每个区块链网络106可以包括多个不同的区块链节点。在一些实施例中,一个或多个区块链节点可以是多于一个区块链网络106中的节点,包括区块链网络106a和106b两者。每个区块链节点可以是计算系统,诸如图5中所示,下面将更详细地讨论的,该计算系统被配置为执行与区块链的处理和管理相关的功能,包括区块链数据值的生成、提出的区块链交易的核实、数字签名的核实、新区块的生成、新区块的验证以及区块链的副本的维护。
区块链可以是至少包括多个区块的分布式分类账。每个区块可以至少包括区块头和一个或多个数据值。每个区块头可以至少包括时间戳、区块引用值和数据引用值。时间戳可以是生成区块头的时间,并且可以使用任何合适的方法(例如,UNIX时间戳、DateTime等)来表示。区块引用值可以是引用区块链中较早区块(例如,基于时间戳)的值。在一些实施例中,区块头中的区块引用值可以是对相应区块之前的最近添加的区块的区块头的引用。在示例性实施例中,区块引用值可以是经由对最近添加的区块的区块头进行散列而生成的散列值。类似地,数据引用值可以是对存储在包括区块头的区块中的一个或多个数据值的引用。在示例性实施例中,数据引用值可以是经由对一个或多个数据值的散列而生成的散列值。例如,区块引用值可以是使用一个或多个数据值生成的Merkle树的根。
每个区块头中使用区块引用值和数据引用值可导致区块链不可变。对数据值的任何尝试的修改会要求为该块生成新的数据引用值,从而这会要求新生成后续区块的区块引用值,进一步要求在每个后续区块中生成新的区块引用值。在生成新区块并将其添加到区块链之前,这必须在区块链网络106中的每个单个区块链节点中执行和更新,以便使改变永久化。计算和通信限制可使这种修改变得极其困难(如果不是不可能的话),从而使区块链变得不可变。
在一些实施例中,区块链可以被用于存储关于在两个不同区块链钱包之间进行的区块链交易的信息。区块链钱包可以包括密码密钥对的私钥,该私钥被用于生成用作付款人对区块链交易的授权的数字签名,其中数字签名可以由区块链网络106使用密码密钥对的公钥来核实。在一些情况下,术语“区块链钱包”可以专门指私钥。在其它情况下,术语“区块链钱包”可以指存储私钥以供其在区块链交易中使用的计算设备(例如,处理服务器102、第一参与者设备108或第二参与者设备110)。例如,每个计算设备可以各自具有其自己的用于相应密码密钥对的私钥,并且每个计算设备可以是用于与关联于区块链网络的区块链进行交易的区块链钱包。计算设备可以是适合存储和利用区块链钱包的任何类型的设备,诸如台式计算机、膝上型计算机、笔记本计算机、平板计算机、蜂窝电话、智能电话、智能手表、智能电视、可穿戴计算设备、可植入计算设备等。
如果适用的话,存储在区块链中的每个区块链数据值可以与区块链交易或其它数据存储对应。区块链交易可以至少包括:使用发送者的私钥生成的货币的发送者(例如,第一参与者设备108)的数字签名、使用接收方的公钥生成的货币的接收方(例如,第二参与者设备110)的区块链地址,以及转移的区块链货币金额或存储的其它数据。在区块链用于与货币分开的数据存储的情况下,货币金额可以被此类其它数据替代。在一些区块链交易中,交易还可以包括发送者的当前存储区块链货币的一个或多个区块链地址(例如,数字签名证明他们可以访问此类货币),以及使用发送者的公钥为发送者要保留的任何改变生成的地址。已发送可以在未来交易中使用的密码货币的地址被称为“输出”地址,因为每个地址之前都被用于捕获先前区块链交易的输出,也称为“未花费的交易”,因为有货币发送到先前交易中的地址,但该货币仍未花费。在一些情况下,区块链交易还可以包括发送者的公钥,供实体在验证交易时使用。对于区块链交易的传统处理,这种数据可以由发送者或接收者提供给区块链网络106中的区块链节点。节点可以使用发送者的钱包的密码密钥对中的公钥来核实数字签名,并且还核实发送者对资金的访问(例如,未花费的交易尚未被花费并被发送到与该发送者的钱包相关联的地址),这个过程称为交易的“确认”,然后将区块链交易包含在新区块中。在传统区块链实施方式中,新区块可以在被添加到区块链并且分发到区块链网络106中的所有区块链节点之前由区块链网络106中的其它节点验证。在区块链数据值可能与区块链交易无关,而是与其它类型数据的存储相关的情况下,区块链数据值可以仍然包括或以其它方式涉及数字签名的验证。
系统100可以包括处理服务器102。下面更详细地讨论的处理服务器102可以被配置为充当第一参与者设备108与第二参与者设备110之间的调解器以用于执行原子交换,以将与第一区块链网络106a相关联的区块链(本文称为第一区块链)中的区块链货币和与第二区块链网络106b相关联的区块链(本文称为第二区块链)中的区块链货币进行兑换。为了开始该过程,第一参与者设备108可以使用任何合适的通信网络和方法向处理服务器102提交交换请求。例如,第一参与者设备108可以包括被配置为向处理服务器102提交交换请求的应用,可以访问可以通过其提交交换请求的网站,或者可以访问与处理服务器相关联的应用编程接口102。
交换请求可以至少包括第一参与者设备108想要在其上接收货币的区块链上的目的地地址(例如,在第一区块链中),该地址在本文中可以被称为第一地址。目的地地址可以由第一参与者设备108使用区块链钱包来生成,诸如通过用与第一区块链相关联的加密密钥对的公钥来生成地址。交换请求还可以包括货币金额,其可以是与第一参与者设备108相关联的用户想要在第二区块链上转移或者想要在第一区块链上接收的区块链货币的金额。在一些情况下,交换请求可以包括两个货币金额:用户想要在第二区块链上转移多少以及他们想要在第一区块链上接收多少。在其它情况下,可以仅提供一个货币金额,其中可以诸如基于汇率来确定另一个金额,汇率可以取决于区块链网络106和第二参与者设备110两者,如下文所讨论的。在一些实施例中,交换请求还可以包括第一区块链和/或第二区块链的标识符,其中该标识符可以是与相应区块链、相关联的区块链网络106或由相应区块链使用的区块链货币相关联的唯一标识值。在交换请求不包括这种标识符的情况下,处理服务器102可以被配置为基于所包括的货币金额来识别区块链和/或区块链网络106(例如,如果指定了货币本身,那么它可以由处理服务器102用来识别适当的区块链)。
处理服务器102可以接收交换请求并且可以基于交换请求中包括的数据来识别要参与原子交换的两个区块链网络106。在一些实施例中,交换请求可以诸如通过包括第二参与者设备110的设备标识符或联系信息(诸如电话号码、介质访问控制地址、互联网协议地址、序列号或其它唯一的值)来识别第二参与者设备110。在其它实施例中,第一参与者设备108可以在没有识别出第二参与者设备110的情况下向处理服务器102提交交换请求。在此类实施例中,处理服务器102可以辅助第一参与者设备108找到与其执行原子交换的第二参与者设备110。
在此类实施例中,有兴趣作为第二参与者设备110(例如,其可以包括第一参与者设备108)参与原子交换的任何设备可以向处理服务器102注册。注册可以包括向处理服务器102提供与设备相关联的设备标识符以及设备具有区块链钱包并且可能愿意接收区块链货币和/或转移区块链货币的区块链网络106的列表(例如,经由标识值)。在一些情况下,注册设备还可以提供设备正在向其注册的一个或多个网络的公钥,使得处理服务器102可以能够生成接收地址以减少设备在调解的原子交换期间可能需要执行的动作。在一些情况下,注册的设备可以在设备愿意转移货币的区块链上提供其当前余额的更新,这可以保存在处理服务器102中那个设备的注册数据中。
如果处理服务器102为第一参与者设备108辅助寻找第二参与者设备110,那么处理服务器102可以识别已注册以在第二区块链上接收区块链货币并在第一区块链上转移区块链货币的每个设备。在为注册的设备存储货币余额的情况下,处理服务器102可以基于交换请求中提供的(一个或多个)货币金额来仅识别具有足够余额的那些设备。在一些情况下,每个注册的设备可以具有与作为第二参与者设备110参与原子交换相关的期望汇率或费用。在此类情况下,处理服务器102可以计算实现第一参与者设备期望的原子交换可能必需的(一个或多个)货币金额。
一旦处理服务器103已经识别出合格设备,处理服务器103就可以使用合适的通信网络和方法向第一参与者设备108传输识别出的设备的列表,诸如响应于接收到的交换请求。在费用或汇率可以在合格设备之间变化的情况下,该列表可以包括附带的费用、汇率、第一参与者设备108将在第一区块链中接收的货币的金额和/或第一参与者设备108必须在第二区块链中为每个合格设备转移的货币的金额。与第一参与者设备108相关联的用户然后可以选择合格设备之一来用作第二参与者设备110并且使用适当的通信网络和方法将选择提交给处理服务器102。
处理服务器102可以接收对第二参与者设备110的选择,并且还可以执行确定第一区块链和第二区块链两者的货币金额可能必需的任何附加计算。在处理服务器102可以存储第二区块链上所选择的第二参与者设备110的公钥的情况下,处理服务器102可以生成用于接收第二参与者设备110在第二区块链中的货币的目的地地址。在处理服务器102不具有公钥的情况下,处理服务器102可以向所选择的第二参与者设备110提交对目的地地址的请求。该请求可以至少包括第二区块链的标识符,并且可以包括第二参与者设备110期望的任何附加信息,诸如用于第一区块链或第二区块链的货币金额、所使用的汇率和/或费用等。第二参与者设备110然后可以使用接收到的标识符来识别适当的区块链钱包,并且使用相应密码密钥对的公钥来生成用于第二区块链的目的地地址。第二参与者设备110可以使用合适的通信网络和方法以电子方式向处理服务器102传输回目的地地址。
处理服务器102可以准备好发起用于原子交换的过程。为了开始该过程,处理服务器102可以生成要用作用于散列锁的证明值的值。该值可以是对于交易来说是唯一的并且可以随机或伪随机地生成的、基于用于第一参与者设备108和第二参与者设备110的信息(例如,根据第一和第二地址)建立的或使用任何其它合适的方法识别的唯一值。证明值可以由处理服务器102生成和/或识别,但可不为任何其它设备(特别是第一参与者设备108和第二参与者设备110)所知。处理服务器102然后可以生成散列锁。散列锁是生成的密码密钥或其它值的加扰版本,当将其放置在交易上时,它锁定交易输出,直到使用原始密码密钥或其它值解锁了散列值。在系统100中,处理服务器102可以使用证明值来生成散列锁,其中散列锁将被放置在第一参与者设备108和第二参与者设备110进行的转移上,该转移只能由处理服务器102使用证明值解锁。例如,可以通过将散列算法应用于证明值来生成散列锁。在一些情况下,散列锁还可以使用与正被执行的原子交换相关联的附加数据(诸如第一地址、第二地址、用于第一区块链或第二区块链的货币金额等)来生成。在一些实施例中,处理服务器102可以为要在第二区块链上使用的第一参与者设备108和要在第一区块链上使用的第二参与者设备110生成单独的散列锁,诸如通过在生成散列锁时使用不同的数据,但可以对两个散列锁利用相同的证明值。
一旦生成了散列锁,处理服务器102就可以将每个参与设备进行其适当的交易所需的数据以电子方式传输到适当的参与设备。例如,处理服务器102可以至少将第二区块链上的目的地地址(例如,由第二参与者设备110提供)、用于第二区块链的货币金额以及散列锁传输到第一参与者设备108,并且可以至少将第一区块链上的目的地地址(例如,根据交换请求)、用于第一区块链的货币金额以及散列锁传输到第二参与者设备110。在一些情况下,处理服务器102可以不传输适当的参与者设备可能已经接收到(例如,在交换请求中或者当请求目的地地址时)的任何冗余信息。
参与者设备可以接收数据并且可以向适当的区块链提交新的区块链交易以用于如接收到的数据中所指示的那样的货币转移。例如,第一参与者设备108可以生成针对第二区块链的区块链交易,用于将适当的货币金额转移到与第二参与者设备110的区块链钱包相关联的目的地地址,然后将该区块链交易提交到区块链网络106b中的区块链节点。第二参与者设备110可以生成针对第一区块链的新区块链交易,用于将适当的货币金额转移到已在交换请求中提交的目的地地址,然后可以将该区块链交易提交到区块链网络106a中的区块链节点。
一旦两个区块链交易都已经使用传统的方法和系统被发布到它们相应的区块链,处理服务器102就可以核实交易被发布并且是正确的(例如,适当金额的货币被转移到适当的目的地地址)。在一些实施例中,第一参与者设备108和第二参与者设备110可以在提交其交易之后从区块链节点接收确认消息,诸如可以包括将所提交的区块链交易存储在区块链上的区块链数据值的标识符。在此类实施例中,第一参与者设备108和第二参与者设备110可以向处理服务器102提供接收到的标识符和/或确认消息以用于识别第一和第二区块链上的区块链交易。在其它实施例中,处理服务器102可以监视第一区块链和第二区块链两者以添加与期望的原子交换匹配的区块链交易,诸如通过监视供给每个参与者设备的目的地地址。
在识别出区块链交易之后,处理服务器102可以验证每个交易。交易的验证可以包括核实目的地地址是准确的以及所转移的货币金额是准确的。在一些情况下,处理服务器102还可以核实散列锁与处理服务器102先前提供的散列锁是相同的。在一些实施例中,处理服务器102可以在将散列锁提供给第一参与者设备108和第二参与者设备110之前对散列锁进行数字签署,诸如通过使用密码密钥对的私钥。在此类实施例中,处理服务器102可以使用密码密钥对中的对应公钥来验证数字签名,作为区块链交易的验证的一部分。如果区块链交易中的一个或两者不能被成功验证,那么处理服务器102可以通知适当的参与者设备,并且可以向参与者设备提供提交经校正的区块链交易的机会。如果两个区块链交易都没有成功验证,那么处理服务器102可以不移除散列锁,这可以阻止交易被解锁,从而阻止转移。在一些情况下,散列锁可以具有与其相关联的到期时间(例如,经由智能合约、区块链网络106等),其中,如果散列锁在到期时间内没有被解锁,那么对应的区块链交易将不会发生(例如,将保持锁定状态,发送者能够再次使用输入,或者撤销交易自动发布到区块链)。
如果两个区块链交易都被成功验证,那么处理服务器102可以释放散列锁。处理服务器102可以将证明值以电子方式传输到第一区块链网络106a中的区块链节点和第二区块链网络106b中的区块链节点以释放散列锁,其中证明值可以被区块链节点用来生成散列锁并核实匹配以确保处理服务器102被授权移除散列锁。在除了证明值之外还使用其它数据生成散列锁的情况下,附加数据也可以被传输到区块链节点。在为每个区块链交易生成单独的散列锁的情况下,处理服务器102可以相应地将适当的数据传输到适当的区块链节点。随着散列锁被移除,第一参与者设备108和第二参与者设备110将分别在第一区块链和第二区块链上接收它们的货币,从而使得原子交换完成。
在示例实施方式中,处理服务器102可以利用以下代码来定义和创建使用货币金额、目的地地址和证明值创建的散列锁:
在上面的示例中,hashKey可以是由处理服务器102生成的证明值,如上面所讨论的。当散列锁要被解锁时,处理服务器102可以在示例实施方式中利用以下函数:
在一些实施例中,散列锁和原子交换可以通过使用智能合约由区块链实现,智能合约可以是存储在区块链中的自执行合约。智能合约可以利用不同的编程语言、代码和协议,这些编程语言、代码和协议在一个区块链网络106与下一个之间可以不同。在一个示例中,区块链网络106可以利用作为相关联区块链所使用的智能合约的编程语言。在Solidity中,可以使用以下代码来执行上述功能,例如:
/>
/>
/>
/>
在上面的示例中,Swap可以是要执行的原子交换的数据的构造,可以调用SwapStart来为两个交易生成散列锁,如果要停止原子交换并且交易未成功发布(例如,由于参与者设备之一验证失败或撤回),那么可以使用SwapCancel,可以使用SwapComplete来移除散列锁并完成两个交易,并且可以使用getSwapInfo来识别原子交换的当前状态,诸如在处理服务器102等待两个区块链交易的验证时检查到期时间。对于本领域普通技术人员来说清楚的是,上面的代码是示例并且可以不是穷举使用Solidity或任何其它编程语言的本文讨论的方法和系统的所有实施方式。
本文讨论的方法和系统提供了由处理服务器102进行的原子交换的调解。通过以本文讨论的方式调解原子交换,第一参与者设备108可以进行期望的交换,而无需交出其自己的私钥或公钥,或者甚至无需识别第二参与者设备110,因为可以通过处理服务器102代表他们来识别第二参与者设备110。此外,因为交易在两个区块链上独立地发生,并且处理服务器102作为负责散列锁的调解器,所以可以在不考虑区块链网络106之间的散列方法和其它技术差异的情况下执行原子交换。因此,本文讨论的方法和系统提供了具有更大通用性的原子交换,同时还通过使用本文讨论的调解器和过程来增加参与者的便利性和安全性。
处理服务器
图2图示了处理服务器102的实施例,诸如系统100中的处理服务器102。对于相关领域的技术人员来说显而易见的是,图2中所示的处理服务器102的实施例仅作为说明而提供,并且可以不是穷举适合于执行本文讨论的功能的处理服务器102的所有可能配置。例如,图5中所示并在下面更详细讨论的计算机系统500可以是处理服务器102的合适配置。
处理服务器102可以包括接收设备202。接收设备202可以被配置为经由一种或多种网络协议通过一个或多个网络接收数据。在一些情况下,接收设备202可以被配置为经由一种或多种通信方法(诸如射频、局域网、无线区域网、蜂窝通信网络、蓝牙、互联网等)从区块链节点、第一参与者设备108、第二参与者设备110以及其它系统和实体接收数据。在一些实施例中,接收设备202可以包括多个设备,诸如用于通过不同网络接收数据的不同接收设备,诸如用于通过局域网接收数据的第一接收设备和用于经由因特网接收数据的第二接收设备。接收设备202可以接收电子传输的数据信号,其中数据可以被叠加或以其它方式编码在数据信号上,并且经由接收设备202对数据信号的接收来解码、解析、读取或以其它方式获得。在一些情况下,接收设备202可以包括解析模块,用于解析接收到的数据信号以获得叠加在其上的数据。例如,接收设备202可以包括解析器程序,该解析器程序被配置为接收接收到的数据信号并将其变换成用于由处理设备执行的功能的可用输入,以执行本文描述的方法和系统。
接收设备202可以被配置为接收由区块链节点以电子方式传输的数据信号,该数据信号可以与区块链数据值、区块、区块链交易数据等叠加或以其它方式用区块链数据值、区块、区块链交易数据等编码。接收设备202还可以被配置为接收由第一参与者设备108以电子方式传输的数据信号,该数据信号可以与交换请求、目的地地址、交易标识符、注册数据等叠加或以其它方式用交换请求、目的地地址、交易标识符、注册数据等编码。接收设备202还可以被配置为接收由第二参与者设备110以电子方式传输的数据信号,该数据信号可以与注册数据、目的地地址、费用、汇率、网络标识符、交易标识符等叠加或以其它方式用注册数据、目的地地址、费用、汇率、网络标识符、交易标识符等编码。
处理服务器102还可以包括通信模块204。通信模块204可以被配置为在处理服务器102的模块、引擎、数据库、存储器和其它组件之间传输数据以用于执行本文讨论的功能。通信模块204可以包括一种或多种通信类型并且利用各种通信方法用于计算设备内的通信。例如,通信模块204可以包括总线、触针连接器、电线等。在一些实施例中,通信模块204还可以被配置为在处理服务器102的内部组件与处理服务器102的外部组件(诸如外部连接的数据库、显示设备、输入设备等)之间进行通信。处理服务器102还可以包括处理设备。处理设备可以被配置为执行本文所讨论的处理服务器102的功能,这对于相关领域的技术人员来说将是清楚的。在一些实施例中,处理设备可以包括专门被配置为执行处理设备的一个或多个功能的多个引擎和/或模块(诸如查询模块214、生成模块216、验证模块218等)和/或由其组成。如本文所使用的,术语“模块”可以是被特别编程为接收输入、使用该输入执行一个或多个处理并且提供输出的在硬件上执行的软件或硬件。基于本公开,本领域技术人员将清楚由各种模块执行的输入、输出和处理。
处理服务器102可以包括账户数据库206。账户数据库206可以被配置为使用合适的数据存储格式和模式存储多个账户简档208。账户数据库206可以是利用结构化查询语言来对其中存储的结构化数据集进行存储、识别、修改、更新、访问等的关系数据库。每个账户简档208可以是被配置为存储与一个或多个注册的账户相关的数据的结构化数据集,诸如对于被注册为用作原子交换中的第二参与者设备110的任何设备,如上面所讨论的。例如,账户简档208可以与第二参与者设备110相关联并且存储将该设备识别为第二参与者设备110并参与原子交换所需的数据。例如,账户简档208可以包括设备标识符、相关联的设备可以接收货币或可以转移货币的每个区块链网络106的标识符、相关联的设备可以转移货币的任何区块链中的货币余额、用于相关联的设备可以接收货币、联系信息、费用、汇率等的区块链的密码密钥对的公钥。
处理服务器102还可以包括区块链数据210,该数据可以存储在处理服务器102的存储器212中或者存储在处理服务器102内的单独区域中或者可由处理服务器102访问。区块链数据210可以包括区块链,该区块链可以包括多个区块并且与区块链网络106相关联。区块链数据210还可以包括或可替代地包括与可以由处理服务器102使用的一个或多个区块链钱包相关联的任何数据,诸如密码密钥对、未花费的交易输出、数字资产量、用于区块链网络106的网络标识符、智能合约、签名生成算法、加密算法、用于第三方服务的通信信息等。
处理服务器102还可以包括存储器212。存储器212可以被配置为存储供处理服务器102在执行本文讨论的功能时使用的数据,诸如公钥和私钥、对称密钥等。存储器212可以被配置为使用合适的数据格式化方法和方案来存储数据,并且可以是任何合适类型的存储器,诸如只读存储器、随机存取存储器等。存储器212可以包括例如加密密钥和算法、通信协议和标准、数据格式化标准和协议、用于处理设备的模块和应用程序的程序代码,以及可以适合处理服务器102在执行本文公开的功能时使用的其它数据,如对相关领域的技术人员来说将是清楚的。在一些实施例中,存储器212可以由关系数据库组成或者可以以其它方式包括关系数据库,该关系数据库利用结构化查询语言来对存储在其中的结构化数据集进行存储、识别、修改、更新、访问等。存储器212可以被配置为存储例如密码密钥、盐(salt)、随机数(nonce)、用于其它计算系统的通信信息、生成算法、密码密钥对、用于计算货币金额的算法、汇率、用于区块链网络106的标识符等。
处理服务器102可以包括查询模块214。查询模块214可以被配置为对数据库执行查询以识别信息。查询模块214可以接收一个或多个数据值或查询字符串,并且可以基于所指示的数据库(诸如处理服务器102的账户数据库206)执行查询字符串以识别存储在其中的信息。然后,查询模块214可以根据需要将识别出的信息输出到处理服务器102的适当引擎或模块。查询模块214可以例如对账户数据库206执行查询以找到可以有资格充当第一参与者设备108所请求的原子交换的第二参与者设备110的所有注册的设备,诸如基于交换请求中包括的网络标识符。
处理服务器102还可以包括生成模块216。生成模块216可以被配置为生成供处理服务器102在执行本文讨论的功能时使用的数据。生成模块216可以接收指令作为输入,可以基于指令生成数据,并且可以将生成的数据输出到处理服务器102的一个或多个模块。例如,生成模块216可以被配置为生成密码密钥对、生成数字签名、生成区块链数据值等。生成模块216还可以被配置为生成证明值和散列锁,并且生成移除由处理服务器102生成的散列锁所需的任何数据。
处理服务器102还可以包括验证模块218。验证模块218可以被配置为执行处理服务器102的验证作为本文讨论的功能的一部分。验证模块218可以接收指令作为输入(指令还可以包括要在执行验证时使用的数据),可以根据请求执行验证,并且可以将验证的结果输出到处理服务器102的另一个模块或引擎。验证模块218可以例如被配置为使用合适的签名生成算法和密钥来验证数字签名、验证交易、验证智能合约、验证散列锁等。
处理服务器102还可以包括传输设备220。传输设备220可以被配置为经由一种或多种网络协议通过一个或多个网络传输数据。在一些情况下,传输设备220可以被配置为经由一种或多种通信方法、局域网、无线去域网、蜂窝通信、蓝牙、射频、因特网等向区块链节点、第一参与者设备108、第二参与者设备110以及其它实体传输数据。在一些实施例中,传输设备220可以包括多个设备,诸如用于通过不同网络传输数据的不同传输设备,诸如用于通过局域网传输数据的第一传输设备和用于经由因特网传输数据的第二传输设备。传输设备220可以电子方式传输叠加有可以由接收计算设备解析的数据的数据信号。在一些情况下,传输设备220可以包括用于将数据叠加、编码或以其它方式格式化为适合于传输的数据信号的一个或多个模块。
传输设备220可以被配置为以电子方式向区块链节点传输数据信号,该数据信号可以与散列锁、用于移除散列锁的数据、对区块或区块链数据值的请求等叠加或以其它方式用散列锁、用于移除散列锁的数据、对区块或区块链数据值的请求等编码。传输设备220还可以被配置为以电子方式向第一参与者设备108传输数据信号,该数据信号可以与对地址的请求、合格的第二参与者设备110的列表、货币金额、费用、汇率、用于新区块链交易的数据、通知等叠加或以其它方式用对地址的请求、合格的第二参与者设备110的列表、货币金额、费用、汇率、用于新区块链交易的数据、通知等编码。传输设备220可以被配置为以电子方式向第二参与者设备110传输数据信号,该数据信号可以与对目的地地址或货币金额数据的请求、用于新区块链交易的数据、通知、对更新后的货币余额的请求等叠加或以其它方式用对目的地地址或货币金额数据的请求、用于新区块链交易的数据、通知、对更新后的货币余额的请求等编码。
用于执行调解的原子交换的过程
图3A和3B图示了用于在图1的系统100中执行原子交换的过程,涉及由处理服务器102调解的第一参与者设备108和第二参与者设备110。
在步骤302中,第二参与者设备110可以通过将注册数据以电子方式传输到处理服务器102来向处理服务器102注册以参与原子交换。注册数据可以包括例如用于第二参与者设备110的设备标识符和/或联系信息、第二参与者设备110愿意接受货币的区块链的标识符的列表,以及第二参与者设备110愿意转移货币的区块链的标识符的列表。在步骤304中,处理服务器102的接收设备202可以从第二参与者设备110接收注册数据。在步骤306中,处理服务器102的查询模块214可以对处理服务器102的账户数据库206执行查询,以在其中插入用于第二参与者设备110的包括接收到的设备注册数据的新账户简档208。
在步骤308中,第一参与者设备108可以使用合适的通信网络和方法向处理服务器102提交对原子交换的请求。交换请求可以至少包括第一参与者设备108想要接收货币的第一区块链的目的地地址、第一参与者设备108想要在第一区块链上接收的货币金额,以及第一参与者设备108愿意通过其转移货币的第二区块链的一个或多个标识符。在步骤310中,处理服务器102的接收设备202可以接收交换请求。
在步骤312中,处理服务器102的查询模块214可以对处理服务器102的账户数据库206执行查询,以识别可能适合充当原子交换中的第二参与者设备110的任何注册的设备的账户简档208,诸如通过检查以查看账户简档208是否包括将第一区块链指定为相关联的设备愿意在其上转移货币的区块链,并包括将第二区块链之一指定为相关联的设备愿意在其上接收货币的区块链。在一些实施例中,处理服务器102可以识别出多个合格设备并且可以请求从第一参与者设备108选择这些设备之一。在图3A和图3B中所示的示例中,处理服务器102可以将第二参与者设备110识别为合格的并相应地继续该过程。作为步骤312的一部分,处理服务器102可以在第二区块链(例如,由处理服务器102、第一参与者设备108或第二参与者设备110从所有合格的第二区块链中选择)上识别第二参与者设备110的目的地地址。),诸如通过生成目的地地址(例如,经由生成模块216使用存储在账户数据库208中的用于第二区块链的公钥)或从第二参与者设备110请求用于第二区块链的目的地地址。
在步骤314中,处理服务器102的生成模块216可以生成要在散列锁中使用的证明值。证明值可以使用任何合适的方法来生成或识别,并且对于第一参与者设备108所请求的原子交换可以是唯一的。在步骤316中,处理服务器102的生成模块216可以至少使用证明值来生成散列锁,诸如通过将散列算法应用于证明值,其中散列锁是结果所得的散列值。在步骤318中,处理服务器102的传输设备220可以将散列锁和合适的交易数据以电子方式传输到第一参与者设备108和第二参与者设备110两者。可以向第一参与者设备108传输散列锁、用于第二参与者设备110的第二区块链的目的地地址,以及用于第二区块链的货币金额。可以向第二参与者设备110传输散列锁、用于第一参与者设备108的第一区块链的目的地地址,以及第一区块链的货币金额。
在步骤320中,第一参与者设备108可以从处理服务器102接收散列锁、目的地地址和货币金额。在步骤322中,第一参与者设备108可以使用传统方法和系统向第二区块链网络106b中的区块链节点提交新的区块链交易,以使用第一参与者设备108已拥有的一个或多个适当的交易输出(例如,涵盖货币金额的交易输出)向接收到的目的地地址转移接收到的货币金额。在提交新的区块链交易之前,区块链交易可以通过由第一参与者设备108传输的散列锁或者通过由处理服务器102单独提交到区块链网络106b来被散列锁定。第一参与者设备108可以从区块链节点接收交易标识符作为新的区块链交易被成功确认、添加到新的区块并且发布到第二区块链的通知。在步骤324中,第一参与者设备108可以将区块链交易已被成功发布的通知中的交易标识符以电子方式传输到处理服务器102。
在步骤326中,第二参与者设备110可以从处理服务器102接收散列锁、目的地地址和货币金额。在步骤328中,第二参与者设备110可以使用传统方法和系统向第一区块链网络106a中的区块链节点提交新的区块链交易,以使用第二参与者设备110已拥有的一个或多个适当的交易输出(例如,涵盖货币金额的交易输出)向接收到的目的地地址转移接收到的货币金额。在提交新的区块链交易之前,区块链交易可以通过由第二参与者设备110传输的散列锁或者通过由处理服务器102单独提交到区块链网络106a来被散列锁定。第二参与者设备110可以从区块链节点接收交易标识符作为新的区块链交易被成功确认、添加到新的区块并且发布到第二区块链的通知。在步骤330中,第二参与者设备110可以将区块链交易已被成功发布的通知中的交易标识符以电子方式传输到处理服务器102。
在步骤332中,处理服务器102的接收设备202可以从第一参与者设备108和第二参与者设备110二者接收用于两个区块链交易的交易标识符。在步骤334中,处理服务器102可以诸如在处理服务器102中所存储的区块链数据210中或者通过使用接收到的交易标识符从适当的区块链网络106请求区块链数据值来识别两个区块链交易。在步骤336中,处理服务器102的验证模块218可以验证两个区块链交易。每个区块链交易可以由验证模块218通过确保目的地地址和货币金额正确并且通过核实散列锁适当、就位并且尚未过期来验证。一旦交易已被成功验证,在步骤338中,处理服务器102的传输设备220就可以将证明值以电子方式传输到第一区块链网络106a和第二区块链网络106b二者中的区块链节点,以请求移除两个区块链交易上的散列锁。随着散列锁的移除,第一参与者设备108和第二参与者设备110可以在适当的区块链上接收它们的货币并且完成原子交换。
用于原子交换的调解的示例性方法
图4图示了用于由第三方处理服务器调解原子交换的方法400。
在步骤402中,处理服务器(例如,处理服务器102)的接收器(例如,接收设备202)可以从第一计算设备(例如,第一参与者设备108)接收交换请求,其中交换请求至少包括与第一区块链相关联的第一地址和与第二区块链相关联的网络标识符。在步骤404中,处理服务器的处理器(例如,查询模块214)可以至少基于该网络标识符和与第二区块链相关联的第二地址来识别第二计算设备(例如,第二参与者设备110)。在步骤406中,可以由处理服务器的处理器(例如,生成模块216)生成证明值和散列锁,其中至少使用证明值来生成散列锁。
在步骤408中,处理服务器的传输器(例如,传输设备220)可以将(i)至少散列锁和第二地址传输到第一计算设备,以及(ii)至少散列锁和第一地址传输到第二计算设备。在步骤410中,处理服务器的处理器(例如,验证模块218)可以核实发布到第一区块链的第一区块链交易以用于将第一货币金额转移到第一地址,以及发布到第二区块链的第二区块链交易以用于将第二货币金额转移到第二地址。在步骤412中,处理服务器的传输器可以至少将证明值传输到与第一区块链相关联的第一区块链节点和与第二区块链相关联的第二区块链节点。
在一个实施例中,可以在交换请求中识别第二计算设备。在一些实施例中,识别第二计算设备可以包括:由处理服务器的处理器基于网络标识符识别用于多个附加计算设备中的每一个的标识符;由处理服务器的传输器将用于多个附加计算设备中的每一个的标识符传输到第一计算设备;以及由处理服务器的接收器从第一计算设备接收与第二计算设备相关联的标识符。在一个实施例中,交换请求可以包括第一货币金额和第二货币金额。在一些实施例中,第一货币金额与第二货币金额可以是相同的金额。
在一个实施例中,方法400还可以包括:由处理服务器的接收器从第二计算设备接收与第一区块链交易相关联的第一通知数据;以及由处理服务器的接收器从第一计算设备接收与第二区块链交易相关联的第二通知数据。在另外的实施例中,可以在核实第一区块链交易和第二区块链交易之前接收第一通知数据和第二通知数据,可以使用第一通知数据核实第一区块链交易,并且可以使用第二通知数据核实第二区块链交易。在一些实施例中,方法400还可以包括由处理服务器的处理器至少基于第一货币金额和与第二计算设备相关联的汇率来计算第二货币金额。
计算机系统架构
图5图示了计算机系统500,其中本公开的实施例或其部分可以被实现为计算机可读代码。例如,图1和图2的处理服务器102可以使用硬件、其上存储有指令的非暂态计算机可读介质或其组合在计算机系统500中实现,并且可以在一个或多个计算机系统或其它处理系统中实现。硬件可以实施用于实现图3A、图3B和图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)显示器等。
计算机程序介质和计算机可用介质可以指存储器,诸如可以是存储器半导体(例如,DRAM等等)的主存储器508和辅助存储器510。这些计算机程序产品可以是用于向计算机系统500提供软件的部件。计算机程序(例如,计算机控制逻辑)可以存储在主存储器508和/或辅助存储器510中。计算机程序也可以经由通信接口524来接收。此类计算机程序在被执行时可以使得计算机系统500能够实现本文所讨论的本方法。特别地,计算机程序在被执行时可以使得处理器设备504能够实现由图3A、图3B和图4所示的方法,如本文所讨论的。因而,此类计算机程序可以表示计算机系统500的控制器。在使用软件实现本公开的情况下,软件可以存储在计算机程序产品中并使用可移动存储驱动器514、接口520以及硬盘驱动器512或通信接口524加载到计算机系统500中。
处理器设备504可以包括被配置为执行计算机系统500的功能的一个或多个模块或引擎。每个模块或引擎可以使用硬件实现,并且在一些情况下,也可以利用诸如与存储在主存储器508或辅助存储器510中的程序代码和/或程序对应的软件。在此类情况下,在由计算机系统500的硬件执行之前,程序代码可以由处理器设备504(例如,由编译模块或引擎)编译。例如,程序代码可以是用编程语言编写的源代码,其被翻译成更低级别的语言(诸如汇编语言或机器代码)以供处理器设备504和/或计算机系统500的任何附加硬件组件执行。编译的处理可以包括使用词法分析、预处理、解析、语义分析、语法导向翻译、代码生成、代码优化,以及可以适于将程序代码翻译成适于控制计算机系统500以执行本文公开的功能的较低级别语言的任何其它技术。对于相关领域的技术人员将清楚的是,此类处理导致计算机系统500是被特别编程以执行上面讨论的功能的专门配置的计算机系统500。
除其它特征之外,符合本公开的技术提供了用于调解原子交换的系统和方法。虽然上面已经描述了所公开的系统和方法的各种示例性实施例,但是应该理解的是,它们的呈现仅是为了示例的目的,而不是限制的目的。它不是详尽的并且不将本公开限制于所公开的精确形式。根据上述教导,修改和变化是可能的,或者可以从本公开的实践中获得,而不脱离广度或范围。

Claims (16)

1.一种用于调解原子交换的方法,包括:
由处理服务器的接收器从第一计算设备接收交换请求,其中所述交换请求至少包括与第一区块链相关联的第一地址和与第二区块链相关联的网络标识符;
由处理服务器的处理器至少基于所述网络标识符和与第二区块链相关联的第二地址识别第二计算设备;
由处理服务器的处理器生成证明值和散列锁,其中散列锁是至少使用证明值生成的;
由处理服务器的传输器(i)将至少散列锁和第二地址传输到第一计算设备,以及(ii)将至少散列锁和第一地址传输到第二计算设备;
由处理服务器的处理器核实发布到第一区块链以将第一货币金额转移到第一地址的第一区块链交易,以及发布到第二区块链以将第二货币金额转移到第二地址的第二区块链交易;以及
由处理服务器的传输器将至少证明值传输到与第一区块链相关联的第一区块链节点和与第二区块链相关联的第二区块链节点。
2.如权利要求1所述的方法,其中第二计算设备是在所述交换请求中识别的。
3.如权利要求1所述的方法,其中识别第二计算设备包括:
由处理服务器的处理器基于所述网络标识符识别用于多个附加计算设备中的每个附加计算设备的标识符;
由处理服务器的传输器将用于所述多个附加计算设备中的每个附加计算设备的标识符传输到第一计算设备;以及
由处理服务器的接收器从第一计算设备接收与第二计算设备相关联的标识符。
4.如权利要求1所述的方法,其中所述交换请求包括第一货币金额和第二货币金额。
5.如权利要求1所述的方法,其中第一货币金额与第二货币金额是相同的金额。
6.如权利要求1所述的方法,还包括:
由处理服务器的接收器从第二计算设备接收与第一区块链交易相关联的第一通知数据;以及
由处理服务器的接收器从第一计算设备接收与第二区块链交易相关联的第二通知数据。
7.如权利要求6所述的方法,其中
第一通知数据和第二通知数据是在核实第一区块链交易和第二区块链交易之前接收的,
第一区块链交易是使用第一通知数据核实的,以及
第二区块链交易是使用第二通知数据核实的。
8.如权利要求1所述的方法,还包括:
由处理服务器的处理器至少基于第一货币金额和与第二计算设备相关联的汇率计算第二货币金额。
9.一种用于调解原子交换的系统,包括:
第一计算设备;
第二计算设备;以及
处理服务器,包括
接收器,从第一计算设备接收交换请求,其中所述交换请求至少包括与第一区块链相关联的第一地址和与第二区块链相关联的网络标识符,
处理器
至少基于所述网络标识符和与第二区块链相关联的第二地址来识别第二计算设备,以及
生成证明值和散列锁,其中散列锁是至少使用证明值生成的,
传输器,(i)将至少散列锁和第二地址传输到第一计算设备,以及(ii)将至少散列锁和第一地址传输到第二计算设备,其中
处理服务器的处理器还核实发布到第一区块链以将第一货币金额转移到第一地址的第一区块链交易,以及发布到第二区块链以将第二货币金额转移到第二地址的第二区块链交易,以及
处理服务器的传输器还将至少证明值传输到与第一区块链相关联的第一区块链节点和与第二区块链相关联的第二区块链节点。
10.如权利要求9所述的系统,其中第二计算设备是在所述交换请求中识别的。
11.如权利要求9所述的系统,其中识别第二计算设备包括:
由处理服务器的处理器基于所述网络标识符识别用于多个附加计算设备中的每个附加计算设备的标识符;
由处理服务器的传输器将用于所述多个附加计算设备中的每个附加计算设备的标识符传输到第一计算设备;以及
由处理服务器的接收器从第一计算设备接收与第二计算设备相关联的标识符。
12.如权利要求9所述的系统,其中所述交换请求包括第一货币金额和第二货币金额。
13.如权利要求9所述的系统,其中第一货币金额与第二货币金额是相同的金额。
14.如权利要求9所述的系统,其中处理服务器的接收器还接收
来自第二计算设备的与第一区块链交易相关联的第一通知数据,以及
来自第一计算设备的与第二区块链交易相关联的第二通知数据。
15.如权利要求14所述的系统,其中
第一通知数据和第二通知数据是在核实第一区块链交易和第二区块链交易之前接收的,
第一区块链交易是使用第一通知数据核实的,以及
第二区块链交易是使用第二通知数据核实的。
16.如权利要求9所述的系统,其中处理服务器的处理器还至少基于第一货币金额和与第二计算设备相关联的汇率计算第二货币金额。
CN202280040458.2A 2021-06-17 2022-06-17 用于使用散列锁的经调解的跨分类账稳定币原子交换的方法和系统 Pending CN117425907A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/350,646 2021-06-17
US17/350,646 US11748749B2 (en) 2021-06-17 2021-06-17 Method and system for mediated cross ledger stable coin atomic swaps using hashlocks
PCT/SG2022/050420 WO2022265581A2 (en) 2021-06-17 2022-06-17 Method and system for mediated cross ledger stable coin atomic swaps using hashlocks

Publications (1)

Publication Number Publication Date
CN117425907A true CN117425907A (zh) 2024-01-19

Family

ID=84490264

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280040458.2A Pending CN117425907A (zh) 2021-06-17 2022-06-17 用于使用散列锁的经调解的跨分类账稳定币原子交换的方法和系统

Country Status (5)

Country Link
US (2) US11748749B2 (zh)
EP (1) EP4356332A2 (zh)
KR (1) KR20240022462A (zh)
CN (1) CN117425907A (zh)
WO (1) WO2022265581A2 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11935042B2 (en) * 2021-08-13 2024-03-19 Nec Corporation Delegated off-chain payments using cryptocurrencies
US11971903B2 (en) * 2022-05-13 2024-04-30 Circle Internet Financial Limited Atomically bridging transactions across different blockchains

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10652019B1 (en) * 2019-08-28 2020-05-12 Qed-It Systems Ltd. Atomic swap using zero-knowledge proofs, and applications thereof
US20210073913A1 (en) * 2019-09-06 2021-03-11 Bosonic, Inc. System and method of providing a block chain-based recordation process
IL295354A (en) * 2020-02-04 2022-10-01 Qpq Ltd A system and method for performing atomic exchange transfer of digital records between distributed databases
SG10202006466YA (en) * 2020-07-03 2021-05-28 Alipay Labs Singapore Pte Ltd Managing transactions in multiple blockchain networks
CN112507393B (zh) 2020-12-10 2024-01-30 浙商银行股份有限公司 一种保障区块链跨链事务一致性的方法
US11614985B2 (en) * 2020-12-22 2023-03-28 Arm Limited Insert operation
CN112866380B (zh) 2021-01-15 2022-10-14 杭州链网科技有限公司 一种基于区块链的链网架构
US20220300916A1 (en) * 2021-03-19 2022-09-22 R3 Ltd. Internetwork swapping of assets

Also Published As

Publication number Publication date
KR20240022462A (ko) 2024-02-20
US20230368197A1 (en) 2023-11-16
WO2022265581A2 (en) 2022-12-22
US20220405742A1 (en) 2022-12-22
EP4356332A2 (en) 2024-04-24
WO2022265581A3 (en) 2023-02-23
US11748749B2 (en) 2023-09-05

Similar Documents

Publication Publication Date Title
CN109949155B (zh) 用于经由区块链的基于信任的支付的方法和系统
US11558181B2 (en) Method and system for state associated device identification for digital payments using blockchain technology
US20190188657A1 (en) Method and system for outside guarantees for a blockchain transaction
US20180374094A1 (en) Method and system for indexing consumer enrollment using blockchain
US11373179B2 (en) Method and system for secure and verifiable offline blockchain transactions
US11025431B2 (en) Method and system for two factor authentication for blockchain transactions
US20230368197A1 (en) Method and system for mediated cross ledger stable coin atomic swaps using hashlocks
US20210117938A1 (en) Method and system for control of pii through limiting transfers on blockchain
US11689355B2 (en) Method and system for the atomic exchange of blockchain assets using transient key pairs
US20230385822A1 (en) Method and system for processing an asset swap across two blockchains
US20230068301A1 (en) Method and system for privately managed digital assets on an enterprise blockchain
US20230196346A1 (en) Method and system of providing for offline transactions in digital currencies
US11699135B2 (en) Method and system to delegate issuance capability to a third-party
US11900367B2 (en) Method and system for enabling traceable privacy-maintaining multi-hop offline transactions in digital currencies
US20230177500A1 (en) Method of conducting financial transactions
US20230169495A1 (en) Method and system for conversion of digital assets to fiat currency
US20240086906A1 (en) Method and system for providing token identity
KR20240068692A (ko) 허가형 블록체인에서 스마트 계약의 병렬 프로세싱을 위한 방법 및 시스템
WO2024072730A1 (en) Method and system for blockchain to apply sanctions

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