使用分布式协调的智能合约执行制造技术

技术编号:24105699 阅读:44 留言:0更新日期:2020-05-09 16:53
本发明专利技术涉及分布式账本技术,例如基于共识的区块链。描述用于智能合约结果确定的计算机实现的方法。使用区块链网络来实现本发明专利技术,所述区块链网络例如可以是比特币区块链。确定对手方之间的条件集合,条件集合具有多个可能结果,所述结果包括:与数字资产的第一分配相关联的第一可能结果以及与数字资产的第二分配相关联的第二可能结果,第二分配不同于第一分配。创建对手方交易,所述对手方交易包括被编码为计算机可执行指令的条件集合和数字资产作为输出。从第三方接收结果,所述结果对应于第一可能结果或第二可能结果。创建结果交易,以转移对手方交易的数字资产的控制,所述结果交易包括所述结果作为输入。由于在区块链网络中的节点处验证结果交易,至少部分地基于所述结果,根据第一可能结果或第二可能结果将数字资产分配给对手方。

Smart contract execution with distributed coordination

【技术实现步骤摘要】
【国外来华专利技术】使用分布式协调的智能合约执行
本专利技术总体涉及区块链技术,并且更具体地涉及使用无经销商(dealer-free)秘密共享、椭圆曲线算术和签名的的特性的组合来控制基于区块链的智能合约的执行。本专利技术还利用密码和数学技术来增强与通过区块链网络进行的电子转移有关的安全性。本专利技术特别适合但不限于在智能合约中使用。
技术介绍
在本文献中,术语“区块链”可以指若干类型的基于计算机的电子分布式账本中的任何一种。它们包括基于共识的区块链和交易链技术、许可和非许可账本、共享账本及其变体。虽然已经提出并开发了其他的区块链实现方式,但是区块链技术最广为人知的应用是比特币账本。虽然出于方便和说明的目的,可将比特币的示例称为本公开所述技术的有用应用,但是比特币只是可应用本公开所述技术的很多应用之一。但是应当注意,本专利技术不限于与比特币区块链一起使用;包括非商业应用在内的替代性区块链实现方式和协议也落入本专利技术的范围。例如,本公开所述技术将提供利用区块链实现方式的优点,关于在交易中可以对哪些约束进行编码,不管是否发生加密货币交换,这些区块链实施方式都具有与比特币类似的局限性。区块链是一种被实现为基于计算机的去中心化分布式系统的对等电子账本,该系统由区块组成,而区块相应地由交易和其他信息组成。在一些示例中,“区块链交易”是指将包括数据和条件集合的字段值的结构化集合进行编码的输入消息,其中条件集合的实现是将字段集合写入区块链数据结构的前提。例如,对于比特币,每个交易都是一种数据结构,该数据结构对数字资产的控制在区块链系统的参与者之间的转移进行编码,并包括至少一个输入和至少一个输出。在一些实施例中,“数字资产”是指与使用权相关联的二进制数据。数字资产的示例包括比特币、以太币和莱特币。在一些实施方式中,可通过将数字资产的至少一部分从第一实体重新关联到第二实体来进行数字资产的控制的转移。每个区块都包含前一个区块的散列,因此区块变为链接在一起,以创建自区块链创建以来就已经写入区块链的所有交易的永久、不变的记录。交易包含嵌入其输入和输出的称为脚本的小程序,它们指定如何以及由谁可以访问交易的输出。在比特币平台上,这些脚本是用基于堆栈的脚本语言编写的。在一些示例中,“基于堆栈的脚本语言”是指支持各种基于堆栈或面向堆栈的执行模型和操作的编程语言。也就是说,基于堆栈的脚本语言可以利用堆栈。使用堆栈,可以将值推入堆栈顶部或从堆栈顶部弹出。对堆栈进行的各种操作可以导致将一个或多个值推入堆栈顶部或从堆栈顶部弹出。例如,OP_EQUAL操作会将顶部两个项目从堆栈弹出,对它们进行比较,然后将结果(例如,如果相等则为1,如果不相等则为0)推入堆栈顶部。对堆栈进行的其他操作(例如OP_PICK)可以允许从除了堆栈顶部之外的位置选择项目。在一部分实施例采用的一些脚本语言中,可以至少有两个堆栈:主堆栈和备用堆栈。脚本语言的一些操作可将项目从一个堆栈的顶部移动到另一个堆栈的顶部。例如,OP_TOALTSTACK,将值从主堆栈的顶部移动到备用堆栈的顶部。应当注意,在某些情况下,基于堆栈的脚本语言可能不仅限于严格按照后进先出(LIFO)的方式操作。例如,基于堆栈的脚本语言可以支持将堆栈中的第n个项目复制或移动到顶部的操作(例如,在比特币中分别为OP_PICK和OP_ROLL)。可以将使用基于堆栈的脚本语言编写的脚本推入逻辑堆栈,该逻辑堆栈可以使用任何适当的数据结构(例如向量、列表或堆栈)来实现。为了将交易写入区块链,必须对其进行“验证”。网络节点(挖掘节点)进行工作以确保每个交易都有效,而无效交易从网络中被拒绝。节点可以具有不同于其他节点的有效性标准。因为区块链中的有效性是基于共识的,所以,如果大多数节点同意交易有效,则该交易视为有效。安装在节点上的软件客户端通过执行UTXO锁定和解锁脚本来部分地对引用未耗用交易(UTXO)的交易执行该验证工作。如果锁定和解锁脚本的执行评估为TRUE,并且满足其他验证条件(如果适用),则交易被节点验证。经验证的交易传播到其他网络节点,由此挖掘节点可以选择将交易包括在区块链中。因此,为了将交易写入区块链,该交易必须i)由接收交易的第一节点来验证——如果交易被验证,则节点将其中继到网络中的其他节点;ii)被加入由挖掘节点建造的新区块;以及iii)被挖掘,即,加入过去交易的公共账本。当向区块链添加足够数量的区块以使得交易实际上不可逆时,认为该交易被确认。虽然区块链技术因使用加密货币实施方式而广为人知,但数字企业家已经开始探索使用比特币所基于的密码安全系统以及可以存储在区块链上的数据来实现新系统。如果区块链可用于不限于加密货币领域的自动化任务和过程,那么将非常有利。这种解决方案能够利用区块链的好处(例如,事件、分布式处理等的永久性、防篡改记录),同时在其应用程序中更具通用性。本公开描述一个或多个基于区块链的计算机程序的技术方案。基于区块链的计算机程序是记录在区块链交易中的机器可读和可执行程序。基于区块链的计算机程序包括可以处理输入以产生结果的规则,然后这些规则可以导致根据这些结果进行动作。当前研究的一个领域是将基于区块链的计算机程序用于实现“智能合约”。与自然语言编写的传统合约不同,智能合约可以是这样的计算机程序,它被设计为自动执行机器可读合约或协议的条款。在实施例中,虽然可以在智能合约的特定步骤对于与特定实体的交互进行编码,但是智能合约也可以自动执行和自我实施。它是机器可读和可执行的。在一些示例中,自动执行是指成功进行以实现UTXO的转移的智能合约的执行。注意,在这种示例中,能够导致UTXO转移的“实体”是指能够创建解锁脚本而无需证明掌握一些秘密的实体。换言之,可以在不证实数据源(例如,创建解锁交易的实体)能够访问密码秘密(例如,私人非对称密钥、对称密钥等)的情况下验证解锁交易。此外,在这种示例中,自我实施是指使得区块链网络的验证节点根据约束来实施解锁交易。在一些示例中,从技术意义上使用“解锁”UTXO(也称为“耗用”UTXO),是指创建引用UTXO并执行有效的解锁交易。区块链交易输出包括锁定脚本和有关数字资产(例如比特币)所有权的信息。锁定脚本(也可以称为阻碍)通过指定转移UTXO所需满足的条件来“锁定”数字资产。例如,锁定脚本可能要求在解锁脚本中提供某些数据,以解锁关联数字资产。锁定脚本在比特币中也称为“scriptPubKey”。要求一方提供数据以解锁数字资产的技术涉及将数据的散列值嵌入锁定脚本中。但是,如果在创建锁定脚本时未确定数据(例如,未知和固定的数据),这会带来问题。可将本专利技术描述为验证方法/系统,和/或描述为用于控制区块链交易的验证的控制方法/系统。在一些实施例中,经验证的区块链交易导致将交易记录在区块链上,在一些应用中,这会导致经由区块链进行数字资产的交换或转移。数字资产可以是区块链管理的资源单位。虽然在一些实施例中,可将数字资产用作加密货币,但是可以预期,在实施例中,数字资产可以在其他背景下附加性或替代性地使用。注意,本专利技术虽然可以应用于数字资产的控制,但是其本质是技术性的,并且可以在利用区块链数据结构的其他背景下本文档来自技高网...

【技术保护点】
1.一种计算机实现的方法,包括:/n确定对手方之间的条件集合,所述条件集合具有多个可能的结果,所述结果包括:/n与数字资产的第一分配相关联的第一可能结果;以及/n与所述数字资产的第二分配相关联的第二可能结果,所述第二分配不同于所述第一分配;/n创建对手方交易,所述对手方交易包括被编码为计算机可执行指令的所述条件集合和所述数字资产作为输出;/n从第三方接收结果,所述结果对应于所述第一可能结果或所述第二可能结果;/n创建结果交易,以转移对所述对手方交易的所述数字资产的控制,所述结果交易包括所述结果作为输入;以及/n由于在区块链网络中的节点处验证所述结果交易,而至少部分地基于所述结果,根据所述第一可能结果或所述第二可能结果将所述数字资产分配给所述对手方。/n

【技术特征摘要】
【国外来华专利技术】20170922 GB 1715423.8;20170928 GB 1715701.71.一种计算机实现的方法,包括:
确定对手方之间的条件集合,所述条件集合具有多个可能的结果,所述结果包括:
与数字资产的第一分配相关联的第一可能结果;以及
与所述数字资产的第二分配相关联的第二可能结果,所述第二分配不同于所述第一分配;
创建对手方交易,所述对手方交易包括被编码为计算机可执行指令的所述条件集合和所述数字资产作为输出;
从第三方接收结果,所述结果对应于所述第一可能结果或所述第二可能结果;
创建结果交易,以转移对所述对手方交易的所述数字资产的控制,所述结果交易包括所述结果作为输入;以及
由于在区块链网络中的节点处验证所述结果交易,而至少部分地基于所述结果,根据所述第一可能结果或所述第二可能结果将所述数字资产分配给所述对手方。


2.根据权利要求1所述的计算机实现的方法,其中,所述第三方是包括多个成员的群组。


3.根据权利要求2所述的计算机实现的方法,其中,所述结果是所述多个成员提交的答复的共识的结果。


4.根据权利要求2所述的计算机实现的方法,还包括:
确定:
成员数量,以包括所述多个成员;以及
阈值数量,以确定所述结果;以及
所述结果与所述多个成员中至少阈值数量的成员提交的答复相匹配。


5.根据权利要求4所述的计算机实现的方法,其中,所述结果至少部分地基于所述多个成员提交的密钥份额来确定,所述密钥份额根据秘密共享方案来确定。


6.根据权利要求5所述的计算机实现的方法,其中,所述密钥份额通过所述多个成员提交给权益证明区块链中的区块。


7.根据前述权利要求中任一项所述的计算机实现的方法,还包括:
创建与第二数字资产相关联的至少一个协调算法交易;以及
由于验证为转移对所述第二数字资产的控制而创建的费用交易,而将所述第二数字资产分配给所述第三方。
...

【专利技术属性】
技术研发人员:约翰·弗莱彻托马斯·特雷维坦
申请(专利权)人:区块链控股有限公司
类型:发明
国别省市:安提瓜和巴布达;AG

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1