CN114902204A - 分布式区块链交易系统 - Google Patents

分布式区块链交易系统 Download PDF

Info

Publication number
CN114902204A
CN114902204A CN202080067050.5A CN202080067050A CN114902204A CN 114902204 A CN114902204 A CN 114902204A CN 202080067050 A CN202080067050 A CN 202080067050A CN 114902204 A CN114902204 A CN 114902204A
Authority
CN
China
Prior art keywords
blockchain
transaction
coordinator
user
contract
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
CN202080067050.5A
Other languages
English (en)
Inventor
钱玉明
弗朗索瓦·杜马斯
帕特里夏·波佩特-福捷
吉恩-菲利普·博德特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zewu Technology Co ltd
Original Assignee
Zewu Technology Co 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 Zewu Technology Co ltd filed Critical Zewu Technology Co ltd
Publication of CN114902204A publication Critical patent/CN114902204A/zh
Pending legal-status Critical Current

Links

Images

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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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
    • 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/2308Concurrency control
    • G06F16/2336Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
    • G06F16/2343Locking methods, e.g. distributed locking or locking implementation details
    • 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/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

公开了一种用于实现分布式区块链交易的系统,该系统包括:包括第一节点的第一参与者区块链;包括第二节点的第二参与者区块链;以及包括协调者节点的协调者区块链。分布式交易涉及第一参与者区块链上的第一交易,以及第二参与者区块链上的第二交易。协调者区块链适于:在协调者节点与第一节点和第二节点之间传送安全消息;以及维护全局状况值以协调第一交易和第二交易,使得第一交易和第二交易全部被一起提交或回滚,从而在分布式交易结束时使系统处于一致状态。

Description

分布式区块链交易系统
技术领域
本申请总体上涉及区块链系统,并且具体地涉及采用多个区块链的分布式区块链交易系统。
背景技术
传统的关系数据库管理系统已用于许多类别的应用,这些应用通常支持即使在错误的情况下也应当保证有效性的交易。交易是可以同时发生的单独的、不可分割的操作。交易处理系统管理交易的并发处理、实现数据的共享、确保数据的完整性并且管理交易执行的优先级。
因此,这样的交易由被称为原子性、一致性、隔离性和持久性(简称为ACID)的一组属性表征。原子性意味着对数据的所有改变都如它们为单个操作一样执行。一致性要求数据在交易开始和交易结束时处于一致状态。隔离性意味着交易的中间状态对其他交易是不可见的。持久性意指在交易成功完成后,即使在系统故障的情况下对数据的改变也持续存在并且不被撤销。
支持交易的应用中的基本要求,其中一个操作涉及多个数据库操作,并且这些记录必须全部成功或一起失败。例如,资金从一个银行账户向另一个的转移——即使涉及诸如从一个账户取款和计入另一账户的多次改变——也是单个数据库交易。
另一方面,区块链交易经由共识(consensus)进行工作。区块链技术借助于集体参与和参与者之间的共识来维护可靠的交易记录。区块链通常被理解和描述为分布式账本技术(DLT),由被称为节点的多个联网设备共同维护。因此,区块链可以被认为是分布式数据库系统。
涉及区块链而不是数据库的分布式交易涉及若干挑战。本发明的目的是解决这些挑战中的至少一些以确保跨多个区块链的交易提交或回滚,使得多个区块链的系统保持在满足ACID测试的一致状态。
在协调跨不同区块链的操作方面已经进行了一些尝试。突出的示例是原子交换。原子交换在2017年9月左右首次引起关注,当时Decred和Litecoin进行了第一次原子交换。从那时起,一些类似的服务已经通过去中心化交易所或诸如Shapeshift、0x和Altcoin.io的协议启用。
原子交换是自执行的智能合约。
原子交换有其自身的问题,包括可扩展性的缺乏。
出于该原因,这样的原子交换技术和协议未能提供流动的、去中心化的、可扩展的和区块链不可知的解决方案。
对于交易原子性和一致性,单个区块链上的交易已通过其自身复杂的共识机制得到解决。对于交易隔离性,由于每个区块链智能合约的执行都是序列化的,因此不会出现该问题。由于区块链是永久的、不可变的记录,因此满足了持久性。然而,存在许多不同类型的区块链。由于区块链本身的特性,因此实现跨链互操作具有挑战性,并且每个区块链通常没有足够的资源或接口来支持这样的操作。
因此,需要减轻以上提及的问题中的至少一些的改进的系统和方法。
发明内容
本发明的实施方式提供了基于分布式区块链的交易系统和方法,其允许跨多个互不相关的区块链节点进行交易,这些交易要么全部同时成功,要么同时失败。
根据本发明的一个方面,提供了一种用于分布式区块链交易的系统。该系统包括:包括第一节点的第一参与者区块链;包括第二节点的第二参与者区块链;以及包括协调者节点的协调者区块链;其中,分布式交易涉及第一参与者区块链上的第一交易和第二参与者区块链上的第二交易,并且其中,协调者区块链适于:在协调者节点与第一节点和第二节点之间传送安全消息;以及维护全局状况值以协调第一交易和第二交易,使得第一交易和第二交易全部被一起提交或回滚,从而在所述分布式交易结束时使所述系统处于一致状态。
根据本发明的一个方面,提供了一种使用系统在第一用户与第二用户之间执行分布式区块链交易的方法,该系统包括:包括第一合约的第一参与者区块链;包括第二合约的第二参与者区块链;以及包括第三合约的协调者区块链,分布式交易涉及第一链上的第一交易和第二链上的第二交易,该方法包括在协调者区块链处:生成随机数种子C和被计算为HC=哈希(种子C)的哈希HC;从第一参与者区块链接收被计算为H1=哈希(RA+种子A +HC)的哈希H1,其中,种子A是在第一链处生成的随机数种子,并且RA是在第一链上执行的第一合约的结果;从第二参与者区块链接收被计算为H2=哈希(RB+种子B+HC)的哈希H2,其中,种子B是在第二链处生成的随机数种子,并且RB是在第二链上执行的第二合约的结果;计算哈希H3=哈希(H1+H2);执行种子C、H1、H2和H3与第三合约的提交功能;收集并验证种子A、种子B、种子C和哈希值H1、H2、H3;在验证了种子A和H1时,在第一参与者区块链上提交第一交易;以及在验证了种子B和H2时,提交第二参与者区块链的操作。
根据本发明的一个方面,提供了一种使用系统在第一用户与第二用户之间执行分布式区块链交易的方法,该系统包括:包括第一合约的第一参与者区块链;包括第二合约的第二参与者区块链;以及包括第三合约的协调者区块链,分布式交易涉及第一链上的第一交易和第二链上的第二交易,该方法包括在第一参与者区块链处:a)从协调者区块链接收随机数种子C和被计算为HC=哈希(种子C)的哈希HC;b)生成被计算为H1=哈希(RA+种子A+HC)的哈希H1,其中,种子A是在第一链处生成的随机数种子,并且RA是在第一链上执行的第一合约的结果;c)用种子C检查H1;以及在检查成功时释放种子A。
根据本发明的一个方面,提供了一种使用系统在第一用户与第二用户之间执行分布式区块链交易的方法,该系统包括:包括第一合约的第一参与者区块链;包括第二合约的第二参与者区块链;以及包括第三合约的协调者区块链,分布式交易涉及第一链上的第一交易和第二链上的第二交易,该方法包括在第一参与者区块链处:从协调者区块链接收随机数种子C和被计算为HC=哈希(种子C)的哈希HC;生成被计算为H2=哈希(RB+种子B+HC)的哈希H2,其中,种子B是在第二参与者区块链处生成的随机数种子,并且RB是在所述第二参与者区块链上执行的第二合约的结果;用种子C检查H2;以及在检查成功时释放种子B。
另外,公开了交易欺诈检测机制。
附图说明
附图仅通过示例的方式示出本发明的实施方式,在附图中,
图1是本发明的实施方式的示例性系统的简化示意图,其实现跨多个区块链的分布式交易;
图2简化了跨多个节点的多阶段协调交易的示意性活动图;
图3是根据本发明的示例性实施方式的示例性系统部署架构;
图4是区块链跨链交易的示例性执行流程的图;
图5是合约准备阶段共识的示例性失败过程的图;
图6是描绘用于检测和避免参与者或协调者欺诈的示例性方法的流程图;以及
图7是总结处理交易超时的步骤的流程图。
具体实施方式
本发明的至少一些实施方式解决了与分布式区块链环境中的交易管理有关的问题,该分布式区块链环境涉及多个区块链而不是传统的数据库管理系统。
下面提供本发明的各种实施方式的描述。在本公开内容中,当在本文中结合术语“包括”使用时,词“一(a)”或“一个(an)”的使用可以是指“一个”,但是它也与“一个或多个”、“至少一个”和“一个或多于一个”的含义一致。以单数形式表达的任何元素也包含其复数形式。以复数形式表达的任何元素也包含其单数形式。如本文中所使用的,术语“多个”是指多于一个,例如,两个或更多个、三个或更多个、四个或更多个等。诸如“顶部”、“底部”、“向上”、“向下”、“竖直地”和“横向地”的方向性术语仅用于提供相对参考的目的,并且不旨在对任何物品在使用期间如何定位或者在组件中或相对于环境如何安装提出任何限制。
术语“包括(comprising)”、“具有”、“包括(including)”和“包含”及其语法变型是包括性的或开放式的,并且不排除附加的、未列举的元素和/或方法步骤。当在本文中结合组合物、用途或方法使用时,术语“基本上由……组成”表示可以存在附加的元素、方法步骤或者附加的元素和方法步骤两者,但是这些附加物不会实质上影响所列举的组合物、方法或用途起作用的方式。当在本文中结合组合物、用途或方法使用时,术语“由……组成”排除附加的元素和/或方法步骤的存在。
另外,术语“第一”、“第二”、“第三”等仅用于描述性目的,并且不能被解释为指示或暗示相对重要性。
在本发明的描述中,还应当注意,除非另有明确定义和限制,否则术语“安装”、“链接”和“连接”应当在广义上解释。例如,可以是固定连接,或组装式连接,或一体式连接;硬连线或软连线;可以直接连接,或通过中介间接连接。对于本领域技术人员,上面的术语在本发明中的特定含义可以结合上下文来理解。
在本公开内容中,术语“区块链”和“链”可以互换使用。
在示出本发明的实施方式的附图中,相同或相似的附图标记对应于相同或相似的部分。在本发明的描述中,应当注意,除非另有说明,否则“多个”的含义是指两个或多个。术语“上”、“下”、“左”、“右”、“内”、“外”、“前端”、“后端”、“头”、“尾”的方向或位置,附图中示出的取向或位置关系仅是为了便于描述本发明和简化描述,而不是指示或暗示所指示的设备或元素必须具有特定的取向并且在特定的取向上构造和操作,并且因此不能用作对本发明的限制。
交易提供了将活动中涉及的所有操作并入不可分割的执行单元中的机制。仅当所有操作均成功执行时,才可以提交构成交易的所有操作;如果操作中的任何操作失败,则这导致整个交易的回滚。简单地说,交易提供了“全有或全无”机制。
如上面在背景技术中所述,传统的交易由被称为原子性、一致性、隔离性和持久性(ACID)的一组属性表征。
原子性意味着对数据的所有改变都如它们为单个操作一样执行。
一致性要求数据在交易开始和交易结束时处于一致状态。如果交易成功完成,则系统中的所有改变均正确应用并且系统处于有效状态。如果在交易中发生错误,则系统中的所有改变被自动回滚,并且系统返回到原始状态。
隔离性意味着交易的中间状态对其他交易是不可见的。在并发环境中,当不同的交易同时操纵相同的数据时,每个交易具有其自己的完整数据空间。
持久性意指在交易成功完成后,即使在系统故障的情况下对数据的改变也持续存在并且不被撤销。
在分布式区块链环境中,在操作符合以上提及的ACID测试的意义上,每个链中的操作可以被认为是交易。
目前,现有的跨链交易方案仅支持诸如代币转移的单一类型的操作,其中大部分仅支持两个链之间的交互。不知道是否支持更复杂的交易,包括涉及多于两个链的交易。
在一个示例性实施方式中,提供了跨多个异构区块链系统的分布式交易的交易问题的解决方案,其中与传统的分布式交易环境不同,没有节点是可信的。
由实施方式提供的解决方案涉及解决以下问题:为分布式交易消息提供可信传输机制;确保分布式交易节点操作是可信的;确保分布式交易数据一致性;以及确保分布式交易结果的原子性。
系统架构
在图1中示出了示例性系统的架构的示意性框图。系统包括区块链A、B和C。对于要跨独立区块链执行的分布式交易操作,分布式交易激活每个链上的智能合约,并且每个链上的智能合约操作必须同时成功或同时失败。
一个示例性解决方案是首先变换每个链上的智能合约,并且将原始一次性操作划分成三个阶段。
在被称为“准备阶段”的第一阶段中,智能合约中涉及的所有资源被锁定,以确保在智能合约完全执行之前,其他智能合约或用户不能使用该资源。例如,如果涉及代币,则用户代币从用户账户转移到第三方安全账户(诸如临时协调者账户),并且其他区块链中的资源可以通过使用标签来指示资源被锁定来完成资源锁定。
在被称为“提交阶段”的第二阶段中,各方均已成功完成它们各自的准备阶段。首先,每个节点向协调者区块链101提交合约完成证书,并且协调者验证每个链上的证明以确认每个链均已完成准备阶段,在该准备阶段之后可以进入提交阶段。提交阶段根据智能合约的逻辑要求释放锁定的资源并且完成对应的代币或数据操作。由于在准备阶段中已经将合约相关资源转移到临时协调者账户,因此要求合约发起具有所有节点上的准备阶段级已经成功完成的证明的操作。同时,需要在合约的执行期间验证证明。
在被称为“回滚阶段”的第三阶段中,如果准备阶段中的参与者中的任何参与者未能执行合约准备阶段操作,或者如果任何节点提供了假证书,则不能执行全局交易。相关链执行释放锁定的资源的回滚合约,并且任何受影响数据的值返回到在执行准备阶段合约之前存在的先前状态。
为了确保合约不在临时状态停止,存在超时机制。当提交阶段或回滚阶段未被触发时,每个链用户可以根据协调者区块链101中的记录执行操作(即,提交或回滚)。
交易协调
图2描绘了跨多个节点的多阶段协调交易的示意性活动图。当交易具有多个参与者时,引入第三方交易协调者来协调跨多个节点的分布式交易的执行。主要思想是为每个操作登记对应的确认和/或补偿动作或撤销动作。活动可以被划分成三个阶段:
第一阶段,称为“尝试阶段”,用于检测一致性并且为业务系统保留资源(准隔离)。
第二阶段,称为“确认阶段”,用于确认业务系统的提交。当尝试阶段成功执行并且确认阶段开始时,默认的确认阶段将不会出错。在本实施方式中,只要尝试阶段成功,则确认阶段也必须成功。确认阶段操作满足幂等性。如果确认阶段失败,则需要重试。
第三阶段,称为“取消阶段”,用于取消在检测到业务执行错误的状态下执行的服务,并且保留资源释放。取消阶段操作也满足幂等性。
在一个实施方式中,为了确保系统在阶段或节点崩溃之后保持在一致状态,分布式交易模型记录每个节点中的当前状态。协调者区块链与所有子链交互,并且将全局交易状况记录在协调者区块链上。全局交易状态与每个子链上的交易的状态必须一致。每个子链记录本地交易执行的状态和全局交易哈希码。在本实施方式中,子链不与彼此通信,而仅与协调者通信。
为了确保跨链通信是安全和可靠的,跨链消息通过协调者区块链传递。所有消息均由消息的发送者使用接收者的公钥(即,钱包地址)加密。在接收消息之后,接收者使用其钱包中的私钥来解密消息。因此,可以以这种方式确认每个消息的接收者和内容被加密并安全地传送。钱包的公钥可以在链上验证,而私钥保持私密并且不能被其他任何人获得。
系统部署架构
图3是本公开内容的实施方式的示例性系统的示意图,示出了示例性部署架构。系统包括协调者区块链101和两个参与者区块链102、103。
系统在区块链102中包括本地交易执行器113、用户M的钱包111、用户M的消息代理112。
系统在区块链103中还包括本地交易执行器118、用户N的钱包119、用户N的消息代理120。
系统还包括本地交易合约114,以及用户M、N和P各自的账户115、116、117。
系统还包括本地交易合约121,以及用户M、N和P各自的账户122、123、124。
系统包括协调者执行器127、用户P的钱包125和消息代理126。
系统还包括如下面将描述的节点104、105、106、107、108、109和110。
协调者区块链101用于在参与者与协调者之间传送安全消息。它还记录全局交易的状况。在协调者区块链101上,部署了安全消息合约128和全局交易协调合约129。区块链102用于执行本地合约114。区块链103用于执行本地合约121。
节点104可以具有由用户M触发的本地交易合约,并且用户M可以通过节点104直接访问区块链A或区块链102。例如,如果期望将10个以太币从用户M转移至用户N,则用户M必须被授权调用合约,这是因为私人钱包只能由用户M访问。该节点保管区块链102的数据和用户M的钱包。除了用户M之外,其他用户不应当访问节点104。在准备阶段完成之后,用户M需要向协调者区块链101发送合约状况证明(即,哈希值)。
节点105是区块链102的验证节点,被部署在协调者区域中,并且由协调者操作以验证本地准备阶段交易是否已经在链A或区块链102上完成并提取对应的证据。在提交阶段期间,协调者通过该节点105触发区块链102或区块链A的本地合约的提交或回滚操作。用户P充当协调者用户来通过节点同步区块链A的状况和数据,验证区块链A的本地交易完成状况并触发区块链A上的合约操作。
节点106属于协调者区块链101,但是被部署在用户N的域中。用户N可以通过该节点同步协调者区块链的数据和状况,并且检查其他节点的本地交易的完成的证据。
节点107:链103的合约触发节点107,该节点被部署在用户M的域中。用户M具有该节点的访问权限,并且该节点可以触发本地合约。
节点108:链103验证节点108,该节点属于区块链103但是被部署在协调者区域中,并且由协调者操作以验证本地准备阶段交易是否已经在链A或区块链102上完成并提取对应的证据。在提交阶段期间,协调者通过节点108触发区块链A的本地合约的提交或回滚操作。用户P充当协调者用户来通过节点同步区块链A的状况和数据,验证区块链A的本地交易完成状况并触发区块链A上的合约操作。
节点109:协调者区块链101验证节点109,该节点属于协调者区块链101,但是被部署在用户M的域中。用户M可以通过该节点同步协调者区块链101的数据和状况并检查其他节点的本地交易的完成的证据。
节点110:协调者区块链101的执行节点属于协调者区块链101并且被部署在协调者的域中。用户P充当协调者来通过该节点触发协调者合约,并且然后将全局交易状况及其证据写入协调者区块链101以供节点106、109查询。
用户M的钱包111用于保存用户M的私钥,并且用于实现加密消息传输。
用户M的消息传送代理112随时监听在协调者区块链101中发送至用户M的加密消息。当消息传送代理112从协调者区块链101接收到加密消息时,消息代理112加密钱包中的私钥对。消息被解密,恢复为指令,并移交至本地交易执行器113以用于执行。
用户M的本地执行器113被配置成执行接收到的动作的指令;激活区块链A上的智能合约或检查协调者区块链101上的全局合约状况;或者通过节点106将本地执行结果证书同步至协调者区块链101。
区块链A的本地交易合约114被划分成准备、提交和回滚三部分——其根据全局合约状况分别被调用。准备阶段由用户M调用。提交或回滚由充当协调者的用户P调用。如果超时,则由每个参与者用户调用回滚。
存在包括用户M区块链A的账户115、用户N区块链A的账户116和用户P区块链A的账户117的若干账户。
用户N的命令执行器118被配置成执行接收到的动作的指令;激活区块链B上的智能合约或检查协调者区块链101上的全局合约状况;或者通过109节点将本地执行结果证书同步至协调者区块链101。
用户N的钱包119存储用户N的私钥。当用户N接收到加密消息时,私钥被解密。
用户N的消息传送代理120监听通过链101发送至用户N的信息,并且调用用户N的私钥来解密信息。当需要向协调者发送反馈消息时,模块获得协调者的公钥来加密数据并将其发送至协调者区块链上的消息合约。
区块链B的本地交易合约121被划分成准备、提交、回滚三部分——其根据全局合约状况分别被调用。准备部分由用户N调用。提交或回滚由充当协调者的用户P调用。如果超时,则自动调用回滚。
存在包括用户M区块链B的账户122、用户N区块链B的账户123和用户P区块链B的账户124的若干账户。用户P的钱包125存储用户P的私钥。
使用消息代理126,用户P的消息代理监听在协调者区块链上发送至用户P的消息并执行加密和解密处理。
充当协调者执行器127的用户P激活协调者区块链上的交易协调合约,并且执行每个子链上的每个节点交易的提交或回滚动作。协调者还需要获得和验证每个节点的合约执行证据。
区块链跨链交易
图4描绘了区块链跨链交易的示例性执行流程。使用示例来示出区块链跨链交易的执行流程。假设用户M在第一区块链A(例如,ETHEREUMTM链)上具有1个以太币,并且用户N在第二区块链B(即,EOSTM链)上具有10个EOS。用户想用1个以太币换10个EOS。该跨链交易需要分别在以太坊(Ethereum)和EOS链上执行以下两个交易:在第一以太坊区块链上,用户M向用户N转移1个以太币。在EOS链上,用户N向用户M转移10个EOS。
如上所述,图4描绘了涉及若干步骤或级的区块链跨链交易的执行流程。
在步骤1中:用户P发起分布式交易。这也可以是用户向用户P发送消息以发起分布式交易。
在步骤2中:用户P生成随机数种子并计算种子哈希值。用户P在协调者区块链101上记录分布式交易的开始,并且记录种子和哈希值。
在步骤3中:用户P分别向用户M和用户N发送安全消息。该消息向用户M通知用户N分别在以太网和EOS链上执行合约A中的准备阶段功能和合约B中的准备阶段功能。合约参数是用户P的种子的哈希值和相关交易参数。
在步骤4中:用户M接收该信息。用户M验证全局交易已经在协调者区块链中开始并且参数是正确的。
在步骤5中:用户M在以太网准备阶段中执行转移交易,将用户M的钱包中的1个以太币转移至充当协调者的用户P,生成随机数,计算随机数的哈希值,并且使用哈希值作为参数。该信息被传递至以太网合约参数。哈希值被记录在合约中的以太网链上。
在步骤6中,用户M在成功执行合约时,开始协调者区块链上的分布式交易合约,并且将本地准备阶段交易结果记录在协调者区块链中。协调者区块链显示由用户M生成的随机数。
在步骤7中:用户N在区块链EOS上执行合约准备阶段,将10个EOS从用户N转移至充当协调者的用户P,并且将合约执行状态记录在EOS链上。生成的随机数哈希值也存储在EOS链中。本地准备阶段合约执行和结果与原始随机数相结合,生成新的HASH值H1=HASH(准备阶段结果+原始随机数)以移交至协调者区块链101合约。
在步骤8中:协调者区块链101合约在获得所有参与节点的结果和原始随机数之后,写入协调者区块链101合约的准备阶段的结果。
在步骤9中:协调者区块链101将由所有节点报告的H1哈希值和全局执行结果写入每个参与链合约。在每个参与链上的合约判断与本地随机数一致之后,向协调者揭示本地随机数。
在步骤10中:充当协调者的用户P获得通过每个参与者区块链中通过合约的参与用户M和N生成的随机数,并且将其传递至以太网链上的合约的提交功能并执行它。在提交功能获得随机数之后,验证每个节点的随机数和准备阶段。如果合约状况与先前保存的每个节点的H1哈希值一致,则执行将1个以太币从用户P转移至用户N的动作。在完成提交阶段任务之后,充当协调者的用户P修改协调者区块链101上的全局交易状况。
在步骤11中:充当协调者的用户P获得通过每个参与者区块链中通过合约的参与用户M和N生成的随机数,并且将其传递至以太网链上的合约的提交功能并执行它。在提交功能获得随机数之后,验证每个节点的随机数和准备阶段。如果合约状态与先前保存的每个节点的H1哈希值一致,则执行将1个以太币从用户P转移至用户N的动作。在完成提交阶段任务之后,充当协调者的用户P修改协调者区块链101上的全局交易状况。
在步骤12中:第三方可以通过用户M、N和P调用合约的“验证”操作,并且验证指定的执行器在每个阶段激活全局任务并且确认合约执行是正确的。
在步骤13中:在获得所有参与节点的随机数之后,协调者合约重新计算H=HASH(M+N+HASH(P)),并且确认其与协调者区块链101提交阶段值一致。这将全局分布式交易操作状况设置为完成,并且用信号通知分布式跨链交易的结束。
在步骤14中:如果任何节点未成功执行提交阶段操作,则合约不记录H=HASH(M+N+HASH(P))。在协调者节点收集到所有提交阶段反馈之后,由于无法提交全局交易,因此对应的链上的验证失败。在这种情况下,由于准备阶段动作已经成功执行,因此协调者节点尝试重新运行提交阶段交易直到成功。
在步骤15中:如果任何节点在准备阶段之前故障,则正常协调者节点主动执行回滚阶段合约操作,并且将成功执行的准备阶段动作返回到对应的链中的执行前状态。在该例子中,以太网链上的回滚阶段操作意味着充当协调者的用户P将1个以太币转移回用户M。EOS链上的回滚阶段操作意味着充当协调者的用户P将10个EOS转移回用户N。
在步骤16中:如果所有准备阶段交易均是成功的,但是节点想要终止合约,则系统自动执行提交阶段合约功能。
在步骤17中:如果节点交易的提交阶段或回滚阶段在超时时间段期满之前未被激活,则分布式交易超时失败。协调者根据全局准备阶段执行结果自动执行回滚阶段合约功能或自动执行提交阶段合约操作。
在步骤18中:如果由任何节点发送至其他节点的消息的内容与本地合约执行的结果不匹配,则其他节点可以通过验证原始值和哈希值快速找到并停止执行相关合约。
合约准备阶段的失败过程
图5描绘了合约准备阶段共识的失败过程。
步骤1至步骤7:这些与成功执行过程相同。不同的是,一个链上的交易可能失败。这里假设在EOS链上从10个EOS的用户N到充当协调者的用户P的合约失败。
步骤8:充当协调者的用户P由每个节点通过安全消息通知本地准备阶段合约执行结果。
步骤9:充当协调者的用户P验证每个链的合约执行结果并将结果写入协调者区块链101。
步骤10:由于并非准备阶段操作的所有步骤均是成功的,因此充当协调者的用户P激活每个链上的合约,执行回滚阶段操作,并且提供每个节点的随机数的原始值作为合约输入。
步骤11:如果每个参与链的合约检查合约中记录的HASH值与协调者中传递的原始随机数一致,则合约开始运行。
步骤12:每个合约执行回滚阶段操作。区块链102将1个以太币从充当协调者的用户P转移至用户M。由于合约交易的合约操作失败,因此区块链103未能执行回滚阶段操作。
步骤13:充当协调者的用户P将回滚阶段执行结果写入协调者区块链101。如果任何子链回滚阶段操作失败,则每个子链周期性地重试直到其成功。例如,一种可能的场景是中途执行合约。所有参与者均已将资产转移至充当协调者的用户P,但是用户P挪用了资产,导致回滚阶段资产不足。无法完成回滚阶段动作,则定期重试;只要在某个时刻用户P的账户中有足够的资金,就完成回滚阶段动作。
步骤14:任何参与者可以通过由各方提供的原始随机数来匹配合约过程中记录的随机数HASH值,以验证合约状况的正确性。
避免参与者或协调者欺诈的方法
在图6中示出了表示避免参与者或协调者欺诈的方法的框图。
假设用户M是欺诈者,在本地准备阶段合约中,合约应当被调用以将1个以太币转移至充当协调者的用户P,但是不被调用。此时,用户M向充当协调者的用户P发送成功的提交阶段操作,并且发送HASH H1=(结果+种子A+哈希C)。
充当协调者的用户P使用该哈希值来验证区块链A上的合约执行结果。由于尚未执行准备阶段操作,因此正确的结果未被保存在链中,因此H1值必定是错误的,并且因此,不可能通过验证。充当协调者的用户P可以及时发现用户M是欺诈性的。
假设充当协调者的用户P是欺诈者,即使当下一阶段被执行时所有节点用户准备阶段合约均已被成功执行,假通知区块链102也称区块链103合约未能执行并且需要执行回滚阶段。
此时,用户M将充当协调者的用户P的随机数的原始值与具有通过准备阶段写入的准备阶段H1的先前状态的值的合约进行比较。由于充当协调者的用户P伪造了结果,因此H1计算值可能不一致;因此,用户M可以及时知道充当协调者的用户P正在篡改结果;从而拒绝回滚阶段。
在这种情况下,由于合约协调者的欺骗,全局交易不能被正确地协调,并且所有节点的全局交易进入暂停状态,直到新的受信任的协调者向每个参与者区块链提供其他协调者的正确执行结果。每个参与者合约确定是回滚阶段还是提交阶段是基于全局执行结果的。
交易超时
在图7中描绘的流程图中总结了系统如何处理交易超时的方法。
如果由于某种原因,全局交易在超时之前未达到其最终状态,则每个节点的用户可以主动查询协调者区块链101上的当前全局交易执行状态,并且将来自协调者交易的结果馈送至本地合约。本地合约根据全局交易状态判定本地区块链交易应该提交操作还是回滚操作。
为防止每个子链中的用户提交假声明,要求用户在他或她可以触发本地合约中的提交阶段或回滚阶段之前,获得每个链的正确的准备阶段结果、哈希码和随机种子。
区块链合约提交或回滚该链中的交易的前提取决于用户是否提供所有节点的正确随机数。当协调者合约正确地获得每个子链的所有随机数时,每个子链的用户可以从协调者区块链101哈希中提取随机数。来自每个子链的值和执行结果状况被转发至本地子链以供验证。在验证通过之后,根据全局准备阶段是否成功,确定本地子链合约是提交阶段还是回滚阶段。如果超时之后在协调者区块链101上没有所有节点随机数的完整证书,则暂停所有子链合约,直到提供了每个链中的所有有效随机种子。以这种方式,可以防止任何用户提交欺诈性数据。
因此仅通过示例的方式描述了本发明的实施方式,要理解,如由所附权利要求所限定的本发明不受上述示例性实施方式的描述中阐述的特定细节的限制,这是因为在不脱离权利要求的范围的情况下,许多变型和置换是可能的。

Claims (19)

1.一种用于分布式区块链交易的系统,所述系统包括:
a)包括第一节点的第一参与者区块链;
b)包括第二节点的第二参与者区块链;以及
c)包括协调者节点的协调者区块链;
其中,所述分布式交易涉及所述第一参与者区块链上的第一交易,以及所述第二参与者区块链上的第二交易,以及
其中,所述协调者区块链适于:在所述协调者节点与所述第一节点和所述第二节点之间传送安全消息;以及维护全局状况值以协调所述第一交易和所述第二交易,使得所述第一交易和所述第二交易全部被一起提交或回滚,从而在所述分布式交易结束时使所述系统处于一致状态。
2.根据权利要求1所述的系统,还包括具有第三节点的第三参与者区块链,所述分布式交易还涉及所述第三参与者区块链上的第三交易,其中,所述第一交易、所述第二交易和所述第三交易全部被一起提交或回滚。
3.根据权利要求1所述的系统,其中,所述安全消息由所述协调者区块链加密。
4.根据权利要求1所述的系统,还包括在所述第一参与者区块链处的第一消息传送代理,所述第一消息传送代理监听被发送至第一用户的所述消息的子集。
5.根据权利要求1所述的系统,还包括在所述第二参与者区块链处的第二消息传送代理,所述第二消息传送代理监听被发送至第二用户的所述消息的子集。
6.根据权利要求1所述的系统,其中,所述分布式交易包括:
a)第一“尝试”阶段,用于检测每个区块链的一致性并保留资源;
b)第二“确认”阶段,用于确认所述分布式交易向所述系统的提交;以及
c)第三“取消”阶段,用于取消在错误的情况下执行的服务,并释放所述资源。
7.根据权利要求5所述的系统,其中,在成功执行所述第一尝试阶段时,开始所述第二确认阶段,并且其中,所述第二确认阶段也必须成功。
8.根据权利要求5所述的系统,其中,所述第二确认阶段满足幂等性。
9.根据权利要求5所述的系统,其中,所述第三取消阶段操作满足幂等性。
10.根据权利要求1所述的系统,其中,所述第一参与者区块链是ETHEREUMTM并且所述第二参与者区块链是EOSTM
11.一种使用系统在第一用户与第二用户之间执行分布式区块链交易的方法,所述系统包括:包括第一合约的第一参与者区块链;包括第二合约的第二参与者区块链;以及包括第三合约的协调者区块链,所述分布式交易涉及所述第一链上的第一交易和所述第二链上的第二交易,所述方法包括:
在所述协调者区块链处:
a)生成随机数种子C和被计算为HC=哈希(种子C)的哈希HC
b)从所述第一参与者区块链接收被计算为H1=哈希(RA+种子A+HC)的哈希H1,其中,种子A是在所述第一链处生成的随机数种子,并且RA是在所述第一链上执行的第一合约的结果;
c)从所述第二参与者区块链接收被计算为H2=哈希(RB+种子B+HC)的哈希H2,其中,种子B是在所述第二链处生成的随机数种子,以及RB是在所述第二链上执行的第二合约的结果;
d)计算哈希H3=哈希(H1+H2);
e)执行种子C、H1、H2和H3与所述第三合约的提交功能;
f)收集并验证种子A、种子B、种子C和哈希值H1、H2、H3
g)在验证了种子A和H1时,在所述第一参与者区块链上提交所述第一交易;以及
h)在验证了种子B和H2时,提交所述第二参与者区块链的操作。
12.根据权利要求9所述的方法,还包括:从所述第一参与者区块链到所述第二参与者区块链的所述消息的子集通过所述协调者区块链传递。
13.根据权利要求9所述的方法,还包括:从所述第二参与者区块链到所述第一参与者区块链的所述消息的子集通过所述协调者区块链传递。
14.根据权利要求9所述的方法,其中:
分别向所述第一用户和所述第二用户发送安全消息,所述安全消息向所述第一用户通知所述第二用户正在执行所述第一合约中的第一准备阶段功能和所述第二合约中的第二准备阶段功能。
15.根据权利要求9所述的方法,还包括:在完成所述第三提交阶段之后,修改所述协调者区块链上的全局交易状况。
16.根据权利要求9所述的方法,还包括:
a)检测由所述第一用户进行的所述分布式交易的超时;以及
b)从所述协调者区块链检索准备阶段结果;
c)在用种子A验证了RA时,在所述第一链上提交所述第一交易;否则,回滚所述分布式交易。
17.根据权利要求9所述的方法,还包括:
a)检测由所述第二用户进行的所述分布式交易的超时;以及
b)从所述协调者区块链检索准备阶段结果;
c)在用种子B验证了RB时,在所述第二链上提交所述第二交易;否则,回滚所述分布式交易。
18.一种使用系统在第一用户与第二用户之间执行分布式区块链交易的方法,所述系统包括:包括第一合约的第一参与者区块链;包括第二合约的第二参与者区块链;以及包括第三合约的协调者区块链,所述分布式交易涉及所述第一链上的第一交易和所述第二链上的第二交易,所述方法包括:
在所述第一参与者区块链处:
a)从所述协调者区块链接收随机数种子C和被计算为HC=哈希(种子C)的哈希HC
b)生成被计算为H1=哈希(RA+种子A+HC)的哈希H1,其中,种子A是在所述第一链处生成的随机数种子,并且RA是在所述第一链上执行的第一合约的结果;
c)用种子C检查H1;以及在检查成功时释放种子A。
19.一种使用系统在第一用户与第二用户之间执行分布式区块链交易的方法,所述系统包括:包括第一合约的第一参与者区块链;包括第二合约的第二参与者区块链;以及包括第三合约的协调者区块链,所述分布式交易涉及所述第一链上的第一交易和所述第二链上的第二交易,所述方法包括:
在所述第一参与者区块链处:
a)从所述协调者区块链接收随机数种子C和被计算为HC=哈希(种子C)的哈希HC
b)生成被计算为H2=哈希(RB+种子B+HC)的哈希H2,其中,种子B是在所述第二参与者区块链上生成的随机数种子,并且RB是在所述第二参与者区块链上执行的所述第二合约的结果;
c)用种子C检查H2;以及在检查成功时释放种子B。
CN202080067050.5A 2019-08-06 2020-08-05 分布式区块链交易系统 Pending CN114902204A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962883531P 2019-08-06 2019-08-06
US62/883,531 2019-08-06
PCT/CA2020/051065 WO2021022369A1 (en) 2019-08-06 2020-08-05 Distributed blockchain transaction system

Publications (1)

Publication Number Publication Date
CN114902204A true CN114902204A (zh) 2022-08-12

Family

ID=74502406

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080067050.5A Pending CN114902204A (zh) 2019-08-06 2020-08-05 分布式区块链交易系统

Country Status (8)

Country Link
US (1) US20220284011A1 (zh)
EP (1) EP4010818A4 (zh)
JP (1) JP2022544131A (zh)
KR (1) KR20220038781A (zh)
CN (1) CN114902204A (zh)
CA (1) CA3149396A1 (zh)
IL (1) IL290359A (zh)
WO (1) WO2021022369A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11245536B2 (en) * 2019-04-16 2022-02-08 Meta Platforms, Inc. Secure multi-party computation attribution
CN110659907B (zh) * 2019-09-24 2021-11-12 北京海益同展信息科技有限公司 用于执行智能合约的方法和装置
US11544252B2 (en) * 2019-12-17 2023-01-03 Akamai Technologies, Inc. High performance distributed system of record with extended transaction processing capability
JP6982345B1 (ja) * 2020-10-06 2021-12-17 株式会社Datachain 取引システム
CN112927073A (zh) * 2021-02-23 2021-06-08 网易(杭州)网络有限公司 跨链数据互换方法、系统、装置、电子设备
CN112927075B (zh) * 2021-02-26 2023-11-17 北京百度网讯科技有限公司 跨链交易的处理方法、装置、电子设备及可读存储介质
CN115601160A (zh) * 2021-06-28 2023-01-13 华为云计算技术有限公司(Cn) 数据处理的方法以及装置
KR102582307B1 (ko) * 2021-08-17 2023-09-25 한일석 난수 생성 방법
CN114185996B (zh) * 2022-02-15 2022-05-13 北京溪塔科技有限公司 一种跨链事务处理方法及装置
CN114896080B (zh) * 2022-06-13 2023-07-21 深圳信息职业技术学院 基于区块链技术的分布式系统避免死锁处理方法及装置
CN116708463B (zh) * 2023-08-04 2023-10-03 腾讯科技(深圳)有限公司 基于多区块链的信息处理方法、装置、设备以及介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015183750A1 (en) * 2014-05-29 2015-12-03 Splice Machine, Inc. Transaction execution commitment without updating of data row transaction status
GB201611948D0 (en) * 2016-07-08 2016-08-24 Kalypton Int Ltd Distributed transcation processing and authentication system
CN106899698B (zh) * 2017-04-11 2020-12-18 张铮文 一种区块链之间的跨链互操作方法
CN107301600B (zh) * 2017-06-23 2021-07-20 北京天德科技有限公司 一种跨链交易的区块链互联网模型的核心构建方法
CN107742210A (zh) * 2017-10-13 2018-02-27 布比(北京)网络技术有限公司 一种不同区块链间的跨链转账系统和方法
US11139955B1 (en) * 2018-02-12 2021-10-05 Winklevoss Ip, Llc Systems, methods, and program products for loaning digital assets and for depositing, holding and/or distributing collateral as a token in the form of digital assets on an underlying blockchain
US10938557B2 (en) * 2018-03-02 2021-03-02 International Business Machines Corporation Distributed ledger for generating and verifying random sequence
CN108848119B (zh) * 2018-04-03 2020-04-28 阿里巴巴集团控股有限公司 跨区块链的交互方法及装置、系统、电子设备
GB2572627A (en) * 2018-04-05 2019-10-09 Electroneum Ltd Hybrid blockchain transaction system
US20210192574A1 (en) * 2019-12-24 2021-06-24 Capital One Services, Llc Techniques to incentivize sharing electronic advertisement information in a compute environment

Also Published As

Publication number Publication date
WO2021022369A1 (en) 2021-02-11
JP2022544131A (ja) 2022-10-17
KR20220038781A (ko) 2022-03-29
EP4010818A4 (en) 2023-08-23
EP4010818A1 (en) 2022-06-15
US20220284011A1 (en) 2022-09-08
IL290359A (en) 2022-04-01
CA3149396A1 (en) 2021-02-11

Similar Documents

Publication Publication Date Title
CN114902204A (zh) 分布式区块链交易系统
CN109685489B (zh) 一种区块链之间的资产跨链交易方法
US11978024B2 (en) Protocol flow for notarizing a transaction
CN107301600B (zh) 一种跨链交易的区块链互联网模型的核心构建方法
CN113196270B (zh) 隐私保护验证和提交架构
CN112330326B (zh) 一种应用于银行交易区块链系统的业务处理方法和装置
Lind et al. Teechain: Scalable blockchain payments using trusted execution environments
JP2024075710A (ja) セキュアなオフチェーンのブロックチェーントランザクション
US20220051235A1 (en) Settlement system, settlement method, user device, and settlement program
WO2018232493A1 (en) DOUBLE CHAIN BLOCK CHAINS NETWORK FOR REALIZING CHAIN TRANSACTIONS
CN111598566A (zh) 基于混合跨链的网络支付系统
CN113424171A (zh) 区块链交易管理器
KR20220045025A (ko) 탈중앙화된 트랜잭션의 통신 프로토콜을 위한 방법 및 시스템
US20240137231A1 (en) Multi-blockchain-based cross-chain processing method and apparatus, device, system, and medium
CN110503429B (zh) 一种去中心化的内容交互方法及系统
CN111915308A (zh) 一种区块链网络的交易处理方法及区块链网络
CN116527684A (zh) 基于1+1+n中继共识委员会的多链信息交互方法
CN115701078B (zh) 跨链交易处理方法、装置、电子设备以及存储介质
Zhang et al. Cross-Chain Interoperability and Collaboration for Keyword-Based Embedded Smart Contracts in the Internet of Things
CN116415955A (zh) 一种基于哈希锁定与公证人相结合的跨链交易方法及系统
US20220300916A1 (en) Internetwork swapping of assets
Robinson et al. Atomic crosschain transactions white paper
US20240013207A1 (en) Method and system for performing electronic transactions
Tang Verifiable transaction atomicity for electronic payment protocols
US20240137208A1 (en) Asset transferring method and apparatus based on multiple blockchains, device, medium, and product

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