Page 357 - 《软件学报》2021年第7期
P. 357
姚前 等:区块链系统中身份管理技术研究综述 2275
为了满足门罗币用户使用和管理多个地址(身份标识)的需求,类似于比特币中的 HD 钱包方案,门罗币又提
出了用户子地址(sub-address)的概念 [63] ,用户可通过自己的主钱包地址派生出任意数量的不可链接的子地址.
在进行交易接收地址搜索时,使用主私钥进行一次计算既可以判断出是否为子地址对应的输出地址,从而避免
了使用多个私钥进行多次计算匹配的复杂操作开销.用户通过自己的主钱包地址(A,B)和索引 i 派生出相应的子
地址并存储在列表中,生成方法如图 13 所示.
Fig.13 Generation algorithm of sub-address
图 13 子地址的生成方法
交易过程中生成的一次性子地址的判断方法如图 14 所示.接收方在判断子地址时只需通过主私钥 a、一
次性子地址 P 和交换的随机变量 R 进行计算获得 D i 并和列表中的 D i 比较即可.匹配成功后,用户可通过主私
钥(a,b)和索引 i 生成相应的一次性私钥.
Fig.14 Decision of stealthy sub-address
图 14 一次性子地址的判断方法
门罗币中交易发送方的身份隐藏是通过环签名技术来实现的.环签名是由 Rivest 等人在如何匿名泄漏秘
密背景下提出来的新型签名技术 [64] .环签名不同于群签名 [65] ,它在构造匿名集合的过程中无需配置过程和管理
者,因此为自主混淆提供了便利.在环签名中,签名者将自己的公钥和另外一些公钥(但不知道私钥)进行混淆构
成匿名集合,然后再对消息进行签名.这样对于观察者而言,无法区分签名来自匿名集合中的哪一个公钥(真正
的签名者).环签名的定义如下.
给定一个环 U={U 1 ,U 2 ,U 3 ,…,U n },环中每个成员的公私钥对为(pk i ,sk i ),i=1,2,...,n.不失一般性,假设 U k (1≤k
≤n)是签名人,则环签名、验签算法可如下定义.
环签名生成算法.由签名人运行.其输入是待签名的消息 m、环中所有成员的公钥 pk i 、真正签名人的私钥
sk k ;其输出就是 U k 对消息 m 的环签名.
环签名验证算法.由签名验证者运行.其输入是待验证的消息签名对(m,)、环中所有成员的公钥,当接受该
签名时输出为 1,否则输出为 0.
门罗币中所使用的是一类具有可链接性的环签名,称为可链接环签名.可链接性是指如果环 U={U 1 ,U 2 ,
U 3 ,…,U n }中的某个签名人产生了两个消息签名对(m, 1 )、(m, 2 ),则存在有效算法使得签名验证者可以确定这两