技术新讯 > 电子通信装置的制造及其应用技术 > 在区块链上记录验证密钥的系统的制作方法  >  正文

在区块链上记录验证密钥的系统的制作方法

  • 国知局
  • 2024-08-02 12:36:40

本发明主要涉及计算机实现的安全性和/或验证技术。本发明还涉及用于扩展或增强区块链功能的解决方案,尤其是实现匿名或近乎匿名的数字事务。本发明特别适合,但不限于在可以利用和/或受益于完整性(如果正确地遵循了该协议,那么诚实的验证者将确信输出的有效性)、可靠性(没有欺骗证明者能够使诚实的验证者相信输出的真实性是真实的)和/或零知识(如果输出是有效的,则除了这一事实之外,欺骗验证者一无所知)的加密可验证保证的协议中使用。本文所描述的各种协议适用于在区块链上记录验证密钥,其中工作者能够证明拥有正确的验证密钥vk(例如,由客户端发布)。本发明可以利用加密和数学技术来加强与电子转账有关的安全性,该电子转账通过区块链网络进行。

背景技术:

1、在本文档中,“区块链”一词可以指多种类型的电子的、基于计算机的、分布式账本,包括基于共识的区块链和事务链技术、许可及未许可的账本、共享账本及其变型。应当注意,本发明不限于与特定区块链一起使用,其他区块链实施方案和协议,包括非商业应用,也落入本发明的范围内。例如,本发明中描述的技术将提供利用其他区块链实施方案的优势,这些区块链实施方案在记录验证密钥方面具有一些局限性,其中实体能够证明拥有正确或适当的验证密钥vk。

2、区块链是一种点对点的电子账本,该电子账本是基于计算机的去中心化的分布式系统,该系统由区块组成,而区块又由事务(transaction)和其他信息组成。在一些示例中,“区块链事务blockchain transaction”是指对结构化的字段值集进行编码的输入消息,该结构化的字段值集包括数据和一组条件,其中满足该组条件是将该字段集写入区块链数据结构的前提。例如,每个事务是一种数据结构,该数据结构对在区块链系统中参与者之间数字资产的控制权的转移进行编码,并包括至少一个输入和至少一个输出。在一些实施例中,“数字资产”是指与使用权相关联的二进制数据。。在一些实施方式中,可以通过将数字资产的至少一部分从第一实体重新关联到第二实体来执行数字资产的控制权的转移。区块链的每个区块都可以包含前一个区块的散列值,从而使区块链接在一起,以创建自区块链创建以来写入该区块链的所有事务的永久、不可更改的记录。

3、在一些示例中,“基于堆栈的脚本语言”是指编程语言,该编程语言支持各种基于堆栈或面向堆栈的执行模型和操作。即,基于堆栈的脚本语言可以利用堆栈。通过堆栈,可以将值推入堆栈的顶部或从堆栈的顶部弹出。对堆栈执行的各种操作可能导致将一个或多个值推入堆栈顶部或从堆栈顶部弹出。例如,op_equal操作会从堆栈中弹出顶部的两个项目,对其进行比较,然后将结果(例如,如果相等则为1,如果不相等则为0)推入堆栈的顶部。对堆栈执行的其他操作(例如op_pick)可以允许从堆栈顶部以外的位置选择项目。在本文一些实施例采用的某些脚本语言中,可能至少有两个堆栈:主堆栈和备用堆栈。脚本语言的某些操作可以将项目从一个堆栈的顶部移动到另一堆栈的顶部。例如,op_toaltstack将值从主堆栈的顶部移动到备用堆栈的顶部。应该注意的是,在某些情况下,基于堆栈的脚本语言可能不仅限于严格按照后进先出(lifo)的方式操作。例如,基于堆栈的脚本语言可以支持将堆栈中的第n个项目复制或移动到顶部的操作(例如,分别为op_pick和op_roll)。可以将使用基于堆栈的脚本语言编写的脚本推入逻辑堆栈,该逻辑堆栈可以使用任何适当的数据结构(例如向量、列表或堆栈)来实现。

4、为了将事务写入区块链,必须对其进行“验证”。网络节点执行该工作以确保每个事务都是有效的,而无效事务在网络中将被拒绝。一个节点可以具有不同于其他节点的有效性标准。由于区块链中的有效性是基于共识的,因此,如果大多数节点同意事务有效,则该事务被视为有效。安装在节点上的软件客户端通过执行utxo(unspent transaction,未花费事务)的锁定和解锁脚本对部分引用utxo的事务执行此验证工作。如果锁定和解锁脚本的执行评估为真(true),并且满足其他验证条件(如果适用),则该事务通过该节点的验证。经验证的事务将传播到其他网络节点,随后网络节点可以选择将该事务包括在区块链中。因此,为了将事务写入区块链,该事务必须:i)由接收该事务的第一节点验证—如果该事务通过验证,则该节点将其中继到网络中的其他节点;ii)添加到被建造的新区块中;和iii)添加到先前事务的公共账本中。当将足够数量的区块添加到区块链,使该事务实际上不可逆时,该事务被视为已确认。

5、尽管区块链技术最广为人知的是使用加密货币实施方案,但数字企业家已经开始探索使用加密安全系统和可以存储在区块链上的数据来实现新系统。如果区块链可以用于自动化任务和过程,而不仅仅局限于加密货币领域,将会非常有利。这类解决方案将能够利用区块链的优势(例如,事件的永久防篡改记录、分布式处理等),同时在其应用中更具通用性。

6、本发明描述了一个或多个基于区块链的计算机程序的技术方面。基于区块链的计算机程序可以是记录在区块链事务中的机器可读和可执行程序。基于区块链的计算机程序可包括处理输入以产生结果的规则,然后可根据这些结果执行操作。当前研究的一个领域是使用基于区块链的计算机程序实现“智能合约”。与使用自然语言编写的传统合约不同,智能合约可以是自动执行机器可读合约或协议条款的计算机程序。

7、与区块链有关的另一个领域是使用“令牌”,通过区块链表示和转移现实世界的实体。潜在的敏感或秘密物品可以用没有明显含义或价值的令牌表示。因此,令牌可用作标识符,使现实世界的物品可通过区块链引用。

8、在实施例中,尽管与特定实体的交互可以在智能合约的特定步骤中进行编码,但是智能合约还可以自动执行和自我实施。智能合约是机器可读和可执行的。在一些示例中,自动执行是指执行智能合约,能够成功实现utxo的转移。注意,在这类示例中,能够使utxo转移的“实体”是指能够创建解锁脚本而无需证明知晓某些秘密的实体。换句话说,解锁事务可以在不验证数据源(例如,创建解锁事务的实体)是否可以访问加密秘密(例如,私密非对称密钥、对称密钥等)的情况下进行验证。同样,在此类示例中,自我执行是指使区块链网络的验证节点根据约束执行解锁事务。在一些示例中,从技术意义上使用“解锁”utxo(也称为“花费”utxo),是指创建引用该utxo的解锁事务,并有效执行。

9、区块链事务输出包括锁定脚本和有关数字资产所有权的信息。锁定脚本(也可以称为产权负载)通过指定转移utxo所需满足的条件“锁定”数字资产。例如,锁定脚本可能要求在解锁脚本中提供某些数据以解锁关联的数字资产。锁定脚本也称为“scriptpubkey”。要求一方提供数据以解锁数字资产的技术涉及将数据的散列嵌入锁定脚本中。但是,如果在创建锁定脚本时未确定数据(例如,未知和固定的数据),则会出现问题。

10、本发明可以描述为验证方法/系统,和/或描述为用于控制区块链事务的验证的控制方法/系统。在一些实施例中,经验证的区块链事务会使该事务在区块链上存有记录,在某些应用中,可能使数字资产经由区块链进行交换或转移。数字资产可以是由区块链管理的单位的资源。尽管在一些实施例中,数字资产可以用作加密货币,但可预期的是,在实施例中,数字资产可以在其他情况下附加地或替代地使用。注意,本发明虽然适用于数字资产的控制,但是本质上是技术性的,并且可以在利用区块链数据结构的其他情况下使用,而不一定涉及数字资产的转移。

技术实现思路

1、因此,期望提供能够在区块链上进行安全转移和交换的系统和方法。优选地,该区块链是公共区块链,但不一定如此。此外,期望实现匿名数字转移和/或通信,其中关于转移/通信的信息是模糊的,例如与区块链事务中的数字资产的接收者有关的信息。此外,期望提供用于在区块链上读取/写入元数据的凭证权限,使得根据协议不能读取和/或修改元数据,除非提供适当的凭证。因此,本发明提供增强的验证和/或安全性。

2、本文设计出了这种改进的解决方案。

3、本发明可以被描述为安全方法/系统。另外或可替代地,它可以被描述为验证方法/系统。本发明可以提供与(但不限于)完整性、可靠性和/或零知识的加密可验证保证有关的优势。另外或可替代地,本发明可以使得或至少有助于在区块链上记录验证密钥,其中实体能够证明拥有正确或适当的验证密钥vk。另外或可替代地,本发明可以被描述为提供一种用于控制分布式计算性能的控制机制,从而增强效率和安全性。

4、本发明可以提供一种计算机实现的方法,该方法包括:获得与区块链事务相关的赎回脚本,所述第一脚本包括第一组命令和一个或多个加密散列值;生成第二脚本,该第二脚本包括第二组命令、多个元素的一个或多个子集,其中多个元素共同形成验证密钥,并且一个或多个子集共同包括验证密钥的每个元素、第一脚本和与生成第二脚本的计算机系统相关联的标识符;并至少部分地基于执行第一组命令和第二组命令确定一个或多个加密散列值是否与验证密钥的一个或多个子集匹配,以生成计算机系统有权访问验证密钥的证明。

5、可选地,所述的生成第二脚本包括:确定要创建的锁定脚本的数量;将所述验证密钥序列化为所述多个元素;选择所述多个元素的子集;确定所述多个元素的所选子集的散列;生成所述第二脚本。

6、可选地,所述第二脚本包括一个或多个参数,所述一个或多个参数至少部分地基于所计算的散列进行匹配。

7、可选地,赎回脚本还包括以下条件:输出脚本包括使用工作者的私钥生成的数字签名。

8、多个元素中的元素可以是椭圆曲线上的点。

9、第一组命令和第二组命令可以共同包括指令,该指令用于至少部分地基于验证密钥的一个或多个子集中的子集来确定一个或多个加密散列值的第一加密散列值是否与散列输出相匹配。

10、可以使用诸如sha-256和ripemd-160之类的加密散列算法来生成散列输出,如通过使用sha-256和ripemd-160依次散列输入。

11、优选地,该方法可以包括通过以下步骤获得第一脚本:识别验证密钥的一个或多个子集,并为该验证密钥的一个或多个子集的每个子集计算对应的加密散列值,其中一个或多个加密散列值包括每个对应的加密散列值。

12、优选地,该方法可以包括将由事务锁定(encumber)的数字资产的控制权转移到计算机系统,但需要验证生成的证明。

13、优选地,该方法包括从第二计算机系统获得第一脚本,其中第二计算机系统贡献了至少一部分数字资产。

14、该事务可以是p2sh(pay-to-script-hash,支付脚本散列)事务。

15、优选地,至少一些验证密钥的大小大于或等于512字节,且小于或等于520字节。在某些情况下,所有验证密钥的大小均大于或等于512字节,且小于或等于520字节。

16、优选地,第一脚本的大小大于或等于58字节,且小于或等于104字节,第二脚本的大小大于或等于1628字节,且小于或等于1650字节。

17、该事务可以是根据区块链协议的标准操作。

18、上述一个或多个子集可以恰好是一个子集,该子集包括验证密钥。

19、第一脚本可以进一步包括与计算机系统相关联的公钥,与计算机系统相关联的标识符可以是使用与该公钥相对应的私钥生成的数字签名,并且该计算机系统访问验证密钥的证明可以进一步至少部分地基于该数字签名和公钥。

20、还期望提供一种系统,该系统包括:处理器;以及存储器,该存储器包括可执行指令,该可执行指令在被处理器执行时,可使系统执行要求保护的方法中的任何一种。

21、还期望提供一种非暂时性计算机可读存储介质,存储有可执行指令,该可执行指令在被计算机系统的一个或多个处理器执行时,使该计算机系统至少执行要求保护的方法中的任何一种。上述与本发明的方法有关的任何特征也可以应用于相应的系统。

本文地址:https://www.jishuxx.com/zhuanli/20240802/236955.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。