当前位置:首页 > 物联网 > 区块链
[导读] 今天要来简单介绍一下,门罗币是怎么达到匿名交易的。本篇文章会牵涉到椭圆曲线的原理,如果不懂,可以先参考「加密技术核心算法之安全快捷的ECC算法」。简单来说就是要知道这样的关系: p =

今天要来简单介绍一下,门罗币是怎么达到匿名交易的。本篇文章会牵涉到椭圆曲线的原理,如果不懂,可以先参考「加密技术核心算法之安全快捷的ECC算法」。简单来说就是要知道这样的关系:

p = k*G ,

p:公钥

k:私钥

G:曲线上的基准点

门罗隐匿交易包含了三个技术:Ring Signature(环签名) , Ring Confidential TransacTIons (RingCT,环保密交易)跟Stealth Address(隐地址)。在Digital Asset Research的文章中这张图解释了各个技术所使用的地方,本篇文章,就是要介绍这三个技术。

在介绍之前,先了解门罗一些基本概念。在门罗中有两把key(其实是4把,因为各有私钥跟公钥),一把是view key另一把是spend key。顾名思义,一把是拿来看的自己余额的(在链上找隐匿位址),一把是拿来花的(做环签名)。由spend key可以产生key image(金钥映像),用来做预防双花的证明,有点像zcash的nullifier。

Ring Signature (环签名)

环签名有点像混币,就是把好几笔交易混在一起,不过还是有差异。

那实际上怎么做呢?!假设一个初始值v,跟一串随机数(y1, y2, …, yn),然后把v跟随机数经由Ek做加密,再把加密过的值跟下一个随机数做运算(xor)再加密,如:Ek ( y 2⊕ Ek ( y1 ⊕ v )),所以函数如下

Ck , v ( y 1, y 2,…, yn )= Ek ( y 1⊕ Ek ( y 2⊕ Ek (… Ek ( yn ⊕ v ))))

接着使Ck , v ( y 1, y 2,…, yn ) = v,也就是v经过一连串的计算后,最后会等于自己,这就是环签名的基本概念,如下图形成一个环

实际应用场景会像这样:

m:讯息

P1, P2, …, Pn:为任意的一组公钥

1.计算加密金钥k = Hash(m)

2.选择随机数v

3.为所有的公钥选择随机数(x1, x2, …, xn)(不包含自己xs),接着计算

yi = gi( xi)。( gi = xi^{Pi} mod Ni )

*也就是上述的随机数yi,使用公钥来产生

4.藉由Ck,v(y1, y2, …, yn)来求得自己的ys

5.接着利用自己的私钥算出xs,xs = gs^{-1}(ys)

6.最终,输出环签名σ = (x1, x2, …, xs, …, xn, v)

验证

1.计算yi = gi(xi), i = 1, 2, …, n

2.计算加密金钥k = Hash(m)

3.验证Ck,v(y1,y2,…,yn) ?= v

因为v跟ys是相关的,而只有拥有私钥的人才能从ys算出xs,因此其他人无法假造签名。而环签名有个特性,就是少了某一项,可以用其他项来算出少的那一项。因为签名被混合过了,所以矿工无法直接验证交易是否花过了,要怎么确保双花的问题?就要借助到金钥映像(key image)的帮助,实际怎么运作,后面的隐地址一起介绍。

Ring ConfidenTIal TransacTIons(环保密交易)

在RingCT(环保密交易)出现之前,因为环签名的限制,混合环签名的金额必须一样,所以交易金额都必须被拆成固定面额,例如要交易12.5 XMR,就需要拆成10, 2 , 0.5三种面额,虽然发送方的资讯有环签名做保护,但是交易的金额就暴露给所有人了。

环保密交易出现后(新版的环签名”A MulTI-layered Linkable Spontaneous Anonymous Group signature”所支援),金额将会被遮罩住,因此不必拆成已知面额,进而可以达到隐匿的作用。

Stealth Address(隐地址)

记得上面提到,每个人有两把key(view key跟spend key)。假设Alice要转钱给Bob,首先,Alice要利用Bob的public view key跟public spend key组成一次性的公钥,计算如下

P = H(rA)G + B

r: Alice选的随机数

A:Bob‘s public view key

B:Bob’s public spend key

G:椭圆曲线中的基准点

H:hash function

然后计算R = rG。接着把交易送到P所产生的位址,并将R值放入交易的内容。所以整个网路都会知道P跟R。

因为r 是随机数,每次产生出的一次性公钥P都会是不同的,而由公钥P产生出门罗的地址就叫做隐地址(stealth address)。Alice把交易送到隐匿地址后,Bob要怎么知道这笔交易呢?

Bob有view key跟spend key对应的私钥(a, b),Bob计算

P′ = H(aR) + B

因为aR = arG = rA,所以可得P‘ = H(aR) + B = H(rA) + B = P

所以若P’==P就代表这笔交易是给自己的,而这个计算需要a : private view key,所以也就只有Bob可以计算得出来。Bob找到交易后可以算出对应的私钥x = H(aR) + b,就可以动用这笔交易了!而这种方式,对于收款人来说是麻烦的,因为要随时扫描链上的交易,才知道有没有自己的。(有一种方式,是把自己的view key给第三方,由第三方帮你扫描,不过你的资产就会曝光,但是依然只有自己能动用)

回到双花的问题上,上面有提到金钥映像,先来看金钥映像的算法

I = xH(P)

基本上是由一次性的公钥P跟私钥x 组成,每一笔交易P只会对应到一把私钥x,所以对于每笔交易P其金钥映像I都是固定的,因此矿工只需要去验证I 是否有重复,就可以验证是否双花。

门罗的最新协议Bulletproof,是一种range proof,主要用于环保密交易(RingCT),藉由Bulletproof可以大大减少了验证资料的大小,让交易资料变小,而手续费得以减少,有机会再来深入探讨Bulletproof。

扩展性(scalability)是门罗的一个大问题,主要是保密交易使用的rang proof的资料量庞大,使得交易的资料量很大,约是比特币的10倍(使用bulletproof后),每次交易也都会有新的金钥映像提供查询,所有历史交易的纪录都需要保留,无法像比特币有些技巧可以省略某些交易。这或许对门罗币是个挑战,但是另一派的说法,门罗币的交易量不是重点,而是他提供的隐私性。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭