首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】用于在适度限制的区块链上的公共选举的方法及系统_万事达卡国际公司_201910024922.9 

申请/专利权人:万事达卡国际公司

申请日:2019-01-11

公开(公告)日:2024-05-24

公开(公告)号:CN110032873B

主分类号:G06F21/60

分类号:G06F21/60;G06F21/64;G07C13/00;H04L9/08

优先权:["20180111 US 15/868,515"]

专利状态码:有效-授权

法律状态:2024.05.24#授权;2019.08.13#实质审查的生效;2019.07.19#公开

摘要:本公开题为用于在适度限制的区块链上的公共选举的方法及系统。一种用于在公共区块链中处理投票的方法包括:生成选举参考和候选人参考;生成由主私钥和主公钥组成的非对称密码密钥对;生成登记块以添加到区块链,所述区块链包括选举参考、候选人参考和主公钥;将登记块传输到与区块链相关联的节点;接收多个投票消息,每个包括投票和选举参考,其中所述投票包括选民参考和至少一个候选人参考;生成一个或多个投票块以添加到区块链,所述区块链包括接收的投票;以及将每个生成的投票块传输到与区块链相关联的节点。

主权项:1.一种用于在公共区块链中处理投票的方法,包括:生成与当前选举相关联的非对称密码密钥对,由主私钥和主公钥组成的第一非对称密码密钥对和由验证私钥和验证公钥组成的第二非对称密码密钥对;使用主私钥生成多个密钥组件;存储所述多个密钥组件;在存储所述多个密钥组件之后和在电子传输一个或多个登记块之前,删除所述主私钥;生成登记块以添加到区块链,其中所述登记块由块头、选举参考、两个或更多个候选人参考以及当前选举的主公钥组成;将生成的登记块电子地传输到与所述区块链相关联的一个或多个节点;接收多个投票消息,每个投票消息包括用当前选举的主公钥加密的数据,所加密的数据至少由选民的投票、所述选举参考、选民的选民参考和两个或更多个候选人参考之一组成;在接收到所述多个投票消息之后,使用所述多个密钥组件来重新生成所述主私钥;生成至少一个投票块以添加到所述区块链,其中所述至少一个投票块中的每个由块头和一个或多个第二数据值组成,其中所述至少一个投票块中的所述一个或多个第二数据值包括接收的投票消息中的加密投票;将每个生成的投票块电子地传输到与所述区块链相关联的一个或多个节点;在选举的投票已结束之后,使用当前选举的重新生成的主私钥解密至少一个投票块中的加密投票,以及将每个解密的投票和相关联的选举参考、验证公钥以及使用验证私钥在解密的投票上生成的数字签名发布到区块链,在所述至少一个投票块已被添加到区块链之后,从选民的选民设备接收核实消息,所述核实消息包括所述选举参考、选民的投票公钥、被添加到该区块链的最近块的块参考值、以及被添加到区块链的最近块参考的数字签名,该数字签名是使用选民的投票私钥生成的;和使用选民的投票公钥验证数字签名。

全文数据:用于在适度限制的区块链上的公共选举的方法及系统技术领域本公开涉及在公共区块链中投票的处理,特别涉及使用适度限制的moderated区块链来提供在公共选举中投票,所述公共选举在保持个人投票匿名性的同时维持关于投票和投票计数的透明度。背景技术公共选举是政府的基石。选举在许多司法管辖区定期举行,并可能导致从数百到数千万的任何数量的投票,所有所述投票常常是在单日的几个小时跨度内必须进行、核实和计数。传统上,投票是通过纸质选票进行的,然后所述纸质选票必须用手进行计数,需要相当多的个人。最终,机械机器被制造以辅助纸质选票的计数。然而,这些仍然必须由个人操作,并且结果由授权人员列表,并且在机械的操作和选票的标记中易受故障和混乱的影响。一些司法管辖区已试图使用计算系统来提供电子投票,所述电子投票可以在接收所述投票时自动将投票进行列表并提供及时的结果,而不需要相当多的人员。然而,这样的系统需要在每个投票位置安装单独的计算设备,这可能会很昂贵,并且已经屡次发现不安全并且容易遭受黑客和其他操纵。结果,尽管涉及大量的时间和资源成本,许多司法管辖区由于纸质选票的可靠性和安全性继续使用它们。一些司法管辖区利用了区块链来为选举公布投票。这样的方法已涉及使用被设计用于以传统方式转移数字货币的区块链,其中选民在他们希望投票支持的候选人的“盒”区块链地址中放置“硬币”数字货币的单位。这为选民提供能力以确保他们的投票被正确投出了,并使得任何个人或实体能够对投票进行计数以确认选举的结果。然而,为了保持可信,传统的区块链不断地更新,并且在整个过程中公开地可用,这意味着可以在进行投票时对投票计数。另外,每个选民必须被单独登记并提供货币单位,需要在举行选举之前进行大量处理,并冒着在配置过程中暴露选民身份的风险。因此,传统的区块链可以提供关于投票篡改的安全性,但不能维持由传统投票方法提供的选民匿名性和总体结果的保护。因此,需要技术解决方案,以利用区块链来改进公共选举中的投票,所述区块链可以提供选民的完全匿名性并且在投票已结束之前不能列表投票,同时维持验证个人投票和总体结果的能力以及由区块链提供的防止选举篡改的安全性。发明内容本公开提供用于在公共区块链中处理投票的系统和方法的描述。公共区块链用于确保选举可被审核并且投票可被正确地列表,而不可能发生投票篡改,并且其中投票能够核实他们的个人投票,以确保其被计数用于适当候选人。区块链中的节点在传统的区块链机制之上利用加密,以确保投票不能被提前计数,同时仍然被公布到区块链,以在整个过程和随后的验证中提供透明性。另外,选民使用密码上唯一的参考而不需要转移任何货币进行投票可以提供选民的完全匿名性,同时仍然使得选民能够被澄清cleared作为授权选民,并能够在整个过程中跟踪他们的个人投票。因此,本文讨论的方法和系统可以通过本文讨论的利用额外密码密钥对和密码上唯一的参考值的专门配置来提供在投票中使用区块链的所有益处,但是没有传统区块链的使用的任何负面影响。用于处理公共区块链中的投票的方法包括:由处理服务器的生成模块生成选举参考和两个或更多个候选人参考;由处理服务器的加密模块生成由主私钥和主公钥组成的非对称密码密钥对;由处理服务器的生成模块生成至少一个登记块以添加到区块链,其中所述至少一个登记块中的每一个由块头和一个或多个数据值组成,其中在所述至少一个登记块中的所述一个或多个数据值包括选举参考、两个或更多个候选人参考以及主公钥;由处理服务器的传输设备将每个生成的登记块电子地传输到与区块链相关联的一个或多个节点;由处理服务器的接收设备接收多个投票消息,其中每个投票消息至少包括投票和选举参考,其中所述投票至少包括选民参考和一个或多个候选人参考中的一个;由处理服务器的生成模块生成用于添加到区块链的至少一个投票块,其中所述至少一个投票块中的每一个由块头和一个或多个数据值组成,其中所述至少一个投票块中的所述一个或多个数据值包括接收的投票中的每一个;以及由处理服务器的传输设备将每个生成的投票块电子地传输到与区块链相关联的一个或多个节点。用于在公共区块链中处理投票的系统包括:处理服务器的接收设备和传输设备;处理服务器的生成模块,所述生成模块配置为生成选举参考和两个或更多个候选人参考;以及处理服务器的加密模块,所述加密模块配置为加密由主私钥和主公钥组成的非对称密码密钥对,其中所述处理服务器的所述生成模块还配置为生成至少一个登记块以添加到区块链,其中所述至少一个登记块中的每一个由块头和一个或多个数据值组成,其中所述至少一个登记块中的所述一个或多个数据值包括选举参考、两个或更多个候选人参考以及主公钥,处理服务器的传输设备配置为将每个生成的登记块电子地传输到与区块链相关联的一个或多个节点,处理服务器的接收设备配置为接收多个投票消息,其中每个投票消息至少包括投票和选举参考,其中所述投票至少包括选民参考和一个或多个候选人参考中的一个,处理服务器的生成模块进一步配置为生成至少一个投票块以添加到区块链,其中所述至少一个投票块中的每一个由块头和一个或多个数据值组成,其中所述至少一个投票块中的所述一个或多个数据值包括接收的投票中的每一个,并且所述处理服务器的所述传输设备进一步配置为将每个生成的投票块电子地传输到与区块链相关联的一个或多个节点。附图说明当结合附图阅读时,从示例性实施例的以下详细描述中可以最好地理解本公开的范围。附图中包括以下的图:图1是说明根据示例性实施例的用于使用适度限制的区块链处理用于公共选举的投票的高级系统架构的框图;图2是说明根据示例性实施例的用于处理针对适度限制的区块链的投票的图1的系统的处理服务器的框图;图3是说明根据示例性实施例的用于在图1的系统中使用适度限制的区块链配置公共选举和选民的登记的过程的流程图;图4是说明根据示例性实施例的用于在图1的系统中处理适度限制的区块链上的公共选举中的投票的过程的流程图;图5是说明根据示例性实施例的用于处理公共区块链中的投票的示例性方法的流程图;图6是说明根据示例性实施例的计算机系统架构的框图。根据下文提供的详细描述,本公开的适用性的其他领域将变得显而易见。应当理解,示例性实施例的详细描述仅旨在用于说明目的,并且因此并不旨在必然限制公开的范围。具体实施方式术语表区块链-基于区块链的货币的所有交易的公共分类帐ledger。一个或多个计算设备可以包括区块链网络,所述区块链网络可配置为处理和记录作为区块链中的块的部分的交易。一旦块完成,所述块就添加到区块链并且由此更新交易记录。在许多情况下,区块链可以是按时间顺序的交易的分类账,或者可以以可适于由区块链网络使用的任何其他顺序呈现。在一些配置中,区块链中记录的交易可以包括目的地地址和货币金额,这样区块链记录多少货币可归属于特定地址。在一些情况下,交易是财务的,而其他交易不是财务的,或者可包括额外的或不同的信息,诸如源地址、时间戳等等。在一些实施例中,区块链还可以或可替代地包括几乎任何类型的作为交易的形式的数据,所述数据是或者需要放置在分布式数据库中,所述分布式数据库维持不断增长的数据记录的列表,所述数据记录被硬化harden以防止甚至由其操作员的篡改和修正,并且所述区块链可以由区块链网络通过工作证明和或与所述区块链相关联的任何其他合适的验证技术来确认和验证。在一些情况下,关于给定交易的数据可以进一步包括附加到交易数据的不直接是交易的部分的额外数据。在一些情况下,区块链中这样的数据的包含可构成交易。在这样的情况下,区块链可能不直接与特定的数字的、虚拟的、法定的或其他类型的货币相关联。用于适度限制的区块链上的公共选举的系统图1说明用于使用适度限制区块链进行的公共选举,以及利用多个密码密钥对和密码上唯一的参考值来处理其上的投票的系统100。系统100可以包括处理服务器102。下文更详细地讨论的处理服务器102可以是多个具体配置的计算系统之一,被配置为作为用于公共选举的区块链的适度限制器而操作,所述处理服务器102可配置为对添加到区块链的所有块包括用于候选人的登记、投票的投出和列表等等的块数字地签名。系统100可以包括区块链网络108。区块链网络108可以由多个节点构成,每个所述节点可配置为使用合适的验证机制诸如工作的证明来生成和验证块,以向区块链添加块。在系统100中,处理服务器102可配置为对块数字地签名,所述块在加入区块链之前由节点生成并验证。在一些实施例中,处理服务器102可以是节点。在其他实施例中,区块链网络108可以完全由作为节点的处理服务器102组成。换言之,区块链网络108中的每个节点可配置为在被添加到区块链之前对块数字地签名。在选举开始之前,处理服务器102可以首先生成用于在选举中使用的值。在一些实施例中,处理服务器102或区块链网络108中的节点可以创建用于选举中的新区块链。在其他实施例中,可以使用现有的区块链,其中与新选举相关的被添加到区块链的所有条目可以包括与选举相关联的特定参考值。这样的参考值在本文中可称为选举参考。在一些情况下,选举参考可以是由处理服务器102生成的散列值,所述散列值可以相对用于任何其他选举的参考值来说在密码上唯一,诸如以确保投票和与给定选举有关的其他条目没有冲突。在一些这样的情况下,通过对与选举相关联的特定数据集合诸如选举中候选人的参考进行散列可以生成选举参考,下文将更详细地讨论。在一些情况下,选举参考仍然可用于使用新区块链的情况,诸如以容纳额外的选举或以其他方式确保通过适度限制区块链执行的投票和其他功能的精确度。也可以在选举前为在选举中可以投票的候选人中的每一个生成参考值。在一些实施例中,针对候选人的参考值可以是密码上唯一的散列值,以防止在相同或其他选举中与其他候选人的冲突。在一些例子中,候选人参考可以相当大例如64,以防止冲突并且还以防止投票错误例如以避免在给定选举中由于单个数位的打字错误而对一个候选人而不是另一个候选人的意外投票。一旦生成了选举参考和候选人参考,用于选举的第一块就可以使用合适的块生成和验证机制例如由处理服务器102或区块链网络108中的节点,如适用生成,并添加到区块链。在正在使用新区块链的情况下,块可以是如本领域技术人员已知的创世genesis块。创世块可以由块头、选举参考和候选人参考组成。在一些情况下,候选人参考可能伴有识别与每个参考相关联的候选人的名称或其他数据。在一些情况下,块中的数据值还可以包括处理服务器102的地址,诸如用于由其他系统在与处理服务器102通信中使用。块头可以至少包括时间戳和对块中伴随块头的数据的参考,本文称为数据参考值。在示例性实施例中,数据参考值可以是通过将一个或多个散列算法应用于伴随数据诸如创世块的选举参考和主公钥而生成的散列值。在一些情况下,数据参考值可以是伴随数据的Merkle树的根。如果块不是创世块,并且对于区块链中的所有后续块,块头还可以包括块参考值,所述块参考值可以是对添加到区块链的先前块例如由时间戳确定的的参考,诸如先前块的块头的散列值。注意到,块参考值可以是指区块链中的前块,即使所述前块与不同的选举相关。在区块链用于多个选举的情况下,每个块可以包括针对选举的选举参考作为块或块的块头中的数据值之一。数据参考值和块参考值的使用可以确保区块链的不变性,因为区块链上例如投票或候选人参考的单个数据值的修改将需要修改该块的数据参考值,以及然后修改后续添加的块的块参考值,以及然后修改下一个添加的块中的块参考值,依次类推通过整个区块链,这必须在添加新块之前在区块链中的每个单个节点处执行,由于对处理和网络通信的限制这可能是不可能的。一旦针对选举的第一个块被添加到了区块链,选民104就可以被登记以投票。每个选民104可以拥有或以其他方式访问选民设备106,选民104将使用所述选民设备106来投出他或她的选票以用于选举。选民设备106可以是具体配置为执行本文讨论的功能的任何计算设备,例如具体配置的台式计算机、膝上型计算机、笔记本计算机、平板计算机、蜂窝电话、智能电话、智能手表、智能电视、可穿戴计算设备、可植入计算设备等等。选民104可以使用选民设备106生成投票密钥对,所述投票密钥对可以是由投票私钥和投票公钥组成的密码密钥对。针对选民104的投票地址可以使用与该选民104相关联的投票公钥或者由选民设备106或其他系统诸如处理服务器102或者审核实体110来生成。审核实体110可以是用于在系统100中执行额外功能以协助选举的额外计算系统。选民的投票地址可以提交到处理服务器102以添加到区块链。在一些实施例中,投票地址可以使用Base58check编码来生成。在示例性实施例中,选民104的身份和选民104的投票权利可以在区块链上登记选民的投票地址之前得到核实。在这样的实施例中,审核实体110可由选民104例如经由投票设备108提供信息以核实选民的身份和投票权利。例如,审核实体110可以是政府机构,所述政府机构可以使用合适的身份核实机制核实选民104是在选举的司法管辖区内的登记的选民并且是他们所声称的人。审核实体110可以使用任何合适的通信网络和方法来将选民的成功验证通知到处理服务器102。一旦选民的投票权利得到了核实,他们的登记就可以被添加到区块链。可以生成新块,所述新块包括用于选民的登记的数据值,所述数据值可以至少包括选举参考和选民的投票地址。在一些实施例中,选民登记还可以包括适于在选举中使用的额外数据,诸如审核实体110可能需要的投票凭据、委托签名等等。处理服务器102例如或者区块链网络108中的节点,如果适用可以继续接收选民登记,所述选民登记可以相应地添加到区块链。在一些情况下,可以以预确定的时间间隔例如每10分钟添加新块。在其他情况下,在接收登记时可以添加新块。在一些实施例中,新选民登记可以在选举之前的任何时间由处理服务器102继续接收,但是只能直到在选举开始之前预确定的为止被接受。当将具有选民登记的新块添加到区块链时,每个选民104可以能够通过查看区块链来核实它们被登记以投票。由于区块链是公开可用的,所以选民104可以用针对选举的选举参考查看块及其中包括的数据值,并识别他们的投票地址。这可以向选民104指示他们已经成功地登记以在该选举中投票。通过利用由选民104自己使用他们自己的设备而生成的地址,通过消除对为每个单个选民104生成地址或其他标识符并分发它们的集中式系统的需要,可以比传统投票系统中更快地执行登记。另外,通过允许选民104使用他们自己的投票设备106,可以在不需要分布在整个管辖范围内的投票位置处的计算系统的情况下执行选举。事实上,如下文更详细讨论的,系统100可以使用本文讨论的方法和系统来完全消除对投票位置的需要。当计划开始投票时,处理服务器102可以生成选举主密钥对。选举主密钥对可以是由处理服务器102使用合适的密钥生成机制生成的密码密钥对,所述密码密钥对由主私钥和对应主公钥组成。在一些实施例中,主密钥对可以利用合适的密钥生成算法,使得使用主公钥加密的消息可以通过主私钥解密,而不需要知道用于加密的主公钥。可以生成至少包括选举参考和主公钥的新的数据值,以在投票开始时或之前添加到区块链,以供选民104在选举中用以投票。在示例性实施例中,处理服务器102可以在数据值添加到区块链之前对其数字地签名。在一些情况下,处理服务器102可以使用主私钥来生成数字签名,作为处理服务器102对选举的适度限制的部分。在其他情况下,处理服务器102可以生成由验证私钥和验证公钥组成的额外密码密钥对,本文称为验证密钥对。在这样的情况下,处理服务器102可以使用验证私钥来对其贡献给区块链的用于选举的所有数据值签名。验证公钥可以与主公钥一起被包括,然后其可以由选民104和审核实体110使用来核实添加到区块链的数据值的数字签名,以核实它们是由授权的适度限制器例如处理服务器102作出的。在一些实施例中,处理服务器102可配置为一旦主公钥已被公布到区块链就删除主私钥。在这样的实施例中,这样做可以确保在选举结束之前投票不能被解密。在这些实施例中,处理服务器102可配置为从主私钥生成一个或多个组件,所述组件可用于稍后重建密钥。在一些情况下,处理服务器102可以将单独密钥组件分配给单独审核实体110,以防止任何实体或系统重新创建主私钥的能力直到选举已结束。在这些情况下,每个审核实体110可以具有其自己的关联密码密钥对,本文称为审核密钥对,所述审核密钥对由审核私钥和审核公钥组成,并且处理服务器102可以用其审核公钥加密正在分配到每个审核实体110的密钥组件,并且可以将审核公钥和对应加密密钥组件的对与主公钥一起公布到区块链。审核实体110可以使用其审核私钥来解密密钥组件,并且可以使用与处理服务器102相关联的公钥诸如验证公钥或由处理服务器102生成的另一密码密钥对的公钥来重新加密密钥组件。重新加密的密钥组件可以在选举已结束后例如直接地或通过区块链上的公布返回到处理服务器102,其中所述处理服务器102可以对密钥组件进行解密并重新创建主私钥。关于将私钥分解为组件、其分配以及在重新创建私钥中的使用的额外信息可以在2016年1月1日由StevenC.Davis提交的题为“MethodandSystemforDistributedCryptographicKeyProvisioningandStorageviaEllipticCurveCryptography”的美国专利申请号15001775中找到,本文通过参考将其全部合并于此。在投票开始并且主公钥已公布到区块链之后,选民104可以开始投放place其投票。选民104可以通过在提交具有其投票的用于被包括在区块链上的新数据值来投放他们的投票。选民104使用其投票设备104,可以使用先前已发布到区块链的他们的候选人参考来选择候选人。选民104还可以生成针对他们的投票的他们自己的参考值本文称为选民参考以与他们的投票一起被包括。选民参考可以是可由选民104使用来识别他们的投票以确保他们的投票被作出并对正确候选人计数的任何值。在一些情况下,选民104可以手动选择选民参考。在其他情况下,选民设备106可配置为生成选民参考,所述选民参考可能相对其他选民参考是密码上唯一的,以确保冲突。在一个示例中,选民设备106可以生成密码密钥对,使用公钥来生成选民参考,并且然后可以抛弃密钥。一旦生成了选民参考并选择了候选人一个或多个,选民设备106就可以使用主公钥加密数据。在一些情况下,可以在加密之前在数据中包括随机数nonce作为进一步的安全措施。然后,选民设备106可以将加密的投票以及它属于的选举参考提交到处理服务器102、审核实体110或区块链网络108中的节点。然后可以将加密的投票和选举参考作为数据值发布到添加到区块链的新块中。选民104可以通过识别区块链上的加密的投票来确保接收了他们的投票。在一些实施例中,一旦选民104投放了其投票,在公布到区块链的加密的投票不能归因于他们时,他们就可以提交核实以核实他们已投票。在这样的实施例中,一旦选民104核实其加密的投票被接收并添加到区块链,选民104可以向处理服务器102发出核实消息,所述核实消息包括选举参考、他们的投票公钥、最近添加到区块链的块中包括的块参考值以及使用其投票私钥生成的块参考值的数字签名。然后,处理服务器102可以使用投票公钥验证数字签名,并将验证消息发布到区块链。通过使用块参考值,可以确保选民104验证其投票的时间被登记并且不可变。另外,通过使用针对最近块的块参考值,而不是与他们的加密的投票相关联的任何数据或者必然地包括他们的加密的投票的块的块参考值,防止任何实体形式能够识别什么加密投票与选民104相关联。换言之,区块链随后将包括各种加密的投票以及来自选民104的对他们已投票的各种验证,但是没有任何能力将核实的选民与他们的投票进行匹配。一旦投票结束了,处理服务器102就可以解密投票。在删除了主私钥的情况下,处理服务器102可以使用本文讨论的方法重新创建主私钥。处理服务器102可以识别发布到区块链的所有加密的投票,并且在示例性实施例中,可以随机地洗牌shuffle加密的投票的列表,以进一步禁止将投票与选民104匹配的能力。处理服务器102可以使用主私钥对每个加密的投票进行解密。然后,处理服务器102可以将解密的投票连同选举参考以及包括验证公钥和使用验证私钥在解密的投票上生成的数字签名如果可用一起发布到区块链。一旦解密的投票已发布到区块链,任何利害关系方都可以对投票进行计数。任何对选举结果感兴趣的实体都可以使用所包括的公钥来验证与解密的投票一起公布的数字签名,并且可以通过识别包括在每个解密的投票中的各自的候选人参考来列表对每个候选人的投票。每个选民104也可以能够通过利用他们的选民参考来核实他们的投票被计数了并且用于正确的候选人。选民104可识别包括其选民参考的解密的投票,并识别其中包括的候选人参考,以确保他们的投票准确无误地作出并且未被篡改。在一些实施例中,处理服务器102可以列表针对每个候选人参考的投票,并且可以向用于选举的区块链进行包括选举参考和结果例如对每个候选人参考的投票的数量的最后公布。然后,处理服务器102可以删除用于该选举的主密钥对和验证密钥对。如本文讨论的,处理服务器102可以能够通过使用选举参考来对用于多个选举包括用于同时进行的多个选举的公共区块链上的投票执行适度限制。即使大量选举在利用相同的区块链并且由相同的处理服务器一个或多个102在进行适度限制,选举参考也可以使得所有投票能够被正确地计数用于正确选举。另外,密码学上唯一候选人参考的使用可以进一步防止对不正确的候选人或在其他选举中的候选人的投票的误计数,而密码学上唯一的选民参考可以使得选民104能够在区块链中的任何选举中容易地找到他们的投票。因此,本文讨论的方法和系统提供使用公共区块链的投票,所述使用公共区块链的投票与传统纸质和电子投票相比是重大的技术改进,并且与先前在公共选举中使用区块链的尝试相比有重大改进。使用主密钥对来加密投票以及如本文所讨论的利用所述主密钥对的方式防止任何实体在正在举行选举时能够解密投票并且列表结果。使用选民参考和本文讨论的用于选民验证的方法还可以防止任何实体将选民104与投票匹配,从而完全保护选民104匿名性。本文讨论的方法和系统也可以使用最少数量的处理服务器102来实现,从而减少与通过电子方法举行公共选举相关联的成本和处理功率。而且,本文讨论的方法允许选民104使用个人选民设备106投出投票,同时维持投票过程的完全安全性,消除对投票位置的需要和向其部署终端和人员的成本。因此,本文讨论的方法和系统可以实现传统投票方法的每个好处,而同时提供速度和效率的显著提高、成本和资源消耗的降低,而没有任何负面影响。处理服务器图2说明系统100中处理服务器102的实施例。对于本领域技术人员将显而易见的是,图2中说明的处理服务器102的实施例仅作为说明而提供,并且对于适于执行本文讨论的功能的处理服务器102的所有可能配置可能并非详尽无遗。例如,图6中说明的并且下文更详细地讨论的计算机系统600可以是处理服务器102的合适配置。处理服务器102可以包括接收设备202。接收设备202可配置为经由一个或多个网络协议通过一个或多个网络接收数据。在一些情况下,接收设备202可配置为通过一种或多种通信方法诸如射频、局域网、无线区域网、蜂窝通信网络、蓝牙、互联网等等从区块链网络108中的节点、选民设备106、审核实体110、其他处理服务器102以及其他系统和实体接收数据。在一些实施例中,接收设备202可以由多个设备组成,诸如用于通过不同网络接收数据的不同接收设备,诸如用于通过局域网接收数据的第一接收设备和用于通过互联网接收数据的第二接收设备。接收设备202可以接收电子地传输的数据信号,其中数据可以在数据信号上叠加或以其他方式在数据信号上编码,并且通过由接收设备202接收数据信号来解码、解析、读取或以其他方式获得。在一些情况下,接收设备202可以包括解析模块,用于解析所接收的数据信号以获得叠加在其上的数据。例如,接收设备202可以包括解析器程序,所述解析器程序配置为接收数据信号并将所接收的数据信号转换为用于由处理设备执行的功能的可用输入,以实行本文描述的方法和系统。接收设备202可配置为接收由选民设备106电子地传输的数据信号,所述数据信号可以与登记消息、加密的投票或验证消息叠加或以其他方式用登记消息、加密的投票或验证消息编码。接收设备202还可用接收由审核实体电子地传输的数据信号,所述数据信号可以在选民权利的确认、来自选民设备106的消息、加密的密钥部件或与之相关联的消息上叠加或以其他方式用其编码,所述来自选民设备106的消息经由审核实体110来核实和转发。接收设备202还可用配置为接收来自区块链网络108中的节点和或其他处理服务器102的数据信号,所述数据信号与用于验证的新块、经验证的块或要包括在新生成的块中的数据叠加,或以其他方式用其编码。处理服务器102还可以包括通信模块204。通信模块204可配置为在处理服务器102的模块、引擎、数据库、存储器和其他组件之间传输数据,以用于执行本文讨论的功能。通信模块204可以由一种或多种通信类型组成,并且利用用于计算设备内的通信的各种通信方法。例如,通信模块204可以由总线、接触针连接器、电线等等组成。在一些实施例中,通信模块204还可配置为在处理服务器102的内部组件与处理服务器102的外部组件之间通信,外部组件诸如是外部地连接的数据库、显示设备、输入设备等等。处理服务器102还可以包括处理设备。处理设备可配置为执行本文讨论的处理服务器102的功能,如对于本领域技术人员将显而易见的。在一些实施例中,处理设备可以包括多个引擎和或模块,并且或者由多个引擎和或模块组成,所述引擎和或模块诸如查询模块214、生成模块216、加密模块218、散列模块220等等专门配置为执行处理设备的一个或多个功能。如本文使用的,术语“模块”可以是特别编程为接收输入、使用输入执行一个或多个过程并提供输出的软件或硬件。基于本公开,由各种模块执行的输入、输出和过程对于本领域技术人员将显而易见。在一些实施例中,处理服务器102可以包括选民数据库206。选民数据库206可配置为使用合适的数据存储格式和模式来存储多个选民简档208。选民数据库206可以是关系数据库,所述关系数据库利用结构化查询语言来存储、识别、修改、更新、访问等等存储在所述关系数据库中的结构化数据集合。每个选民简档208可以是配置为存储与选民104相关的数据的结构化数据集合。选民简档208可以包括例如选民识别数据,所述选民识别数据可用于核实选民的身份和在一个或多个选举中投票的权利,以用于如本文讨论的选民登记过程。在一些情况下,选民简档208可以配置为存储与一个或多个选举中的选民登记相关联的数据,诸如提供的选民地址和投票公钥。处理服务器102可以包括查询模块214。查询模块214可配置为对数据库执行查询以识别信息。查询模块214可以接收一个或多个数据值或查询字符串,并且可以对指示的数据库诸如选民数据库206基于其执行查询字符串,以识别存储在所述指示的数据库中的信息。然后,必要时查询模块214可以将识别的信息输出到处理服务器102的适当的引擎或模块。例如,查询模块214可以对选民数据库206执行查询,以识别与所接收的选民登记消息有关的选民简档206,所述所接收的选民登记消息用于核实选民的身份和权利。查询模块214还可以对区块链数据执行查询以识别包括在其中的数据值,诸如以识别用于投票的解密和列表的加密的投票或者以识别用于重新组成主私钥的加密的密钥组件。处理服务器102还可以包括生成模块216。生成模块216可配置为生成数据以由处理服务器102在执行本文讨论的功能时使用。生成模块216可以接收作为输入的指令,可以基于指令生成数据,并且可以将生成的数据输出到处理服务器102的另一模块或引擎。例如,生成模块216可配置为生成用于区块链中的验证和存储的块头和新块。生成模块216还可配置为在选举之前生成用于提供给审核实体110的主私钥的密钥组件以及使用密钥组件生成主私钥。处理服务器102还可以包括加密模块218。加密模块218可配置为加密数据并生成密码密钥对,所述密码密钥对在执行本文讨论的功能时由处理服务器102使用。加密模块218可以接收作为输入的指令,所述指令可以伴有数据例如用于加密或解密,可以按照指令生成密钥、加密数据或解密数据,并且可以将结果输出到处理服务器102的另一模块或引擎。例如,加密模块218可配置为生成非对称密码密钥对诸如主密钥对和对称密码密钥对诸如验证密钥对。加密模块218还可配置为使用公钥加密数据和使用私钥解密数据,诸如如本文讨论的使用主私钥来解密经加密的投票。处理服务器102还可以包括散列模块220。散列模块220可配置为对处理服务器102进行散列以执行本文讨论的功能来生成散列值。散列模块220可以接收要散列的数据,可以将一个或多个散列算法应用到数据以生成散列值,并且可以将生成的散列值输出到处理服务器102的另一模块或引擎。例如,散列模块220可配置为如本文讨论的生成用于公共选举的选举参考和候选人参考。处理服务器102还可以包括传输设备222。传输设备222可配置为经由一个或多个网络协议通过一个或多个网络传输数据。在一些情况下,传输设备222可配置为经由一种或多种通信方法、局域网、无线区域网、蜂窝通信、蓝牙、射频、互联网等等将数据传输到其他处理服务器102、区块链网络104中的节点、选民设备106、审核实体110以及其他实体。在一些实施例中,传输设备222可以由多个设备组成,诸如用于通过不同网络传输数据的不同传输设备,诸如用于通过局域网传输数据的第一传输设备和用于经由互联网传输数据的第二传输设备。传输设备222可以电子地传输具有可以由接收计算设备解析的叠加的数据的数据信号。在一些情况下,传输设备222可以包括一个或多个模块,用于将数据叠加、编码或以其他方式格式化到适于传输的数据信号。传输设备222可配置为将数据信号电子地传输到区块链108中的节点以公布到区块链,所述数据信号被叠加用于包括在新生成的块或新生成的块中的数据值或以其他方式用其编码。传输设备222还可配置为将数据信号电子地传输到选民设备106和审核实体110以执行本文讨论的额外功能,诸如以从审核实体110寻求对选民身份或权利的核实,所述数据信号被叠加了确认消息和其他数据交换或以其他方式用其编码。处理服务器102还可以包括存储器224。存储器224可配置为存储由处理服务器102在执行本文讨论的功能时使用的数据,诸如公钥和私钥、对称密钥等等。存储器224可配置为使用合适的数据格式化方法和模式来存储数据,并且可以是任何合适类型的存储器,诸如只读存储器、随机存取存储器等等。存储器224可以包括例如加密密钥和算法、通信协议和标准、数据格式化标准和协议、用于处理设备的模块和应用程序的程序代码以及对于本领域技术人员将显而易见的在执行本文公开的功能时可适于由处理服务器102使用的其他数据。在一些实施例中,存储器224可以由关系数据库组成,或可以以其他方式包括关系数据库,所述关系数据库利用结构化查询语言来存储、识别、修改、更新、访问等等存储在所述关系数据库中的结构化数据集合。存储器224可配置为存储例如与区块链网络108相关联的区块链或与其关联的其他数据,诸如审核公钥、选民地址、投票公钥、选举参考、候选人参考、投票登记时间段、投票时间段等等。选举和选民登记过程图3说明在系统100中使用适度限制的区块链来登记新选举和登记有资格在选举中投票的选民的过程。在步骤302中,处理服务器102可以生成用于登记要举行的新公共选举所必需的参考值和密钥。这可以包括由处理服务器102的散列模块220生成用于选举的选举参考,由散列模块220生成用于在选举中运行的每个候选人的候选人参考,由处理服务器的加密模块218生成主密钥对,以及由加密模块218生成验证密钥对。在选举期间删除主私钥的实施例中,步骤302还可以包括由处理服务器的生成模块216生成多个密钥组件,所述密钥组件可以使用与审核实体110相关联的审核公钥由加密模块218加密。在步骤304中,处理服务器102的生成模块216可以生成登记块,所述登记块可以至少包括主公钥、验证公钥、选举参考、使用验证公钥在密钥和参考上生成的数字签名,以及由加密的密钥组件及其相应审核公钥组成的对。在步骤306中,可以验证登记块并将其发布到区块链。在步骤308中,处理服务器102的查询模块214可以对处理服务器102的存储器224执行查询以删除主私钥。在步骤310中,选民104可以使用选民设备106下载用于他们希望登记以投票的选举的登记块。在步骤312中,选民设备106可以生成选民凭证。选民凭证可以至少包括由投票公钥和投票私钥组成的投票密钥对、使用投票公钥生成的选民地址以及用于核实选民104的身份或选举权利所需的任何识别信息。在步骤314中,选民设备106可以使用合适的通信网络和方法将选民凭证电子地传输到审核实体110。在步骤316中,审核实体110可以从投票设备106接收投票凭证,所述投票凭证还可以包括用于选民想要登记的选举的选举参考。在步骤318中,审核实体110可使用合适的方法核实选民的身份及他们在与选举参考相关联的选举中的投票权利。如果选民104被核实,则在步骤320中,审核实体110可以将选民登记数据转发到处理服务器102。在步骤322中,处理服务器102的接收设备202可以接收选民登记数据,所述选民登记数据可至少包括选举参考、投票地址以及还可被包括在区块链中以用于审核选民登记的任何选民凭证。在步骤324中,生成模块216可以生成新块,所述新块包括作为包含在其中的数据值的选民登记数据,所选民登记数据可被验证并公布到区块链。用于通过适度限制的区块链在公共选举中投票的过程图4说明使用上文讨论的系统100的适度限制的区块链的用于在公共选举中投票的投出、处理和计数的过程。在步骤402中,选民104可以使用他们的选民设备106来产生选民参考,所述选民参考可以由选民104使用来跟踪他们的投票,并确保在正确的选举中对适当的候选人的所述投票被计数。在一些情况下,选民104可以手动选择他们的选民参考。在其它情况下,选民设备106可以生成密码密钥对,并使用所述密码密钥对的公钥来生成选民参考,所述选民参考可以有降低与其他选民参考冲突的可能性的大的大小例如64字节。在步骤404中,选民104可以在选举中选择候选人,并且选民设备106可以生成他们的投票。投票可以使用在用于选举的区块链中公布的主公钥通过加密选民参考和他们选择的候选人的候选人参考的组合的消息来生成。在一些情况下,在加密之前,任意随机数也可以包括在消息中。选民设备106可以将加密的投票和用于选举参考的选举参考电子传输到处理服务器102。在步骤406中,处理服务器102的接收设备202可以接收加密的投票和选举参考。在步骤408中,处理服务器102的生成模块216可以生成新块,所述新块包括任何接收的加密投票及其选举参考作为其中的数据值,并且可以通过所述处理服务器102的传输设备222将生成的块电子地传输到区块链网络108中的节点,以验证和公布到区块链。一旦选民104投出了他们的票,在步骤410处,选民设备106可以生成核实消息,用于核实他们选民104已经投票。在一些情况下,选民设备106可以在生成和提交核实消息之前等待,直到在发布的区块链中已识别加密的投票。核实消息可以至少包括在添加到区块链的最新块中包括的选举参考、投票公钥、块参考值,以及使用投票私钥生成的块参考值的数字签名。在步骤412中,选民设备106可将核实消息提交到处理服务器102。在步骤414中,处理服务器102的接收设备202可以接收核实消息。在步骤416中,处理服务器102的生成模块216可以生成新块,所述新块包括作为其中的数据值的任何接收的核实消息,并且可以经由所述处理服务器102的传输设备222将所生成的块电子地传输到区块链网络108中的节点,以验证和公布例如发布到区块链。在选举期间或一旦选举已结束,在步骤418处,审核实体110可以识别提供给其的密钥组件例如在区块链中或通过与处理服务器102分开的通信接收的,所述密钥组件是使用与相应审核实体110相关联的审核公钥加密的。在步骤420中,审核实体110可以使用他们的审核私钥对加密的密钥组件进行解密,并且然后可以使用与处理服务器102相关联的并且在选举的登记期间发布的验证公钥对密钥组件重新加密。在一些实施例中,在密钥组件的解密和重新加密中可以使用额外组件,诸如用于生成和使用共享的秘密的数据。在步骤422中,重新加密的密钥组件可以被传输到处理服务器102,诸如在直接通信中或通过包括在公布到区块链的新生成的块中包括的数据值中。在步骤424中,处理服务器102的接收设备202可以接收重新加密的密钥组件,处理服务器102的加密模块218可以使用验证私钥对重新加密的密钥组件解密,并且,一旦选举已结束例如不再接受投票,处理服务器102的生成模块216就可从中生成主私钥。在步骤426中,处理服务器102可以洗牌为任何给定选举例如由选举参考识别的接收的所有加密的投票,并且处理服务器102的加密模块218可以使用用于该选举的主私钥来解密所有加密的投票。在步骤428中,处理服务器102的生成模块216可以生成一个或多个投票块,所述投票块包括作为包含在其中的数据值的解密的投票,然后可以将所述解密的投票分配到区块链网络108中的节点,并将其公布例如发布到区块链。然后,投票可以由希望这样做的任何实体计数,并且每个选民104都可以能够使用他们的选民参考来核实他们的投票作出了并且对正确的候选人计数。在一些实施例中,处理服务器102可以列表对每个候选人的投票,并公布包括包含选举结果的数据值的额外块。用于在公共区块链中处理投票的示例性方法图5说明用于使用密码上唯一的参考值和与适度限制的区块链结合的密码密钥对来处理用于公共选举的投票的方法500。在步骤502中,可以由处理服务器例如处理服务器102的生成模块例如生成模块216生成选举参考和两个或更多个候选人参考。在步骤504中,可以由处理服务器的加密模块例如加密模块218生成由主私钥和主公钥组成的非对称密码密钥对。在步骤506中,至少一个登记块可以由处理服务器的生成模块生成以添加到区块链,其中所述至少一个登记块中的每一个由块头和一个或多个数据值组成,其中所述至少一个登记块中的所述一个或多个数据值包括选举参考、两个或更多个候选人参考和主公钥。在步骤508中,每个生成的登记块可以由处理服务器的传输设备例如传输设备222电子地传输到与区块链相关联的一个或多个节点。在步骤510中,多个投票消息可以由处理服务器的接收设备例如接收设备202接收,其中每个投票消息至少包括投票和选举参考,其中所述投票至少包括选民参考和一个或多个候选人参考中的一个。在步骤512中,至少一个投票块可以由处理服务器的生成模块生成以添加到区块链,其中所述至少一个投票块中的每一个由块头和一个或多个数据值组成,其中所述至少一个投票块中的所述一个或多个数据值包括接收的投票中的每一个。在步骤514中,每个生成的投票块可以由处理服务器的传输设备电子地传输到与区块链相关联的一个或多个节点。在一个实施例中,每个接收的投票可以被加密,接收多个投票消息可以进一步包括由处理服务器的加密模块使用主私钥对每个加密的投票进行解密,并且包含在至少一个投票块中的一个或多个数据值中的投票可以是被解密的投票。在一些实施例中,方法500还可以包括:由处理服务器的加密模块生成由验证公钥和验证私钥组成的对称密码密钥对;以及由处理服务器的加密模块使用验证私钥在选举参考、两个或更多个候选人参考以及主公钥上生成数字签名,其中所述生成的数字签名和验证公钥被进一步包括在一个或多个数据值中,所述一个或多个数据值包括在所述一个或多个登记块中。在进一步的实施例中,方法500可以甚至进一步包括由处理服务器的加密模块使用验证私钥在投票上为投票中的每个投票生成投票数字签名,其中生成的投票数字签名伴随一个或多个投票块中的相应投票。在一个实施例中,每一个投票可进一步包括投票随机数。在一些实施例中,选举参考可以是通过应用散列算法生成的散列值。在一个实施例中,候选人参考中的每一个可以是与区块链相关联的并使用相应的公钥生成的区块链地址。在一些实施例中,方法500还可以包括由处理服务器的生成模块使用主私钥生成多个密钥组件;在处理服务器的存储器例如存储器224中存储多个密钥组件;在存储多个密钥组件之后并在电子传输一个或多个登记块之前,从处理服务器删除主私钥;以及在接收到多个投票消息之后,由处理服务器的加密模块使用存储在存储器中的多个密钥组件来生成主私钥。在一个实施例中,选民参考中的每一个可以是密码上唯一的值。在另一实施例中,选民参考中的每一个可以使用对称密码密钥对的选民公钥来生成。计算机系统架构图6说明计算机系统600,其中本公开的实施例或本公开的部分可实现为计算机可读代码。例如,图1的处理服务器102可以使用硬件、软件、固件、其上存储有指令的非暂时性计算机可读介质或其组合在计算机系统600中实现,并且可以在一个或多个计算机系统或其他处理系统中实现。硬件、软件或其任何组合可以体现用于实现图3-5的方法的模块和组件。如果使用可编程逻辑,则这样的逻辑可以在由可执行软件代码配置为专用计算机或专用设备例如可编程逻辑阵列、专用集成电路等等的商业可用处理平台上执行。本领域技术人员可以理解,公开的主题的实施例可以用各种计算机系统配置来实践,包括多核多处理器系统、小型计算机、大型计算机、链接或集群的具有分布式功能的计算机以及可以嵌入到几乎任何设备中的普及或微型计算机。例如,至少一个处理器设备和存储器可以用于实现上文描述的实施例。本文讨论的处理器单元或设备可以是单个处理器、多个处理器或其组合。处理器设备可以具有一个或多个处理器“核心”。本文讨论的术语“计算机程序介质”、“非暂时性计算机可读介质”和“计算机可用介质”通常用于指有形介质,诸如可移除存储单元618、可移除存储单元622和安装在硬盘驱动器612中的硬盘。根据本示例计算机系统600描述本公开的各种实施例。在阅读本说明书之后,对本领域技术人员将变得显而易见的是,如何使用其他计算机系统和或计算机架构来实现本公开。虽然操作可描述为按顺序的过程,但一些操作实际上可以并行、同时发生和或在分布式环境中执行,并且利用存储在本地或远程以供单或多处理器机器访问的程序代码。另外,在一些实施例中,可以在不背离公开的主题的精神的情况下重新安排操作顺序。处理器设备604可以是具体配置为执行本文讨论的功能的专用或通用处理器设备。处理器设备604可以连接到通信基础设施606,诸如总线、消息队列、网络、多核消息传递方案等等。网络可以是适于执行本文公开的功能的任何网络,并且可以包括局域网LAN、广域网WAN、无线网络例如WiFi、移动通信网络、卫星网络、互联网、光纤、同轴电缆、红外线、射频RF或其任何组合。其他合适的网络类型和配置对于本领域技术人员将显而易见。计算机系统600还可以包括主存储器608例如随机存取存储器、只读存储器等等,并且还可以包括次级存储器610。次级存储器610可以包括硬盘驱动器612和可移除存储驱动器614,诸如软盘驱动器、磁带驱动器、光盘驱动器、闪存等等。可移除存储驱动器614可以以众所周知的方式从可移除存储单元618读取和或写入到可移除存储单元618。可移除存储单元618可包括可由可移除存储驱动器614读取和写入的可移除存储介质。例如,如果可移除存储驱动器614是软盘驱动器或通用串行总线端口,则可移除存储单元618可以分别是软盘驱动器或便携式闪存驱动器。在一个实施例中,可移除存储单元618可以是非暂时性计算机可读记录介质。在一些实施例中,次级存储器610可包括用于允许计算机程序或其他指令加载到计算机系统600中的替代装置,例如可移除存储单元622和接口620。这样的装置的示例可以包括程序盒和盒接口例如如在视频游戏系统中发现的、可移除存储器芯片例如EEPROM、PROM等等和关联插座,以及其他可移除存储单元622和接口620,如对于本领域技术人员将显而易见的。存储在计算机系统600中的数据例如在主存储器608和或次级存储器610中可以存储在任何类型的合适的计算机可读介质上,诸如光存储器例如光盘、数字通用光盘、蓝光盘等等或磁带存储器例如硬盘驱动器。数据可配置为以任何类型的合适数据库配置,诸如关系数据库、结构化查询语言SQL数据库、分布式数据库、对象数据库等等。合适的配置和存储类型对于本领域技术人员将显而易见。计算机系统600还可以包括通信接口624。通信接口624可配置为允许在计算机系统600和外部设备之间转移软件和数据。示例性通信接口624可以包括调制解调器、网络接口例如以太网卡、通信端口、PCMCIA槽和卡等等。经由通信接口624转移的软件和数据可以是信号的形式,所述信号可以是电子的、电磁的、光学的或对本领域技术人员将显而易见的其他信号。信号可以经由通信路径626传播,所述通信路径626可配置为传送信号,并且可以使用电线、电缆、光纤、电话线、蜂窝电话链路、射频链路等等来实现。计算机系统600还可以包括显示接口602。显示接口602可配置为允许数据在计算机系统600和外部显示器630之间转移。示例性显示接口602可以包括高清晰度多媒体接口HDMI、数字视频接口DVI、视频图形阵列VGA等等。显示器630可以是用于显示经由计算机系统600的显示接口602传输的数据的任何合适类型的显示器,包括阴极射线管CRT显示器、液晶显示器LCD、发光二极管LED显示器、电容式触摸显示器、薄膜晶体管TFT显示器等等。计算机程序介质和计算机可用介质可以指存储器诸如主存储器608和次级存储器610,所述存储器可以是存储器半导体例如DRAM等等。这些计算机程序产品可以是用于向计算机系统600提供软件的装置。计算机程序例如计算机控制逻辑可以存储在主存储器608和或次级存储器610中。计算机程序还可以通过通信接口624接收。当执行时这样的计算机程序可使计算机系统600能够实现本文讨论的本方法。特别地,计算机程序在执行时可以使处理器设备604能够实现图3-5说明的方法,如本文讨论的。因此,这样的计算机程序可以表示计算机系统600的控制器。在使用软件实现本公开的情况下,软件可存储在计算机程序产品中,并可使用可移除存储驱动器614、接口620和硬盘驱动器612或通信接口624加载到计算机系统600中。处理器设备604可包括配置为执行计算机系统600的功能的一个或多个模块或引擎。每个模块或引擎可以使用硬件实现,并且在一些情况下还可以利用软件,诸如与存储在主存储器608或次级存储器610中的程序代码和或程序相对应的软件。在这样的情况下,程序代码可以在由计算机系统600的硬件执行之前由处理器设备604例如由编译模块或引擎编译。例如,程序代码可以是以编程语言编写的源代码,所述编程语言翻译成较低级语言诸如汇编语言或机器代码,用以由处理器设备604和或计算机系统600的任何额外硬件组件执行。编译的过程可以包括使用词法分析、预处理、解析、语义分析、语法制导翻译、代码生成、代码优化以及可以适于将程序代码翻译成适于控制计算机系统600以执行本文公开的功能的较低级语言的任何其他技术。对于本领域技术人员将显而易见的是,这样的过程导致计算机系统600是唯一地编程以执行上文讨论的功能的专门配置的计算机系统600。除其他特征外,与本公开一致的技术提供用于在公共区块链中处理投票的系统和方法。虽然上文已描述公开的系统和方法的各种示例性实施例,但是应当理解,它们只是出于示例的目的而非限制的目的提供的。它并非详尽无遗,也不限制对公开的精确形式的披露。在不偏离广度或范围的情况下,根据上述教导修改和变化是可能的,或者可以从公开的实践获得所述修改和变化。

权利要求:1.一种用于在公共区块链中处理投票的方法,包括:由处理服务器的生成模块生成选举参考和两个或更多个候选人参考;由所述处理服务器的加密模块生成由主私钥和主公钥组成的非对称密码密钥对;由所述处理服务器的所述生成模块生成至少一个登记块以添加到区块链,其中所述至少一个登记块中的每一个由块头和一个或多个数据值组成,其中所述至少一个登记块中的所述一个或多个数据值包括所述选举参考、所述两个或更多个候选人参考以及所述主公钥;由所述处理服务器的传输设备将每个生成的登记块电子地传输到与所述区块链相关联的一个或多个节点;由所述处理服务器的接收设备接收多个投票消息,其中每个投票消息至少包括投票和所述选举参考,其中所述投票至少包括一个或多个候选人参考中的一个和选民参考;由所述处理服务器的所述生成模块生成至少一个投票块以添加到所述区块链,其中所述至少一个投票块中的每一个由块头和一个或多个数据值组成,其中所述至少一个投票块中的所述一个或多个数据值包括接收的投票中的每一个;以及由所述处理服务器的所述传输设备将每个生成的投票块电子地传输到与所述区块链相关联的一个或多个节点。2.如权利要求1所述的方法,其中每个接收的投票是加密的,接收所述多个投票消息还包括由所述处理服务器的所述加密模块使用所述主私钥对每个加密的投票解密,以及包括在所述至少一个投票块中的所述一个或多个数据值中的所述投票是解密的投票。3.如权利要求1所述的方法,还包括:由所述处理服务器的所述加密模块生成由验证公钥和验证私钥组成的对称密码密钥对;以及由所述处理服务器的所述加密模块使用所述验证私钥在所述选举参考、所述两个或更多个候选人参考和所述主公钥上生成数字签名,其中生成的数字签名和验证公钥进一步被包括在所述一个或多个登记块中包括的所述一个或多个数据值中。4.如权利要求3所述的方法,还包括:由所述处理服务器的所述加密模块使用所述验证私钥在所述投票上生成针对所述投票中的每一个的投票数字签名,其中生成的投票数字签名伴随所述一个或多个投票块中的相应投票。5.如权利要求1所述的方法,其中每个投票还包括投票随机数。6.如权利要求1所述的方法,其中所述选举参考是通过应用散列算法生成的散列值。7.如权利要求1所述的方法,其中所述候选人参考中的每一个是与所述区块链相关联并且使用相应公钥生成的区块链地址。8.如权利要求1所述的方法,还包括:由所述处理服务器的所述生成模块使用所述主私钥生成多个密钥组件;在所述处理服务器的存储器中存储所述多个密钥组件;在所述多个密钥组件的存储之后并且在所述一个或多个登记块的电子传输之前,从所述处理服务器删除所述主私钥;以及在所述多个投票消息的接收之后,由所述处理服务器的所述加密模块使用存储在所述存储器中的所述多个密钥组件来生成所述主私钥。9.如权利要求1所述的方法,其中所述选民参考中的每一个是密码上唯一的值。10.如权利要求9所述的方法,其中所述选民参考中的每一个是使用对称密码密钥对的选民公钥生成的。11.一种用于在公共区块链中处理投票的系统,包括:处理服务器的接收设备和传输设备;所述处理服务器的生成模块,所述生成模块配置为生成选举参考和两个或更多个候选人参考;以及所述处理服务器的加密模块,所述加密模块配置为加密由主私钥和主公钥组成的非对称密码密钥对,其中所述处理服务器的所述生成模块还配置为生成至少一个登记块以添加到区块链,其中所述至少一个登记块中的每一个由块头和一个或多个数据值组成,其中所述至少一个登记块中的所述一个或多个数据值包括所述选举参考、所述两个或更多个候选人参考和所述主公钥,所述处理服务器的所述传输设备配置为将每个生成的登记块电子地传输到与所述区块链相关联的一个或多个节点;所述处理服务器的所述接收设备配置为接收多个投票消息,其中每个投票消息至少包括投票和所述选举参考,其中所述投票至少包括一个或多个候选人参考中的一个和选民参考,所述处理服务器的所述生成模块还配置为生成至少一个投票块以添加到所述区块链,其中所述至少一个投票块中的每一个由块头和一个或多个数据值组成,其中所述至少一个投票块中的所述一个或多个数据值包括接收的投票中的每一个,以及所述处理服务器的所述传输设备还配置为将每个生成的投票块电子地传输到与所述区块链相关联的一个或多个节点。12.如权利要求11所述的系统,其中每个接收的投票是加密的,接收所述多个投票消息还包括由所述处理服务器的所述加密模块使用所述主私钥对每个加密的投票解密,以及包括在所述至少一个投票块中的所述一个或多个数据值中的所述投票是解密的投票。13.如权利要求11的系统,其中所述处理服务器的所述加密模块还配置为生成由验证公钥和验证私钥组成的对称密码密钥对,所述处理服务器的所述加密模块还配置为使用所述验证私钥在所述选举参考、所述两个或更多个候选人参考和所述主公钥上生成数字签名,以及生成的数字签名和验证公钥进一步被包括在所述一个或多个登记块中包括的所述一个或多个数据值中。14.如权利要求13所述的系统,其中所述处理服务器的所述加密模块配置为使用所述验证私钥在所述投票上生成针对所述投票中的每一个的投票数字签名,以及生成的投票数字签名伴随所述一个或多个投票块中的相应投票。15.如权利要求11所述的系统,其中每个投票还包括投票随机数。16.如权利要求11所述的系统,其中所述选举参考是通过应用散列算法生成的散列值。17.如权利要求11所述的系统,其中所述候选人参考中的每一个是与所述区块链相关联并且使用对应公钥生成的区块链地址。18.如权利要求11所述的系统,还包括:所述处理服务器的存储器,其中所述处理服务器的所述生成模块还配置为使用所述主私钥生成多个密钥组件,所述处理服务器的所述存储器配置为存储所述多个密钥组件,所述处理服务器配置为在所述多个密钥组件的存储之后并且在所述一个或多个登记块的电子传输之前删除所述主私钥,以及所述处理服务器的所述加密模块还配置为在所述多个投票消息的接收之后使用存储在所述存储器中的所述多个密钥组件来生成所述主私钥。19.如权利要求11所述的系统,其中所述选民参考中的每一个是密码上唯一的值。20.如权利要求19所述的系统,其中所述选民参考中的每一个是使用对称密码密钥对的选民公钥生成的。

百度查询: 万事达卡国际公司 用于在适度限制的区块链上的公共选举的方法及系统

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。