CN115102697A - 实现区块链上交易双方参与生成随机数的方法、装置以及存储介质 - Google Patents
实现区块链上交易双方参与生成随机数的方法、装置以及存储介质 Download PDFInfo
- Publication number
- CN115102697A CN115102697A CN202210691631.7A CN202210691631A CN115102697A CN 115102697 A CN115102697 A CN 115102697A CN 202210691631 A CN202210691631 A CN 202210691631A CN 115102697 A CN115102697 A CN 115102697A
- Authority
- CN
- China
- Prior art keywords
- information
- transaction
- parties
- random number
- witness
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了一种实现区块链上交易双方参与生成随机数的方法、装置以及存储介质,本发明在区块链系统中预置全网周知无需信任的见证人节点,通过合理的协议流程,使得交易参与者双方可以得到公平可信的随机数。本方案利用唯一签名技术使得见证者节点不需要被信任就可以被使用。利用数字承诺技术,预置用于计算随机数的秘密值,使得参与者都参与了计算,影响了最终结果。最终,通过区块链上的“时间戳”得到可用的随机数。该时间戳不会因为生成区块的节点不同的操作而改变。另一方面,先承诺后公开秘密值是常见的方法,但是由于参与者在公开阶段可能不配合导致失败。本专利针对可能出现的情形,都补充了应对措施,具有更强的健壮性。
Description
技术领域
本发明涉及区块链通信技术领域,尤其涉及一种实现区块链上交易双方参与生成随机数的方法、装置以及存储介质。
背景技术
目前,区块链技术飞速发展,区块链交易越来普遍,区块链系统中随机数的存在一定情况下保证交易双方的安全性。现在区块链上有两种主流的随机数生成方法:
1)利用历史区块信息和最新区块信息,计算得到最新的随机数。该方法,生成区块的节点可以通过预计算的方式,得到有利于自己的随机数,在较大程度上影响了随机数的公平性。
2)通过预言机获取可信数据,根据可信数据计算得到随机数。目前应用最多的是Chainlink。预言机可以连接现实世界和区块链世界,但是在实施中需要一定的信任,比如相信部分或者全部参与反馈信息的节点。
发明内容
本发明的目的在于提供一种实现区块链上交易双方参与生成随机数的方法、装置以及存储介质,从而解决现有技术中存在的前述问题。
为了实现上述目的,本发明采用的技术方案如下:
一种实现区块链上交易双方参与生成随机数的方法,基于设置有见证者节点信息的区块链系统实现,包括以下步骤:
S1,见证者节点生成随机数生成请求并发送给交易双方参与者,双方参与者根据收到的所述随机数生成请求分别进行响应,生成响应信息;
S2,参与者双方分别发送生成的响应信息至所述见证者节点,见证者节点根据收到的响应信息收集参与者双方各自的承诺值;
S3,见证者生成上链的交易信息1,并将交易信息1发送至区块链网络,所述交易信息1包括见证者身份、事件id、参与者双方信息、预设区块高度值以及参与者双方的承诺值;
S4,所述交易信息1被打包进区块并经过共识,区块链网络节点捕获共识区块确认交易被共识后,见证者节点以及交易参与者双方均可以捕获该交易信息1;
S5,参与者双方分别生成用于公开并包含各自秘密值的交易信息2和交易信息3,并将所述交易信息2和所述交易信息3发送至区块链网络;
S6,待区块链网络中区块高度达到预设区块高度值,见证者节点根据捕获到的秘密值生成随机数,并将生成的随机数分别发送给参与者双方;
S7,参与者双方通过见证者公钥和历史信息验证生成的随机数是否合法,同时见证者节点将包含步骤S6中输出结果的交易信息4发送至区块链网络。
优选的,步骤S7之后还包括:若参与者双方验证生成的随机数不合法,则更换见证者节点,并重复步骤S1-S7;若合法,则直接采用生成的随机数。
交易4由见证人节点发起,目的是将数据留在区域链上,留待其他人验证,此处的其他人指代的是区域网上其他任何节点,而参与者只需要验证随机数的合法性即可。
优选的,所述设置有见证者节点信息的区块链系统中设置见证者节点信息过程如下:
1)生成见证者节点配置交易,所述见证者节点配置交易包含以下核心信息:见证者节点公钥;
2)将所述见证者节点配置交易发送至区块链网络,待所述见证者节点配置交易经过共识后写入区块链系统,即完成见证者节点信息注册;
3)所有区块链网络交易参与者均记录所述见证者节点信息。
3.根据权利要求1所述的实现区块链上交易双方参与生成随机数的方法,其特征在于,步骤S1中随机数生成请求包括:见证者身份、事件id、参与者双方信息和预设区块高度值;
双方参与者根据收到的所述随机数生成请求分别进行响应,生成响应信息,具体为:
S11,验证所述随机数生成请求中的信息,包括见证者身份、事件id、参与者双方信息和预设区块高度值;
S12,生成用于本次随机数生成的自有的秘密值;
S13,根据所述秘密值,使用秘密值的hash值作为其对应的承诺值;
S14,生成响应信息,该信息包含节点身份信息,事件id和承诺值。
优选的,步骤S2中还包括:若区块链网络中区块高度达到预设区块高度值时,所述见证者节点没有收集到参与者双方的承诺值,则直接退出流程。
优选的,步骤S6具体包括以下步骤:
S61,准备关键字段信息,并按如下顺序排列:其他商定的信息,事件id、参与者1身份信息及秘密值1、参与者2身份信息及秘密值2、预设区块高度值;
此处的其他商定的信息这里可以理解为是随机数应用场景需要的关键字,用于不同场景,涉及的关键字不同,不仅仅是备注,也不属于交易基本信息;
S62,检验秘密值1的hash值和秘密值2的hash值是否与步骤S3中收到的承诺值是否一致,若一致,则直接进入步骤S63,否则,则将步骤S61中的秘密值1和/或秘密值2删除后再进入步骤S63;
S63,生成关键字段信息m,见证者节点利用私钥对关键字段信息m进行数字签名,所述数字签名满足唯一签名属性,具体方法如下:
a)初始化h1=Hash(m),Hash表示hash函数,将h1作为横坐标,根据椭圆曲线算法,求解纵坐标h2;
b)判断根据椭圆曲线算法是否可以通过h1求解出h2;如果是,则直接输出M=(h1,h2);如果否,则继续执行h1++,即h1累加1,直到根据椭圆曲线算法通过h1可以计算出h2,输出M=(h1,h2);
c)通过见证者节点注册公钥对应的私钥x和坐标M=(h1,h2),则通过椭圆曲线上的倍点乘计算得到R=x*M;
d)随机选取k∈Zq,验证k是否等于0或者1,如果等于,则重新选取k;如果不等于,则继续执行下一步;其中,q是椭圆曲线基点的阶,为椭圆曲线参数;Zq表示模q后的数;
e)计算c=Hash(G,M,xG,R,kG,kM);其中,G是椭圆曲线上的基点,为椭圆曲线参数;M、R是步骤b)和c)中计算所得的点;xG是见证者节点注册的公钥,kG和kM均是椭圆曲线上的倍点乘运算;
f)计算s=k-cx mod q;q是椭圆曲线基点的阶,mod表示除法取余数;验证s是否等于0或1,若是,则回到步骤c)和d)重新选取k,否则直接进入下一步;
g)输出结果:(R,c,s),R是椭圆曲线上的点,对R做Hash运算生成随机数,c和s是后续用于验证签名的字符串。
优选的,步骤S7中参与者双方通过见证者公钥和历史信息验证随机数是否合法,具体包括以下步骤:
(1)输入见证者节点注册公钥xG,以及收到的R、c和s;
(2)计算U=c(xG)+(sG),其中c(xG)为公钥的倍点乘运算,sG为基点的倍点乘运算;
(3)根据区块链上记录的关键字段信息,恢复关键字段信息m’;
(4)利用关键字段信息m’采用步骤a)和b)中的方法计算点M’;
(5)计算V=cR+sM’,其中cR是点R的倍点乘运算,sM’是点M’的倍点乘运算;
(6)计算Hash(G,M’,xG,R,U,V)并验证其与c是否相等,若相等,则验证通过,该随机数合法;否则随机数不合法。
本发明的另一个目的在于提供一种实现区块链上交易双方参与生成随机数的装置,该装置包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,执行所述的实现区块链上交易双方参与生成随机数的方法。
本发明的最后一个目的在于提供一种计算机可读存储介质,该存储介质上存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行所述的实现区块链上交易双方参与生成随机数的方法。
本发明的有益效果是:
本发明提供了一种实现区块链上交易双方参与生成随机数的方法、装置以及存储介质,本发明在区块链系统中预置全网周知无需信任的见证人节点,通过合理的协议流程,使得交易参与者双方可以得到公平可信的随机数。本方案利用唯一签名技术使得见证者节点不需要被信任就可以被使用,解决了现有技术2)中需要信任的前提。利用数字承诺技术,预置用于计算随机数的秘密值,使得参与者都参与了计算,影响了最终结果。最终,通过区块链上的“时间戳”得到可用的随机数。该时间戳不会因为生成区块的节点不同的操作而改变,进而改进了现有技术中1)中所提及的公平性问题。另一方面,先承诺后公开秘密值是常见的方法,但是由于参与者在公开阶段可能不配合导致失败。本专利针对可能出现的情形,都补充了应对措施,具有更强的健壮性。
附图说明
图1是实施例1中提供的实现区块链上交易双方参与生成随机数的方法流程示意图;
图2是见证人节点签名流程原理示意图;
图3是点M和点R计算流程示意图;
图4是区块链上交易双方对生成的随机数进行验证的原理示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不用于限定本发明。
实施例1
本实施例提供了一种实现区块链上交易双方参与生成随机数的方法,基于设置有见证者节点信息的区块链系统实现,其中,所述设置有见证者节点信息的区块链系统中设置见证者节点信息过程如下:
1)生成见证者节点配置交易,所述见证者节点配置交易包含以下核心信息:见证者节点公钥;
2)将所述见证者节点配置交易发送至区块链网络,待所述见证者节点配置交易经过共识后写入区块链系统,即完成见证者节点信息注册;
3)所有区块链网络交易参与者均记录所述见证者节点信息。
实现区块链上交易双方参与生成随机数的方法如图1所示,包括以下步骤:
1)见证者节点生成随机数生成请求,该请求包含见证者身份、事件id、参与者双方信息、预设区块高度值。本方案从见证者生成请求开始,如何触发见证者生成请求可以根据具体场景或者app流程确定。同时事件id是用于生成随机数后继续使用该随机数的标识字段,具有唯一性。预设的区块高度值表示整个事件最晚结束的时间节点。
2)将步骤1)中生成的随机数生成请求发送至参与者双方。流程中节点间交互均应用数字签名技术,保障通信者身份以及信息的安全。流程中不再赘述关于数字签名验证部分。
3)参与者根据收到的随机数生成请求,进行响应,具体流程如下:
a)验证随机数生成请求中的信息,包括见证者身份、事件id、参与者双方信息、预设区块高度值等;
b)生成用于本次随机数生成的自有的秘密值;
c)根据该秘密值,计算其承诺值。一种可行的方法是使用秘密值的hash值作为承诺值。例如,秘密值为s1,则Hash(s1)为其承诺值。Hash表示安全的哈希算法。
d)生成响应信息,该信息包含节点身份信息,事件id、承诺值等。
4)参与者发送步骤3)中生成的响应信息至见证者节点。例如,参与者1发送Hash(s1),参与者2发送Hash(s2)至见证者节点。
5)见证者根据步骤4)中响应信息中的事件id和节点身份信息收集承诺值。如果当区块高度达到步骤1)中预设区块高度值时仍然没有收集到参与者双方的承诺值,则生成随机数失败,退出流程。流程执行顺利的话,此时见证者节点已经收集到了参与双方用于生成随机数的秘密值的承诺值。
6)见证者节点生成上链的交易信息,并将交易发送至区块链网络。该信息包括见证者身份、事件id、参与者双方信息、预设区块高度值以及参与者双方的承诺信息。
7)将步骤6)中所记载的交易经过共识后被打包进区块。此时,见证者节点、参与者1和参与者2均可以捕获这个信号。
8)参与者分别生成用于公开各自秘密值的交易,并将交易发送至区块链网络。该交易中包含参与者各自的秘密值。
优选的,为了防止极端情况下,见证者和某个参与者联合作弊。参与者可以在预设区块高度值的前一个区块中公开自己的秘密值,使得所有人无法提前计算对自己有利的信息。
9)区块到达预设值高度时,见证者节点根据捕获到的秘密值生成随机数,具体流程如下:
a)准备关键字段信息,并按如下顺序排列:{其他商定的信息,事件id、参与者1信息(身份信息,秘密值1)、参与者2信息(身份信息,秘密值2)、预设区块高度值};
b)检验秘密值,并生成用于后续流程的信息m。验证秘密值的hash值是否与5)中收到的承诺值一致,如果一致则继续后续步骤。如果不一致,则将原有秘密值删去。例如秘密值1的hash值与步骤5)中收到的承诺值不一样,则a)中信息变为:{其他商定的信息,事件id、参与者1信息(身份信息,“”)、参与者2信息(身份信息,秘密值2)、预设区块高度值}。其中“”表示空字符串。
c)验证者利用私钥,对步骤b)中生成的信息进行数字签名,该签名要求满足唯一签名属性。一种可行的方案如图2所示,具体如下:
c1)计算R=Hash(m)x,其中Hash表示hash函数,x表示节点注册公钥对应的私钥,如图3所示,具体流程如下;
(1)初始化h1=Hash(m),Hash表示hash函数,m表示上述b)中生成的信息;
(2)将h1作为横坐标,根据椭圆曲线算法,求解纵坐标h2;
(3)判断根据椭圆曲线算法是否可以通过h1求解出h2;如果是,则输出M=(h1,h2);如果否,则继续执行h1++,即h1累加1,直到根据椭圆曲线算法通过h1可以计算出h2。
(4)通过私钥x和坐标M=(h1,h2),则可以计算R=x*M,该计算为椭圆曲线上的倍点乘计算。
c2)随机选取k∈Zq;q是椭圆曲线基点的阶,为椭圆曲线参数;Zq表示模q后的数,例如Z3={0,1,2}。一般q的大小接近2256;
c3)验证k是否等于0或者1,如果等于,则重新选取k;如果不等于,则继续执行下一步;
c4)计算c=Hash(G,M,xG,R,kG,kM);G是椭圆曲线上的基点,为椭圆曲线参数;M、R是c1)中计算所得的点;xG是节点注册的公钥。kG和kM均是椭圆曲线上的倍点乘运算。最后通过hash运算,得出c=Hash(G,M,xG,R,kG,kM)。
c5)计算s=k-cx mod q;q是椭圆曲线基点的阶;mod表示除法取余数,如5mod2表示5除2的余数1。
c6)验证s是否等于0或者1,如果等于,则重新选取k,如果不等于,则继续执行下一步。
c7)输出结果:(R,c,s),R是椭圆曲线上的点,对R做hash运算就是生成的随机数。c和s是后续用于验证签名的字符串。由计算过程可知,见证者只能用注册公钥对应的私钥以及公开的消息m计算出唯一的R,自身无法左右R的计算结果,进而约束了见证者,降低了对见证者的公正性的要求。
10)见证者节点发送步骤9)中的结果给参与者双方,参与者双方可以通过历史信息以及见证者公钥验证R的合法性,如图4所示:
(1)输入见证者节点注册公钥xG,以及收到的R、c和s;
(2)计算U=c(xG)+(sG),其中c(xG)为公钥的倍点乘运算,sG为基点的倍点乘运算;
(3)根据区块链上记录的关键字段信息,恢复关键字段信息m’;
(4)利用关键字段信息m’采用步骤a)和b)中的方法计算点M’;
(5)计算V=cR+sM’,其中cR是点R的倍点乘运算,sM’是点M’的倍点乘运算;
(6)计算Hash(G,M’,xG,R,U,V)并验证其与c是否相等,若相等,则验证通过,该随机数合法;否则随机数不合法,更换见证者节点,并重复上述过程;若合法,则直接采用生成的随机数。
上述验证流程,任意区块链系统的节点均可以验证其合法性。
11)见证者发送包含步骤9)中输出结果的交易信息至区块链网络,将随机数结果上链,以便其他节点检验、统计。该结果上链可由任意参与者完成。
3、见证者数据统计。
由于所有数据均是区域链上可以查询的,因此区域链上任何人均可以统计任何见证者节点的行为。包括其参与见证次数、多少次参与者双方均发送随机数(所有参与方均正常参与)等。这些统计数据可以作为区域链自身选择见证者节点的参考。
通过采用本发明公开的上述技术方案,得到了如下有益的效果:
本发明提供了一种实现区块链上交易双方参与生成随机数的方法、装置以及存储介质,本发明在区块链系统中预置全网周知无需信任的见证人节点,通过合理的协议流程,使得交易参与者双方可以得到公平可信的随机数。本方案利用唯一签名技术使得见证者节点不需要被信任就可以被使用,解决了现有技术2)中需要信任的前提。利用数字承诺技术,预置用于计算随机数的秘密值,使得参与者都参与了计算,影响了最终结果。最终,通过区块链上的“时间戳”得到可用的随机数。该时间戳不会因为生成区块的节点不同的操作而改变,进而改进了现有技术中1)中所提及的公平性问题。另一方面,先承诺后公开秘密值是常见的方法,但是由于参与者在公开阶段可能不配合导致失败。本专利针对可能出现的情形,都补充了应对措施,具有更强的健壮性。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
Claims (9)
1.一种实现区块链上交易双方参与生成随机数的方法,其特征在于,基于设置有见证者节点信息的区块链系统实现,包括以下步骤:
S1,见证者节点生成随机数生成请求并发送给交易双方参与者,双方参与者根据收到的所述随机数生成请求分别进行响应,生成响应信息;
S2,参与者双方分别发送生成的响应信息至所述见证者节点,见证者节点根据收到的响应信息收集参与者双方各自的承诺值;
S3,见证者生成上链的交易信息1,并将交易信息1发送至区块链网络,所述交易信息1包括见证者身份、事件id、参与者双方信息、预设区块高度值以及参与者双方的承诺值;
S4,所述交易信息1被打包进区块并经过共识,区块链网络节点捕获共识区块确认交易被共识后,见证者节点以及交易参与者双方均可以捕获该交易信息1;
S5,参与者双方分别生成用于公开并包含各自秘密值的交易信息2和交易信息3,并将所述交易信息2和所述交易信息3发送至区块链网络;
S6,待区块链网络中区块高度达到预设区块高度值,见证者节点根据捕获到的秘密值生成随机数,并将生成的随机数分别发送给参与者双方;
S7,参与者双方通过见证者公钥和历史信息验证生成的随机数是否合法,同时见证者节点将包含步骤S6中输出结果的交易信息4发送至区块链网络。
2.根据权利要求1所述的实现区块链上交易双方参与生成随机数的方法,其特征在于,
步骤S7之后还包括:若参与者双方验证生成的随机数不合法,则更换见证者节点,并重复步骤S1-S7;若合法,则直接采用生成的随机数。
3.根据权利要求1所述的实现区块链上交易双方参与生成随机数的方法,其特征在于,所述设置有见证者节点信息的区块链系统中设置见证者节点信息过程如下:
1)生成见证者节点配置交易,所述见证者节点配置交易包含以下核心信息:见证者节点公钥;
2)将所述见证者节点配置交易发送至区块链网络,待所述见证者节点配置交易经过共识后写入区块链系统,即完成见证者节点信息注册;
3)所有区块链网络交易参与者均记录所述见证者节点信息。
4.根据权利要求1所述的实现区块链上交易双方参与生成随机数的方法,其特征在于,步骤S1中随机数生成请求包括:见证者身份、事件id、参与者双方信息和预设区块高度值;
双方参与者根据收到的所述随机数生成请求分别进行响应,生成响应信息,具体为:
S11,验证所述随机数生成请求中的信息,包括见证者身份、事件id、参与者双方信息和预设区块高度值;
S12,生成用于本次随机数生成的自有的秘密值;
S13,根据所述秘密值,使用秘密值的hash值作为其对应的承诺值;
S14,生成响应信息,该信息包含节点身份信息,事件id和承诺值。
5.根据权利要求4所述的实现区块链上交易双方参与生成随机数的方法,其特征在于,步骤S2中还包括:若区块链网络中区块高度达到预设区块高度值时,所述见证者节点没有收集到参与者双方的承诺值,则直接退出流程。
6.根据权利要求4所述的实现区块链上交易双方参与生成随机数的方法,其特征在于,步骤S6具体包括以下步骤:
S61,准备关键字段信息,并按如下顺序排列:其他商定的信息,事件id、参与者1身份信息及秘密值1、参与者2身份信息及秘密值2、预设区块高度值;
S62,检验秘密值1的hash值和秘密值2的hash值是否与步骤S3中收到的承诺值是否一致,若一致,则直接进入步骤S63,否则,则将步骤S61中的秘密值1和/或秘密值2删除后再进入步骤S63;
S63,生成关键字段信息m,见证者节点利用私钥对关键字段信息m进行数字签名,所述数字签名满足唯一签名属性,具体方法如下:
a)初始化h1=Hash(m),Hash表示hash函数,将h1作为横坐标,根据椭圆曲线算法,求解纵坐标h2;
b)判断根据椭圆曲线算法是否可以通过h1求解出h2;如果是,则直接输出M=(h1,h2);如果否,则继续执行h1++,即h1累加1,直到根据椭圆曲线算法通过h1可以计算出h2,输出M=(h1,h2);
c)通过见证者节点注册公钥对应的私钥x和坐标M=(h1,h2),则通过椭圆曲线上的倍点乘计算得到R=x*M;
d)随机选取k∈Zq,验证k是否等于0或者1,如果等于,则重新选取k;如果不等于,则继续执行下一步;其中,q是椭圆曲线基点的阶,为椭圆曲线参数;Zq表示模q后的数;
e)计算c=Hash(G,M,xG,R,kG,kM);其中,G是椭圆曲线上的基点,为椭圆曲线参数;M、R是步骤b)和c)中计算所得的点;xG是见证者节点注册的公钥,kG和kM均是椭圆曲线上的倍点乘运算;
f)计算s=k-cx mod q;q是椭圆曲线基点的阶,mod表示除法取余数;验证s是否等于0或1,若是,则回到步骤c)和d)重新选取k,否则直接进入下一步;
g)输出结果:(R,c,s),R是椭圆曲线上的点,对R做Hash运算生成随机数,c和s是后续用于验证签名的字符串。
7.根据权利要求6所述的实现区块链上交易双方参与生成随机数的方法,其特征在于,步骤S7中参与者双方通过见证者公钥和历史信息验证随机数是否合法,具体包括以下步骤:
(1)输入见证者节点注册公钥xG,以及收到的R、c和s;
(2)计算U=c(xG)+(sG),其中c(xG)为公钥的倍点乘运算,sG为基点的倍点乘运算;
(3)根据区块链上记录的关键字段信息,恢复关键字段信息m’;
(4)利用关键字段信息m’采用步骤a)和b)中的方法计算点M’;
(5)计算V=cR+sM’,其中cR是点R的倍点乘运算,sM’是点M’的倍点乘运算;
(6)计算Hash(G,M’,xG,R,U,V)并验证其与c是否相等,若相等,则验证通过,该随机数合法;否则随机数不合法。
8.一种实现区块链上交易双方参与生成随机数的装置,其特征在于,该装置包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,执行权利要求1-7任一所述的实现区块链上交易双方参与生成随机数的方法。
9.一种计算机可读存储介质,其特征在于,该存储介质上存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行权利要求1-7任一所述的实现区块链上交易双方参与生成随机数的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210691631.7A CN115102697A (zh) | 2022-06-17 | 2022-06-17 | 实现区块链上交易双方参与生成随机数的方法、装置以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210691631.7A CN115102697A (zh) | 2022-06-17 | 2022-06-17 | 实现区块链上交易双方参与生成随机数的方法、装置以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115102697A true CN115102697A (zh) | 2022-09-23 |
Family
ID=83291146
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210691631.7A Pending CN115102697A (zh) | 2022-06-17 | 2022-06-17 | 实现区块链上交易双方参与生成随机数的方法、装置以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115102697A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116992204A (zh) * | 2023-09-26 | 2023-11-03 | 蓝象智联(杭州)科技有限公司 | 一种基于隐私保护的数据点乘运算方法 |
-
2022
- 2022-06-17 CN CN202210691631.7A patent/CN115102697A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116992204A (zh) * | 2023-09-26 | 2023-11-03 | 蓝象智联(杭州)科技有限公司 | 一种基于隐私保护的数据点乘运算方法 |
CN116992204B (zh) * | 2023-09-26 | 2023-12-29 | 蓝象智联(杭州)科技有限公司 | 一种基于隐私保护的数据点乘运算方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109831425B (zh) | 区块链共识方法、装置、设备及计算机可读存储介质 | |
CN109936457B (zh) | 区块链多方见证方法、装置、设备及计算机可读存储介质 | |
US12095932B2 (en) | Digital certificate verification method and apparatus, computer device, and storage medium | |
CN109743173B (zh) | 区块链中出块节点确定方法、区块验证方法及区块链系统 | |
CN107612973B (zh) | 用于智能移动端的区块链结构、生成方法及交易验证方法 | |
CN107171810B (zh) | 区块链的验证方法及装置 | |
CN109905247B (zh) | 基于区块链的数字签名方法、装置、设备及存储介质 | |
US6011848A (en) | Method and system for message delivery utilizing zero knowledge interactive proof protocol | |
CN110351089A (zh) | 一种数据签名认证方法及装置 | |
KR102218188B1 (ko) | 블록체인 기반의 인증서 관리를 수행하는 노드 장치 및 그 동작 방법 | |
CN112069550B (zh) | 一种基于智能合约方式的电子合同存证系统 | |
CN111815321A (zh) | 交易提案的处理方法、装置、系统、存储介质和电子装置 | |
KR20200087913A (ko) | 블록체인 네트워크를 기반으로 한 비밀 전자 투표 시스템 및 방법 | |
CN110177124A (zh) | 基于区块链的身份认证方法及相关设备 | |
CN112184229A (zh) | 基于区块链的子账户交易处理方法、系统及设备 | |
CN112035896B (zh) | 一种基于交易方式的电子合同存证系统 | |
CN112910661B (zh) | 适用于电子签约的区块链共识方法、装置、设备及介质 | |
CN110472970B (zh) | 一种基于区块链的预先生成区块方法及系统 | |
JP2022051652A (ja) | デジタル資産データパケットの信頼性検証システム | |
CN115102697A (zh) | 实现区块链上交易双方参与生成随机数的方法、装置以及存储介质 | |
CN115174570A (zh) | 一种基于动态委员会的跨链共识方法及系统 | |
CN111865595A (zh) | 一种区块链的共识方法及装置 | |
CN113362065A (zh) | 一种基于分散式私钥的在线签名交易实现方法 | |
CN112182009A (zh) | 区块链的数据更新方法及装置、可读存储介质 | |
CN116938522A (zh) | 区块链系统、运行方法、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |