当前位置:首页 > 其他 > 正文内容

门罗币隐私维护之环签名

邻居的猫1个月前 (12-09)其他1797

主页

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

简介

在《门罗币隐私维护之隐形地址》文章中,咱们要点介绍了门罗币Monero的隐形地址技能,门罗币经过隐形地址保证了买卖的不行链接性,并完成了用户的隐私维护和监管需求。

本文将持续介绍门罗币的另一个核心技能——环签名技能,Monero经过环签名技能,完成了买卖的不行追寻性。

  • 不行链接性(Unlinkability):关于任何两笔outgoing买卖,无法证明它们是发送给同一个人的。即关于任何两个 outgoing 买卖,无法证明它们是由同一个人收款的。
  • 不行追寻性(Untraceability):关于每一笔incoming买卖,一切或许的发送者都是等概率的。这意味着,关于任何两个incoming买卖,无法证明它们是由同一个人发送的。

注:incoming和outgoing买卖别离表明用户的收款和开销买卖。

基础常识

术语界说

  • \(\mathbb{Z}_l\):有限域,\(l\)是一个大素数,如:\(l = 2^{252} + 27742317777372353535851937790883648493\)
  • \(S\):环签名的环,一组公钥的调集,\(S = {P_1, P_2, ..., P_n}\),包括\(P_s\)
  • \(P_i\):公钥,在环签名中表明环中第\(i\)个公钥, 当\(i = s\)时,\(P_s\)是签名者的公钥
  • \((x_s, P_s)\):用户公私钥对, 公钥为\(P_s\), 私钥为\(x_s\)且$ x_s \in \mathbb{Z}_l$
  • \(\sigma\):环签名的签名成果
  • \(m\):待签名的音讯。在签名时,通常会先对音讯进行哈希处理。
  • \(H_s\):暗码学哈希函数, 将输入映射到\(\mathbb{Z}_l\),如:\(H_s: \{0, 1\}^* \rightarrow \mathbb{Z}_l\)
  • \(H_p\):暗码学哈希函数, 将输入映射到椭圆曲线上的点,如:\(H_p: \{0, 1\}^* \rightarrow E(\mathbb{F}_q)\)
  • \(I\):密钥镜像,在门罗币中运用,用于避免双花进犯

环签名

环签名(Ring Signature)是一种数字签名计划,答应一组用户中的任何一个用户为某个音讯生成签名,而不需要泄漏详细是哪个用户生成的签名。环签名的首要特点是它供给了签名匿名性可验证性,保证签名者的身份在签名过程中坚持隐私。

环签名的基本概念

  • :环签名的“环”指的是一组公钥,这些公钥代表了或许的签名者。签名者在生成签名时,会挑选一个环中的公钥作为自己的身份,但外部观察者无法确认详细是哪个公钥对应的用户。
  • 签名:签名者运用自己的私钥和环中其他用户的公钥生成签名。这个签名能够被任何人验证,但无法确认签名者的身份。
  • 验证:任何人都能够运用环来验证签名的有用性,保证签名确实是由环中的某个用户生成的。

环的巨细是环签名计划的一个重要参数,环越大,签名者的身份越难以确认,签名的匿名性越高。可是环的巨细也会影响签名的核算和验证功用,因而需要在匿名性和功用之间进行权衡。

环签名结构和验证流程

image

  1. 初始化:签名者Bob挑选环S中的公钥,如{\({P_1, P_2, ..., P_i, ..., P_n}\)},其间Bob本身的公钥\(P_s\)也在放入环S中
  2. 生成签名:Bob根据环S中的公钥和自己的私钥\(x_s\)以及待签名音讯\(m\),生成环签名\(\sigma\)
  3. 验证签名:任何人都能够根据环S,音讯m对签名\(\sigma\)进行验证

环签名计划触及一个三元组\((KeyGen, Sign, Verify)\),其间:

  • \(KeyGen\):密钥生成算法,签名者运用\(KeyGen\)生成公私钥对\((x_s, P_s)\)
  • \(Sign(m, S, x_s)\):签名算法,签名者运用\(Sign\)生成环签名\(\sigma\), 其间\(m\)是音讯,\(S\)是环,\(x_s\)是签名者的私钥
  • \(Verify(m, S, \sigma)\):验证算法,任何人都能够运用\(Verify\)验证签名的有用性。算法成果为布尔值,\(true\)表明签名有用,\(false\)表明签名无效。

门罗币之环签名

回忆在《门罗币隐私维护之隐形地址》介绍的买卖模型,Bob作为收款方,能够验证每一笔相关买卖的有用性。

image

进一步阐明:

  • Bob作为收款人,在验证每笔买卖时,Bob只需对每个输出履行两次椭圆曲线乘法和一次加法(即生成\(P'\)),以查看该买卖是否归于他。
  • 关于每个归于Bob的UTXO,Bob康复一个密钥对\((x, P)\)并将其存储在钱包中。
  • 只要Bob能够生成地址\(P\)的私钥\(x\),因而只要Bob能够花费这笔收入。

值得注意的是,\((x, P)\)一次性密钥,当Bob花费这笔收入时,会运用该密钥参加环签名,之后能够丢掉。

门罗币环签名

门罗币运用环签名技能,完成了买卖的不行追寻性。门罗币的环签名计划根据CryptoNote协议。在CryptoNode协议中,环签名买卖模型如下:

image

  • 参加环:Bob从门罗币揭露账本中随机挑选UTXO,以及自己待花费的UTXO,放入到新创建的UTXO中,作为买卖的Tx input, 一切UTXO的收款方地址{\({P_1, ..., P_s, ..., P_n}\)}构成环\(S\)
  • 生成密钥镜像:Bob运用自己的签名私钥\(x_s\)和公钥\(P_s\), 生成密钥镜像\(I\),区块链矿工在验证买卖时,会验证\(I\)是否现已被运用过,以避免双花进犯
  • 生成签名:Bob运用环\(S\)和自己的私钥\(x_s\),对买卖进行签名,生成环签名\(\sigma\)

门罗币环签名计划

门罗币环签名计划触及一个四元组\((KeyGen, Sign, Verify, Link)\),其间:

  • \(KeyGen, Sign, Verify\)与一般的环签名计划功用相似
  • \(Link\):区块链矿工经过\(Link\)算法验证对应的密钥镜像\(I\)是否现已被运用过,以避免双花进犯

密钥生成KeyGen

门罗币的KeyGen算法与一般的环签名计划相似,意图都是生成公私钥对\((x_s, P_s)\),其间\(P_s\)是签名者的公钥,\(x_s\)是签名者的私钥。
不同的是:

  • 门罗币的公私钥来自于隐形地址技能,即\(P_s = H_s(aR)G + B\), 对应的私钥\(x_s = H_s(aR) + b\)
  • 门罗币的KeyGen算法还会生成密钥镜像\(I\),与公私钥一一对应。其间, \(I = x_s \cdot H_p(P_s)\)

签名算法Sign

在门罗币中,因为签名公私钥对\((x_s, P_s)\)是由隐形地址技能生成的,而且仅用于一次性签名,因而门罗币环签名咱们也称为一次性环签名

门罗币的Sign算法如下:

  1. 初始化:
  • 随机选取其他用户的公钥\(P_i\),并兼并自己的公钥\(P_s\),构成环\(S\), 如:\(\{ {P_1, P_s, ..., P_i, ..., P_n}\}\)
  • 挑选两个随机数调集\(Q\)\(W\),如下
    • \(Q = \{q_i\}\) , \(i = 1, 2, ..., n \quad q_i \in \mathbb{Z}_l\)
    • \(W = \{w_i\}\) , \(i = 1, 2, ..., n \quad i \neq s \quad w_i \in \mathbb{Z}_l\)
  1. 核算环签名
    环签名的签名算法,相似零常识许诺,包括:许诺-应战-呼应等几个过程
  • 核算许诺,许诺由两个调集组成\(L\)\(R\),调集元素核算别离如下:

\[ L_i = \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} \]

扫描二维码推送至手机访问。

版权声明:本文由51Blog发布,如需转载请注明出处。

本文链接:https://www.51blog.vip/?id=757

分享给朋友:

“门罗币隐私维护之环签名” 的相关文章

密码学许诺原理与使用 - 概览

密码学许诺原理与使用 - 概览

前语 作者:@warm3snow https://github.com/warm3snow 微信大众号:暗码运用技能实战 博客园主页:https://www.cnblogs.com/informatics/ 简介 许诺计划(Commitment Scheme)是一个重要的暗码学原语(crypto...

开源支付系统,构建灵活、安全的在线交易环境

1. Jeepay 特点:Jeepay 是一套适合互联网企业使用的开源支付系统,支持微信支付、支付宝、云闪付等多种支付渠道。使用 Spring Boot 和 Ant Design Vue 开发,提供 Docker 部署、接口市场、代码生成等功能,保证交易安全和高可用。 2. DaxPay...

区块链未来发展前景,区块链未来发展趋势与前景展望

区块链未来发展前景,区块链未来发展趋势与前景展望

区块链技术作为一种分布式账本技术,近年来在全球范围内得到了广泛的关注和应用。它具有去中心化、不可篡改、可追溯等特点,被认为在多个领域具有巨大的应用潜力。以下是对区块链未来前景的几点分析:1. 金融领域:区块链技术最初在金融领域得到应用,如比特币等数字货币的发行和交易。未来,区块链有望在支付、清算、结...

宿州云计算,乘云而上,打造数字经济发展新引擎

宿州云计算,乘云而上,打造数字经济发展新引擎

宿州市在云计算产业方面取得了显著的发展,以下是相关的详细信息:1. 产业背景与发展战略: 宿州市云计算产业主要承接上海、杭州等地的云计算、大数据、互联网等相关产业转移,旨在打造优质的云计算产业生态圈,叫响“中国云都”产业名片。 宿州高新区通过实施创新驱动发展战略,逐步建成了以云计算、智能...

开源笔记,探索开源笔记的魅力——打造个性化知识管理平台

开源笔记,探索开源笔记的魅力——打造个性化知识管理平台

开源笔记是一个软件,它允许用户记录、组织和分享笔记。这个软件的特点是它的源代码是公开的,这意味着任何人都可以查看、修改和分发这个软件。开源笔记通常使用一些常见的编程语言和工具,比如Python、JavaScript和Markdown。开源笔记的优势包括:1. 自由度:用户可以自由地修改和定制软件,以...

大同开源街派出所电话,大同开源街派出所联系电话及服务介绍

大同市公安局平城区分局开源街派出所的联系电话是:03528131592。如果您需要进一步的信息或帮助,建议直接联系该派出所。大同开源街派出所联系电话及服务介绍大同开源街派出所是负责大同开源街地区治安管理和公共安全的重要机构。为了方便市民和游客了解派出所的联系方式和服务内容,以下是对大同开源街派出所的...