177 lines
9.3 KiB
Markdown
177 lines
9.3 KiB
Markdown
|
# 原创
|
|||
|
: 了解门罗币
|
|||
|
|
|||
|
# 了解门罗币
|
|||
|
|
|||
|
>
|
|||
|
参考: <br/> 1.[《区块链教程》](https://liuchengxu.gitbooks.io/blockchain-tutorial/content/) <br/> 2. [what is monero](https://blockgeeks.com/guides/what-is-monero/)
|
|||
|
|
|||
|
|
|||
|
根据 [Monero(门罗) 官网](https://getmonero.org/): Monero 是一个安全,隐私和不可追踪的加密货币。通过使用密码学中一种特殊的方法,门罗确保了所有交易保持 100% 的不可关联和不可追溯性(unlinkable and untraceable)。
|
|||
|
|
|||
|
尽管 bytecoin 十分有前景,但是人们也注意到发生了很多负面的事情,并且鉴于它已经产出了 80% 的币。所以,决定将 bytocin 分叉,新链上的币叫做 Bitmonero,最终被重新命名为 Monero(门罗),在世界语(Esperanto)中叫做“coin”,硬币的意思。门罗的出块时间为两分钟。
|
|||
|
|
|||
|
门罗由一个 7 人的开发者团队领导,其中 5 人匿名,另 2 人已公开。他们是 David Latapie 和 Riccardo Spagni aka “Fluffypony”。项目是开源众筹的形式进行。
|
|||
|
|
|||
|
## 门罗的特别之处
|
|||
|
|
|||
|
门罗采用CrytoNote算法,使得它具有以下几个特性。
|
|||
|
|
|||
|
加密货币中理想的可替代性是什么?
|
|||
|
|
|||
|
>
|
|||
|
以 [bitcoin](https://blockgeeks.com/guides/what-is-bitcoin-a-step-by-step-guide/) 为例,它引以为豪的一点就是比特币是开放的账本,但是,这也意味着每个人都可以看到里面的每一笔交易,更重要的是,每个人都可以看到交易的踪迹。简单来说,如果你拥有一个曾经用于某个非法交易的比特币,比如购买毒品,那么它的交易细节里面将会永远有这样的印记。实际上,这“污染(taint)”了你的比特币。
|
|||
|
在某些比特币服务提供商和交易所中,这些“被污染”的币与“干净的”币永远都不会被一视同仁。这就泯灭了可替换性(fungibility),这也是比特币经常为人所诟病的一点。毕竟,为什么别人做了错事,需要你来买单呢?
|
|||
|
|
|||
|
|
|||
|
于是门罗诞生了。由于所有数据和交易都是不公开的,没有人能够知道你的门罗币在之前经历了哪些交易,也无法知道你的门罗币会用来购买什么。
|
|||
|
|
|||
|
## 加密货币交易的工作方式
|
|||
|
|
|||
|
假设 Alice 需要给 Bob 发送一些比特币,交易看起来是怎样的?
|
|||
|
|
|||
|
### 交易输入
|
|||
|
|
|||
|
每个币都来源于之前的交易。所以,Alice 可以将之前交易的输出作为新交易的输入。Alice 需要从下列交易从获得输入,比如 TX(0), TX(1) 和 TX(2)。这三笔交易会被一起包含到这笔交易,并有一个交易输出 TX(Input)。
|
|||
|
|
|||
|
### 交易输出
|
|||
|
|
|||
|
输出就是 Bob 可以在之后交易花费的钱,也可能会出现找零,找零会返回给 Alice。找零会成为 Alice 未来任意交易的输入。
|
|||
|
|
|||
|
有了公钥加密以后,比特币交易才成为可能。为了对它有一个基本的理解,请看下图:
|
|||
|
|
|||
|
比特币用户首先选择私钥,公钥由私钥衍生而来。将公钥进行哈希得到一个公开的地址公布出去。如果 Alice 要给 Bob 发送 BTC,Alice 直接给 Bob 公开的地址发送即可。
|
|||
|
|
|||
|
门罗团队给出的“电子现金三角(Electronic cash triangle)”
|
|||
|
|
|||
|
正如他们所说,一个理想的电子现金应该满足三个前提:**电子的、去中心化的、隐私的**
|
|||
|
|
|||
|
门罗背后的哲学就是完全隐私和不透明性。发送方隐私由环签名(Ring Signature)实现。
|
|||
|
|
|||
|
## 门罗密码学
|
|||
|
|
|||
|
### Ring Signatures
|
|||
|
|
|||
|
环签名,简单来说就是交易过程中把几个人签名混合在一起,然后得到一个独一无二的签名,这样就没人知道这个签名是否是你本人的。
|
|||
|
|
|||
|
假设,Alice 发送 1000 XMR(XMR 即门罗币) 给 Bob,系统会如何使用环签名来隐藏她的身份?
|
|||
|
|
|||
|
首先,Alice 会确认她的“ring size(环大小)”。ring size 是取自区块链的随机输出,它等于 Alice 的输出值,即 1000 XMR。ring size 越大,交易越大,继而交易费越高。然后,她用 private spend key 对输出进行签名,并发给到区块链。另一点要注意的是,Alice 不需要向之前交易的所有者发送请求来使用这些输出。
|
|||
|
|
|||
|
假设 Alice 选择的 ring size 为 5 ,也就是说 4 个 decoy output(诱骗输出) 和它自己的交易,从外面看起来就像这样:
|
|||
|
|
|||
|
在一个环签名交易中,任意一个 decoy 就像真实输出一样,因为任何不相关的第三方(包括矿工)都无法知道发送方是谁。
|
|||
|
|
|||
|
**防止双花:**
|
|||
|
|
|||
|
矿工要做的一个重要的事情就是防止“双花”。双花就是指在同一时间,同一笔钱出现在两笔,甚至更多的交易中。双花被矿工所解决。在一个区块链中,只有当矿工将交易包含在区块并出块,交易才算完成。假设 A 打算给 B 发送一个比特币,然后它发送同样一个币给 C,矿工会把其中一笔交易放到块里,并在处理过程中覆盖另一笔交易,防止双花。但是在门罗中,由于环签名这些都是不可见的。那么要如何防止双花呢?
|
|||
|
|
|||
|
门罗的每一笔交易都有它自己的唯一的**密钥镜像(key image)**,鉴于密钥镜像对于每个交易都是不同的,矿工就可以非常容易地检测,判断是否双花。
|
|||
|
|
|||
|
### stealth address
|
|||
|
|
|||
|
门罗的最大一个卖点就是交易的不可关联性(unlinkability)。基本上,如果有人发送给你 200 XMR,应该没有人知道这笔钱是发送给你的。如果 Alice 要给 Bob 发送门罗币,除了 Alice,应该没人任何人知道 Bob 就是这笔钱的接收者。
|
|||
|
|
|||
|
**门罗要如何保证 Bob 的隐私?**
|
|||
|
|
|||
|
Bob 有两个 public key:public view key 和 public send key。为了推进交易,Alice 的钱包会用 Bob 的 public view key 和 public send key 来生成一次性独一无二的 public key。
|
|||
|
|
|||
|
**one-time public key (P) 的计算方式:**
|
|||
|
P=H(rA)G+B
|
|||
|
|
|||
|
|
|||
|
|
|||
|
P
|
|||
|
|
|||
|
|
|||
|
=
|
|||
|
|
|||
|
|
|||
|
H
|
|||
|
|
|||
|
|
|||
|
(
|
|||
|
|
|||
|
|
|||
|
r
|
|||
|
|
|||
|
|
|||
|
A
|
|||
|
|
|||
|
|
|||
|
)
|
|||
|
|
|||
|
|
|||
|
G
|
|||
|
|
|||
|
|
|||
|
+
|
|||
|
|
|||
|
|
|||
|
B
|
|||
|
|
|||
|
|
|||
|
|
|||
|
其中:
|
|||
|
|
|||
|
由这种方法生成一次性公钥,然后再生成在区块链里一次性的公开地址,这样的地址就叫做“stealth address”,Alice 就通过它给 Bob 发送门罗币。现在,Bob 要如何从数据的随机分布中解锁收到的门罗币呢?
|
|||
|
|
|||
|
Bob 也有一个 private spend key。private spend key 就是用来帮助 Bob 扫描区块链找到他的相关交易。当 Bob 找到这笔交易,他可以通过一个 private key 取回他的门罗币,这个 private key 与一次性的 public key 相关。因此 Alice 付给 Bob 门罗币,无人知晓。
|
|||
|
|
|||
|
**key image**
|
|||
|
|
|||
|
计算方式:
|
|||
|
I=xH(P)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
I
|
|||
|
|
|||
|
|
|||
|
=
|
|||
|
|
|||
|
|
|||
|
x
|
|||
|
|
|||
|
|
|||
|
H
|
|||
|
|
|||
|
|
|||
|
(
|
|||
|
|
|||
|
|
|||
|
P
|
|||
|
|
|||
|
|
|||
|
)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
从 key image “I” 计算出一次性的 public address P 十分困难(这是密码学哈希函数的一个属性,正着算很容易,反推很难),因此 Alice 的身份永远也不会暴露。
|
|||
|
|
|||
|
当 P 被哈希的时候,永远都会返回同一个值,意味着 H(P) 也总是同一个值。既然 x 的值对于 Alice 来说是个常数,她也就是永远也无法生成多个 I 值。这使得 key image 对于每一笔交易都是不同的。
|
|||
|
|
|||
|
### Ring Confidential Transactions
|
|||
|
|
|||
|
基于 Gergory Maxwell 的研究实现了 Ring CT,Ring CT保证了交易本身的匿名性,它在链上隐藏了交易的数额。这也意味着所有的交易输入都不需要再被拆分为已知的面额,钱包现在可以从任意的 Ring CT 输出中选择 ring 成员。
|
|||
|
|
|||
|
环形加密技术的基础仍旧是与比特币一样的基于Hash值的公钥+私钥加解机制。只是比特币是用接受者的公钥加密,接受者用与之配对的私钥解密验证。而环形加密则使用了多个公钥进行加密,并用接受者的私钥进行解密验证。
|
|||
|
|
|||
|
#### Kovri and I2P
|
|||
|
|
|||
|
I2P 是一个路由系统,它能够让应用秘密地互相发送信息而无须任何外部干涉。Kovri 是 I2P 的 C++ 实现,它也会被集成到门罗里面。**Kovri 将会隐藏你的网络流量**,如此一来,被动的网络监控就根本不会暴露你正在使用门罗。为此,你的所有门罗流量将会被加密并通过 I2P 节点路由。节点就像瞎的看门人,它们会知道你的信息通过,但是**不知道这些去向哪儿以及信息的具体内容**。
|
|||
|
|
|||
|
### 门罗价值和市值
|
|||
|
|
|||
|
目前,XMR流通市值$1,522,148,966,流通量16,335,709 XMR每个XMR¥637,占全球总市场0.7%,排名10。门罗总量为 1840 万,挖矿奖励会持续到 2022 年 5 月 31。之后,系统设定为 0.3 XMR/min 的奖励。这是为了矿工能过持续的激励挖矿,而不仅仅依赖于交易费,毕竟门罗已经被挖完了。
|
|||
|
|
|||
|
### 门罗的优势与劣势
|
|||
|
|
|||
|
### 优势
|
|||
|
|
|||
|
### 劣势
|
|||
|
|
|||
|
**毫无疑问,未来会更加开放和去中心化,门罗也会因其隐私性而越具吸引力。特别有趣之处在于,它是少数几个不是基于比特币的币,却是同时有着真正价值的“潜力股”。对门罗来说,随着它已经经历了惊人的增长,未来依旧光明一片。当实现 Kovri 以后,相信一切会变得更加有趣.**
|
|||
|
|
|||
|
相关链接:[cryptonote系统](https://github.com/cryptonotefoundation/cryptonote) 、[monero](https://getmonero.org/)、[了解门罗币](https://www.ds-vip.top/%E5%8C%BA%E5%9D%97%E9%93%BE/2018/08/21/start-monero/)
|