CN117957528A - 用于许可的区块链中智能合约的并行处理的方法和系统 - Google Patents
用于许可的区块链中智能合约的并行处理的方法和系统 Download PDFInfo
- Publication number
- CN117957528A CN117957528A CN202280062501.5A CN202280062501A CN117957528A CN 117957528 A CN117957528 A CN 117957528A CN 202280062501 A CN202280062501 A CN 202280062501A CN 117957528 A CN117957528 A CN 117957528A
- Authority
- CN
- China
- Prior art keywords
- blockchain
- schedule
- schedules
- smart contract
- sets
- 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
- 238000000034 method Methods 0.000 title claims abstract description 41
- 238000012545 processing Methods 0.000 title description 16
- 238000013479 data entry Methods 0.000 claims abstract description 6
- 238000012546 transfer Methods 0.000 claims description 20
- 238000004891 communication Methods 0.000 description 24
- 230000006870 function Effects 0.000 description 17
- 238000004590 computer program Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 238000010200 validation analysis Methods 0.000 description 9
- 238000012795 verification Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 8
- 238000013475 authorization Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000007792 addition Methods 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000010267 cellular communication Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 150000003839 salts Chemical class 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- 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/3247—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 digital signatures
-
- 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
-
- 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
-
- 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/3297—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 time stamps, e.g. generation of time stamps
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
一种用于区块链中智能合约中的调度的并行执行的方法,包括:由区块链网络中的区块链节点接收智能合约;识别作为智能合约的输入的调度;将调度分离成集合,其中每个集合包括至少一个调度,其中每个调度包括与区块链中的先前块中的条目相关联的共用引用值;基于预定准则确定每个集合中的一个有效调度;使用针对每个集合的所述一个有效调度执行智能合约;生成用于区块链的新区块,该新区块包括通过智能合约的执行生成的区块链数据条目;以及将生成的新区块传输到区块链网络中的多个附加节点。
Description
相关申请的交叉引用
本申请要求于2021年9月16日提交的美国非临时申请No.17/476,858的权益和优先权。上述申请的全部公开内容通过引用并入本文。
技术领域
本公开涉及区块链中智能合约中的调度(dispatch)的并行执行,具体而言涉及与智能合约相关的所有调度的识别以及跨节点的预定规则的使用,使得所有调度可以跨所有节点一致地并行执行,从而维持准确性和不变性。
背景技术
区块链最初是作为一种用于使用密码货币进行支付交易的存储机制创建的。使用区块链提供了许多好处,诸如去中心化、分布式计算、关于交易的透明度,并且还为交易中涉及的个人或实体提供匿名性。区块链更受欢迎的方面之一是它是不可变的记录:作为链的一部分的每笔交易都存储在其中,并且由于计算要求和带宽限制而无法改变,特别是当链变得越来越长且区块链网络增加更多节点时。
区块链的另一个流行方面是智能合约,智能合约是存储在区块链上的自执行合约,在满足准则时自动执行,并且结果是基于对合约的(一个或多个)输入(也称为调度)预先确定的。智能合约可以是多种多样的并且用于多种目的,诸如在托管(escrow)能力中,在满足准则时自动转移一定量的货币或其它资产,诸如财产或另一种资产的所有权的转移。在一些情况下,智能合约可以被配置为执行数十或数百次,诸如出于方便或效率的考虑。在此类情况下,合约按顺序执行,其中合约每次为每个调度执行一次,直到所有适用的调度均已执行。
在传统的区块链系统中,智能合约必须顺序执行,以防智能合约的执行可能违反区块链的原则。例如,智能合约可以有多个调度,当智能合约执行时,这些调度尝试转移相同的资产。在这种情况下,只有一次执行应当成功完成,因为无法验证第二次执行是否尝试转移已转移的资产。因此,区块链顺序执行对智能合约的调度,以防止资产可能被花费或转移两次的情况。但是,要求智能合约的顺序执行会花费大量时间,尤其是当智能合约有大量输入时。如果区块链需要频繁添加区块(诸如以毫秒的量级),那么顺序执行对于区块链来说可能太慢。
因此,需要一种可以使区块链节点能够并行执行智能合约的所有调度的技术系统,以利用强大的计算资源并且执行所期望的功能而不受限制且不延迟在区块链中新区块的添加,同时仍然防止未经授权的交易和资产转移。
发明内容
本公开提供了对用于在区块链中智能合约中的调度的并行执行的系统和方法的描述。当区块链节点要执行智能合约时,区块链节点首先使用智能合约识别所有要执行的调度。在开始执行之前,区块链节点识别每个调度的引用数据,该引用数据可以是区块链上的先前交易,其资产将作为用于那个调度的智能合约的执行的一部分被再次转移。具有相同引用值的每个调度都被分组在一起,并且由区块链节点使用预定准则(诸如每个调度中包括的散列值的排序)从每个组中选择单个调度。区块链节点使用从每个组中选择的调度和任何单独调度来并行地执行智能合约,这使得智能合约对于每个有效调度的执行都比使用顺序执行要快得多。因为为具有共用引用值的每个调度仅选择单个调度,所以不存在那个引用被多次使用的风险,多次使用在区块链中是被禁止的(例如,这种交易将无法通过验证)。因此,智能合约可以并行执行以改进处理时间,而不牺牲区块链的益处或使任何区块链数据面临风险。
一种用于区块链中智能合约中的调度的并行执行的方法,包括:由区块链网络中的区块链节点的接收者接收与区块链相关联的智能合约;由区块链节点的处理器识别多个调度作为智能合约的输入;由区块链节点的处理器将所述多个调度分离成调度的一个或多个集合,其中调度的每个集合包括至少一个调度并且其中调度的集合中的每个调度包括与区块链的先前区块中的条目相关联的共用引用值;由区块链节点的处理器基于预定准则确定调度的所述一个或多个集合中的每个集合中的一个有效调度;由区块链节点的处理器使用针对调度的所述一个或多个集合中的每个集合的所述一个有效调度来执行智能合约;由区块链节点的处理器生成用于区块链的新区块,其中所述新区块包括一个或多个区块链数据条目,所述一个或多个区块链数据条目包括通过智能合约的执行生成的数据;以及由区块链节点的传输器将生成的新区块传输到区块链网络中的多个附加节点。
一种用于区块链中智能合约中的调度的并行执行的系统,包括:区块链网络;区块链网络中包括的区块链节点;以及区块链网络中的多个附加节点,其中区块链节点包括:接收器,接收与区块链相关联的智能合约;处理器,识别作为智能合约的输入的多个调度,将所述多个调度分离成调度的一个或多个集合,其中调度的每个集合包括至少一个调度并且其中调度的集合中的每个调度包括与区块链的先前区块中的条目相关联的共用引用值,基于预定准则确定调度的所述一个或多个集合中的每个集合中的一个有效调度,使用针对调度的所述一个或多个集合中的每个集合的所述一个有效调度来执行智能合约,以及生成用于区块链的新区块,其中所述新区块包括一个或多个区块链数据条目,所述一个或多个区块链数据条目包括通过智能合约的执行生成的数据;以及传输器,将生成的新区块传输到多个附加节点。
附图说明
当结合附图阅读时,从以下示例性实施例的详细描述中可以最好地理解本公开的范围。附图中包括以下各图:
图1是图示根据示例性实施例的用于智能合约中调度的并行执行的高级系统架构的框图。
图2是图示根据示例性实施例的用于智能合约中调度的并行执行的图1的系统的区块链节点的框图。
图3是图示根据示例性实施例的使用图2的区块链节点和图1的系统并行执行智能合约中的调度的过程的流程图。
图4是图示根据示例性实施例的用于智能合约中调度的并行执行的示例性方法的流程图。
图5是图示根据示例性实施例的计算机系统架构的框图。
根据下文提供的详细描述,本公开的其它应用领域将变得清楚。应该理解的是,示例性实施例的详细描述仅用于说明的目的,因此,并不旨在必然地限制本公开的范围。
具体实施方式
专业术语
区块链-基于区块链货币的所有交易的公共分类账。一个或多个计算设备可以包括区块链网络,区块链网络可以被配置为处理和记录交易,作为区块链中的区块的一部分。一旦区块完成,该区块就被添加到区块链中,并由此更新交易记录。在许多情况下,区块链可以是按时间次序的交易的分类账,或者可以以适合区块链网络使用的任何其它次序呈现。在一些配置中,记录在区块链中的交易可以包括目的地地址和货币金额,使得区块链记录多少货币归因于具体地址。在一些情况下,交易是金融的而其它的不是金融的,或者可能包括附加的或不同的信息(诸如源地址、时间戳等等)。在一些实施例中,区块链还可以或者可替代地包括几乎任何类型的数据作为被放置在分布式数据库中的表格的形式或者作为需要被放置在分布式数据库中的表格的形式,该分布式数据库维持不断增长的数据记录列表,该数据记录列表能够防止甚至尤其运营商进行的篡改和修订,并且可以由区块链网络通过工作证明和/或与此相关的任何其它合适的核实技术来确认和验证。在一些情况下,关于给定交易的数据还可以包括附加数据,这些附加数据不直接属于附加到交易数据的交易的一部分。在一些情况下,将这些数据包括在区块链中可以构成交易。在这种情况下,区块链可以不与具体的数字、虚拟、法定或其它类型的货币直接相关联。
用于智能合约的并行执行的系统
图1图示了用于通过使用分组和预定准则来并行执行作为区块链中的智能合约的输入的调度的系统100。
系统100可以包括一个或多个区块链节点102。每个区块链节点102可以是区块链网络104的一部分。每个区块链节点102可以是计算系统,如图2和图5中所示,下面将更详细地讨论的,该计算系统被配置为执行与区块链的处理和管理相关的功能,包括区块链数据值的生成、提出的区块链交易的核实、数字签名的核实、新区块的生成、新区块的验证以及区块链的副本的维护。
区块链可以是至少包括多个区块的分布式分类帐。每个区块可以至少包括区块头和一个或多个数据值。每个区块头可以至少包括时间戳、区块引用值和数据引用值。时间戳可以是生成区块头的时间,并且可以使用任何合适的方法(例如,UNIX时间戳、DateTime等)来表示。区块引用值可以是引用区块链中较早区块(例如,基于时间戳)的值。在一些实施例中,区块头中的区块引用值可以是对相应区块之前的最近添加的区块的区块头的引用。在示例性实施例中,区块引用值可以是经由对最近添加的区块的区块头进行散列而生成的散列值。类似地,数据引用值可以是对存储在包括区块头的区块中的一个或多个数据值的引用。在示例性实施例中,数据引用值可以是经由但对一个或多个数据值进行散列生成的散列值。例如,区块引用值可以是使用一个或多个数据值生成的Merkle树的根。
每个区块头中使用区块引用值和数据引用值可导致区块链不可变。对数据值的任何尝试的修改会要求为该块生成新的数据引用值,从而这会要求新生成后续区块的区块引用值,进一步要求在每个后续区块中生成新的区块引用值。在生成新区块并将其添加到区块链之前,这必须在区块链网络104中的每个区块链节点102中执行和更新,以便使改变永久化。计算和通信限制可使这种修改极其困难(如果不是不可能的话),从而使区块链不可变。
在一些实施例中,区块链可以被用于存储关于在两个不同区块链钱包之间进行的区块链交易的信息。区块链钱包可以包括密码密钥对的私钥,该私钥被用于生成用作付款人对区块链交易的授权的数字签名,其中数字签名可以由区块链网络104使用密码密钥对的公钥来核实。在一些情况下,术语“区块链钱包”可以专门指私钥。在其它情况下,术语“区块链钱包”可以指存储私钥以供其在区块链交易中使用的计算设备(例如,发送者设备106或接收者设备108a、108b)。例如,每个计算设备可以各自具有其自己的用于相应密码密钥对的私钥,并且每个计算设备可以是用于与和区块链网络相关联的区块链进行交易的区块链钱包。计算设备可以是适合存储和利用区块链钱包的任何类型的设备,诸如台式计算机、膝上型计算机、笔记本计算机、平板计算机、蜂窝电话、智能电话、智能手表、智能电视、可穿戴计算设备、可植入计算设备等。
如果适用的话,存储在区块链中的每个区块链数据值可以与区块链交易或其它数据存储对应。区块链交易可以至少包括:使用发送者的私钥生成的货币的发送者(例如,发送者设备106)的数字签名、使用接收方的公钥生成的货币的接收方(例如,接收者设备108a、108b)的区块链地址,以及转移的区块链货币金额或存储的其它数据。在区块链用于与货币不同的数据存储的情况下,货币金额可以被此类其它数据替代。在一些区块链交易中,交易还可以包括发送者的当前存储区块链货币的一个或多个区块链地址(例如,数字签名证明他们可以访问此类货币),以及使用发送者的公钥为发送者要保留的任何改变生成的地址。已发送可以在未来交易中使用的密码货币的地址被称为“输出”地址,因为每个地址之前都被用于捕获先前区块链交易的输出,也称为“未花费的交易”,因为有货币发送到先前交易中的地址,但该货币仍未花费。在一些情况下,区块链交易还可以包括发送者的公钥,供实体在验证交易时使用。对于区块链交易的传统处理,这种数据可以由发送者或接收方提供给区块链网络104中的区块链节点102。节点可以使用发送者的钱包的密码密钥对中的公钥来核实数字签名,并且还核实发送者对资金的访问(例如,未花费的交易尚未被花费并被发送到与该发送者的钱包相关联的地址),这个过程称为交易的“确认”,然后将区块链交易包含在新的区块中。在传统区块链实施方式中,新区块可以在被添加到区块链并且分发到区块链网络104中的所有区块链节点102之前由区块链网络104中的其它节点验证。在区块链数据值可能与区块链交易无关,而是与其它类型数据的存储相关的情况下,区块链数据值可以仍然包括或以其它方式涉及数字签名的验证。
在一些实施例中,区块链可以是许可的区块链。许可的区块链可以是只有授权的参与者才可以使用区块链进行交易(例如,发送或接收资产或以其它方式提供数据)的区块链。在此类情况下,可以由区块链节点102向参与者提供授权,诸如向其提供密码密钥对或通过向区块链节点102提供其自己的公钥以在其中注册,其中区块链节点102可以确保提交给区块链网络104的任何交易都来自授权的设备(例如,通过使用注册的公钥来验证交易)。在此类实施例中,可以由区块链中的任何参与者执行的功能会受到限制和/或经历授权。
在系统100中,智能合约可以存储在与区块链网络104相关联的区块链中。智能合约可以是自执行的合约,其中执行之后智能合约的结果可以是要存储在区块链中的新区块链数据值,诸如新区块链交易。智能合约可以使用一个或多个输入(也称为调度)来执行,然后生成新区块链数据值。智能合约可以是自执行的,使得智能合约将在识别出有效调度时自动触发执行,或者将在满足特定准则时自动触发,这可以导致特定调度作为输入被提供给智能合约以供执行。在示例性实施例中,智能合约的每个调度将参考区块链上的先前区块链数据值,诸如通过使用区块链数据值的散列值或与区块链数据值一起存储在区块链中的唯一标识值。当调度作为输入被馈送到智能合约时,智能合约的执行可产生新区块链数据值,诸如区块链交易,在一些情况下,这可以取决于调度本身,诸如调度中的值可导致与智能合约的执行不同的输出。
在示例中,智能合约可以用于托管。在这种示例中,与发送者设备106相关联的买方可能有兴趣以所决定的货币金额从与接收者设备108a相关联的卖方购买资产。买方可以经由区块链交易将货币金额转移到托管区块链钱包。智能合约可以作为交易的一部分或与交易分开存储,其中智能合约针对资产所有权从卖方转移(诸如通过使转让合约或其散列值存储在区块链中)到买方的证据监视区块链。一旦检测到证据,智能合约就可以执行,这可以将货币从托管区块链钱包转移到卖方的指定账户。在这种情况下,调度可以是所有权转移的证据,执行结果是将货币从托管钱包转移到卖方钱包的交易。
在系统100中,智能合约可以存储在区块链中或者以其它方式提供给可以具有与其相关联的多个不同调度的区块链节点102。在传统系统中,区块链节点102将顺序执行每个调度的智能合约。在系统100中,区块链节点102可以被配置为并行执行用于智能合约的所有调度。
区块链节点102可以首先识别适用于智能合约的所有调度,这可以使用包括在智能合约本身中的信息来识别。例如,智能合约可以明确地列出所有调度,或者可以包括要由区块链节点102使用以识别调度的数据,诸如通过指定一个或多个区块链钱包、区块链数据值、交易标识符等。区块链节点102然后可以将所有调度分组为调度的集合。调度的集合中的每个调度可以具有共用引用值,该引用值可以是区块链数据值或者存储在区块链中的该调度所引用的其它值。在示例中,第一调度可以指用于将100个货币单位转移到发送者设备106的区块链交易,其中智能合约的执行会将那100个货币单位从发送者设备106转移到接收者设备108a。在该示例中,第二调度可以指将100个货币单位转移到发送者设备106的同一区块链交易,其中针对那个调度执行智能合约会将那100个货币单位从发送者设备106转移到接收者设备108b。在这种示例中,两个调度都利用相同的引用值(例如,用于将100个货币单位转移到发送者设备106的区块链交易)。因此,两个调度将被区块链节点102放入同一集合中。
一旦区块链节点102已将所有调度组织成调度的集合(其中一些调度可以是集合中的唯一调度),区块链节点102就可以为每个集合选择单个调度。区块链节点102可以使用任何合适的预定准则为调度的集合选择单个调度。在一个示例中,区块链节点102可以对集合中的所有调度进行排序,然后选择第一个调度,或者排序中的其它预定调度(例如,中间、最后等)。区块链节点102可以使用任何合适的数据进行排序,诸如执行智能合约所产生的结果交易的散列、调度被接收或输入到智能合约的时间、调度在智能合约本身中的排序、由区块链节点102生成的调度本身的散列等。在另一个示例中,区块链节点102可以使用用于随机或伪随机选择的算法,其中区块链网络104中的每个区块链节点102使用具有相同的适用输入(例如,种子、权重等)的相同算法,使得每个区块链节点102将做出相同的选择。可以使用任何合适的准则,使得区块链节点102为调度的集合选择的单个调度对于执行该过程的每个区块链节点102来说是相同的。
一旦为每个集合选择了单个调度,区块链节点102就可以使用为调度的每个集合选择的单个调度来针对那个集合执行智能合约。在示例性实施例中,区块链节点102可以并行执行智能合约的执行,其中并行执行的数量可以基于区块链节点102的处理器核、可用的计算资源或其它合适的准则。例如,区块链节点102可以具有八核处理器并且可以一次进行智能合约的八次执行,这可以使得智能合约比使用顺序执行显著更快地执行(例如,快近八倍)。
针对调度的每个集合执行智能合约可以导致针对调度的每个集合生成新的区块链数据值或者要包括在区块链数据值中的数据。区块链节点102然后可以使用由区块链节点102使用传统方法和系统生成的新区块中的区块链数据值。所生成的区块可以被传输到区块链网络104中的其它区块链节点102以使用传统方法进行验证和确认。一旦新区块已被确认,该区块就可以由区块链网络104中的所有区块链节点102添加到区块链。
通过将调度组织成调度的集合并且仅执行每个集合中的单个调度,不会将无效的区块链交易添加到区块链,因为不会多于一次使用引用值。例如,在上面的示例中,将仅选择发送者设备106进行的100个货币单位的转移之一,因为两次转移在调度的单个集合中。因此,只有接收者设备108a或接收者设备108b(例如,取决于在选择集合中的单个调度时使用的准则)将接收到区块链中的100个货币单位,这否定了区块链网络104中双花的可能性。因此,本文讨论的方法和系统提供了智能合约执行的显著改进的处理速度,而不牺牲区块链的任何安全性或特点。
区块链节点
图2图示了区块链节点102的实施例,诸如系统100中的区块链节点102。对于相关领域的技术人员来说清楚的是,图2中所示的区块链节点102的实施例仅作为说明而提供,并且可以不是穷举适合于执行本文讨论的功能的区块链节点102的所有可能配置。例如,图5中所示并在下面更详细讨论的计算机系统500可以是区块链节点102的合适配置。
区块链节点102可以包括接收设备202。接收设备202可以被配置为经由一种或多种网络协议通过一个或多个网络接收数据。在一些情况下,接收设备202可以被配置为经由一种或多种通信方法(诸如射频、局域网、无线区域网、蜂窝通信网络、蓝牙、因特网等)从其它区块链节点102、发送者设备106、接收者设备108a、108b以及其它系统和实体接收数据。在一些实施例中,接收设备202可以包括多个设备,诸如用于通过不同网络接收数据的不同接收设备,诸如用于通过局域网接收数据的第一接收设备和用于经由因特网接收数据的第二接收设备之类。接收设备202可以接收以电子方式传输的数据信号,其中数据可以被叠加或以其它方式编码在数据信号上,并且经由接收设备202对数据信号的接收来解码、解析、读取或以其它方式获得。在一些情况下,接收设备202可以包括解析模块,用于解析接收到的数据信号以获得叠加在其上的数据。例如,接收设备202可以包括解析器程序,该解析器程序被配置为接收接收到的数据信号并将其变换成用于由处理设备执行的功能的可用输入,以执行本文描述的方法和系统。
接收设备202可以被配置为接收由其它区块链节点102以电子方式传输的数据信号,该数据信号可以与区块链数据值、数据值标识符、区块、区块链数据、确认消息、智能合约、预定准则、调度等叠加或以其它方式用其进行编码。接收设备202可以被配置为接收由发送者设备106和/或接收者设备108a、108b以电子方式传输的数据信号,该数据信号可以与区块链数据值、公钥、数字签名、区块链交易数据、智能合约、用于智能合约的调度、用于区块链网络104的授权请求等叠加或以其它方式用其进行编码。
区块链节点102还可以包括通信模块204。通信模块204可以被配置为在区块链节点102的模块、引擎、数据库、存储器和其它组件之间传输数据以用于执行本文讨论的功能。通信模块204可以包括一种或多种通信类型并且利用各种通信方法用于计算设备内的通信。例如,通信模块204可以包括总线、触针连接器、接线等。在一些实施例中,通信模块204还可以被配置为在区块链节点102的内部组件与区块链节点102的外部组件(诸如外部连接的数据库、显示设备、输入设备等)之间进行通信。区块链节点102还可以包括处理设备。处理设备可以被配置为执行本文所讨论的区块链节点器102的功能,这对于相关领域的技术人员来说是清楚的。在一些实施例中,处理设备可以包括和/或由专门被配置为执行处理设备的一个或多个功能的多个引擎和/或模块(诸如查询模块214、生成模块216、验证模块218等)组成。如本文所使用的,术语“模块”可以是被特别编程为接收输入、使用该输入执行一个或多个处理并且提供输出的在硬件上执行的软件或硬件。基于本公开,本领域技术人员将清楚由各种模块执行的输入、输出和处理。
区块链节点102还可以包括区块链数据206,其可以存储在区块链节点102的存储器212中或者存储在区块链节点102内的单独区域中或者可由其访问。区块链数据206可以包括区块链,该区块链可以包括多个区块并且与区块链网络104相关联。区块链数据206还可以或可替代地包括与可以由区块链节点102使用的一个或多个区块链钱包相关联的任何数据,诸如密码密钥对、未花费的交易输出、数字资产量、用于区块链网络104的网络标识符、智能合约、签名生成算法、加密算法、交易账户数据、账户余额、用于第三方服务的通信信息、预定准则、注册的参与者设备、设备注册数据等。
区块链节点102还可以包括存储器212。存储器212可以被配置为存储供区块链节点102在执行本文讨论的功能时使用的数据,诸如公钥和私钥、对称密钥等。存储器212可以被配置为使用合适的数据格式化方法和方案来存储数据,并且可以是任何合适类型的存储器,诸如只读存储器、随机存取存储器等。存储器212可以包括例如加密密钥和算法、通信协议和标准、数据格式化标准和协议、用于处理设备的模块和应用的程序代码,以及可以适合区块链节点102在执行本文公开的功能时使用的其它数据,如对相关领域的技术人员来说将是清楚的。在一些实施例中,存储器212可以由关系数据库组成或者可以以其它方式包括关系数据库,该关系数据库利用结构化查询语言来存储、识别、修改、更新、访问存储在其中的结构化数据集等。存储器212可以被配置为存储例如密码密钥、盐(salt)、随机数、用于其它计算系统的通信信息、生成算法、预定准则、排序规则等。
区块链节点102可以包括查询模块214。查询模块214可以被配置为对数据库执行查询以识别信息。查询模块214可以接收一个或多个数据值或查询字符串,并且可以基于所指示的数据库(诸如区块链节点102的存储器)执行查询字符串以识别存储在其中的信息。然后,查询模块214可以根据需要将识别出的信息输出到区块链节点102的适当引擎或模块。查询模块214可以例如对区块链数据206执行查询以识别已被触发执行的智能合约的所有可能的调度。
区块链节点102还可以包括生成模块216。生成模块216可以被配置为生成供区块链节点102在执行本文讨论的功能时使用的数据。生成模块216可以接收指令作为输入,可以基于指令生成数据,并且可以将生成的数据输出到区块链节点102的一个或多个模块。例如,生成模块216可以被配置为生成密码密钥对、生成数字签名、生成区块链数据值、生成新区块、使用所选择的调度来执行智能合约等。生成模块216还可以被配置为使用预定准则从调度的集合中选择(例如,生成)单个调度,这可以包括基于适用的规则对调度的集合中的每个调度进行排序以及从如预定准则中指示的有序集合中选择单个调度。
区块链节点102还可以包括验证模块218。验证模块218可以被配置为执行区块链节点102的验证作为本文讨论的功能的一部分。验证模块218可以接收指令作为输入,指令还可以包括要在执行验证时使用的数据,可以根据请求执行验证,并且可以将验证的结果输出到区块链节点102的另一个模块或引擎。验证模块218可以例如被配置为使用合适的签名生成算法和密钥来验证数字签名、验证区块链交易、验证智能合约、验证参与者设备的资格等。
区块链节点102还可以包括传输设备220。传输设备220可以被配置为经由一种或多种网络协议通过一个或多个网络传输数据。在一些情况下,传输设备220可以被配置为经由一种或多种通信方法、局域网、无线区域网、蜂窝通信、蓝牙、射频、因特网等向其它区块链节点102、发送者设备106、接收者设备108a、108b以及其它实体传输数据。在一些实施例中,传输设备220可以包括多个设备,诸如用于通过不同网络传输数据的不同传输设备,诸如用于通过局域网传输数据的第一传输设备和用于经由因特网传输数据的第二传输设备。传输设备220可以电子方式传输具有可以由接收计算设备解析的叠加数据的数据信号。在一些情况下,传输设备220可以包括用于将数据叠加、编码或以其它方式格式化为适合于传输的数据信号的一个或多个模块。
传输设备220可以被配置为以电子方式向其它区块链节点102传输数据信号,其中数据信号可以与区块链数据值、数据值标识符、区块、区块链数据、确认消息、智能合约、预定准则、调度等叠加或以其它方式用其进行编码。传输设备220还可以被配置为以电子方式向发送者设备106和/或接收者设备108a、108b传输数据信号,数据信号可以与对智能合约或调度的请求、用于参与区块链网络104的授权数据、区块链数据206等叠加或以其它方式用其进行编码。
用于智能合约的并行执行的过程
图3图示了如由图1的系统100中的区块链节点102执行的智能合约中调度的并行执行的过程300。
在步骤302中,区块链节点102的接收设备202可以接收智能合约以供执行。在一些情况下,智能合约可以由参与者设备(诸如发送者设备106或接收者设备108a、108b)提交。在其它情况下,智能合约可以存储在与区块链节点102所属的区块链网络104相关联的区块链中的现有区块中,其中智能合约可以被触发以供执行,诸如基于在合约本身中阐述的准则(例如,作为检测到调度或到期时间的结果)。在步骤304中,区块链节点102的查询模块214可以对区块链数据206执行查询以识别适用于智能合约的所有调度,诸如通过识别存储在区块链中的智能合约本身中的调度或者基于智能合约中的准则识别调度。
在步骤306中,区块链节点102的生成模块216可以为在步骤304中由区块链节点识别出的所有调度生成多个不同的调度集合。调度集合中的每个调度可以包括共用引用值,该共用引用值可以是存储在区块链中的先前区块链数据值的散列值,诸如在以上示例中用于资产到发送者设备106的转移。在只有一个调度具有不被任何其它调度共享的引用值的情况下,那个调度可以是调度集合中的唯一调度。
在步骤308中,区块链节点102可以确定是否存在集合中具有多个调度的任何调度集合。如果存在包括多个调度的至少一个调度集合,那么在步骤310中,区块链节点102的生成模块216可以使用预定准则为每个这样的集合选择单个调度。在一个示例中,单个调度的选择可以包括对集合中的所有调度进行排序,然后根据预定准则从排序的集合中选择单个调度。一旦已经针对调度的每个集合识别出单个调度,或者如果不存在包括多于一个调度的调度集合,那么在步骤312中,区块链节点102的生成模块216可以对于每个集合使用单个识别出的调度或唯一调度针对每个调度集合执行智能合约,其中对于每个调度集合执行智能合约可以为每个集合生成新的区块链数据值。在示例性实施例中,由区块链节点102在步骤312中进行的智能合约的执行可以并行地执行。
在步骤314中,区块链节点102的生成模块216可以使用作为智能合约的执行结果而生成的区块链数据值来生成新区块。新区块可以包括区块头以及生成的区块链数据值,区块头可以包括时间戳和对区块链中的先前区块的引用以及对新区块中包括的所有区块链数据值的引用。在一些情况下,附加的区块链数据值也可以被包括在新区块中,诸如用于其它交易、数据的添加、智能合约等,如可以由区块链节点102在标准过程中接收的(例如,使用接收设备202)。在步骤316中,区块链节点102的传输设备220可以将新区块以电子方式传输到区块链网络104中的多个其它区块链节点102以供确认。其它区块链节点102可以使用传统方法和系统来验证和确认新区块,其中如果得到确认,那么新区块然后可以被添加到区块链网络104中的所有区块链节点102中的区块链。
用于智能合约的并行执行的示例方法
图4图示了用于使用预定准则并行执行区块链中的智能合约中的多个调度的方法400。
在步骤402中,与区块链相关联的智能合约可以由区块链网络(例如,区块链网络104)中的区块链节点(例如,区块链节点102)的接收者(例如,接收设备202)接收。在步骤404中,可以由区块链节点的处理器(例如,经由查询模块214)识别作为智能合约的输入的多个调度。在步骤406中,多个调度可以由区块链节点的处理器(例如,经由生成模块216)分离成调度的一个或多个集合,其中调度的每个集合包括至少一个调度并且其中调度的集合中的每个调度包括与区块链中先前区块中的条目相关联的共用引用值。
在步骤408中,可以由区块链节点的处理器(例如,经由生成模块216)基于预定准则在调度的一个或多个集合中的每个集合中确定一个有效调度。在步骤410中,智能合约可以由区块链节点的处理器(例如,经由生成模块216)使用针对调度的一个或多个集合中的每个集合的一个有效调度来执行。在步骤412中,可以由处理器(例如,经由生成模块216)为区块链生成新区块,其中该新区块包括一个或多个区块链数据条目,该一个或多个区块链数据条目包括由智能合约的执行生成的数据。在步骤414中,生成的新区块可以由区块链节点的传输器(例如,传输设备220)传输到区块链网络中的多个附加节点。
在一个实施例中,预定准则可以包括对调度集合中的每个调度进行排序,并且用于调度集合的一个有效调度可以是对调度集合进行排序之后的第一个调度。在另外的实施例中,调度集合中的每个调度可以基于包括在相应调度中的散列值来排序。在一些实施例中,可以使用针对调度的一个或多个集合中的每个集合的一个有效调度来并行执行智能合约。在一个实施例中,区块链可以是许可的区块链。
在一些实施例中,共用引用值可以是区块链中的区块链交易的标识符。在一个实施例中,使用一个有效调度执行智能合约可以生成转移资产的新区块链交易,并且通过执行智能合约生成的数据可以包括针对调度的一个或多个集合中的每个集合的新区块链交易。在另外的实施例中,针对一个有效调度在新的区块链交易中转移的资产可以在包括该一个有效调度的调度的集合中所包括的共用引用值中被识别。
计算机系统架构
图5图示了计算机系统500,其中本公开的实施例或其部分可以被实现为计算机可读代码。例如,图1和图2的区块链节点102可以使用硬件、其上存储有指令的非暂态计算机可读介质或其组合在计算机系统500中实现,并且可以在一个或多个计算机系统或其它处理系统中实现。硬件可以实施用于实现图3和图4的方法的模块和组件。
如果使用可编程逻辑,那么这种逻辑可以在由可执行软件代码配置的商业上可用的处理平台上执行,以成为专用计算机或专用设备(例如,可编程逻辑阵列、专用集成电路等)。本领域普通技术人员可以认识到的是,所公开的主题的实施例可以用各种计算机系统配置来实践,包括多核多处理器系统、小型计算机、大型计算机、与分布式功能链接或集群的计算机,以及可以嵌入到几乎任何设备中的普及型或微型计算机。例如,可以使用至少一个处理器设备和存储器来实现上述实施例。
本文讨论的处理器单元或设备可以是单个处理器、多个处理器或其组合。处理器设备可以具有一个或多个处理器“核心”。如本文讨论的术语“计算机程序介质”、“非暂态计算机可读介质”和“计算机可用介质”通常用于指有形介质,诸如可移动存储单元518、可移动存储单元522和安装在硬盘驱动器512中的硬盘之类。
就这个示例计算机系统500而言描述了本公开的各种实施例。在阅读本描述之后,相关领域的技术人员将认识到如何使用其它计算机系统和/或计算机架构来实现本公开。虽然操作可以被描述为顺序处理,但是一些操作实际上可以并行地、并发地和/或在分布式环境中执行,并且程序代码可以在本地或远程存储以供单个处理器或多个处理器机器访问。此外,在一些实施例中,可以重新布置操作的次序而不脱离所公开的主题的精神。
处理器设备504可以是被专门配置为执行本文讨论的功能的专用或通用处理器设备。处理器设备504可以连接到通信基础设施506,诸如总线、消息队列、网络、多核消息传递方案等。网络可以是适于执行如本文公开的功能的任何网络,并且可以包括局域网(LAN)、广域网(WAN)、无线网络(例如,WiFi)、移动通信网络、卫星网络、因特网、光纤、同轴电缆、红外线、射频(RF)或其任意组合。其它合适的网络类型和配置对于相关领域的技术人员将是清楚的。计算机系统500还可以包括主存储器508(例如,随机存取存储器、只读存储器等)并且还可以包括辅助存储器510。辅助存储器510可以包括硬盘驱动器512和可移动存储驱动器514,诸如软盘驱动器、磁带驱动器、光盘驱动器、闪存存储器等。
可移动存储驱动器514可以以众所周知的方式从可移动存储单元518读取和/或写入可移动存储单元518。可移动存储单元518可以包括可以由可移动存储驱动器514读取和写入的可移动存储介质。例如,如果可移动存储驱动器514是软盘驱动器或通用串行总线端口,那么可移动存储单元518可以分别是软盘或便携式闪存驱动器。在一个实施例中,可移动存储单元518可以是非暂态计算机可读记录介质。
在一些实施例中,辅助存储器510可以包括用于允许计算机程序或其它指令被加载到计算机系统500中的替代部件,例如,可移动存储单元522和接口520。此类部件的示例可以包括程序盒和盒接口(例如,如在视频游戏系统中找到的)、可移动存储器芯片(例如,EEPROM、PROM等)和相关联的插座,以及其它可移动存储单元522和接口520,如对于相关领域的技术人员将显而易见的。
存储在计算机系统500中(例如,在主存储器508和/或辅助存储器510中)的数据可以存储在任何类型的合适的计算机可读介质上,诸如光学存储装置(例如,光盘、数字多功能光盘、蓝光光盘等)或磁带存储装置(例如,硬盘驱动器)之类。可以以任何类型的合适数据库配置来配置数据,诸如关系数据库、结构化查询语言(SQL)数据库、分布式数据库、对象数据库等。合适的配置和存储类型对于相关领域的技术人员将是清楚的。
计算机系统500还可以包括通信接口524。通信接口524可以被配置为允许软件和数据在计算机系统500和外部设备之间传递。示例性通信接口524可以包括调制解调器、网络接口(例如,以太网卡)、通信端口、PCMCIA插槽和卡等。经由通信接口524传送的软件和数据可以是信号的形式,其可以是电子的、电磁的、光学的或其它信号,如对于相关领域的技术人员来说将清楚的。信号可以经由通信路径526行进,通信路径526可以被配置为承载信号并且可以使用接线、电缆、光纤、电话线、蜂窝电话链路、射频链路等来实现。
计算机系统500还可以包括显示器接口502。显示器接口502可以被配置为允许数据在计算机系统500和外部显示器530之间传递。示例性显示器接口502可以包括高清晰多媒体接口(HDMI)、数字视频接口(DVI)、视频图形阵列(VGA)等。显示器530可以是用于显示经由计算机系统500的显示器接口502传输的数据的任何合适类型的显示器,包括阴极射线管(CRT)显示器、液晶显示器(LCD)、发光二极管(LED)显示器、电容式触摸显示器、薄膜晶体管(TFT)显示器等。
计算机程序介质和计算机可用介质可以指存储器,诸如可以是存储器半导体(例如,DRAM等等)的主存储器508和辅助存储器510。这些计算机程序产品可以是用于向计算机系统500提供软件的部件。计算机程序(例如,计算机控制逻辑)可以存储在主存储器508和/或辅助存储器510中。计算机程序也可以经由通信接口524来接收。此类计算机程序在被执行时可以使得计算机系统500能够实现本文所讨论的本方法。特别地,计算机程序在被执行时可以使得处理器设备504能够实现由图3和图4所示的方法,如本文所讨论的。因而,此类计算机程序可以表示计算机系统500的控制器。在使用在硬件上执行的软件实现本公开的情况下,软件可以存储在计算机程序产品中并使用可移动存储驱动器514、接口520以及硬盘驱动器512或通信接口524加载到计算机系统500中。
处理器设备504可以包括被配置为执行计算机系统500的功能的一个或多个模块或引擎。每个模块或引擎可以使用硬件实现,并且在一些情况下,也可以利用诸如与存储在主存储器508或辅助存储器510中的程序代码和/或程序对应的在硬件上执行的软件。在此类情况下,在由计算机系统500的硬件执行之前,程序代码可以由处理器设备504(例如,由编译模块或引擎)编译。例如,程序代码可以是用编程语言编写的源代码,其被翻译成更低级别的语言(诸如汇编语言或机器代码)以供处理器设备504和/或计算机系统500的任何附加硬件组件执行。编译的处理可以包括使用词法分析、预处理、解析、语义分析、语法导向转换、代码生成、代码优化,以及可以适于将程序代码转换成适于控制计算机系统500以执行本文公开的功能的较低级别语言的任何其它技术。对于相关领域的技术人员将清楚的是,此类处理导致计算机系统500是被特别编程以执行上面讨论的功能的专门配置的计算机系统500。
除其它特征之外,符合本公开的技术提供了用于区块链中智能合约中的调度的并行执行的系统和方法。虽然上面已经描述了所公开的系统和方法的各种示例性实施例,但是应该理解的是,它们的呈现仅是为了示例的目的,而不是限制的目的。它不是详尽的并且不将本公开限制于所公开的精确形式。根据上述教导,修改和变化是可能的,或者可以从本公开的实践中获得,而不脱离广度或范围。
Claims (16)
1.一种用于区块链中智能合约中的调度的并行执行的方法,包括:
由区块链网络中的区块链节点的接收者接收与区块链相关联的智能合约;
由区块链节点的处理器识别多个调度作为智能合约的输入;
由区块链节点的处理器将所述多个调度分离成调度的一个或多个集合,其中调度的每个集合包括至少一个调度并且其中调度的集合中的每个调度包括与区块链的先前区块中的条目相关联的共用引用值;
由区块链节点的处理器基于预定准则确定调度的所述一个或多个集合中的每个集合中的一个有效调度;
由区块链节点的处理器使用针对调度的所述一个或多个集合中的每个集合的所述一个有效调度来执行智能合约;
由区块链节点的处理器生成用于区块链的新区块,其中所述新区块包括一个或多个区块链数据条目,所述一个或多个区块链数据条目包括通过智能合约的执行生成的数据;以及
由区块链节点的传输器将生成的新区块传输到区块链网络中的多个附加节点。
2.如权利要求1所述的方法,其中
所述预定准则包括对调度的集合中的每个调度进行排序,以及
针对调度的集合的所述一个有效调度是对调度的集合进行排序之后的第一个调度。
3.如权利要求2所述的方法,其中调度的集合中的每个调度是基于包括在相应调度中的散列值进行排序的。
4.如权利要求1所述的方法,其中智能合约是使用针对调度的所述一个或多个集合中的每个集合的所述一个有效调度来并行执行的。
5.如权利要求1所述的方法,其中区块链是许可的区块链。
6.如权利要求1所述的方法,其中共用引用值是区块链中的区块链交易的标识符。
7.如权利要求1所述的方法,其中
使用所述一个有效调度执行智能合约生成转移资产的新区块链交易,以及
通过智能合约的执行生成的所述数据包括针对调度的所述一个或多个集合中的每个集合的新区块链交易。
8.如权利要求7所述的方法,其中针对一个有效调度在新区块链交易中转移的资产在包括所述一个有效调度的调度的集合中所包括的共用引用值中被识别。
9.一种用于区块链中智能合约中的调度的并行执行的系统,包括:
区块链网络;
区块链网络中包括的区块链节点;以及
区块链网络中的多个附加节点,其中
区块链节点包括:
接收器,接收与区块链相关联的智能合约;
处理器,
识别作为智能合约的输入的多个调度,
将所述多个调度分离成调度的一个或多个集合,其中调度的每个集合包括至少一个调度并且其中调度的集合中的每个调度包括与区块链的先前区块中的条目相关联的共用引用值,
基于预定准则确定调度的所述一个或多个集合中的每个集合中的一个有效调度,
使用针对调度的所述一个或多个集合中的每个集合的所述一个有效调度来执行智能合约,以及
生成用于区块链的新区块,其中所述新区块包括一个或多个区块链数据条目,所述一个或多个区块链数据条目包括通过智能合约的执行生成的数据;以及
传输器,将生成的新区块传输到多个附加节点。
10.如权利要求9所述的系统,其中
预定准则包括对调度的集合中的每个调度进行排序,以及
针对调度的集合的所述一个有效调度是对调度的集合进行排序之后的第一个调度。
11.如权利要求10所述的系统,其中调度的集合中的每个调度是基于包括在相应调度中的散列值进行排序的。
12.如权利要求9所述的系统,其中智能合约是使用针对调度的所述一个或多个集合中的每个集合的所述一个有效调度来并行执行的。
13.如权利要求9所述的系统,其中区块链是许可的区块链。
14.如权利要求9所述的系统,其中共用引用值是区块链中的区块链交易的标识符。
15.如权利要求9所述的系统,其中
使用所述一个有效调度执行智能合约生成转移资产的新区块链交易,以及
通过智能合约的执行生成的所述数据包括针对调度的所述一个或多个集合中的每个集合的新区块链交易。
16.如权利要求15所述的系统,其中针对一个有效调度在新区块链交易中转移的资产在包括所述一个有效调度的调度的集合中所包括的共用引用值中被识别。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/476,858 | 2021-09-16 | ||
US17/476,858 US11936794B2 (en) | 2021-09-16 | 2021-09-16 | Method and system for parallel processing of smart contracts in permissioned blockchains |
PCT/US2022/041305 WO2023043591A1 (en) | 2021-09-16 | 2022-08-24 | Method and system for parallel processing of smart contracts in permissioned blockchains |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117957528A true CN117957528A (zh) | 2024-04-30 |
Family
ID=85478269
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280062501.5A Pending CN117957528A (zh) | 2021-09-16 | 2022-08-24 | 用于许可的区块链中智能合约的并行处理的方法和系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11936794B2 (zh) |
CN (1) | CN117957528A (zh) |
WO (1) | WO2023043591A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230107197A1 (en) * | 2021-09-28 | 2023-04-06 | Visa International Service Association | Blockchain based interaction processing |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190087793A1 (en) | 2017-08-31 | 2019-03-21 | Brown University | Adding concurrency to smart contracts |
US10673617B1 (en) * | 2018-04-24 | 2020-06-02 | George Antoniou | Methods, system and point-to-point encryption device microchip for AES-sea 512-bit key using identity access management utilizing blockchain ecosystem to improve cybersecurity |
CN112232817A (zh) * | 2018-10-25 | 2021-01-15 | 创新先进技术有限公司 | 基于区块链的交易处理方法及装置、电子设备 |
RU2731417C1 (ru) * | 2018-12-28 | 2020-09-02 | Алибаба Груп Холдинг Лимитед | Параллельное выполнение транзакций в сети цепочек блоков на основе белых списков смарт-контрактов |
CA3055108C (en) * | 2019-03-28 | 2021-10-05 | Alibaba Group Holding Limited | System and method for parallel-processing blockchain transactions |
US20220292082A1 (en) * | 2019-08-19 | 2022-09-15 | Hangzhou Qulian Technology Co., Ltd. | Method, apparatus and device for parallel execution of smart contract, and medium |
US11387979B2 (en) * | 2019-12-23 | 2022-07-12 | International Business Machines Corporation | Partially-ordered blockchain |
US20220100733A1 (en) * | 2020-09-29 | 2022-03-31 | International Business Machines Corporation | Transaction reordering in blockchain |
-
2021
- 2021-09-16 US US17/476,858 patent/US11936794B2/en active Active
-
2022
- 2022-08-24 CN CN202280062501.5A patent/CN117957528A/zh active Pending
- 2022-08-24 WO PCT/US2022/041305 patent/WO2023043591A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2023043591A1 (en) | 2023-03-23 |
US20230082470A1 (en) | 2023-03-16 |
US11936794B2 (en) | 2024-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110121727B (zh) | 一种为智能合同提供经证实、可审计和不可变输入的方法和系统 | |
US20180349896A1 (en) | Method and system for anonymization of electronic transactions via blockchain | |
US20200374131A1 (en) | Method and system for generalized provenance solution for blockchain supply chain applications | |
EP3900257B1 (en) | Method and system for consent to time-bound queries in a blockchain | |
US20220284008A1 (en) | Method and system of implementing partitioned blockchain | |
US20210117938A1 (en) | Method and system for control of pii through limiting transfers on blockchain | |
US11341161B2 (en) | Method and system for grouping of blockchain nodes for greater consensus | |
US11689355B2 (en) | Method and system for the atomic exchange of blockchain assets using transient key pairs | |
US11829995B2 (en) | Method and system for optimizing blockchain parsing using a wallet's static characteristics | |
US11374962B2 (en) | Method and system for prevention of spam attacks on a blockchain network | |
JP2023541557A (ja) | ブロックチェーントランザクションの規制のための方法及びシステム | |
CN117957528A (zh) | 用于许可的区块链中智能合约的并行处理的方法和系统 | |
WO2023121915A1 (en) | Method and system of storing smart contract events | |
US11947522B2 (en) | Method and system for pruning blocks from blockchains for data retention and storage scalability purposes | |
US20210295330A1 (en) | Method and system to represent scalar digital assets using hash chains | |
US20230068301A1 (en) | Method and system for privately managed digital assets on an enterprise blockchain | |
US20230139343A1 (en) | Method and system for private transaction processing | |
US20230118754A1 (en) | Method and system for data retention in pruned blockchains | |
US20230108514A1 (en) | Method and system for blockchain-based transactions for the atomic exchange of assets | |
US20230131813A1 (en) | Method and system for authorization and settlement in blockchain transactions | |
KR20240068692A (ko) | 허가형 블록체인에서 스마트 계약의 병렬 프로세싱을 위한 방법 및 시스템 | |
CN118120180A (zh) | 用于被修剪的区块链中的数据保留的方法和系统 | |
CN118120183A (zh) | 用于从区块链中修剪区块以用于数据保留和存储可扩展性目的的方法和系统 | |
WO2024072730A1 (en) | Method and system for blockchain to apply sanctions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |