System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术大体上涉及分布式分类账技术,包括区块链事务,且更具体地,涉及使字段从区块链事务注入解锁事务脚本中。本专利技术利用加密和数学技术来增强与通过区块链网络进行的电子转账有关的安全性。本专利技术特别适合,但不限于,在智能合约和状态机中使用。
技术介绍
1、在本文中,我们使用术语“区块链”来包括所有形式的基于计算机的电子分布式分类账。这些包括基于共识的区块链和事务链技术、经过许可和未经许可的分类账、共享分类账及其变化形式。应注意,包括非商业应用在内的替代区块链(alternative blockchain)实现方式和协议也落入本专利技术的范围内。例如,无论是否发生加密货币交换,技术都可以提供优势,利用对可以在事务内编码的约束,具有限制的区块链实现方式。
2、区块链是点对点(peer-to-peer)的电子分类账,其实现为基于计算机的,去中心化的,分布式系统,所述系统由区块组成,而区块又由事务和其它信息组成。在一些示例中,“区块链事务”是指对包括数据和条件集的字段值的结构化集合进行编码的输入消息,满足所述条件集是将字段集写入区块链数据结构的前提条件。例如,每个事务都是对数字资产控制在区块链系统参与者之间的转移进行编码的数据结构,并且包括至少一个输入和至少一个输出。在一些实现方式中,可以通过将数字资产的至少一部分从第一实体重新关联到第二实体来执行对数字资产的控制的转移。每个区块包括前一个区块的散列,因此区块被链接在一起以创建自区块链创建以来一直写入区块链的所有事务的永久性不可变记录。事务包括嵌入到其输入和输出中的被称为脚
3、也就是说,基于堆栈的脚本语言可以利用堆栈。使用堆栈,可以将值压入堆栈的顶部或从堆栈的顶部弹出。对堆栈执行的各种操作可以使得将一个或多个值推入堆栈的顶部或从堆栈的顶部弹出。例如,op_equal操作会从堆栈中弹出顶部两项,将它们进行比较,然后将结果(例如,如果相等则为1,如果不相等则为0)压入堆栈的顶部。对堆栈执行的其它操作,例如op_pick,可以允许从堆栈顶部以外的位置选择项。在一些本专利技术的实施例采用的一些脚本语言中,可能至少有两个堆栈:主堆栈和备用堆栈。脚本语言的一些操作可以将项从一个堆栈的顶部移动到另一个堆栈的顶部。例如,op_toaltstack将值从主堆栈的顶部移动到备用堆栈的顶部。
4、为了将事务写入区块链,必须对其进行“验证(validated)”。网络节点执行工作以确保每个事务均有效,而无效事务则被网络拒绝。一个节点可以具有不同于其它节点的有效性标准。由于区块链中的有效性是基于共识的,因此,如果大多数节点同意事务有效,则事务被视为有效。安装在节点上的软件客户端通过执行未花费事务(utxo)锁定和解锁脚本来对部分引用utxo的事务执行此验证工作。如果锁定和解锁脚本的执行评估为真,并且满足其它验证条件(如果适用),则事务被节点验证为有效。将经验证的事务传播到其它网络节点,随后网络节点可以选择将所述事务包括在区块链中。因此,为了将事务写入区块链,必须:i)由接收事务的第一节点验证事务-如果事务被验证,则所述节点将事务中继到网络中的其它节点;且ii)将事务添加到由网络节点构建的新区块;且ⅲ)挖掘,即将事务添加到过去事务的公共分类账。当将足够数量的区块添加到区块链以使事务实际上不可逆时,事务被视为已确认。
技术实现思路
1、本专利技术描述了一个或多个基于区块链的计算机程序的技术方面。基于区块链的计算机程序是记录在区块链事务中的机器可读和可执行程序。基于区块链的计算机程序包括可以处理输入以产生结果的规则,然后可以根据这些结果执行操作。如果锁定脚本既可以访问解锁事务又可以访问先前事务,则可以利用区块链来实现高度灵活和复杂的智能合约。当前研究的一个领域是使用基于区块链的计算机程序来实现“智能合约”。与将以自然语言编写的传统合约不同,智能合约可以是设计成自动执行机器可读合约或协议条款的计算机程序。
2、在实施例中,尽管可以在智能合约中的特定步骤对与特定实体的交互进行编码,但智能合约可以其它方式自动执行和自强制执行。在一些示例中,自动执行是指成功执行以实现utxo的转移的智能合约的执行。应注意,在此类示例中,能够使得utxo转移的“实体”是指能够创建解锁脚本而无需证明某些秘密知识的实体。换句话说,可以在不核验数据来源(例如,创建了解锁事务的实体)是否有权访问加密秘密(例如,私有非对称密钥、对称密钥等)的情况下验证解锁事务。同样,在此类示例中,自强制执行是指使区块链网络的验证节点根据约束来强制执行解锁事务。在一些示例中,从技术意义上使用“解锁”utxo(也称为“花费”utxo)是指创建引用utxo并作为有效执行的解锁事务。
3、区块链事务输出包括锁定脚本和关于数字资产的所有权的信息。锁定脚本,也可以称为留置(encumbrance),通过指定转移utxo所需符合的条件来“锁定”数字资产。例如,锁定脚本可以要求在解锁脚本中提供某些数据以解锁相关联的数字资产。锁定脚本在一些区块链中也称为“脚本公钥(scriptpubkey)”。要求一方提供数据以解锁数字资产的技术涉及将数据的散列嵌入锁定脚本内。然而,如果在创建锁定脚本时数据是未确定的(例如,未知的和未固定的),则会出现问题。
4、因此,期望提供在这些方面中的一个或多个方面中改进区块链技术的改进的方法和系统。因此,根据本专利技术,提供了如所附权利要求书中所定义的方法和对应系统。
5、本专利技术可以被描述为核验(verification)方法/系统,和/或被描述为用于控制区块链事务的验证的控制方法/系统。在一些实施例中,经验证的区块链事务使得事务记录在区块链上,这在一些应用中可以使得经由区块链进行数字资产的交换或转移。数字资产是由区块链管理的资源的单位。尽管在一些实施例中,数字资产可以用作加密货币,但是在实施例中,设想数字资产可以另外或替代地用于其它情形。应注意,本专利技术虽然适用于数字资产的控制,但是本专利技术本质上是技术性的,并且可以在利用区块链数据结构而不一定涉及数字资产转移的其它情形使用。如下所述,本专利技术还可以被描述为用于经由区块链网络或平台执行操作的新的、改进的和有利的方式的安全方法/系统。
6、如下文将更详细描述的,在实施例中,通过采用解锁事务的字段值集和来自解锁事务的解锁脚本的签名散列(sighash)类型作为输入并执行签名生成和核验操作,可以给予锁定脚本访问解锁事务的某些字段的权限。
7、如下文将更详细描述的,在实施例中,通过约束从解锁事务的某些字段中提取的事务标识符(id),使得序列化的先前事务包括在解锁事务的解锁脚本中,可以给予锁定脚本访问先前事务中的字段集的权限。根据实施例,可以提供一种将序列化的先前事务注入区块链事务锁定脚本中的方法,所述方法采用对应于第一事务的第一字段值集和对应于另一事务的第二字段值集作为输入,从第一字段值集中提取事务标识符,并且本文档来自技高网...
【技术保护点】
1.一种计算机实现的方法,用于生成锁定区块链事务,所述方法包括:
2.根据权利要求1所述的方法,其中,所述第一锁定脚本被进一步配置为施加用于验证所述第一区块链事务的条件集合。
3.根据权利要求1或2所述的方法,其中,所述第一锁定脚本被配置为:如果与所述锁定区块链事务相关联的数字资产的数额足以重新关联所述数字资产中的至少一部分数字资产被得到确定,则确定所述终止条件没有得到满足。
4.根据权利要求1到3中任一项所述的方法,其中,所述第一锁定脚本被配置为:在不对创建所述解锁事务的实体有权访问秘密信息进行核验的情况下,验证所述解锁区块链事务。
5.根据权利要求1到4中任一项所述的方法,其中,所述第一锁定脚本被进一步配置为:作为用于验证所述解锁事务的另一条件,核验所述解锁事务符合附加约束。
6.一种计算机实现的方法,用于生成解锁区块链事务,所述方法包括:
7.根据前述任一项权利要求所述的方法,其中,所述锁定区块链事务是与数字资产相关联的事务;以及,所述解锁区块链事务是将所述数字资产中的至少一部分数字资产从第一实体重新关
8.根据前述任一项权利要求所述的方法,其中,所述第一解锁脚本被配置为满足所述第一锁定脚本的条件集合。
9.根据权利要求6或其任何从属权利要求所述的方法,其中,后续区块链事务包括第二解锁脚本和第三锁定脚本;其中所述第二锁定脚本被配置为,当与所述后续区块链事务的所述第二解锁脚本一同被执行时:
10.根据权利要求9所述的方法,其中,所述第二锁定脚本施加用于验证所述后续区块链事务的条件集合。
11.根据前述任一项权利要求所述的方法,其中,所述解锁事务和所述锁定事务是重复智能合约集的组成部分。
12.根据权利要求11所述的方法,其中,所述重复智能合约集由所述终止条件终止。
13.一种系统,包括:
14.一种非暂时性计算机可读存储介质,其上存储有可执行指令,所述可执行指令由于由计算机系统的处理器执行而使所述计算机系统至少执行根据权利要求1到12中任一项所述的方法。
...【技术特征摘要】
1.一种计算机实现的方法,用于生成锁定区块链事务,所述方法包括:
2.根据权利要求1所述的方法,其中,所述第一锁定脚本被进一步配置为施加用于验证所述第一区块链事务的条件集合。
3.根据权利要求1或2所述的方法,其中,所述第一锁定脚本被配置为:如果与所述锁定区块链事务相关联的数字资产的数额足以重新关联所述数字资产中的至少一部分数字资产被得到确定,则确定所述终止条件没有得到满足。
4.根据权利要求1到3中任一项所述的方法,其中,所述第一锁定脚本被配置为:在不对创建所述解锁事务的实体有权访问秘密信息进行核验的情况下,验证所述解锁区块链事务。
5.根据权利要求1到4中任一项所述的方法,其中,所述第一锁定脚本被进一步配置为:作为用于验证所述解锁事务的另一条件,核验所述解锁事务符合附加约束。
6.一种计算机实现的方法,用于生成解锁区块链事务,所述方法包括:
7.根据前述任一项权利要求所述的方法,其中,所述锁定区块链事务是与数字资产相关联的事务;以及,所述解锁区...
【专利技术属性】
技术研发人员:莹·陈,迪安·克拉梅尔,
申请(专利权)人:区块链控股有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。