门罗币:你有矿机你有钱,我换算法还不行吗?

日前, Monero的开发者宣布,将于无服务器存储协议Arweave合作,正在验证一种新的抗ASIC挖矿算法RandomX,一旦审计成功,将取代CryptoNight 算法。算法更换,直接导致原来的矿机变成一堆废铁。

Monero,6个月换一次算法

Monero,是字节币Bytecoin的一个分叉币种。当时字节币Bytecoin发布以后,被发现已经有82%的货币被预挖,在崇尚自由的数字货币世界,你敢预挖我就敢分叉,于是社区对字节币直接分叉,诞生了门罗币(2014年4月18日)。

至于字节币,既然字节币团队喜欢预挖,那剩下的18%也留给他们自己挖好了。门罗币似乎天生就在追求“公平与自由”,连团队预挖都不能忍,焉能忍ASIC矿机?所以为了应对中心化的矿霸,平均每6个月都会对门罗币进行硬分叉。

门罗币更新算法,并不是单纯为了对抗ASIC矿机。由于门罗币的挖坑对于pc、ipad等终端设备比较友好,所以这就被各种黑客盯上了。各种黑客通过木马病毒,控制别人的pc、ipad等进行挖坑,进而攫取利益。通过算法更换,也可以解决这个问题。

从历史上看,门罗币先后出现过monero zero、monero original、monero classic等多个分叉币,不过门罗币等社区绝对属于非常强大的,目前最公认的还是monero。这就叫,你大爷永远是你大爷!

门罗币的出现,就是要和各种不公斗争,如果不斗争,也许门罗就失去了其固有的意义。当然,门罗作为混币的代表,不仅仅对抗着中心化的算法,对抗着黑客病毒,也对抗着现实世界对电子货币对审查——匿名。

在比特币中,由于区块链账本的公开及可追溯性,任何一个人都可以通过比特币区块链浏览器的公开信息,顺藤摸瓜查出来所有和它有往来关系的比特币账户,因此,比特币的匿名性并非是无懈可击的。

Monero则采用了环签名和混淆地址的方式来保证匿名性。其交易不仅隐藏交易双方地址,而且还可以隐藏交易金额,默认情况下交易细节完全不可见,隐私性极强。所谓环签名,就是当一笔交易发生后,系统自动生成几组同额度当交易,通过这种“真假混合”的方式,让你根本查不出来到底这个币去了哪个地址。

环签名技术,门罗币的隐藏术

在交易环节,主要涉及[发送方][接收方][交易额度]三个数据,门罗币对应的三项技术,正是从这三个角度着手。下面就看看门罗币是如何通过环签名、混淆地址、环机密这三者实现匿名性的。

环签名 - 发送方,不可追踪性

打个比方,大家联名上书提意见的时候,怎样让外界难以猜测发起人是谁?上书人的名字可以写成一个环形,环中各个名字的地位看上去彼此相等,因此难以猜测发起人是谁。假设,A发送门罗币给 B,设定混淆交易数量为5。网络在转账时会自动生成5笔转账交易,除了A发送给B的这笔,另外的4笔都是用来瞒骗外界观测者的“诱骗交易”,这样达到隐匿发送方的目的。

混淆地址 - 接收方,不可关联性

混淆地址是为了打破输入输出地址之间的关联,以此隐匿转账的来去关系。每当发送者要发起一笔转账的时候,这笔资金不会直接打到接收方的地址,而是打到一个系统临时生成的地址。例如,A向B转账时,A作为发送者用B的公钥私钥加上一些随机数,生成一个独一无二的、一次性的地址,系统给这个临时地址转账。A和B自己都能看到这个临时地址,但都不知道地址里的钱属于谁。

那么B怎么知道有人给自己转账,怎么收到这笔钱呢?B的钱包会用私钥进行搜索功能,查看区块链上的临时地址是否有属于自己的钱。当B的私钥(仅有接收方B自己的私钥能够)识别出自己有权认领的临时地址,就能使用这笔钱。

环机密 - 交易金额的隐匿

在A向B转账时,在 RingCT 的交易中, A 不会直接公开给网络转账的金额,而是提供一个数字rct,作为交易金额输出。rct= 随机数 + 真正的交易金额。随机数是用来为真实金额遮盖的,由钱包自动产生。网络可使用这个rct值去验证交易输入是否等于交易输出的金额,以确认没有额外的 Monero 被伪造产生。 然而,对于其他人而言,无从得知实际交易金额。

粉尘攻击与数据臃肿

很明显,门罗币的混币是通过同时制造多笔“假交易”,进而“真假混淆”,从而实现隐私性保护。这种模式造成的直接后果,就是门罗币“臃肿不堪”。以比特币为例,每个交易就是一笔交易;但在门罗币中,每笔交易至少包括5笔交易(其余4笔的目的是以假乱真),这就意味着门罗币的数据量会增长很快。

数据增长过快的直接结果就是,对全节点的运行有着更高的要求。以比特币为例,目前的数据已经200多g,而且这个数据还在增加。如果这个数据增加到500g、1000g到时候,即便算法是抗专业矿机的,但又有多少人愿意来运行全节点呢?如果只有极少数的全节点运行,那么这个系统难免还是中心化的。

其中,最可怕的不仅仅是专业矿机,粉尘攻击同样可以让门罗币因臃肿而瘫痪。因为在混币模式下,不管转账1个门罗币还是0.0001个门罗币,都需要为之搭配上4组同样的交易数据,那么粉尘攻击足以让门罗系统变成一个臃肿的系统。

当然,有人会提出为何不可以在硬分叉的过程中,对数据进行剪辑或者合并。比如剪辑掉某个时间段之前段交易数据,或者对多笔小额交易进行合并,这就可以腾挪出大量的空间。但问题是,这种处理方法与现实中心化的机制,又有何不同呢?

防弹协议,让臃肿变的慢一点

为了坚决上述难题,防弹协议(bulletproofs)的技术便应运而生。防弹协议(bulletproofs)最初由密码学家Benedict Bunz和Jonathan Bootle发表,该协议可以降低交易数据的大小,将交易大小至少减少至80%。

像比特币一样,门罗币使用UTXO交易模式。这意味着区块链通过称为未使用交易输出(UTXO)的概念管理余额。钱包的余额由一系列UTXO组成。每个UTXO都是可以用来发送给另一个用户的BTC(或XMR)的数量。每当有一位用户将BTC发送给其他用户时,发送者的一部分UTXO将花费,并创建一个新的UTXO并发送给接收者。使用比特币,用过的UTXO可以被认为已经消失,并从现有的全球UTXO组中删除。

由于Monero使用环形签名,因此无法确定某个UTXO是否被花费。因此,所有曾经存在的UTXO,无论是否已经用完,都需要位于有效的全球UTXO集合中。这是一个非常庞大且不断增长的数据集,每个挖矿节点都需要跟踪,并且如果其过快增长,会极大妨碍网络的可扩展性。

在Monero的三种不同机制中,防弹协议主要针对的是环机密环节。也就是说,防弹协议实际上并没有为门罗币的隐私技术本身做出贡献,该协议只是确保存储在保密交易中的讯息不包含任假讯息,这样就可以减少数据量。

但是很显然,防弹协议(bulletproofs)只能延缓门罗币数据量臃肿的速度,但并不能从根本上解决数据爆炸的问题。如果随着时间的推移,门罗币的全节点运行数据越来越大的时候,目前比特币所面临的“算力中心化”问题,门罗币依旧无法解决。

Monero存在的问题

Monero的隐匿性既是其最大的优势,也是其最大的弱点。隐匿有价值,但它也可以使犯罪活动不受惩罚,加大了监管的难度。Monero的混合交易很容易被用于非法金融交易,如洗钱和买卖非法毒品。如果将Monero用于非法金融交易很容易,那么它肯定会被用于这种目的,而政府最终将被迫介入。

除了监管问题外,Monero的隐私保护措施也并没有那么强大。WIRED杂志早些时候发表了一篇关于门罗币隐私弱点的文章,来自不同大学的研究人员指出了门罗币的交易混合算法中的缺陷,该缺陷破坏了其无法追踪的特性。针对这些问题, Monero的开发人员对Monero进行了定期和持续的改进。不过, 隐私不是一蹴而就的,会是一场持久的战斗。

不可否认,Monero在不牺牲去中心化的情况下为加密货币引入了隐私,使用创新技术来确保交易不可关联,无法追踪,并且发送的金额被隐藏起来,还是值得肯定的。目前Monero的开发人员也在针对存在的扩展性、被黑客攻击以及数据滥用等问题进行改进,但是政府的监管还是不能忽视的不确定因素。

(作者:市后诸葛,内容来自链得得内容开放平台“得得号”;本文仅代表作者观点,不代表链得得官方立场)

我来评几句
登录后评论

已发表评论数()

相关站点

+订阅
热门文章