用于区块链实现的基于脚本的字节解释的方法和系统技术方案

技术编号:23865647 阅读:32 留言:0更新日期:2020-04-18 16:46
本发明专利技术涉及分布式账本技术,比如基于共识的区块链,例如比特币区块链。描述了通过耗用交易的锁定脚本实施的用于去信任化的确定性状态机的计算机实现的方法。耗用交易转移对至少一种数字资产或其一部分的控制。耗用交易与前一交易相关,该前一交易包括具有字节码序列的锁定脚本。耗用交易还包括具有相同字节码序列的锁定脚本。可以通过验证耗用交易和前一交易的锁定脚本的字节码序列彼此是否匹配来确认耗用交易。作为执行锁定脚本的结果,可以转移对至少一种数字资产或其一部分的控制。例如,锁定脚本可以施加一组条件来验证耗用交易。

Script based byte interpretation method and system for blockchain implementation

【技术实现步骤摘要】
【国外来华专利技术】用于区块链实现的基于脚本的字节解释的方法和系统相关申请的交叉引用本申请要求于2017年8月15日提交的英国专利申请第1713046.9号的优先权,其全部内容通过引用并入本文中。
本专利技术总体上涉及区块链技术,并且更具体地涉及使用耗用交易脚本的区块链交易。本专利技术特别适合于但不限于在自动执行智能合约中使用。
技术介绍
在本文档中,使用术语“区块链”来包括所有形式的电子的、基于计算机的分布式账本。这些包括基于共识的区块链和交易链技术、许可和未许可的账本、共享账本及其变型。区块链技术最广为人知的应用是比特币账本,但是已经提出并开发了其他区块链实施方案。尽管在本公开中为了方便和说明的目的可能提到的是“比特币”,但是应当理解的是,本专利技术不限于与比特币区块链一起使用,并且替代性的区块链实施方案和协议也落入本专利技术的范围内。例如,本专利技术可以用于如下其他区块链实施方案中:这些实施方案在关于可以在交易内编码哪些约束条件方面具有与比特币类似的限制。区块链是点对点的电子账本,其实现为基于计算机的去中心化的分布式系统,该系统由区块组成,而区块又由交易和其他信息组成。例如,对于比特币,每个交易都是对数字资产的控制(control)在区块链系统中的参与者之间的转移进行编码的数据结构,并且包括至少一个输入和至少一个输出。在一些实施方案中,可以通过将数字资产的至少一部分从第一实体重新关联到第二实体来转移对数字资产的控制。每个区块都包含前一区块的散列,使得区块链接在一起,以创建自区块链创建以来写入区块链的所有交易的永久的、不可更改的记录。交易包含称为脚本的小程序,这些小程序嵌入到其输入和输出中,其指定了如何以及由谁来访问交易的输出。在比特币平台上,这些脚本采用基于堆栈的脚本处理语言。换言之,基于堆栈的脚本处理语言可以利用称为堆栈的数据结构。在堆栈的情况下,可以将值推入堆栈的顶部或从堆栈的顶部弹出。为了将交易写入区块链,必须对其进行“确认(validate)”。网络节点(矿工)执行工作以确保每个交易均是有效的,而无效交易则被网络拒绝。节点可以具有与其他节点不同的有效性标准。由于区块链中的有效性是基于共识的,因此,如果大多数节点同意交易是有效的,则该交易被视为有效。安装在节点上的软件客户端通过执行未耗用交易(UTXO)锁定和解锁脚本来对引用UTXO的交易部分地执行此确认工作。如果锁定和解锁脚本的执行评估为TRUE,并且满足其他确认条件(如果适用),则由节点进行的交易有效。经确认的交易会传播到其他网络节点,随后矿工节点可以选择将该交易包含在区块链中。因此,为了将交易写入区块链,必须:i)由接收交易的第一节点进行确认——如果交易被确认,该节点将其中继给网络中的其他节点;ii)添加到由矿工建造的新区块中;以及iii)挖掘,即,添加到过去交易的公共账本中。当向区块链添加足够数量的区块以使交易实际上不可逆时,该交易被视为已被确认。当前研究的一个领域是使用区块链来实现“智能合约”。这些智能合约是被设计为自动执行机器可读合约或协定的条款的计算机程序。与将按自然语言编写的传统合约不同,智能合约是的机器可执行程序,其包含可以处理输入以产生结果的规则,然后可以根据这些结果来执行动作。在实施方式中,在不对创建者或某个其他特定实体强制实施和/或执行智能合约的意义上,智能合约是“智能”的。换言之,尽管可以在智能合约中的特定步骤对与特定实体的交互进行编码,但是智能合约可以由机器以其他方式自动执行并自行强制实施。智能合约是机器可读且可执行的。在一些示例中,自动执行是指任何实体能够耗用UTXO并且具有耗用UTXO的动机(例如,奖励)。应当指出的是,在这样的示例中,能够耗用UTXO的“任何实体”是指能够创建解锁脚本而无需证明了解某些秘密的实体。换言之,可以在不验证数据来源有权访问加密秘密(例如,私有非对称密钥、对称密钥等)的情况下确认耗用交易(spendingtransaction)。同样,在这样的示例中,自行强制实施是指根据约束条件来使区块链网络的确认节点强制实施耗用交易。在一些示例中,“耗用”UTXO是指引用UTXO并有效执行的耗用交易。区块链交易输出包括锁定脚本和有关数字资产、比如比特币的所有权的信息。锁定脚本通过指定为了耗用输出所需要满足的条件来“锁定”数字资产,锁定脚本也可以被称为阻碍。例如,锁定脚本可能要求在解锁脚本中提供某些数据以解锁关联的数字资产。锁定脚本在比特币中也被称为“scriptPubKey”。要求当事方提供数据以解锁数字资产的技术包括将数据的散列嵌入锁定脚本中。
技术实现思路
因此,期望提供在这些方面中的一个或更多个方面中改进区块链技术的改进的方法和系统。因此,根据本专利技术,提供了如所附权利要求所限定的方法和相应的系统。可以将本专利技术描述为验证方法/系统,以及/或者描述为用于经由区块链来控制数字资源或资产的交换或转移的控制方法/系统。术语“资产”和“资源”在本文中可以互换使用。数字资源可以是令牌,或者是加密货币的一部分,等等。如下所述,还可以将本专利技术描述为用于经由区块链网络或平台来执行操作的新的、改进的且有利的方式的安全方法/系统。如将在下面更详细地描述的,在实施方式中,可以通过由字节码序列实现或表示的(第一)锁定脚本来实现去信任化的确定性状态机。在一个或多个实施方式中,锁定脚本可以是参数化智能合约的一部分或者包括参数化智能合约的一部分,由此第一(“耗用”)区块链交易被用来转移对数字资产/资源的控制。耗用交易可以引用交易,该前一交易包括包含字节码序列的锁定脚本。交易还可以包括锁定脚本,该锁定脚本包含字节码序列,使得前一交易和耗用交易的锁定脚本共享相同的字节码序列。可以在区块链网络中的节点处接收耗用交易。可以通过获取前一交易并验证前一交易和耗用交易的锁定脚本共享相同的字节码序列来进行确认。在其他实施方式中,前一交易的锁定脚本还可以包括用于解释前一交易的锁定脚本的字节码序列的解释器代码,并且耗用交易的锁定脚本也可以包括解释器代码,使得前一交易和耗用交易的锁定脚本共享相同的解释器代码。解释器代码可以支持将至少一个高级字节码操作转换为由确认耗用交易的节点执行的低级字节码操作。在这种情况下,耗用交易的确认可以进一步包括验证前一交易和耗用交易的锁定脚本是否共享相同的解释器代码。如将在下面更详细描述地,在实施方式中,锁定脚本的字节码序列和/或解释器代码可以被复制为有序次数的耗用交易(或耗用交易的序列)的锁定脚本的一部分,直到实现终止条件为止。因此,根据本专利技术的实施方式,可以提供一种计算机实现的方法,该计算机实现的方法包括:接收第一区块链交易(“耗用交易”)以转移对至少一种数字资产或其一部分的控制,其中,所述第一区块链交易包括由字节码序列表示的(第一)锁定脚本,并且其中,第一区块链交易引用包括由字节码序列表示的(第二)锁定脚本的前一(区块链)交易,使得第一锁定脚本和第二锁定脚本共享相同的字节码序列;第一交易可以被称为“耗用”交易。可以在区块链网络中的节点处接收该交易。该交易可以布置为经由网本文档来自技高网
...

【技术保护点】
1.一种计算机实现的方法,包括:/n接收耗用区块链交易,以转移对至少一种数字资产或其一部分的控制,其中,所述耗用交易包括由字节码序列表示的锁定脚本,并且其中,所述耗用交易引用包括由字节码序列表示的锁定脚本的前一交易,使得第一锁定脚本和第二锁定脚本共享相同的字节码序列;以及/n通过验证所述耗用交易的锁定脚本的字节码序列与所述前一交易的锁定脚本的字节码序列是否匹配来确认所述耗用交易。/n

【技术特征摘要】
【国外来华专利技术】20170815 GB 1713046.91.一种计算机实现的方法,包括:
接收耗用区块链交易,以转移对至少一种数字资产或其一部分的控制,其中,所述耗用交易包括由字节码序列表示的锁定脚本,并且其中,所述耗用交易引用包括由字节码序列表示的锁定脚本的前一交易,使得第一锁定脚本和第二锁定脚本共享相同的字节码序列;以及
通过验证所述耗用交易的锁定脚本的字节码序列与所述前一交易的锁定脚本的字节码序列是否匹配来确认所述耗用交易。


2.根据权利要求1所述的计算机实现的方法,其中,所述耗用交易还包括解释器代码,所述前一交易还包括解释器代码,使得所述耗用交易和所述前一交易共享相同的解释器代码来解释所述锁定脚本的字节码序列,并且确认所述耗用交易还包括验证所述耗用交易的解释器代码与所述前一交易的解释器代码是否匹配。


3.根据任一前述权利要求所述的计算机实现的方法,其中,所述前一交易存储在区块链上,以及/或者所述解释器代码被包含为所述耗用交易和所述前一交易两者的锁定脚本的一部分,以及/或者所述解释器代码支持将至少一个高级字节码操作转换为由节点执行的低级字节码操作。


4.根据任一前述权利要求所述的计算机实现的方法,其中,所述前一交易的锁定脚本和所述耗用交易的锁定脚本还包括与由所述前一交易的锁定脚本和所述耗用交易的锁定脚本共享的字节码序列的不同执行状态有关的数据,其中,这些数据用于在确认所述耗用交易时控制执行对字节码序列的解释。


5.根据权利要求4所述的计算机实现的方法,其中,所述前一交易的锁定脚本还包括用于所述锁定脚本的字节码序列的当前执行状态的状态数据、以及与锁定脚本的字节码序列的所述当前执行状态相对应的执行指针,其中,所述耗用交易的锁定脚本还包括用于锁定脚本的字节码序列的下一执行状态的状态数据、以及与所述锁定脚本的字节码序列的所述下一执行状态相对应的执行指针,并且确认所述耗用交易还包括:
i)使用表示所述锁定脚本的字节码序列的所述当前执行状态的数据来恢复所述字节码序列的所述当前执行状态,
ii)从与所述字节码序列的所述当前执行状态相对应的执行指针开始执行所述锁定脚本的字节码序列,直到与所述字节码序列的所述下一执行状态相对应的执行指针结束;以及
iii)将因执行所述锁定脚本的字节码序列而产生的状态数据与用于包含在所述耗用交易中的锁定脚本的字节码序列的所述下一执行状态的状态数据进行比较,以验证这些状态数据是否匹配。


6.根据权利要求5所述的计算机实现的方法,其中,确认所述耗用交易还包...

【专利技术属性】
技术研发人员:莹·陈迪安·克莱默
申请(专利权)人:区块链控股有限公司
类型:发明
国别省市:安提瓜和巴布达;AG

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

1