首页 > 其他分享 >门罗币隐私保护之机密交易

门罗币隐私保护之机密交易

时间:2024-10-27 19:21:02浏览次数:1  
标签:承诺 金额 sum Pedersen 门罗 交易 隐私 机密

主页

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

简介

在前面几篇博文中我们介绍了门罗币的两种隐私保护技术:隐形地址环签名,这两种技术主要用户保护发送者和接收者的身份,但是无法提供交易金额的隐私性。在实际交易中,交易金额是一个重要的隐私信息,因为交易金额可以泄露用户的消费习惯和财务状况。

门罗币隐私保护技术:

本文将继续介绍门罗币的另一项隐私保护核心技术:机密交易

基础知识

Pedersen承诺

在前文《密码学承诺原理与应用 - 概览》中,我们介绍了密码学承诺的基本概念和应用。并对Pedersen承诺的基本原理和构造进行了概述。

Pedersen承诺构造和流程如下:

alt text

  • [01] 承诺阶段:发送方选择一个明文\(m\)和一个随机数\(r\),计算承诺值\(C = g^m \cdot h^r\),并发送\(C\)给接收方。
  • [02] 打开阶段:发送方揭示明文\(m\)和随机数\(r\)。
  • [03] 验证阶段:接收方重新计算承诺值\(C^{'} = g^m \cdot h^r\),并验证\(C^{'}\)和\(C\)是否相等。

对应的基于ECC的Pedersen承诺构造如下:

  • 承诺阶段:发送方选择一个明文\(m\)和一个随机数\(r\),计算承诺值\(C = mG + rH\),并发送\(C\)给接收方。
  • 打开阶段:发送方揭示明文\(m\)和随机数\(r\)。
  • 验证阶段:接收方重新计算承诺值\(C^{'} = mG + rH\),并验证\(C^{'}\)和\(C\)是否相等。

Pedersen承诺有几个重要的性质:

  • 隐藏性:通过引入随机数\(r\),承诺值\(C\)隐藏了明文\(m\)的信息,同一个消息的多个承诺值\(C\)是不同的,且无法推导出明文\(m\)。
  • 绑定性:发送方不能在承诺\(C\)后,重新选择不同的明文\(m^{'}\)和随机数\(r^{'}\),使得\(C = m^{'}G + r^{'}H\)。
  • 加法同态性:两个Pedersen承诺的和等于明文的和的Pedersen承诺。

Pedersen承诺的同态性在零知识证明、范围证明等隐私保护技术中有重要应用。同态性质如下:
假设有两个Pedersen承诺\(C_1 = m_1G + r_1H\)和\(C_2 = m_2G + r_2H\),则

\[C_1 + C_2 = (m_1 + m_2)G + (r_1 + r_2)H \]

\[C_1 - C_2 = (m_1 - m_2)G + (r_1 - r_2)H \]

当\(m_1 = m_2\)时,\(C_1 - C_2 = (r_1 - r_2)H\),即可以计算出两个承诺的差值。

范围证明

范围证明(Range Proof)是一种零知识证明机制,在不泄露明文的情况下,证明明文在一个合理的范围内。例如证明转账金额在\([0, 2^{64} - 1]\)之间。最常见的范围证明技术是Bulletproof。在门罗币和Grin等隐私币中,就是使用Bulletproof技术来证明交易金额在一个合理的范围内。

Bulletproof范围证明基本原理如下:

  1. 设\(u \in \mathbb{Z}_p\) 并且设\(V \in G\)是对\(v\)的一个 Pedersen 承诺。范围证明系统将使验证者相信\(u \in [0, 2^n - 1]\)。换句话说,证明系统证明了以下关系:

\[\{ (g, h \in G, V, \gamma; u, \gamma \in Z_p : V = g^v \cdot h^\gamma \land u \in [0, 2^n - 1]) \} \]

其中,\(g\)和\(h\)是\(G\)生成元,\(V\)是Pedersen承诺,\(\gamma\)是随机数,\(u\)是挑战数。

  1. 将\(u\)的范围限制转换为等式形式

\[u = <\mathbf{a}, 2^n> = \sum_{i=0}^{n} a_i \cdot 2^i , \quad \mathbf{b} = \mathbf{a} - \mathbf{1^n}, \quad \mathbf{a} \cdot \mathbf{b} = \mathbf{0^n} \]

其中,\(\mathbf{a} = (a_0, a_1, a_2, ..., a_n)\),\(\mathbf{k^n} = (k^0, k^1, k^2, ..., k^n)\),\(\mathbf{0^n}\)是长度为\(n\)的全0向量。从上述公式可以看出,

  • \(u\)的二进制表达等价于\(<\mathbf{a}, 2^n> = a_0 + 2a_1 + 4a_2 + ... + 2^n a_n\)
  • \(\mathbf{b} = \mathbf{a} - \mathbf{1^n}\)和\(\mathbf{a} \cdot \mathbf{b} = \mathbf{0^n}\)等价于\(a_i\)的值为0或1, 即\(u \in [0, 2^n - 1]\)。
  1. 将上述等式转换为多项式形式,并使用Bulletproof技术转换为多项式承诺的形式进行证明。

注:Bulletproof的原理和实现比较复杂,涉及Pedersen向量承诺、内积承诺、折半算法等技术,本文暂不展开介绍。

门罗币机密交易

门罗币机密交易(Confidential Transactions)的基本思想是通过Pedersen承诺Bulletproof范围证明技术,将交易金额隐藏在承诺值中,并通过范围证明证明交易金额在一个合理的范围内。

门罗币机密交易的交易模型如下:

alt text

  • 输入:交易输入(Tx input)包括交易金额,其中交易金额通过Pedersen承诺隐藏在承诺值中, 即\(C_{in, i}\), 表示input交易的第\(i\)个输入金额的Pedersen承诺。
  • 输出:交易输出(Tx input)包括输出金额,其中输出金额通过Pedersen承诺隐藏在承诺值中,即\(C_{out, i}\), 表示output交易的第\(i\)个输出金额的Pedersen承诺。并且每个输出金额携带一个Bulletproof范围证明,如图中\(RangeProof_{i}\)。

交易金额隐私性

门罗币机密交易的交易金额隐藏在Pedersen承诺中,Pedersen承诺的构造如下:

\[C = aG + bH \]

其中,\(a\)是交易金额,\(b\)是随机数,\(G\)和\(H\)是椭圆曲线上的生成元。交易金额\(a\)通过Pedersen承诺隐藏在承诺值\(C\)中,只有发送方知道明文\(a\)和随机数\(b\)。由于接收方需要验证收到的金额,因此发送方需要共享明文\(a\)和随机数\(b\)。一种共享方式基于Diffie-Hellman密钥交换算法, 保证发送方和接收方能够分别计算出明文\(a\)和随机数\(b\)。

\[a_i= a \oplus H_n("amount", H_n(rP_i, i)) \]

\[b_i = H_n("commitment\_mask", H_n(rP_i, i)) \]

其中:

  • \(H_n\)是哈希函数, 可以将任意长度的输入映射为固定长度的输出
  • commitment_maskamount是字符串常量
  • \(P_i\)是发送方的公钥,\(i\)是UTXO的索引
  • \(r\)是随机数,来自\(R = rG\)中的\(r\),由发送方生成
  • \(\oplus\)是异或运算

需要注意的是,在计算\(rP_i\)时,由于发送方知道\(r\)和\(P_i\),因此可以直接计算出\(rP_i\)。接收方知道\(x_i\),虽然不知道\(r\)但\(R\)公开,因此可以通过\(x_iR = rx_iG=rP_i\)得到\(rP_i\)。综上,发送方和接收方都可以计算出\(a_i\)和\(b_i\),即接收方可以验证交易金额。由于第三方无法知道\(r\)或者\(x_i\),因此无法计算出\(a_i\)和\(b_i\),保证了交易金额的隐私性

注:在接收方作为发送方花费收到UTXO时,可以通过相同的方式生成新的承诺,其中\(P_i\)是接收方的公钥(隐形地址)

在交易中,需要保证输入金额等于输出金额,即:

\[\sum_{i=1}^{n} Amout_{in, i} - \sum_{j=1}^{m} Amout_{out, j} = 0 \]

根据Pedersen承诺的加法同态性质,上述等式可以转换密文形式,如下:

\[\sum_{i=1}^{n} C_{in, i} - \sum_{j=1}^{m} C_{out, j} = 0 \]

\[\sum_{i=1}^{n} (m_{in, i}G + r_{in, i}H) - \sum_{j=1}^{m} (m_{out, j}G + r_{out, j}H) = (\sum_{i=1}^{n} r_{in, i} - \sum_{j=1}^{m} r_{out, j})H = 0 \]

其中, \(\sum_{j=1}^{m} r_{out, j} = \sum_{j=1}^{m} b_i\),因此只需要生成\(n\)个随机数\(r_{in, i}\),并保证\(\sum_{i=1}^{n} r_{in, i} = \sum_{j=1}^{m} b_i\),即可保证输入金额等于输出金额。
生成随机数\(r_{in, i}\)的方法如下:

\[r_{in, i} = RNG(2^{\lambda}), \quad i = 1, 2, ..., n-1 \]

其中,\(RNG(\lambda)\)是为随机数函数,\(\lambda\)表示安全参数。上面公式表示生成\(n-1\)个随机数\(r_{in, i}\),最后一个随机数\(r_{in, n}\)可以通过下面公式计算:

\[r_{in, n} = \sum_{j=1}^{m} b_i - \sum_{i=1}^{n-1} r_{in, i} \]

证明:\(\sum_{i=1}^{n} r_{in, i} = \sum_{j=1}^{m} b_i\)

\[\sum_{i=1}^{n} r_{in, i} = \sum_{i=1}^{n-1} r_{in, i} + r_{in, n} = \sum_{i=1}^{n-1} r_{in, i} + \sum_{j=1}^{m} b_i - \sum_{i=1}^{n-1} r_{in, i} = \sum_{j=1}^{m} b_i \]

交易金额范围证明

门罗币机密交易中,每个输出金额都携带一个Bulletproof范围证明,证明交易金额在一个合理的范围内。范围证明主要功能是保证每个输出金额在\([0, 2^{64} - 1]\)之间。否则会出现负数金额,出现超额支付等问题。在门罗币中,每个输出金额的范围证明如下:

\[\{ (g, h \in G, V, \gamma; a, \gamma \in Z_p : V = g^a \cdot h^\gamma \land a \in [0, 2^{64} - 1]) \} \]

其中,\(g\)和\(h\)是\(G\)生成元,\(V\)是输出金额\(a\)的Pedersen承诺,\(\gamma\)是随机数,\(a\)是交易金额。

Bulletproof范围证明原理暂时不做介绍,感兴趣的读者可以参考《Bulletproofs: Short Proofs for Confidential Transactions and More》

结语

本文介绍了门罗币的另一项隐私保护核心技术:机密交易。机密交易通过Pedersen承诺和Bulletproof范围证明技术,将交易金额隐藏在承诺值中,并通过范围证明证明交易金额在一个合理的范围内。通过本文的学习,希望读者对于门罗币的隐私保护技术,以及Pedersen承诺和Bulletproof范围证明的应用有所了解。本文未对Bulletproof范围证明技术进行详细介绍,感兴趣的读者可以参考相关文献进行深入学习。

至此,我们已经对门罗币的三项核心隐私保护技术:隐形地址环签名机密交易进行了详细的介绍。门罗币的隐私保护技术应用基本可以分为两个阶段:

  • CryptoNote2.0阶段:隐形地址、环签名等技术(2014年)
  • RingCT阶段:在CryptoNote2.0基础上,优化了环签名技术,并在2017年引入机密交易技术,进一步提高交易金额的隐私性。

参考文献

标签:承诺,金额,sum,Pedersen,门罗,交易,隐私,机密
From: https://www.cnblogs.com/informatics/p/18508796

相关文章

  • <地牢逃逸>小游戏隐私协议
    <地牢逃逸>小游戏隐私协议欢迎您使用<臣妾要告发熹贵妃工作室>开发的<地牢逃逸>小游戏!在使用本游戏之前,请您仔细阅读以下隐私协议。个人信息的收集与使用1为了提供更好的游戏体验和服务,我们可能会收集一些您的个人信息,例如您的设备标识符、操作系统版本、游戏进度等。2我们承......
  • 数据安全和隐私保护的最新技术和法规是什么
    数据安全和隐私保护的最新技术包括多因素认证(MFA)、零信任安全模型、同态加密、区块链技术、以及人工智能与机器学习在监测和预防泄露方面的应用。在法规方面,欧盟的通用数据保护条例(GDPR)、加州消费者隐私法案(CCPA)、以及即将实施的加州隐私权法案(CPRA)和巴西的通用数据保护法(LGPD)等......
  • Sparkled隐私政策
     本应用尊重并保护所有使用服务用户的个人隐私权。为了给您提供更准确、更有个性化的服务,本应用会按照本隐私权政策的规定使用和披露您的个人信息。但本应用将以高度的勤勉、审慎义务对待这些信息。除本隐私权政策另有规定外,在未征得您事先许可的情况下,本应用不会将这些信息......
  • 门罗币隐私保护之环签名
    主页微信公众号:密码应用技术实战博客园首页:https://www.cnblogs.com/informatics/GIT地址:https://github.com/warm3snow简介在《门罗币隐私保护之隐形地址》文章中,我们重点介绍了门罗币Monero的隐形地址技术,门罗币通过隐形地址保证了交易的不可链接性,并实现了用户的隐私保......
  • 数据不裸奔:如何确保AI分析顾客数据时的隐私保护
    在这个信息爆炸的时代,数据已成为最宝贵的资源之一。人工智能(AI)技术的发展,使得我们能够从海量数据中提取有价值的信息,为商业决策提供支持。然而,随着AI在数据分析领域的广泛应用,顾客隐私保护问题也日益凸显。如何在利用AI分析顾客数据的同时,确保他们的隐私不被侵犯,成为了一个亟待......
  • ArkWeb智能防跟踪与广告过滤 - 保护用户隐私
    本文旨在深入探讨华为鸿蒙HarmonyOSNext系统(截止目前API12)的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。简介华为鸿蒙HarmonyOSNext系统的Ar......
  • 门罗币之隐形地址
    主页微信公众号:密码应用技术实战博客园首页:https://www.cnblogs.com/informatics/GIT地址:https://github.com/warm3snow简介从2009年比特币的诞生,区块链技术已经发展了十多年,区块链技术的应用也从最初的数字货币扩展到金融、供应链、医疗、物联网等多个领域。区块链技术的......
  • 数据泄露成本增加,如何避免员工离职带走公司机密信息
    IBM发布的2024年《数据泄露成本报告》显示:2024年数据泄露平均成本创下历史新高,达到488万美元,较2023年增加约10%。报告提到,近半数的泄露事件源自各种IT故障或人为失误。数据是企业重要资产,数据泄露成本逐年增加,保护数据安全、降低泄露成本刻不容缓。随着“金九银十”求职......
  • 揭秘SSL:如何成为您的在线隐私守护者
    2021年11月1日,在公民个人信息保护领域国家正式实施了一部具有重要意义的法律——《中华人民共和国个人信息保护法》,该部法律在个人信息保护方面做了相关规定,使得公民个人信息保护走上了法治的轨道,公民在保护个人信息方面开始有法可依。国家颁布实施的这部法律一方面彰显了在保......
  • 隐私政策
    隐私政策本应用尊重并保护所有使用服务用户的个人隐私权。为了给您提供更准确、更有个性化的服务,本应用会按照本隐私权政策的规定使用和披露您的个人信息。但本应用将以高度的勤勉、审慎义务对待这些信息。除本隐私权政策另有规定外,在未征得您事先许可的情况下,本应用不会将这些信......