什么是门罗币?终极入门指南(上)

根据 Monero(门罗) 官网: Monero 是一个安全,隐私和不可追踪的加密货币。通过使用密码学中一种特殊的方法,门罗确保了所有交易保持 100% 的不可关联和不可追溯性(unlinkable and untraceable)。在一个日益透明的世界,你会明白为什么门罗会被人们所期待。通过本文,我们将会看到门罗背后的机制,到底是什么使它如此特别。

起源

2012 年 7 月,Bytecoin ,CryptoNote 的第一个实现终于问世。CryptoNote 是一个应用层协议,它支撑了各种去中心化货币。尽管在很多方面,它跟比特币上的应用层很相似,但是两者仍有很多不同的地方。

尽管 bytecoin 十分有前景,但是人们也注意到发生了很多负面的事情,并且鉴于它已经产出了 80% 的币。所以,决定将 bytocin 分叉,新链上的币叫做 Bitmonero,最终被重新命名为 Monero(门罗),在世界语(Esperanto)中叫做“coin”,硬币的意思。门罗的出块时间为两分钟。

译者注:就在翻译本文之时,bytecoin 似乎在 GitHub 上有了一个新账号 bcndev/bytecoin,这个账号加入 GitHub 的时间为 2018 年 2 月 6 号。原始的 repo 应该是 amjuarez/bytecoin,但好像一直都不太活跃,star 几百,fork 几千,也是“器宇不凡”。而 cryptonote 的 repo 为 cryptonotefoundation/cryptonote,也是 fork 自 amjuarez/bytecoin。

门罗由一个 7 人的开发者团队领导,其中 5 人匿名,另 2 人已公开。他们是 David Latapie 和 Riccardo Spagni aka “Fluffypony”。项目是开源众筹的形式进行。

门罗的特别之处

那么,到底是什么使得门罗这么热门?CrytoNote 算法给了它什么独特之处?让我们来看一下。

属性 #1: 你的钱就是你的

你对交易有着绝对的控制权。你为你的钱负责。因为你的身份是私有的(private),没有人能够看到你把钱花到了哪儿。

属性 #2: 可替代性

多亏了隐私性,另一个有趣的属性是它是真的可替换的(fungible)。什么是可替代性(fungibility)?Investopedia 是这么定义的:

“Fungibility is a good or asset’s interchangeability with other individual goods or assets of the same type.”

所谓可替换性,指的是一个商品或资产与其他同类型个体商品或资产的互换性。

那么,什么是可替代的,什么又是不可替代的。

假设你从一个朋友那儿借了 20 美元。如果你还给他另外 20 美元的钞票,那么没问题。实际上,你甚至可以还给他一个 10 美元和 2 个 5 美元的钞票。仍然没问题。美元有着可替代的属性(但并非总是如此)。

但是,如果打算周末借某人的车,回来以后还给他另外一辆车,那么他很可能会揍你。实际上,如果你借走一辆红色宝马,然后还给他另一辆红色宝马,显然这并不可行。在这个例子中,车并不是一个可替代的资产。

加密货币中理想的可替代性是什么?

以 bitcoin 为例,它引以为豪的一点就是比特币是开放的账本,但是,这也意味着每个人都可以看到里面的每一笔交易,更重要的是,每个人都可以看到交易的踪迹。简单来说,如果你拥有一个曾经用于某个非法交易的比特币,比如购买毒品,那么它的交易细节里面将会永远有这样的印记。实际上,这“污染(taint)”了你的比特币。

在某些比特币服务提供商和交易所中,这些“被污染”的币与“干净的”币永远都不会被一视同仁。这就泯灭了可替换性(fungibility),这也是比特币经常为人所诟病的一点。毕竟,为什么别人做了错事,需要你来买单呢?

于是门罗诞生了。由于所有数据和交易都是不公开的,没有人能够知道你的门罗币在之前经历了哪些交易,也无法知道你的门罗币会用来购买什么。既然交易历史不会有人知道,自然也就不存在“交易”踪迹。因此,“被污染”的门罗币和“干净的”的门罗币也就不复存在,所以它们是可替换的!

属性 #3: 动态扩展性

比特币的扩展性问题由来已久。简单来说,比特币协议限定了区块大小为 1 Mb(译者注:扩容,BCH 等为后话)。在早期,比特币并没有任何区块大小的限制,但是后来为了防止垃圾交易,就施加了大小限制。

对于区块大小,门罗并没有任何“预先设定”的限制。这同时也意味着恶意矿工可能会通过超大区块堵塞系统。为了防止发生这种情况,系统有一个区块奖励的惩罚(block reward penalty)。工作方式如下:

首先,最后 100 个区块大小的中位数叫做 M100。假设矿工挖出了一个新的块,大小记为 NBS(New Block Size)。如果 NBS > M100,那么区块奖励会随着 NBS 超过 M100 的平方递减。

也就是说,如果 NBS 大于 M100 [10%, 50%, 80%, 100%],那么区块奖励随之减少 [1%, 25%, 64%, 100%]. 通常来说,区块大小超过 2 倍的 M100 是不被允许的,同时如果区块小于等于 60kb 则会免于任何的区块奖励惩罚。

属性 #4: 防 ASIC

在正式开始之前,让我们来明确一点。实际上,门罗不算是严格的“ASIC resistant”,但是制作针对门罗的 ASIC 将会成本高昂,以至于不值得如此操作。为什么呢?记住,当我们说门罗基于 CryptoNote 系统时,已经使得它与比特币截然不同。在基于 CtryptoNote 的系统中所用的哈希算法叫做 "CryptoNight"。

创造 Cryptonight 是为了构建一个更加公平,更加去中心化的货币系统。利用 cryptonight 的加密货币无法用 ASIC 挖矿。它的目的是希望可以杜绝出现矿池的出现,并使得货币分散地更均匀。

那么,是什么使得 CryptoNight 防 ASIC?(以下内容来自monero.stackexchange.com 用户 user36303 的回答。)

Crytponight 需要 2 MB 的快速内存来工作。这意味着并行哈希会被一个芯片可以分配多少内存限制,同时保持尽可能地低成本,以免“入不敷出”。2 MB 的内存要比 SHA256 电路要耗费多得多的硅。

Cryptonight 是 CPU 和 GPU 友好型,因为它利用了 AES-Ni 指令集。基本上,如果你用的是没那么老的机器,由 Cryptonight 所完成的一些工作已经在硬件层完成。

已经有不少说法说,想要把门罗从工作量证明算法切换至“Cuckoo Cycle”(一种不同于工作量证明的哈希)。如果这种切换真的发生,那么在 R&D 门罗 ASIC 友好型所耗费的所有工作都将付之东流。

属性 #5: 多密钥

门罗最令人费解的一个地方就是它的多重密钥(multiple keys)。在比特币和以太坊等等,你只有一个公钥和一个私钥。但是,在门罗这样的系统里,远不止此。

view key:门罗有一个 public view key 和 private view key。

public view key 用于生成一次性的 stealth public address(隐匿的公开地址),资金将会通过这个地址发送给接收者(后面有解释)。

private view key 用于接收者扫描区块链来找到发送给他们的资金。

这是整个过程的概述。

public view key 构成门罗地址的第一部分。

spend key: 如果 view key 大多是为了交易接收方,那么 spend key 就是全部有关于发送方。跟上面一样,有两个 spend key:public spend key 和 private spend key。

public spend key 帮助发送方参与环交易(ring transaction),并验证密钥镜像(key image)的签名(后文有介绍)

private spend key 帮助创建密钥镜像,密钥镜像能够使得他们能够发送交易。

public spend key 构成门罗地址第二部分。

门罗地址是一个 95 个字符的字符串,分别由 public spend key 和 public view key 构成。

现在可能会有点令人疑惑,不过先记住就好了,这些概念在接下来的几个章节会越来越清晰。

门罗中的密码学

加密货币交易的工作方式是怎样的?

每笔交易都有两边,一边是输入,一边是输出。假设 Alice 需要给 Bob 发送一些比特币,交易看起来是怎样的?

交易输入

为了发起交易,Alice 需要花费从之前各种交易收到的比特币。记住,我们之前说过,每个币都来源于之前的交易。所以,Alice 可以将之前交易的输出作为新交易的输入。后面,当我们谈到“输出”时,尤其是在环签名(ring signature)一节,我们指的是将旧交易的输出成为新交易的输入。

所以,假设 Alice 需要从下列交易从获得输入,比如 TX(0), TX(1) 和 TX(2)。这三笔交易会被一起包含到这笔交易,并有一个交易输出 TX(Input).

这是从输入来看,下面让我们来看一下输出。

交易输出

输出就是 Bob 可以在之后交易花费的钱,也可能会出现找零,找零会返回给 Alice。找零会成为 Alice 未来任意交易的输入。

这笔交易非常简单,因为只有一个输出(除了找零)。其实交易很可能会有多个输出。

有了公钥加密以后,比特币交易才成为可能。为了对它有一个基本的理解,请看下图:

比特币用户首先选择私钥,公钥由私钥衍生而来。将公钥进行哈希得到一个公开的地址公布出去。如果 Alice 要给 Bob 发送 BTC,Alice 直接给 Bob 公开的地址发送即可。

那么,问题来了。这个地址是公开的!任何人都可以知道这个地址属于谁,继而知道他整个的交易历史,同时知道他有多少比特币。尽管比特币作为一个去中心化的加密货币非常成功,但是却不是一个好的隐私货币系统。

关于门罗的起源,属性以及其中涉及到的密码学就介绍到这里,下一篇我们将着重介绍门罗是如何利用密码学进行交易隐私保护的,而这也让门罗成为一个理想的电子现金。

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20180930G1IHX300?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券