CN110431580A - 使用随机数表来减少并发区块链交易失败 - Google Patents

使用随机数表来减少并发区块链交易失败 Download PDF

Info

Publication number
CN110431580A
CN110431580A CN201880008623.XA CN201880008623A CN110431580A CN 110431580 A CN110431580 A CN 110431580A CN 201880008623 A CN201880008623 A CN 201880008623A CN 110431580 A CN110431580 A CN 110431580A
Authority
CN
China
Prior art keywords
random number
slot
state
block chain
random
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.)
Granted
Application number
CN201880008623.XA
Other languages
English (en)
Other versions
CN110431580B (zh
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.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Publication of CN110431580A publication Critical patent/CN110431580A/zh
Application granted granted Critical
Publication of CN110431580B publication Critical patent/CN110431580B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/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
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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
    • 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

Abstract

本公开的实施方式包括:初始化包括多个随机数槽的随机数表,每个随机数槽与随机数索引和状态相关联并且存储相应的随机数值;从应用接收对随机数值的请求,并且作为响应,从所述随机数表中请求随机数值;响应于所述请求接收随机数值,将对应于所述随机数值的随机数槽的状态设置为被占用;以及响应于使用所述随机数值的交易成功或失败,执行以下之一:如果所述交易成功,则释放所述随机数槽中的所述随机数值并设置所述状态为未被占用;如果所述交易失败,则设置所述状态为未被占用。

Description

使用随机数表来减少并发区块链交易失败
背景技术
分布式账本系统(DLS),也可称为共识网络和/或区块链网络,使得参与的实体能够安全且不可篡改地存储数据。DLS在不指代任何特殊用例(例如加密货币)的情况下通常是指区块链网络。区块链网络的示例类型可以包括:公有区块链网络、私有区块链网络和联盟区块链网络。公有区块链网络向所有实体开放使用DLS,并开放参与共识过程。私有区块链网络针对特定实体提供,该实体集中控制读写权限。联盟区块链网络针对选定的实体组群提供,该实体组群控制共识过程,并包含访问控制层。
在区块链网络中,执行共识协议以向区块链的区块添加交易。共识协议可基于随机数(nonces,例如,均仅使用一次的任意数字)运行,区块链中的每个节点耗费随机数。例如,对于要添加的每一个交易,每个节点耗费随机数,以便将交易添加到区块链中的区块。大多数情况下,交易可是并发的,这可能导致由多个节点使用同一个随机数。结果,一个或多个并发交易可能失败。
发明内容
本公开的实施方式包括用于减少区块链网络中并发交易失败的计算机实施方法。更具体地,本公开的实施方式关于具有多个预先填充的随机数的随机数表,以避免在处理区块链网络中的并发交易时的随机数冲突。
在一些实施方式中,动作包括:初始化包括多个随机数槽的随机数表,每个随机数槽与随机数索引和状态相关联并且存储相应的随机数值;从应用接收对随机数值的请求,并且作为响应,从所述随机数表中请求随机数值;响应于所述请求接收随机数值,将对应于所述随机数值的随机数槽的状态设置为被占用;以及响应于使用所述随机数值的交易成功或失败,执行以下之一:如果所述交易成功,则释放所述随机数槽内的所述随机数值并设置所述状态为未被占用;以及如果所述交易失败,则设置所述状态为未被占用。其他实施方式包括对应系统、装置和被配置为执行所述方法的动作并编码在计算机存储装置的计算机程序。
这些和其他实施方式可分别可选地包括一个或多个以下特征:释放所述随机数槽内的所述随机数值,包括:在所述随机数槽中存储递增的随机数值;从所述应用接收对随机数值的第二请求,并且作为响应,从所述随机数表中请求随机数值,以及确定所述随机数表中的每个随机数槽的状态为被占用,并且作为响应,向所述应用发送所有随机数槽均被占用的指示;所述随机数表存储在数据库中,并且在所述应用和所述数据库之间的桥接收对随机数值的请求,并选择性地向所述应用提供随机数值;所述应用基于由所述应用从所述区块链网络接收到的一个或多个消息,来确定使用所述随机数值的所述交易是否成功还是失败;以及,所述交易的状态被定期触发以确定是否发生超时事件。
本公开还提供了一个或多个非暂时性计算机可读存储介质,其耦接到一个或多个处理器且其上存储有指令,当所述指令由所述一个或多个处理器执行时,所述指令促使所述一个或多个处理器根据本文所提供的方法的实施方式执行操作。
本公开还提供了用于执行本文所提供的方法的系统。所述系统包括一个或多个处理器及计算机可读存储介质,所述计算机可读存储介质耦接至所述一个或多个处理器并且其上存储有指令,当所述指令由所述一个或多个处理器执行时,所述指令促使所述一个或多个处理器根据本文所提供的方法的实施方式执行操作。
可以理解,根据本公开的方法可包括本文所述的方面和特征的任意组合。即,根据本公开的方法并不限于本文具体所述的方面和特征的组合,还包括所提供的方面和特征的任意组合。
本公开的一个或多个实施方式的细节将在下面的附图和描述中详述。根据说明书和附图以及权利要求,本公开的其他特征和优势将显而易见。
附图说明
图1示出能够被用于执行本公开的实施方式的示例性环境。
图2示出了根据本公开的实施方式的示例性概念结构。
图3示出了根据本公开的实施方式的初始化随机数表的示例性信号流。
图4示出了根据本公开的实施方式从随机数表中获取、释放以及重置随机数值的示例性信号流。
图5示出了根据本公开的实施方式更新随机数表中的可用随机数值的示例性信号流。
图6示出了可根据本公开的实施方式执行的维护随机数表的示例性方法。
各附图中相同的附图标记表示相同的元件。
具体实施方式
本公开的实施方式包括用于减少区块链网络中的并发交易失败的计算机实施方法。更具体地,本公开的实施方式关于具有多个预先填充的随机数的随机数表,以避免在处理区块链网络中的并发交易时的随机数冲突。在一些实施方式中,动作包括:初始化包括多个随机数槽(nonce slot)的随机数表,每个随机数槽与随机数索引和状态关联并且存储相应的随机数值;从应用接收对随机数值的请求,并且作为响应,从所述随机数表中请求随机数值;响应于所述请求接收所述随机数值,对应于所述随机数值的随机数槽的状态被设置为被占用;以及响应于使用所述随机数值的交易成功或失败,执行以下之一:如果交易成功,则释放随机数槽内的所述随机数值并将状态设置为未被占用;如果交易失败,则将状态设置为未被占用。
为本公开的实施方式提供进一步的背景,且如上所述,分布式账本系统(DLS),亦可称为共识网络(例如,由点对点(peer-to-peer)的多个节点组成)和区块链网络,使得参与的实体能够安全且不可篡改地进行交易并存储数据。尽管术语区块链通常与比特币加密货币网络关联,但是在不指代任何特殊用例的情况下,本文中所使用的区块链主要指DLS。如上所述,区块链网络可被提供为公有区块链网络、私有区块链网络或联盟区块链网络。
在公有区块链网络中,共识过程由共识网络的节点控制。例如,成百上千甚至上百万的实体能够协同运作公有区块链网络,每个实体操作该公有区块链网络中的至少一个节点。因此,公有区块链网络可被认为是关于参与的实体的公有网络。在一些实施例中,大多数实体(节点)必须签名每个区块,以使该区块有效并被添加到区块链网络的区块链(分布式账本)中。示例性公有区块链网络包括比特币网络,其为点对点支付网络。比特币网络利用称为区块链的分布式账本。然而,如上所述,术语区块链通常用于指代分布式账本,而不特指比特币网络。
通常,公有区块链网络支持公开交易。公开交易由公有区块链网络中的所有节点共享,且被存储于全局区块链中。全局区块链是跨所有节点复制的区块链。也即,所有节点相对于全局区块链都处于完全共识状态。为达成共识(例如,同意将区块添加至区块链),在该公有区块链网络中实施共识协议。共识协议的示例包括,但不限于,在比特币网络中实施的工作量证明(POW)。
通常,私有区块链网络被提供给特定实体,该特定实体集中控制读写权限。该实体控制哪些节点能参与到该区块链网络中。因此,私有区块链网络通常被称为许可网络,其对谁可以参与该网络以及它们的参与级别(例如,只在某些交易中)加以限制。可以使用各种类型的访问控制机制(例如,现有参与者对添加新实体进行投票,管理机构可以控制准入)。
通常,联盟区块链网络在参与的实体之间是私有的。在联盟区块链网络中,共识过程由被授权的节点集控制,一个或多个节点由对应的实体(例如,金融机构、保险公司)操作。例如,具有十(10)个实体(例如,金融机构、保险公司)的联盟可以操作联盟区块链网络,其中每个实体操作该联盟区块链网络中的至少一个节点。因此,联盟区块链网络可被认为是关于参与的实体的私有网络。在一些示例中,每个实体(节点)必须签名每个区块,以使该区块有效并被添加到该区块链中。在一些示例中,至少实体(节点)的子集(例如,至少7个实体)必须签名每个区块,以使该区块有效并被添加到该区块链中。
在本文中主要参考区块链网络来进一步详细描述本公开的实施方式。可以考虑到,本公开的实施方式能够在任何合适类型的区块链网络中实现。
如上文介绍的,在区块链网络中执行共识协议以向区块链添加区块。每个区块可被描述为在区块链网络中的实体之间执行的一批交易。区块链网络内的多个节点通过共识协议进行竞争以将其区块添加到区块链中。交易和区块均使用随机数记录。即,参与共识协议的每个节点使用一个随机数。在一些示例中,随机数是仅被使用一次的(例如,固定长度的)随机(任意)数。例如,如果一个随机数被成功用于将交易记录至区块链中,则该随机数就不再使用。更具体地,写入区块链的每个交易使用随机数。可以以多种方式使用随机数。例如,可将随机数关联到交易区块的哈希值,因此,哈希值将小于或等于网络的目标值(target)。作为另一示例,可将随机数与待经哈希处理的交易值关联。
在一些例子中,交易可能并发。因此,可能同时需要大量的随机数以将交易记录至区块链。可能发生两个或多个节点同时使用同一个随机数的情况。如果一个节点成功将其交易添加到区块链,则该随机数不再有效可用,而其他节点的将其交易记录至区块链的努力可能失败。
鉴于以上背景,这里进一步详述了本公开的实施方式。更具体地,且如上所述,本公开的实施方式关于具有多个预先填充的随机数的随机数表,以避免在处理区块链中的并发交易时的随机数冲突。如本文进一步详述的,采用抢占模型,使得当随机数表的一个随机数被节点使用时,该随机数无法被任何其他节点使用。如果交易成功,则从随机数表删除该随机数,并在其位置提供新的随机数。如果交易失败,则该随机数被释放以供利用,且仍保留在随机数表中以供后续交易中再次使用。
图1绘示了可用于执行本公开的实施方式的示例性环境100。在一些示例中,例如,示例性环境100使得实体能够参与到区块链网络102中。示例性环境100包括计算设备106、108以及网络110。在一些示例中,网络110包括局域网(LAN)、广域网(WAN)、互联网或其组合,并连接网络站点、用户设备(例如,计算设备)和后端系统。在一些示例中,可以通过有线和/或无线通信链接来访问网络110。
在所绘示的示例中,计算系统106、108可以各自包括任何合适的计算系统,其可以作为节点参与到区块链网络102中。示例性计算设备包括但不限于,服务器、台式计算机、膝上型计算机、平板计算设备和智能电话。在一些示例中,计算系统106、108承载一个或多个由计算机实施的服务,用于与区块链网络102进行交互。例如,计算系统106可以承载第一实体(例如,用户A)的由计算机实施的、例如交易管理系统的服务,第一实体使用该交易管理系统管理其与一个或多个其他实体(例如,其他用户)的交易。计算系统108可以承载第二实体(例如,用户B)的由计算机实施的、例如交易管理系统的服务,第二实体使用该交易管理系统管理其与一个或多个其他实体(例如,其他用户)的交易。
在图1的示例中,区块链网络102示出为节点的点对点网络,且计算系统106、108分别提供参与到区块链网络102中的第一实体和第二实体的节点。
图2绘示了根据本公开实施方式的示例性概念结构200。示例性概念结构200包括实体层202、承载服务层204以及区块链网络层206。在所描述的示例中,实体层202包括三个实体,实体_1(E1)、实体_2(E2)和实体_3(E3),每个实体具有对应的交易管理系统208。
在所绘示的示例中,承载服务层204包括用于每个交易管理系统210的接口210。在一些示例中,对应的交易管理系统208利用协议(例如,超文本传输协议安全(HTTPS))通过网络(例如,图1的网络110)与对应的接口210通信。在一些示例中,每个接口210提供对应的交易管理系统208与区块链网络层206之间的通信链接。更具体地,接口210与区块链网络层206的区块链网络212通信。在一些示例中,接口210与区块链网络层206之间的通信是利用远程过程调用(RPC)进行的。在一些示例中,接口210“承载”用于对应的交易管理系统208的区块链网络节点。例如,接口210提供用于访问区块链网络212的应用程序接口(API)。
如这里所述的,提供区块链网络212作为点对点网络,该点对点网络包括在区块链216中不可篡改地记录信息的多个节点214。尽管示意性地绘示了单个区块链216,但是在区块链网络212中提供并维护了区块链216的多个副本。例如,每个节点214都存储区块链的副本。在一些实施方式中,区块链216存储与在参与区块链网络212的两个或多个实体之间进行的交易相关联的信息。
图3绘示了根据本公开实施方式初始化随机数表(nonceTable)的示例性信号流300。为了方便,信号流300将被描述为在区块链网络中的成员之间进行。如这里进一步详述的,随机数表记录多个随机数,多个随机数可用于例如在区块链网络中执行共识协议以将交易记录至区块链网络中的区块链。随机数表可存储数十、成百、上千或任何合适数量的随机数值。在一些示例中,随机数表的大小基于要被检索的随机数的预期数量和/或频率设置。在一些示例中,随机数表的大小可以以多种方式选择。例如,大小可随机初始化、基于账号类型预先确定。作为另一示例,可在初始化随机数表的请求中定义大小。在一些实施方式中,随机数表包括多行,每行记录随机数索引(nonceIndex)、随机数值(nonceValue)和随机数索引状态(nonceIndexStatus)。
在图3的示例中,信号流300在(例如,在区块链网络的节点内执行的)应用302、桥304和数据库306之间。桥304与客户端侧应用一起被承载。数据库306存储应用302使用的随机数表。
在一些实施方式中,应用302发送(308)初始化随机数表的请求。在一些示例中,这发生在与应用302相关联的区块链账号被创建后。桥304抽取(abstract)区块链客户端的模型和服务实现,以维持随机数表。桥304位于应用302和数据库306之间以便于随机数表的初始化。
在一些实施方式中,桥304通过循环遍历随机数表大小来初始化随机数表中的每个随机数索引。随机数表存储于数据库306中。桥304插入(310)对应于每个随机数索引的行。每个随机数索引可具有与其相关联的一个或多个值。示例性的值包括,但不限于,标识、账号地址、随机数版本、随机数索引、随机数、占用状态和最后占用时间。对应于随机数值的变量表征(characterize)随机数。例如,标识是对随机数的唯一引用,账号地址可指代与交易相关联的一个或多个账号,随机数版本可表明随机数的哪个变量被使用,被占用表示该随机数对交易的可用性。在一些示例中,最后占用时间可用于确定是否发生超时以及是否必须被释放,如本文进一步详述的。
图4示出了根据本公开的实施方式从随机数表获取、释放及重置随机数值的示例性信号流400。为了方便,信号流400将被描述为在区块链网络内的成员之间执行。在图4的示例中,信号流400在(例如在区块链网络的节点内执行的)应用302、桥304、数据库306和区块链402之间。
根据本公开的实施方式,使用抢占模型,以使得当随机数表中的随机数被节点(例如,应用302)使用时,该随机数不能被任何其他节点使用。如果交易成功,则该随机数被从随机数表中删除,且在其位置提供新的随机数。如果交易失败,则该随机数被释放以供使用,且仍保留在随机数表中供后续交易再次使用。通过抢占该随机数,在使用时,并发的多个交易无法使用同一个随机数,从而避免交易失败。在一些实施方式中,且如本文进一步详述的,抢占模型包括获取、释放和重置的操作原语。
在一些实施方式中,获取操作获得将在区块链交易中使用的随机数值。应用302向桥304发送(410)获取随机数消息。反过来,桥304查询数据库306以请求(412)未被占用的随机数索引。可通过以下示例性SQL语句来执行查询数据库以获得随机数:
在一些示例中,SQL语句选择占用状态设置为空的所有随机数索引,并选取抢占(例如占用)最小的随机数索引。将所选取的随机数索引的最后占用时间设置为‘现在’(例如,当前的时间戳),以阻止对应的随机数值被另一交易使用。
如果抢占成功,则桥304查询(414)关于被抢占的随机数索引的信息(例如,随机数),且返回(416)随机数给应用302。关于随机数索引的信息可通过以下示例性SQL查询语句来查询:
示例性SQL语句基于随机数值的初始查询中指定的占用状态,从随机数表中选择所有随机数信息。
但是,如果随机数检索失败(例如,所有随机数索引均被占用),则数据库306返回更新值0,桥304返回(418)随机数表中的所有随机数索引槽(slot)均被占用,并抛出异常。
所选取的随机数值用于发起(420)将交易记录至区块链408中。通过共识协议的执行,区块链408发送(422)异步消息以通知区块链网络的节点关于交易的状态。这样的异步消息由应用302接收。区块链系统并不确保异步消息一定被成功传送。如果指示交易状态的异步消息没有返回至应用302,则随机数值和随机数索引的占用状态不能被重置且保持为无法供后续交易使用。
在一些实施方式中,应用302接收指示交易成功或失败的消息。如果交易成功,则应用302通知(424)桥304,并且桥304释放随机数索引以供未来使用。在一些示例中,释放包括更新随机数(例如,使随机数的值递增),并且设置占用状态为空。更新随机数值确保仅新的随机数被使用,而先前使用过的随机数无法供未来交易使用。如果交易未成功,则应用302告知(428)桥304,并且桥通过更新占用状态为空来重置随机数索引。即,随机数未改变,且可供未来交易再次使用。示例性第一SQL语句和第二SQL语句能被提供为:
示例性第一SQL语句可被执行用于释放(例如,响应于交易成功),且示例性第二SQL语句可被执行用于重置(例如,响应于交易失败)。
图5绘示了根据本公开实施方式更新随机数表中的可用随机数值的示例性信号流500。为了方便,信号流400将被描述为在区块链网络内的组件之间执行。在图5的示例中,信号流500在(例如在区块链网络的节点内执行的)应用302、桥304、数据库306和区块链402之间。
如上所述,由于区块链402不能确保所传送的消息一定被成功传送至应用302,因此一些随机数槽被占用并且不等待消息来释放/重置。有鉴于此,本公开的实施方式提供了守护进程(daemon)任务,以定期检查所有被占用的随机数索引槽。在一些示例中,每个随机数索引槽的最后占用时间被用于确定是否发生超时,以及守护进程任务是否要释放/重置随机数索引槽。
在图5的示例中,应用302发送(510)定时触发器(timed trigger)给桥304。作为响应,桥查询(512)数据库306以得到最后占用时间未被设置为空的随机数索引列表。这允许通过使用单个方法更新从选择语句返回的各个数值,来更新所有的随机数索引值。桥304遍历从数据库306返回的列表中的每个值,以查询(514)区块链402中各随机数值的实时状态。桥304接收更新,并基于从区块链306返回的结果更新(516)数据库306内的最后占用时间状态。如果发生超时(例如,当前时间和最后占用时间之间的差值超过阈值时间),则桥304直接查询对应于区块链402的随机数槽的实时状态,并更新数据库306。当更新数据库306时,占用状态被设置为空,且随机数值为来自区块链402的实时查询结果。
图6绘示了能够根据本公开的实施方式执行的示例性方法600。在一些实施方式中,示例性方法600可通过使用一个或多个计算设备执行的一个或多个计算机可执行程序来执行。示例性方法600基于上述信号流的一个或多个。概要地,示例性方法关于根据本公开的实施方式的随机数表的使用。
初始化(602)随机数表。如本文所述,例如,参考图3,随机数表包括多个随机数槽,每个随机数槽与随机数索引和状态关联且存储有各自的随机数值。接收(604)对随机数的请求。例如,且如本文参考图4所述,应用接收请求,且作为响应,桥从随机数表请求随机数。响应于该请求(606)接收随机数值。如本文所述,将对应于随机数值的随机数槽的状态设置为被占用(例如,图4的获取操作)。响应于使用所述随机数值的交易成功或失败,执行(610)以下操作之一:如果交易成功,则释放随机数槽中的随机数值并设置状态为未被占用;如果交易失败,则设置状态为未被占用。这参考图4的释放和重置操作描述。
所述的特征可在数字电子电路中实现,或在计算机硬件、固件、软件或其组合中实现。该装置可以在有形地嵌入信息载体(例如,在机器可读存储设备)中的计算机程序产品实现,该计算机程序产品由可编程处理器执行;可以由执行指令程序的可编程处理器执行方法步骤,以通过对输入数据进行操作并生成输出来执行所述实施方式的功能。所描述的特征可有利地在可编程系统上可执行的一个或多个计算机程序中实现,所述可编程系统包括至少一个可编程处理器,其耦合以从数据存储系统接收数据和指令,并将数据和指令传输到数据存储系统;至少一个输入设备和至少一个输出设备。计算机程序是可以直接或间接地在计算机中使用以执行某项活动或带来某种结果的一组指令。计算机程序可以用任何形式的编程语言编写,包括编译或解释语言,并且可以以任何形式部署,包括作为独立程序或作为模块、组件、子程序或适合用于计算环境中的其他单元。
举例来说,用于执行指令程序的合适处理器包括通用和专用微处理器,以及任何类型的计算机的唯一处理器或多个处理器之一。通常,处理器将从只读存储器和/或随机存取存储器接收指令和数据。计算机的元件可包括用于执行指令的处理器和用于存储指令和数据的一个或多个存储器。通常,计算机还可以包括用于存储数据文件的一个或多个大容量存储设备,或者可操作地耦合以与用于存储数据文件的一个或多个大容量存储设备通信;这些设备包括磁盘,例如内部硬盘和可移动磁盘;磁光盘;和光盘。适合于有形地嵌入计算机程序指令和数据的存储设备包括所有形式的非易失性存储器,包括例如半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,如内部硬盘和可移动磁盘;磁光盘;和CD-ROM和DVD-ROM磁盘。处理器和存储器可以由专用集成电路(ASIC)补充或并入到专用集成电路(ASIC)中。
为了提供与用户的交互,这些特征可以在具有诸如阴极射线管(CRT)或液晶显示器(LCD)显示屏之类的、用于向用户显示信息的显示设备以及用户可用以向计算机提供输入的键盘和诸如鼠标或者轨迹球的指向设备的计算机上实现。
特征可以在包括后端组件,诸如数据服务器,或者包括中间件组件,诸如应用服务器或因特网服务器,或包括前端组件,诸如具有图形用户界面或者因特网浏览器的客户端计算机,或其任意组合的计算机系统中实现。系统的组件可以通过诸如通信网络的任何形式或介质的数字数据通信连接。通信网络的示例包括例如局域网(LAN)、广域网(WAN)以及形成因特网的计算机和网络。
计算机系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过例如所描述的网络进行交互。客户端和服务器的关系借助于在各个计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。
另外,图中描绘的逻辑流程并不要求所示的特定顺序或次序来实现期望的结果。另外,可以从所描述的流程中提供其他步骤,或者可以从所描述的流程中去除步骤,并且可以将其他组件添加到所述系统中或从所述系统中移除。因此,其他实施方式在以下权利要求的范围内。
已经描述了本公开的许多实现方式。然而,应该理解,在不脱离本公开的精神和范围的情况下,可以进行各种修改。因此,其他实施方式在以下权利要求的范围内。

Claims (18)

1.一种计算机实施的用于提供用于在区块链网络中的交易处理的随机数值的方法,所述方法通过一个或多个处理器执行,并且包括:
初始化包括多个随机数槽的随机数表,每个随机数槽与随机数索引和状态相关联并且存储相应的随机数值;
从应用接收对随机数值的请求,并作为响应,从所述随机数表中请求随机数值;
响应于所述请求接收随机数值,将对应于所述随机数值的随机数槽的状态设置为被占用;以及
响应于使用所述随机数值的交易成功或失败,执行以下之一:
如果所述交易成功,则释放所述随机数槽内的所述随机数值并设置所述状态为未被占用,以及
如果所述交易失败,则设置所述状态为未被占用。
2.根据权利要求1所述的方法,其中,释放所述随机数槽内的所述随机数值,包括:
在所述随机数槽中存储递增的随机数值。
3.根据权利要求1所述的方法,还包括:
从所述应用接收对随机数值的第二请求,且作为响应,从所述随机数表中请求随机数值;以及
确定所述随机数表中的每个随机数槽的状态为被占用,且作为响应,向所述应用发送所有随机数槽均被占用的指示。
4.根据权利要求1所述的方法,其中,
所述随机数表存储在数据库中,并且
在所述应用和所述数据库之间的桥接收对随机数值的请求,并选择性地向所述应用提供随机数值。
5.根据权利要求1所述的方法,其中,所述应用基于由所述应用从所述区块链网络接收到的一个或多个消息,来确定使用所述随机数值的所述交易是成功还是失败。
6.根据权利要求1所述的方法,其中,所述交易的状态被定期触发以确定是否发生超时事件。
7.一种非暂时性计算机可读存储介质,其耦接至一个或多个处理器且其上存储有指令,当所述指令由所述一个或多个处理器执行时,所述指令促使所述一个或多个处理器执行提供用于在区块链网络中的交易处理的随机数值的操作,所述操作包括:
初始化包括多个随机数槽的随机数表,每个随机数槽与随机数索引和状态相关联并且存储相应的随机数值;
从应用接收对随机数值的请求,并作为响应,从所述随机数表中请求随机数值;
响应于所述请求接收随机数值,将对应于所述随机数值的随机数槽的状态设置为被占用;以及
响应于使用所述随机数值的交易成功或失败,执行以下之一:
如果所述交易成功,则释放所述随机数槽内的所述随机数值并设置所述状态为未被占用,以及
如果所述交易失败,则设置所述状态为未被占用。
8.根据权利要求7所述的非暂时性计算机可读存储介质,其中,释放所述随机数槽内的所述随机数值,包括:
在所述随机数槽中存储递增的随机数值。
9.根据权利要求7所述的非暂时性计算机可读存储介质,还包括:
从所述应用接收对随机数值的第二请求,且作为响应,从所述随机数表中请求随机数值;以及
确定所述随机数表中的每个随机数槽的状态为被占用,且作为响应,向所述应用发送所有随机数槽均被占用的指示。
10.根据权利要求7所述的非暂时性计算机可读存储介质,其中,
所述随机数表存储在数据库中,并且
在所述应用和所述数据库之间的桥接收对随机数值的请求,并选择性地向所述应用提供随机数值。
11.根据权利要求7所述的非暂时性计算机可读存储介质,其中,所述应用基于由所述应用从所述区块链网络接收到的一个或多个消息,来确定使用所述随机数值的所述交易是成功还是失败。
12.根据权利要求7所述的非暂时性计算机可读存储介质,其中,所述交易的状态被定期触发以确定是否发生超时事件。
13.一种系统,包括:
计算装置;以及
计算机可读存储装置,其耦接至所述计算装置且其上存储有指令,当所述指令由所述计算装置执行时,所述指令促使所述计算装置执行提供用于在区块链网络中的交易处理的随机数值的操作,所述操作包括:
初始化包括多个随机数槽的随机数表,每个随机数槽与随机数索引和状态相关联并且存储相应的随机数值;
从应用接收对随机数值的请求,并作为响应,从所述随机数表中请求随机数值;
响应于所述请求接收随机数值,将对应于所述随机数值的随机数槽的状态设置为被占用;以及
响应于使用所述随机数值的交易成功或失败,执行以下之一:
如果所述交易成功,则释放所述随机数槽内的所述随机数值并设置所述状态为未被占用,以及
如果所述交易失败,则设置所述状态为未被占用。
14.根据权利要求13所述的系统,其中,释放所述随机数槽内的所述随机数值,包括:
在所述随机数槽中存储递增的随机数值。
15.根据权利要求13所述的系统,还包括:
从所述应用接收对随机数值的第二请求,且作为响应,从所述随机数表中请求随机数值;以及
确定所述随机数表中的每个随机数槽的状态为被占用,且作为响应,向所述应用发送所有随机数槽均被占用的指示。
16.根据权利要求13所述的系统,其中,
所述随机数表存储在数据库中,并且
在所述应用和所述数据库之间的桥接收对随机数值的请求,并选择性地向所述应用提供随机数值。
17.根据权利要求13所述的系统,其中,所述应用基于由所述应用从所述区块链网络接收到的一个或多个消息,来确定使用所述随机数值的所述交易是成功还是失败。
18.根据权利要求13所述的系统,其中,所述交易的状态被定期触发以确定是否发生超时事件。
CN201880008623.XA 2018-11-30 2018-11-30 使用随机数表来减少并发区块链交易失败 Active CN110431580B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/118523 WO2019072287A2 (en) 2018-11-30 2018-11-30 USING A TABLE OF NUTS TO RESOLVE SIMULTANEOUS BLOCK CHAIN TRANSACTION FAILURE

Publications (2)

Publication Number Publication Date
CN110431580A true CN110431580A (zh) 2019-11-08
CN110431580B CN110431580B (zh) 2023-05-16

Family

ID=66100017

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880008623.XA Active CN110431580B (zh) 2018-11-30 2018-11-30 使用随机数表来减少并发区块链交易失败

Country Status (16)

Country Link
US (1) US10540344B2 (zh)
EP (1) EP3552167B1 (zh)
JP (1) JP6704627B1 (zh)
KR (1) KR102121157B1 (zh)
CN (1) CN110431580B (zh)
AU (1) AU2018348327B2 (zh)
BR (1) BR112019007995A2 (zh)
CA (1) CA3041211C (zh)
ES (1) ES2880453T3 (zh)
MX (1) MX2019004669A (zh)
PH (1) PH12019500870A1 (zh)
PL (1) PL3552167T3 (zh)
RU (1) RU2720529C1 (zh)
SG (1) SG11201903529TA (zh)
WO (1) WO2019072287A2 (zh)
ZA (1) ZA201902488B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111562947A (zh) * 2020-04-01 2020-08-21 支付宝实验室(新加坡)有限公司 一种业务处理方法、装置及电子设备

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11614769B2 (en) * 2019-07-15 2023-03-28 Ecole Polytechnique Federale De Lausanne (Epfl) Asynchronous distributed coordination and consensus with threshold logical clocks
CN111506783B (zh) * 2020-04-08 2023-12-22 百度在线网络技术(北京)有限公司 区块链中事务请求处理方法、装置、设备和介质
CN112346825A (zh) * 2020-11-11 2021-02-09 湖南智慧政务区块链科技有限公司 一种基于位图算法的区块链事务防重机制

Citations (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030131238A1 (en) * 2002-01-08 2003-07-10 International Business Machines Corporation Public key based authentication method for transaction delegation in service-based computing environments
US20090041252A1 (en) * 2007-08-10 2009-02-12 Juniper Networks, Inc. Exchange of network access control information using tightly-constrained network access control protocols
US7797751B1 (en) * 2006-03-27 2010-09-14 Oracle America, Inc. Nonce structure for storage devices
US20150332283A1 (en) * 2014-05-13 2015-11-19 Nant Holdings Ip, Llc Healthcare transaction validation via blockchain proof-of-work, systems and methods
US20170011365A1 (en) * 2015-07-10 2017-01-12 Strawpay AB Methods and computer programs for efficient payments using digital promissory notes
CN106815722A (zh) * 2016-12-22 2017-06-09 中钞信用卡产业发展有限公司北京智能卡技术研究院 基于区块链的信息处理方法和装置
CN107124278A (zh) * 2017-03-30 2017-09-01 腾讯科技(深圳)有限公司 业务处理方法、装置以及数据共享系统
CN107301546A (zh) * 2017-05-03 2017-10-27 北京众享比特科技有限公司 随机数生成和应用方法及装置
CN107615317A (zh) * 2015-03-31 2018-01-19 纳斯达克公司 区块链交易记录的系统和方法
CN108009918A (zh) * 2017-11-23 2018-05-08 深圳捷汇科技有限公司 区块链共识算法交易系统的记账方法及电子设备
US20180204191A1 (en) * 2015-07-08 2018-07-19 Barclays Bank Plc Secure Digital Data Operations
CN108334307A (zh) * 2017-12-29 2018-07-27 北京欧链科技有限公司 基于区块链的数据筛选方法和装置
CN108389044A (zh) * 2018-02-28 2018-08-10 北京比特大陆科技有限公司 工作量证明的计算方法和系统、电子设备、程序和介质
CN108416578A (zh) * 2018-03-14 2018-08-17 郑杰骞 一种区块链系统及数据处理方法
WO2018161901A1 (zh) * 2017-03-10 2018-09-13 阿里巴巴集团控股有限公司 一种共识方法及装置
CN108572978A (zh) * 2017-03-10 2018-09-25 深圳瀚德创客金融投资有限公司 构建用于区块链的倒排索引结构的方法和计算机系统
WO2018196813A1 (zh) * 2017-04-28 2018-11-01 阿里巴巴集团控股有限公司 一种共识验证的方法及装置
US20180324158A1 (en) * 2017-05-04 2018-11-08 Ernest Brickell Assuring external accessibility for devices on a network
CN108805569A (zh) * 2018-05-29 2018-11-13 阿里巴巴集团控股有限公司 基于区块链的交易处理方法及装置、电子设备

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7788700B1 (en) * 2002-05-15 2010-08-31 Gerard A. Gagliano Enterprise security system
US20080066181A1 (en) * 2006-09-07 2008-03-13 Microsoft Corporation DRM aspects of peer-to-peer digital content distribution
DE102008046563A1 (de) * 2008-09-10 2010-03-11 Siemens Aktiengesellschaft Verfahren zur Datenübertragung zwischen Netzwerkknoten
KR20120100046A (ko) * 2011-03-02 2012-09-12 삼성전자주식회사 분산 환경 네트워크에서 컨텐츠의 접근 제어를 위한 장치 및 방법
US9210183B2 (en) * 2013-12-19 2015-12-08 Microsoft Technology Licensing, Llc Detecting anomalous activity from accounts of an online service
WO2017134281A1 (en) * 2016-02-04 2017-08-10 Nasdaq Technology Ab Systems and methods for storing and sharing transactional data using distributed computer systems
EP3424177B1 (en) * 2016-02-29 2021-10-13 SecureKey Technologies Inc. Systems and methods for distributed identity verification
WO2017178955A1 (en) * 2016-04-11 2017-10-19 nChain Holdings Limited Computer-implemented methods and systems for validating tokens for blockchain-based cryptocurrencies
US10204341B2 (en) * 2016-05-24 2019-02-12 Mastercard International Incorporated Method and system for an efficient consensus mechanism for permissioned blockchains using bloom filters and audit guarantees
US10447478B2 (en) * 2016-06-06 2019-10-15 Microsoft Technology Licensing, Llc Cryptographic applications for a blockchain system
US10243990B1 (en) * 2016-09-23 2019-03-26 Apple Inc. Systems and methods for detecting replay attacks on security space
US10275739B2 (en) * 2017-01-05 2019-04-30 International Business Machines Corporation Tracking assets with a blockchain
GB201705858D0 (en) * 2017-04-11 2017-05-24 Nchain Holdings Ltd Computer-implemented system and method

Patent Citations (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030131238A1 (en) * 2002-01-08 2003-07-10 International Business Machines Corporation Public key based authentication method for transaction delegation in service-based computing environments
US7797751B1 (en) * 2006-03-27 2010-09-14 Oracle America, Inc. Nonce structure for storage devices
US20090041252A1 (en) * 2007-08-10 2009-02-12 Juniper Networks, Inc. Exchange of network access control information using tightly-constrained network access control protocols
US20150332283A1 (en) * 2014-05-13 2015-11-19 Nant Holdings Ip, Llc Healthcare transaction validation via blockchain proof-of-work, systems and methods
CN107615317A (zh) * 2015-03-31 2018-01-19 纳斯达克公司 区块链交易记录的系统和方法
US20180204191A1 (en) * 2015-07-08 2018-07-19 Barclays Bank Plc Secure Digital Data Operations
US20170011365A1 (en) * 2015-07-10 2017-01-12 Strawpay AB Methods and computer programs for efficient payments using digital promissory notes
CN106815722A (zh) * 2016-12-22 2017-06-09 中钞信用卡产业发展有限公司北京智能卡技术研究院 基于区块链的信息处理方法和装置
WO2018161901A1 (zh) * 2017-03-10 2018-09-13 阿里巴巴集团控股有限公司 一种共识方法及装置
CN108572978A (zh) * 2017-03-10 2018-09-25 深圳瀚德创客金融投资有限公司 构建用于区块链的倒排索引结构的方法和计算机系统
CN107124278A (zh) * 2017-03-30 2017-09-01 腾讯科技(深圳)有限公司 业务处理方法、装置以及数据共享系统
WO2018196813A1 (zh) * 2017-04-28 2018-11-01 阿里巴巴集团控股有限公司 一种共识验证的方法及装置
CN107301546A (zh) * 2017-05-03 2017-10-27 北京众享比特科技有限公司 随机数生成和应用方法及装置
US20180324158A1 (en) * 2017-05-04 2018-11-08 Ernest Brickell Assuring external accessibility for devices on a network
CN108009918A (zh) * 2017-11-23 2018-05-08 深圳捷汇科技有限公司 区块链共识算法交易系统的记账方法及电子设备
CN108334307A (zh) * 2017-12-29 2018-07-27 北京欧链科技有限公司 基于区块链的数据筛选方法和装置
CN108389044A (zh) * 2018-02-28 2018-08-10 北京比特大陆科技有限公司 工作量证明的计算方法和系统、电子设备、程序和介质
CN108416578A (zh) * 2018-03-14 2018-08-17 郑杰骞 一种区块链系统及数据处理方法
CN108805569A (zh) * 2018-05-29 2018-11-13 阿里巴巴集团控股有限公司 基于区块链的交易处理方法及装置、电子设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
DU MINGXIAO 等: "A review on consensus algorithm of blockchain" *
张佳妮 等: "基于区块链的物联网密钥协商协议" *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111562947A (zh) * 2020-04-01 2020-08-21 支付宝实验室(新加坡)有限公司 一种业务处理方法、装置及电子设备
CN111562947B (zh) * 2020-04-01 2021-08-03 支付宝实验室(新加坡)有限公司 一种业务处理方法、装置及电子设备

Also Published As

Publication number Publication date
US10540344B2 (en) 2020-01-21
EP3552167B1 (en) 2021-05-05
WO2019072287A3 (en) 2019-10-03
SG11201903529TA (en) 2019-05-30
CA3041211C (en) 2020-05-05
RU2720529C1 (ru) 2020-04-30
WO2019072287A2 (en) 2019-04-18
JP6704627B1 (ja) 2020-06-03
BR112019007995A2 (pt) 2019-11-12
US20190243820A1 (en) 2019-08-08
ZA201902488B (en) 2022-05-25
MX2019004669A (es) 2019-08-21
PL3552167T3 (pl) 2021-10-25
CN110431580B (zh) 2023-05-16
KR102121157B1 (ko) 2020-06-10
CA3041211A1 (en) 2019-04-18
ES2880453T3 (es) 2021-11-24
AU2018348327B2 (en) 2020-04-09
EP3552167A2 (en) 2019-10-16
PH12019500870A1 (en) 2019-12-02
EP3552167A4 (en) 2020-03-11
JP2020518872A (ja) 2020-06-25

Similar Documents

Publication Publication Date Title
US10503720B2 (en) Providing eventual consistency for multi-shard transactions
CN110431580A (zh) 使用随机数表来减少并发区块链交易失败
TWI706647B (zh) 區塊鏈網路中的功能即服務(faas)平臺
US11030188B2 (en) Platform for atomic transfer of smart assets within blockchain networks
EP4254183A1 (en) Transaction processing method and apparatus, computer device, and storage medium
US11037143B2 (en) Platform for atomic transfer of smart assets within blockchain networks
EP3905178A1 (en) Blockchain-based resource allocation method and apparatus, and electronic device
CN108021338A (zh) 用于实现两层提交协议的系统和方法
US20190251071A1 (en) Blockchain data relationship structuring scheme based on binary log replication
CN110402435A (zh) 具有松散耦合节点的多主数据库中的单调交易
KR20190128033A (ko) 암호화폐 거래소의 암호화폐 보관 방법 및 그 시스템

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40016696

Country of ref document: HK

TA01 Transfer of patent application right

Effective date of registration: 20200923

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

Effective date of registration: 20200923

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant before: Advanced innovation technology Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant