门罗币之隐形地址

news/2024/10/22 13:32:46

主页

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

简介

从2009年比特币的诞生,区块链技术已经发展了十多年,区块链技术的应用也从最初的数字货币扩展到金融、供应链、医疗、物联网等多个领域。区块链技术的核心是去中心化、不可篡改、匿名性等特性,其中匿名性是区块链技术的重要特性之一,它可以保护用户的隐私,防止用户的交易信息被泄露。在区块链技术中,匿名地址是用户的重要身份标识,用户可以通过匿名地址进行资产托管、资产转账等操作,而不用暴露自己的真实身份。

在比特币中过,用户可以通过私钥生成公钥,再通过公钥生成比特币地址,然后通过比特币地址进行交易,而不用暴露自己的真实身份。虽然比特币地址(如:1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2)具有一定的匿名性,但是比特币地址是公开的,通过大数据手段,可以将该地址相关的交易信息进行关联,只要有一个交易地址被关联到了用户的真实身份,那么用户的所有交易信息都会被暴露,因此比特币匿名性较差。

随着区块链技术的发展,区块链用户隐私的研究也逐渐增多,其中Zcash、Monero等匿名币的研究较为深入,它们通过零知识证明、环签名、隐形地址等技术,实现了更好的匿名性和用户隐私。本文及系列文章将重点介绍门罗币的隐私保护技术,如:隐形地址、环签名、机密交易等。

术语介绍

椭圆曲线定义

椭圆曲线(Elliptic Curve)是一种数学曲线,它的一般代数表达形式为:

\[y^2 = x^3 + ax + b \]

其中,\(a, b\)是椭圆曲线的参数,\((x, y)\)是椭圆曲线上的点。
在密码学中,椭圆曲线通常定义在有限域\(F_p\)上, 其中\(p\)是一个大素数。此时,\(x\)\(y\)的取值范围是\(0\)\(p-1\)。具体来说,\(x\)\(y\)都是有限域\(F_p\)中的元素,满足椭圆曲线方程,这样的方程我们也称为有限域上的椭圆曲线。构造在椭圆曲线上的密码学我们称为椭圆曲线密码学,英文缩写为ECC(Elliptic Curve Cryptography)。

有限域上的椭圆曲线有以下几个重要的性质:

  • 单位元:椭圆曲线上的单位元\(O\)是一个特殊的点,它是椭圆曲线上的无穷远点,单位元\(O\)是椭圆曲线上的一个特殊点,它满足\(P + O = P\)\(P - P = O\)\(O + O = O\)
  • 逆元:椭圆曲线上的逆元是指给定一个点\(P\),求解满足\(Q = -P\)的点\(Q\),其中\(Q\)是椭圆曲线上的另一个点
  • 点加:椭圆曲线上的点加法是指给定两个点\(P, Q\)\(P \neq Q\), 求解它们的和\(R = P + Q\), 其中\(R\)是椭圆曲线上的另一个点
  • 生成元:椭圆曲线上的生成元是指给定一个点\(G\),通过不断地对\(G\)进行倍乘运算,可以得到椭圆曲线上的所有点
  • 倍乘:椭圆曲线上的点倍乘是指给定一个点\(P\)和一个整数\(k\),求解满足\(Q = kP = \sum_{i=1}^{k}P\)的点\(Q\),其中\(Q\)是椭圆曲线上的另一个点

离散对数困难问题是指在有限域的椭圆曲线上,给定椭圆曲线上的一个点\(P\)和另一个点\(Q\),求解满足\(Q = aG\)\(a\)值。(该问题是一个困难问题,目前没有有效的解决方案,也是椭圆曲线加密算法的安全基础)

匿名性定义

隐私和匿名是电子现金最重要的方面。与传统银行不同的是,区块链交易(或者说点对点支付)旨在不依赖于第三方。特别是,T. Okamoto 和 K. Ohta 描述了理想电子现金的几个标准,其中包括“隐私:交易双方的关系必须对任何人不可追踪”。根据他们的描述,完全匿名的电子现金模型必须满足的两个属性:

  • 不可追踪性(Untraceability):对于每一笔 incoming 交易,所有可能的发送者都是等概率的。这意味着,对于任何两个 incoming 交易,无法证明它们是由同一个人发送的。
  • 不可链接性(Unlinkability):对于任何两笔 outgoing 交易,无法证明它们是发送给同一个人的。即对于任何两个 outgoing 交易,无法证明它们是由同一个人收款的。

不幸的是,比特币并不满足不可追踪性要求。由于网络参与者之间发生的所有交易都是公开的,任何交易都可以明确地追溯到唯一的来源和最终收款者。即使两个参与者以间接方式交换资金,经过精心设计的路径查找方法也会揭示出来源和最终收款者。
虽然比特币可以提供不可链接性,但是它并不是默认的。用户必须小心地处理他们的地址,以确保不会在不同的交易中使用相同的地址。这是因为,如果两个交易都使用相同的地址,那么这两个交易就可以被链接在一起,从而揭示出用户的身份。

术语定义

  • 公私钥对:公私钥对常见于非对称密码算法,在这些算法中,使用的密钥包含公钥和私钥。公钥公开,用于加密或签名验证;私钥保密,用于解密或签名。常见的非对称密码算法有RSA、ECC等。如在椭圆曲线中,\(Q = aG\),其中\(Q\)是公钥,\(a\)是私钥
  • 用户私钥:在门罗币中,用户私钥包含两个标准的椭圆曲线私钥, 用\((a, b)\)表示,其中\(a\)是spend key,\(b\)是view key
  • 用户公钥:在门罗币中,用户公钥包含两个标准的椭圆曲线公钥, 用\((A, B)\)表示,其中\(A = aG\)是用户的spend public key,\(B = bG\)是用户的view public key

门罗币之隐形地址

在比特币和以太坊等经典区块链系统中,用户可以在不同交易中使用不同的地址来保证交易的不可链接性

比特币交易模型如下:
alt text

  • 为了保证用户的隐私,Bob需要每次生成一个新的比特币地址(对应新的公私钥对),这样可以保证每次交易的地址不同,从而保证交易的隐私性
  • 比特币钱包需要维护一个地址池,每次生成一个新的地址,就需要将该地址加入到地址池中,这样会增加钱包的存储空间
  • 由于钱包存储空间有限,限制了用户生成地址的数量,从而不可避免导致在不同交易中使用相同的地址,无法保证地址的不可链接性
  • 不同的地址之间相互独立,无法关联,能够保证交易的不可链接性,从而保证用户的隐私性

门罗币使用了一种匿名地址技术,称为隐形地址(stealth address),隐身地址与实际收款人的用户唯一公私钥绑定,但只有发送方和收款方知道两者之间的关联。对于用户的每一笔转账交易,收款方可以使用不同的隐形地址,从而保证了用户交易的不可链接性

门罗币交易模型如下:
alt text

  • 门罗币用户只需要维护两个标准的公私钥对\((a, A)\)\((b, B)\),在每次收款时,基于用户的公私钥对生成一个隐形地址,用于收款。如:\(Q_1\)\(Q_2\)是基于用户公私钥对生成的临时公钥,对应私钥为\(a_1\)\(a_2\)
  • 隐形地址不需要事先生成和本地存储,只需要在收款时,基于用户的公私钥对生成一个隐形地址即可,降低了钱包的存储空间
  • 基于用户公私钥对可以生成多个隐形地址,每个隐形地址之间不可关联,从而保证了用户的隐私性

门罗币中的隐形地址是通过用户的公私钥对\((a, A)\)\((b, B)\)生成的,通常用\((a, b)\)表示用户的私钥,用\((A, B)\)表示用户的公钥。隐形地址主要应用在门罗币生成交易接收交易中,下面我们分别介绍隐形地址的生成和验证过程。

生成交易(转账)

alt text

  • Alice要向Bob转账, Alice首先生成随机数\(r\), 并计算\(R = rG\),作为交易的一部分
  • Alice补充转账金额,如图中为\(1.5 XMR\), 表示Alice向Bob转账\(1.5\)个门罗币
  • Bob私下提供给Alice自己的公钥\((A, B)\)
  • Alice基于Bob的公钥生成一个隐形地址\(P = H_s(rA)G + B\), 其中\(H_s\)是哈希函数,\(G\)是椭圆曲线上的生成元
  • Alice对交易信息\((R, 1.5XMR, P)\)进行签名,生成签名\(S\),并将\((R, 1.5XMR, P, S)\)发送到门罗币网络中

值得注意的是,隐形地址\(P\)的随机性是由\(r\)决定的,而\(r\)是Alice生成的随机数,只有Alice知道,因此隐形地址的安全性依赖于Alice生成\(r\)的安全性

接收交易(收款)

alt text

  • Bob在区块链上查询到Alice的交易信息\((R, 1.5XMR, P, S)\),并验证签名的有效性
  • Bob基于自己的密钥\((a, B)\),计算\(P^{'} = H_s(aR)G + B\),并验证\(P \stackrel{?}{=} P^{'}\),如果验证通过,则表示该交易是Bob的收款交易
  • 同时当Bob需要花费该笔交易时,Bob可以使用自己的密钥\((a, b)\),计算\(x = H_s(aR) + b\),并使用\(x\)作为签名私钥,从而授权该交易

收款隐私性和正确性验证

  • 隐私性:需要注意的是,由于只有Bob知道自己的私钥\((a)\),因此只有Bob能够计算出\(H_s(aR)\),从而计算出\(P^{'}\),因此只有Bob能够确认该交易是自己的收款交易,保证了用户隐私性
  • 正确性验证如下:

\[P^{'} = H_s(aR)G + B \]

\[= H_s(a(rG))G + B \]

\[= H_s(r(aG))G + B \]

\[= H_s(rA)G + B \]

\[= P \]

因此,\(P^{'} = P\),验证通过,表示Bob能够正确验证该交易是自己的收款交易

支出正确性验证

Bob要能够花费该笔资产,需要保证自己有\(P\)对应的私钥。Bob可以根据自己的私钥\((a, b)\),计算\(x = H_s(aR) + b\)

支出正确性验证如下:

\[P = H_s(rA)G + B \]

\[= H_s(r(aG))G + B \]

\[= H_s(a(rG))G + B \]

\[= H_s(aR)G + bG \]

\[= (H_s(aR) + b)G \]

\[= xG \]

因此,\(P = xG\),表示\(x\)\(P\)对应的私钥,Bob可以使用\(x\)作为签名私钥,从而授权对应资产的支出

视图密钥和支出密钥

从Bob收款和支出的过程中,我们可以看到Bob收款时只需要用到\((a, B)\), 而支出时需要用到\((a, b)\),按照使用场景,一般将\((a, B)\)称为视图密钥,将\((a, b)\)称为支出密钥

  • 视图密钥:用于收款,可以公开给监管结构或第三方,第三方可以通过视图密钥查看用户的交易记录,但是由于不知道全部的私钥\((a, b)\),因此无法花费用户的资产
  • 支出密钥:用于支出,只有用户自己知道,用于花费用户的资产

门罗币的隐形地址技术,为监管机构提供了一种有效的监管手段,既保护了用户的隐私,又满足了监管机构的监管需求。因此,在不少数字货币友好的国家和地区也开始尝试在主权数字货币中引入门罗币的隐形地址技术。

结语

隐形地址技术是门罗币的核心技术之一,实现了用户的隐私保护和监管需求。本文简单介绍了比特币和门罗币的交易模型,并详细介绍了门罗币的隐形地址技术,包括隐形地址的生成和验证过程。希望通过本文的介绍,读者能够了解门罗币的隐形地址技术,以及隐形地址技术的应用场景和优势。

下一篇文章将介绍门罗币的环签名技术,环签名技术是门罗币的另一个核心技术,它通过环签名技术,实现了交易的不可追踪性。

参考文献

  • 【1】CryptoNote wiki
  • 【2】Monero wiki
  • 【3】Home | Monero - secure, private, untraceable
  • 【4】Elliptic-curve cryptography
  • 【5】CryptoNote whitepaper v2.0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/72290.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

jdk1.6,jdk1.7,jdk1.8安装共存问题

1.今天遇到了需要编辑开发公司老项目的情况,之前本人电脑就装了1.6和1.8的jdk,现在老项目优需要安装jdk1.7运行,便有了这个问题,再次记录下 2. 首先需要安装对应的jdk,以及环境变量,我这里只展示三者共存的环境变量设置,其余单一的配置环境变量,网上都有就不在此啰嗦了 3.用JAV…

寻找打球的好去处?

公园位于余杭区向往街与海鸥路交叉口西南侧,总面积约5200平方米。 园内设有草阶看台和运动空间,同时设置羽毛球场、乒乓球桌、健身器材、儿童沙坑、景观栈桥等设施,功能多样。公园植被丰富,可提供四季有景、丰富多变的绿化景观。如果您住在附近 不妨去现场体验一番 或许会有…

Oracle 19c OCP 认证考试 083 题库(第2题)- 2024年修正版

【优技教育】Oracle 19c OCP 083题库(Q 2题)- 2024年修正版 考试科目:1Z0-083 考试题量:85道(线下) 通过分数:57%以上 考试时间:150min(线下) 本文为(CUUG 原创)整理并解析,转发请注明出处,禁止抄袭及未经注明出处的转载。 原文地址:http://www.cuug.com.cn/ocp/083…

PowerShell 实现删除指定路径X天前文件功能并添加定时JOB实例

公司的POA服务器的E盘隔三差五就爆满,原因是数据库备份文件越来越大,现在已经大到需要高频清理的地步了 十一前出现的这个问题,当时为了不专门在假期里某天特地去清理磁盘,想着一定要搞个定时JOB实现自动清理 最后选用了PowerShell脚本实现 新建一个txt文件,打开编辑内容如…

高等数学 5.3 定积分的换元法和分部积分法

目录一、定积分的换元法二、定积分的分部积分法 一、定积分的换元法定理 设函数 \(f(x)\) 在区间 \([a, b]\) 上连续,函数 \(x = \varphi(t)\) 满足条件: (1)\(\varphi (\alpha) = a, \varphi (\beta) = b\) ; (2)\(\varphi (t)\) 在 \([\alpha, \beta]\) (或 \([\beta…

Monaco Editor 实现一个日志查看器

我们是袋鼠云数栈 UED 团队,致力于打造优秀的一站式数据中台产品。我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值。本文作者:文长前言 在 Web IDE 中,控制台中展示日志是至关重要的功能。Monaco Editor 作为一个强大的代码编辑器,提供了丰富的功能和灵活的…

必看!解读Salesforce最新AI趋势报告

近年来,AI技术正在快速渗透到各行各业,尤其是在客户关系管理(CRM)领域。 据Salesforce最新的《AI在CRM中的趋势》报告显示,尽管AI发展潜力巨大,但许多公司在接受这一新技术时仍然犹豫不决。如何解决数据、信任和伦理等关键问题,成为企业能否真正释放AI潜力的关键。 员工…

OS-Nachos内存管理

实验目的在Nachos现有页表的基础上,增加TLB快表机制,使得在做虚拟地址到物理地址的转换时,优先从TLB快表中读取; 针对TLB增加NRU置换算法; 除实验源码和实验结果截图以外,需提供以下文字解释说明: 解释说明nachos -x userProgName 的启动过程及原生Nachos系统中的内存访…