您的位置:首页 > 互联网 >

门罗币可达到匿名交易 Bulletproof可减少验证资料的大小

2019-08-01 15:35:08 来源: 区块网

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

今天要来简单介绍一下,门罗币是怎么达到匿名交易的。本篇文章会牵涉到椭圆曲线的原理,如果不懂,可以先参考「加密技术核心算法之安全快捷的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后),每次交易也都会有新的金钥映像提供查询,所有历史交易的纪录都需要保留,无法像比特币有些技巧可以省略某些交易。这或许对门罗币是个挑战,但是另一派的说法,门罗币的交易量不是重点,而是他提供的隐私性。各位觉得如何呢?(Kimi Wu)

关键词: 门罗币 匿名交易 Bulletproof

精选 导读

募资55亿港元万物云启动招股 预计9月29日登陆港交所主板

万科9月19日早间公告,万物云当日启动招股,预计发行价介乎每股47 1港元至52 7港元,预计9月29日登陆港交所主板。按发行1 167亿股计算,万

发布时间: 2022-09-20 10:39
管理   2022-09-20

公募基金二季度持股情况曝光 隐形重仓股多为高端制造业

随着半年报披露收官,公募基金二季度持股情况曝光。截至今年二季度末,公募基金全市场基金总数为9794只,资产净值为269454 75亿元,同比上

发布时间: 2022-09-02 10:45
资讯   2022-09-02

又有上市公司宣布变卖房产 上市公司粉饰财报动作不断

再有上市公司宣布变卖房产。四川长虹25日称,拟以1 66亿元的转让底价挂牌出售31套房产。今年以来,A股公司出售房产不断。根据记者不完全统

发布时间: 2022-08-26 09:44
资讯   2022-08-26

16天12连板大港股份回复深交所关注函 股份继续冲高

回复交易所关注函后,大港股份继续冲高。8月11日大港股份高开,随后震荡走高,接近收盘时触及涨停,报20 2元 股。值得一提的是,在7月21日

发布时间: 2022-08-12 09:56
资讯   2022-08-12

万家基金再添第二大股东 中泰证券拟受让11%基金股权

7月13日,中泰证券发布公告,拟受让齐河众鑫投资有限公司(以下简称齐河众鑫)所持有的万家基金11%的股权,交易双方共同确定本次交易的标的资

发布时间: 2022-07-14 09:39
管理   2022-07-14

央行连续7日每天30亿元逆回购 对债市影响如何?

央行12日再次开展了30亿元逆回购操作,中标利率2 10%。这已是央行连续7日每天仅进行30亿元的逆回购缩量投放,创下去年1月以来的最低操作规

发布时间: 2022-07-13 09:38
资讯   2022-07-13

美元指数创近20年新高 黄金期货创出逾9个月新低

由于对美联储激进加息的担忧,美元指数11日大涨近1%创出近20年新高。受此影响,欧美股市、大宗商品均走弱,而黄金期货创出逾9个月新低。美

发布时间: 2022-07-13 09:36
资讯   2022-07-13

美股三大股指全线下跌 纳斯达克跌幅创下记录以来最大跌幅

今年上半年,美股持续回落。数据显示,道琼斯指数上半年下跌15 3%,纳斯达克综合指数下跌29 5%,标普500指数下跌20 6%。其中,纳斯达克连续

发布时间: 2022-07-04 09:51
推荐   2022-07-04

融资客热情回升 两市融资余额月内增加超344亿元

近期A股走强,沪指6月以来上涨4%,融资客热情明显回升。数据显示,截至6月16日,两市融资余额1 479万亿元,月内增加344 67亿元,最近一个半

发布时间: 2022-06-20 09:41
资讯   2022-06-20

4个交易日净买入超百亿元 北向资金持续流入A股市场

北向资金净流入态势延续。继6月15日净买入133 59亿元后,北向资金6月16日净买入44 52亿元。自5月27日至今,除6月13日以外,北向资金累计净

发布时间: 2022-06-17 09:37
推荐   2022-06-17