用于控制或强制执行在区块链上进行的转移的计算机实现的系统和方法与流程

文档序号:26193875发布日期:2021-08-06 18:47阅读:115来源:国知局
用于控制或强制执行在区块链上进行的转移的计算机实现的系统和方法与流程

本发明总体涉及分布式计算网络,更具体地涉及分布式分类账技术(区块链)。本发明提供了涉及参与者之间在区块链网络上进行的转移和通信的安全性、强制和控制的优点。本发明提供了一种用于强制执行如何在网络上进行未来转移的解决方案,从而解决迄今为止在该领域内被认为无法解决的问题。本发明适合于,但不限于,与机器可执行的智能合约一起使用。



背景技术:

在本文中,“区块链”一词涵盖所有形式的基于计算机的电子分布式分类账。这些分类账包括基于共识的区块链和交易链技术、许可和非许可的分类账、共享分类账,及其变体。虽然已提出并开发了其他区块链实施方案,但是区块链技术最广为人知的应用是比特币分类账。尽管出于方便和说明的目的在本文中可能会提及比特币,但需要说明的是,本发明不限于与比特币区块链一起使用,其他的区块链实施方式和协议也属于本发明的范围。“比特币”一词指源自比特币协议的协议的任何版本或变体。“用户”一词在本文中可指人员或基于处理器的资源。

区块链是一种点对点的电子分类账,其实现为基于计算机的去中心化的分布式系统,所述系统由区块组成,而区块又由交易组成。每个交易都是一种数据结构,所述数据结构对所述区块链系统参与者之间的数字资产控制权的转移进行编码,并且包括至少一个输入和至少一个输出。每个区块都包含前一个区块的哈希值,因此区块被链接在一起,以创建自所述区块链创建以来写入其中的所有交易的永久性的不可更改的记录。交易包括嵌入到其输入和输出中的小程序,称为脚本,这些脚本指定如何以及由谁访问所述交易的输出。在比特币平台上,这些脚本是使用基于堆栈的脚本语言编写的。

为了将交易写入区块链,必须对其进行“验证”。网络节点(矿工)进行工作以确保每个交易均有效,而无效交易则被网络拒绝。安装在所述节点上的软件客户端通过执行其锁定和解锁脚本对未花费的交易输出(utxo)执行此验证工作。如果所述锁定和解锁脚本的执行评估为true,则所述交易有效,将所述交易写入所述区块链。因此,为了将交易写入所述区块链,所述交易必须:i)由接收所述交易的第一个节点进行验证—如果所述交易通过验证,则此节点将其中继到网络中的其他节点;ii)添加到由矿工建造的新区块中;iii)已开采,即,添加到过去交易的公共分类账中。

虽然区块链技术最广为人知的是用于加密货币实现,但数字企业家已经开始探索如何利用比特币所基于的加密安全系统和可以存储在区块链上的数据来实现新系统。如果区块链可以用于加密货币领域之外的自动任务和过程,则会非常有利。这类解决方案将能够发挥区块链的优势(例如,永久及防篡改的事件记录、分布式处理等),同时其应用将更加广泛。例如,其中一个研究及关注的领域是使用区块链实现“智能合约”。

为了提供更加通用的区块链平台,在参与者爱丽丝(alice)与鲍勃(bob)之间对资产进行初始转移后,能够控制或影响在网络上进行“接续”转移的方式将是有利的。在许多不同类型的场景中,并且出于许多不同的原因,需要准备好规则(即条件或标准),该规则将管理资产从鲍勃到一个或多个其他参与者的后续转移,而不需要各方之间的信任。迄今为止,在技术界内部一直认为不可能对未来的区块链交易施加紧固约束。



技术实现要素:

申请者已经设计出至少解决这项需求的发明。本发明已在本文所附的权利要求书中定义。

根据本发明的实施例,可以提供一种计算机实现的方法,包括以下步骤:

生成涉及拟在区块链网络上进行转移的至少一个规则(r)的表示;

生成包括所述表示(r)的赎回脚本(r);以及包含所述赎回脚本(r)的哈希值(hr)的脚本地址;

将所述赎回脚本(r)的哈希值(h)与所述脚本地址进行比较;以及

如果所述哈希值(h)与所述脚本地址匹配,则在与区块链交易(tx0)的输出(utxo)相关联的锁定脚本中使用所述脚本地址。

附加地或替代地,可以提供一种计算机实现的方法,包括以下步骤:

向接收者提供涉及拟在区块链网络上进行转移的至少一个规则(r)的表示;

从发送者处接收:包括所述表示(r)的赎回脚本(r);和包含所述赎回脚本(r)的哈希值(hr)的脚本地址;

生成所述赎回脚本(r)的哈希值(h),并将其与所述脚本地址进行比较;

如果所述哈希值(h)与所述脚本地址匹配,则在与区块链交易(tx0)的输出相关联的锁定脚本中使用所述脚本地址。

附加地或替代地,可以提供一种计算机实现的方法,包括以下步骤:

从发送者处接收涉及拟在区块链网络上进行转移的至少一个规则(r)的表示;

向所述发送者发送:包括所述表示(r)的赎回脚本(r);和包含所述赎回脚本(r)的哈希值(hr)的脚本地址;

在另一个区块链交易(tx1)中提供所述赎回脚本(r),所述另一个区块链交易被设置为解锁被锁定到所述脚本地址的区块链交易(tx0)中的输出。

区块链网络可以是比特币网络或其变体,或另一个(非比特币)区块链网络。该方法可包括生成赎回脚本的哈希值的步骤。其可包括生成、更新和/或完成区块链交易(tx0)的步骤。

本公开的实施例还可包括在图1或下文描述中包含的任何步骤。

一个或多个实施例还可包括下列步骤:

生成和/或使用另一个区块链交易(tx1),所述另一个区块链交易(tx1)包括解锁脚本,所述解锁脚本被设置用于使用所述脚本地址来解锁所述交易(tx0)的所述锁定脚本。

优选地,交易tx0,和/或另一个交易tx1,是允许加密货币被发送至一输出的锁定脚本中的脚本哈希值/与一输出的锁定脚本中的脚本哈希值相关联/由一输出的锁定脚本中的脚本哈希值锁定的交易类型,其需要用户在一解锁脚本中提供与脚本哈希值和数据相匹配的脚本,使得脚本评估为真,以获得(解锁)加密货币。如果区块链网络是比特币网络或其变体,这可以是支付到脚本哈希(p2sh)交易。如果区块链网络不是比特币网络或其变体,则该交易可以是符合另一个(非比特币)区块链协议的功能上相同/类似的交易类型。

优选地,表示(r)是区块链脚本或用区块链脚本语言编写的代码的一部分/片段、文本文件、智能合约、图像、和/或位置的引用或标识符,其中可以存取至少一个规则。

优选地,至少一个规则涉及在区块链网络上可以如何或向谁进行后续转移。

优选地,至少一个规则的表示(r)作为不完整的区块链交易的一部分提供至接收者,或作为区块链脚本代码的片段提供。

优选地,脚本地址作为区块链交易的一部分提供。

优选地,该方法还包括将交易提供至区块链网络的步骤。

优选地,至少一个规则指定为解锁所述区块链上的资产而必须提供的加密签名。

本公开还提供了一种计算机实现的系统,包括:

处理器;以及

包含可执行指令的存储器,所述处理器执行所述可执行指令时,使得所述系统执行本文描述的计算机实现的方法的任何实施例。

本公开还提供了一种非暂时性计算机可读存储介质,其上存储有可执行指令,计算机系统的处理器执行所述可执行指令时,使得所述计算机系统至少执行本文所述的本发明的实施例。

附图说明

结合本文所述的实施例,本发明的这些和其他方面将显而易见并被阐明。现将仅通过举例的方式并参考附图对本公开的实施例进行说明,其中:

图1示出了,在高层次上,说明本公开实施例的流程图。

图2是示出可实现各种实施例的计算环境的示意图。

具体实施方式

本公开的实施例提供了一种新颖且有利的机制来控制通过区块链网络进行的电子转移。传统上认为,不可能约束、强制执行、影响或控制在区块链网络上通过后续交易所做的接续(“下游”)交换。例如,如果爱丽丝(alice)通过区块链交易向鲍勃(bob)进行转账,传统上认为爱丽丝不可能支配或控制鲍勃(或在转移链更为下游的其他接收者)之后进行的转账。一旦鲍勃已经收到爱丽丝转移的资产,他便可以自由地按自己的意愿行事。在许多情况下这是不可取的,因为用户通常希望以特定的方式来安排他们的通信路径,或希望对如何和/或由谁处理其电子资产、数据和通信的转移施加约束。

本公开通过提供加密执行机制来解决此问题,通过该机制,一方可以将条件、约束和规则注入到初始转移中,以影响接续的传输。其通过数学上执行的控制技术来做到这一点,该技术使得安全的、不可改变的、可见的和可追溯的条件可以与尚未在区块链网络上执行的未来行动相关联。

在提供实施例的详细示例之前,我们仅通过技术背景的方式提供了一些已知技术的简要总结,这些已知技术的使用有利于本公开。

支付到脚本哈希(p2sh)

与比特币协议中启用支付到公钥的哈希的标准区块链交易不同,p2sh交易允许发送者支付到脚本的哈希。在传统交易中,输出包含(锁定)脚本,在进行支付尝试时,该脚本必须评估为true。锁定脚本将指定谁必须签名才能解锁相关联的输出。另一方面,利用p2sh交易,输出不包括脚本本身,而仅包括锁定脚本的哈希。因此p2sh地址包含哈希的脚本并且可被识别出,因为其以3开头(而公钥哈希地址以1开头)。

p2sh交易要求接收者供应脚本(称为赎回脚本,本文指r),该脚本在锁定脚本中哈希出相同的哈希值,并且还提供满足锁定脚本中列出的任何条件所需的数据,以使得该脚本的评估为true,而无需要求资金的潜在接收者提供与未花费的交易输出(utxo)的锁定脚本中指定的公钥相匹配的签名。如果赎回脚本匹配,并提供了正确的数据以使得utxo锁定脚本评估为true,则与输出相关联的资金被解锁并将控制权转移给接收者。

应注意的是,根据使用不同的(非基于比特币)区块链协议实现的本公开的实施例,交易类型可以称为“p2sh”之外的其他名称。然而,功能可能基本相同,因为交易锁定资金的潜在接收者必须提供脚本,该脚本在哈希时与交易输出的锁定脚本中提供的哈希值相匹配。但是,为了便于参考,我们应使用“p2sh”一词指具有这种功能/特性的交易类型。

智能合约

智能合约是被设计成自动执行机器可读合约或协议条件的计算机程序。与以自然语言编写的传统合约不同,智能合约是机器可读取且可执行的程序,它包括能够处理输入以产生结果的规则,然后使得根据这些结果执行动作。

提供本公开概述的说明性实施例

假设爱丽丝拥有一定数量的加密货币、或代币化资产或区块链上的其他资源。她创建了一组条件或规则r,这些条件或规则r规定其资产转移和/或存取的条款。该组规则以比特币脚本语言、脚本、与比特币相关的实现方式来制定,或者如果使用不同的区块链协议,则可能以某种其他语言来制定。

爱丽丝想要将她的资产转移给鲍勃,并确保鲍勃在解锁区块链上的资产时也遵循这些规则。例如,规则r可以是她的资产只有在同时提供伊芙(eve)的签名时才能被解锁。在比特币脚本中,这种情况表示为:

r=op_dupop_hash160<h(pe)>op_equalverifyop_checksigverify(1)

其中,pe是伊芙的公钥。只有提供以下输入,此脚本才会评估为true

rinput=<sigpe><pe>

现在考虑以下情形:

爱丽丝在从其自身到鲍勃的第一个交易tx1上施加规则r。

爱丽丝可以强制从鲍勃到查理(charlie)的下一笔交易也遵循相同的规则。也就是说,来自tx1的输出utxo1的支付与输出utxo0的支付遵循相同的规则r。具体操作如下。

1.爱丽丝将该组规则r发送给鲍勃。回想一下,这些规则表示为区块链脚本片段,例如,如上文(1)中所示。

2.鲍勃创建赎回脚本r,该赎回脚本包含规则r及其自身的规则,例如其自身签名的要求。

rb=r+checksigpb

3.鲍勃基于赎回脚本rb创建支付到脚本哈希(p2sh)地址p1。

4.鲍勃将其p2sh地址p1以及赎回脚本rb一起发送给爱丽丝。

5.爱丽丝检查鲍勃的p2sh地址p1是否对应于赎回脚本rb的哈希值。

现在,爱丽丝可以确定,当其创建锁定至鲍勃的p2sh地址的交易tx1时,将会受到规则r的约束。为了使鲍勃通过创建另一个交易tx2来解锁资产,鲍勃的解锁脚本中必须满足规则r,否则结果将为false且输出将不会被解锁。

使用本发明的逐步示例

为了便于读者理解,参照图1,我们现提供可能会投入使用的本发明的说明性实施例的更详细逐步示例。

在步骤101中,多个参与方(例如爱丽丝和鲍勃)决定行动过程,该行动由一组条件、规则或标准(以下简称“规则”r)来管理。这可以是任何类型的行动,诸如加密货币或区块链上持有的代币转移,或某些设备、商品或服务等的购买/租赁/提供。类似地,该条件可以是对行动执行的任何约束,例如,爱丽丝确认特定事件后将区块链上的代币化实体转移给鲍勃。

爱丽丝(或其他方)生成规则r的表示。该表示可以采用任何形式,诸如文本文件、图片、声音文件或脚本等。从本质上讲,其是约定行动以及管理这些行动的执行的条件/规则/标准的记录。在一些实施例中,如本领域所熟知以及上文中所解释,这可以是智能合约。在优选实施例中,该条件以比特币脚本语言脚本或以某种其他区块链兼容且可执行的语言来表示。因此,r可以是(区块链脚本)代码的片段或一部分。

在步骤102中,鲍勃使用爱丽丝的脚本片段r生成赎回脚本r。因此,赎回脚本r包含规则r。鲍勃还可包括其自身的一些其他规则。

在步骤103中,鲍勃使用赎回脚本r生成哈希值h(r),该哈希值可用作其p2sh地址。

在步骤104中,鲍勃把其p2sh地址和赎回脚本r发送给爱丽丝。这可以通过任何合适的方式进行。然后,爱丽丝可以确认赎回脚本r包括其规则r。

在步骤105和106中,爱丽丝检查鲍勃提供的p2sh是否为鲍勃的赎回脚本的哈希值。这是一个快速且运算简单的过程。如果他们不匹配,则爱丽丝可以选择终止交易或查询交易。如果他们相匹配,则她在知道自己的规则已被包含且将强制执行的情况下可继续进行操作,因此她生成区块链交易tx0,其被她在步骤107中发送至网络以进行验证,并且被挖掘成区块。

在步骤108中,当鲍勃希望存取tx0中由爱丽丝锁定的资产时,他生成支付交易tx1,该支付交易包括输出(utxo),该输出将向tx0的锁定脚本提供所需的赎回脚本r,以释放资产。为了使这种情况发生,片段r必须评估为true,这确保了最初由爱丽丝指定的规则r已经被执行。

在替代实施例中,可通过生成不完整的部分交易来执行上述过程。这可以由爱丽丝将片段r插入部分完成的p2sh交易tx0的锁定脚本中来完成。锁定脚本与tx0的未花费的交易输出utxo相关联,并且确定utxo如何可由另一个后续交易tx1来解锁。tx0是不完整的,因为其尚未包含p2sh地址。这将由鲍勃提供。

根据步骤103,该部分交易tx0(包含片段r)被传送至鲍勃。这可以通过多种方式来实现。鲍勃可以检查r中的规则是否与爱丽丝和鲍勃在步骤101中的约定内容相匹配。

根据步骤103,鲍勃创建赎回脚本r,该赎回脚本包括规则r,然后生成r的哈希值,以生成其p2sh地址。在步骤104中,通过由鲍勃将其p2sh地址插入到交易tx0中并将其发送回爱丽丝,鲍勃的赎回脚本r和p2sh被传送给爱丽丝。r可以通过任何合适的方法发送。根据鲍勃的tx0更新版本,爱丽丝可以检查其提供的p2sh地址是否与包含规则r的赎回脚本的哈希值相匹配。

在步骤107中,爱丽丝如上所述将tx0提交至区块链网络。其根据已知技术进行验证并被挖掘成区块。当然,鲍勃希望支付tx0中的utxo,因此必须在步骤108中对其进行解锁。为了解锁utxo,他必须提供用于utxo赎回脚本的必要哈希值,所以他生成支付交易tx1,该交易包含tx1的解锁脚本。然后,tx1被输出至区块链上、验证并被挖矿,使得哈希值将呈现给tx0中的赎回脚本,输出将被解锁并且发生资产(例如,加密货币的部分、代币等)转移。现在,鲍勃持有该资产。

因此,本发明提供了一种用于解决先前在技术领域内被认为无法解决的问题的解决方案,并且通过使用数学和密码技术,使得能够控制、强制执行和约束各方之间在区块链网络上进行后续转移。

现在转到图2,提供了可用于实施本公开的至少一个实施例的计算设备2600的说明性简化框图。在各种实施例中,所述计算设备2600可用于实现以上示出和说明的任何系统。例如,所述计算设备2600可配置为用作数据服务器、网络服务器、便携式计算设备、个人计算机或任何电子计算设备。如图2所示,计算设备2600可包括具有一级或多级高速缓存的一个或多个处理器以及存储器控制器(统称为2602),所述存储器控制器可被配置为与包括主存储器2608和永久存储器2610的存储子系统2606通信。如图所示,主存储器2608可以包括动态随机存取存储器(dram)2618和只读存储器(rom)2620。存储子系统2606和高速缓存存储器2602可用于存储信息,诸如与本公开中所描述的交易和区块相关联的细节。处理器2602可用于提供本公开中描述的任何实施例的步骤或功能。

处理器2602还可以与一个或多个用户界面输入设备2612、一个或多个用户界面输出设备2614和网络接口子系统2616通信。

总线子系统2604可以提供用于使计算设备2600的各个组件和子系统能够按预期彼此通信的机制。虽然总线子系统2604示意性地示出为单个总线,但是总线子系统的替代实施例可以利用多个总线。

网络接口子系统2616可以向其他计算设备和网络提供接口。网络接口子系统2616可以作为从计算设备2600接收数据和向其他系统传输数据的接口。例如,网络接口子系统2616可以使数据技术人员能够将设备连接到网络,使得数据技术人员能够在远程位置(例如数据中心)向设备发送数据并从设备接收数据。

用户界面输入设备2612可以包括一个或多个用户输入设备,例如键盘;指点设备,如集成鼠标、轨迹球、触摸板或图形平板电脑;扫描仪;条形码扫描仪;包含在显示器中的触摸屏;音频输入设备,如语音识别系统、麦克风;以及其他类型的输入设备。一般而言,术语“输入设备”的使用旨在包括用于向计算设备2600输入信息的所有可能类型的设备和机制。

一个或多个用户界面输出设备2614可包括显示子系统、打印机、或非视觉显示器(例如音频输出设备等)。显示子系统可以是阴极射线管(crt)、平板设备(例如液晶显示器(lcd))、发光二极管(led)显示器或投影或其他显示设备。通常,术语“输出设备”的使用旨在包括用于从计算设备2600输出信息的所有可能类型的设备和机制。例如,可以使用一个或多个用户界面输出设备2614来呈现用户界面,以便于用户与执行所描述的过程和其中变型的应用程序进行交互(当这种交互可能合适时)。

存储子系统2606可以提供计算机可读存储介质,该计算机可读存储介质用于存储可提供本公开的至少一个实施例的功能的基本编程和数据构造。当由一个或多个处理器执行时,应用程序(程序、代码模块、指令)可以提供本公开的一个或多个实施例的功能,并且可以存储在存储子系统2606中。这些应用程序模块或指令可以由一个或多个处理器2602执行。存储子系统2606可另外提供用于存储根据本公开所使用的数据的存储库。例如,主存储器2608和高速缓存存储器2602可以为程序和数据提供易失性存储。永久存储器2610可以提供用于程序和数据的永久(非易失性)存储,且可包括闪存、一个或多个固态驱动器、一个或多个磁硬盘驱动器、一个或多个具有关联可移动介质的软盘驱动器、一个或多个具有关联可移动介质的光驱动器(例如cd-rom或dvd或蓝光)以及其他类似的存储介质。这样的程序和数据可以包括用于执行如在本公开中描述的一个或多个实施例的步骤的程序以及与在本公开中描述的交易和区块相关联的数据。

计算设备2600可以是各种类型的,包括便携式计算机设备、平板电脑、工作站或下文描述的任何其他设备。另外,计算设备2600可包括可通过一个或多个端口(例如,usb、耳机插孔、闪电连接器等)连接至计算设备2600的另一设备。可以连接到计算设备2600的设备可以包括被配置为接受光纤连接器的多个端口。因此,该设备可以被配置为将光信号转换成电信号,所述电信号可经由将该设备连接至计算设备2600进行处理的端口传输。由于计算机和网络的不断变化的性质,图2所示的计算设备2600的描述仅用作说明设备的优选实施例的特定示例。可能存在比图2所示系统的组件更多或更少的许多其他配置。

需要说明的是,上述实施例说明而不是限制本发明,本领域技术人员能够在不脱离所附权利要求定义的本发明范围的前提下设计出许多替代实施例。在权利要求书中,括号中的任何附图标记都不应解释为对权利要求的限制。词语“包括”等不排除任一项权利要求或说明书中整体列出的元件或步骤之外的元件或步骤的存在。在本说明书中,“包括”是指“包含或由......组成”。元件的单数形式并不排除此类元件的复数形式,反之亦然。本发明可以通过包括几个不同元件的硬件以及通过适当编程的计算机来实现。在列举几个装置的设备权利要求中,这些装置中的几个装置可以由同一硬件来体现。在互不相同的从属权利要求中引用某些措施的事实并不意味着不能有利地使用这些措施的组合。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1