CN113646765A - 点对点分布式去中心化系统 - Google Patents
点对点分布式去中心化系统 Download PDFInfo
- Publication number
- CN113646765A CN113646765A CN202080023760.8A CN202080023760A CN113646765A CN 113646765 A CN113646765 A CN 113646765A CN 202080023760 A CN202080023760 A CN 202080023760A CN 113646765 A CN113646765 A CN 113646765A
- Authority
- CN
- China
- Prior art keywords
- blockchain
- recorded
- redemption
- server
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2336—Pessimistic concurrency control approaches, e.g. locking or multiple versions without 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
- 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/36—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
- G06Q20/367—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
- G06Q20/3678—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes e-cash details, e.g. blinded, divisible or detecting double spending
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- 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/321—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 a third party or a trusted authority
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- 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
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Accounting & Taxation (AREA)
- Signal Processing (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Finance (AREA)
- General Engineering & Computer Science (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
实施例涉及可以处理大量实时操作的高吞吐量区块链系统。一种系统(100)可以包括以快速且可信的方式处理操作匹配的服务器(120)、以及在由服务器(120)确认匹配之后以去中心化的方式执行匹配操作的区块链(125)。服务器可以从用户(110)接收操作请求。为了确认操作请求,用户(110)可以在区块链(125)上引起确认操作请求有效性的条目的广播。在验证操作请求后,服务器(120)可以将操作请求与满足用户请求指定的标准的其他操作请求进行匹配。记录在区块链(125)上的一组代码指令可以生成一个或多个执行与匹配相关的操作的条目。
Description
相关申请的交叉引用
本申请要求2019年1月31日提交的美国临时专利申请62/799,662和2019年9月20日提交的美国专利申请16/578,176的优先权,其内容整体通过引用方式并入本文中。
技术领域
本发明一般涉及在去中心化系统中提供点对点安全操作。
背景技术
去中心化系统允许操作以安全的方式发生,而无需中央权限以降低与受信权限的故障相关联的风险。去中心化系统通常依靠区块链在去中心化系统的节点之间达成共识。区块链可以包括一串数据区块,这些数据区块通过先前区块的散列链接在一起。区块链中的各个参与者可以通过追溯交易链的历史来独立验证交易的有效性。在公共区块链中,不同方可以独立验证被记录在链上的区块,因此单方操纵或伪造存储在区块中的交易变得非常具有挑战性。因此,区块链通常比中心化系统提供更高的透明度、增强的安全性和改进的可追溯性。
然而,操作去中心化系统并非没有缺点。例如,在去中心化系统中,通常由区块链的区块生成驱动操作。为了完成新操作,去中心化系统中的节点可能不仅需要等待新区块的生成,还需要等待区块的多次确认,以避免出现新的区块分支,而该区块分支原来是实际的链。因此,与区块链相关的操作可能会受到区块生成速度和区块链确认速度的严重限制,与操作的性质相比,有时可能会极其缓慢。因此,去中心化系统的处理性能可能较低。常规区块链通常不适合处理大量并发的实时操作。
在本说明书中,用词“包括”或诸如“包含”或“含有”之类的变体将被理解为暗示包括所陈述的元件、整数或步骤,或元件组、整数组或步骤组,但是不排除任何其他元件、整数或步骤,或元件组、整数组或步骤组。
对已包括在本说明书中的文档、动作、材料、设备、物品等的任何讨论不应被视为承认这些事项中的任何或全部形成现有技术基础的一部分或与本发明相关的领域中的公知常识,因为它存在于每个所附权利要求的优先权日之前。
发明内容
实施例涉及可以处理大量实时操作的高吞吐量区块链系统。在一个实施例中,系统可以包括以快速且可信的方式处理操作匹配的服务器、以及在由服务器确认匹配之后以去中心化的方式执行匹配操作的区块链。区块链可以通过投票过程在分布式节点之间生成新区块,以进一步提高系统的操作速度。在一个实施例中,服务器可以从用户接收操作请求。为了确认操作请求,用户可以在区块链上引起确认操作请求有效性的条目的广播。在验证操作请求后,服务器可以将该操作请求与符合用户请求指定条件的其他操作请求进行匹配。服务器可以使用其私钥创建匹配确认的数字签名,并且将带有数字签名的确认传输到被记录在区块链上的一组代码指令。在验证确认后,代码指令可以生成一个或多个执行与匹配相关的操作的条目。条目可以被广播到区块链中的节点网络,并且在条目被记录在区块链中的一个区块中时进行确认。
附图说明
附图(图)1示出了根据实施例的示例区块链兑换服务器系统环境。
图2是示出根据实施例的兑换服务器的各种组件的方框图。
图3是示出根据实施例的在去中心化网络中进行点对点匹配交易的示例过程的流程图。
图4是描绘根据实施例的兑换区块链单元的示例过程的流程图。
图5是描绘根据实施例的为外部区块链单元创建存托凭证的示例过程的流程图。
图6是描绘根据实施例的赎回外部区块链单元的示例过程的流程图。
图7A是示出根据实施例的被记录在区块链上的交易链的方框图。
图7B是示出根据实施例的区块链中的多个区块的连接的方框图。
图8是示出根据实施例的示例计算设备的方框图。
仅出于说明的目的,附图描绘并且详细描述描述了各种非限制性实施例。
具体实施方式
附图(图)和以下描述仅通过说明的方式涉及优选实施例。本领域技术人员可以将本文公开的结构和方法的替代实施例识别为在不脱离所公开的原理的情况下可以采用的可行替代方案。
现在将详细参考几个实施例,在附图中示出其示例。应注意,只要可行,相似或相同的元件符号可以在图中使用,并且可以指示相似或相同的功能。附图仅出于说明的目的描绘所公开的系统(或方法)的实施例。本领域技术人员将从以下描述中容易地认识到,在不脱离本文描述的原理的情况下,可以采用本文所示的结构和方法的替代实施例。
在一个实施例中,描述了一种计算机实现的方法。计算机实现的方法可以包括:通过第一区块链从用户接收用于请求兑换区块链存托凭证的第一订单。区块链存托凭证可以被记录在第二区块链上作为被记录在第一区块链上的外部区块链单元的存托凭证。计算机实现的方法还可以包括:验证条目被记录在所述第一区块链上,所述条目指定区块链存托凭证被发送到第一智能合约的托管地址。第一智能合约可以包括被记录在第一区块链上的第一组代码指令。代码指令可以按照第一订单来维护区块链存托凭证的托管。计算机实现的方法还可以包括:由兑换服务器将第一订单与第二订单匹配以生成匹配。计算机实现的方法还可以包括:向第一智能合约传输对匹配的确认,以使代码指令生成要被记录在第一区块链上的区块链交易的广播。区块链交易可以指定将区块链存托凭证从用户的地址转移到第一区块链的另一区块链地址。
在一个实施例中,一种(可选地)非暂时性计算机可读介质,其存储包括被记录在第一区块链上的代码指令的程序代码。代码指令在被执行时使一个或多个处理器执行包括以下操作的步骤:接收待托管的区块链存托凭证。可以按照第一订单来维护托管,由用户创建的第一订单用于请求兑换区块链存托凭证。区块链存托凭证可以被记录在第一区块链上作为被记录在第二区块链上的外部区块链单元的存托凭证。这些步骤还可以包括:从兑换服务器接收第一订单与第二订单之间的匹配。这些步骤还可以包括:响应于匹配,生成要被记录在第一区块链上的区块链交易的广播。区块链交易可以指定将区块链存托凭证从用户地址转移到第一区块链的另一区块链地址。
在一个实施例中,描述了一种系统。该系统可以包括兑换服务器和与兑换服务器通信的一组代码指令。兑换服务器可以被配置成:通过第一区块链从用户接收用于请求兑换区块链存托凭证的第一订单。区块链存托凭证可以作为被记录在第一区块链上作为被记录在第二区块链上的外部区块链单元的存托凭证。兑换服务器还可以被配置成:验证条目被记录在所述第一区块链上,所述条目指定区块链存托凭证被发送到托管地址。兑换服务器还可以被配置成将第一订单与第二订单匹配以生成匹配。该组代码指令可以被记录在第一区块链上。该组代码指令可以在被执行时使一个或多个处理器:从兑换服务器接收对匹配的确认,并且生成要被记录在第一区块链上的区块链交易的广播。区块链交易可以指定将区块链存托凭证从用户的地址转移到第一区块链的另一区块链地址。
系统概览
现在参考图(附图)1,根据实施例示出了示例区块链系统环境100的方框图。举例来说,区块链系统环境100包括一个或多个用户设备,例如110A、110B、110C等(统称为用户设备110或一个用户设备110)、兑换服务器120、一个或多个区块链125和130。区块链可以包括与兑换服务器120相关联的可以被称为兑换服务器区块链125的第一区块链、以及可以是外部公共区块链125的第二区块链。实体和环境100中的组件通过网络140彼此通信。在各种实施例中,区块链系统环境100可以包括不同的、更少的或附加的组件。区块链系统环境100中的组件可以各自对应于单独且独立的实体,或可以由同一实体控制。在一些情况下,环境100中的一些组件可以通过本地网络连接彼此通信。
用户设备110可以由具有兑换服务器120的账户的用户控制。用户设备110可以是任何计算设备。用户设备110的示例包括个人计算机(PC)、台式计算机、膝上型计算机、平板计算机、智能电话、诸如智能手表之类的可穿戴电子设备、或任何其他合适的电子设备。用户可以在兑换服务器120处拥有账户,该账户用于跟踪各种区块链单元的余额,诸如加密货币单元、代币单元、区块链存托凭证单元和其他合适的区块链单元。任何用户设备110都可以参与一个或多个区块链以充当参与挖矿或投票过程的节点并且还充当区块链网络的虚拟机的一部分。
用户设备110A、110B和110C各自都可以包括界面115A、115B或115C(统称为界面115或一界面115)。界面115可以与兑换服务器120通信,并且在用户设备110处运行。当用户设备110尝试发起区块链单元的交易(例如,存托请求、转移请求、购买订单、出售订单等),用户可以通过界面115与兑换服务器120通信。界面115可以采用不同的形式。在一个实施例中,界面115是由兑换服务器120提供和控制的软件应用程序界面。例如,兑换服务器120可以提供可以在用户设备110处显示的前端软件应用程序。在一种情况下,前端软件应用程序是可以下载且安装在用户设备110处以供用户发起和管理交易、检查余额和执行其他相关动作的软件应用程序。在另一种情况下,前端软件应用程序采用兑换服务器120的网页界面的形式,这允许客户(clients)通过网络浏览器管理其账户。前端软件应用程序可以包括显示各种信息和图形元素的图形用户界面(GUI)。在另一实施例中,界面115可以不包括图形元素但可以经由诸如应用程序接口(API)之类的其他合适的方式与兑换服务器120通信。
兑换服务器120可以是向用户提供各种交易所和资产管理服务的中心化服务器。由兑换服务器120提供的服务可以包括数字钱包、定价信息、资产兑换、可信资产存托、区块链单元交易、订单匹配、区块链管理、智能合约生成和数据馈送。在一个实施例中,兑换服务器120可以是部分中心化的和部分去中心化的。例如,与匹配订单相关的服务可是中心化的。兑换服务器120还可以提供诸如兑换服务器区块链125之类的去中心化的或依赖去中心化区块链的区块链交易。将结合图2进一步讨论兑换服务器120的操作和子组件的细节。
在一个实施例中,兑换服务器120包括存储由各种用户提交的交易订单的存储器150。订单可以是:采购订单、销售订单或其他合适的订单,包括区块链单元的价格、数量。兑换服务器120可以提供链下匹配以生成被存储在存储器150中的订单的一个或多个匹配。最终匹配结果将被异步记录到存储器150或兑换服务器区块链125的子链中以用于公众参考和审计。
系统环境100可以包括一个或多个区块链125和130。第一区块链125可以被称为兑换服务器区块链125。在一个实施例中,第一区块链125可以是去中心化的公共区块链。在该背景下,区块链125可以与兑换服务器120相关联。例如,兑换服务器区块链125可以包括供通过兑换服务器120交易的区块链单元使用的命名空间约定,使得区块链单元可以仅在兑换服务器120内流通。在一个实施例中,兑换服务器区块链125是包括多个节点的公共区块链,这些节点协作以验证交易并且生成新区块。兑换服务器120可以最初开发、启动、设置标准和维护兑换服务器区块链125(例如,负责或部分负责更新区块链的版本),但是兑换服务器区块链125可以允许公众作为区块链网络节点参与。作为完全公共区块链的替代,在一个实施例中,兑换服务器区块链125可以将至少某个最低级别的节点限制为兑换服务器120的账户持有者。可以通过结合图7A和图7B讨论的任何合适方法来执行兑换服务器区块链125的新区块的生成。在一个实施例中,可以通过投票过程进行新区块的生成,其中在每一轮中,随机或部分随机选择的节点子集被赋予投票权以决定哪个节点可以生成新区块。通常,投票过程以比挖矿过程快得多的速度生成新区块,挖矿过程通常涉及节点花费大量时间挖矿新区块。
在兑换服务器区块链125可以设计和记录一个或多个用于执行兑换服务器120的动作的智能合约的意义上,兑换服务器区块链125也可以与兑换服务器120相关联。智能合约可以是位于区块链特定地址处的代码指令(例如,其功能)和数据(例如,其状态)的集合。例如,智能合约可能包括一组不可变的代码指令,这些指令被存储在区块链上并且在满足一个或多个条件时可执行。当被触发时,该组代码指令可以由诸如区块链的虚拟机之类的计算机执行。本文中,计算机可以是常规意义上的单个操作单元(例如,单个个人计算机),或者可以是协作执行代码指令的一组分布式计算设备(例如,虚拟机或分布式计算系统)。在一个实施例中,交易服务器区块链125包括一个或多个智能合约,其执行被存储在存储器150中且由兑换服务器120匹配的订单。
兑换服务器区块链125还可以通过包括由兑换服务器120管理的一个或多个私有侧链而与兑换服务器120相关联。例如,由兑换服务器120控制的侧链中的一个可以用作兑换服务器120的中心化账本。在一个实施例中,对于由兑换服务器120匹配的操作和订单,可以将订单发布在侧链上以供参考和验证。操作和订单可以由被记录在主公共链中的智能合约执行。订单的执行可包括将区块链单元从一个用户的地址转移到另一地址。
在不同的实施例中,兑换服务器区块链125的去中心化程度可以变化。兑换服务器区块链125可以是公共区块链、联盟区块链、私有区块链。在一个实施例中,兑换服务器区块链125可以是联盟区块链。兑换服务器120可以用作区块链网络的节点,并且可以将区块链网络的其他节点限制为兑换服务器120的用户、和其他授权方。因此,兑换服务器120可以限制可以参与兑换服务器区块链125的挖矿过程和数据记录和验证过程的各方。在另一实施例中,兑换服务器120可以设置标准并且发布兑换服务器区块链125,但允许公众自由参与区块链网络。
第二区块链130可以与第一区块链125相似或不同。例如,第二区块链130也可以支持智能合约。在一种情况下,第二区块链130可以是现有区块链,诸如BITCOIN、以太币EUM、EOS、NEO、CARDANO、STELLER等。在一个实施例中,第二区块链125可以使用可能很慢的挖矿过程生成新区块使区块链125维持大量交易和订单匹配的吞吐量。而在另一实施例中,第二区块链125也可以使用投票过程来生成新区块。第二区块链130可以发布和记录在第一区块链125外部的一个或多个区块链单元。区块链单元可以在第一区块链125外部,其中区块链单元可能不是第一区块链125原生的并且交易区块链单元被记录在第二区块链130而不是第一区块链125中。在这种背景下,第二区块链可以被称为外部区块链130。例如,外部区块链130可以是生成区块链单元的以太坊,诸如以太币和其他代币,它们可以在第一区块链125的外部。兑换服务器区块链125可以通过表示外部区块链单元的各种数量的存托凭证来记录外部区块链单元的交易。
用户设备110、兑换服务器120以及区块链125和130之间的通信可以经由网络140例如经由互联网来执行。在一个实施例中,网络140使用标准通信技术和/或协议。因此,网络140可以包括使用诸如以太网、802.11、全球微波接入互操作性(WiMAX)、3G、4G、LTE、5G、数字用户线(DSL)、异步传输模式(ATM)、InfiniBand、PCI快速高级交换等技术的链路。类似地,网络140上使用的网络协议可以包括多协议标签交换(MPLS)、传输控制协议/互联网协议(TCP/IP)、用户数据报协议(UDP)、超文本传输协议(HTTP)、简单邮件传输协议(SMTP)、文件传输协议(FTP)等。通过网络140交换的数据可以使用包括超文本标记语言(HTML)、可扩展的标记语言(XML)等技术和/或格式来表示。此外,所有或一些链接可以使用常规加密技术进行加密,诸如安全套接字层(SSL)、传输层安全(TLS)、虚拟专用网络(VPN)、互联网防议安全(IPsec)等。在另一实施例中,实体可以使用定制的和/或专用的数据通信技术来代替上述技术,或者除了上述技术之外而使用。环境100中的组件可以通过一个或多个分组来发送信息、数据和消息。
示例兑换服务器
图2是表示根据实施例的示例兑换服务器120的方框图。在图2所示的实施例中,兑换服务器120包括账户存储210、数字钱包存储215、存储器105、交易引擎220、前端界面225、通信终端230、区块链存托凭证(BCDR)创建引擎235、赎回引擎240、区块链管理引擎250、智能合约引擎255和预言机(oracle machine)260。在一些实施例中,兑换服务器区块链125或其侧链也可以由兑换服务器120管理或作为其一部分。在其他实施例中,兑换服务器区块链125是公共区块链。兑换服务器120的功能可以以不同于所描述的方式分布在不同的组件之间。此外,在各种实施例中,兑换服务器120可以包括不同的、更少的和/或附加的组件。
根据一个实施例,兑换服务器120可以维护账户存储210中的用户数据。账户存储210可以将用户与唯一标识符相关联。该账户可以用于持有各种区块链单元,例如加密货币、代币和区块链存托凭证。用户账户跟踪用户在各个区块链中持有的不同区块链单元。例如,兑换服务器120可以维护与用户标识符相关联的账本。此外,兑换服务器120可以检查区块链中的区块,并且定位与特定用户的区块链地址相关的条目,以确定用户持有的区块链单元的余额。用户账户可以跟踪各种区块链单元,诸如比特币、以太币、瑞波币、EOS、以及由兑换服务器区块链125发行的代币和存托凭证。
数字钱包存储215存储用户的各种区块链单元余额,并且可以持有用户的私钥。用户的数字钱包可以是存储在不同区块链上交易的各种加密货币余额的区块链加密货币账户。对于每个区块链,数字钱包可以为用户存储加密私钥。不同区块链的私钥可以具有不同的格式,诸如不同的比特(bit)长度,并且可符合不同的加密协议。私钥允许用户交易加密货币,并且证明用户是被记录在区块链上的一定数量的加密货币的所有者。例如,数字钱包将私钥作为用户的秘密进行维护,并且可以使用私钥推导出与私钥相对应的公钥。数字钱包可以从公钥导出用户的区块链地址。可以唯一地从公钥推导出的该地址可以用作区块链中用户的公开但匿名的标识符。数字钱包还可以使用私钥生成数字签名来初始化区块链单元的交易,并且将数字签名用作为地址所有者和交易有效性的证明。在一些实施例中,数字钱包可以使用主私钥来生成多个公钥,以便用户可以在区块链上的各种交易中使用不同的公共地址。
兑换服务器120可以使用交易引擎220来提供区块链单元的定价信息,并且还匹配被存储在存储器105中的买卖订单。交易引擎220可以允许表示资产的区块链单元形式的各种类型资产的交易。资产类型可以包括证券、法定货币、来自其他区块链的加密货币、区块链代币、有形财产、不动产和其他合适的资产。订单的匹配可以通过交易引擎220进行,该交易引擎可以是中心化服务器。匹配订单的执行、和交易的结算可以通过兑换服务器区块链125进行,该兑换服务器区块链可以是去中心化的网络。各种类型的资产可以以存托凭证的形式通过兑换服务器区块链125进行交易。例如,存托凭证可以表示一定数量的有形财产。在另一种情况下,被记录在兑换服务器区块链125上的存托凭证可以表示被记录在第二区块链上的一定数量的外部区块链单元。交易引擎220通过可能的中心化管理,针对外部区块链单元提供快速的订单匹配,由于第二区块链的诸如挖矿速度之类的限制,这些外部区块链单元通常以慢得多的速度结算。
在一些实施例中,虽然存托凭证形式的区块链单元通过兑换服务器区块链125进行交易,但交易引擎220可以提供由存托凭证表示的资产的定价信息,诸如以资产为单位的买入价和卖出价。例如,区块链代币(例如,以太币)的定价信息可以以以太币或美元为单位呈现,即使使用兑换服务器区块链125的兑换可以通过以太币或美元的存托收据来执行,而不是不动产。定价信息可以基于兑换服务器120的不同用户下的买卖订单。在一些情况下,买卖订单可能不是以相同的单位。例如,可以以第一区块链代币为单位指定出售订单,而可以以第二区块链代币为单位指定购买订单。交易引擎220可以提供不同区块链单元之间的汇率信息,并且可以自动匹配具有等值但以不同货币或区块链单元的订单。
兑换服务器120可以包括一个或多个前端界面225。前端界面225允许用户管理他们的账户,发起交易,诸如通过下购买或出售订单,并且执行各种与区块链相关的活动。前端界面225的第一示例可以是被安装在用户的诸如智能手机和计算机之类的移动设备上的软件应用程序界面。前端界面225的第二示例可以是兑换服务器120的网页界面,其允许用户通过网络浏览器管理他们的账户。前端界面225的第三示例可以是兑换服务器120的应用程序界面(API),其允许用户通过程序代码和算法发起各种交易。
兑换服务器120的通信终端230提供兑换服务器120和与兑换服务器120通信的各种实体之间的网络和区块链连接。兑换服务器120可以用作各种公共区块链的节点以参与各种投票、挖矿、交易验证和区块验证流程。当兑换服务器120通过区块链发起各种交易时,通信终端230可以将交易广播到区块链网络的节点进行记录。广播交易被记录在区块链中一个或多个新生成的区块上,并且在多个后续区块链接到记录交易的区块后进行验证。兑换服务器120可以包括不同的终端,诸如区块链终端、交易网页终端、兑换服务器终端和信托终端。每个终端可以管理发布关于相关服务和服务器状态的信息的数据馈送或网页。每个终端还可以包括其单独的API终端。
兑换服务器120用作被标记为区块链单元的可交易资产(例如,证券、外部区块链单元、法定货币等)的交易平台。一数量的可交易资产(例如,一定份额的公司股票)可以用区块链存托凭证(BCDR)表示,并且通过一个或多个区块链进行交易和传输。在一些情况下,BCDR也可称为通证。在一个实施例中,通证可以是一种其兑换被限制在兑换服务器120内的BCDR。BCDR创建引擎235响应于用户的存托请求,通过被记录在兑换服务器区块链125上的智能合约使生成BCDR以将可交易资产转换到被记录在交易服务器区块链125上的区块链单元。为了为各种用户建立BCDR真正表示可交易资产的基础数量的信任,BCDR创建引擎235可以引起数字签名的生成。数字签名的生成可以包括将加密私钥应用于代币化请求的标识信息,该标识信息包括要代币化的可交易资产的标识符、和可交易资产的数量。BCDR创建引擎可以将数字签名传输到被记录在区块链上的智能合约。智能合约包括可响应于验证数字签名而执行的代码指令。代码指令在被执行时使计算机生成BCDR。
例如,可以将一数量的资产存入外部区块链、兑换服务器120或信托上的智能合约地址中。作为回报,被记录在兑换服务器区块链125中的智能合约可以生成区块链单元,其交易被记录在兑换服务器区块链125中。在一个实施例中,生成区块链单元的条目可以包括指定标的资产的存托和存托数量的信息。因此,该条目可以用作标的资产的存托凭证。区块链单元可以被称为区块链存托凭证(BCDR)。资产的存托可以采用不同的形式。在一种情况下,如果资产是证券、有形财产或不动产,则存托可以由信托服务器可信地持有。在2019年5月6日提交的标题为《区块链系统中的可信代币化交易(Trusted Tokenized Transactionsin a Blockchain System)》的美国专利申请第16/404,709号中进一步详细讨论了这些资产类别的存托和兑换的细节。出于所有目的,该申请通过引用的方式并入本文中。在另一种情况下,如果资产是外部区块链单元,诸如比特币或以太币,则存托可以包括用户通过外部区块链将外部区块链单元发送到与智能合约相关联的地址或与兑换服务器125相关联的地址。当被记录在兑换服务器区块链125中的智能合约接收到存托的确认时,智能合约生成指定创建BCDR的条目,并且广播该条目以在兑换服务器区块链125中记录。
兑换服务器120可以允许用户赎回由BCDR表示的可交易资产。赎回引擎240可以从所有者接收兑换请求。BCDR从所有者到兑换服务器120的转移可以通过记录过程来执行。赎回引擎240将等数量的由BCDR表示的可交易资产传输到所有者的账户。取决于资产的类型,可以采用不同的方法进行转移。例如,如果资产是证券,则赎回引擎240可以将证券转移到用户的常规股票账户。如果资产是外部区块链,则被保存在外部区块链上的智能合约可以广播指定将一数量的区块链单元转移到用户地址的条目。当完成转移时,赎回引擎240可以通过将兑换服务器120的数据存储中的BCDR的标识符标记为无效或已兑换和/或在兑换服务器区块链125上记录兑换来移除BCDR。在其他情况下,赎回引擎240可以减少特定资产的BCDR的发行总量。例如,兑换服务器120可以跟踪特定股票的BCDR的发行。当表示股票的BCDR的数量被赎回时,赎回引擎240可以减少发行量。BCDR的移除还可以通过区块链来执行。例如,赎回引擎240可以使智能合约从区块链中移除BCDR或在区块链的区块中将BCDR标记为已移除。
区块链管理引擎250为兑换服务器120提供各种功能以在可能具有它们自己的标准和协议的不同区块链上执行活动。兑换服务器可以用作公共区块链的节点以参与投票、挖矿和数据验证过程。区块链管理引擎250还可以允许兑换服务器120将各种交易广播到区块链网络以进行记录。在一些情况下,区块链管理引擎250可以存储兑换服务器120的各种私钥,其允许兑换服务器120生成用于区块链记录的交易并且通过兑换服务器的公共地址接受区块链单元的转移。区块链管理引擎250还可以管理由兑换服务器120的用户发起的交易的广播。例如,用户账户的私钥还可以由兑换服务器120存储,使得区块链管理引擎250可以代表用户广播交易。
智能合约引擎255管理被记录在不同区块链上的各种智能合约的生成和触发。可以通过与区块链兼容的特定编程语言创建智能合约。智能合约可以不变地存储在区块链的一个区块上。记录的智能合约可以包括由特定条件触发的可执行代码指令。当满足并验证条件时,代码指令由计算机自动执行,以执行代码指令中指定的合同条款。执行智能合约的计算机可以采用多种形式。例如,本文描述的计算机可以是常规个人计算机、区块链的虚拟机、或者分布式计算中的分布式节点的集合。当智能合约的代码指令被执行时,代码指令可能会导致某些事件(例如,交易、代币的生成、BCDR的生成)被记录在区块链上。智能合约引擎255可以生成不同的智能合约以被记录在区块链上。当满足条件时,智能合约引擎255还可以导致触发各种记录的智能合约。
预言机260可以用作一个或多个智能合约的数据馈送。预言机260可以从各种来源接收不同的数据。例如,不同方可以向预言机260提供信息和数据。当预言机260获得相关信息时,如果满足某些条件,则可以触发智能合约的一些代码指令。
示例跨链点对点交易
图3是描绘根据实施例的在两个用户之间执行跨链映射和点对点交易的示例过程的流程图。用户可希望交易各种区块链单元,但单元原生的区块链可以具有较慢的记录和确认速度。兑换服务器120可以通过被记录在兑换服务器区块链125上的存托凭证来实现对两个用户的订单和外部区块链130的区块链单元的交易的点对点匹配。可以通过任何区块链之外执行订单的匹配来提高匹配速度。兑换服务器区块链125还可以具有比外部区块链130高得多的区块生成速度,使得可以以高得多的速率完成和确认交易。
举例来说,兑换服务器120可以接收310一数量的外部区块链单元的存托请求。存托请求可以采用包括用户在外部区块链130上的公共地址、和用作用户与外部区块链130上的公共地址关联的证明的数字签名的消息的形式。例如,用户的公共地址可以从用户的公钥中推导出。用户可以使用与公钥相对应的私钥来生成数字签名,以证明用户持有私钥,并且公共地址表示用户在外部区块链130上的地址。存托请求还可以指定要存入的外部区块链单元的数量。基于公共地址,兑换服务器120可以通过检查被记录在外部区块链130上的与公共地址相关联的条目来验证公众与足够数量的外部区块链单元相关联。
兑换服务器120可以向用户传输320对存托请求的确认。该确认可以包括指定外部区块链130上的存托地址以供用户发送外部区块链单元的存托指令。存托地址可以是与被记录在外部区块链130上的智能合约相关联的地址、或兑换服务器120的地址。基于确认,用户可以使用其私钥来签署交易,该交易被广播到外部区块链130的区块链网络。交易指定一数量的区块链从用户的公共地址转移到存托地址。
除了传输确认之外,兑换服务器120还可以向被存储在兑换服务器区块链125上的智能合约传输330存托请求的版本。存托请求的版本可以是存托请求本身、被转换为智能合约指定格式的存托请求的变体、存托请求的摘要、或具有附加信息的存托请求。智能合约在接收到存托请求后,可以等待存托确认。当存托请求未决时,智能合约的代码指令可以执行指令以请求预言机定期检查外部区块链130中生成的新区块,直到存托被确认或直到存托请求到期为止。预言机向智能合约提供数据馈送以验证:外部区块链单元的数量到存托地址的转移被记录在外部区块链130上。在一些实施例中,被记录在外部区块链上的智能合约130可以使虚拟机向被记录在兑换服务器区块链125上的智能合约发送存托确认。响应于并且基于被记录在兑换服务器区块链125上的智能合约的代码指令,指令导致在兑换服务器区块链125上广播BCDR的创建。创建条目可以将创建的BCDR与用户在兑换服务器区块链125上的公共地址相关联。
跨链存放的区块链单元可用于通过BCDR在兑换服务器区块链125上进行交易。兑换服务器120可以通过兑换服务器区块链125从用户接收340用于兑换BCDR的请求的第一订单。BCDR被发行并且被记录在兑换服务器区块链125上作为被记录在外部区块链130上的外部区块链单元的存托凭证。交易订单可以指定区块链单元的数量、和价格,这可以用外部区块链单元来表示。该订单可以包括用户在兑换服务器区块链125上的公共地址,使得兑换服务器120可以验证该订单是否有效(例如,用户是否具有足够数量的BCDR)。
兑换服务器120可以验证350:指定BCDR被放置到智能合约的地址的条目被记录在兑换服务器区块链125上。智能合约的代码指令可以是不可变的,使得由智能合约强制执行的托管可能不会受到干扰。BCDR转移到智能合约地址表示:BCDR由智能合约托管。智能合约可以基于代码指令的设计以任何合适的方式进行托管。在一个实施例中,智能合约可以将托管条目记录在兑换服务器区块链125上,该托管条目指定从用户的公共地址传输的BCDR被托管,并且将该条目作为BCDR的最后一个条目进行维护。因此,用户可能不会双倍花费BCDR,因为BCDR的另一次转移将与托管条目相矛盾。在另一实施例中,智能合约可以指定与智能合约相关联的公共地址。BCDR从用户地址转移到智能合约地址导致托管。托管一直持续到智能合约在交易指令到期时将BCDR返还到用户地址、或在执行交易指令时将BCDR转移到另一用户的地址。
兑换服务器120将第一订单与第二订单匹配360以基于订单的价格或其他条件生成匹配。兑换服务器120可以将经验证的交易订单放入存储器150中。匹配可以中心化的方式进行,以由兑换服务器120控制。还可以在不考虑兑换服务器区块链125中区块的记录或生成的情况下进行匹配以提高匹配速度。因此,兑换服务器120可以实时检索订单。
当两个交易订单匹配时,订单的执行可以通过兑换服务器区块链125以去中心化的方式执行。在一种情况下,兑换服务器120向智能合约传输370匹配确认,其包括被记录在兑换服务器区块链125上的该组代码指令,以使智能合约广播交易条目。该确认可以包括两个交易的交易订单标识符以及兑换服务器120的数字签名以验证匹配。接下来,智能合约会定位托管的BCDR。在智能合约验证匹配后,诸如通过确认订单确实匹配并且验证兑换服务器120的数字签名,智能合约的该组代码指令生成区块链交易的广播以被记录在兑换服务器区块链125上。区块链交易指定将BCDR从用户地址转移到兑换服务器区块链125的另一区块链地址。当交易被记录在兑换服务器区块链125并且包含交易的区块被链接到多个后续区块时,结算交易。
示例兑换过程
图4是描绘根据实施例的在BCDR的交易中的各种实体与组件之间的消息和数据流的流程图。图4示出了具有用户405的过程,但是在相似的时间范围内可能发生多个相似的过程。其他过程可以类似的方式发生。
兑换服务器120的用户405可以持有表示不同基础资产的各种类型的区块链存托凭证。用户405可以通过兑换服务器120使用BCDR兑换资产,使得资产可以以安全和去中心化的方式以通常比持有资产的平台(例如,外部区块链)或机构快得多的速度结算。在一个实施例中,兑换服务器120可以提供定价信息,诸如不同单位的各种资产的报价。例如,对于诸如证券之类的资产,报价既可以是法定货币,也可以以诸如加密货币之类的区块链代币为单位。在另一示例中,对于诸如加密货币之类的资产,报价可以以表示加密货币的BCDR为单位和以加密货币为单位。
用户405可以使用表示外部区块链代币的第一BCDR来购买表示为第二BCDR的资产。用户405可以发布操作请求。例如,为了发起兑换,用户405创建订单410,该订单可以包括用户405想要购买的资产的价格和数量、以及用于购买资产的第一BCDR的数量。第一BCDR的数量也可以例如以第一BCDR所表示的外部区块链代币为单位来表示。兑换服务器120可以向用户405传输确认415,表明兑换服务器120正在接收订单410。确认415可以包括识别订单的唯一标识符、以及用户在交易服务器区块链125上将第一BCDR托管的托管地址405,由智能合约的代码指令强制执行托管。托管地址可以是与智能合约400相关联并且由其控制的地址。
在接收到托管地址后,用户405将第一BCDR转移420到智能合约400。例如,用户405的数字钱包可以使用用户的私钥来签署指定BCDR被转移到托管地址的条目。数字钱包可以将条目广播到兑换服务器区块链125以记录条目。该条目还可以指定订单410的到期条件和托管期限。BCDR转移到智能合约400的记录表明BCDR被置于兑换服务器区块链上记录的智能合约400强制执行的托管中。在订单410未决期间,智能合约400可以按照订单410维护425BCDR的托管,如图4中的粗竖直线所示。例如,由于BCDR通过用户405创建的条目被传输到托管地址,在智能合约400没有通过在兑换服务器区块链125广播另一个条目将BCDR返回到用户地址的情况下,用户405可能不会双倍花费BCDR。智能合约400中的代码指令可以按照订单410维护425托管,诸如基于订单410中指定的到期条件或者如果订单410不包括此类信息,则基于预定条件。
兑换服务器120可以例行地检查在兑换服务器区块链125处生成的新区块430。新区块的检查验证是否在兑换服务器区块链上记录了指定BCDR被置于由智能合约400维护的托管的条目。验证还可以检查提供给兑换服务器120的到期条件是否与提供给智能合约400的条件匹配。响应于验证,兑换服务器120将订单410与由兑换服务器120的各个用户下的其他订单一起保存435到存储器150。订单410可以是操作请求。
兑换服务器120将订单410与第二订单匹配440以生成匹配。如果订单410在预定的时间量或用户405指定的时间或条件不匹配,则订单410过期并且智能合约400将BCDR从托管返回给用户405。如果生成匹配,则兑换服务器120通过经由诸如预言机之类的智能合约400的数据馈送向智能合约400传输匹配的确认来向智能合约400提供445订单匹配信息。确认可以包括兑换服务器120的数字签名以验证确认的真实性。例如,兑换服务器120可以创建包括匹配信息的消息,诸如两个订单的标识符、所涉及的BCDR的数量和价格、以及参与交易的用户的标识符。兑换服务器120使用其私钥对消息进行加密以创建数字签名。确认可以包括明文形式的消息和数字签名。在生成匹配时,兑换服务器120还可以在与兑换服务器区块链125分离的源处发布匹配。例如,兑换服务器120可以在网站(例如,兑换服务器120的网站)上发布匹配的一些标识信息,或者通过API使信息可用。该发布用作与匹配有关的独立源。发布的信息可以是匿名的。例如,在一个实施例中,可以去除用户标识符。发布的信息可以包括BCDR标识符、交易的BCDR数量、匹配的时间戳等。发布的信息也可以被散列。
智能合约400的该组代码指令在确认验证时基于匹配来执行450订单。例如,智能合约400可以使用兑换服务器120的公钥对数字签名进行解密以生成消息的明文的另一个副本。智能合约400将生成的副本与确认中包括的消息副本进行比较以验证确认中包括的匹配是真实由兑换服务器120发送的。智能合约400还可以通过将该信息和与兑换服务器区块链125分离的另一个源上发布的信息进行比较来进一步两次验证信息。
智能合约通过在匹配中的两个用户之间兑换BCDR的所有权来执行450订单。该组代码指令可以生成区块链交易的条目。区块链交易指定区块链存托凭证从用户405的地址转移到与第二用户相关联的兑换服务器区块链125的另一区块链地址。相同的交易或单独的条目还可以指定用户405意欲获得的资产被转移到用户405的区块链地址。智能合约还可以计算匹配的交易费用。交易费用可以从托管的BCDR中扣除,并且通过区块链中的条目记录被传输到交易费用的收款人地址。收款人地址可以是兑换服务器120的地址。
智能合约400将交易广播455到兑换服务器区块链125的网络,以便将交易记录在区块链上。兑换服务器120可以检查460在兑换服务器区块链125上生成的新区块。在确认区块链上的交易记录之后,兑换服务器120可以向用户405传输465订单确认,并且反映与用户405相关联的账本中的用户帐户余额变化。
示例跨链存托过程
图5是描绘根据实施例的跨链存托过程的示例过程中的数据和消息流的流程图。存托过程可以允许被记录在外部区块链130上的外部区块链单元由存托凭证表示,并且在兑换服务器区块链125上进行交易。这使得外部区块链单元能够受益于兑换服务器区块链125的各种优势,诸如高交易和确认吞吐量以及订单的快速匹配。一般而言,兑换服务器120或任何合适的一方可以设计并且记录兑换服务器区块链125上的智能合约502和外部区块链130上的另一智能合约504。记录智能合约502和智能合约504的各方可以是同一方或不同方,并且也可以是兑换服务器120、其他兑换服务器或任何一方。一般而言,在存托过程中,智能合约504从用户505接收一数量的外部区块链单元的存托请求。智能合约502也可以接收该存托请求。智能合约502继而验证一数量的外部区块链单元到存托地址的转移被记录在外部区块链130上。在验证时,智能合约502引起BCDR在兑换服务器区块链125创建的广播以表示外部区块链单元的存入数量。图5中的智能合约502可以是或可以不是图4中的相同智能合约400。
图5中所示的存托过程可以以完全去中心化的方式或以半去中心化的方式在两个智能合约502和504之间完成图5的交易。例如,在一个实施例中,两个智能合约502和504之间的通信可以通过两个区块链125和130之间的任何合适的跨链通信协议直接在两个合约之间进行。在另一实施例中,智能合约502和504的一端或两端上的通信可以通过一台或多台预言机进行。在又一实施例中,智能合约502和504之间的通信可以通过诸如兑换服务器120之类的中心化服务器来促进。例如,服务器可以监控被记录在区块链125和130中的条目,并且转发相关条目或者从一个区块链125或130到被记录在另一个区块链125或130上的智能合约502或504的通信。
作为存托过程的示例,用户505可以将诸如区块链单元之类的资产的存托请求510传输到智能合约504。用户505可以表示用户与用户曾经使用过的任何软件应用程序完成存托过程。一种可能的软件应用程序可以是由兑换服务器120发布的应用程序,但也可以使用与兑换服务器120无关的其他软件应用程序。存托请求510可以包括指定请求的值和附加信息,诸如资产的标识符和资产的数量。存托请求510可以采用与智能合约504的代码指令中阐述的条件兼容的格式以便触发智能合约504。在各种实施例中,存托请求510可以包括不同的、更少的或附加的识别信息。
智能合约502还可以接收存托请求515的版本,该版本可以直接从用户505发送、通过预言机传输、由兑换服务器120转发,或者由智能合约504转发。存托请求515的版本可以是存托请求510本身、存托请求510的摘要、与智能合约502兼容的转换格式的存托请求、或者具有附加信息的存托请求。存托请求515的版本可以包括用户505到智能合约502的唯一标识符。标识符可以是用户515在兑换服务器区块链125上的地址。示例唯一账户标识符还可以包括用户账户的公共区块链地址、用户帐户公钥的版本、用户帐户名称的散列、帐户名称本身或任何其他合适的唯一标识符。例如,用户帐户的公钥版本可以是公钥的编码版本或公钥的变体。公钥可以被散列,校验,用标题补充等。
存托请求510和515中的每一个可以与指纹相关联。例如,指纹可以与存托请求510的标识信息相关联。存托请求510的标识信息可以被散列以用作指纹。散列过程可以包括将单向函数应用于标识信息以形成固定长度的散列。可以使用常见的散列算法,诸如安全散列算法(SHA)或消息摘要算法(MD)。散列过程还可以包括创建校验、对一些比特进行编码、添加前缀或后缀等。在一个实施例中,在生成指纹时,用户505还可以使用其私钥或自己的秘密(secret)对指纹进行加密,使得只能由用户生成505指纹。指纹可以用作为存托请求510的标识符。指纹中的标识信息还可以包括兑换服务器120的用户账户标识符和/或兑换服务器区块链125上的用户的区块链地址。
基于智能合约504的地址,用户创建用于转移一数量的外部区块链单元的交易条目,并且将交易条目广播520到外部区块链130的网络。该条目可以包括用户505的数字签名。例如,用户505可以使用她的私钥对用户接收外部区块链单元的先前条目进行加密。在一个实施例中,用户505还可以使用她的私钥对存托请求510和/或存托请求510的指纹进行加密,并且包括加密的消息作为条目中包括的数字签名的一部分。该条目可以包括存托请求510的指纹的明文和作为用户数字签名的一部分的指纹的密文。用户505向外部区块链130的网络广播520条目,以便将交易记录在外部区块链130上。该条目指定外部区块链单元到智能合约504的转移。
在用户505广播的条目被记录在外部区块链130上之后,外部区块链单元从用户505转移到智能合约504的区块链地址。可以在外部区块链130上确认存托。智能合约504可以导致向智能合约502传输530存托确认,该智能合约被记录在兑换服务器区块链125上。
可以使用各种合适的方式来引起存托确认的传输。在一个实施例中,两个智能合约502和504可以通过合适的跨链协议进行通信。智能合约504可以通过跨链协议向智能合约502传输存托确认。在另一实施例中,智能合约504和智能合约502可以通过预言机进行通信。在又一实施例中,中心化服务器(例如,兑换服务器120)可以检查包括存托请求指纹的条目。在外部区块链130中的一个条目中显示存托确认之后,服务器可以将存托确认信息转发到智能合约502。
智能合约502可以验证535存托确认。例如,智能合约502可能已经接收到可以包括在存托请求515的版本中的存托请求510的指纹。在接收到存托请求515后,智能合约502可以使虚拟机在兑换服务器区块链125的网络上例行检查被记录在外部区块链130中的条目,直到找到与存托请求相关的条目或直到超时(例如,存托请求的时间到期)为止。智能合约502验证存托请求510中的识别信息中包括的信息。在一些实施例中,智能合约502可以验证用户505的数字签名。智能合约502还可以验证一数量的外部区块链单元被存入。在另一实施例中,可以在中心化服务器(例如,交易所120)的帮助下执行验证。例如,服务器可以验证被记录在外部区块链130上的条目,并且可以将授权连同存托条目发送到智能合约502。取决于智能合约502中的实现和代码指令,服务器的授权可以用作验证。在其他情况下,为了使存托过程尽可能维持去中心化,智能合约502可以在没有中心化服务器参与的情况下验证存托条目。
响应于成功的验证,智能合约502创建指定交易的条目以创建BCDR以表示存入的外部区块链单元的数量。该条目还可以包括创建BCDR的元数据。在一个实施例中,可以根据兑换服务器区块链125的命名空间约定创建BCDR。如果BCDR被限制为只能在兑换服务器120中兑换,则命名空间可以供兑换服务器120使用,使得BCDR可能仅对通过兑换服务器120进行的贸易和交易有效。在一些实施例中,命名空间约定的实施允许兑换服务器120限制BCDR的交易,使得创建的BCDR在一个实施例中只能通过兑换服务器120进行交易。例如,可以创建和记录与智能合约502相关联的对象类。区块链单元类的示例如下所示:
智能合约向兑换服务器区块链125的网络广播540交易以记录条目。交易可以包括将BCDR转移到与用户505相关联的兑换服务器区块链125上的地址。用户505可以检查545在兑换服务器区块链125上生成的新区块。在确认区块链上的交易记录之后,用户505的数字钱包可以确认535余额变化以反映与用户505相关联的账本中区块链单元的变化。
在一些实施例中,所生成的BCDR可分成多个部分。每个部分可以由用户独立交易以将该部分出售给兑换服务器120的不同用户。例如,BCDR可以表示外部区块链中的10个ETH。BCDR的所有者可以将BCDR的表示ETH的单个单位的1/10出售给第一买家,并且将BCDR的其余部分出售给第二买家。在一些情况下,BCDR可以表示外部区块链单元的一个单元。BCDR仍然是可分的,使得用户可以交易该单元的一部分。
示例赎回流程
图6是描绘根据实施例的使用BCDR赎回外部区块链单元的示例过程中的数据和消息流的流程图。赎回过程允许用户将他们的BCDR转换为其他资产,诸如外部区块链单元。在图6中,赎回外部区块链单元的用户可以被称为所有者605。兑换服务器120或任何合适的一方可以在兑换服务器区块链125上设计和记录智能合约602,并且在外部区块链130上设计并记录另一智能合约604。智能合约602和604可以分别是智能合约502和504,或者可以是不同的智能合约。在赎回过程中,智能合约602从所有者接收BCDR的赎回请求。智能合约604还可以接收赎回请求的版本。智能合约604验证BCDR到与智能合约602相关联的地址的转移被记录在兑换服务器区块链125上。在验证时,智能合约604引起一数量的外部区块链单元被转移到外部区块链130上的所有者地址的广播。
类似于图5中的存托过程,赎回过程6可以以完全去中心化的方式或以半去中心化的方式在两个智能合约602和604之间完成。例如,在一个实施例中,两个智能合约602和604之间的通信可以通过两个区块链125和130之间的任何合适的跨链通信协议直接在两个合约之间进行。在另一实施例中,智能合约602和604的一端或两端上的通信可以通过一台或多台预言机进行。在又一实施例中,智能合约602和604之间的通信可以通过诸如兑换服务器120之类的中心化服务器来促进。例如,服务器可以监控被记录在区块链125和130中的条目,并且转发相关条目或者从一个区块链125或130到被记录在另一区块链125或130上的智能合约602或604的通信。
作为赎回过程的示例,所有者605可以将诸如外部区块链单元之类的资产的赎回请求610传输到智能合约602。赎回请求610可以包括指定请求的值和附加信息,诸如资产的标识符和资产的数量。赎回请求610还可包括赎回资产应发送到的外部区块链130的地址。在一些情况下,赎回请求610还可以包括所有者在兑换服务器120处的账户的标识符。在各种实施例中,赎回请求610可以包括不同的、更少的或附加的标识信息。
智能合约604可以接收赎回请求615的版本,该版本可以通过预言机传输,由兑换服务器120转发,或者由智能合约602转发。赎回请求的版本可以是赎回请求610本身、赎回请求的概要、与智能合约602和604兼容的转换格式的赎回请求、或者具有附加信息的赎回请求。赎回请求610及其相关版本615的信息和格式类似于参考图5所讨论的存托请求515的信息和格式。
基于智能合约602的地址,所有者创建用于BCDR传输的交易条目,并且将交易条目广播625到兑换服务器区块链125的网络。该条目可以包括所有者605的数字签名。例如,所有者605可以使用她的私钥对所有者接收BCDR的先前条目进行加密。在一个实施例中,所有者605还可以使用她的私钥对赎回请求610的指纹进行加密,并且包括加密的消息作为条目中包括的数字签名的一部分。该条目可以包括赎回请求610的指纹的明文和密文。所有者605将条目广播625到兑换服务器区块链125的网络,以便将交易记录在兑换服务器区块链125上。该条目指定BCDR到智能合约602的转移。
在所有者605广播的条目被记录在兑换服务器区块链125上之后,BCDR被转移到智能合约602的区块链地址。可以在兑换服务器区块链125上确认该转移。智能合约602可以导致向智能合约604传输630赎回确认,该智能合约被记录在外部区块链130上。
可以使用各种合适的方式来引起赎回确认的传输。在一个实施例中,两个智能合约602和604可以通过合适的跨链协议进行通信。智能合约602可以通过跨链协议向智能合约604传输赎回确认。在另一实施例中,智能合约602和智能合约604可以通过预言机进行通信。在又一实施例中,中心化服务器(例如,兑换服务器120)可以检查包括赎回请求指纹的条目。在兑换服务器区块链125中的一个条目中显示赎回确认之后,服务器可以将赎回确认的信息转发到智能合约604。
智能合约604可以验证635赎回确认。例如,智能合约604可能已经接收到可以包括在赎回请求615的版本中的赎回请求610的指纹。在接收到赎回请求615后,智能合约604可以使虚拟机在外部区块链130的网络上例行检查被记录在兑换服务器区块链125中的条目,直到找到与赎回请求相关的条目或直到超时(例如,赎回请求的时间到期)为止。智能合约604验证赎回请求610中的识别信息中包括的信息。在一些实施例中,智能合约604可以验证所有者605的数字签名。智能合约604还可以验证一定数量的外部区块链单元被赎回。在另一实施例中,可以在中心化服务器(例如,交易所120)的帮助下执行验证。例如,服务器可以验证被记录在兑换服务器区块链125上的条目,并且可以将授权连同赎回条目发送到智能合约604。取决于智能合约604中的实现和代码指令,服务器的授权可以提供用作验证。在其他情况下,为了使赎回过程尽可能维持去中心化,智能合约604可以在没有中心化服务器参与的情况下验证赎回条目。
响应于成功的验证,智能合约604创建一条目,该条目指定将所有者请求的一数量的外部区块链单元从智能合约604的地址转移到可以在赎回请求610中指定的所有者地址的交易。智能合约604将交易广播640到外部区块链130的网络以记录条目。所有者605可以检查645在外部区块链130上生成的新区块以确认完成赎回过程。
示例区块链架构
图7A是示出根据实施例的在区块链上广播和记录的交易链的方框图。图7A中描述的交易可以对应于先前图中描述的任何交易和区块链单元(例如,电子硬币、区块链代币、BCDR等)的转移。
在一些实施例中,区块链是分布式系统。分布式区块链网络可以包括多个节点。每个节点都是参与区块链网络的用户或服务器。在完全公共的区块链中,任何参与者都可以成为区块链的节点。这些节点可以共同用作为:用作区块链的虚拟机的分布式计算系统。在一些实施例中,虚拟机或分布式计算系统可以简称为计算机。区块链网络中的节点可以运行虚拟机的实例,这允许节点就相同指令的执行达成一致。公共区块链的任何用户都可以广播交易以供区块链节点记录。每个用户的数字钱包都与一加密私钥相关联,该加密私钥用于签署交易并且证明区块链单元的所有权。
区块链可以包括:一个或多个智能合约,其包括代码指令以实现一个或多个去中心化应用程序的操作。去中心化应用程序可以在去中心化区块链网络上运行,并且通过一个或多个虚拟机执行代码指令。智能合约可以是在满足条件时执行的代码指令的集合。智能合约还可以包括数据和地址,这允许用户将区块链单元转移到智能合约以执行与区块链单元相关联的一个或多个动作。诸如使用区块链网络上一个或多个节点资源的虚拟机之类的计算机可以执行智能合约的代码指令。
区块链单元的所有权可以通过交易链进行追踪。在图7A中,交易链可以包括第一交易710、第二交易720和第三交易730等。除了链中的第一个交易之外,链中的每个交易可以具有非常相似的结构。链上的第一交易可以由智能合约生成,并且可以追溯到被记录在区块链上的智能合约。虽然每个交易都链接到图7A中的先前交易,但交易不需要被记录在区块链上的连续区块上。例如,记录交易710的区块和记录交易720的区块可以相隔数百甚至数千个区块。先前区块的追溯由当前块记录的先前区块的散列值进行跟踪。
参考图7A中的交易,为了说明,交易720可以被称为当前交易。交易710可以是先前交易,并且交易730可以被称为后续交易。每个交易包括交易数据722、接收者地址724、先前交易的散列726和当前交易的所有者的数字签名728。交易数据722记录当前交易720的实质。例如,交易数据722可以指定一定数量的区块链单元(例如,电子硬币、区块链代币、BCDR等)的转移。在一些实施例中,交易数据722可以包括智能合约的代码指令。
接收者地址724是与接收者的数字钱包的私钥对应的公钥版本。在一个实施例中,接收者地址724是公钥本身。在另一实施例中,接收者地址724通过诸如一些确定性功能之类的一个或多个功能对版本的公钥进行编码。例如,从公钥生成接收者地址724可以包括散列公钥、添加校验、添加一个或多个前缀或后缀、以及对结果比特进行编码。接收者地址724可以是区块链上接收者的数字钱包的唯一标识符。
先前交易726的散列是先前交易710的整个交易数据的散列。同样地,先前交易736的散列是交易720的整个交易数据的散列。可以使用诸如安全散列算法(SHA)或消息摘要算法(MD)之类的散列算法来执行先前交易710。在一些实施例中,与当前交易720相对应的所有者还可以使用所有者的公钥来生成散列。先前交易726的散列提供先前交易710的追溯,并且还保持先前交易710的数据完整性。
在生成当前交易720时,区块链单元当前所有者的数字钱包使用其私钥对交易数据722、接收者地址724和先前交易726的散列的组合进行加密以生成所有者的数字签名728。为了生成当前交易720,当前所有者通过将接收者地址724包括在当前交易720的数字签名728中来指定接收者。区块链单元的后续所有者由接收者地址724确定。换言之,在后续区块730中生成数字签名738的后续所有者由当前交易720指定的接收者地址724固定。为了验证当前交易720的有效性,区块链网络中的任何节点可以追踪回到先前交易710(通过追踪先前交易726的散列)并且定位接收者地址714。接收者地址714对应于数字签名728的公钥。因此,区块链网络中的节点可以使用公钥来验证数字签名728。
区块链单元的所有权的转移可以由区块链单元的所有者继续。为了转移所有权,所有者可以广播包括所有者的数字签名和先前交易的散列的交易。具有可验证数字签名的有效交易和先前交易的正确散列值将通过挖矿过程被记录在区块链的新区块上。
图7B是示出根据实施例的区块链中的多个区块的连接的方框图。除了可能被称为创世区块的第一个区块之外,区块链的每个区块可以具有相似的结构。区块750、760和760可以各自包括先前区块链752的散列、随机数754和多个交易(例如,第一交易756、第二交易758等)。每个交易可以具有图7A中所示的结构。
在区块生成过程中,可以通过挖矿或者投票的方式生成新区块。例如,在一个实施例中,外部区块链130可以通过挖矿过程生成区块,而兑换服务器区块链125可以通过投票过程生成区块。然而,在其他实施例中,外部区块链130和兑换服务器区块链125都可以使用投票或挖矿过程来生成区块。
对于区块链的挖矿过程,区块链系统中的任何节点都可以参与到挖矿过程中。先前区块的散列的生成可以通过试错过程进行。可以使用随机数作为输入的一部分对先前区块(或先前区块的版本,诸如简化版本)的整个数据进行散列。区块链可需要在先前区块的散列中采用某种格式,以便节点将新区块识别为有效。例如,在一个实施例中,先前区块的散列需要以散列中的一定数量的零开始。取决于区块链的实现方式,也可以使用先前区块的其他散列标准。
在投票过程中,区块链系统中的节点可以通过投票来确定新区块的内容。取决于实施例,区块链系统中选定的节点子集或所有节点都可以参与投票。当有多个包括不同交易的候选新区块可用时,节点将投票选择将其中一个区块链接到现有区块。投票可以基于节点的投票权。在一个实施例中,节点在每一轮中可以具有相等的投票权。在另一实施例中,一个或多个投票代币可以被分发到一个或多个节点。特定轮投票代币的持有者可拥有该轮投票权或更多投票权。在一轮或多轮之后,投票代币可传递到其他节点。例如,可以随机、半随机或以预定方式确定投票代币的传递。使用投票过程生成区块,也是去中心化的过程,该过程可以让大量的交易在短时间内被记录下来,并且避免挖矿过程中的延迟。
作为使用挖矿的区块生成过程的示例,在生成先前区块762的散列时,节点可以将先前区块750的版本与随机数随机组合以生成散列。由于随机数,生成的散列在某种程度上是随机数值。节点将生成的散列与区块链系统的标准进行比较,以检查是否满足标准(例如,生成的散列是否以散列中的特定数目的零开头)。如果生成的散列不满足标准,则节点会尝试另一随机数来生成另一散列。对区块链网络中的不同节点重复该过程,直到其中一个节点找到满足标准的散列为止。用于生成令人满意的散列的随机数是随机数764。首先生成散列762的节点还可以选择将广播到区块链网络的哪些交易包括在区块760中。节点可以检查交易有效性(例如,交易是否可以追溯到之前记录的交易以及交易生成者的数字签名是否有效)。该选择还可以取决于待记录的广播交易的数目以及可以在交易中指定的费用。例如,在一些实施例中,每个交易可以与用于使交易被记录的费用(例如,矿工费)相关联。在选择交易并且固定区块760的数据之后,区块链网络中的节点重复试错过程,以通过尝试不同的随机数来生成先前区块772的散列。在使用投票来生成新区块的实施例中,可能不需要随机数。新区块可以通过包括先前区块的散列来链接到先前区块。
可以通过块生成过程继续生成新区块。当广播交易被记录在区块上时,区块链单元(例如,电子硬币、区块链代币、BCDR等)的交易完成。在一些实施例中,当交易被多重验证时,交易被视为已结算。当有多个后续区块生成并且链接到记录交易的区块时,交易被多重验证。
在一些实施例中,交易756、758、766、768、776、778等中的一些可以包括一个或多个智能合约。记录的智能合约的代码指令可被记录在区块上并且通常是不可变的。当满足条件时,触发智能合约的代码指令。代码指令可以使计算机(例如,区块链的虚拟机)执行一些动作,诸如生成区块链单元并且将记录生成的交易广播到区块链网络进行记录。
计算机器架构
图8是示出能够从计算机可读介质读取指令并且在处理器(或控制器)中执行它们的示例计算机器的组件的方框图。本文描述的计算机可以包括图8中所示的单个计算机器、虚拟机、包括图8中所示的多个计算机器节点的分布式计算系统,或计算设备的任何其他合适的布置。
举例来说,图8示出了计算机系统800的示例形式的计算机器的图解表示,其中可以执行指令824(例如,软件、程序代码或机器代码),这些指令可以被存储在计算机可读介质中以用于使机器执行本文讨论的任何一个或多个过程。在一些实施例中,计算机器作为独立设备操作或者可以连接(例如,联网)到其他机器。在联网部署中,机器可以在服务器-客户端网络环境中作为服务器机器或客户端机器运行,或者作为对等(或分布式)网络环境中的对等机器运行。
图8中描述的计算机器的结构可以对应于图1和图2中所示的任何软件、硬件或组合组件,包括但不限于用户设备110、兑换服务器120、区块链网络的节点、以及图2中所示的各种引擎、接口、终端和机器。虽然图8示出了各种硬件和软件元件,但图1和图2中描述的组件中的每一个都可以包括附加或更少的元件。
举例来说,计算机器可以是个人计算机(PC)、平板电脑、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、智能手机、网络设备、网络路由器、物联网(IoT)设备、交换机或桥接器,或能够执行指令824的任何机器,该指令指定该机器要采取的动作。此外,虽然仅示出了单个机器,但术语“机器”也应被视为包括单独或联合执行指令824以执行本文讨论的任何一种或多种方法的机器的任何集合。
示例计算机系统800包括一个或多个处理器(通常为处理器802)(例如,中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器(DSP)、一个或多个专用集成电路(ASIC)、一个或多个射频集成电路(RFIC)或这些的任何组合)、主存储器804和静态存储器806,它们被配置成经由总线808相互通信。计算机系统800还可以包括图形显示单元810(例如,等离子显示面板(PDP)、液晶显示器(LCD)、投影仪或阴极射线管(CRT))。计算机系统800还可以包括字母数字输入设备812(例如,键盘)、光标控制设备814(例如,鼠标、轨迹球、操纵杆、运动传感器或其他指向仪器)、存储单元816、信号生成设备818(例如,扬声器)和网络接口设备820,它们也被配置成经由总线808进行通信。
存储单元816包括计算机可读介质822,在该计算机可读介质上存储有具体实施本文描述的任何一种或多种方法或功能的指令824。指令824在由计算机系统800执行期间也可以完全或至少部分地驻留在主存储器804内或处理器802内(例如,在处理器的高速缓冲存储器内),主存储器804和处理器802也构成计算机可读介质。可以经由网络接口设备820通过网络826传输或接收指令824。
虽然计算机可读介质822在示例实施例中被示为单个介质,但术语“计算机可读介质”应被视为包括能够存储指令(例如,指令824)的单个介质或多个介质(例如,中心化式或分布式数据库,或相关联的高速缓存和服务器)。计算机可读介质可以包括能够存储由机器执行的指令(例如,指令824)并且使机器执行本文公开的任何一种或多种方法的任何介质。计算机可读介质可以包括但不限于呈固态存储器、光学介质、磁介质和诸如信号或载波之类的瞬态介质形式的数据储存库。
其他配置注意事项
某些实施例在本文中被描述为包括逻辑或多个组件、引擎、模块或机构,例如,如图2中所示。引擎可以构成软件模块(例如,在计算机可读介质上具体实施的代码)或硬件模块。硬件引擎是能够执行某些操作并且可以以某种方式配置或布置的有形单元。在示例实施例中,一个或多个计算机系统(例如,独立的客户端或服务器计算机系统)或计算机系统的一个或多个硬件引擎(例如,处理器或一组处理器)可以由软件(例如,应用程序或应用程序部分)配置成硬件引擎,用于执行本文描述的某些操作。
在各种实施例中,可以机械地或电子地实现硬件引擎。例如,硬件引擎可以包括永久配置的专用电路或逻辑(例如,作为专用处理器,诸如现场可编程门阵列(FPGA)或专用集成电路(ASIC))以执行某些操作。硬件引擎还可以包括由软件临时配置以执行某些操作的可编程逻辑或电路(例如,包括在通用处理器或另一可编程处理器内)。将理解,以机械方式、在专用和永久配置的电路中或在临时配置的电路(例如,由软件配置)中实现硬件引擎的决定可能由成本和时间注意事项所驱动。
本文描述的示例方法的各种操作可以至少部分地由一个或多个处理器(例如,处理器802)执行,这些处理器被临时配置(例如,通过软件)或永久配置成执行相关操作。无论是临时配置还是永久配置,此类处理器都可以构成处理器实现的引擎,其操作以执行一个或多个操作或功能。在一些示例实施例中,本文所指的引擎可以包括处理器实现的引擎。
某些操作的执行可以被分布在一个或多个处理器之间,不仅驻留在单个机器内,而且还跨多个机器部署。在一些示例实施例中,一个或多个处理器或处理器实现的模块可以位于单个地理位置中(例如,在家庭环境、办公室环境或服务器群内)。在其他示例实施例中,一个或多个处理器或处理器实现的模块可以被分布在多个地理位置上。
在阅读本发明后,本领域技术人员将通过本文公开的原理理解用于类似系统或过程的另外的替代结构和功能设计。因此,虽然已经示出和描述了特定实施例和应用程序,但是应当理解,所公开的实施例不限于本文公开的精确构造和组件。在不脱离所附权利要求限定的精神和范围的情况下,可以对本文公开的方法和设备的布置、操作和细节进行对本领域技术人员而言显而易见的各种修改、改变和变更。
本领域技术人员将理解,在不脱离本发明的广泛一般范围的情况下,可以对上述实施例进行多种变更和/或修改。因此,本实施例在所有方面都被视为说明性的而非限制性的。
Claims (20)
1.一种计算机实现的方法,包括:
通过第一区块链从用户接收用于请求兑换区块链存托凭证的第一订单,所述区块链存托凭证被记录在所述第一区块链上作为被记录在第二区块链上的外部区块链单元的存托凭证;
验证条目被记录在所述第一区块链上,所述条目指定所述区块链存托凭证被发送到第一智能合约的托管地址,所述第一智能合约包括被记录在所述第一区块链上的第一组代码指令,代码指令按照所述第一订单来维护所述区块链存托凭证的托管;
由兑换服务器将所述第一订单与第二订单匹配以生成匹配;以及
向所述第一智能合约传输对所述匹配的确认,以使所述代码指令生成要被记录在所述第一区块链上的区块链交易的广播,所述区块链交易指定将所述区块链存托凭证从所述用户的地址转移到所述第一区块链的另一区块链地址。
2.根据权利要求1所述的计算机实现的方法,其中所述兑换服务器是中心化的。
3.根据权利要求1或2所述的计算机实现的方法,其中所述第一区块链是去中心化的。
4.根据权利要求1、2或3所述的计算机实现的方法,其中被记录在所述第一区块链上的该组代码指令被不变地存储在所述第一区块链中。
5.根据前述权利要求中任一项所述的计算机实现的方法,其中根据所述第一区块链的命名空间约定来记录所述区块链存托凭证,所述命名空间约定供所述兑换服务器使用。
6.根据前述权利要求中任一项所述的计算机实现的方法,其中所述第一订单以由所述第二区块链生成的所述外部区块链单元的数量表示。
7.根据前述权利要求中任一项所述的计算机实现的方法,其中响应于被发送到第二组指令的存托确认,由第二智能合约在所述第一区块链上发行所述区块链存托凭证,所述第二智能合约包括被记录在所述第一区块链上的所述第二组指令,所述存托确认确认所述外部区块链单元被转移到所述第二区块链上的存托地址。
8.根据前述权利要求中任一项所述的计算机实现的方法,其中所述第一区块链通过投票过程生成新区块,并且所述第二区块链通过挖矿过程生成新区块。
9.根据前述权利要求中任一项所述的计算机实现的方法,其中所述区块链存托凭证通过以下操作来发行:
接收一数量的所述外部区块链单元的存托请求;
将所述存托请求传输到被记录在所述第一区块链上的第二智能合约,其中所述第二智能合约验证所述数量的所述外部区块链单元到存托地址的转移被记录在所述第二区块链上,并且其中所述智能合约导致在所述第一区块链上广播所述区块链存托凭证的创建。
10.根据前述权利要求中任一项所述的计算机实现的方法,其中所述区块链存托凭证能够通过以下操作赎回:
从所有者接收对所述区块链存托凭证的赎回请求;
将所述赎回请求传输到被记录在所述第二区块链上的第二智能合约,其中所述第二智能合约验证所述区块链存托凭证到与所述第一智能合约相关联的地址的转移被记录在所述第一区块链上,并且其中所述智能合约导致在所述第二区块链上广播一数量的所述外部区块链单元到所述所有者的地址的转移。
11.一种存储程序代码的计算机可读介质,所述程序代码包括被记录在第一区块链上的代码指令,所述代码指令在被执行时使一个或多个处理器执行包括以下操作的步骤:
接收待托管的区块链存托凭证,所述托管按照第一订单进行维护,由用户创建的所述第一订单用于请求兑换所述区块链存托凭证,所述区块链存托凭证被记录在所述第一区块链上作为被记录在第二区块链上的外部区块链单元的存托凭证;
从兑换服务器接收所述第一订单与第二订单之间的匹配;
响应于所述匹配,生成要被记录在所述第一区块链上的区块链交易的广播,所述区块链交易指定将所述区块链存托凭证从所述用户地址转移到所述第一区块链的另一区块链地址。
12.根据权利要求11所述的计算机可读介质,其中所述兑换服务器是中心化的。
13.根据权利要求11或12所述的计算机可读介质,其中所述第一区块链是去中心化的。
14.根据权利要求11、12或13所述的计算机可读介质,其中所述代码指令的组作为智能合约被记录在所述第一区块链上,所述智能合约被不变地存储在所述第一区块链中。
15.根据权利要求11至14中任一项所述的计算机可读介质,其中所述第一区块链通过投票过程生成新区块,并且所述第二区块链通过挖矿过程生成新区块。
16.根据权利要求11至15中任一项所述的计算机可读介质,其中所述代码指令在被执行时进一步使所述一个或多个处理器执行包括以下操作的附加步骤:
从所有者接收对所述区块链存托凭证的赎回请求;
验证所述区块链存托凭证到返回地址的转移被记录在所述第一区块链上;
使得被记录在所述第二区块链上的第二组代码指令在所述第二区块链上广播一数量的所述外部区块链单元到所述所有者的地址的转移。
17.一种系统,包括:
兑换服务器,被配置成:
通过第一区块链从用户接收用于请求兑换区块链存托凭证的第一订单,所述区块链存托凭证被记录在所述第一区块链上作为被记录在第二区块链上的外部区块链单元的存托凭证,
验证条目被记录在所述第一区块链上,所述条目指定所述区块链存托凭证被发送到托管地址,以及
将所述第一订单与第二订单匹配以生成匹配;以及
与所述兑换服务器通信的一组代码指令,该组代码指令被记录在所述第一区块链上,该组代码指令在被执行时使一个或多个处理器:
从所述兑换服务器接收对所述匹配的确认,
生成要被记录在所述第一区块链上的区块链交易的广播,所述区块链交易指定将所述区块链存托凭证从所述用户的地址转移到所述第一区块链的另一区块链地址。
18.根据权利要求17所述的系统,其中所述兑换服务器是中心化的,并且所述第一区块链是去中心化的。
19.根据权利要求17或18所述的系统,其中所述区块链存托凭证是根据所述第一区块链的命名空间约定而被记录的,所述命名空间约定供所述兑换服务器使用。
20.根据权利要求17、18或19所述的系统,其中响应于被发送到智能合约的存托确认,由被记录在所述第一区块链上的所述智能合约在所述第一区块链上发行所述区块链存托凭证,所述存托确认确认所述外部区块链单元在所述第二区块链上被转移到所述第二区块链的存托地址。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962799662P | 2019-01-31 | 2019-01-31 | |
US62/799,662 | 2019-01-31 | ||
US16/578,176 US11481375B2 (en) | 2019-01-31 | 2019-09-20 | Point-to-point distributed decentralized system |
US16/578,176 | 2019-09-20 | ||
PCT/IB2020/050767 WO2020157708A2 (en) | 2019-01-31 | 2020-01-31 | Point-to-point distributed decentralized system |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113646765A true CN113646765A (zh) | 2021-11-12 |
Family
ID=71836484
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080023760.8A Pending CN113646765A (zh) | 2019-01-31 | 2020-01-31 | 点对点分布式去中心化系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11481375B2 (zh) |
EP (1) | EP3918505A4 (zh) |
CN (1) | CN113646765A (zh) |
WO (1) | WO2020157708A2 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11374935B2 (en) * | 2016-02-11 | 2022-06-28 | Bank Of America Corporation | Block chain alias person-to-person resource allocation |
WO2020164738A1 (en) * | 2019-02-15 | 2020-08-20 | Blocksettle Ab | Method and system for settling a blockchain transaction |
US11170128B2 (en) * | 2019-02-27 | 2021-11-09 | Bank Of America Corporation | Information security using blockchains |
CA3153011A1 (en) * | 2019-09-10 | 2021-03-25 | Currency Com Limited | Distributed blockchain-type implementations configured to manage tokenized digital assets and improved electronic wallets, and methods of use thereof |
WO2021063030A1 (zh) * | 2019-09-30 | 2021-04-08 | 东南大学 | 一种区块链增强的开放物联网接入架构 |
EP3769235B1 (en) * | 2019-11-13 | 2022-07-06 | Alipay (Hangzhou) Information Technology Co., Ltd. | Dynamic blockchain data storage based on error correction code |
CN112052021A (zh) * | 2020-08-12 | 2020-12-08 | 中钞信用卡产业发展有限公司杭州区块链技术研究院 | 联盟区块链升级的方法、装置、设备及存储介质 |
CN112527893B (zh) * | 2020-11-26 | 2022-06-07 | 暨南大学 | 一种基于sgx的安全高效跨链服务操作方法及系统 |
US11133936B1 (en) * | 2021-03-22 | 2021-09-28 | Matthew Branton | Methods and systems for introducing self-contained intent functionality into decentralized computer networks |
US20230186301A1 (en) * | 2021-12-15 | 2023-06-15 | Timothy J. Enneking | Tokenization of the appreciation of assets |
US11658833B1 (en) | 2022-12-06 | 2023-05-23 | Citibank, N.A. | Systems and methods for conducting cryptographically secure actions in public, non-permissioned blockchains using bifurcated self-executing programs |
US11770263B1 (en) * | 2022-12-06 | 2023-09-26 | Citibank, N.A. | Systems and methods for enforcing cryptographically secure actions in public, non-permissioned blockchains using bifurcated self-executing programs comprising shared digital signature requirements |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170046689A1 (en) * | 2015-07-14 | 2017-02-16 | Fmr Llc | Crypto Voting and Social Aggregating, Fractionally Efficient Transfer Guidance, Conditional Triggered Transaction, Datastructures, Apparatuses, Methods and Systems |
JP2018536957A (ja) * | 2015-11-30 | 2018-12-13 | シェイプシフト・アーゲーShapeShift AG | ブロックチェーン資産取引におけるセキュリティを向上させるためのシステム及び方法 |
EP3411824B1 (en) * | 2016-02-04 | 2019-10-30 | Nasdaq Technology AB | Systems and methods for storing and sharing transactional data using distributed computer systems |
US10740844B2 (en) * | 2016-09-26 | 2020-08-11 | Shapeshift Ag | System and method of managing trustless asset portfolios |
WO2018145024A1 (en) * | 2017-02-03 | 2018-08-09 | Terry Aronson | System and method for asset backed crypto-currency |
US20210082045A1 (en) * | 2017-06-01 | 2021-03-18 | Etoro Group Ltd. | Smart contract for copy trading |
US10944546B2 (en) * | 2017-07-07 | 2021-03-09 | Microsoft Technology Licensing, Llc | Blockchain object interface |
US20190027237A1 (en) * | 2017-07-21 | 2019-01-24 | Patientory, Inc. | Blockchain network for secure exchange of healthcare information |
US20200366495A1 (en) * | 2018-01-29 | 2020-11-19 | Ubiquicorp Limited | Proof of majority block consensus method for generating and uploading a block to a blockchain |
US11049148B2 (en) * | 2018-06-01 | 2021-06-29 | Concord Technologies Inc. | User control of anonymized profiling data using public and private blockchains in an electronic ad marketplace |
CA3103611A1 (en) * | 2018-06-12 | 2019-12-19 | The Vanguard Group, Inc. | Device, method, and computer readable medium for large scale electronic processing |
US11276056B2 (en) * | 2018-08-06 | 2022-03-15 | Inveniam Capital Partners, Inc. | Digital contracts in blockchain environments |
US20200074552A1 (en) * | 2018-08-28 | 2020-03-05 | Novera Capital Inc. | Systems and methods for short and long tokens |
US11288280B2 (en) * | 2018-10-31 | 2022-03-29 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for implementing consumer data validation, matching, and merging across tenants with optional verification prompts utilizing blockchain |
-
2019
- 2019-09-20 US US16/578,176 patent/US11481375B2/en active Active
-
2020
- 2020-01-31 CN CN202080023760.8A patent/CN113646765A/zh active Pending
- 2020-01-31 EP EP20747592.2A patent/EP3918505A4/en not_active Withdrawn
- 2020-01-31 WO PCT/IB2020/050767 patent/WO2020157708A2/en unknown
Also Published As
Publication number | Publication date |
---|---|
EP3918505A4 (en) | 2022-09-28 |
WO2020157708A3 (en) | 2020-09-10 |
US20200250168A1 (en) | 2020-08-06 |
US11481375B2 (en) | 2022-10-25 |
WO2020157708A2 (en) | 2020-08-06 |
EP3918505A2 (en) | 2021-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11250507B2 (en) | Trusted tokenized transactions in a blockchain system | |
CN113646765A (zh) | 点对点分布式去中心化系统 | |
US11785079B2 (en) | Free storage protocol for blockchain platform | |
US11637709B2 (en) | Split-key wallet access between blockchains | |
US11625694B2 (en) | Blockchain-based exchange with tokenisation | |
CN108781161B (zh) | 用于控制和分发数字内容的区块链实现的方法 | |
CN108292401B (zh) | 安全的数字数据操作 | |
JP2022119949A (ja) | スマートコントラクトに基づく自動給与支払方法及びシステムをもたらす、ブロックチェーン上の給与支払に関連付けられた暗号通貨の効率的な転送のための方法及びシステム | |
US20230316272A1 (en) | Divisible tokens | |
CN114008969A (zh) | 包含在区块链中的交易的延展性 | |
US20220337427A1 (en) | Cryptographically linked identities | |
JP2022532889A (ja) | 複数インプットトランザクション | |
CN113994628A (zh) | 通过侧信道流式传输部分数据 | |
CN114531941A (zh) | 多标准区块链协议 | |
JP2023502057A (ja) | ブロックチェーントランザクションを使用したアイデンティティ検証プロトコル | |
CN115136542A (zh) | 智能合约 | |
US20230246822A1 (en) | Systems and methods for providing secure, encrypted communications across distributed computer networks by coordinating cryptography-based digital repositories in order to perform blockchain operations in decentralized applications | |
US20230246817A1 (en) | Systems and methods for generating secure, encrypted communications across distributed computer networks for authorizing use of cryptography-based digital repositories in order to perform blockchain operations in decentralized applications | |
US20230245111A1 (en) | Systems and methods for requesting secure, encrypted communications across distributed computer networks for authorizing use of cryptography-based digital repositories in order to perform blockchain operations in decentralized applications | |
WO2021060340A1 (ja) | 取引情報処理システム | |
CN114631110A (zh) | 使用区块链交易分配数字资产 | |
US11677728B2 (en) | Secure authorization and transmission of data between trustless actors | |
Kanakam et al. | Intramural Analysis of Blockchain | |
CN115836314A (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 |