Page 346 - 《软件学报》2026年第4期
P. 346
苏航 等: 高效的区块链中可监管身份隐私保护方案 1787
设 ElGamal 加密算法中使用的解密方公私钥对为 (pk a , sk a ), 加密的公钥明文为 pk r , 加密时使用的随机数为
( )
r e
r e
r t
r e , 加密得到的密文为 C = C 1 = g ,C 2 = pk r pk ; 一次性地址生成算法中生成的一次性地址为 P = pk r g , 生成一
a
r t .
次性地址使用的随机数为
交易接收者身份一致性证明协议基于 Sigma 协议给出, 描述如下.
1) 共同输入
协议双方共有消息包括公开参数 pp, 解密方公钥 pk a , 交易接收者一次性地址 P 和交易接收者身份监管密文 C.
2) 证明者证据
证明者拥有 r t , r e .
3) 协议
* s e s t s e
a) P (证明者): 选取随机数 s t , s e ∈ Z , 计算 Q 1 = g , Q 2 = g pk , 将 Q 1 , Q 2 发送给验证者.
a
q
*
b) V (验证者): 选取随机数 c ∈ Z , 将 c 发送给证明者.
q
c) P (证明者): 计算 w t = s t −cr t , w e = s e +cr e .
′ w e c ′ w e w t c c ′ Q = Q 2 , 则交易接收者身份一致性证明验
′
d) V (验证者): 计算 Q = g /C , Q = pk g P /C , 若 Q = Q 1 并且 2
1
1
2
2
1
a
证通过, 否则验证不通过.
(2) 非交互交易接收者身份一致性证明描述
基于交互式交易接收者身份一致性证明和 Fait-Shamir 转换方法, 非交互交易接收者身份一致性证明描述如下.
1) 身份一致性证明生成算法 ZK.ProofGen
P, 交易接收者身份监管密文 , 生
C
输入公开参数 pp, 公钥 pk a , 交易接收者公钥 pk r , 交易接收者一次性地址
成一次性地址使用的随机数 r t , 加密时使用的随机数 , 其中 pp 为 ElGamal 加密方案和一次性地址方案中的所有
r e
公开参数.
*
选取随机数 s t , s e ∈ Z .
q
s t
s e
s e
计算 Q 1 = g , Q 2 = g pk , h = H (g ∥ pk a ∥ C 1 ∥ C 2 ∥ P ∥ Q 1 ∥ Q 2 ), w t = s t −hr t , w e = s e +hr e .
a
输出身份一致性证明 π = (w t ,w e ,h).
2) 身份一致性证明验证算法 ZK.ProofVerif
C
输入公开参数 pp, 交易监管者公钥 pk a , 交易接收者一次性地址 P, 交易接收者身份监管密文 , 交易接收者
身份一致性证明 π.
(
)
h
h
h
′
′
w e
′
′
′
w e
w t
验证方计算 Q = g /C , Q = pk g P /C , h = H g ∥ pk a ∥ C 1 ∥ C 2 ∥ P ∥ Q ∥ Q .
1 1 2 a 2 1 2
′
若 h = h , 则交易接收者身份一致性证明验证通过, 否则验证不通过.
(3) 非交互交易接收者身份一致性证明分析
定理 1. 在随机预言机模型下, 非交互交易接收者身份一致性证明是零知识证明协议.
定理的证明由下述 3 个引理给出, 3 个引理分别表明该协议具备 (1) 完备性; (2) 可靠性; (3) 零知识性.
引理 1. 非交互交易接收者身份一致性证明具备完备性.
证明: 对于拥有证据 w = (r t ,r e ) ∈ R(x) 并且如实执行协议的诚实证明者, 其给出的证明验证过程如下:
h
Q = g /C = g s e +hr e /g r e h s e
′
w e
1 1 = g = Q 1
′ w e w t h h s e +hr e s t −hr t r t h r e h s t s e
Q = pk g P /C = pk a g (pk r g ) /(pk r pk ) = g pk = Q 2 .
a
2
2
a
a
( )
′
′
′
h = H g ∥ pk a ∥ C 1 ∥ C 2 ∥ P ∥ Q ∥ Q = H (g ∥ pk a ∥ C 1 ∥ C 2 ∥ P ∥ Q 1 ∥ Q 2 ) = h
1 2
综上, 非交互交易接收者身份一致性证明满足完备性要求. 证毕.
引理 2. 交易接收者身份一致性证明协议满足可靠性.
∀x = (pk a ,P,C) < L, 可归纳为以下两种情况.
证明: 对于
1) 交易发送者产生 pk 不是监管者的公钥.
′
C 时使用的
ElGamal 密文
a
在此种情况下, pk a , pk , C 1 = g , C 2 = pk r pk . 验证方验证时计算:
′
′r e
r e
a a

