首页 / 专利库 / 银行与财务事项 / 比特币地址 / 一种基于区块链的公平电子投票协议

一种基于链的公平电子投票协议

阅读:780发布:2020-06-04

专利汇可以提供一种基于链的公平电子投票协议专利检索,专利查询,专利分析的服务。并且本 发明 属于信息安全领域,提出一种基于 区 块 链 的公平 电子 投票协议。本发明使用区块链, 门 限签名方案,承诺机制,零知识证明等技术和 密码学 方法,基于时间承诺和支付押金的方式,提出一种基于区块链和素数的无可信第三方电子投票方案,可以支持多个候选者的投票情况。本发明由初始阶段,承诺阶段,投票阶段,审计阶段四个部分组成,每个投票者通过选择不同的与候选者唯一对应的素数来对不同候选者进行投票,投票者先支付一笔押金再进行投票,如果投票过程中有不诚实的行为,该投票者的押金会用于赔偿其他投票者,以此来保证投票过程的公平性。本发明可用于实现公平和安全的电子投票。,下面是一种基于链的公平电子投票协议专利的具体信息内容。

1.一种基于链技术的公平电子投票协议,包括:投票者Vi,i∈{1,...,n},和候选者Sj,j∈{1,...,k},其中n和k均为大于等于1的自然数;以及投票组织机构RA;其特征在于包括如下步骤:
S1.初始阶段具体为:投票者Vi在投票组织机构RA注册;所述投票者Vi的投票地址为与所述投票者Vi对应的比特币公钥pki的哈希值;投票组织机构RA选取任意k个不同奇素数并平均分配给k个候选者,使每个候选者与唯一的素数相关联,假设m是所述k个素数的最大值,定义一个大于mn的以2为底的最小幂数作为参数M;所述候选者Sj的候选地址为与所述候选者Sj对应的比特币公钥pkj的哈希值;投票者通过选择与候选者相对应的的素数来对不同候选者进行投票;
S2.承诺阶段具体为:每个投票者Vi都有一张个人秘密选票Oi∈{3,5,7,...},所述秘密选票Oi是所述投票者Vi选择的某个候选者对应的素数;投票者Vi和其他投票者通过投票承诺协议合作生成随机数Ri,并计算自己的投票 所述投票承诺协议如下:
每个投票者都有zk_SNARKs证明和验证密钥,对于每个i∈{1,...,n},投票者Vi做如下操作:
(S2.1)对于每一个x∈{1,...,n},生成n个秘密随机数rix∈ZM,使其乘积等于1(modM),ZM为从0到(M-1)范围内的整数集合;Vi对rix进行检查,确保不含有候选人的素数因子;
(S2.2)对于每一个x∈{1,...,n},生成承诺(cix,kix)←Commit(rix),其中kix是打开承诺cix的密钥;
(S2.3)使用zk_SNARKs生成零知识证明,证明∏xrix=1(modM);
(S2.4)向所有其他投票者广播承诺和零知识证明;
(S2.5)接受承诺并验证所有其他投票者的零知识证明;
(S2.6)对于所有的x∈{1,...,n}\{i},发送打开密钥kix给Vx;符号Vx表示不同于投票者Vi的其他投票者;
(S2.7)对于所有的x∈{1,...,n}\{i},在接收到Vx发送的打开密钥kxi时,检查rxi=Open(cxi,kxi)≠⊥;
(S2.8)计算Ri←∏xrxi和 并承诺(Ci,Ki)←Commit(Ri)和
其中Ki, 分别是相应的打开密钥;
(S2.9)广播承诺Ci和
(S2.10)使用zk_SNARKs生成和广播以下语句的零知识证明:
(S2.10a)Ri:=∏xrxi(modM);
(S2.10b) 中承诺值与Ci中承诺值的商是出现在所有候选者相对应的素数所构成的集合中的;
(S2.11)接收并验证其他投票者的所有证明;
S3.投票阶段的具体过程如下:
(S3.1)假设至少有一半的投票者是诚实的,投票者Vi拥有群体公钥 和各自的私钥(pki,ski)表示比特币系统中投票者Vi的地址对应的公钥和私钥;
(S3.2)假设t1,t2为大于6个区块的将来时间,且t1<t2;所有投票者共同运行以下协议:
(S3.2a)n个投票者共同生成一个交易JOIN;所述交易JOIN有n个输入,每个输入都分别对应于在交易 中输入投票者Vi拥有的(1+d)比特币;所述交易JOIN有n+1个输出,包括对于每个投票者Vi都具有d比特币押金的out-depositi,i∈{1,...,n},以及具有n比特币的out-winner;
(S3.2b)投票者Vi使用自己的私钥ski依次签署交易JOIN;共创建了n个签名;
(S3.2c)对于i∈{1,...,n},每个投票者生成交易PAYi,所述交易PAYi的输入是对应的out-depositi;在t2时间之后,所述交易PAYi的输出脚本可以把投票者Vi的押金分享给其他诚实的投票者;
(S3.2d)投票者Vi完成上述步骤(S3.3a)(S3.3b)(S3.3c)的验证,便将所述交易JOIN交易提交给区块链;
S4.审计阶段具体过程为:交易JOIN出现在区块链后,投票者Vi通过提交一个交易CLAIMi来赎回他的d比特币押金,提供打开密钥 来公布投票 如果所有投票者都提交了交易CLAIMi,则计算输出脚本中的函数 最后函数 返回票数最高者的
公钥pkw,w取值为1≤w≤k的整数,确定所述票数最高者为获胜候选者;并且通过交易Winner从out-winner中兑换n比特币,所述交易Winner的输入是交易JOIN的输出out-winner中的n比特币,输出是所述获胜候选者的公钥pkw地址;如果至少有一个投票者没有公布他的投票,则无法计算出最终投票结果,原本给获胜候选者的n比特币将被所有投票者通过交易Redeem直接赎回,所述交易Redeem的输入是所述交易JOIN的输出out–winner中的n比特币,输出是所有投票者的公钥地址,每个投票者都能拿回原来给获胜者的1比特币。
2.根据权利要求1所述的一种基于区块链的公平电子投票协议,其特征在于:所述步骤S1.中还包括所述投票组织机构RA保留有效投票者名单及其相对应的投票地址;所述投票组织机构RA公布与每个候选者有唯一对应关系的素数和候选地址的候选者列表。
3.根据权利要求1所述的一种基于区块链的公平电子投票协议,其特征在于:所述步骤(S3.2a)中所述输出out-depositi要获得d比特币押金的要求包括提供打开密钥 和用投票者Vi公钥pki可验证通过的签名,或者提供群体公钥 验证的有效签名。
4.根据权利要求1所述的一种基于区块链的公平电子投票协议,其特征在于:所述步骤(S3.2a)中所述输出out-winner要获得n比特币的要求包括提供所有打开密钥 和使用获胜候选者的公钥pkw验证的签名,或提供使用群体公钥 验证有效的签名。
5.根据权利要求1所述的一种基于区块链的公平电子投票协议,其特征在于:所述步骤S3.中所述交易PAYi使用 限签名方案签名。
6.根据权利要求1所述的一种基于区块链的公平电子投票协议,其特征在于:所述函数的定义为: 连续除以与所述候选者Sj唯一对
应的素数直至无法整除的运算过程中所做除法的总次数,所述总次数等于所述候选者Sj赢得的票数,获得所有候选者所得票数之后,函数 返回值为票数最高者的公钥。
7.根据权利要求1所述的一种基于区块链的公平电子投票协议,其特征在于:所述协议的所述步骤S3.投票阶段的子步骤(S3.2)还进一步包括:(S3.2e)如果所述交易JOIN在t1时间之后还没有出现在区块链上,任意投票者Vi通过提交一个使用交易 中包含的(1+d)比特币的交易,取回(1+d)比特币来终止整个协议。
8.根据权利要求1所述的一种基于区块链的公平电子投票协议,其特征在于:所述所述步骤S4.如果一个投票者Vi在时间t2之后还没有发布他的投票 其他投票者通过提交PAYi交易来赎回投票者Vi的押金进行赔偿。

说明书全文

一种基于链的公平电子投票协议

技术领域

[0001] 本发明属于信息安全领域,尤其涉及一种基于区块链的公平电子投票协议。

背景技术

[0002] 比特币(Bitcoin)是现在最受欢迎的去中心化数字货币。区块链(blockchain)是比特 币的底层技术,提供可被公开验证的可信分布式账本。区块链最早是由比特币的创始人中本 聪(Satoshi)提出的,基于区块链的分布式应用研究目前已成为新趋势。比特币系统由它们 之间的地址和交易组成。一个比特币地址只是一个公钥pk的哈希值。比特币用户与公钥-私 钥对(sk,pk)相关联。Sigsk(m)表示使用sk对消息m进行签名,Verpk(m,σ)是指对于消息m所 做的签名σ是否能用公钥pk验证通过,相应地返回ture/false。一个比特币交易有一些输入, 输出和一个可选的定时间。假设与密钥对(pkA,skA)相关联的用户A要将10比特币传送给与 密钥对(pkB,skB)相关联的用户B,用户A产生交易TA。交易ID(Transaction ID)是交易内 容的哈希值。交易中的每个输入都包含对前一个交易的引用和输入脚本input-script。每个 输出都包含一个转移值和输出脚本output-script。输入和输出脚本用于检查交易的有效性。 TA交易中的输出脚本 表示TA中的10比特币被给予用户B。用户B可以使用  作为输入脚本创建TB交易,以提供自己的签名,如果验证通过,用户B就可以使 用这10比特币。一个交易也可以有一个锁定时间t,这意味着它必须在t时间之后才能生效。
[0003] 一个(t,n)限签名方案是指n个成员组成的群中,任何不少于t个成员合作就能产生签 名,而任何少于t个成员合作都无法伪造签名。
[0004] 承诺机制是一个两方协议,包括承诺者和接受者。在承诺阶段,承诺者将自己的秘密消 息m以承诺值的方式发送给接收者,承诺者生成(c,k)←Commit(m),k是打开承诺c的密钥; 在打开阶段,承诺者将打开密钥k发送给接收者,接收者用密钥打开承诺得到原来的秘密消 息m←Open(c,k),并验证承诺的有效性,如果(c,k)是无效的,Open(c,k)返回⊥。
[0005] 零知识证明在这里使用的是E.Ben-Sasson论文“Succinct non-interactive zero knowledge for a von neumann architecture”中的zk_SNARKS(zero-knowledge Succinct Non-interactive ARgument of Knowledge)。零知识证明是在不揭露其它信息的情况下,使 验证者相信某个论断是正确的。本发明中零知识证明是用来保证投票者投票和随机数的有效 性,同时不揭露具体的投票信息。
[0006] 主流的电子投票方法主要是盲签名,混合网和同态加密方法,但是它们都需要一个可信 的第三方。2015年,Zhao等人在“How to vote privately using bitcoin”这篇文章中使 用时间承诺机制和比特币系统设计了无第三方的电子投票协议。它们包括两个部分,一个是 投票承诺,另一个是投票。他们使用“同步时间承诺”机制构造“联合交易”,并设计了比 特币投票问题的协议,其中有n个投票者,有两个候选者A和B,每个投票者只能选择投选A 或B。每个投票者先支付一笔押金再进行投票,如果投票过程中有不诚实的行为,该投票者 的押金会用于赔偿其他投票者,以此来保证投票过程的公平性。然而,现有的无第三方电子 投票方案并不能实现支持多个候选者的投票情况。

发明内容

[0007] 基于时间承诺和支付押金的方式,本发明提出一种基于区块链和素数的无第三方电子投 票方案,可以支持多个候选者的投票情况。
[0008] 本发明提供的协议具体如下。
[0009] 本协议包括四个阶段:初始阶段,承诺阶段,投票阶段,审计阶段。
[0010] 1.初始阶段
[0011] 假设有n个投票者V1,...,Vn,k个候选者S1,...,Sk,以及投票组织机构RA。每个投票者Vi (i∈{1,...,n},n为大于等于1的自然数)必须在投票组织机构RA注册,所述注册是指每个 投票者Vi向投票组织机构RA提供身份证明IDi,并提供自己的投票地址(比特币公钥pki的 哈希值)。向投票组织机构注册过并验证过身份的投票者记为有效投票者,投票组织机构RA保 留有效投票者名单及其相对应的投票地址,如表1所示。
[0012] 表1 投票地址
[0013]投票者 投票地址
V1 1DSrfJdB2AnWaFNgSbv3MZC2m74996JafV
V2 1Cdid9KFAaatwczBwBttQcwXYCpvK8h7FK
… …
Vn …
[0014] 投票组织机构RA公布全部有效投票者的投票地址,以便每个人都可以验证每次投票的有 效性。投票组织机构RA还从奇素数集合P={3,5,7,11,…}里选取k个不同的奇素数平均分 配给k个候选者,使每个候选者与唯一的素数相关联。假设m是所述k个素数的最大值,定 义一个大于mn的以2为底的最小幂值作为参数M。然后,投票组织机构RA公布具有对应素 数和候选地址的候选者列表。所述候选者Sj(j∈{1,...,k},k为大于等于1的自然数)的候选 地址为与所述候选者Sj对应的比特币公钥pkj的哈希值;这样,可以通过选择不同的素数来 对不同候选者进行投票,如表2所示。
[0015] 表2 候选者素数和比特币地址
[0016]候选者 素数 比特币地址
S1 3 1GdK9UzpHBzqzX2A9JFP3Di4weBwqgmoQA
S2 5 1hvzSofGwT8cjb8JU7nBsCSfEVQX5u9CL
… … …
Sk … …
[0017] 2.承诺阶段
[0018] 每个投票者Vi都有一张个人秘密选票Oi∈{3,5,7,...},Oi是Vi选择的某个候选者对应的素 数。Vi和其他投票者通过投票承诺协议合作生成Ri,并计算自己的投票在所有 投票者公布他们的 之后,便可以计算结果并确定胜者。每个投票者都有zk_SNARKs的证明 和验证密钥,投票者按下列方式一起产生Ri并做出承诺。对于i∈{1,...,n},每个投票者Vi做如 下操作:
[0019] (1)对于每一个x∈{1,...,n},生成秘密随机数rix∈ZM,它们的乘积∏xrix=1(mod M), 这可以通过生成前n-1个随机数再计算最后一个得出,其中ZM为从0到(M-1)范围内的整 数集合。Vi对rix进行检查,确保不含有候选人的素数因子。
[0020] (2)对于每一个x∈{1,...,n},生成承诺(cix,kix)←Commit(rix),其中kix是打开承诺cix的 密钥。
[0021] (3)使用zk_SNARKs生成零知识证明,证明Πxrix=1(mod M)。
[0022] (4)向所有其他投票者广播承诺和零知识证明。
[0023] (5)接受承诺并验证所有其他投票者的零知识证明。
[0024] (6)对于所有的x∈{1,...,n}\{i},发送打开密钥kix给Vx。符号Vx表示不同于投票者Vi的 其他投票者。
[0025] (7)对于所有的x∈{1,...,n}\{i},在接收到Vx发送的打开密钥kxi时,检查 rxi=Open(cxi,kxi)≠⊥。
[0026] (8)计算Ri←∏x  rxi和 并承诺(Ci,Ki)←Commit(Ri)和 其中Ki, 分别是相应的打开密钥。
[0027] (9)广播承诺Ci和
[0028] (10)使用zk_SNARKs生成和广播以下语句的零知识证明:
[0029] (a)Ri:=∏xrxi(mod M)。
[0030] (b) 中的承诺值与Ci中的承诺值的商是出现在候选者素数集中的素数。
[0031] (11)接收并验证其他投票者的所有证明。
[0032] 3.投票阶段
[0033] 附图1显示了投票阶段和审计阶段的总体投票交易方案。
[0034] 每个投票者Vi分别拥有(1+d)比特币,1比特币将被支付给获奖候选者,d比特币是押金。 我们假设d:=n-1,如果有人不诚实,他的押金将被其他n-1名参与者取走,作为补偿。时 间承诺协议可以保证以下三方面的性质:
[0035] -如果一个投票者公布了自己的投票,那么他可以收回d比特币押金。
[0036] -如果每个投票者都公布了自己的投票,那么乘积 决定了获得n比特币的胜选者。
[0037] -如果至少有一个投票者没有公布自己的投票,那么最初打算给胜选者的n比特币将被 所有投票者赎回。对于不公布自己投票的每个投票者,其押金将用于赔偿。
[0038] 投票协议的完整过程如下。
[0039] (1)初始化密钥
[0040] 此阶段需要一个 门限签名方案。我们假设至少有一半的投票者是诚实的。n个 投票者共同生成一个公共地址,每个投票者Vi都拥有群体公钥 和他的私有密钥投票 者Vi还拥有自己的公私钥对(pki,ski),表示比特币系统中投票者Vi的地址对应的公钥和私钥。
[0041] (2)交易JOIN
[0042] 假设参数t1,t2是在将来足够长的时间,至少为大于6个区块的将来时间,且t1<t2。每 个投票者运行以下协议:
[0043] (a)每个投票者共同生成一个交易JOIN(如图2所示):
[0044] -它有n个输入,其输入是在交易 中投票者Vi拥有的(1+d)比特币。
[0045] -它有n+1个输出,
[0046] out-depositi,i∈{1,...,n}:每个都具有d比特币;要获得d比特币押金的要求为1)提 供打开密钥 和可用Vi公钥pki验证的签名,或2)提供可用群体公钥 验证的有效签名。
[0047] out-winner:具有n比特币,要获得n比特币的要求为1)提供所有打开密钥 和可用 胜选者公钥pkw验证的签名,或2)提供可用群体公钥 验证的有效签名。
[0048] (b)投票者们用自己的私钥ski依次签署JOIN,创建n个签名。
[0049] (c)对于i∈{1,...,n},每个投票者生成交易PAYi,它的输入是对应的out-depositi。PAYi交易使用 门限方案签名。在t2时间之后,PAYi的输出脚本可以把Vi的押金分享给 其他诚实的投票者,如图3所示。
[0050] (d)每个投票者Vi验证上述步骤是否已经完成,把JOIN交易提交给区块链。
[0051] (e)如果JOIN在t1时间之后还没有出现在区块链上,任意投票者Vi可以通过提交一个 交易去使用 中包含的(1+d)比特币,取回(1+d)比特币来终止整个协议。
[0052] 4.审计阶段:
[0053] 如图3所示,交易JOIN出现在区块链后,每个投票者Vi都可以通过提交一个CLAIMi交 易来赎回他的d比特币押金,要提供打开密钥 来发布他的投票 (如果一个投票者Vi在时 间t2之后还没有发布他的投票,其他投票者可以提交PAYi交易来赎回他的押金进行赔偿)。 如果所有投票者都提交了交易CLAIMi,则可以计算输出脚本中的函数的定义为:候选者 连续除以候选者Sj对应的素数
直 至无法整除,期间所做除法的总次数;所述总次数等于候选者Sj赢得的票数,最后我们可以 获得每个候选者赢得的票数。函数 返回值为票数最高者的公钥pkw,w取值为 1≤w≤k的整数,最后确定票数最高者为获胜候选者;并且可以通过交易Winner从 out-winner中兑换n比特币,交易Winner的输入是交易JOIN的out-winner中的n比特币, 输出是该获胜候选者的公钥地址。如果至少有一个投票者没有公布他的投票,则无法计算出 最终投票结果,原本给获胜者的n比特币将被所有投票者通过交易Redeem直接赎回。交易 Redeem的输入是交易JOIN的out-winner中的n比特币,输出是所有投票者的公钥地址,每 个投票者都能拿回原来给获胜者的1比特币,如图4所示。
[0054] 本发明提出的投票协议有n个投票者和k个候选者,每个投票者将投选一个候选者。我 们设计的协议可以保证获得多数投票的候选者赢得比赛,同时不会披露个人投票信息。由于 区块链固有的性质,投票结果不能被篡改而且是公开透明的,因为区块链都是公开可验证的。

附图说明

[0055] 图1本发明提出的投票交易整体框架
[0056] 图2交易JOIN示意图
[0057] 图3交易CLAIMi和交易PAYi示意图
[0058] 图4交易Winner和交易Redeem示意图
[0059] 附图中JOIN、CLAIMi、PAYi、Winner、Redeem表示交易名称,v1、vn表示投票者, 1+d、d、1、n、n(1+d)表示比特币数额,in-scripti表示投票者Vi提供的输入脚本,out-depositi表示使用Vi押金的输出脚本,value表示输出的比特币数额,locktime表示锁定时间,Sigsk(m) 表示使用sk对m进行签名,Verpk(σ)是指对于m所做的签名σ是否能用公钥pk验证通过, 相应地返回ture/false。

具体实施方式

[0060] 实施例1
[0061] 附图仅用于示例性说明,不能理解为对本专利的限制;对于本领域技术人员来说,附图 中某些公知结构及其说明可能省略是可以理解的。下面结合附图和实施例对本发明的技术方 案做进一步的说明。
[0062] 假设有一个投票组织机构RA,6个投票者V1,...,V6,3个候选者S1,S2,S3,素数集合为 P={3,5,7},全局参数t1=1小时,t2=1.5小时。
[0063] 1.初始阶段:6个投票者Vi(1≤i≤6)在RA注册,提供自己的身份证明IDi和投票地 址;RA从奇素数集合P={3,5,7}中为3个候选者Sj(1≤j≤3)分配不同的素数,分别把3,5,7 分配给S1,S2,S3;参数m是P中素数的最大值,即m=7;定义参数M=131072,M是大于76的2的最小幂数;投票组织机构RA公布具有对应素数和比特币地址的候选者列表;投票者通 过选择不同的素数来对不同候选者进行投票;
[0064] 2.承诺阶段:每个投票者Vi拥有一张个人秘密选票Oi∈{3,5,7},Oi是与投票者Vi选择的 候选者相对应的素数;每个投票者Vi都有zk_SNARKs证明和验证密钥,Vi通过投票承诺协议 计算投票 对于i∈{1,...,6},每个投票者Vi做如下操作:
[0065] (1)对于每一个x∈{1,...,6},Vi生成6个秘密随机数rix∈ZM,使其乘积等于1(mod M); 可以通过生成前5个随机数再计算最后一个得出。Vi对rix进行检查,确保不含有候选者的素 数因子。
[0066] (2)对于每一个x∈{1,...,6},Vi生成承诺(cix,kix)←Commit(rix),其中kix是打开承诺cix的密钥;
[0067] (3)使用zk_SNARKs生成零知识证明,证明∏xrix=1(mod M);
[0068] (4)向所有其他5个投票者广播承诺和零知识证明;
[0069] (5)接受承诺并验证所有其他投票者的零知识证明;
[0070] (6)对于所有的x∈{1,...,6}\{i},发送打开密钥kix给其他5个投票者;
[0071] (7)对于所有的x∈{1,...,6}\{i},在接收到其他5个投票者发送的打开密钥kxi时,检查 rxi=Open(cxi,kxi)≠⊥;
[0072] (8)计算Ri←∏x  rxi和 并承诺(Ci,Ki)←Commit(Ri)和 其中Ki, 分别是相应的打开密钥;
[0073] 假设V1选择投给S1候选者,则计算 并且做出承诺C1和 是相应的打开 密钥。假设V2选择投给S2候选者,则计算 并且做出承诺C2和 是相应的 
打开密钥。假设V3选择投给S3候选者,则计算 并且做出承诺C3和 是相应 
的打开密钥。假设V4选择投给S1候选者,则计算 并且做出承诺C4和 是相 
应的打开密钥。假设V5选择投给S1候选者,则计算 并且做出承诺C5和 是 
相应的打开密钥。假设V6选择投给S3候选者,则计算 并且做出承诺C6和 是
相应的打开密钥。
[0074] (9)广播承诺Ci和
[0075] (10)使用zk_SNARKs生成和广播以下语句的零知识证明:
[0076] (a)Ri:=Пxrxi(mod M);
[0077] (b) 中承诺值与Ci中承诺值的商是出现在所有候选者相对应的素数所构成的集合中 的;
[0078] (11)接收并验证其他5个投票者的所有证明;
[0079] 3.投票阶段:
[0080] (1)初始化密钥:6个投票者使用 门限签名方案共同生成公私钥,每个投票 者Vi拥有群体公钥 和各自的私钥 (pki,ski)表示比特币系统中Vi的地址;
[0081] (2)JOIN交易:
[0082] (a)所有投票者共同生成一个交易JOIN:JOIN有6个输入,每个都是输入Vi,i∈{1,...,6} 拥有的6比特币;交易JOIN有7个输出:
[0083] out-depositi,i∈{1,...,6}:每个都具有5比特币;以及
[0084] out-winner:具有6比特币;
[0085] (b)所有投票者使用自己的私钥ski依次签署JOIN;V1创建JOIN交易并签署,然后发 给V2;V2验证有效后签署,然后再发给V3,依次发送直至V6也签署完毕,共创建了6个签名;
[0086] (c)对于i∈{1,...,6},每个投票者生成交易PAYi,PAYi的输入是对应的out-depositi; 如果投票者Vi没有诚实地公布自己的投票,在t2=1.5h时间之后,其他5个诚实的投票者可 以提交交易PAYi,PAYi的输出脚本可以把投票者Vi的押金分享给其他诚实的投票者;
[0087] (d)如果完成上述步骤,V6便将交易JOIN提交给区块链;
[0088] (e)如果交易JOIN在t1=1h时间之后还没有出现在区块链上,每个投票者Vi可以通过 提交一个交易使用 取回自己的6比特币来终止整个协议。
[0089] 4.审计阶段:JOIN出现在区块链后,投票者Vi通过提交一个CLAIMi交易来赎回他的5 比特币押金,要提供打开密钥 来公布投票 如果6个投票者都提交了交易CLAIMi公布  他们的投票 则可以计算输出脚本中的 的定义为:
连续除以Pi直至无法整除,期间所做除法的次数;最后函数f返
回票数最高 者的公钥pkw,确定获胜候选者。计票过程: 用6615连续
除以对应 的素数Pi,直到无法整除,连续做除法的次数即为候选者得到的票数:S1的票数为
3:6615 ÷3÷3÷3=245;S2的票数为1:6615÷5=1323;S3的票数为2:6615÷7÷7=135,所以获胜 候选者是S1,可以获得6比特币。
[0090] 显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明 的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其 它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神 和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之 内。
高效检索全球专利

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

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

申请试用

分析报告

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

申请试用

QQ群二维码
意见反馈