掌桥专利:专业的专利平台
掌桥专利
首页

在区块链上进行选举的证明的方法和系统

文献发布时间:2023-06-19 10:40:10


在区块链上进行选举的证明的方法和系统

技术领域

技术领域总体而言涉及区块链技术,并且更具体地,涉及用于在区块链上进行选举的证明的方法和系统。

背景技术

区块链是一系列操作或交易(transaction),它们被整合到一个顺序的仅追加数据库格式中。使区块链成为可能的一项重要技术是散列算法(hashing algorithm)。加密散列是一种算法,它将采用任何输入值,并且对于每个唯一输入值,总是会产生唯一输出。相同的输入将总是创建相同的输出,但是两个不同的输入将永远不会创建相同的输出。这样,散列是一种为特定内容创建唯一标识符的方法,其中可能永远不会仅从所得散列中推断出产生散列的原始内容。

通过将每个交易包含在区块中,可以将其确认到区块链数据库中。每个区块将包含多个已确认为加密有效的交易。当创建新区块时,它将结合链中前一个区块的散列对其内容进行散列处理。随着区块的链的增长而形成区块链,这种情况不断发生。这项技术很有趣,因为攻击者无法更改区块链中的任何内容。任何试图破坏数据的篡改,即使是最小的数字也将完全改变散列链总和,并破坏链接。这很重要,因为它可以通过汇总哈希链来确保从互联网上不受信任的计算机接收的数据有效。

具有加密的哈希链的区块链数据库确保其数据不可能被篡改。这样,以某种随机的方式彼此连接的计算机就可以创建自愈的对等网络。每台计算机都连接到网络上的其他节点,它们本身也连接到其他节点,从而形成通信网格。如果一个对等方不回应,则网络永远不会受到影响,因为它会使用其他连接自然地重新平衡自身。该网络上的对等方将交换和同步区块链数据,而无需彼此信任。加密散列允许每个对等方汇总数据,并确认数据是按预期发送和接收的。

八卦消息协议建立在由对等网络确立的网络拓扑之上。该协议确定P2P网络上每个对等方之间交换消息的方式,以确保每个节点都将接收网络上发送的消息的副本,同时将消息重复(回声(echo))减到最少。当创建新交易以插入到区块链中时,节点会将此交易作为八卦消息发送给它所连接的多个对等方,然后它们会将该交易转发给自己的对等方,并持续直到整个网络都收到该消息为止。新交易将被核实,然后由每个参与者将该交易添加到临时交易池中,该交易将无限期保留,直到由确认区块确认为止。一旦确认,将其从交易池中移除,并追加到最终的区块链中。

在对等区块链网络上要克服的主要困难之一是如何就网络上被认为是真相的问题确立共识。在拥有数百万或更多节点的大型网络上,当大量活动同时发生并且存在潜在的恶意参与者时,很难确立谁是正确的。例如,如果某人在同一个帐户上花了两次钱,同时又在网络的另一端花了钱。由于消息将在网络上传播,因此一些节点将看到一笔交易,但没有察觉到第二笔交易。同时,其他人将看到第二个,但没有察觉到第一个。两组节点都在同一时间点看到了不同版本的真相。当这些交易开始冲突时,那么另一组节点将看到两者。在这三组中,问题是,谁是正确的?如果两笔交易合并导致帐户透支怎么办?我们如何处理异常?

为了回答这些问题,区块链系统实施了各种共识机制,以帮助在特定时间在网络上确立真相。共识是一种机制,通过该机制可以决定并相互同意权限,以选择将区块链中某个时间片的交易确立为真相。理想情况下,每次都将以不可预测的方式选择一个不同的节点作为指定的权限。

尽管它不是唯一的共识机制,但在撰写本文时,到目前为止最受欢迎的是一种称为工作证明(POW)的共识方法。它的工作原理是网络将同时要求网络上的节点找到非常困难的数学问题的解。所有节点都将搜索数学上的“大海捞针”,也就是说,以确保在指定的时段之后只有一个获胜者出现。当幸运的节点最终找到了这个数学问题的答案时,该节点会领先一个回合,然后选择哪些交易将该节点放入一个区块,并将该区块发布到网络。一旦网络上的其他参与者核实并接受了所述解,该解即被接受为真相,并且网络就进入下一个区块。实质上,工作证明算法的目的是选择网络上的某个人来选择区块链在此回合中的去向。因为这些计算非常困难,它确保了下一个被选中的人有一定的平均信息量(entropy),因此没有人能够计划决定下一个链将走向何处,从而确保免受计算破坏的影响。

POW算法在哲学上非常有效,并且是绝大多数区块链技术的基础。POW的问题在于,它通过使用计算机硬件和电力成本作为其欺诈限制因子来防止欺诈。拥有无限强大计算机的人每次都能立即找到区块的解,并将网络平均信息量降为零。但是,计算机具有功率限制并且电费昂贵,因此限制了人们必须无限地在网络上进行操作的能力。

问题在于,随着区块链技术变得越来越流行,人们将使用越来越强大的计算机并增加能源需求来寻找更多的区块的解。这导致网络难度水平的不断增大,从而使能源的使用量不断增加,并且每天保持增加。在当今时代,全球变暖的威胁已经到来,这场持续不断的军备竞赛非常令人震惊。

因此,还有很大的改进空间。

发明内容

根据方面,提供了一种方法。该方法包括以下步骤:a)在包括多个参与者的区块链网络上发布区块,该区块包括至少一个标准,所述至少一个标准用于基于与参与者中的每个参与者相关联的唯一选举候选资格在多个参与者之中选择当选的参与者;b)对来自一个或更多个参与者的选举确认消息进行接收,该选举确认消息包括与一个或更多个参与者中的每个参与者相关联的唯一选举候选资格以及由一个或更多个参与者选择的一个或更多个交易;c)基于选举确认信息中包含的唯一选举候选资格,应用至少一个标准以在一个或更多个参与者之中核实当选的参与者;以及d)在区块链网络上发布后续区块,该后续区块包括从当选的参与者接收到的选举确认消息中的一个或更多个交易。

根据方面,提供了一种系统。该系统包括:通信模块,该通信模块被配置成与区块链网络上的多个参与者进行通信;和处理模块,该处理模块工作地连接至通信模块。该处理模块被配置成:经由通信模块在区块链网络上发布区块,该区块包括至少一个标准,所述至少一个标准用于基于与参与者中的每个参与者相关联的唯一选举候选资格在区块链网络上的多个参与者之中选择当选的参与者;经由通信模块接收来自一个或更多个参与者的选举确认消息,该选举确认消息包括与一个或更多个参与者中的每个参与者相关联的唯一选举候选资格以及由一个或更多个参与者选择的一个或更多个交易;基于选举确认信息中包含的唯一选举候选资格,应用至少一个标准以在一个或更多个参与者之中核实当选的参与者;以及经由通信模块在区块链网络上发布后续区块,该后续区块包括从当选的参与者接收到的选举确认消息中的一个或更多个交易。

根据方面,提供了一种非暂时性计算机可读介质。该计算机可读介质上储存有指令,该指令在由处理器执行时,使该处理器执行以下步骤:a)在包括多个参与者的区块链网络上发布区块,该区块包括至少一个标准,所述至少一个标准用于基于与参与者中的每个参与者相关联的唯一选举候选资格在多个参与者之中选择当选的参与者;b)对来自一个或更多个参与者的选举确认消息进行接收,该选举确认消息包括与一个或更多个参与者中的每个参与者相关联的唯一选举候选资格以及由一个或更多个参与者选择的一个或更多个交易;c)基于选举确认信息中包含的唯一选举候选资格,应用至少一个标准以在一个或更多个参与者之中核实当选的参与者;以及d)在区块链网络上发布后续区块,该后续区块包括从当选的参与者接收到的选举确认消息中的一个或更多个交易。

附图说明

图1A和图1B是示出根据实施方式参与区块链网络的参与者的示意图。

图2A和图2B是示出根据第一实施方式和第二实施方式在区块链上发出的区块的内容的示意图。

图3是示出根据实施方式的发出区块中包括的选举结果的示意图。

图4A和图4B是示出根据第一实施方式和第二实施方式的用于在区块链上进行选举的证明的示例性过程的流程图。

图5是示出根据实施方式的实施展示宽限期进行选举的证明过程的示意图。

图6A和图6B是示出根据第一实施方式和第二实施方式的用于确定参与者是否当选的过程的流程图。

图7是示出根据实施方式的用于选择主要被选参与者的筛选程序的示意图。

图8是根据实施方式的用于在区块链网络上注册公共参与者的过程的流程图。

具体实施方式

以下内容描述了用于在区块链上进行选举的证明的系统和方法的示例性实施方式,并提供了包括系统组件和过程在内的可能实施例的示例。这些只是许多可能的不同实施例中的一种。这样,提供的示例不应以任何方式限制本发明的范围。

参考图1A,根据实施方式示出了用于实施包括进行选举的证明过程的区块链的区块链网络100。该网络100包括以对等方式连接并使用八卦协议进行通信的多个节点或参与者101。参与者101可以是包括处理器、存储器和通信模块的任何类型的计算设备,该通信模块允许计算设备与对等网络中的其他计算设备通信并参与执行与区块链有关的动作。在一些实施方式中,通信模块可以进一步允许计算设备经由对等网络或区块链网络之外的通信协议与其他计算设备(诸如服务器)进行通信。

可以理解,每个参与者101可以被配置成在区块链网络100中执行不同的功能或角色。在本实施方式中,将参与者细分为两个子组,即受信任的参与者103、107和公共参与者105。受信任的参与者和公共参与者的主要功能将在下文中详细描述。然而,可以理解的是,受信任的参与者可以对应于由受信任的实体操作的节点,并且其在区块链网络中的动作可能经受很少监督或没有监督。例如,此类节点可以承担核查其他节点的动作和/或在区块链网络上做出权威性决策,例如承担仲裁者103的角色(例如:用于主持在区块链上发生的动作)和/或IP核实参与者107(例如:用于核实在网络注册的节点的IP地址),等其他者。另一方面,公共参与者105可以对应于在区块链网络中参与的任何实体,并且其动作将需要由受信任的参与者103、107和/或多个公共参与者105的共识来核实和/或授权。在任何给定的时间,网络100上可以有不同数量的受信任的参与者和/或公共参与者。然而,在本文描述的实施方式中,需要最少4个参与者,包括至少一个仲裁者103、至少一个IP核实参与者107和至少两个公共参与者105。

概括地描述,仲裁者103是受信任的节点和/或具有保留功能的特别指定的节点,用于授权在区块链上发生的动作。仲裁者103可以对应于单个计算设备,和/或可以包括一起工作以执行主持功能的多个计算设备(诸如一个或更多个服务器,例如包括网络服务器(webserver)和后端服务器)。在具有多个仲裁者103的实施方式中,仲裁者103彼此协调并充当区块链网络100上的单个统一语音。在本实施方式中,如图1B所示,通过加密的安全公共签名密钥在区块链网络100上识别仲裁者103,该公共签名密钥可以在例如创始块的特殊区块中发布。只有有权访问相应私人密钥签名的仲裁者103才能在区块链网络100上模仿受信任的语音。由于仲裁者的语音是通过加密来保护,因此公共参与者105可以识别并信任从受信任的源发送的消息和仲裁者103发出的区块。

IP核实节点107是受信任的节点和/或具有保留功能的特殊指定的节点,它们用于核实在区块链网络100上参与的参与者105的身份。在本实施方式中,这些节点称为“IP核实”节点,因为它们通过确认参与者105的IP地址来核实参与者105的唯一身份,例如当参与者105当选时。然而,应当理解,也可以经由其他参数来核实参与者105的唯一身份。在本实施方式中,IP核实节点107是专用节点,其唯一功能是核实参与者105的IP地址,并与仲裁者103和/或区块链网络100的其余部分确定这种核实。然而,应当理解,在一些实施方式中,IP核实节点107的功能可以由仲裁者103来进行。

公共参与者105对应于区块链网络100上的其他参与者。在本实施方式中,所有公共参与者105具有分配的全局唯一标识符,也称为帐号。可以理解的是,没有两个参与者可以拥有相同的账号,通过将唯一账号发布到区块链,可以确保标识符在创建时刻是唯一的并且被唯一管理,所述相同的账号与仅由参与者控制的一个或更多个加密的签名公共密钥结合。在一些实施方式中,该唯一身份也可以是公共加密的密钥,只要它在区块链上是唯一的并且它们单独控制私人密钥。

图4A示出了使用受信任节点进行选举的证明过程400的第一示例性实施方式。概括地说,根据网络负载,由仲裁者以不同的间隔发出区块链200。当特定的区块200达到成熟度(maturity)时,选举两个或更多个公共参与者105以选择应当包括在成熟区块200中的哪些交易。当选的公共参与者105提交选举确认消息300到仲裁者103,对他们的身份进行确认,并且对他们所选择的交易进行提交。仲裁者103随后可以核实当选的参与者105的身份,并且由仲裁者103发出的随后的区块200可以确认当选的参与者105提交的交易。在本实施方式中,在仲裁者103与参与者105之间的所有通信都是在区块链网络上进行的。然而,应当理解,在一些实施方式中,可以使用不同的机制发生一些通信。例如,选举确认消息可以直接和/或间接地从参与者105发送到仲裁者103,而不是在区块链网络上发布。例如,可以经由参与者105与仲裁者之间的直接P2P连接,和/或使用客户端-服务器关系和/或经由诸如使用超文本传输协议(HTTP)或其他通信协议的不同协议来发送这样的消息。

现在更详细地说,并且如图2A所示,每次创建区块200时,它可以包括至少两个不同的部分,即,选举内容201和选举结果203。然而,应当理解,在其他实施方式中,取决于特定的功能请求,可以在每个区块200中设置更多的部分。选举内容部分201可以确定所需的参数和共同商定的规则,公共参与者将使用此规则进行选举,该选举在给定的区块达到成熟度时间时被举行。在本实施方式中,在内容部分201中提供的参数包括:奖金量,用于限定将来当选的参与者之间分割的奖励量;难度因子,其确定选择筛选程序的强度;成熟度高度,其确定何时举行选举;以及分配方法,其确定在当选的节点之间分配奖金的方法。在所示的实施方式中,分配方法被设置为“较少贪婪”,尽管应当理解的是,可以从分配方法的预定列表中选择不同的分配方法,例如,通过影响节点将执行的选择并鼓励可以保持区块链生态系统健康所需的特定行为来实现区块链中的不同目标。尽管在本实施方式中提供了特定的因子,但是应当理解的是,还可以添加其他因子来增大选择复杂性,例如随机的随机数(nonce)值。

选举结果部分203可以用于发布在当前区块高度处达到成熟度的区块的最终选举结果。因此,选举结果部分203可以包含指示在该区块中当选的节点的列表,以及分配给每个节点的奖金部分。奖金的分配可以通过任何必要的方式来确定。例如,它可以在所有当选的节点之间平均分割,或者可以使用特殊算法来确立更智能的值的分配。例如,可以对每个当选的参与者的选定的交易费用进行汇总,并且作为从区块链池中清除较低支付交易的激励,可以向选择提供较低费用的交易的当选的参与者分配较高的奖金。

如上所述,当公共参与者105当选时,他们有机会选择他们希望将哪些交易作为真相添加到当前区块。可以从不完整交易池中选择此类交易(即,已经由其他公共参与者105广播到网络,但是尚未处理并添加到区块链中的拟议交易)。因此,选举结果部分203也可以用来指示当选代表希望包括在区块中的任何交易。如图3中所示,可以在选举结果部分203中列出由各个当选节点选择的确认交易,以及提供给每个当选节点的交易费用部分。可以理解的是,交易费用的分配可以以许多不同的方式进行。例如,它可以公平地分割,可以在所有当选的节点之间随机地分配,或者可以使用特殊公式,例如使用采用诸如以下因子的特殊公式:首先接收哪个交易、哪个交易在指定的时间段内被选择的次数最少等因子。

可以理解的是,当选的公共参与者105的数量可以从一区块到另一区块变化。每次创建区块200时,仲裁者103在选举内容部分201中指定选举内容参数,并且这些参数用于确定最终将选定的给定数量的公共参与者105的规则。因此,取决于如何设置参数,当选的参与者105的数量可以更多或更少。

为了设置选举规则,可以提供几个不同的因子。在本实施方式中,选举因子至少包括控制当选的参与者105的数量的难度控制因子。难度因子可以对应于任何筛选条件,该筛选条件缩小了可以当选的参与者的数量。例如,难度因子包括任何给定的参与者可以当选的概率。在一些实施方式中,可以通过设置规则来实现,该规则说明要当选的参与者105是那些具有低于所提供的难度数量的帐户和散列结合的参与者。可选地,可以通过选举具有最接近难度数量的帐户和散列结合的参与者105来设置类似的规则。

可以理解的是,大量的公共参与者105可以在任何给定时间参与网络100,并且不希望同时选举所有这些节点来选择交易。因此,难度因子可以用于将当选的参与者的数量限制在可管理的量,并且避免网络100上的过多负载。在一些实施方式中,可以设置难度因子,使得为每个区块选举相对恒定数量的参与者105。例如,可以设置难度因子,使得每个区块平均有10个当选的参与者105。然而,应当理解,在其他因子之中,当选的参与者105的最佳数量可以根据参与网络的参与者101的总量和/或未确认的交易池的大小而变化。因此,难度因子可以根据需要从区块调整到另一区块以调整当选的参与者105的预期数量。

在一些实施方式中,可以采用统计方法论来确定理想难度因子,例如基于来自先前区块中的选举反馈。可以理解的是,这可以允许在区块链上当选的代表105相对于参与者101的总量是相对恒定的比例。在这样的实施方式中,仲裁者103可以监视先前区块中的当选的参与者105的数量,并且向上或向下调整难度因子以使当选的参与者的计数保持在固定的预定量附近。

一定量的平均信息量可以被添加到系统,以便使其更难预测未来一轮将选举出哪些参与者。在本实施方式中,通过为每个区块200限定成熟时间来添加这样的平均信息量。如上所述,由仲裁者103发出的区块200可以在选举内容部分201中指定成熟度时间。成熟度时间可以用于强制在何时发出区块200与何时应执行相应的选举(即,当区块“成熟”)之间的延迟。例如,成熟度时间可以被限定为区块数量的增加,这意味着给定的区块将仅在已经发出了预定数量的后续区块之后成熟。在这样的实施方式中,成熟度时间可以被提供为动态变量,或者可以是在区块链代码中限定的固定的相互同意的常数。可以理解的是,其他用于延迟选举的机制也是可能的。还应当理解的是,可以经由其他机制,例如通过添加随机的随机数值或其他数据来添加另外的平均信息量。

一旦给定的区块200根据其指定的选举内容而已经达到成熟度,则参与者105将必须执行一系列动作以确定他们是否已经当选。图6A中示出了用于确定参与者105是否已经当选的示例性方法600。在本实施方式中,该方法600包括确立唯一选举候选资格的第一步骤601。唯一候选资格由参与者105通过将区块链上的前一区块的唯一散列与其自身的唯一ID散列在一起来确立,从而创建新的唯一散列。可以理解的是,用于生成唯一候选资格的机制可以基于预定规则,在区块链上达成一致,并且因此可以被不同地计算和/或可以合并不同的因子。此外,还可以使用附加信息,诸如在选举内容中声明的随机数。

一旦已经计算出唯一选举候选资格,第二步骤603可以涉及判断唯一候选资格是否落入由筛选公式确定的范围内。例如,参与者105可以考虑难度因子并判断限定唯一候选资格的散列是否低于由难度因子限定的阈值。

如果参与者105确定其没有落入所需范围内,则其尚未当选,并且不需要采取进一步的动作。因此,参与者105可以等待下一个区块以获得另一当选机会。如果参与者105确实落入筛选范围内,则参与者105已经被选出并且将有机会参与决定哪些交易将被包括在当前区块中。更具体地,这涉及将选举确认发布到网络100的步骤605。选举确认103可以指示参与者105已选择被包括在区块中的交易,以及限定参与者唯一候选资格以证明其实际上已经当选的散列。选举确认可以使用参与者105的私人密钥签名,以避免被冒充。

仲裁者节点103接收并收集选举确认消息,并核实帐号、签名和选举证明。如果得到正确地核实,则仲裁者103可以将在选举确认消息中选择的交易包括在下一个发出的区块200中。在一些实施方式中,仲裁者103可以将来自所有当选的参与者105的交易合并到下一区块,而在其他实施方式中,仲裁者103可以选择给特定的参与者105享有特权的或主要的当选参与者的地位,从而让享有特权的参与者自己决定下一区块的内容。可以理解的是,在下一区块中,仲裁者103可以基于来自先前区块的当选的参与者105的量来调整难度,以确保代表参与者105当选的比例相对恒定。然后可以对所有后续的区块重复相同的过程。

在本实施方式中,选举确认消息由当选的参与者105在区块链网络100上发布。因此,仲裁者103将通过监视区块链网络100上的通信来接收选举确认消息。然而,应当理解,用于将选举确认消息进行通信的其他机制也是可能的。例如,在一些实施方式中,当参与者105确定其已经当选时,它可以经由与区块链网络100分离的渠道和/或使用不同的通信协议与与一个或更多个仲裁者103直接或间接地通信。例如,参与者105可以与由一个或更多个仲裁者103控制的网络服务器(或其他计算设备)通信,以便经由HTTP或其他通信协议发送其选举确认消息。一旦接收到消息,仲裁者103就可以确认参与者105的身份(例如,基于经由HTTP连接或经由另一通信协议获得的参与者105的IP),并在下一发出的区块200中使用选举确认消息的内容。在一些实施方式中,仲裁者103可以代表当选的参与者105将接收到的选举确认消息发布到区块链网络100。以这种方式,仲裁者103可以用作中心连接点,以促进经由参与者105和区块链网络100的通信。

图4B示出了选举证明过程400’的第二示例性实施方式。在本实施方式中,过程400’的总体步骤与上面描述的第一实施方式400相似,因为区块200由仲裁者103发出,并且根据成熟度,选举一个或更更多个公共参与者105来确定哪些交易要被包括在成熟的区块200中。当选的参与者105经由区块链网络100和/或经由另一渠道直接和/或间接地向仲裁者103提交选举确认消息300,对他们的身份进行确认,并且对他们所选择的交易进行提交。仲裁者103随后可以核实当选的参与者105的身份,并且由仲裁者103发出的随后的区块200可以确认由当选的参与者105提交的交易。本实施方式的特殊性在于,数学筛选程序用于限制可以针对任何给定的区块选出的当选的参与者105的数量。因此,将提供附加信息作为选举内容和选举确认的一部分。

更具体地说,如图2B所示,区块200的选举内容201可以包括难度范围和加密的随机数号码。可以理解的是,随机数号码可以由发出区块的实体(在这种情况下是仲裁者103)从难度范围中随机选择,并且可以基于网络正确地运行所需的平均信息量的水平来预定难度范围。因此,选举内容201可以指示生成随机数号码的范围以及使用对称加密密钥来加密的随机数号码,以便将来可以将随机数号码揭示。

选举内容201还可以包括一个或更多个筛选数学公式或一个或更多个程序性的脚本。这些脚本可以帮助确定参与者将需要遵循的筛选程序,以便成为用于选举的候选者。可以理解的是,筛选公式可以是具有复杂变化的任何数学公式,其可以允许缩小要被选举的参与者的数量。举例来说,该公式可以包括散列筛选程序机制,其中仲裁者发布128比特中的若干比特的数,其中参与者将需要在其散列中设置为“1”。例如,仲裁者可以指定在第3比特位置和第122比特位置具有1的散列的参与者具有资格当选,而其他所有参与者都将被淘汰。这可以继续进行此操作,以便随后的回合基于多少参与者应当选来进一步缩小选举池。在每一回合中指定的比特的数也可以被调整,以缩小当选的参与者的数量。可以理解的是,这只是许多不同的可能算法中的一种。在一些实施方式中,可以预定多个这样的算法并将这样的算法编程到区块链代码中,例如作为功能1、功能2、功能3等,并且仲裁者可以通过在选举内容201中指示功能来选择这些功能中的一个或更多个功能。在一些实施方式中,可以由仲裁者103创建新功能,并且可以将这些功能的规则指定为选举内容201的一部分。

可以理解的是,考虑到数学筛选程序的使用,参与者105可能需要执行附加的步骤以确认参与者是否已当选。图6B中示出了用于判断参与者105是否已经使用数学筛选程序而当选的示例性方法600’。在所示的实施方式中,方法600’包括确立唯一选举候选资格的第一步骤601。唯一候选资格可以由参与者105通过将区块链上的前一区块的唯一散列与其自身的唯一ID散列在一起来确立,从而创建新的唯一散列。可以理解的是,用于生成唯一候选资格的机制可以基于预定规则、在区块链上达成一致并且因此可以被不同地计算和/或可以合并不同的因子。

一旦已经计算出唯一选举候选资格,第二步骤603可以涉及判断参与者105是否有资格进行选举。这可以涉及子步骤602,该子步骤602对其唯一候选资格执行一系列程序性的筛选程序,以便确定选举资格。

如果参与者105确定它已被筛选程序脚本排除,则它尚未被选举,并且不需要采取进一步的动作。因此,参与者105可以等待下一个区块获得另一当选机会。如果参与者105确定落入筛选范围内,则可以将参与者105视为选举候选者并且可以进一步参与选举过程。在步骤604中,参与者105随后可以在选举内容中限定的范围内选择随机的号码,并且在步骤605中,将该随机的号码作为选举确认消息300的一部分与参与者105选择要被包括在区块中的交易一起提交,而散列限定参与者的唯一候选资格,以证明它实际上已经当选。选举确认可以使用参与者的私人密钥签名,以避免被冒充。

仲裁者103接收并收集来自所有主动提出的候选者的选举确认消息。然后,在步骤607中,仲裁者103确定在选举候选者中选择哪些参与者105作为当选参与者105。例如,这可以通过应用使用秘密随机数号码的随机数筛选程序来完成。可以理解的是,随机数筛选程序可以使用任何可适用的公式,并且该公式可以在选举内容中发布和/或在区块链代码中预定。例如,随机数筛选程序可以被配置成选择提交了最接近预定随机数号码或距离随机数号码最远的随机数号码的参与者105。一旦已确定了选出的参与者105,在步骤609中,仲裁者103可以发出下一个区块,在该区块中指示选出的候选者以及秘密随机数的解密密钥,以便网络100上的所有其他节点可以揭示隐藏的随机数并确认当选的候选者是有效的。

在一些实施方式中,选举确认可能受制于时间限制或宽限期,以鼓励参与者105在区块链上保持活跃,并收听新的选举以进行核查。例如,宽限期可以对应于在选举区块号码之后的预定义的区块号码,尽管可以理解,可以使用诸如经过时间之类的其他参数来限定宽限期。一旦宽限期过期,仲裁者103可以发布合并来自在宽限期期间接收到的选举确认的交易的区块。仲裁者103可以简单地忽略与已过宽限期的选举有关的任何选举确认。以这种方式,如果当选的参与者在当选后动作不够迅速,他们将错失选择交易的机会,并将失去潜在的奖金。

在一些情况下,例如,如果筛选过于激进,则可能不会在区块中选出任何参与者105。在这种情况下,仲裁者103可以在宣布选举回合无效之前等待预定的时间段。在一些实施方式中,当选举无效时,可以调整难度水平以反映这点,并且可以使用将触发新选举的新的调整后的选举内容来发出后续区块。在一些实施方式中,当选举无效时,仲裁者103可以承担决定将哪些交易包括在当前区块中,以确保交易继续在区块链上被确认并确保健康的生态系统。

通过示例的方式,图5示出了示例性过程500,该过程具有三个区块的成熟度时间和两个区块的展示宽限期。由仲裁者发出第一区块,区块1,其包括指定的难度水平和成熟度时间。这个区块的发出有效地宣告了一旦达到三个区块的成熟度时间,选举就会发生。随后发出区块2和区块3,并且由于未有参与者当选,因此降低了难度以进行补偿。当发出区块4时,区块1已经达到成熟度,并且执行选举。因此,当选的参与者提交他们的选举确认信息,该选举确认信息由仲裁者接收和确认。在此期间,发出区块5的难度增加,以说明已经选出的许多参与者。当发出区块6时,展示宽限期已经过期。因此,通过将由当选的参与者选择的选举结果和相应的交易包括在区块6中,从而巩固了区块链中的交易。由于展示宽限期的过期,任何与在区块4发起的选举有关的选举确认在随后都会被忽略。

在本文所描述的实施方式中,选举过程基本上是分散的,因为每个参与者105的任务都是核查参与者是否已经当选。然而,应当理解,在一些实施方式中,选举过程可以更加集中,例如,通过消除由每个当选的参与者105发送的选举确认消息来降低网络100上的噪音。在这样的实施方式中,仲裁者103可以对他们自己确定哪些参与者105将当选进行负责,并且在发出区块200时通知参与者105他们已经当选。可以理解的是,仲裁者103可以访问链上的所有帐号,并且可以通过对照链中当前存在的每个参与者105帐户检查选举条件本身来确定哪些参与者105已经当选。仲裁者103随后可以在下一区块200中包括当选的参与者105的列表,以通知参与者105他们已经当选。可选地,仲裁者103可以通过例如使用不同的通信协议在区块链网络100外部直接和/或间接地与当选的参与者105通信来通知当选的参与者105。参与者可以接受选举是有效的,因为他们自己可以确认他们满足选举条件。一旦参与者105已经被确认当选,它就可以通过在网络100上传送交易消息和/或经由网络100外部的另一渠道直接和/或间接地向仲裁者103传送消息来继续选择要包括在下一区块200中的交易。仲裁者103将接收交易消息,核实其来源,并将交易添加到将未来的区块200中以确认交易。可以理解的是,这种方法可以通过在经由网络消息请求当选的参与者105主动提出它们交易选择之前将当选的参与者105的列表减少到最小来极大地减少网络负载。这种方法有助于节省资源,特别是当网络上的参与者数量非常大时。

本选举证明方法的实施方式的特殊性在于,可以在任何给定的区块选举中选举多个参与者105,特别是在选举内容包括低难度和/或在网络100上有大量参与者105的情况下。可以理解的是,多个当选的参与者中的每一个参与者都可以具有自己的声音,每个可以选择单独的交易和/或潜在地重叠的交易以包括在给定的区块中。因此,该方法可以包括用于处理当选的参与者105的多重性的机制。例如,在一些实施方式中,该方法可以包括将各个选择的参与者105的多重性进行合并的步骤,使得所有选择的交易可以包括在下一区块中,其中每个当选的参与者105将视为共同决策者。然而,应当理解,可以以不同的方式处理参与者105的多重性,诸如在当前区块中给予特定当选的参与者105的排他权,同时允许其他当选的参与者105在即将到来的区块中具有排他权。

在一些实施方式中,可以通过在所有当选的参与者中选择主要当选的参与者来处理当选的参与者105的多重性。该选择可以例如由仲裁者103执行。可以理解的是,在接收到选举结果之后,仲裁者103可以使用该结果以在所有当选的参与者中选择单个主要当选的参与者。主要当选的参与者可以有机会对下一区块中包括哪些交易做出排他性决定。与选举过程一样,可以使用任何类型的筛选程序。例如,可以基于具有最高散列的参与者、持有资金最多的参与者、注册日期最早的参与者等来选择主要的当选参与者。在一些实施方式中,例如如图7所示,筛选程序可以基于哪个参与者具有最接近随机生成的号码的散列。这样的标准可以在最初的选举内容中公布,以便所有参与者都可以察觉到规则,并且仲裁者103可以对他们的选择负责。

举例来说,在使用主要当选的参与者的实施方式中,仲裁者103可以发布具有同时指定选举参数和主要选举参数的选举内容的区块。仲裁者103随后可以监视来自当选的参与者105的选举确认消息,并且分析/比较这些消息以确定哪一个成为唯一当选的参与者,从而确定下一区块的内容的唯一决策者。由于主要当选的参与者标准作为区块的一部分发布,因此区块链网络100上的每个参与者105将知道规则。此外,选举确认消息也可用于网络100上的所有参与者105,因此,所有参与者105将能够确认到底是谁当选,以及选择谁为主要当选的参与者。以这种方式,每个参与者105可以核查仲裁者103正在按照所定义的规则进行游戏,并且他们正在按照他们应该的方式进行表现。这可以使公共参与者105有能力确保仲裁者103对他们的决定坚持负责,并且可以使用区块链不变的账本作为证据来证明他们的不良行为。

在本文描述的实施方式中,网络100上的参与者105的子集当选以选择哪些交易将是下一区块的一部分。为了鼓励参与者105在区块链中参与并选择交易,选举过程可以对当选的参与者105的工作进行奖励,诸如经由奖金和/或交易费用来完成交易。这些奖金和/或交易费用可以是在网络100上经由交易交换的相同加密令牌的形式。提供此类奖励可以允许在区块链上进行“挖掘”。

奖金可以包括由网络100支付给当选的参与者105用于完成交易的奖励(即,通过创建新的加密令牌单元并将该新的加密令牌单元分配给当选的参与者105)。例如,可以在创建的每个新区块中指定和发布奖金,例如在选举内容部分中。交易费可以是由发起交易的参与者支付的奖励。例如,当参与者105向网络100广播交易请求时,可以指定并发布交易费用。可以理解的是,当选的参与者105可以选择优先处理提供更高交易费用的交易,以便使最高回报成为可能。

一旦仲裁者103从当选的参与者105接收到交易选择,仲裁者103就可以决定如何在当选的参与者105之间分割奖金和/或交易费用。在一些实施方式中,奖金可以在所有当选的参与者105之间平均地分割,而交易费用可以在选择相应交易的所有当的参与者105之间平均分担。在其他实施方式中,可以应用数学筛选来决定如何分配奖金和/或交易费用以及以什么比例分配。例如,如果因为交易AAA提供最高的交易费用,所以多个当选的参与者105选择交易AAA,则可以选择已经发送选择(例如基于时间戳)的第一参与者105来授予交易费用。可选地,可以选择已发送具有最接近随机号码的时间戳的选择的参与者105。可以理解的是,可以应用不同的筛选算法。筛选算法的参数可以例如在选举内容中指定和/或作为区块链协议的程序代码中的一般规则。

当前描述的方法的实施方式可以以相对小的处理能力来执行。与其他区块链方法相反,参与者105不需要执行计算密集型计算以被授予选择交易的特权。因此,在本方法中,处理能力和电力不是在区块链中参与的限制因子。因此,采用本方法的区块链网络的实施方式可以由诸如IOT设备之类的低功率设备组成。无论它们的处理能力如何,每个设备都可以得到公平和平等的机会来选择要包含在区块中的交易。

虽然该方法的这一方面可以是特别有利的,但是可以理解的是,单个实体(诸如单个强大的计算机)有可能在网络100上呈现为多个参与者105,并且因此具有更高的当选概率。实际上,取决于网络上全体参与者105的数量,如果单个实体在网络中所占比例足够大,则它就能够决定大部分交易或所有交易。因此,为了避免这种情况,本方法的一些实施方式可以包括用于引入一个或更多个限制因子的机制,例如,用于防止多个身份欺诈,即,单个实体或计算机在网络上表现为多个参与者105。

例如,在一些实施方式中,该方法可以包括用于注册和核实希望参与网络100的新参与者105的注册过程。该注册过程可以包括,例如,注册希望参与网络的新参与者105的IP地址,使得它们可以被唯一地标识,并且防止具有相同IP地址的另一实体注册不止一次。可以简单地忽略来自尚未注册的参与者105的在网络100上的消息,从而仅允许已经有效注册的参与者105参与网络100。

参考图8,根据实施方式示出了用于在网络上注册的示例性过程800。在所示的实施方式中,仲裁者节点103向网络的所有成员发布公共非对称加密的密钥801。仅仲裁者103将具有相应的私人密钥802,并且能够对使用公共密钥801加密的消息进行解密。当公共参与者105想要注册并且有资格参与选举过程时,它准备选举参与请求803,该选举参与请求可以包含其IP地址、随机的秘密号码(即,密码)和唯一帐号。然后可以使用仲裁者的公共密钥801对该信息进行加密,并将该信息作为加密消息805发布到网络100。

当它监视网络100上的消息时,仲裁者103将接收加密的消息805,并且可以使用其私人密钥802对其进行解密。仲裁者可以将其中包含的信息注册到候选注册中心或数据库807中,从而将公共参与者105注册为在消息805中指定的IP地址处进行选举的活跃参与者。因此,从该点向前,仲裁者将识别并处理从注册公共参与者105接收的选举确认消息。

尽管在本实施方式中,在区块链网络100上执行注册,但是可以理解,其他机制也是可能的。例如,在一些实施方式中,可以经由网络服务器或其他类型的注册服务器或计算设备来执行注册。在这样的实施方式中,参与者105可以经由HTTP和/或另一通信协议将注册请求发送到由仲裁者103控制的网络服务器或其他计算设备。注册请求可以包括唯一的帐户名/号码和密码。一旦接收到请求,仲裁者103可以利用HTTP连接或经由另一通信协议来获得参与者的IP地址,并将注册信息推送到包括候选注册表或数据库807的后端服务器。该信息随后可用于识别和核实来自区块链网络100上的参与者105的通信。还将理解的是,该信息可以用于通过其它连接和协议直接和/或间接地与参与者105通信,并在这种通信期间核实参与者的身份。

在一些实施方式中,传送选举确认消息的当选的参与者的IP地址可以在将所选择的交易包括在区块中之前被确认,从而将所选择的交易巩固在区块链中。例如,网络100可以包括IP核实节点107,其对应于受信任的节点,该受信任的节点的功能是确认当选的参与者105的合法性。可以理解的是,IP核实节点107可以是不同的节点,或者IP核实节点107的功能可以集成到仲裁者节点103中。IP核实节点107可以被配置成经由合法性核实消息809在其对应的注册IP地址处与参与者105联系。这种通信可以在区块链网络100之外使用不同的通信协议来完成。合法性核实消息809可以包括由参与者105注册的秘密号码。一旦接收到核实消息809,参与者105就可以核查秘密号码,并且如果其是正确的,则参与者105可以用消息来进行回应,该消息包括其当前用于选举的帐号。如果IP核实节点107接收到与在与IP地址相关联的候选者注册表807中注册的帐号相对应的帐号,则可以将参与者105确认为有效。来自确认为有效的参与者105的交易选择可以被包括在随后的区块中,而可以忽略来自未通过核实的参与者105的交易。

可以理解的是,可以根据区块链的功能请求以不同的频率和/或间隔执行上述核实过程。例如,在一些实施方式中,每次仲裁者103接收到选举确认消息时,可以执行核实过程。在其他实施方式中,核实过程可以以规则和/或随机间隔执行。在一些实施方式中,当新参与者105在网络100上注册为选举候选者时,可以执行核实过程。

可以进一步理解的是,以这种方式核实参与者105可以确保每个IP地址只有一个参与者105或帐户。因此,IP地址用作限制因子。由于难以获得这样的地址,它可以有效地限制一个实体将自己展现为许多的参与者或选举的候选者的能力。尽管IP地址已被描述为潜在的限制因子,但是可以理解的是,也可以使用其他限制因子,并且可以以类似的方式来核实参与者105。例如,设备的MAC地址可以用于识别参与者105、和/或由中央权威机构发出的秘密号码和/或上述因子的组合。

在本文所描述的实施方式中,选举过程在基本上集中的模型上操作,因为需要受信任的仲裁者103来核实选举确认并确立区块中包括哪些信息。应当理解,在一些实施方式中,选举过程可以在基本上分散的模型上操作,例如在没有任何仲裁者节点103的情况下操作。

例如,在一些实施方式中,创始块中的第一次选举可以包括非常容易的难度因子。在将在区块链开始时展示自己的多个当选的参与者中,可以应用筛选程序来在该批中仅选择一个主要当选的参与者。例如,多个当选的参与者可以广播它们当选的候选资格,使得每个其他参与者都可以以病毒的方式接受它。通过应用筛选程序,所有参与者随后都可以识别出主要当选的参与者。例如,可以在所有当选的参与者中将最小的参与者散列选择作为指定的主要当选的参与者。每个参与者可以单独应用筛选程序来确定其认为谁是当选的参与者,并且可以基于网络上所有参与者达成的共识(即,网络上51%或更多的参与者)来指定当选的参与者。然后,主要当选的参与者可以选择下一区块的内容,并为随后的选举设置条件。当为随后的选举设定条件时,主要当选的参与者可以基于先前的选举提供新的拟议难度因子,以确保选择的网络百分比在当选的候选者中是公平的代表。网络上的其他参与者可以基于他们自己对先前选举的评估来核实拟议的难度因子,以确保其位于预定范围内。如果其他参与者拒绝拟议的难度,则可以使用筛选程序(例如,通过选择具有第二小的散列的当选的参与者)来选择另一主要的当选的参与者。这可以持续直到以共识方式选择出有效当选的参与者为止,即,当网络的大多数人同意当选的参与者选择了落在预定范围内的有效难度水平。一旦最终选择了有效的参与者,就可以接受该区块,并且该过程可以针对未来的区块继续进行。在一些实施方式中,如果在区块期间没有选出任何参与者,则最后的主要当选的参与者可以发出具有经调整难度的空区块,该难度将触发新的选举。新的选举可以确定选出新的主要当选的参与者,并且该过程可以继续正常用于后续的区块。

尽管本发明的特定优点和应用已在本文中明确描述,但是当阅读本公开时,其他优点和应用对于本领域技术人员来说可能变得显而易见。本发明不限于所描述的实施方式和应用,并且本领域的技术人员将理解,在不脱离本发明的范围的情况下可以进行许多修改。

相关技术
  • 在区块链上进行选举的证明的方法和系统
  • 一种对区块链系统中的区块进行工作量证明的方法及系统
技术分类

06120112636527