首页 / 专利库 / 银行与财务事项 / 数字货币 / 加密货币 / 比特币 / 关于区块链的快速分布式共识

关于链的快速分布式共识

阅读:854发布:2020-05-22

专利汇可以提供关于链的快速分布式共识专利检索,专利查询,专利分析的服务。并且可提供一种计算机实现的方法。可以使用诸如 比特币 网络这样的 区 块 链 网络来实现所述方法。所述计算机实现的方法包括:i) 节点 通过将令牌转移到公共群组地址而加入群组,以成为群组成员,所述群组与 阈值 签名方案相关联,针对所述阈值签名方案,所述节点控制私钥份额,所述令牌的转移在 工作量证明 区块链网络上进行;以及ii)所述节点与所述群组的其他节点合作,以响应于对提议者的工作成果的质询,针对所述工作成果的正确性达成分布式共识,所述质询响应于 请求 者所作出的请求,其中,达成所述分布式共识包括:a)部署虚拟链,以达成解决所述质询的分布式共识,所述虚拟链是权益证明区块链,其中,所述虚拟链的矿工是所述群组的成员;以及c)在解决所述质询时终止所述虚拟链。,下面是关于链的快速分布式共识专利的具体信息内容。

1.一种计算机实现的方法,包括:
节点通过将令牌转移到公共群组地址而加入群组,以成为群组成员,所述群组与阈值签名方案相关联,针对所述阈值签名方案,所述节点控制私钥份额,所述令牌的转移在工作量证明链网络上进行;以及
所述节点与所述群组的其他节点合作,以响应于质询者对提议者的工作成果的质询,针对所述工作成果的正确性达成分布式共识,所述质询响应于请求者所作出的请求,其中,达成所述分布式共识包括:
部署虚拟链,以达成解决所述质询的分布式共识,所述虚拟链是权益证明区块链,其中所述虚拟链的矿工是所述群组的成员;以及
在解决所述质询时终止所述虚拟链。
2.根据权利要求1所述的计算机实现的方法,还包括:
以奖金和提议者存款作为输入、以所述奖金、所述提议者存款和质询者存款作为输出,与所述群组的其他节点合作以构建将令牌转移到所述群组的交易,以及将所述交易提供给所述质询者,用于添加所述质询者存款作为输入,
其中,所述奖金、所述提议者存款和所述质询者存款是令牌。
3.根据权利要求2所述的计算机实现的方法,其中,在构建所述交易之前,将所述奖金和所述提议者存款置于所述群组的独占控制之下。
4.根据权利要求3所述的计算机实施的方法,其中,当在所述提议者提交对所述请求的解决方案之后的一个时间段内检测到所述质询时,将所述奖金和所述提议者存款置于所述群组的控制之下。
5.根据权利要求2至4中任一项所述的计算机实现的方法,其中,所述方法还包括当所述质询成功时,与所述群组的其他节点合作以:
至少将所述质询者存款转移给所述质询者;以及
与所开采的区块的绝对数量成比例地将所述提议者存款分配给所述虚拟链的矿工。
6.根据权利要求2至4中任一项所述的计算机实现的方法,其中,所述方法还包括如果确定所述提议者的工作成果有效,则与所述群组的其他节点合作以:
将所述奖金和所述提议者存款转移到所述提议者;以及
与所开采的区块的绝对数量成比例地将所述质询者存款分配给所述虚拟链的矿工。
7.根据权利要求5或6所述的计算机实现的方法,其中,所述转移是通过所述节点使用所述私钥份额将部分签名添加到交易来进行的,其他节点基于相应的私钥份额将部分签名添加到所述交易,直到所述阈值签名方案所需的至少阈值数量的私钥份额被用于创建有效签名。
8.根据权利要求1至7中任一项所述的计算机实现的方法,其中,部署所述虚拟链以解决所述质询包括:从所述提议者和质询者接收证据,并基于所接收的证据解决所述质询。
9.根据权利要求8所述的计算机实施的方法,其中,所接收的证据包括最终解决方案和中间结果其中之一或两者。
10.根据权利要求1至9中任一项所述的计算机实现的方法,其中,部署所述虚拟链以解决所述质询包括:在所述虚拟链上进行与所述请求相关联的任务,以确定正确的解决方案。
11.根据权利要求1至10中任一项所述的计算机实现的方法,其中,部署所述虚拟链以解决所述质询包括:在所述虚拟链上进行所述任务的一部分,以确定在与所述请求相关联的任务的中间步骤中,所述提议者或所述质询者其中之一犯了错误。
12.根据权利要求1至11中任一项所述的计算机实现的方法,其中,终止所述虚拟链包括:将与所述分布式共识有关的信息转移到所述工作量证明区块链网络。
13.根据权利要求1至12任一项所述的计算机实现的方法,其中,终止所述虚幻链包括构建终止区块,所述终止区块包括由于在最终交易的签署期间创建的区块所导致的开采费用的记录。
14.一种计算机可读存储介质,包括计算机可执行指令,所述计算机可执行指令在被执行时配置处理器以进行权利要求1至13中任一项所述的方法。
15.一种电子装置,包括:
接口装置;
处理器,耦接到所述接口装置;
存储器,耦接到所述处理器,所述存储器上存储有计算机可执行指令,所述计算机可执行指令在被执行时配置所述处理器以进行权利要求1至13中任一项所述的方法。

说明书全文

关于链的快速分布式共识

技术领域

[0001] 本发明一般涉及分布式系统,更具体而言,涉及用于分布式共识的方法和系统,其具有应用程序以改善分布式系统中区块链交易的可靠性。本发明特别适合用于改善计算交换中计算的可靠性,但不限于此。

背景技术

[0002] 在本文献中,我们使用术语“区块链”来包括所有形式的电子、基于计算机的分布式账本。它们包括区块链和交易链技术、许可的账本和未经许可的账本、共享账本及其变体。区块链技术最广为人知的应用是比特币账本,但是也提出并开发了其他区块链实施方式。虽然本文中出于方便和说明的目的可以引用比特币,但是应当注意,本发明不限于与比特币区块链一起使用,替代性的区块链实施方式和协议也落入本发明的范围内。
[0003] 区块链是一种基于共识的电子账本,它被实现为基于计算机的分散式、分布式系统,该系统由区块组成,而区块相应地由交易和其他信息组成。对于比特币而言,每个交易是一个数据结构,该数据结构对区块链系统中的参与者之间的令牌的控制的转移进行编码,并包括至少一个输入和至少一个输出。每个区块包含前一个区块的散列,以致于这些区块变为链接在一起,以创建自区块链开始以来就已经写入区块链的所有交易的永久、不可更改的记录。交易包含嵌入其输入和输出中称为脚本的小程序,它们指定如何以及通过谁来访问交易的输出。在比特币平台上,这些脚本是使用基于堆栈的脚本语言来编写的。
[0004] 为了将交易写入区块链,必须对其进行“验证”。某些网络节点充当矿工并进行工作以确保每次交易都有效,而无效交易从网络中被拒绝。例如,安装在节点上的软件客户端对引用的交易以及未耗用的交易输出(UTXO)进行该验证工作。可通过执行其定和解锁脚本来进行验证。如果锁定和解锁脚本的执行评估为TRUE,并且如果满足某些其他条件(诸如包括足够的开采费用),则交易有效并且可以被写入区块链。因此,为了将交易写入区块链,该交易必须i)由接收交易的节点来验证-如果交易被验证,则节点将其中继到网络中的其他节点;ii)被加入由矿工建造的新区块;iii)被开采,即加入过去交易的公共账本。当向区块链添加足够数量的区块以使交易实际上不可逆时,认为交易被确认。
[0005] 虽然区块链技术由于加密货币实现方式的使用而广为人知,但是数字企业家已经开始探索比特币所基于的加密安全系统以及可以存储在区块链上以实现新系统的数据这两者的使用。如果区块链可用于并非限于加密货币领域的自动化任务和过程,这将是非常有利的。这样的解决方案将能够利用区块链的好处(例如,事件的永久性、防篡改记录,分布式处理等),同时在其应用中更通用。
[0006] 在某些此类解决方案中,可以达成分布式共识。例如,与很多传统的支付系统不同,区块链在很大程度上是不可变的,并且通常可以是匿名的。在保护用户免受恶意行为侵害时,区块链技术的不可变和很大程度上是匿名的性质带来很多技术质询。例如,因为建立在包括交易的区块上的多个区块导致交易实际上是不可逆的,所以退款通常是不可获得的,并且需要新的技术系统来维持交易的完整性。由于区块链技术的分散式无信任性质,此类质询也很困难。也就是说,没有中心方来确保交易的完整性,而是通过技术手段来实现交易的完整性。因此,希望区块链技术例如通过采用数字共识来提高交易的可靠性。
[0007] 可靠性质询(reliability challenge)可能出现在计算交换中,有时候也称为计算市场。计算市场是允许脱链执行昂贵计算的服务。这样的交换允许网络中的节点将算法的执行外包给另一个远程节点。然后将算法的结果报告给讲算法操作外包的节点。接收结果的节点不一定知道结果是否可靠。为了使接收节点确定答案是否正确,他们将需要自己执行算法,这将使外包的目的无效。因此,希望区块链技术能够提高计算交换中结果的可靠性。
[0008] 因此,希望提供在这些方面的一个或多个方面中改进区块链技术的更好的方法和装置。

发明内容

[0009] 因此,根据本发明,提供如后附权利要求书所限定的方法。
[0010] 因此,根据本发明,可以提供一种计算机实现的方法。该计算机实现的方法包括:i)节点通过将令牌转移到公共群组地址而加入群组,以成为群组成员,所述群组与阈值签名方案相关联,针对所述阈值签名方案,所述节点控制私钥份额,所述令牌的转移在工作量证明区块链网络上进行;以及ii)所述节点与所述群组的其他节点合作,以响应于质询者对提议者的工作成果的质询,针对所述工作成果的正确性达成分布式共识,所述质询响应于请求者所作出的请求,其中,达成所述分布式共识包括:a)部署虚拟链(ghost assest),以达成解决所述质询的分布式共识,所述虚拟链是权益证明区块链,其中,所述虚拟链的矿工是所述群组的成员;以及b)在解决所述质询时终止所述虚拟链。
[0011] 方便地,通过这种方式,可以在区块链网络的节点之间达成分布式共识。与使用工作量证明区块链达成的共识相比,使用虚拟链达成这样的分布式共识可能更有效。
[0012] 虚拟链可以是临时区块链。与传统的区块链相对,可将虚拟链配置为在执行或满足一个或多个准则、目标或指定目的时终止、消失和/或过期。也就是说,虚拟链可以是单一目的的区块链,一旦实现其目的就不复存在。虚拟链可包括第一区块,第一区块可称为创世区块,仅当出于其目的、准则或目标部署或创建虚拟链时才可以创建第一区块。
[0013] 在一些实施方式中,提供一种计算机实施的方法。该方法包括:i)节点通过经由将数字资产存放到公共群组地址而加入所述群组,以成为群组成员,所述群组与阈值签名方案相关联,针对所述阈值签名方案,所述节点控制私钥份额,所述数字资产的存放是在工作量证明区块链网络上进行;以及ii)所述节点与所述群组中的其他节点合作以:a)响应于请求者所作出的请求,检测由质询者对提议者的工作成果的质询;b)部署虚拟链来解决质询,所述虚拟链是权益证明区块链,其中所述虚拟链的矿工是所述群组的成员;以及c)在解决所述质询时终止所述虚拟链。
[0014] 所述计算机实现的方法还可包括:以奖金和提议者存款作为输入,以所述奖金、所述提议者存款和质询者存款作为输出,与所述群组的其他节点合作以构建可支付给所述群组的交易(即,将令牌转移到所述群组),并将所述交易提供给所述质询者,用于添加所述质询者存款作为输入。所述奖金、所述提议者存款和所述质询者存款是令牌。在构造所述交易之前,可将所述奖金和所述提议者存款置于所述群组的独占控制之下。例如,当在所述提议者提交对请求的解决方案之后的一个时间段内检测到所述质询时,将所述奖金和所述提议者存款置于所述群组的控制之下。
[0015] 在一些实施方式中,所述计算机实现的方法还可包括当所述质询成功时,与所述群组的其他节点合作以:i)至少将所述质询者存款转移给所述质询者;以及ii)与所开采的区块的绝对数量成比例地将所述提议者存款分配给所述虚拟链的矿工。
[0016] 在一些实施方式中,所述计算机实现的方法还可包括,如果确定所述提议者的工作成果有效,则与所述群组的其他节点合作以:i)将所述奖金和所述提议者存款转移到所述提议者;以及ii)与所开采的区块的绝对数量成比例地将所述质询者存款分配给所述虚拟链的矿工。
[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] 区块链网络
[0040] 首先参考图1。图1以方框图形式示出与区块链相关联的示例性区块链网络100。区块链网络可以是公共区块链网络,它是一个点对点的开放成员网络,任何人可以加入其中,无需邀请或经过其他成员同意。运行区块链协议(区块链网络100在该协议下操作)的实例的分布式电子装置可以参与区块链网络100。这种分布式电子装置可称为节点102。区块链协议例如可以是比特币协议。
[0041] 运行区块链协议且形成区块链网络100的节点102的电子装置可以是各种类型的装置,例如包括台式计算机、膝上型计算机、平板计算机、服务器、诸如智能电话这样的移动装置、诸如智能手表这样的可穿戴计算机、或其他电子装置。
[0042] 区块链网络100的节点102使用合适的通信技术相互耦接,所述通信技术可包括有线和无线通信技术。这种通信遵循与区块链相关联的协议。例如,在区块链是比特币区块链的情况下,可以使用比特币协议。
[0043] 节点102维护区块链上所有交易的全局账本。因此,全局账本是分布式账本。每个节点102可以存储全局账本的完整副本或部分副本。对于通过工作量证明来保护的区块链,影响全局账本的节点102的交易由其他节点102验证,从而维护全局账本的有效性。当区块链是基于工作量证明的区块链时,也通过检查随区块提交的工作量证明来证实区块。
[0044] 至少一部分节点102作为区块链网络100的矿工104操作。图1的区块链网络100是工作量证明区块链,其中矿工104执行昂贵的计算,以便促进区块链上的交易。例如,工作量证明区块链可能要求矿工解决加密问题。在比特币中,矿工104找到一个随机数,使得区块头部通过SHA-256散列到一个小于当前难度所定义的值的数字。工作量证明算法所需的散列功率意味着在一定数量的区块在其顶部被开采之后,交易被认为实际上是不可逆的。解决加密问题的矿工104为区块链创建新区块,并将新区块广播到其他节点102。在接受应该将区块添加到区块链之前,其他节点102证实矿工104实际上已经解决了加密问题并因此展示了足够的工作量证明。通过节点102的共识将区块添加到区块链(即,添加到分布式全局账本)。
[0045] 矿工104创建的区块包括已经由节点102广播到区块链的交易。例如,区块可包括从与节点102的其中一个相关联的地址到与节点102的其中另一个相关联的地址的交易。通过这种方式,区块充当从一个地址到另一个地址的交易的记录。要求该交易被包括在区块中的一方证明:他们被授权通过使用与其公钥相对应的私钥对请求进行签名来发起转移(例如,在比特币的情况下,耗用比特币)。如果请求被有效地签名,则仅将转移添加到区块中。
[0046] 对于比特币而言,在公钥和地址之间存在一对一对应关系。也就是说,每个公钥与单个地址相关联。因此,本文中对于将令牌转移至公钥或从公钥转移令牌(例如,支付到公共密钥中)以及将令牌转移至与所述公共密钥相关联的地址或从所述地址转移令牌的任何引用都指的是共同的操作。
[0047] 有些节点102可能不是作为矿工操作,而是作为验证节点参与。交易验证可能涉及检查(一个或多个)签名、确认对有效UTXO的引用等。
[0048] 图1的示例包括五个节点102,其中三个作为矿工104参与。实际上,节点102或矿工104的数量可以不同。在很多区块链网络中,节点102和矿工104的数量可以远大于图1所示的数量。
[0049] 如下所述,各种节点102可以合作形成将在本文中称为会议110的群组。在所示示例中,将三个节点102示出为会议110的参与方。但是,会议110成员的实际数量可能大得多。
[0050] 会议110是开放成员群组,它可以由任何节点102在向与会议110相关联的池提交足够的权益时加入。例如,节点可通过向与会议110相关联的账户转移一个或多个令牌或数字资产来加入会议。加入会议的节点102可以是区块链网络中的任何节点,包括采矿节点和非采矿节点。在会议的至少一部分应用中,充当会议成员的节点在他们下载(但不一定保留)完整区块链的意义上监视区块链。下面更详细地讨论用于加入、离开和参与会议110的技术。
[0051] 如下更详细所述,会议成员可以形成临时虚拟链网络(ghost chain network)120。虚拟链第一区块链网络创建并维护被称为虚拟链的分布式账本。可以在交易期间部署虚拟链网络120,以验证可靠性或者响应于对特别声称的解决方案提出的质询而针对该声称的解决方案是否正确达成分布式共识。例如,可将虚拟链网络120部署为验证处理器生成的工作成果(workproduct)的完整性,所述工作成果可以是区块链网络100的节点102所提交的工作成果。例如,可将虚拟链网络120部署为针对在区块链网络100上生成的结果的正确性达成分布式共识。针对结果正确性的争议可能存在于一个节点的处理器生成的工作成果的可靠性被另一个节点质询的情况下。
[0052] 虚拟链是一个临时区块链。与传统的区块链不同,虚拟链被配置为一旦达到目的就终止。也就是说,虚拟链是单一目的区块链,一旦达到其目的就不复存在。虚拟链包括第一区块,第一区块可称为创世区块,仅当出于其目的(例如,验证处理器生成的工作成果的完整性)而部署虚拟链时才创建第一区块。
[0053] 与区块链网络相关联的区块链是工作量证明区块链,而虚拟链则是权益证明区块链。基于权益证明的虚拟链网络120提供用于达成共识的替代机制。在权益证明虚拟链中,区块链由权益证明而非工作量证明来保护。在权益证明下,虚拟链的矿工125转移令牌,该令牌的持有由工作量证明区块链的数字账本表示为安全,并且被选择作为开采区块的节点的概率与被转移的令牌的数量成比例。权益证明区块链系统可用于避免在工作量证明区块链上开采所需的计算费用和能量。此外,与工作量证明区块链相比,权益证明区块链可以允许更高的频率和更规则的区块创建。
[0054] 多个节点102充当虚拟链网络120的矿工125。虚拟链网络120的至少一部分矿工125可以不充当区块链网络100的矿工104。因为虚拟链网络120是权益证明区块链网络,所述矿工125转移令牌,以便被包括为矿工。更具体而言,用于虚拟链的矿工125形成担保验证者集合,以便在虚拟链网络120上开采。这些矿工125也是与区块链网络100相关联的会议
110的成员。也就是说,兼为工作量证明区块链网络100和虚拟链网络120一部分的节点102充当虚拟链网络120的矿工125,并充当在工作量证明区块链网络100上建立的会议110的成员。这些矿工125加入会议110,并根据下述方法参加会议110。他们的令牌到会议池的转移是在工作量证明区块链中进行的。也就是说,会议成员在工作量证明第一区块链网络100上将他们的“权益”转移到池中,以成为会议成员,这使得他们能够通过形成担保验证者集合来充当虚拟链上的矿工125。会议110是开放成员资格群组,通过向与会议110相关联的池提交足够的权益,任何节点均可加入该会议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可以存储区块链的所有区块或一部分区块,例如最新的区块,或者一些区块中的一部分信息。此外,在部署虚拟链时,存储器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所实施的协议的、被批准的计算机可执行指令。远程证明可以由TEE 250通过运行特定代码段并在飞地内部发送该代码的散列来提供,代码的散列由用于飞地的内部证明密钥签名。
[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可以充当自治群组,其中通过没收给定成员转移到池中的令牌的全部或一部分的威胁来强制执行合作行为。非合作或恶意成员可能由于加入由很多诚实成员参与的合作协议而被没收这种令牌。此外,当会议成员希望离开会议110时,他们可以请求归还其转移(即,请求会议110将先前由成员转移到池中的令牌转移回该成员的个人地址)。实际上,这种会议成员可以请求撤回其先前将数字资产存放到池中的行为。但是,仅当群组(即会议)的成员使用多个私钥份额(其数量超过生成有效数字签名所需的阈值)来批准撤回时,才进行资金的撤回。
[0073] 会议110实现的阈值签名方案可以是各种类型。阈值签名方案允许在n方之间共享签名权,只要至少阈值数量的私钥份额有助于生成有效签名。小于阈值的任何子集都不能生成有效签名。更具体而言,每一方都控制私人签名密钥的份额,并且必须使用阈值数量的密钥份额、通过组合部分签名来生成有效签名。任何小于阈值的密钥份额子集都不能通过组合部分签名来生成有效签名。
[0074] 阈值签名方案可以是椭圆曲线数字签名算法(ECDSA)方案。例如,ECDSA方案可以是Ibrahim等人在“A robust threshold elliptic curve digital signature providing anew verifiable secret sharing scheme”,2003 EIII 46th Midwest Symposium on Circuits and Systems,1:276-280(2003)中提出的类型。该阈值签名方案是数字签名方案的扩展,其是基于椭圆曲线加密的算法,其中需要来自n个密钥份额持有者一方的t+1个密钥份额来重建私钥。该方案可用于构建有效签名,而无需重建私钥,并且没有任何一方必须向另一方透露其密钥份额。
[0075] 因为t+1密钥份额足以重建秘密,所以根据该技术的最大允许对手(adversary)数量为t。在Ibrahim等人的模型中,对手是一个破坏持有秘密份额的一方并可以访问该秘密份额的实体。对手可以是各种类型。例如,拜占庭对手是可能假装参与协议而实际上他们发送不正确的信息的对手。Ibrahim提出的ECDSA方案对于高达t<=n/4个恶意对手是稳健的。这种稳健性可以上升到t<=n/3,但代价是更高的复杂性。
[0076] Ibrahim等人的ECDSA方案对于阻止t<=n/3个阻止对手是稳健的。阻止对手能够防止破坏方参与协议或中途停止参与。
[0077] 该ECDSA方案包括可由节点102用来识别恶意或不合作方的各种机制。例如,可验证的秘密共享(VSS)可用于共享Shamir秘密共享(SSS)所需的多项式。SSS是一种秘密共享的形式,其中将秘密分成若干部分并将其各自独有的部分提供给每个参与者。这些部分可用于重建秘密。在不一致的份额被提供给不同节点102的情况下,或者在将与广播至所有节点的盲目份额不同的份额秘密地发送到节点的情况下,节点102可以使用VSS来识别恶意节点102或成员。可通过节点102中的任何一个来识别不一致的份额。可通过包括允许节点102将其份额验证为一致的辅助信息来使得可以验证秘密的共享。
[0078] 向个别节点发送不正确的份额(即,与广播的盲目份额不同的份额)可以被份额的预期接收节点识别。被秘密发送到节点的不正确份额的识别可以使用公共可验证的秘密共享(PVSS)技术公开验证。这样的技术可以避免在不使用PVSS的情况下可能发生的欺骗发送者的识别时出现的可能延迟,并且在发送不正确的份额时,不正确份额的接收者离线或从网络的实质部分切断。
[0079] 诸如向不同节点提供不一致份额的不当行为可以由会议110解决,以阻止恶意行为。例如,当节点102(图1)被其他节点102识别为恶意方时,超过阈值(例如,t+1)的多个节点102(即,与会议成员相关联的节点)可以合作惩罚恶意方。例如,节点102可以采取涉及由恶意方转移(即存放)到会议的令牌(诸如令牌或其他权益或价值)的动作。例如,会议可通过将数字货币、令牌、权益或价值转移到不可耗用的地址来烧毁它们,或者会议可通过拒绝对它们返回恶意方的授权来没收这些令牌。非不当行为节点的节点102还可通过合作排除不当行为节点来阻止不当行为(例如,通过有效地将密钥份额无效;例如,通过将节点从参与会议协议中排除,或通过重新共享私钥而不是向不当行为节点分配份额)。
[0080] 可通过使用TEE来增强上述ECDSA技术。例如,基于Ibrahim等人的阈值ECDSA签名技术考虑一种强大的对手形式,在这里称为拜占庭对手。这种类型的对手可以任意行为,例如,他们不仅拒绝参与签名过程或中途停止参与,而且还可能假装诚实地参与并发送不正确的信息。但是,通过使用TEE,并产生用于在存储秘密的私钥份额的TEE的飞地内签名的数据,可以提供额外的安全性,因为极不可能损害大量飞地。例如,如果每个TEE被分配不超过一个密钥份额,那么可以合理地预期可能受损的TEE的数量不接近拜占庭对手的稳健性阈值,假设n足够大。这允许协议是安全的,如果相对于密钥份额的总数,它可以容忍一小部分恶意对手。
[0081] 例如,如果所有节点都具有TEE,则只有在TEE的制造商未被破坏的情况下,并且只能通过很大的努和费用才能通过对节点的物理访问来实现对存储在飞地内的秘密的获取。这种制造商等级的破坏预计是可管理的。例如,如果制造商错误地声称很多公钥对应于真正的TEE,则他们可以直接访问私钥份额,并可能发起攻击。但是,这种攻击需要足够数量的密钥份额,以允许制造商在没有其他节点帮助的情况下产生有效签名。这将意味着累积大部分的总权益,这将是非常昂贵的。此外,通过实施攻击,将摧毁权益持有的大部分价值。
[0082] 当使用TEE时,考虑协议对“破坏的节点”的稳健性是有用的。破坏的节点使得TEE外部的硬件被破坏,但TEE的完整性未受损害。破坏的节点可以控制飞地接收和不接收什么信息。具体而言,破坏的节点可以停止、即避免参与协议。如果要求提供给协议的信息通过在飞地(其中在证明期间认证对应的公钥)中秘密持有的私钥来签名,则私钥与飞地本身一样可信。因此,破坏的节点不能向协议发送任意(认证的)信息,并且可能仅通过停止或试图欺骗飞地不正确地行动(例如,通过向其提供过时信息)来尝试干扰。因此,对于破坏的节点,成功的攻击将需要收集足够数量的部分签名,以产生完整签名。通过TEE,Ibrahim等人的协议对于2t个破坏的节点是稳健的。因为如果n-2t>=2t+1就可以产生签名,那么大小为2t+1<=(n+1)/2的任何合格的密钥份额子集就足矣。因此,在使用TEE时,可将阈值签名方案的阈值配置为大于或等于密钥份额的50%的数字,从而在存在破坏的节点的情况下产生有效签名。
[0083] 也可以使用其他阈值签名方案。例如,阈值签名方案可以是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 2013 pp 185-202”提出中的技术组合。
[0084] 可以使用其他阈值方案,包括非ECDSA签名方案。例如,节点102可以使用基于Schnorr方案的阈值方案来实现会议110。
[0085] 区块链网络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中的一个或多个的组合。可通过节点同与其他会议成员相关联的其他节点合作来进行这些方法。
[0086] 会议启动
[0087] 下面参考图3,示出启动会议110的方法300。方法300可以由初始信任方进行,以建立会议110。即,与初始信任方相关联的节点102可以进行方法300。
[0088] 方法300包括在操作302提供会议公钥。可将会议公钥提供给其他节点102,以允许其他节点在他们希望加入会议时支付到会议公钥。也就是说,其他人可将令牌转移到与会议公钥相关联的地址,从而加入会议。
[0089] 在操作304,进行方法300的节点102允许支付到公钥,直到满足一个或多个条件。例如,针对确定的时间段或者确定的区块数量,节点可以允许支付到公钥。在满足条件之后(例如,在该时间段期满或开采所述数量的区块之后),进行方法300的节点102在操作306识别该会议的初始成员。
[0090] 在识别出包括会议的初始成员资格的各方之后,在操作307,根据阈值签名方案将私钥划分为私钥份额。然后在操作308,将私钥份额从进行方法300的节点102分配到所识别的各方。私钥份额与阈值签名方案相关联,阈值签名方案可以是本文所述的类型。
[0091] 在操作308期间,被识别为会议成员的节点102合作生成新的私钥份额和新的公钥。由初始信任方发送到这些节点的原始密钥份额可用于签署和广播交易,以将会议池中的所有令牌发送到新的公钥,新的公钥随后成为会议公钥。也就是说,在操作408期间,建立新的群组公共地址,并且在会议的控制下的令牌被转移到该新地址,该新地址成为群组的新地址并与会议公钥相关联。在确认该转移之后,会议可以无信任地操作。新的群组公共地址形成为将来可以从希望加入会议110的其他节点接收令牌的转移的地址,或者用于如上所述的其他目的。现在认为会议成员加入了会议,并且这些节点现在可以在没有初始信任方的帮助下运行。此外,初始信任方不再在会议的操作中扮演任何色。
[0092] 会议启动后加入会议
[0093] 下面参考图4,图4示出加入会议的方法400。图4的方法400可以结合图3的方法300操作,但是,图4的方法400是由在进行图3的方法300的节点所操作的相同区块链网络100(图1)中操作的节点102中的不同节点进行的。图4的方法400包括在操作402获得会议公钥。会议公钥可以直接从发起会议的一方获得,例如进行图3的方法300的节点,也可以从第三方获得,例如包括在区块链网络100(图1)之外操作的第三方系统。例如,可以从可通过公共互联网访问的公共web服务器获得会议公钥。
[0094] 进行方法400的节点102在操作404通过广播从与节点102相关联的私人账户到会议地址(即,与会议公钥相关联的地址)的令牌的交易来支付到会议公钥。更具体而言,节点102广播交易以将一个或多个令牌转移到与会议公钥相关联的公共群组地址。公共群组地址是会议池的地址。会议池包括与会议的其他成员相关联的其他令牌。因此,在操作404的交易一旦被矿工104(图1)添加到区块中,就将令牌转移到包括其他成员的令牌的会议池。
公共群组地址可以从希望加入会议的各方接收转移,也可以从不希望加入会议的各方接收转移。不希望加入会议的各方将令牌转移到会议池,以便通过使用会议所采用的阈值签名方案,使得会议能够对这些令牌进行全面、部分或有条件的控制。
[0095] 在操作404的交易可包括标记、标识符或其他属性,其指示转移令牌的一方希望加入会议并且转移是为此目的而进行的。
[0096] 在将令牌转移到会议池之后,进行方法400的节点102在操作406接收私钥份额。然后,节点102通过运行协议的单个实例在操作408重新生成私钥份额。可以在节点102的TEE内进行私钥份额的生成。
[0097] 在操作408,节点102生成要在阈值签名方案中使用的私钥份额,其中至少必须使用私钥份额的阈值来代表会议为交易生成有效签名。其他私钥份额的持有者是会议的其他成员,他们通过将相应的令牌转移到公共群组地址,而在许可或未经许可的基础上加入会议。
[0098] 为了重新生成私钥份额,在操作408,现有的会议成员可以合作更新密钥份额。例如,节点102可以生成阶数为t且具有常数项零的随机多项式 然后,节点102可以计算点 并将其设置为它们的私钥份额。然后,节点102可以将该多项式 上的点分配给每个现有的会议成员i=1,...,n。然后,每个现有的会议成员(i=1,...,n)将接收到的值添加到其现有的私钥份额中,以获得新的私钥份额。节点102现在具有等同于所有其他成员的私钥份额,并且对应的公钥保持不变。如上所述,阈值签名方案可以是各种类型的,包括椭圆曲线数字签名算法或基于Schnorr方案的阈值方案。
[0099] 私钥份额可以在TEE 250(图2)内生成,并且可以安全地存储在节点102。例如,私钥份额可以存储在TEE 250中。
[0100] 在由各个节点生成私钥份额之后,可将先前会议公钥控制下的资金、例如转移到与原始会议公钥相关联的公共群组地址的资金(通过足以在阈值签名方案下生成有效签名的多个群组节点的合作)转移到与新私钥份额相关联的新会议公钥。
[0101] 在操作408生成私钥份额之后,可以在方法400的操作410下使用它。私钥份额可用于从可以由成员广播的公共群组地址合作生成用于交易的有效签名。也就是说,私钥份额可用于阈值签名方案中帮助签名生成。在阈值签名方案下,会议的阈值数量的私钥份额需要被各个成员使用以产生有效签名,签名允许将令牌转出会议。进行方法400的节点102可以从存储中检索私钥份额并使用私钥份额从而帮助签名生成。如果足够数量的其他会议成员也使用他们各自的私钥来帮助签名生成,则签名生成并且可以广播有效的向外交易。当区块链网络100的矿工104(图1)将交易添加到通过区块链网络100中的节点102的共识而添加到区块链的被开采区块并且该区块被确认时,向外交易完成。此时,交易中所代表的令牌可以不再受会议的控制。也就是说,这种令牌可以不再受会议公钥的阻碍。
[0102] 在操作408使用私钥份额可以在节点102的TEE内执行。TEE保护私钥份额,使得系统的其他部分或成员本身不能访问存储在飞地中的任何数据,例如私钥份额。此外,TEE保护私钥,因为如果成员想要回他们的转移并接收他们的转移的归还,它就不能保留私钥的副本,因为它必须在转移归还之前证明私钥的删除。
[0103] 图4的方法400可以在初始设置阶段期间或之后进行。也就是说,方法400可以在分配初始密钥份额之前(例如,在图3的方法300的操作308期间)或之后(例如,在下面将更详细讨论的再平衡期间)进行。
[0104] 在操作410处交易可将令牌转移回最初将这些令牌转移至会议池的一方。也就是说,转移可将令牌返回该方。转移也可将令牌转移到其他地方。例如,可将令牌转移到第三方或不可耗用的地址。
[0105] 没收令牌
[0106] 下面参考图5,示出没收令牌的示例性方法500。图5的方法500可由节点102进行,节点102可以是与进行图4的方法400的节点相同的节点。可以在图4的方法400的操作408之后进行方法500,从而在进行图5的方法500时,该节点102已经可以访问私钥份额。
[0107] 在操作502,节点102检测恶意方的恶意活动。恶意方可以是会议的另一个成员。当节点102确定会议的成员违反预定协议或准则时,检测到恶意活动。例如,当作为会议成员的节点向会议的其他成员报告错误信息(即,错误、不一致或其他不可接受的信息)时,可将该成员视为恶意成员。
[0108] 在操作503,响应于检测到恶意活动,节点102与会议中的其他节点合作,可以将作为恶意方的成员挂起。也就是说,会议可以排除恶意方进一步参与会议。
[0109] 为了确保所有节点102都按照预定协议或准则进行操作,可以对进入会议池的成员转移进行没收。没收意味着永久阻止被视为没收的成员转移的返回。构成由于恶意活动而未返回的成员转移的(一个或多个)令牌可以留在会议池中但不返回,立即或在将来被转移到另一个不可耗用的地址,或以其他方式没收,并且没收的性质可以取决于会议是否充当用于侧链的担保验证者集合。例如,在操作504,响应于检测到恶意方的恶意活动,进行方法500的节点102可以使用私钥份额来提供在没收交易上的部分签名。也就是说,该节点与会议的其他节点合作,以没收先前由恶意方转移到公共群组地址(即,转移到会议池)的令牌的至少一部分。也就是说,响应于观察到群组成员违反预定协议或准则,将私钥份额用于帮助与该群组成员相关联的、且在会议池中持有的一个或多个令牌的交易的授权。
[0110] 因为阈值签名方案与会议公钥一起使用,所以单独行动的个别节点不能将另一个会议成员的令牌的转移转出会议池(例如,转移到不可耗用的地址)。相反,当阈值数量的私钥份额被它们各自的成员用于生成有效签名以将(一个或多个)令牌转移到另一个地址时,或者当至少具有阈值数量的私钥份额的成员群组达成共识以将成员挂起时(在操作503),令牌只能通过转移而被没收,这导致来自被挂起成员的任何撤回请求都被自动忽略。当通过转移没收令牌时,(一个或多个)令牌可以被转移至其的其他地址可以与不可耗用的地址相关联。例如,另一个地址可以是不存在私钥的地址,因此任何一方都不能访问由该地址的公钥绑定的令牌。当令牌被转移至不可耗用地址时,他们可能视为已经被烧毁,因为他们不再可以被会议的任何成员或者实际上被区块链网络100中的任何节点耗用。
[0111] 因此,在操作504,节点可通过与会议的其他成员合作地使用私钥份额来没收令牌,以生成用于交易至不可耗用的地址的有效签名。
[0112] 此外,在一些实施方式中,会议可以充当担保验证者集合,用以确保权益证明侧链,并且该侧链可以用作广播信道。例如,会议成员可以在侧链上达成共识,即成员已经恶意行动。这种共识可以与包含恶意活动的控告证据的、对侧链交易的确认相对应。达成共识后,恶意成员提出的任何撤回成员转移的请求将被拒绝,并且转移将被视为没收。没收的令牌的全部或一部分可能在将来的某个时间被烧毁。也就是说,在以后的某个时间,阈值数量的成员(不包括恶意成员)可以合作,以授权将没收的令牌转移到不可耗用的地址。替代地,令牌的全部或一部分可以作为奖励发送给提供成员错误行为的证据的节点。
[0113] 因为会议是可通过转移令牌而由区块链网络100的任何节点102加入的开放群组,所以群组成员资格可以周期性地改变。在发生这种改变时,可以更新私钥份额分配。下面参考图6,示出更新私钥份额分配的示例性方法600。方法600可通过区块链网络100的节点102与区块链网络100的其他节点合作进行。
[0114] 使用新公共地址更新私钥份额分配
[0115] 在方法600的操作602,节点102检测到重新分配请求,重新分配请求是一种其实现牵涉到重新分配密钥份额的请求。例如,节点102可以检测到潜在的新成员已经将令牌转移到公共群组地址中或者现有成员已经请求撤回成员转移。
[0116] 令牌可以通过如下节点转移到公共群组地址(即到会议池):请求加入会议或者增加他们在会议中的参与度的节点以及并未请求加入会议但是因为其他目的将令牌转移到会议的其他节点(例如将令牌转移到侧链,如下所述)。在操作602,节点102可以使用包括在令牌到公共群组地址的至少一部分交易中的一个或多个属性来识别会议成员(即,将令牌转移到会议公钥以加入会议而不是处于其他目的的各方)。例如,可以使用交易中的属性将某些交易标记为特殊交易。这些属性(不管存在还是不存在)可以指示进行转移的目的。例如,当转移者未请求加入会议时,可以在交易中包括标记。
[0117] 响应于在操作602检测到其实现牵涉到重新分配密钥份额的请求,在操作604,节点102以类似于在图4的方法400的操作408生成私钥份额的方式,生成新的私钥份额。会议的其他成员节点也生成相应的私钥份额。这些私钥份额可以与用于新会议公钥的阈值签名方案一起使用。将在此时离开会议的成员在操作604期间不生成新的私钥份额并且因为他们不会被分配以与新的会议公钥一起使用的私钥份额,所以他们失去参加会议的能力并且不再被视为会议成员。
[0118] 此外,响应于检测到重新分配请求(重新分配请求是其实现牵涉到重新分配密钥份额的请求),在操作606,节点102与其他会议成员合作,将公共群组地址中的所有数字资产转移到与新公钥(以后会成为新的会议公钥)相关联的新公共地址。
[0119] 因此,根据图6的方法600,当转移的分配改变时或当从成员接收到归还资产到池中的转移的请求时,可以重新生成私钥,并且可将所有在会议控制下的令牌移动到新的公钥。会议成员资格可被更新的频率受到区块链网络100的区块时间限制。很多应用程序可能只需要在低频率下重新平衡。
[0120] 在保留现有公共群组地址的同时更新私钥份额分配
[0121] 下面参考图7,示出更新私钥份额分配的另一个示例性方法700。方法700可通过区块链网络100的节点102与区块链网络100的其他节点合作进行。
[0122] 在图7的方法700中,每次将令牌转移到公共群组地址或者将令牌从公共群组地址转出时,会议公钥不改变。当检测到用以分配新密钥份额的请求时(在操作702,其可通过将令牌转移到公共群组地址而发生),节点102与会议的其他成员合作,以(在操作704)向群组的新成员发布用于相同公钥的新的私钥份额。合作的节点数量至少是在阈值签名方案下生成数字签名所需的节点的阈值数量。在操作704,可以分配额外的密钥份额,而其他密钥份额保持不变。这可能牵涉到(阈值签名方案)的阈值改变,但是实际上改变可能很小。或者,在操作704,可以分配额外的密钥份额,同时更新其他密钥份额。这种更新需要伴随着对删除任何上一代密钥份额的证明。在这种情况下,可以在保持相同阈值的同时分配新份额(在SSS的背景下,这涉及共享更高阶的新的多项式)。
[0123] 在操作702,节点102可以使用包括在令牌到公共群组地址的至少一部分交易中的一个或多个属性来识别会议成员(即,将令牌转移到会议公钥以加入会议而不是因为其他目的的各方)。例如,某些交易可以使用交易中的属性标记为特殊交易。这些属性(不管存在还是不存在)可以指示进行转移的目的。例如,当转移者未请求加入会议时,可以在交易中包括标记。
[0124] 当成员离开使用方法700的会议时,他们可以安全地删除他们的私钥份额。为了确保旧成员的私钥份额不可用,可以要求会议的成员使用具有特殊TEE的节点102。TEE是在硬件级别实现的体系结构,它保证在其中执行的指令和数据免受来自系统其余部分的访问和操作。TEE可以采用硬件机制来响应远程证明询问,其可用于向外部方(例如,会议中的其他节点)验证系统的完整性。
[0125] 每个成员节点可以使用经证明的TEE,该经证明的TEE被配置为生成一个或多个随机秘密值,该随机秘密值保持对于主机系统的不可访问而不会损害集成电路级别的硬件。通过这种方式生成的秘密值将用于私钥份额的分布式生成(例如,在图4的方法400的操作
410中)。该秘密值还可用于在会议的设立阶段建立共享公钥。与设立协议相关联的计算在TEE飞地内进行,使得任何成员或前成员都不能根据成员间通信或任何其他方法得出关于他们自己或其他私钥份额的任何信息。TEE内的飞地使得能够进行远程证明协议,其可用于向其他节点证明TEE飞地是可信的并且它正在运行经批准的计算机可读指令。
[0126] 与群组改变相关联的计算在TEE飞地内进行。例如,在TEE飞地中进行新安全随机秘密的生成,该新安全随机秘密可用于处于SSS目的计算新多项式的。
[0127] 此外,TEE飞地的目的是确保在可以归还特定成员加入会议时进行的先前向池中的转移之前,安全删除不再使用的先前密钥份额和先前秘密。更具体而言,为了将将这种向池中的转移归还,证明协议可能要求TEE飞地证明密钥份额的删除。通过远程证明协议,每个节点102可将这种证明解释为对在其他节点上已经发生所需删除的确认。因此,方法700还可包括确认先前在离开会议的成员的TEE内持有的私钥份额已经从与该成员相关联的节点中删除。可通过接收对私钥份额的删除的证明来进行该确认。因此,远程证明协议可用于获得对先前在离开会议的成员的TEE中持有的私钥份额的删除的证明。
[0128] 图6的方法600和图7的方法700都提供各种好处。例如,图6的方法600不依赖于安全删除,也不需要依赖可信的硬件。但是,图6的方法600可以得益于这种硬件,因为在某些情况下,这种硬件可以使得密钥份额的恶意汇集更加不可能。
[0129] 图7的方法700避免每次成员资格变更时必须在新的会议公钥下重新锁定令牌。此外在一些情况下,方法700与图6的方法600相比可以更快地更新成员资格,因为在图7的方法700下,不需要将交易添加到区块链中以将所有令牌移动到新的公钥,这是因为令牌并未移动到新的公钥。也就是说,可以使用图7的方法700来更新成员资格而无需等候生成若干区块来确认将令牌转移到新公钥,因为公钥并未改变。
[0130] 从会议注销
[0131] 如上所述,群组成员有时候可以请求离开会议,并且当群组成员从会议注销时,他们先前转移到会议池的令牌可能会被返回给他们。下面参考图8,以流程图的形式示出返回这种转移的示例性方法800。该方法可通过节点102与会议的其他节点102合作进行。
[0132] 在方法800的操作802,节点102从作为会议成员的请求者接收撤回请求。撤回请求也可称为注销请求。撤回请求是撤回由请求者先前转移到池中并且当前由会议控制的令牌的请求。请求可能已由请求者向所有会议成员广播。
[0133] 响应于接收请求,节点102在操作804针对确定的准则评估请求。这些准则可以是预定准则。如果会议根据其中每次群组成员资格改变时会议公钥未改变的会议协议进行操作,则在操作804,节点102可以确认请求者已经删除私钥份额。可以使用与TEE相关联的远程证明协议来获得这种确认。
[0134] 如果会议协议是在成员资格改变时会议公钥被改变的协议,则节点102可以不确认私钥份额的删除,因为私钥份额不再有效。相反,可以使用新的会议密钥,并且可将会议控制下的其他令牌转移到新的会议密钥。
[0135] 在操作804,评估还可以考虑当前是否部署了虚拟链。如果部署了虚拟链,则撤回请求被拒绝,直到虚拟链的操作停止。也就是说,至少在虚拟链终止之前,阻止在虚拟链上进行开采的会议成员撤回他们令牌的“权益”。
[0136] 如果节点102基于评估批准撤回请求,则在操作806,节点帮助撤回令牌。也就是说,节点102使用其私钥份额来合作生成数字签名并使用数字签名将请求者先前转移到池中的令牌转移回请求者。例如,可将令牌发送回先前从其接收到该数字资产的地址。根据阈值签名方案进行操作806,使得仅在至少阈值数量的会议成员授权撤回时才进行撤回。在希望注销的成员被挂起而不进行活动一段时间之后进行操作806。这个等待时段阻止了成员在进行用于将先前到池的转移的归还的协议时从事不当行为。
[0137] 会议协议可用于很多不同目的。会议提供进行各种功能的安全机制。会议可以无信任地操作,并提供对令牌所有权的控制。
[0138] 会议协议例如可用于实现虚拟链,在这种情况下,会议协议可称为虚拟链协议。
[0139] 虚拟链
[0140] 下面参考图9,示出区块链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] 在图11中示出质询者方法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。交易包括奖金作为输入。交易包括奖金以及提议者存款(proposerdeposit)作为输出(即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中主张奖金和提议者存款。提议者可以启动计时器,以跟踪质询期中剩余的时间量,并且一旦质询期期满,就可以自动采取行动。例如,提议者可将诸如处理器工作成果之类的工作成果(可称为解决方案)提供给请求者,并且可以解锁交易。
[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=奖金+提议者存款)且输出等于奖金、提议者存款和质询者存款(challengerproposer)的总和(例如,T2_out=奖金+提议者存款+质询者存款)。因此,值得注意的是,在构建交易T2之前,将奖金和提议者存款置于群组的独占控制之下(如上所述)。交易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] 部署虚拟链时,仲裁者(与群组的其他节点合作)达成共识。实际上,当仲裁者和会议的其他节点解决质询时,就可以达成针对共识的判断。
[0181] 在区块链上达成共识(即对仲裁的判断)以后,仲裁者与群组的其他节点合作构建最终交易(待完全签署后将被开采到主区块链网络中)。最终交易(也可称为结算交易)可以包含各种令牌转移;例如:(i)奖金+存款(可以被转移到在裁决过程中被视为成功或被证明为正当的节点);(ii)开采费(对于已经进行的虚拟链开采);(iii)创世支付(是基于之前的虚拟链运行而应得的令牌转移,其由创世区块确定);和/或(iv)对于注销成员,返还(即,返回)已转移给会议池的令牌。
[0182] 该交易还可包含有用的元数据;例如,结算交易可将解决方案转移回区块链网络。因此,在该过程期间,群组(即,仲裁者与群组的其他节点合作)可将共识结果提交给区块链网络。在虚拟链上,群组还可将链上确定的中间计算状态的Merkle根散列提交给区块链网络。
[0183] 因此,可通过仲裁者与群组的其他节点合作来分配在群组控制下的令牌(在操作1308中)。这种令牌的分配是根据为会议(即,为群组)限定的阈值签名方案来进行的。如上在会议的讨论中所述,阈值签名方案被配置为使得需要至少阈值数量的成员来生成用于会议公钥的有效签名。因此,仲裁者与群组的其他节点(即,与其他仲裁者一起)可以同意通过使用仲裁者的私钥份额向最终交易添加部分签名来转移令牌。其他节点也使用各自的私钥份额添加部分签名,直到至少使用阈值签名方案所需的阈值数量的私钥份额为最终交易创建有效签名。
[0184] 在最终交易中分配令牌的具体方法将取决于共识结果。例如,当共识是所声称的解决方案不正确时,仲裁者可以与其他节点合作,以至少将质询者存款转移给质询者,并将提议者存款与开采的区块的绝对数量成比例地分配给虚拟链的矿工。如果共识是质询者的解决方案是正确的,那么也可将奖金转移给质询者。因此,质询者可以在图12的质询者方法1200的操作1208中接收令牌。但是,如果使用二进制搜索以致不能识别正确解决方案,那么可将奖金返回请求者,请求者可以重新发布请求,从而允许质询者基于他们的回答提交提议。替代性地,当通过二进制搜索消除提议者时,请求者可将质询者的提交视为提议,并且可以在图10的方法1000的操作1006中继续操作。也就是说,请求者可以基于质询者的建议构造新的交易T1。除了先前被认为是质询者的节点现在被认为是提议者之外,该交易可以如上参考操作1006所述。因此,可通过提供与上述质询者在交易T2中提供的解决方案的散列值相对应的解决方案,来将新的交易T1构造为在质询期期满之后由质询者解锁。
[0185] 当共识是提议者的工作成果有效时,仲裁者可以与其他节点合作,将奖金和提议者存款转移给提议者,并将质询者存款与开采的区块的绝对数量成比例地分配给虚拟链的矿工。因此,提议者可以在图11的方法1100的操作1110中接收令牌。
[0186] 如果共识是提议者的解决方案和质询者的解决方案都不正确,那么可将质询者存款的一半和提议者存款的一半与开采的区块的绝对数量成比例地分配给矿工。所有剩余的令牌可以返回接收令牌的一方。
[0187] 请求者在图10的请求者方法1000的操作1008中接收解决方案。请求者由其在操作1008中接收解决方案的方法可以取决于是否发出质询。例如,如果没有发出质询,则提议者使用以上参考图10的方法1000的操作1006所述的交易T1将解决方案提交给区块链。但是,如果发出了质询并且如果虚拟链确定了对请求的解决方案,则虚拟链节点可以在虚拟链终止时将解决方案传输给请求者(例如,在图13的仲裁方法1300的操作1310中)。因此,虚拟链协议可使得参与虚拟链的节点在确定解决方案后自动将解决方案传输给请求者。
[0188] 此外,在对虚拟链达成共识并且构造和有效签署交易之后,虚拟链终止(在图13的仲裁方法1300的操作1310中)。也就是说,在解决质询后,虚拟链终止。当虚拟链终止时,可将与质询的解决方案有关的信息转移回工作量证明区块链网络。
[0189] 在虚拟链终止时,不会再有其他区块被开采到虚拟链上。也就是说,与典型的区块链不同,虚拟链具有终止区块。虚拟链可以被实现为不分叉的权益证明区块链。没有分叉意味着在虚拟链终止时将有一个确定的终止区块(即,群组中所有节点都同意的终止区块)。在此终止区块之后,虚拟链已达到其目的,并且不再被添加。
[0190] 如上所述,当仲裁者(即会议的节点)达成共识时,一旦根据如上所述的阈值签名方案通过添加部分签名生成了有效签名,节点就合作构建将在主链上广播的交易(在操作1308中)。因为该交易本身是多方计算,所以对该交易作出贡献的节点可期望因参与该交易而得到奖励。但是,因为交易是在签名之前指定的,所以参与签名的报酬(可包括通过交易以及实际开采区块将部分签名发送到虚拟链)可能被推迟直到进一步的虚拟链部署。可以在操作1310中提供这种推迟。更具体而言,可以用允许在虚拟链的未来部署期间处理创世支付的信息来构造终止区块。这种信息可以是开采费用的记录,开采费用是由于在构造最终交易之后创建的区块(例如在最终交易的签署期间创建的区块)而导致的。也就是说,可将创世支付限定为奖励对最终交易的签署做出贡献的节点。虚拟链的终止区块将成为下一个虚拟链运行的创世区块(即,下一次部署虚拟链)。因此,在终止区块中创建记录,用于将来的创世支付。
[0191] 注意,根据上面刚提到的实施方式,成员在虚拟链运行期间注册/注销-这可以由质询触发。替代实施方式也将允许定期或在其他条件下进行注册/注销。这可以涉及专为此目的进行的虚拟链的调度运行,除了没有裁决和共识阶段外,其类似于上述的虚拟链部署。在这种情况下,开采费用可以至少部分地从“注册费用”中支付,而“注册费用”是注册相应所需的。
[0192] 还应注意,上述方法1300描述了并非第一虚拟链运行的虚拟链运行。也就是说,方法1300描述了在过去的某个时间点已经部署的虚拟链的部署,使得包含创世支付的终止区块已经存在于虚拟链。可以修改方法1300以允许部署第一虚拟链。例如,第一次部署虚拟链时,可通过另一种方式建立创世区块。例如,可由初始信任方提供创世区块。
[0193] 可以是通过使用基于权益证明的区块链达成分布式共识(即,仲裁质询),与尝试在工作量证明区块链上达成共识相比,可以更快地达成共识,因为权益证明允许更规则的区块生成,并且可以配置为允许高频率区块生成。此外,通过在虚拟链上而非在主区块链本身上进行达成这种分布式共识所必需的操作,任务被推离主区块链网络,从而减轻主区块链网络的负担。
[0194] 此外,虚拟链的瞬时性质(即,虚拟链本质上是临时的并且终止的事实)可以避免或减少通常影响权益证明区块链网络的无利害攻击问题的险。虚拟链网络的临时性质允许会议要求虚拟链的矿工到会议池的转移不会归还,直到虚拟链终止。也就是说,可将会议配置为在虚拟链运行时不允许任何会议成员实现他们先前向池中的转移的归还(即,撤回他们的权益)。
[0195] 虽然上述示例引用了比特币中可用的操作代码,但本文所述方法也可以与其他类型的区块链网络一起使用。
[0196] 通常将上述方法描述为在节点进行,但是所述方法的特征依赖于与其他节点合作并且可以在其他地方进行。
[0197] 应当注意,上述实施例是说明而不是限制本发明,并且本领域技术人员将能够设计很多替代实施例而不脱离所附权利要求限定的本发明的范围。在权利要求中,括号中的任何附图标记都不应解释为限制权利要求。词语“包括”等不排除除了在任何权利要求或说明书中作为整体列出的元件或步骤之外的元件或步骤的存在。在本说明书中,“包括”表示“包含”或者“由…构成”。元素的单数引用不排除这些元素的复数引用,反之亦然。本发明可通过包括若干不同元件的硬件,以及通过适当编程的计算机来实现。在列举了若干器件的装置权利要求中,这些器件中的若干个可通过硬件的一个项目或相同项目来具体实施。在相互不同的从属权利要求中陈述某些措施的纯粹事实并不表示这些措施的组合不能用于获益。
高效检索全球专利

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

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

申请试用

分析报告

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

申请试用

QQ群二维码
意见反馈