首页 / 专利库 / 电脑安全 / 密码学 / 区块链实施的事件锁加密的方法和系统

链实施的事件加密的方法和系统

阅读:478发布:2020-05-08

专利汇可以提供链实施的事件加密的方法和系统专利检索,专利查询,专利分析的服务。并且可提供一种计算机实现的方法。可以至少部分地使用 区 块 链 网络(例如 比特币 网络)来实现。计算机实现的方法包括:i)至少使用会议公钥、根据基于身份的加密方案将明文消息加密到密码公钥,以生成加密消息,其中,会议公钥与会议的成员相关联,会议的各个成员能够 访问 可用于 阈值 解密方案的私钥份额,在所述阈值解密方案中,至少阈值数量的私钥份额足以代表所述会议、通过将对于解密密钥的部分贡献进行组合来导出所述解密密钥;ii)至少使用与所述密码公钥相对应的密码私钥在第一组指令上生成数字签名,以在事件发生时进行密码操作;以及iii)向 工作量证明 区块链网络广播一个或多个交易,所述一个或多个交易包括所述加密消息、所述密码公钥、至少所述第一组指令、以及给所述会议的成员的第二组指令,以合作进行:响应于对事件的发生达成共识并视数字签名的真实性而定,部署虚拟链以进行第一组指令,其中,进行第一组指令至少包括根据密码密钥以及满足阈值的多个私钥份额导出解密密钥,解密密钥是足以从加密消息中获得明文消息的密码材料。,下面是链实施的事件加密的方法和系统专利的具体信息内容。

1.一种计算机实现的方法,包括:
至少使用会议公钥、根据基于身份的加密方案将明文消息加密到密码公钥,以生成加密消息,其中,所述会议公钥与会议的成员相关联,所述会议的各个成员能够访问可用于阈值解密方案的私钥份额,在所述阈值解密方案中,至少阈值数量的私钥份额足以代表所述会议、通过将对于解密密钥的部分贡献进行组合来导出所述解密密钥;
至少使用与所述密码公钥相对应的密码私钥在第一组指令上生成数字签名,以在事件发生时进行密码操作;以及
工作量证明链网络广播一个或多个交易,所述一个或多个交易包括所述加密消息、所述密码公钥、至少所述第一组指令、以及给所述会议的成员的第二组指令,以合作进行:
响应于对所述事件的发生达成共识并视所述数字签名的真实性而定,部署虚拟链以进行所述第一组指令,其中,进行所述第一组指令至少包括根据所述密码密钥以及满足所述阈值的多个私钥份额导出所述解密密钥,所述解密密钥是足以从所述加密消息中获得所述明文消息的密码材料。
2.根据权利要求1所述的计算机实现的方法,其中,所述解密密钥至少部分地根据基于椭圆曲线上的配对的方案而能够导出。
3.根据权利要求1或2所述的计算机实现的方法,其中,所述基于身份的加密方案是根据Boneh-Franklin基于身份的加密方案。
4.根据权利要求1至3任一项所述的计算机实现的方法,其中,所述一个或多个交易包括以下交易,所述交易包括给与所述会议相关联的公共群组地址的费用,所述费用被分配给所述虚拟链的、合作导出所述解密密钥的至少一部分矿工。
5.根据权利要求1至4任一项所述的计算机实现的方法,其中,所述虚拟链的矿工基于能够从所述工作量证明区块链获得的信息对所述事件达成共识。
6.根据权利要求5所述的计算机实现的方法,其中,能够从所述工作量证明区块链获得的信息是向所述工作量证明区块链提交交易的时间戳。
7.根据权利要求5所述的计算机实现的方法,其中,能够从所述工作量证明区块链获得的信息是对至少特定高度的有效区块的检测。
8.根据权利要求1至4中任一项所述的计算机实现的方法,其中,至少部分地基于检测到所述会议的成员发出了至少阈值数量的关于所述事件已经发生的证明,来达成所述共识,其中,至少部分地基于所述工作量证明区块链之外的信息来确定所述事件的发生,并且此外,其中所述证明的真实性是使用与所述会议的各个成员相关联的密码公钥而在密码学上可证实。
9.根据权利要求8所述的计算机实现的方法,其中,在预定时段内发出所述证明。
10.根据权利要求1至9中任一项所述的计算机实现的方法,其中,所述密码操作包括一个或多个解密操作。
11.根据权利要求1至10中任一项所述的计算机实现的方法,其中,所述密码操作包括一个或多个认证操作。
12.根据权利要求1至11中任一项所述的计算机实现的方法,其中,生成所述会议的成员的各个私钥份额,并将其用于在与所述成员相关联的节点内的可信执行环境内进行密码操作。
13.一种计算机可读存储介质,包括计算机可执行指令,所述计算机可执行指令在被执行时配置处理器以进行权利要求1至12中任一项所述的方法。
14.一种电子装置,包括:
接口装置;
处理器,耦接到所述接口装置;
存储器,耦接到所述处理器,所述存储器上存储有计算机可执行指令,所述计算机可执行指令在被执行时配置所述处理器进行权利要求1至12中任一项所述的方法。
15.根据权利要求14所述的电子装置,其中,所述处理器包括可信执行环境,并且其中,所述计算机可执行指令在所述可信执行环境内执行。

说明书全文

链实施的事件加密的方法和系统

技术领域

[0001] 本发明总体涉及分布式系统,更具体而言,涉及用于分布式系统上的交易中的事件锁定操作的方法和系统。事件锁定和事件锁加密可以表示响应于事件的发生对数据进行操作——例如,在事件锁加密方案下,可以响应于事件的发生对密文消息进行解密。事件锁加密的一种特定类型是时间锁加密方案,其中对消息进行加密,然后在经过一定量的时间后,对加密消息进行解密或使其可解密。本发明特别适合于但不限于有效且可靠地生成消息,检测事件的发生并响应于使用分布式系统证实事件的发生而进行操作。例如,可以在时间锁加密方案下对消息进行加密,其中,因为经过了一个时间量(可能是随机的),所以会发生对应的解密操作。

背景技术

[0002] 在本文中,我们使用术语“区块链”来包括所有形式的电子、基于计算机的分布式账本。他们包括区块链和交易链技术、许可的账本和未经许可的账本、份额账本及其变体。区块链技术最广为人知的应用是比特币账本,但是也提出并开发了其他区块链实施方式。
虽然本文中出于方便和说明的目的可以引用比特币,但是应当注意,本发明不限于与比特币区块链一起使用,替代性的区块链实施方式和协议也落入本发明的范围内。
[0003] 区块链是一种基于共识的电子账本,它被实现为基于计算机的分散式、分布式系统,该系统由区块组成,而区块相应地由交易和其他信息组成。对于比特币而言,每个交易是一个数据结构,该数据结构对区块链系统中的参与者之间的数字资产的控制转移进行编码,并包括至少一个输入和至少一个输出。每个区块包含前一个区块的散列,以使这些区块变为链接在一起,以创建自区块链开始以来就已经写入区块链的所有交易的永久、不可更改的记录。交易包含嵌入其输入和输出中称为脚本的小程序,他们指定如何以及通过谁来访问交易的输出。在比特币平台上,这些脚本是使用基于堆栈的脚本语言来编写的。
[0004] 为了将交易写入区块链,必须对其进行“验证”。某些网络节点充当矿工并进行工作以确保每次交易都有效,而无效交易从网络中被拒绝。例如,安装在节点上的软件客户端对引用未耗用交易输出(UTXO)的交易进行该验证工作。可通过执行其锁定和解锁脚本来进行验证。如果锁定和解锁脚本的执行评估为TRUE,并且如果满足某些其他条件,则交易有效并且可以写入区块链。因此,为了将交易写入区块链,该交易必须i)由接收交易的节点来验证-如果交易被验证,则节点将其中继到网络中的其他节点;ii)被加入由矿工建造的新区块;iii)被开采,即加入过去交易的公共账本。当向区块链添加足够数量的区块以使交易实际上不可逆时,认为交易被确认。
[0005] 虽然区块链技术由于加密货币实现方式的使用而广为人知,但是数字企业家已经开始探索比特币所基于的加密安全系统以及可以存储在区块链上以实现新系统的数据这两者的使用。如果区块链可用于并不单纯限于以加密货币命名的支付的自动化任务和过程,这将是非常有利的。这样的解决方案将能够利用区块链的好处(例如,事件的永久性、防篡改记录,分布式处理等),同时在其应用中更通用。
[0006] 随着区块链技术的扩展以提供新功能,重要的是维护区块链及其中所代表的数字资产的安全性。依赖于区块链的扩展功能集可能会受到恶意方的攻击。因此,提供以下方法和装置可能是有用的,这些方法和装置为区块链或区块链的新功能提供额外安全性,或控制对于数字资产的所有权,以维持区块链的完整性。
[0007] 此外,随着对区块链的新改进或修改的发展,拥有控制和将数字资产从一个区块链转移到另一个区块链、同时保持两个区块链的完整性的技术是有帮助的。因此,希望在这些方案中的一个或多个方案中提供了改进区块链技术的改进方法和装置。

发明内容

[0008] 因此,根据本发明,提供如后附权利要求所限定的方法/系统。
[0009] 如下更详细所述,可以在区块链网络上形成会议。会议是开放式成员群组,在向与会议相关联的池提交足够的权益后,区块链网络中的任何节点均可加入该会议。例如,节点可通过将诸如数字货币(例如比特币)、令牌或其他权益或价值这样的数字资产转移到与会议相关联的资源(例如账户)来加入会议。可以部分地通过分布式生成私钥份额来保护会议。每个持有人可以使用每个私钥份额来生成交易的部分签名。阈值签名方案可用于至少使用部分签名的阈值来为这种交易生成有效签名。成员存款可能会因恶意行为而被没收。
[0010] 有利地,通过使用分布式生成的密钥份额和其他安全功能,可以保护密钥份额以防止群组成员或非群组成员的恶意活动。这种安全性加上阈值签名方案的使用,允许形成自治的、去中心化的群组,并且该群组可用于多个目的中的任何一个,例如包括提供双向锚定。更具体而言,阈值签名方案允许该群组控制与该群组相关联的公钥所阻碍的数字资产。
[0011] 因此,根据本发明,可以提供一种计算机实现的方法。该计算机实现的方法可包括:i)根据至少使用会议公钥的、基于身份的加密方案将明文消息加密到密码公钥,以生成加密消息,其中,所述会议公钥与会议的成员相关联,所述会议的各个成员能够访问可用于阈值解密方案的私钥份额,在所述阈值解密方案中,至少阈值数量的私钥份额足以代表所述会议、通过将对于解密密钥的部分贡献进行组合来导出所述解密密钥;ii)至少使用与所述密码公钥相对应的密码私钥在第一组指令上生成数字签名,以在事件发生时进行密码操作;以及iii)向工作量证明区块链网络广播一个或多个交易,所述一个或多个交易包括所述加密消息、所述密码公钥、至少所述第一组指令、以及给所述会议的成员的第二组指令,以合作进行:响应于对所述事件的发生达成共识并视所述数字签名的真实性而定,部署虚拟链以进行所述第一组指令,其中,进行所述第一组指令至少包括根据所述密码密钥以及满足所述阈值的多个私钥份额导出所述解密密钥,所述解密密钥是足以从所述加密消息中获得所述明文消息的密码材料。
[0012] 在一些实施方式中,所述解密密钥至少部分地根据基于椭圆曲线上的配对的方案而能够导出。
[0013] 在一些实施方式中,所述基于身份的加密方案是根据Boneh-Franklin基于身份的加密方案。
[0014] 在一些实施方式中,所述一个或多个交易包括以下交易,所述交易包括给与所述会议相关联的公共群组地址的费用,所述费用被分配给合作导出所述解密密钥的、所述虚拟链的至少一部分矿工。
[0015] 在一些实施方式中,所述虚拟链的矿工基于能够从所述工作量证明区块链获得的信息对所述事件达成共识。
[0016] 在一些实施方式中,能够从所述工作量证明区块链获得的信息是向所述工作量证明区块链提交交易的时间戳。
[0017] 在一些实施方式中,能够从所述工作量证明区块链获得的信息是对至少特定高度的有效区块的检测。
[0018] 在一些实施方式中,至少部分地基于检测到所述会议的成员发出至少阈值数量的关于所述事件已经发生的证明,来达成所述共识,其中,至少部分地基于所述工作量证明区块链之外的信息来确定所述事件的发生,并且此外,其中所述证明的真实性是使用与所述会议的各个成员相关联的密码公钥而在密码学上可证实。
[0019] 在一些实施方式中,在预定时段内发出所述证明。
[0020] 在一些实施方式中,一个或多个密码操作包括一个或多个解密操作。
[0021] 在一些实施方式中,一个或多个密码操作包括一个或多个认证操作。
[0022] 在一些实施方式中,生成所述会议的成员的各个私钥份额,并将其用于在与所述成员相关联的节点内的可信执行环境内进行密码操作。
[0023] 根据本发明,可提供一种电子装置。所述电子装置包括接口装置、耦接至接口装置的处理器、以及耦接至处理器的存储器。存储器上存储有计算机可执行指令,该计算机可执行指令在被执行时配置处理器以进行本文所述的方法。
[0024] 根据本发明,可提供一种计算机可读存储介质。所述计算机可读存储介质包括计算机可执行指令,所述计算机可执行指令在被执行时配置处理器以进行本文所述的方法。附图说明
[0025] 参考本文所述的实施方案,本发明的这些和其他方案将变得显而易见并得以阐明。下面仅通过示例并参考附图来描述本发明的实施例,其中:
[0026] 图1示出示例性区块链网络的方框图
[0027] 图2示出可以充当区块链网络中的节点的示例性电子装置的方框图。
[0028] 图3是发起会议的示例性方法的流程图
[0029] 图4是加入会议的示例性方法的流程图。
[0030] 图5是没收数字资产的示例性方法的流程图。
[0031] 图6是重新分配密钥份额的示例性方法的流程图。
[0032] 图7是重新分配密钥份额的另一个示例性方法的流程图。
[0033] 图8是返回存款的示例性方法的流程图。
[0034] 图9是示例性区块链和示例性虚拟链的方框图。
[0035] 图10是用于请求完成任务的示例性请求者方法的流程图。
[0036] 图11是用于提出任务解决方案的示例性提议者方法的流程图。
[0037] 图12是用于质询任务解决方案的示例性质询者方法的流程图。
[0038] 图13是用于就任务解决方案仲裁质询者的示例性仲裁者方法的流程图。
[0039] 图14是示例性区块链和事件锁定消息的方框图。
[0040] 图15是用于生成事件锁定消息的示例性加密方法的流程图。
[0041] 图16是用于响应于检测到事件锁定消息中指定的事件并生成可用于解密事件锁定消息的解密密钥而执行步骤的示例性方法的流程图。

具体实施方式

[0042] 区块链网络
[0043] 首先参考图1。图1以方框图形式示出与区块链相关联的示例性区块链网络100。区块链网络可以是公共区块链网络,它是一个点对点的开放成员网络,任何人可以加入其中,无需邀请或经过其他成员同意。运行区块链协议(区块链网络100在该协议下操作)的实例的分布式电子装置可以参与区块链网络100。这种分布式电子装置可称为节点102。区块链协议例如可以是比特币协议。
[0044] 运行区块链协议且形成区块链网络100的节点102的电子装置可以是各种类型的装置,例如包括台式计算机、膝上型计算机、平板计算机、服务器、诸如智能电话这样的移动装置、诸如智能手表这样的可穿戴计算机、或其他电子装置。
[0045] 区块链网络100的节点102使用合适的通信技术相互耦接,所述通信技术可包括有线和无线通信技术。这种通信遵循与区块链相关联的协议。例如,在区块链是比特币区块链的情况下,可以使用比特币协议。
[0046] 节点102维护区块链上所有交易的全局账本。因此,全局账本是分布式账本。每个节点102可以存储全局账本的完整副本或部分副本。对于通过工作量证明来保护的区块链,影响全局账本的节点102的交易由其他节点102验证,从而维护全局账本的有效性。当区块链是基于工作量证明的区块链时,也通过检查随区块提交的工作量证明来证实区块。
[0047] 至少一部分节点102作为区块链网络100的矿工104操作。图1的区块链网络100是工作量证明区块链,其中矿工104执行昂贵的计算,以便促进区块链上的交易。例如,工作量证明区块链可能要求矿工解决加密问题。在比特币中,矿工104找到一个随机数,使得区块头部通过SHA-256散列到一个小于当前难度所定义的值的数字。工作量证明算法所需的散列功率意味着在一定数量的区块在其顶部被挖掘之后,交易被认为实际上是不可逆的。解决加密问题的矿工104为区块链创建新区块,并将新区块广播到其他节点102。在接受应当将区块添加到区块链之前,其他节点102证实矿工104实际上已经解决了加密问题并因此展示了足够的工作量证明。通过节点102的共识将区块添加到区块链(即,添加到分布式全局账本)。
[0048] 矿工104创建的区块包括已经由节点102广播到区块链的交易。例如,区块可包括从与节点102的其中一个相关联的地址到与节点102的其中另一个相关联的地址的交易。通过这种方式,区块充当从一个地址到另一个地址的交易的记录。要求该交易被包括在区块中的一方证明:他们被授权通过使用与其公钥相对应的私钥对请求进行签名来发起转移(例如,在比特币的情况下,耗用比特币)。如果请求被有效地签名,则仅将转移添加到区块中。
[0049] 对于比特币而言,在公钥和地址之间存在一对一对应关系。也就是说,每个公钥与单个地址相关联。因此,本文中对于将数字资产转移至公钥或从公钥转移数字资产(例如,支付到公钥中)以及将数字资产转移至与所述公钥相关联的地址或从所述地址转移数字资产的任何引用都表示共同的操作。
[0050] 有些节点102可能不是作为矿工操作,而是作为验证节点参与。交易验证可能涉及检查(一个或多个)签名、确认对有效UTXO的引用等。
[0051] 图1的示例包括五个节点102,其中三个作为矿工104参与。实际上,节点102或矿工104的数量可以不同。在很多区块链网络中,节点102和矿工104的数量可以远大于图1所示的数量。
[0052] 如下所述,各种节点102可以合作形成将在本文中称为会议110的群组。在所示示例中,将三个节点102示出为会议110的参与方。但是,会议110成员的实际数量可能大得多。
[0053] 会议110是开放成员群组,它可以由任何节点102在向与会议110相关联的池提交足够的权益时加入。例如,节点可通过向与会议110相关联的账户转移数字资产(诸如数字货币(例如比特币)、令牌、或其他权益或价值)来加入会议。加入会议的节点102可以是区块链网络中的任何节点,包括开采节点和非开采节点。在会议的至少一部分应用中(例如当会议进行如下所述的双向锚定时),充当会议成员的节点在他们下载(但不一定保留)完整区块链的意义上监视区块链。
[0054] 下面更详细地讨论用于加入、离开和参与会议110的技术。
[0055] 作为节点操作的电子装置
[0056] 图2是示出示例性电子装置200的组件的方框图,示例性电子装置200可以充当点对点区块链网络100(图1)中的节点102(图1)。示例性电子装置200也可称为处理装置。电子装置可以采用各种形式,例如包括台式计算机、膝上型计算机、平板计算机、服务器、诸如智能手机这样的移动装置、诸如智能手表这样的可穿戴计算机、或其他类型的形式。
[0057] 电子装置200包括处理器210、存储器220和接口装置230。这些组件可以直接或间接地相互耦接并且可以相互通信。例如,处理器210、存储器220和接口装置230可以经由总线240相互通信。存储器220存储计算机软件程序,其包括用于进行本文所述功能的机器可读指令和数据。例如,存储器可包括处理器可执行指令,当通过处理器210执行时,可执行指令使得电子装置进行本文所述的方法。处理器可执行指令可包括指令,当由处理器210执行时,该指令使得电子装置实现与区块链网络100(图1)相关联的协议。例如,指令可包括用于实现比特币协议的指令。
[0058] 存储器220可以存储区块链网络100(图1)的全局账本或其一部分。也就是说,存储器220可以存储区块链的所有区块或一部分区块,例如最新的区块,或者一些区块中的一部分信息。
[0059] 虽然存储器220在图2中用单个方框示出,但是实际上,电子装置200可包括多个存储器组件。存储器组件可以是各种类型,例如包括RAM、HDD、SSD、闪存驱动器等。不同类型的存储器可以适合于不同的目的。此外,虽然存储器220与处理器210分开示出,但是处理器210也可包括嵌入式存储器。
[0060] 如图2所示,处理器210可包括诸如可信执行环境(TEE)250这样的安全区域。TEE 250是隔离执行环境,其为电子装置200提供额外的安全性,例如隔离执行、可信应用的完整性和资产机密性。TEE 250提供了这样的执行空间:该执行空间保证在TEE 250内加载的计算机指令和数据在机密性和完整性方面受到保护。TEE 250可用于保护重要资源(例如密钥)的完整性和机密性。TEE 250至少部分地在硬件级别实现,使得在TEE 250内执行的指令和数据受到保护,以防止来自电子装置200其余部分以及诸如电子装置的所有者这样的外方的访问和操纵。TEE 250内的数据和计算从操作包括TEE 250的节点102的一方得到保护。
[0061] TEE 250可以操作以将飞地实例化,然后一次一个添加存储器的页面,同时累积地进行散列。也可以在远程机器(可以是开发者机器或另一个机器)上进行类似的操作,以便远程机器确定并存储预期的散列。因此,飞地的内容可以由任何远程机器证实,以确保飞地运行批准的算法。可通过比较散列来进行证实。飞地完全建成后,将其锁定。可以在TEE 250中运行代码并向代码发送秘密,但代码不能更改。最终散列可通过证明密钥来进行签名,并且可使其对于数据所有者可用,以在数据所有者向飞地发送任何秘密之前证实它。
[0062] TEE 250可用于保护与由会议110(图1)使用的会议公钥相关联的私钥份额的机密性和完整性。例如,TEE 250可以用于私钥份额的生成和存储。TEE 250目的是确保没有成员能够直接获得在TEE 250飞地内保持的私钥份额,或者通过成员间通信或跨飞地通信获得关于其他私钥份额的信息。协议对于飞地阈值的损害也是稳健的。此外,TEE 250可以启用远程证明,该远程证明可以由节点102(图1)用来向其他节点102证明TEE 250是可信的并且正在运行用于会议110所实施的协议的、被批准的计算机可执行指令。远程证明可以由TEE250通过运行特定代码段并在飞地内部发送该代码的散列来提供,代码的散列由用于飞地的内部证明密钥签名。
[0063] 当先前在电子装置200上使用私钥份额的会议110的成员选择离开会议时,TEE 250可用于证明私钥份额的安全删除。电子装置200可通过TEE 250中提供的远程证明协议向其他会议成员提供删除证明。在允许成员撤回其成员存款之前,可能需要删除证明。也就是说,存款的返回可以以证明成员的飞地内的私人密钥份额的删除为条件。
[0064] TEE 250可以配备有安全随机数发生器,安全随机数发生器是在TEE的飞地内部,其可用于生成私钥、随机询问、或其他随机数据。TEE 250还可以被配置为从外部存储器读取数据,并且可以被配置为将数据写入外部存储器。这些数据可通过仅在飞地内部保持的秘密密钥加密。
[0065] 可以使用各种平台(诸如可信平台模块(TPM)或英特尔软件保护扩展(SGX))来实现TEE 250。例如,SGX支持远程证明,这使得飞地能够从正在执行特定飞地的处理器获取签名的声明,所述特定飞地具有称为引用的给定成员。诸如英特尔证明服务(IAS)这样的第三方证明服务可以证明这些签名的声明源自符合SGX规范的可信CPU。
[0066] 电子装置200充当区块链网络100(图1)中的节点102(图1),并且可以加入或者以其他方式参加会议110(图1)。当一组数字资产持有者汇集数字资产(例如数字货币、令牌或区块链网络100(图1)支持的其他权益或价值)时,会议110形成。
[0067] 会议和阈值签名
[0068] 会议110可以是许可或非许可群组。也就是说,区块链网络100(图1)中的任何节点102(图1)(即,通过监视和存储区块链中的至少一部分信息的任何节点)可以加入会议110。
为了加入会议110,节点102将一个或多个数字资产转移到与会议110相关联的数字资产池(即,转移到与一个或多个数字资产相关联的公共群组地址,该一个或多个数字资产相应地与其他成员相关联)。该数字资产池可被称为会议池。例如,节点102可通过将这样的数字资产转移(即,存放)到与会议池相关联的地址(即,转移到又可称为公共群组地址的“会议地址”)来加入会议110。数字资产被置于具有单个公钥(称为会议公钥)的群组阈值签名的控制之下。会议议员持有分布式产生的私钥份额。持有的份额数量可以与存放在池中的金额成比例。
[0069] 由会议110控制的数字资产(包括转移到会议地址的任何数字资产)被置于阈值签名方案的控制之下。在阈值签名方案下,需要一组总私钥份额持有超过阈值的成员来产生有效签名,该签名允许数字资产被转移离开会议110的控制。即,必须将至少阈值数量的私钥份额生成有效签名用于为会议110控制的数字资产的任何向外转移。
[0070] 会议公钥阻碍会议110的成员存放在会议池中的以换取私钥份额的数字资产,以及通过会议1100的成员或非成员存放在与会议池相关联的地址的任何数字资产(即,在会议的全部、部分、或有条件控制下放置)(该任何数字资产由于获得私钥份额之外的原因而已经被存放)。非成员或成员可出于各种原因将数字资产存放在与会议相关联的地址。
[0071] 因为同一会议公钥可以控制成员存款(即由会议成员提供的以换取私钥份额的数字资产)以及成员或非成员处于其他目的提供的数字资产,所以发送到与会议相关联的地址的至少一部分存款可能会被特别标记,以表明存款的类型。例如,将数字资产转移到会议地址的交易可包括标记、标识符或指示正在进行的存款的性质的其他属性。举例来说,不是为了加入会议或增加会议成员资格中权益的目的而进行的将数字资产转移到会议地址的交易可包括特殊标识符,以指示存款是为了其他目的而进行的。在管理私钥生成时,可通过与会议110相关联的节点102来使用这些标识符。更具体而言,为了加入群组而存放数字资产的节点102被分配用于会议110的私钥份额(作为进行数字资产存放的结果),而为了其他目的(例如,转移到侧链)存放数字资产的其他节点102不一定持有会议的会议私钥份额(即,对应于会议公钥)。
[0072] 会议110可以充当自治群组,其中通过没收全部或部分成员存款的威胁来强制执行合作行为。非合作或恶意成员可能由于加入由很多诚实成员参与的合作协议而被没收这种数字资产。也就是说,为了确保所有节点102都按照预定协议或准则进行操作,进入会议池的成员存款可能会被没收。没收意味着永久阻止被视为没收的成员存款的返回。形成由于恶意活动而未返回的成员存款的(一个或多个)数字资产可以留在会议池中但不返回(例如,如果达成共识(在替代链上)他们不应当被返回),立即或在将来被转移到另一个不可耗用的地址,或以其他方式没收,并且没收的性质可能取决于会议是否充当用于侧链的担保验证者集合(bonded validator set)。
[0073] 此外,当会议成员希望离开会议110时,他们可以撤回其成员存款(即,要求会议110将成员存款转移回该成员的个人地址)。但是,仅当群组成员(即会议)使用多个私钥份额(其数量超过生成有效数字签名所需的阈值)来批准撤回时才进行资金的撤回。
[0074] 会议110实现的阈值签名方案可以是各种类型。阈值签名方案允许在n方之间份额签名权,只要至少阈值数量的私钥份额有助于生成有效签名。小于阈值的任何子集都不能生成有效签名。更具体而言,每一方都控制私人签名密钥的份额,并且必须使用阈值数量的密钥份额、通过组合部分签名来生成有效签名。任何小于阈值的密钥份额子集都不能生成有效签名。
[0075] 阈值签名方案可以是椭圆曲线数字签名算法(ECDSA)方案。例如,ECDSA方案可以是Ibrahim等人在“A robust threshold elliptic curve digital signature providing anew verifiable secret sharing scheme”,2003EIII 46th Midwest Symposium on Circuits and Systems,1:276-280(2003)中提出的类型。该阈值签名方案是数字签名方案的扩展,其是基于椭圆曲线加密的算法,其中需要来自n个密钥份额持有者一方的t+1个密钥份额来重建私钥。该方案可用于构建有效签名,而无需重建私钥,并且没有任何一方必须向另一方透露其密钥份额。
[0076] 因为t+1密钥份额足以重建秘密,所以根据该技术的最大允许对手(adversary)数量为t。在Ibrahim等人的模型中,对手是一个破坏持有秘密份额的一方并可以访问该秘密份额的实体。对手可以是各种类型。例如,拜占庭对手是可能假装参与协议而实际上他们可能发送不正确的信息的对手。Ibrahim提出的ECDSA方案对于高达t<=n/4个恶意对手是稳健的。这种稳健性可以上升到t<=n/3,但代价是更高的复杂性。
[0077] Ibrahim等人的ECDSA方案对于阻止t<=n/3个阻止对手是稳健的。阻止对手能够防止破坏方参与协议或中途停止参与。
[0078] 该ECDSA方案包括可由节点102用来识别恶意或不合作方的各种机制。例如,可验证的秘密份额(VSS)可用于份额Shamir秘密份额(SSS)所需的多项式。SSS是一种秘密份额的形式,其中将秘密分成若干部分并将其各自独有的部分提供给每个参与者。这些部分可用于重建秘密。在不一致的份额被提供给不同节点102的情况下,或者在将与广播至所有节点的盲目份额不同的份额秘密地发送到节点的情况下,节点102可以使用VSS来识别恶意节点102或成员。可通过节点102中的任何一个来识别不一致的份额。可通过包括允许节点102将其份额验证为一致的辅助信息来使得可以验证秘密的份额。
[0079] 向个别节点发送不正确的份额(即,与广播的盲目份额不同的份额)可以被份额的预期接收节点识别。被秘密发送到节点的不正确份额的识别可以使用公共可验证的秘密份额(PVSS)技术公开验证。这样的技术可以避免在不使用PVSS的情况下可能发生的欺骗发送者的识别时出现的可能延迟,并且在发送不正确的份额时,不正确份额的接收者离线或从网络的实质部分切断。
[0080] 诸如向不同节点提供不一致份额的不当行为可以由会议110解决,以阻止恶意行为。例如,当节点102(图1)被其他节点102识别为恶意方时,超过阈值(例如,t+1)的多个节点102(即,与会议成员相关联的节点)可以合作惩罚恶意方。例如,节点102可以采取涉及由恶意方存放到会议的数字资产(诸如数字货币、令牌或其他权益或价值)的动作。例如,会议可通过将数字货币、令牌、权益或价值转移到不可耗用的地址来烧毁他们,或者会议可通过与其他节点达成共识来没收这些数字资产以拒绝。非不当行为节点的节点102还可通过合作排除不当行为节点来阻止不当行为(例如,通过有效地将密钥份额无效;例如,通过将节点从参与会议协议中排除,或通过重新份额私钥而不是向不当行为节点分配份额)。
[0081] 可通过使用TEE来增强上述ECDSA技术。例如,基于Ibrahim等人的阈值ECDSA签名技术考虑一种强大的对手形式,在这里称为拜占庭对手。这种类型的对手可以任意行为,例如,他们不仅拒绝参与签名过程或中途停止参与,而且还可能假装诚实地参与并发送不正确的信息。但是,通过使用TEE,并产生用于在存储秘密的私钥份额的TEE的飞地内签名的数据,可以提供额外的安全性,因为极不可能大量损害飞地。例如,如果每个TEE被分配不超过一个密钥份额,那么可以合理地预期可能受损的TEE的数量不接近拜占庭对手的稳健性阈值,假设n足够大。这允许协议是安全的,如果相对于密钥份额的总数,它可以容忍一小部分恶意对手。
[0082] 例如,如果所有节点都具有TEE,则只有在TEE的制造商未被破坏的情况下,并且只能通过很大的努和费用才能通过对节点的物理访问来实现对存储在飞地内的秘密的获取。这种制造商等级的破坏预计是可管理的。例如,如果制造商错误地宣称很多公钥对应于真正的TEE,则他们可以直接访问私钥份额,并可能发起攻击。但是,这种攻击需要足够数量的密钥份额,以允许制造商在没有其他节点帮助的情况下产生有效签名。这将意味着累积大部分的总权益,这将是非常昂贵的。此外,通过实施攻击,将摧毁权益持有的大部分价值。
[0083] 当使用TEE时,考虑协议对“破坏的节点”的稳健性是有用的。破坏的节点使得TEE外部的硬件被破坏,但TEE的完整性未受损害。破坏的节点可以控制飞地接收和不接收什么信息。具体而言,破坏的节点可以停止、即避免参与协议。如果要求提供给协议的信息通过在飞地(其中在证明期间认证对应的公钥)中秘密持有的私钥来签名,则私钥与飞地本身一样可信。因此,破坏的节点不能向协议发送任意(认证的)信息,并且可能仅通过停止或试图欺骗飞地不正确地行动(例如,通过向其提供过时信息)来尝试干扰。因此,对于破坏的节点,成功的攻击将需要收集足够数量的部分签名,以产生完整签名。通过TEE,Ibrahim等人的协议对于2t个破坏的节点是稳健的。因为如果n-2t>=2t+1就可以产生签名,那么大小为2t+1<=(n+1)/2的任何合格的密钥份额子集就足矣。因此,在使用TEE时,可将阈值签名方案的阈值配置为大于或等于密钥份额的50%的数字,从而在存在破坏的节点的情况下产生有效签名。
[0084] 也可以使用其他阈值签名方案。例如,阈值签名方案可以是Goldfeder等人在“Securing Bitcoin Wallets Via a New DSA/ECDSA threshold signature scheme”,(2015)中提出的类型的ECDSA阈值方案。该协议允许t+1方产生有效签名。因此,对手必须控制以产生有效签名的密钥份额的数量等于对手必须拥有以重建私钥的密钥份额的数量。在需要一致同意以产生有效签名的情况下,该技术可以提供有效的方案。在最一般的情况下,该方案强加空间要求,其随着会议成员的数量呈指数级扩展,因为对于任意阈值,需要为n个玩家中的t+1个玩家的任何可能子集重复整个协议。因此,对于n和t两者的大值,将需要存储大量的密钥份额。为了减轻这种存储要求,可将标准比特币多重签名与阈值签名组合。具体而言,可以使用多重签名锁定数字资产,从而将每个私钥划分为多个份额。在空间要求方面,这种技术将使得更大的会议更有效率。还可通过在多个等级以反复的方式为出自较小大小的参与方中的大量参与者组成方案来改进扩展属性。例如,可将阈值签名方案与Cohen等人在“Efficient Multiparty Protocols via Log-Depth Threshold Formulas(2013),Advances in Cryptology-CRYPTO 2013pp 185-202”提出中的技术组合。
[0085] 可以使用其他阈值方案,包括非ECDSA签名方案。例如,节点102可以使用基于Schnorr方案的阈值方案来实现会议110。
[0086] 区块链网络100(图1)中的节点102(图1)可以基于所选择的阈值签名方案来实现会议协议。这样的节点102可包括存储在存储器220(图2)中的、实现会议协议的计算机可执行指令。在由处理器210(图2)执行时,这样的指令使得节点102(诸如参考图2所述的类型的电子装置200)进行会议协议的一个或多个方法。这些方法可包括图4至图8和图10的方法300、400、500、600、700、800、1000中的任何一个或组合。因此,会议协议可包括图4至图8和图10的方法300、400、500、600、700、800、1000中的一个或多个的组合。可通过节点同与其他会议成员相关联的其他节点合作来进行这些方法。
[0087] 会议启动
[0088] 下面参考图3,示出启动会议110的方法300。方法300可以由初始信任方进行,以建立会议110。即,与初始信任方相关联的节点102可以进行方法300。
[0089] 方法300包括在操作302提供会议公钥。可将会议公钥提供给其他节点102,以允许其他节点在他们希望加入会议时支付到会议公钥。也就是说,其他人可将数字资产转移到与会议公钥相关联的地址,从而加入会议。
[0090] 在操作304,进行方法300的节点102允许支付到公钥,直到满足一个或多个条件。例如,针对确定的时间段或者确定的区块数量,节点可以允许支付到公钥。在满足条件之后(例如,在该时间段期满或开采所述数量的区块之后),进行方法300的节点102在操作306识别该会议的初始成员。
[0091] 在识别出包括会议的初始成员资格的各方之后,在操作307,根据阈值签名方案将私钥划分为私钥份额。然后在操作308,将私钥份额从进行方法300的节点102分配到所识别的各方。私钥份额与阈值签名方案相关联,阈值签名方案可以是本文所述的类型。
[0092] 在操作308期间,被识别为会议成员的节点102合作生成新的私钥份额和新的公钥。由初始信任方发送到这些节点的原始密钥份额可用于签名和广播交易,以将会议池中的所有数字资产发送到新的公钥,新的公钥随后成为会议公钥。也就是说,在操作408期间,建立新的群组公共地址,并且在会议的控制下的数字资产被转移到该新地址,该新地址成为群组的新地址并与会议公钥相关联。在确认该转移之后,会议可以无信任地操作。新的群组公共地址形成为将来可以从希望加入会议110的其他节点接收数字资产的存款的地址,或者用于如上所述的其他目的。现在认为会议成员加入了会议,并且这些节点现在可以在没有初始信任方的帮助下运行。此外,初始信任方不再在会议的操作中扮演任何色。
[0093] 会议启动后加入会议
[0094] 下面参考图4,图4示出加入会议的方法400。图4的方法400可以结合图3的方法300操作,但是,图4的方法400是由在进行图3的方法300的节点所操作的相同区块链网络100(图1)中操作的节点102中的不同节点进行的。图4的方法400包括在操作402获得会议公钥。会议公钥可以直接从发起会议的一方获得,例如进行图3的方法300的节点,也可以从第三方获得,例如包括在区块链网络100(图1)之外操作的第三方系统。例如,可以从可通过公共互联网访问的公共web服务器获得会议公钥。
[0095] 进行方法400的节点102在操作404通过广播从与节点102相关联的私人账户到会议地址(即,与会议公钥相关联的地址)的数字资产的交易来支付到会议公钥。更具体而言,节点102广播交易以将一个或多个数字资产转移到与会议公钥相关联的公共群组地址。公共群组地址是会议池的地址。会议池包括与会议的其他成员相关联的其他数字资产。因此,在操作404的交易一旦被矿工104(图1)添加到区块中,就将数字资产转移到包括其他成员的数字资产的会议池。公共群组地址可以从希望加入会议的各方接收转移,也可以从不希望加入会议的各方接收转移。不希望加入会议的各方将数字资产转移到会议池,以便通过使用会议所采用的阈值签名方案,使得会议能够对这些数字资产进行全面、部分或有条件的控制。
[0096] 在操作404的交易可包括标记、标识符或其他属性,其指示转移数字资产的一方希望加入会议并且存款是为此目的而进行的。
[0097] 在通过会议池存放数字资产之后,进行方法400的节点102在操作406接收私钥份额。然后,节点102通过运行协议的单个实例在操作408重新生成私钥份额。可以在节点102的TEE内进行私钥份额的生成。
[0098] 在操作408,节点102生成要在阈值签名方案中使用的私钥份额,其中至少必须使用私钥份额的阈值来代表会议为交易生成有效签名。其他私钥份额的持有者是会议的其他成员,他们通过将相应的数字资产转移到公共群组地址,而在许可或未经许可的基础上加入会议。
[0099] 为了重新生成私钥份额,在操作408,现有的会议成员可以合作更新密钥份额。例如,节点102可以生成阶数为t且具有常数项零的随机多项式 然后,节点102可以计算点 并将其设置为他们的私钥份额。然后,节点102可以将该多项式 上的点分配给每个现有的会议成员i=1,...,n。然后,每个现有的会议成员(i=1,...,n)将接收到的值添加到其现有的私钥份额中,以获得新的私钥份额。节点102现在具有等同于所有其他成员的私钥份额,并且对应的公钥保持不变。如上所述,阈值签名方案可以是各种类型的,包括椭圆曲线数字签名算法或基于Schnorr方案的阈值方案。
[0100] 私钥份额可以在TEE 250(图2)内生成,并且可以安全地存储在节点102。例如,私钥份额可以存储在TEE 250中。
[0101] 在由各个节点生成私钥份额之后,可将先前会议公钥控制下的资金、例如转移到与原始会议公钥相关联的公共群组地址的资金(通过足以在阈值签名方案下生成有效签名的多个群组节点的合作)转移到与新私钥份额相关联的新会议公钥。
[0102] 在操作408生成私钥份额之后,可以在方法400的操作410下使用它。私钥份额可用于从可以由成员广播的公共群组地址合作生成用于交易的有效签名。也就是说,私钥份额可用于阈值签名方案中帮助签名生成。在阈值签名方案下,会议的阈值数量的私钥份额需要被各个成员使用以产生有效签名,签名允许将数字资产转出会议。进行方法400的节点102可以从存储中检索私钥份额并使用私钥份额从而帮助签名生成。如果足够数量的其他会议成员也使用他们各自的私钥来帮助签名生成,则签名生成并且可以广播有效的向外交易。当区块链网络100的矿工104(图1)将交易添加到通过区块链网络100中的节点102的共识而添加到区块链的被开采区块并且该区块被确认时,向外交易完成。此时,交易中所代表的数字资产可以不再受会议的控制。也就是说,这种数字资产可以不再受会议公钥的阻碍。
[0103] 在操作408使用私钥份额可以在节点102的TEE内执行。TEE保护私钥份额,使得系统的其他部分或成员本身不能访问存储在飞地中的任何数据,例如私钥份额。此外,TEE保护私钥,因为如果成员想要回他们的存款并撤回他们的存款,它就不能保留私钥的副本,因为它必须在证明返回成员存款之前删除私钥。
[0104] 图4的方法400可以在初始设置阶段期间或之后进行。也就是说,方法400可以在分配初始密钥份额之前(例如,在图3的方法300的操作308期间)或之后(例如,在下面将更详细讨论的再平衡期间)进行。
[0105] 在操作410处交易可将数字资产转移回最初将这些数字资产存入会议池的一方。也就是说,转移可将数字资产返回存款人。转移也可将数字资产转移到其他地方。例如,可将数字资产转移到第三方或不可耗用的地址。
[0106] 没收数字资产
[0107] 下面参考图5,示出没收数字资产的示例性方法500。图5的方法500可由节点102进行,节点102可以是与进行图4的方法400的节点相同的节点。可以在图4的方法400的操作408之后进行方法500,从而在进行图5的方法500时,该节点102已经可以访问私钥份额。
[0108] 在操作502,节点102检测恶意方的恶意活动。恶意方可以是会议的另一个成员。当节点102确定会议的成员违反预定协议或准则时,检测到恶意活动。例如,当作为会议成员的节点向会议的其他成员报告错误信息(即,错误、不一致或其他不可接受的信息)时,可将该成员视为恶意成员。
[0109] 在操作503,响应于检测到恶意活动,节点102与会议中的其他节点合作,可以将作为恶意方的成员挂起。也就是说,会议可以排除恶意方进一步参与会议。
[0110] 为了确保所有节点102都按照预定协议或准则进行操作,可以对进入会议池的成员存款进行没收。没收意味着永久阻止被视为没收的成员存款的返回。构成由于恶意活动而未返回的成员存款的(一个或多个)数字资产可以留在会议池中但不返回(响应于应当采取该行动的共识),立即或在将来被转移到另一个不可耗用的地址,或以其他方式没收,并且没收的性质可以取决于会议是否充当用于侧链的担保验证者集合。例如,在操作504,响应于检测到恶意方的恶意活动,进行方法500的节点102可以使用私钥份额来提供在没收交易(其是这样一种交易:将数字资产转移到不可耗用的地址或作为揭发恶意活动的奖励的另一个节点)上的部分签名。也就是说,该节点与会议的其他节点合作,以没收先前由恶意方转移到公共群组地址(即,转移到会议池)的数字资产的至少一部分。也就是说,响应于观察到群组成员违反预定协议或准则,将私钥份额用于帮助与该群组成员相关联的、且在会议池中持有的一个或多个数字资产的交易的授权。
[0111] 因为阈值签名方案与会议公钥一起使用,所以单独行动的个别节点不能将另一个会议成员的数字资产的存款转出离开会议池(例如,转移到不可耗用的地址)。相反,当阈值数量的私钥份额被他们各自的成员用于生成有效签名以将数字资产(多个)转移到另一个地址时,或者当至少具有阈值数量的私钥份额的成员群组达成共识以将成员挂起时(在操作503),数字资产只能通过转移而被没收,这导致来自被挂起成员的任何撤回请求都被自动忽略。当通过转移没收数字资产时,(一个或多个)数字资产可以被转移至其的其他地址可以与不可耗用的地址相关联。例如,另一个地址可以是不存在私钥的地址,因此任何一方都不能访问由该地址的公钥绑定的数字资产。当确认将数字资产转移到不可耗用的地址的交易时或者当在侧链上达成共识应当没收数字资产时,数字资产可能视为已经被烧毁,因为他们不再可以被会议的任何成员或者实际上被区块链网络100中的任何节点耗用。
[0112] 因此,在操作504,节点可通过与会议的其他成员合作地使用私钥份额来没收数字资产,以生成用于交易至不可耗用的地址的有效签名,并且在一些实施方式中可以涉及在第二区块链上达成共识,即应当永久剥夺成员的全部或部分存款。
[0113] 此外,在一些实施方式中,会议可以充当担保验证者集合,用以确保权益证明侧链,并且该侧链可以用作广播信道。例如,会议成员可以在侧链上达成共识,即成员已经恶意行动。这种共识可以与包含恶意活动的控告证据的、对侧链交易的确认相对应。达成共识后,恶意成员提出的任何撤回成员存款的请求将被拒绝,并且存款将被视为没收。没收的数字资产可能在将来的某个时间被烧毁。也就是说,在以后的某个时间,阈值数量的成员(不包括恶意成员)可以合作,以授权将没收的数字资产转移到不可耗用的地址。
[0114] 因为会议是可通过存储数字资产而由区块链网络100的任何节点102加入的开放群组,所以群组成员资格可以周期性地改变。在发生这种改变时,可以更新私钥份额分配。下面参考图6,示出更新私钥份额分配的示例性方法600。方法600可通过区块链网络100的节点102与区块链网络100的其他节点合作进行。
[0115] 使用新公共地址更新私钥份额分配
[0116] 在方法600的操作602,节点102检测到重新分配请求,重新分配请求是一种其实现牵涉到重新分配密钥份额的请求。例如,节点102可以检测到潜在的新成员已经将数字资产转移到公共群组地址中或者现有成员已经请求撤回成员存款。
[0117] 数字资产可以通过如下节点转移到公共群组地址:请求加入会议或者增加他们在会议中的参与度的节点以及并未请求加入会议但是因为其他目的将数字资产转移到会议的其他节点(例如将数字资产转移到侧链,如下所述)。在操作602,节点102可以使用包括在数字资产到公共群组地址的至少一部分交易中的一个或多个属性来识别会议成员(即,将数字资产转移到会议公钥以加入会议而不是处于其他目的各方)。例如,可以使用交易中的属性将某些交易标记为特殊交易。这些属性(不管存在还是不存在)可以指示进行转移的目的。例如,当转移者未请求加入会议时,可以在交易中包括标记。
[0118] 响应于在操作602检测到其实现牵涉到重新分配密钥份额的请求,在操作604,节点102以类似于在图4的方法400的操作408生成私钥份额的方式,生成新的私钥份额。会议的其他成员节点也生成相应的私钥份额。这些私钥份额可以与用于新会议公钥的阈值签名方案一起使用。将在此时离开会议的成员在操作604期间不生成新的私钥份额并且因为他们不会被分配以与新的会议公钥一起使用的私钥份额,所以他们失去参加会议的能力并且不再被视为会议成员。
[0119] 此外,响应于检测到重新分配请求(重新分配请求是其实现牵涉到重新分配密钥份额的请求),在操作606,节点102与其他会议成员合作,将公共群组地址中的所有数字资产转移到与新公钥(以后会成为新的会议公钥)相关联的新公共地址。
[0120] 因此,根据图6的方法600,当存款的分配改变时或当从成员接收到撤回存款的请求时,可以重新生成私钥份额,并且可将所有在会议控制下的数字资产移动到新的公钥。会议成员资格可被更新的频率受到区块链网络100的区块时间限制。很多应用可能只需要相对于工作量证明主链的平均区块生成时间在低频下进行重新平衡。
[0121] 在保留现有公共群组地址的同时更新私钥份额分配
[0122] 下面参考图7,示出更新私钥份额分配的另一个示例性方法700。方法700可通过区块链网络100的节点102与区块链网络100的其他节点合作进行。
[0123] 在图7的方法700中,每次成员存款的分配改变时,会议公钥不改变。当检测到用以分配新密钥份额的请求时(在操作702,其可通过将数字资产存放到公共群组地址而发生),节点102与会议的其他成员合作,以(在操作704)向群组的新成员发布用于相同公钥的新的私钥份额。合作的节点数量至少是在阈值签名方案下生成数字签名所需的节点的阈值数量。在操作704,可以分配额外的密钥份额,而其他密钥份额保持不变。这可能牵涉到(阈值签名方案)的阈值改变,但是实际上改变可能很小。或者,在操作704,可以分配额外的密钥份额,同时更新其他密钥份额。这种更新需要伴随着对删除任何上一代密钥份额的证明。在这种情况下,可以在保持相同阈值的同时分配新份额(在SSS的背景下,这涉及份额更高阶的新的多项式)。
[0124] 在操作702,节点102可以使用包括在数字资产到公共群组地址的至少一部分交易中的一个或多个属性来识别会议成员(即,将数字资产转移到会议公钥以加入会议而不是因为其他目的各方)。例如,某些交易可以使用交易中的属性标记为特殊交易。这些属性(不管存在还是不存在)可以指示进行转移的目的。例如,当转移者未请求加入会议时,可以在交易中包括标记。
[0125] 当成员离开使用方法700的会议时,他们可以安全地删除他们的私钥份额。为了确保旧成员的私钥份额不可用,可以要求会议的成员使用具有特殊TEE的节点102。TEE是在硬件级别实现的体系结构,它保证在其中执行的指令和数据免受来自系统其余部分的访问和操作。TEE可以采用硬件机制来响应远程证明询问,其可用于向外部方(例如,会议中的其他节点)验证系统的完整性。
[0126] 每个成员节点可以使用经证明的TEE,该经证明的TEE被配置为生成一个或多个随机秘密值,该随机秘密值保持对于主机系统的不可访问而不会损害集成电路级别的硬件。通过这种方式生成的秘密值将用于私钥份额的分布式生成(例如,在图4的方法400的操作
410中)。该秘密值还可用于在会议的设立阶段建立份额公钥。与设立协议相关联的计算在TEE飞地内进行,使得任何成员或前成员都不能根据成员间通信或任何其他方法得出关于他们自己或其他私钥份额的任何信息。TEE内的飞地使得能够进行远程证明协议,其可用于向其他节点证明TEE飞地是可信的并且它正在运行经批准的计算机可读指令。
[0127] 与群组改变相关联的计算在TEE飞地内进行。例如,在TEE飞地中进行新安全随机秘密的生成,该新安全随机秘密可用于处于SSS目的计算新多项式的。
[0128] 此外,TEE飞地的目的是确保在返回成员存款之前,安全删除不再使用的先前密钥份额和先前秘密。更具体而言,为了将成员存款返回,证明协议可能要求TEE飞地证明密钥份额的删除。通过远程证明协议,每个节点102可将这种证明解释为对在其他节点上已经发生所需删除的确认。因此,方法700还可包括确认先前在离开会议的成员的TEE内持有的私钥份额已经从与该成员相关联的节点中删除。可通过接收对私钥份额的删除的证明来进行该确认。因此,远程证明协议可用于获得对先前在离开会议的成员的TEE中持有的私钥份额的删除的证明。
[0129] 图6的方法600和图7的方法700都提供各种好处。例如,图6的方法600不依赖于安全删除,也不需要依赖可信的硬件。但是,图6的方法600可以得益于这种硬件,因为在某些情况下,这种硬件可以使得密钥份额的恶意汇集更加不可能。
[0130] 图7的方法700避免每次成员资格变更时必须在新的会议公钥下重新锁定数字资产。此外在某些情况下,方法700与图6的方法600相比可以更快地更新成员资格,因为在图7的方法700下,不需要将交易添加到区块链中以将所有数字资产移动到新的公钥,这是因为数字资产并未移动到新的公钥。也就是说,可以使用图7的方法700来更新成员资格而无需等候生成若干区块来确认将数字资产转移到新公钥,因为公钥并未改变。
[0131] 从会议注销
[0132] 如上所述,群组成员有时候可以请求离开会议,并且当群组成员从会议注销时,他们存放到会议池的数字资产可能会被返回给他们。下面参考图8,以流程图的形式示出返回存款的示例性方法800。该方法可通过节点102与会议的其他节点102合作进行。
[0133] 在方法800的操作802,节点102从作为会议成员的请求者接收撤回请求。撤回请求也可称为注销请求。撤回请求是撤回由请求者先前存放并且当前由会议控制的数字资产的请求。请求可能已由请求者向所有会议成员广播。
[0134] 响应于接收请求,节点102在操作804针对确定的准则评估请求。这些准则可以是预定准则。如果会议根据其中每次群组成员资格改变时会议公钥未改变的会议协议进行操作,则在操作804,节点102可以确认请求者已经删除私钥份额。可以使用与TEE相关联的远程证明协议来获得这种确认。
[0135] 如果会议协议是在成员资格改变时会议公钥被改变的协议,则节点102可以不确认私钥份额的删除,因为私钥份额不再有效。相反,可以使用新的会议密钥,并且可将会议控制下的其他数字资产转移到新的会议密钥。
[0136] 如果节点102基于评估批准撤回请求,则在操作806,节点帮助撤回数字资产。也就是说,节点102使用其私钥份额来合作生成数字签名并使用数字签名将请求者先前存放的数字资产转移回请求者。例如,可将数字资产发送回先前从其接收到该数字资产的地址。根据阈值签名方案进行操作806,使得仅在至少阈值数量的会议成员授权撤回时才进行撤回。在希望注销的成员被挂起而不进行活动一段时间之后进行操作806。这个等待时段阻止了成员在进行用于其成员存款返回的协议时从事不当行为。
[0137] 会议协议可用于很多不同的目的。会议提供进行各种功能的安全机制。会议可以无信任操作,并提供对数字资产所有权的控制。
[0138] 例如,可以使用会议协议来实现虚拟链(ghost chain),在这种情况下,可将会议协议称为虚拟链协议。
[0139] 虚拟链
[0140] 下面参考图9,示意图900示出区块链902和虚拟链904。区块链902是基于区块的分布式工作量证明账本。虚拟链904是可用于任何目的的基于区块的分布式权益证明的分布式账本,以便根据标记的交易中指定的一个或多个条件来构建解密密钥或仲裁区块链网络中的节点之间的争议。例如,区块链可包括这样的质询,其中一个节点质询另一个节点提交的工作成果。这种质询在图9中用“C”表示。例如,质询可以出现在节点(即质询者)指示在履行请求中提出的结果无效时。
[0141] 当节点发出质询时,部署虚拟链904。在发生质询C之后响应于该质询,将虚拟链实例化。可通过创世区块将虚拟链实例化,创世区块是来自虚拟链的先前实例化的最终区块(又称为终止区块)。矿工将很多区块添加到虚拟链中以解决数字争议,直到虚拟链达成判决为止,用J表示。
[0142] 在达成判决时,可以构建并签署交易(以下称为最终交易或结算交易)(如下更详细所述)。该交易可以是这样的交易,其作用是根据判决在主区块链902上分配资金、分配资金以酬劳虚拟链的矿工等等。该交易还可将判决结果传递回主区块链902。更具体而言,可将结果封装在交易中。
[0143] 在达成判决以及构建并签署最终交易之后,虚拟链904终止,并将所构建的交易挖掘到主区块链902中。因为虚拟链904终止,所以它与典型的区块链不同之处在于它具有终止区块。终止区块是虚拟链904中的最后一个区块,在达成判决并且根据共识在主区块链902上分配资金、分配资金以酬劳虚拟链的矿工等等的所得的交易被有效签名时,终止区块出现。
[0144] 请求者-提议者-质询者和虚拟链
[0145] 因此,区块链网络100(图1)中的节点102(图1)可以实现请求者-提议者-质询者协议和/或虚拟链解决协议。这种节点102可包括存储在存储器220(图2)中实现这些协议的计算机可执行指令。当通过处理器210(图2)执行时,这些指令使得节点102(例如参考图2所述类型的电子装置200)进行协议的一种或多种方法。这些方法可包括图10至图13的方法1000、1100、1200、1300中的任何一种或组合。
[0146] 下面参考图10至图13,其示出可包括在请求者-提议者-质询者协议和/或虚拟链解决协议中的方法。图10所示的请求者方法1000可通过在计算交换中由任务的请求者来进行。也就是说,请求完成任务的节点102可以进行图10的请求者方法1000。该节点是区块链网络100(图1)中的节点,并且该节点可称为请求者。
[0147] 在图11中示出提议者方法1100。提议者方法1100可由任务解决方案的提议者来进行。也就是说,宣称已经完成任务的节点102可以进行图11的方法1100。该节点是区块链网络100(图1)中的节点,并且该节点可被称为提议者。
[0148] 在图12中示出质询者方法1200。质询者方法1200可由任务解决方案的质询者来进行。也就是说,质询提议者提出的解决方案的节点102可以进行图11的方法1200。该节点是区块链网络100(图1)中的节点,并且该节点可被称为质询者。
[0149] 在图13中示出仲裁者方法1300。仲裁者方法1300由区块链网络的节点与区块链网络的其他节点合作进行。与其他节点合作进行仲裁者方法的节点可称为仲裁者。
[0150] 图10至图13的方法1000、1100、1200、1300合作地进行。例如,这些方法共同提供请求者-提议者-质询者协议,其中使用虚拟链来确保提议者的解决方案的有效性。
[0151] 在请求者方法1000(图10)的操作1002,将被称为请求者的节点发出请求。该请求是完成任务的请求。例如,任务可以是对工作成果的请求或用以确定是否发生将在下面更详细描述的链下事件的请求。该请求以与区块链网络100相关联的数字资产的形式提供奖金,以换取成功完成任务。该请求可以在区块链之外(即“链下”)发出。例如,可以在可经由Internet访问的Web服务器上发出请求。在请求的候选解决方案在固定时间段(可称为“质询期”)内未受到质询时,或者通过让会议的成员对于候选解决方案是否正确投票来解决质询的情况下,该请求被定义为成功完成。在一些实施例中,响应于投票的结果来部署虚拟链。
[0152] 在一些实施例中,例如下面所述的那些实施例,计算交换可以允许节点卸载计算任务。可以在计算交换中发出请求(在操作1002)。计算交换可以是所请求的任务的集合。例如,可以在计算交换中发布多个任务。任务可以由相同的请求者或不同的请求者发布。计算交换允许节点将计算或算法的性能卸载到其他节点。
[0153] 在提议者方法1100(图11)的操作1102中,将被称为提议者的节点识别该请求。然后,节点继续(在操作1104中)链下完成任务。例如,请求者请求的算法、数据或其他结果可以由处理器获得作为工作成果。
[0154] 然后,提议者可以在方法1100(图11)的操作1106中提交提议。该提议是已经完成与请求者在图10的方法1000的操作1002中发出的请求相关联的任务的宣称。为了提交提议,提议者可将其用于区块链网络100的公钥发送给请求者。提议者也可以提交该任务的解决方案。该提交可以采用解决方案的散列的形式(即工作成果的散列,例如计算的输出或另一种类型的解决方案)。
[0155] 请求者在图10的方法1000的操作1004中接收提议。例如,请求者可以接收提议者的公钥和“提交”(例如,所声称的工作成果的散列)。
[0156] 响应于接收提议,在图10的方法1000的操作1006中,请求者可以构造交易T1。交易包括奖金作为输入。交易包括奖金以及提议者存款(proposer deposit)作为输出(即T1_out=奖金+提议者存款)。交易T1被签署,以允许提议者添加自己的输入。例如,交易T1可以被签署SIGHASH_ALL|SIGHASH_ANYONECANPAY。SIGHASH_ALL是默认签名散列类型,其签署除任何签名脚本之外的整个交易,防止修改签名部分。SIGHASH_ANYONECANPAY是仅签署当前输入的签名散列类型。
[0157] 交易T1被构造为以两种方式解锁。在质询期(如下所述)期满之后,可以用提议者的签名(即,与提议者提供给请求者的公钥相对应的签名)以及与该提交相对应的解决方案来解锁。例如,操作码OP_CHECKSEQUENCEVERIFY可用于在质询期内锁定交易,但如果在此时段内没有质询,则允许提议者进行解锁。此外,交易被构造为在任何时候通过会议110(图1)的群组签名来解锁。也就是说,在质询期期满之前或之后,当作为会议成员的节点根据会议110的阈值签名方案使用其各自的私钥份额合作解锁交易时,可以将交易解锁。
[0158] 交易还可包括有关声称解决方案的信息,例如提交。例如,可以使用OP_PUSHDATA操作代码将所谓的工作成果的散列添加到交易中。更具体而言,可将所谓的工作成果的散列添加到交易的锁定脚本中。该锁定脚本被配置为通过解锁脚本进行解锁(在质询期期满之后),该解锁脚本提供对于包含在锁定脚本中的所谓的工作成果的散列进行散列的解决方案。
[0159] 虽然在图10和图11中未示出,但是提议者可以接收在操作1006构建的交易T1,并且可将提议者存款作为输入添加到交易T1中。提议者将交易广播到区块链网络100(图1)的其他节点。然后交易被挖掘到区块链上(即,添加到区块中),从而使其公开可见。
[0160] 一旦交易被挖掘到区块链上,就开始质询期,在此期间,任何节点102(图1)都可以质询提议者提交的提议。如果在质询期期间未发出质询,则提议者可以从交易T1中主张奖金和提议者存款。提议者可以启动计时器,以跟踪质询期中剩余的时间量,并且一旦质询期期满,就可以自动采取行动。例如,提议者可将诸如处理器工作成果之类的工作成果(可称为解决方案)提供给请求者,并且可以解锁交易。在一个示例中,提议者提供指示出链下事件已经发生的工作成果,并且任何节点102(图1)都可以对实际上发生了链下事件的所提议的解决方案进行质询。
[0161] 提议者不一定将解决方案直接提供给请求者。相反,提议者可通过将解决方案嵌入主区块链网络上的交易中来提供解决方案。例如,提议者可以在解锁脚本中提供解决方案,该解锁脚本解锁(在交易T1中)阻碍奖金和提议者存款的锁定脚本(例如,在导致T1的锁定脚本评估为TRUE的解锁脚本中)。如上所述,可将锁定脚本配置为对解锁脚本中的提议解决方案散列到先前由提议者给到请求者的值(即,在“提交”中)进行检查。当解锁脚本成功解锁阻碍先前由交易T1的锁定脚本(即,交易T1的UTXO)所阻碍的数字资产的锁定脚本时,包含解锁脚本的交易通过以新的锁定脚本(例如,可以使用提议者的公钥来阻碍数字资产,使得提议者现在能够完全控制数字资产)阻碍数字资产(即,提议者存款和奖金)来耗用所述交易。
[0162] 如上所述,交易T1可以被构造为使用OP_CHECKSEQUENCEVERIFY代码来锁定奖金和提议者存款。这允许提议者在质询期结束后自动主张奖金和提议者存款,而无需请求者的进一步批准。
[0163] 可以注意到,如果对提议者的解决方案不存在质询,则可以在工作量证明主区块链902(图9)上进行完整交易,而无需执行质询协议或虚拟链协议。
[0164] 但是,质询者可以在质询期期间发布质询。例如,在方法1200的操作1202中,质询者发布质询。质询者可能已经进行与图11的方法1100中的操作1102和1104相似的操作。也就是说,质询者可能已经识别了请求,并且可能在操作1202发出质询之前已经链下完成了任务。质询者还可能通过确定质询者的解决方案与提议者的解决方案不同来确定应该发出质询。例如,质询者可以进行其解决方案的散列,并将该散列与提议者解决方案的散列进行比较,如果散列不同,则质询者可以发出质询。
[0165] 在图12的方法1200的操作1202中,质询者在质询期期间发出质询。质询者可通过向区块链网络100广播质询的意图来做到这一点。在发出质询时,节点群组可以帮助确定解决方案的有效性。例如,可以响应于链下事件已经发生的提议来发出质询,该质询断言链下事件实际上没有发生,由此节点群组(例如,会议)可以确定是否接受提议者或质询者提供的解决方案。
[0166] 例如,简要参考图13,其示出仲裁者方法1300的流程图,节点群组可以形成会议,当提出质询时,会议可将其用于进行仲裁。如上所述,通过将数字资产存放在工作量证明区块链网络上来保护会议。例如,在方法1300的操作1302中,进行仲裁者方法1300的仲裁者可以加入会议。例如,仲裁者可以进行以上参考图4所述的加入会议的方法400。因此,在操作1302,仲裁者通过将数字资产存放到与会议相关联的公共群组地址来加入群组(可称为会议),从而成为群组成员。仲裁者在工作量证明区块链网络上进行该存放。如上所述,群组与阈值签名方案相关联,针对该阈值签名方案,节点控制私钥份额。例如,可以在部署虚拟链期间进行群组的加入(也可称为注册)。因为图13将操作1302(加入会议)示出为在操作1306(部署虚拟链)之前进行,所以它是通过在虚拟链的先前部署期间加入会议的节点进行的(即,不是在操作1306的部署期间)。但是,操作1306、1308和1310例如可通过在操作1306期间加入群组的节点进行。
[0167] 在操作1304中,仲裁者与群组中的其他节点合作,以检测在图12的质询者方法1200的操作1202中由质询者发出的质询。更具体而言,仲裁者与群组中的其他节点合作,以响应于请求者作出的请求,检测质询者对提议者工作成果的质询。
[0168] 由于交易T1(如上所述),在发出质询时,群组承担奖金和提议者存款的控制。也就是说,交易T1被构造为可随时由会议解锁。因此,当在提议者对请求的解决方案做出提交之后的一段时间(称为质询时间)内检测到质询时,将奖金和存款置于群组的控制之下并在群组的控制之下进行维护。因此,在检测到质询时,群组控制奖金和提议者存款。
[0169] 在群组控制了奖金和提议者存款之后,并且响应于检测到质询者,仲裁者可以与群组的其他节点合作,促进质询者存放数字资产。例如,响应于检测到质询,会议可以构建交易T2,其输入等于奖金和提议者存款(例如,T2_in=奖金+提议者存款)且输出等于奖金、提议者存款和质询者存款(challenger proposer)的总和(例如,T2_out=奖金+提议者存款+质询者存款)。交易T2被配置为随时向群组支付。也就是说,交易T2被配置为支付到大会公钥。交易T2可以被签署SIGHASH_ALL|SIGHASH_ANYONECANPAY。仲裁者可以与其他仲裁者一起将交易T2提供给质询者,以添加质询者存款作为输入。例如,仲裁者可以与其他节点一起使得交易T2对其他节点公开可用。
[0170] 在交易T2公开可用之后,质询者将质询者存款作为输入存放到交易T2。也就是说,质询者将数字资产进行存放(在图12的质询者方法1200的操作1204中),并将这种存款置于群组的控制之下。更具体而言,“质询者存款”被置于会议公钥的控制之下。因此,奖金、提议者存款和质询者存款都被置于群组的控制之下,并受到会议公钥的阻碍。如上对会议的描述中更详细所述,阈值签名方案允许阈值数目的会议成员使用各自的私钥份额来合作生成用于涉及奖金、提议者存款和质询者存款的交易的有效签名。提议者存款和质询者存款可以是相等的大小。
[0171] 质询者也可以提交他们的质询解决方案。例如,质询者可以使用操作代码OP_PUSHDATA将解决方案的散列添加到交易T2。
[0172] 交易T2被广播到主区块链网络,并被挖掘到主区块链网络上,使得质询者存款被会议公钥阻碍。奖金、提议者存款和质询者存款现在被置于群组的独占控制下。
[0173] 因此,质询者向仲裁者提供替代解决方案和存款的证据。在交易T2被挖掘到主区块链网络上以后,在仲裁者方法1300的操作1306中,仲裁者与群组的其他节点合作,部署虚拟链以解决质询。如上所述,虚拟链是权益证明区块链,其中虚拟链的矿工是群组的成员。也就是说,允许会议成员在虚拟链上进行挖掘。他们成员在工作量证明区块链网络上的存款充当他们的权益,以允许他们在虚拟链上挖掘,并且任何成员被选择去挖掘的概率与他们的存款数量成比例。
[0174] 在部署虚拟链时(在操作1306中),可通过仲裁者与群组的其他节点合作来创建或获得虚拟链的创世区块。创世区块可以是来自最后一个虚拟链部署的最终区块(例如,来自虚拟链运行的最后实例的终止区块,且前一次运行可以响应于过去的质询)。该区块可包含有关于创世支付的信息。创世支付是基于虚拟链的先前部署而即刻要进行的数字资产的转移。
[0175] 此外,在部署虚拟链时,可以允许成员注册,成员也可以要求从群组注销。在注册阶段,可以注册新成员,从而为他们分配私钥份额(如上参考图4所述)。向新成员提供创世区块(通过当前成员的阈值来认证)以及在注册过程中生成的任何后续区块。
[0176] 预注销阶段也可包括在虚拟链运行中。在此预注销阶段期间,任何请求注销的成员都可以发送删除某些私人数据的证明。返还成员存款可能需要这种证明。在此阶段可以发送任何可能阻止成员存款的返还的不当行为的证据(例如,新注册成员可以提交一个或多个当前成员预提交但怀疑是假的创世区块)。上面参考图8更详细地描述用于注销的技术。
[0177] 虚拟链的部署可包括由仲裁者与群组的其他节点合作进行裁决操作。裁决操作可包括从提议者和质询者那里接收证据,并基于证据解决质询。例如,所接收的证据可包括最终解决方案或中间结果中的一者或两者。中间结果可以是进行所请求任务所需的一个步骤或一系列步骤的结果。例如,中间步骤可以是任务的部分工作成果。最终解决方案是完成所请求任务的最终工作成果。可通过提议者在图11的提议者方法1100的操作1108中提交证据以及通过质询者在图12的质询者方法1200的操作1206中提交证据。在某些情况下,在没有用于得出最终解决方案的中间结果的情况下提供最终解决方案(例如,可以在没有中间结果的情况下提供链下事件已经发生或尚不发生的断言)。
[0178] 通过进行与请求相关联的任务来确定正确的解决方案,会议的仲裁者和其他节点可以解决质询。例如,可以在链上(即,在虚拟链本身上)进行任务(例如,计算或算法)。群组可通过将这些解决方案与在虚拟链上确定的自己的解决方案进行比较,来确定提议者解决方案和质询者解决方案哪一个是正确的。在此过程中,群组成员(即,虚拟链矿工)进行计算和/或分析以对争议进行仲裁。在此过程中,群组成员达成共识并签署区块。在某些情况下,解决质询可以涉及节点(例如,会议成员)的投票,以确定是应当接受提议者解决方案还是质询者解决方案——例如,在解决方案为具有两个值之一的二进制解决方案的情况下,例如确定链下事件是否已经发生或尚未发生的情况下,可以使用这一点。投票结果可以定义为关于链下事件是否已经发生或尚未发生的真相,并且可将其视为正确的解决方案。
[0179] 在部署虚拟链时,仲裁者(与群组的其他节点合作)达成判决。认为当仲裁者和会议的其他节点解决质询时(即,当这些节点就解决方案达成共识时),已经达成判决。
[0180] 在区块链上达成仲裁的判决之后,仲裁者将与群组的其他节点合作,构建最终交易(在完全签名后将被挖掘到主区块链网络中)。最终交易(也可称为结算交易)可包含各种数字资产转移,例如:(i)奖金+存款(可以转移到在裁决过程中被视为成功或证明为正当的节点);(ii)挖掘费(对于已经进行的虚拟链挖掘);(iii)创始支付(是基于虚拟链的先前运行而应得(due)的数字资产转移,并根据创始区块来确定);和/或(iv)注销成员的成员存款的返还。
[0181] 此交易还可包含有用的元数据。例如,结算交易可将解决方案转移回区块链网络。因此,在此过程中,群组(即,仲裁者与群组的其他节点合作)可将裁决结果提交给区块链网络。在虚拟链上,群组还可将在链上确定的中间计算状态的Merkle根散列提交给区块链网络。
[0182] 因此,仲裁者可以与群组的其他节点合作,以分配群组控制下的数字资产(在操作1308)。这些数字资产的分配是根据为会议(即,针对群组)定义的阈值签名方案来进行的。
如以上在会议的讨论中所述,阈值签名方案被配置为使得需要至少阈值数量的成员来生成用于会议公钥的有效签名。因此,仲裁者与群组的其他节点(即,与其他仲裁者一起)可以同意通过使用仲裁者的私钥份额将部分签名添加到最终交易中来转移数字资产。其他节点也使用他们各自的私钥份额添加部分签名,直到至少使用阈值签名方案所需的阈值数量的私钥份额来创建用于最终交易的有效签名。
[0183] 在最终交易中分配数字资产的具体方法将取决于仲裁结果。例如,当质询成功时,仲裁者可以与其他节点合作,以至少将质询者的存款转移到质询者,并将提议者的存款与所挖掘区块的绝对数量成比例地分配给虚拟链的矿工。当质询成功并且确定质询者的解决方案正确时,也可将奖金转移给质询者。因此,质询者可以在图12的质询者方法1200的操作1208下接收数字资产。但是,如果使用二进制搜索而不能识别正确的解决方案,则可将奖金返还请求者,请求者可以重新发布请求,从而允许质询者基于他们的回答来提交提议。替代性地,在提议者通过二进制搜索消除时,请求者可将质询者的承诺视为提议,并且可以在图
10的方法1000的操作1006恢复操作。也就是说,请求者可以基于质询者的提议构造新的交易T1。除了先前被认为是质询者的节点现在被认为是提议者之外,该交易可以如上参考操作1006所述。因此,可通过提供与上述质询者在交易T2中提供的解决方案的散列值相对应的解决方案,来将新的交易T1构造为在质询期期满之后由质询者解锁。
[0184] 当提议者的工作成果被确定为有效时,仲裁者可以与其他节点合作,以将奖金和提议者存款转移至提议者并将质询者的存款与所挖掘区块的绝对数量成比例地分配给虚拟链的矿工。因此,提议者可以在图11的方法1100中的操作1110下接收数字资产。
[0185] 请求者在图10的请求者方法1000的操作1008下接收解决方案。请求者通过其在操作1008下接收解决方案的方法可以取决于是否发出质询。例如,如果没有发出质询,则提议者使用以上参考图10的方法1000的操作1006所述的交易T1将解决方案提交给区块链。但是,如果发出了质询并且如果虚拟链确定了对请求的解决方案,则虚拟链节点可以在虚拟链终止时将解决方案传输给请求者(例如,在图13的仲裁方法1300的操作1310中)。因此,虚拟链协议可使得参与虚拟链的节点在确定解决方案后自动将解决方案传输给请求者。
[0186] 此外,在虚拟链上达成判决并且构造和有效签署交易之后,虚拟链终止(在图13的仲裁方法1300的操作1310中)。也就是说,在解决质询后,虚拟链终止。当虚拟链终止时,可将与质询的解决方案有关的信息转移回工作量证明区块链网络。
[0187] 在虚拟链终止时,不会再有其他区块被挖掘到虚拟链上。也就是说,与典型的区块链不同,虚拟链具有终止区块。虚拟链可以被实现为不分叉的权益证明区块链。没有分叉意味着在虚拟链终止时将有一个确定的终止区块(即,群组中所有节点都同意的终止区块)。在此终止区块之后,虚拟链已达到其目的,并且不再被添加。
[0188] 如上所述,当仲裁者(即会议的节点)达成判决时,一旦根据如上所述的阈值签名方案通过添加部分签名生成了有效签名,节点就合作构建将在主链上广播的交易(在操作1308中)。因为该交易本身是多方计算,所以对该交易作出贡献的节点可期望因参与该交易而得到奖励。但是,因为交易是在签名之前指定的,所以参与签名的报酬(可包括通过交易以及实际挖掘区块将部分签名发送到虚拟链)可能被推迟直到进一步的虚拟链部署。这种推迟可以在操作1310中提供。更具体而言,可以用允许在虚拟链的未来部署期间处理创世支付的信息来构造终止区块。这种信息可以是挖掘费用的记录,挖掘费用是由于在构造最终交易之后创建的区块(例如在最终交易的签署期间创建的区块)而应得的。也就是说,可将创世支付限定为奖励对最终交易的签署做出贡献的节点。虚拟链的终止区块将成为下一个虚拟链运行的创世区块(即,下一次部署虚拟链)。因此,在终止区块中创建记录,用于将来的创世支付。注意,根据上面刚提到的实施方式,成员在虚拟链运行期间注册/注销-这可以由质询触发。替代实施方式也将允许定期或在其他条件下进行注册/注销。这可以涉及专为此目的进行的虚拟链的调度运行,除了没有裁决和判决阶段外,其类似于上述的虚拟链部署。在这种情况下,挖掘费用可以至少部分地从“注册费用”中支付,而“注册费用”是注册相应所需的。
[0189] 还应注意,上述方法1300描述了虚拟链运行(其并非为第一虚拟链运行)。也就是说,方法1300描述了在过去的某个时间点已经部署的虚拟链的部署,使得包含创世支付的终止区块已经存在于虚拟链。可以修改方法1300以允许部署第一虚拟链。例如,第一次部署虚拟链时,可通过另一种方式建立创世区块。例如,可由初始信任方提供创世区块。
[0190] 通过使用基于权益证明的区块链来仲裁质询,虚拟链解决方案可以提供比在工作量证明区块链网络本身上进行这种仲裁更快的解决方案,因为权益证明允许更规则的区块生成,并且可以配置为允许高频率的区块生成。此外,通过在虚拟链上而不是在主区块链本身上进行这种仲裁操作,使任务离开了主区块链网络,从而减轻了主区块链网络的负担。
[0191] 此外,虚拟链的瞬时性质(即,虚拟链本质上是临时的并且终止的事实)可以避免或减少通常影响权益证明区块链网络的无利害关系问题的险。虚拟链网络的临时性质允许会议要求虚拟链的矿工将他们的存款留在原地,直到虚拟链终止。也就是说,可将会议配置为在虚拟链运行时不允许任何会议成员撤回其权益。
[0192] 虽然上述示例引用在比特币中可用的操作代码,但本文所述方法也可以与其他类型的区块链网络一起使用。
[0193] 通常将上述方法描述为在节点进行,但是该方法的特征依赖于与其他节点的合作并且可以在其他地方进行。
[0194] 根据会议和虚拟链的事件锁加密
[0195] 下面描述使用会议和虚拟链进行事件锁加密的技术。
[0196] 事件锁加密可以表示用于响应事件的发生而进行密码操作的机制。例如,时间锁加密是事件锁加密的一种特殊类型,它表示一种“向未来”发送消息、从而在将来的特定时间点或之后解密给定的密文的机制。在这种情况下,事件是一定量(可能是随机的)时间的过去。因此,事件锁加密可用于确保密码操作的进行视事件的发生而定。可以执行的密码操作的示例包括密文的解密、以数字方式签名的消息或数据的认证等。例如,本文所述技术可用于提高解决在见证者加密的背景下出现的问题的效率,例如,Bitanksy等人在“Time-Lock Puzzles from Randomized Encodings”中所讨论的。
[0197] 出于说明的目的,结合图9和图10讨论的、作为事件锁加密的一部分而进行的密码操作是根据确定事件发生的情况而定的密文的解密。但是,在各种实施例中,代替结合图9和图10所示的密码操作或除了结合图9和图10所示的密码操作之外,可以进行其他密码操作。一般而言,可以在确定事件已经发生时进行诸如密码操作的一个或多个操作。
[0198] 用于促进事件锁加密的事件可以分为链上事件和链下事件。链上事件可以表示可通过检查区块链而观察到的事件,链下事件可以表示并非链上事件的事件。可以根据基于身份的加密方案将消息加密到公钥A。公钥A可以是具有进行加密的实体能够访问的对应密码私钥SkA的密码公钥。会议公钥可以与其他地方所述、例如结合图1所述的会议公钥一致。加密的消息、公钥A以及由私钥SkA数字签名的事件(例如,时间阈值)可以经由标记的交易发送给区块链。当会议观察到该事件时,可以将虚拟链实例化并可以构建解密密钥,从而促进对加密消息的解密。下面讨论用于检测事件何时发生的各种技术。
[0199] 如其他地方所述,例如结合图4所述,实体可将数字资产存放在会议池中,并作为响应接收给会议110的私钥份额。在一些实施例中,实体所接收的份额可以与存放的数字资产的数量和/或价值成比例。可以在阈值签名方案中利用私钥份额,在阈值签名方案中,会议控制与会议相关联的公钥所阻碍的数字资产。会议公钥阻碍会议110的成员用以换取私钥份额而存放在会议池中的数字资产,以及会议110的成员或非成员出于获得私钥份额以外的其他原因而存放在与会议池相关联的地址上的任何数字资产(即,置于会议的全部、部分或有条件控制下)。非成员或成员可能出于各种原因将数字资产存入与会议相关联的地址。例如,将数字资产存放到与会议相关联的地址的原因是在检测到事件发生时为进行一个或多个指令提供费用。
[0200] 虚拟链的矿工可以合作构建解密密钥。通常,可以出于任何原因而部署虚拟链904,而不仅仅是解决争议。虚拟链可以被实例化并充当只是附加的公告板,以共享在解密密钥的构建中使用的信息。会议的成员可以是虚拟链的矿工。
[0201] 在一些实施例中,可以根据本文所述的技术描述用于进行阈值加密和解密的方法。实体可以根据基于身份的加密方案来进行加密。例如,实体可将消息加密到与该实体相关联的密码公钥,该加密利用会议公钥作为基于身份的加密方案的系统范围公钥。基于身份的加密方案可以与Boneh和Franklin在“Identity-based encryption from the Weil pairing”中所述的方案一致。因此,实体可以使用系统范围公钥将消息加密到密码公钥。实体能够访问对应的加密私钥,并且系统范围的公钥可以是会议公钥。
[0202] 可将交易广播到工作量证明区块链网络,并且交易可包括根据基于身份的加密方案、消息公钥A(即,在基于身份的加密方案下将消息加密至其的密码公钥)、应当触发对加密消息进行解密的事件、以及费用。在一些实施例中,消息公钥A与能够访问签名密钥SkA的实体相关联,其中消息公钥A和签名密钥SkA分别是非对称密钥对的公钥和私钥。该交易还可包括使用私人签名密钥SkA进行数字签名的数据。例如,可以使用私人签名密钥SkA对一组用于对加密消息进行解密的条件进行数字签名,从而在导出解密密钥之前使用消息公钥A证实数字签名的有效性(例如,在消息公钥A和私人签名密钥SkA形成不对称密钥对的情况下)。一般而言,一组条件可包括这样的信息,例如解密应何时发生(例如,响应于基于时间的事件)以及解密应发生的方式(例如,对解密密钥的贡献本身是否应当在一组公钥S下被加密,从而使得拥有对于与该组公钥S相对应的一组私钥的访问的一个或多个实体能够获得解密密钥)。该事件可以是这样的事件或条件:当被满足时,所述事件或条件指示应通过使得解密密钥可用,来使得加密消息可解密。该费用可以是数字资产到与会议110的公共群组地址相关联的地址的转移。该费用可以在合作并参与进行加密消息的事件锁解密的会议成员之间分配。
[0203] 在某些情况下,可以隐含地理解,在证实事件的发生时将加密消息解密和/或使其可解密。在其他情况下,交易还可包括指令,以结合加密消息进行一个或多个操作。例如,指令可以是进行消息的解密和解密内容的认证。在其他实施例中,指令可以是进行可以包括如下信息的消息的解密,该信息(例如,私钥)的占有有效地将资产转移到承载者。
[0204] 当在主区块链上就事件发生达成共识时,可以部署虚拟链以生成可用于解密加密消息的解密密钥。通常,对于链上事件,就事件已经发生达成共识,而对于链下事件,可以就观察到阈值数量的证明达成共识。因此,可以部署虚拟链。虚拟链可以与本公开其他地方所述的虚拟链一致,例如结合图9至图13所述的虚拟链。可以通过创始区块将虚拟链904实例化,创始区块是来自虚拟链的先前实例化的最终区块。矿工将很多区块添加到虚拟链,以导出解密密钥。
[0205] 添加到虚拟链的区块可用于构建能够用于解密加密消息的解密密钥。在将必要数量包括在虚拟链区块中之后(例如,当可以生成解密密钥时),可以构建并签署最终交易,其效果将是在主区块链902上分配资金——例如,可以向参加挖掘虚拟链的节点付费,以构建解密密钥。在某些情况下,可以使用与预期接收者相关联的公钥来对解密密钥进行加密,并以加密格式提交给虚拟链904。预期接收者可以使用对应的私钥以用密码方式导出解密密钥。在某些情况下,可以向主区块链发布该信息。
[0206] 在构建并签署最终交易之后,虚拟链904终止,并将所构建的交易挖掘到主区块链902中。因为虚拟链904终止,所以与典型区块链不同的是,它具有终止区块。作为虚拟链904中的最后一个区块的终止区块在导出解密密钥或完成可指定的其他操作时出现,并且在主区块链902上分配资金、分配资金以向虚拟链的矿工支付报酬等的交易被有效签名。
[0207] 在实施例中,替代性地,可以使用侧链来导出解密密钥。侧链可以指连续运行的权益证明区块链,其不会被配置为在导出解密密钥时终止——侧链可以继续运行,并且可以被配置为进行除了导出解密密钥之外的各种任务。在实施例中,侧链是权益证明区块链,其被配置为促进多个活动,包括但不限于导出密码密钥。矿工将很多区块添加到侧链,以导出解密密钥。添加到侧链的区块可用于构建能够用来将加密消息解密的解密密钥。在将必要数量包括在侧链区块中之后,可以获取解密密钥。
[0208] 事件通常可分为链上事件和链下事件。链上事件可以表示其发生或不发生可以基于可从区块链获得的信息的事件。例如,可从区块链获得的信息可包括有关一个或多个交易发生的信息(例如,数字资产从特定方到另一方的转移、一定数量的转移、被转移的特定数量等)、交易中包括的信息(例如交易发生时的时间戳),或者可将信息包括在区块头部(例如区块高度)。一般而言,会议成员可以就链上事件快速有效地达成共识。对于链上事件,当TEE在区块链上确认的区块中观察到所需事件时,他们将利用内部持有的密钥份额来帮助构建解密密钥。
[0209] 链下事件可以表示其发生或不发生可以基于区块链外部信息的事件。链下事件可包括会议成员可以做出决定的任何信息。例如,链下事件可以做出一个人已经死亡的确定。响应于确定事件已经发生,可以生成解密密钥(或者可以发生对加密消息的解密)。一般而言,TEE不评估是否发生链下事件。相反,会议的节点评估事件是否发生,并且可通过发出事件的发生或不发生的证明并使用仅节点能够访问的秘密密钥对证明签名,来证明已经证实了事件的发生或不发生。例如,通过使用与成员的保证金从其转出的账户相对应的公钥,证明可以被数字签名并且在密码学上可证实。可以就观察证明的阈值达成共识,并且可以如上所述构建和签名交易。
[0210] 在实施例中,例如,结合上述各种实施例,可以至少部分地使用主链和区块链来实现事件锁加密。在被配置为使用侧链进行一个或多个密码操作(例如,解密密钥的导出)的实施例中,触发解密密钥的构建的链上事件可以是主区块链或侧链上的事件。例如,在应当在阈值时间使解密密钥可用的时间锁定加密的情况下,可以基于在挖掘到主区块链或侧链的区块上检测的时间戳来检测阈值时间的经过。此外,对于侧链而言,可将链下事件发生的证明挖掘到主链或侧链上——在某些情况下,将证明发送到主链还是侧链可以基于对主链还是侧链具有更快、更规则的区块生成的确定。更快和更规则的区块生成的优点可包括用来确认区块的时间更少。此外应当注意,在利用虚拟链来构建解密密钥的各种实施例中,可将证明发送到主链,并且可以响应于观察到足够的证明将虚拟链实例化。
[0211] 下面参考图14,示意图1400示出可用于进行本公开各种技术的区块链1402。在一些实施例中,区块链902是基于区块的分布式工作量证明账本。
[0212] 在一些实施例中,消息1404可包括数据、信息等,其可以是数字形式,并且发送者在事件锁加密方案下进行加密,从而使得消息在事件发生时呈现为可解密和/或被解密。可以根据利用会议公钥1406的基于身份的加密方案将消息1404加密到密码公钥1408。密码公钥1408可具有对应的密码私钥1422,生成事件锁定消息的实体可以访问该密码私钥1422。会议公钥1406可以是与图14所示会议1410相关联的非对称公钥。图14所示会议1410可以与本公开其他地方所述的会议一致。会议可用于证实链上事件和链下事件的发生。可以根据利用会议公钥1406的基于身份的加密方案,将消息1408加密到密码公钥1408,从而生成加密消息1414。
[0213] 可将交易1416广播到区块链1402,并且交易可包括加密消息1414、发送者公钥1408和事件1412。交易可以是标记的交易,其包含使其能够被识别为用于特定目的的交易的标识符作为元数据。事件1412可以是事件或条件,当被满足时,所述事件或条件指示应当使加密消息1414可解密。事件1412可以是链上事件或链下事件或其任何组合。事件可以是根据本公开其他地方所述的链上事件和链下事件。事件1412可通过各种格式编码,例如作为可评估为TRUE或FALSE语句的谓语的表达。例如,事件1412可以是指定量的时间的过去,在指定量的时间之后,加密消息1414应当可通过接收者1420解密。事件1412可通过将消息加密的实体进行数字签名。可以使用发送者私钥1422来生成数字签名,发送者私钥是与用于生成加密消息1414的发送者公钥1408相对应的非对称私钥。发送者公钥1408可包括在交易1416中并且可用于在密码学上证实在事件1412上生成的数字签名是真实的。在一些实施例中,交易1416还包括费用。该费用可以是数字资产到与会议1410的公共群组地址相关联的地址的转移。该费用可以在合作并参与进行加密消息的事件锁解密的会议成员之间分配。下面结合图15更详细地描述用于生成事件锁定消息的方法和过程。
[0214] 当会议1410的成员检测到事件被满足时,可以部署虚拟链以构建解密密钥。虚拟链可以与本公开其他地方所述的虚拟链一致,例如结合图9至图13所述的虚拟链。在节点(例如,会议的成员)确定已经发生事件(其指示应当对事件锁定的加密消息进行解密)之后,可将虚拟链实例化。虚拟链904可以用创始区块实例化,创始区块是来自虚拟链的先前实例化的最终区块。矿工将很多区块添加到虚拟链中,以促进解密密钥的构建。
[0215] 在构建解密密钥时,可以在虚拟链上构建并签署交易。交易可以是其效果是在主区块链902上分配资金的交易——例如,可以在确定事件发生时向参与虚拟链挖掘的节点付费,以进行一个或多个操作(例如,构建和/或分配解密密钥1418)。在某些情况下,可使得解密密钥1418可用于一个或多个特定方。例如,考虑以下情况,其中应使得加密消息仅对于预期接收者可解密。属于会议1410的成员的TEE可以在检测到事件的发生时,生成解密密钥的相应份额,通过与预期接收者相关联的公钥将这些份额加密,并将这些加密的份额包括在虚拟链中。因此,预期接收者可以利用对应的私钥来获得对解密密钥的访问。接收者1420可以表示接收解密密钥1418的实体或代表该实体的计算实体。解密密钥1418可用于进行密码操作,所述密码操作使得接收者1420能够将加密消息1414解密,该加密消息1414可经由区块链1402由接收者1420获得。在某些情况下,接收者可以指多个实体,例如用户群组,甚至一般来说是公众——例如,可将解密密钥发布到主链,从而使得任何人都可以获得解密密钥并将加密消息解密。下面结合图16更详细地描述用于获得解密密钥并使用解密密钥对加密消息进行解密的方法和过程。
[0216] 下面参考图15,构建事件锁定消息的示例性方法1500,事件锁定消息可基于事件的发生被解密。方法1500可由任何合适的系统进行,例如运行在其下运行区块链网络100的区块链协议实例的计算装置。方法可通过节点104进行。例如,方法可用于实现进行时间锁加密的技术,其中将消息加密,并且在到达或经过指定时间时,加密消息变为可解密和/或被解密。
[0217] 在步骤1502,系统可获得密码公钥和对应的密码私钥。在步骤1504,系统可根据基于身份的加密方案(例如Boneh-Franklin基于身份的加密方案)将消息加密到密码公钥。可以根据Boneh和Franklin在“Identity-based encryption from the Weil pairing”中所述的技术来进行加密。可以使用椭圆曲线密码术(例如按照下述方式)进行加密。将消息加密的结果可以是生成加密消息或密文。
[0218] 在步骤1506,系统还可以在指定解密的一个或多个条件的事件上生成数字签名。条件例如可以指示解密应当发生的时间(例如,在时间锁加密中)。在某些情况下,条件还可以指定对解密密钥的贡献是否应在由TEE输出之前被加密,如果是,则应当将密钥集用于加密。可以使用与密码公钥相对应的密码私钥,对包括对解密密钥的贡献的交易进行数字签名,所述密码公钥用于根据基于身份的加密方案对消息进行加密。数字签名的真实性可以使用密码公钥在密码学上证实,密码公钥可以作为交易的一部分提交给工作量证明网络。
在一些实施例中,可以利用附加数据(例如随机数)生成数字签名。
[0219] 在一些实施例中,在步骤1506,系统向工作量证明区块链网络提交一个或多个交易,工作量证明区块链网络包括加密消息、消息所加密成的公钥、指示加密消息应在什么条件下加密的事件和至少在事件上的对应数字签名、以及费用。事件可以是使得会议110可以就事件是否发生达成共识的链上事件或链下事件。对于链下事件而言,解密可以响应于以下共识而发生,即观察到事件发生的阈值数量的证明。可以存在解密发生的附加条件,例如要求将阈值维持一定的时间长度(例如,在可以撤销的系统中)。条件可以由请求者指定,并且可以在上述一个或多个交易中编码。例如,对于时间锁加密而言,事件可以是一定量时间(可能是随机的)的过去,这可以使用在链信息来确定和证实。该费用可以是数字资产到与会议110的公共群组地址相关联的地址的转移。该费用可以在合作并参与进行加密消息的事件锁解密的会议成员之间分配。在某些情况下,一个或多个交易可以指示除了解密之外或代替解密应当进行一个或多个操作。
[0220] 在一些实施例中,方法1500可以根据基于id的阈值方案来实现,例如Boneh和Franklin在“Identity-based encryption from the Weil pairing”中所述的阈值方案,并使用结合方法1500所述的技术以及本公开其他地方的技术来提供改进的效率和可靠性。在一些实施例中,方法1500可以假设存在具有双线性映射e:G1×G1→G2的G1和G2,并且P是G1的生成器。在实施例中,G1和G2都是具有相同质数阶q的有限循环群,并假设离散对数问题对于G1和G2难以解决。此外假设会议公钥Ppub和对应的私钥 也就是说,从集合{1,2,…,q}中随机抽取s,使得Ppub=s×P。请求进行事件锁加密的系统(例如,代表用户)可以指定具有系统能够访问的对应私钥的公钥A。因此,用于将消息m加密到公钥A的加密函数可以是:
[0221]
[0222] gA=e(QA,Ppub)
[0223] QA=H1(A)
[0224] H1:{0,1}*→G1,随机预言
[0225] H2:G2→{0,1}*,随机预言
[0226] 因此,可以生成密文c=(u,v)。
[0227] 下面参考图16,事件锁解密的示例性方法1600。图16的方法1600可通过一个或多个计算机系统(例如会议的节点)合作进行。方法1600可以在结合图15所述的交易在区块链网络上传输并确认之后的某个时间点进行。一个或多个交易可包括加密消息、加密密钥(例如与期望接收者相关联的公钥)等。例如,第一交易可包括加密消息、加密密钥、指示何时应当使得加密消息可解密的事件或条件,而第二交易可包括给会议的费用,该费用可以在第一交易中指定的事件或条件发生时结合解密密钥的生成来分配。
[0228] 在步骤1602,系统(例如会议的成员)或更一般而言区块链网络的节点可以结合如上所述的交易检测事件的发生。事件可以是链上事件或链下事件。对于链上事件,当TEE在区块链中观察到所需事件时,他们将利用内部持有的密钥份额来帮助构建解密密钥。在某些情况下,应在确认的交易中观察链上事件。对于链下事件,可以就链上事件达成共识,这被认为是链下事件实际发生的可靠指示符。例如,对应的链上事件可以是:通过将某些标记的交易发送到区块链,阈值数量的会议成员发信号通知他们认为已发生链下事件。在某些情况下,如果会议成员后来确定链下事件尚未发生(例如,节点可以在后来和/或基于附加信息确定链下事件实际上尚未发生),则可以撤销这些信号——在这些系统中,达成共识可能还需要标记的交易在给定的时间段内保持不撤销。
[0229] 作为确定是否发生链下事件的替代性方法,节点可以提交事件发生的指示,并包括数字资产的存款。在会议确定事件发生的情况下,存款可以返还(以及支付至少一部分费用,该费用作为解密事件锁定消息的报酬而存入),在会议确定事件不发生的情况下,存款可以没收。在某些情况下,可以质询节点提供的解决方案,并且可通过让会议成员就是否接受事件已经发生或尚未发生来投票,确定关于是否发生链下事件的解决方案。
[0230] 例如结合图15所述的交易可包括加密消息、根据基于身份的加密方案将消息加密成的公钥A以及数字签名的事件。在步骤1604,可以使用公钥A来证实在事件上的数字签名的有效性。在某些情况下,通过虚拟链构建解密密钥可以视数字签名是否有效而定。在时间锁加密方案中,事件可以是指示何时应当使得加密消息可解密的时间戳。在时间戳上证实数字签名的真实性确保实体在无法访问与公钥A相对应的私人签名密钥SkA的情况下不能提前触发要构建的解密密钥。通过生成可通过交易中包括的公钥A在密码学上证实的数字签名,对手方将无法诱使会议提前释放解密密钥,例如,通过与包含较早解密时间和加密到公钥A的任意密文的其他交易“向前运行”该交易。通过要求交易包含有效签名,除非交易包括使用与公钥A相对应的私人签名密钥SkA生成的有效数字签名,否则“向前运行”攻击将是不可能的。
[0231] 在步骤1606,可以部署虚拟链,可通过会议成员与群组的其他节点合作来创建或获得虚拟链的创始区块。创始区块可以是来自先前虚拟链部署的最终区块(例如,来自最后一个实例(该实例运行虚拟链并且先前的运行例如可以响应于过去的质询或先前的事件锁解密的)的终止区块)。该区块可包含有关创始支付的信息。创始支付是有待进行的数字资产的转移,其基于虚拟链的先前部署而应得。可以使用其他地方例如结合图13所述的技术来部署虚拟链。
[0232] 在步骤1608,在至少持有阈值数量的私钥份额的群组之间达成共识后,会议的节点可以构建可用于将加密消息解密的解密密钥。可通过将必要数量包括在虚拟链区块中来构建解密密钥。例如,这可以通过如上所述经由交易将数量发送到虚拟链或直接将其挖掘到虚拟链中来实现。例如,根据基于椭圆曲线上的配对的方案,解密密钥dA=sQA,其中QA可根据消息的加密中使用的密码密钥来导出,解密密钥可根据阈值秘密共享方案,通过至少阈值数量的私钥份额持有者(即,会议的成员)的合作来导出。
[0233] 在一些实施例中,可通过以明文格式将解密密钥发布到主区块链来使得解密密钥对于公众可获得。在某些情况下,可使得密密钥仅对于持有一组给定私钥的群组能够访问。例如,在某些系统中,可使得事件锁定消息可通过与一组公钥S相对应的一组私钥的持有者解密。在一个示例中,在由TEE输出一组公钥S之前,使用每个公钥将对于解密密钥的每个贡献加密,并将这些加密发送到区块链。作为如何通过与一组公钥S相对应的一组私钥的持有者使得密文可解密的第二示例,在观察到已经确认了包括事件锁定消息的交易之后,签名密钥SkA可以使用来自一组公钥S的每个公钥进行加密,并将签名密钥SkA分配给与一组公钥S相对应的私钥的各个所有者(例如,可将这些加密挖掘到区块链中,包括在另一个交易中)。此外,包括事件锁定消息的交易可以规定,在由TEE输出并发送到区块链之前,应使用公钥A(即,与签名密钥SkA相对应的公钥)将对于解密密钥dA的贡献加密。完成这个操作后,签名密钥SkA的加密的接收者将能够构建解密密钥。
[0234] 在步骤1608,虚拟链终止。也就是说,在完成任务(例如,解密密钥的构建)后,虚拟链终止。在虚拟链终止时,可将解密密钥记录到工作量证明区块链网络中。可以使用其他地方例如结合图13所述的技术来终止虚拟链。
[0235] 继续结合图15讨论先前的示例,解密函数解密与上述加密消息相对应的密文c=(u,v)。可将密钥导出为dA=sQA,其中QA定义为上述QA=H1(A)。因此,用于解密密文c的解密函数可以是:
[0236]
[0237]
[0238]
[0239]
[0240]
[0241]
[0242]
[0243] Dec(u,v,dA)=m
[0244] 如Boneh和Franklin在“Identity-based encryption from the Weil pairing”中所述,以上内容导致一种特别有效的阈值解密方案:密文c=(u,v)的解密可通过阈值数量的参与者来实现,每个参与者通过广播e(siQA,u)在系统范围的秘密密钥中持有份额si。然后,它服从映射e的基本属性:
[0245]
[0246] 其中Li是适当的拉格朗日系数。现在可以在上述Dec(u,v,dA)操作的第二行中插入e(dA,u)。
[0247] 应当指出的是,上述实施方式说明而不是限制本发明,并且本领域技术人员将能够在不脱离由所附权利要求限定的本发明的范围的情况下设计很多替代实施方式。在权利要求中,置于括号中的任何附图标记不应被解释为限制权利要求。用语“包括”和“包含”等不排除除了在任何权利要求或说明书中作为整体列出的元件或步骤之外的元件或步骤的存在。在本说明书中,“包括”表示“包括或由......构成”,并且“包含”表示“包含或由......构成”。元件的单数引用不排除这些元件的复数引用,反之亦然。本发明可以借助于包括若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的装置权利要求中,这些装置中的若干个装置可以由同一个硬件项实现。在相互不同的从属权利要求中陈述某些手段的仅有事实并不表示这些手段的组合不能用于获益。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈