ToB企服应用市场:ToB评测及商务社交产业平台

标题: 门罗币隐私掩护之环署名 [打印本页]

作者: 种地    时间: 2024-10-23 15:03
标题: 门罗币隐私掩护之环署名
主页

微信公众号:暗码应用技能实战
博客园首页:https://www.cnblogs.com/informatics/
GIT地址:https://github.com/warm3snow
简介

《门罗币隐私掩护之隐形地址》文章中,我们重点介绍了门罗币Monero的隐形地址技能,门罗币通过隐形地址包管了交易的不可链接性,并实现了用户的隐私掩护和监管需求。
本文将继续介绍门罗币的另一个核心技能——环署名技能,Monero通过环署名技能,实现了交易的不可追踪性。
注:incoming和outgoing交易分别表示用户的收款和付出交易。
基础知识

术语定义

环署名

环署名(Ring Signature)是一种数字署名方案,允许一组用户中的任何一个用户为某个消息生成署名,而不必要透露具体是哪个用户生成的署名。环署名的主要特点是它提供了署名匿名性可验证性,确保署名者的身份在署名过程中保持隐私。
环署名的根本概念
环的大小是环署名方案的一个告急参数,环越大,署名者的身份越难以确定,署名的匿名性越高。但是环的大小也会影响署名的计算和验证性能,因此必要在匿名性和性能之间进行权衡。
环署名构造和验证流程

环署名方案涉及一个三元组\((KeyGen, Sign, Verify)\),其中:
门罗币之环署名

回顾在《门罗币隐私掩护之隐形地址》介绍的交易模型,Bob作为收款方,可以或许验证每一笔相关交易的有效性。

进一步说明:
值得注意的是,\((P, x)\)是一次性密钥,当Bob花费这笔收入时,会使用该密钥加入环署名,之后可以丢弃。
门罗币环署名

门罗币使用环署名技能,实现了交易的不可追踪性。门罗币的环署名方案基于CryptoNote协议。在CryptoNode协议中,环署名交易模型如下:

门罗币环署名方案

门罗币环署名方案涉及一个四元组\((KeyGen, Sign, Verify, Link)\),其中:
密钥生成KeyGen

门罗币的KeyGen算法与一般的环署名方案类似,目的都是生成公私钥对\((P_s, x_s)\),其中\(P_s\)是署名者的公钥,\(x_s\)是署名者的私钥。
不同的是:
署名算法Sign

在门罗币中,由于署名公私钥对\((P_s, x_s)\)是由隐形地址技能生成的,而且仅用于一次性署名,因此门罗币环署名我们也称为一次性环署名
门罗币的Sign算法如下:
验证算法Verify


区块链矿工在收到交易后,会对交易进行署名验证。矿工已知\(R = {P_1, P_2, ..., P_n}\),以及环署名\(\sigma = (I, c_1, ..., c_n, r_1, ..., r_n)\), 署名验证Verify算法如下:

\[L_i^{'} = r_i \cdot G + c_i \cdot P_i\]

\[R_i^{'} = r_i \cdot H_p(P_i) + c_i \cdot I\]

\[\sum_{i=0}^{n} c_i \stackrel{?}{=} H_s(m, L^{'}, R^{'})\]
如果上述等式成立,则署名有效,否则署名无效,交易被拒绝。
正确性验证

\[L_i^{'} = r_i \cdot G + c_i \cdot P_i =\]

\[\begin{cases}q_i \cdot G + w_i \cdot P_i & \text{if } i \neq s \\(q_s - c_s \cdot x_s) \cdot G + c_s \cdot P_s = q_s \cdot G - c_s \cdot x_s \cdot G + c_s \cdot P_s = q_s \cdot G & \text{if } i = s\end{cases}\]

\[= \begin{cases}q_i \cdot G + w_i \cdot P_i & \text{if } i \neq s \\q_s \cdot G & \text{if } i = s\end{cases}\]

\[= L_i\]
在上述推导中,由于\(P_s = x_s \cdot G\),以是:\(-c_s \cdot x_s \cdot G + c_s \cdot P_s = -c_s \cdot P_s + c_s \cdot P_s = 0\)

\[R_i^{'} = r_i \cdot H_p(P_i) + c_i \cdot I =\]

\[\begin{cases}q_i \cdot H_p(P_i) + w_i \cdot I  & \text{if } i \neq s \\(q_s - c_s \cdot x_s) \cdot H_p(P_s) + c_s \cdot I = q_s \cdot H_p(P_s) - c_s \cdot x_s \cdot H_p(P_s) + c_s \cdot I = q_s \cdot H_p(P_s) & \text{if } i = s\end{cases}\]

\[=\begin{cases}q_i \cdot H_p(P_i) + w_i \cdot I & \text{if } i \neq s \\q_s \cdot H_p(P_s) & \text{if } i = s\end{cases}\]

\[= R_i\]
在上述推导中,由于\(I = x_s \cdot H_p(P_s)\),以是:\(-c_s \cdot x_s \cdot H_p(P_s) + c_s \cdot I = -c_s \cdot I + c_s \cdot I = 0\)

\[\sum_{i=0}^{n} c_i = c_1 + c_2 + ... + c_s + ... + c_n \]

\[= \sum_{i \neq s, i = 0}^{n} c_i + c_s\]

\[= \sum_{i \neq s, i = 0}^{n} w_i + (c - \sum_{i \neq s, i = 0}^{n} c_i \mod l)\]

\[= c\]

\[= H_s(m, L, R)\]
由于\(L^{'} = L\)且\(R^{'} = R\),以是:

\[H_s(m, L^{'}, R^{'}) = H_s(m, L, R) = c\]
因此,署名验证等式成立,署名有效。
双花验证Link

密钥镜像\(I\)和密钥对\((x_s, P_s)\)之间的关系如下:

\[I = x_s \cdot H_p(P_s)\]
密钥镜像\(I\)的计算方式,反映了用户密钥和密钥镜像之间存在一一对应关系,而用户密钥\((x_s, P_s)\)基于隐形地址技能,只使用一次,且与交易绑定。
矿工会记录所有交易的密钥镜像列表,在收到新交易时,会检查交易中的\(I\)是否已存在于列表中,如果存在,则说明该交易的\((x_s, P_s)\)已经被使用过,是一笔双花交易,交易被拒绝。
结语

环署名是门罗币的另一个核心技能,通过环署名技能,实现了交易的不可追踪性。本文简单介绍了环署名的根本概念,并详细介绍了门罗币的环署名方案,包括密钥生成、署名、验证和双花验证等算法。盼望通过本文的介绍,读者对隐私币的匿名技能有更进一步的了解。
门罗币隐私掩护使用了多种技能,包括隐形地址、环署名、秘密交易等,这些技能共同构成了门罗币的隐私掩护体系。在接下来的文章中,我们将继续介绍门罗币的其他隐私掩护技能。
参考文献

转载请注明原文链接:https://www.cnblogs.com/informatics/p/18493733 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4