参与者:
- 节点:拥有对一对公钥、私钥组合;
- 领导者:整合节点的签名并领导整个多签流程;
- 验证者:验证最终签名;
流程:
- 首先,所有的节点将其公钥发送给领导者;
- 领导者利用算法将所有的公钥整合,并生成一个新的公钥
算法可以很简单,比如将所有的公钥相加生成新的公钥
Aggregated Public key = Public key_1 + Public key_2 + …. + Public key_n
- 领导者将新的公钥发送给验证者;
- 接下来,领导者需要和每个节点互动,流程如下:
- 提交:每个节点产生随机数并黑盒提交给领导者;
- 挑战:领导者将每个节点产生的随机数根据算法生成新的提交信息,然后将新的提交信息、第二步产生的公钥、以及要验证的消息,做为一个挑战信息发送给节点;
- 回应:每个节点应用自己的私钥,解密挑战信息,并将回应发送给领导者。领导者将所有的回应整合。
![](https://img.haomeiwen.com/i14336870/8a8ac7c6be57aed0.png)
- 最终生成的(挑战信息、整合的回应信息)可以被验证者使用第二步生成的公钥验证。验证者并不分开验证每个节点的工作,而是整体判断是否所有的节点都正常,是一个0或者1的判断。
网友评论