Grin

Mimblewimble 协议在现实世界中的实现有两个,一个是 Beam ,另外一个就是我们本次要聊的 Grin 项目。Grin 官网 https://grin-tech.org/ 上可以看到 Grin 主打三大特性,分别是隐私( private )、可扩展性( scalablity )和开放( open )。

开放

我们先从开放这个特性讲起,聊聊 Grin 项目的基本概况。

首先就是为什么会有这个项目。Mimblewimble 最初被定义作为一种对比特币的改进。然而比特币网络对新技术的采用一直非常谨慎,并且 Mimblewimble 协议跟目前的比特币协议也差别巨大。所以 Mimblewimble 要想尽快落地,选择作为一条独立的链并发行一种独立的加密货币可能是最好的方式。 Grin 于 2016 年 11 月产生,成为 Mimblewimble 协议的第一个实现。

Grin 项目有着比常见区块链项目更加开放的精神。例如,为了避免被少数人控制项目,Grin 采用捐款形式来支持项目,而不会接受融资或者进行 ICO 。另外,项目也没有给开发团队预留币,所有的币都要在上线后由矿工自己去挖。项目的这种无私的态度得到了来自多方面的支持,再加上 Mimblewimble 协议的很多相关技术来自比特币的核心团队,也可以说是系出名门。所以 2019年1月15日,Grin 主网上线这一事件,从 Peter 的角度观察,就在整个加密货币社区引起了高度的重视。

总之,Grin 项目的开放以及它对社区的拥抱,让大家非常喜欢这个项目,Peter 觉得,这个项目如果能成功,不仅是加密货币的又一个胜利,也能是社区的胜利。

隐私

Grin 的出现,最主要的目的就是用来弥补比特币在隐私保护方面的不足。接下来,聊聊隐私这个特性。

Grin 没有地址的概念。没有地址意味着 Grin 和 Bitcoin 的确有着非常大的差异,理解这一点对于理解 Grin 的隐私机制是至关重要的。Grin 所有的 output(跟比特币的交易的 output 是一个意思)都是独一无二的,跟之前的 output 没有任何共同的数据。比特币转账是需要知道对方的地址的,而 Grin 的交易是在双方交互中生成的。所谓的交互就是双方的钱包事先沟通一些只有双方知道的秘密数据。

双方沟通的数据就是 “盲因子”,英文叫 blinding factors 。例如,咱俩约定一个5作为盲因子,那么我给你转账了一个币,但是我会乘以五,这样网络上的其他人就无法看到咱们的真实转账金额了,这就是盲因子名字的由来。隐私交易要求我们达成以下三点:

通过“盲因子”,我们就能达成以上三点,因为我们可以向系统暴露足够多的信息,同时掩盖必要的信息。具体使用过程中,会使用非常大的数作为盲因子,同时会涉及到椭圆曲线密码学。关于“盲因子”的详细原理介绍,可以参考 https://medium.com/beam-mw/mimblewimble-explained-like-youre-12-d779a5bb483d 。

总之,Grin 避免了比特币暴露交易双方地址以及交易金额的问题,达成了很高程度的隐私。

可扩展性

通常意义上的隐私币由于要进行更为繁重的加密运算,都会让网络背上更沉重的运算和存储负担,但是 Grin 项目却能减轻存储负担,从而提高网络的可扩展性。

Grin 不存储完整的交易历史。Grin 区块链基本只需要记录每个用户的余额,而过去的很多交易都会直接删除。所以 Grin 区块链的总数据量只会随着用户数量的增加而增加,而不会因为交易数量的增加而迅速膨胀。因为验证机制不同,交易中也没有类似比特币那样的脚本代码,进一步减少了数据量。

总之,Grin 可以保证一路轻装前行,避免向比特币那样因为区块链数据过大而造成的种种问题。

总结

以上就是对 Grin 项目的简单介绍了。总体而言就是把 Mimblewimble 的隐私和可扩展性实现了落地。另外,Grin 还有很多优势是本文没有提到的。例如,通过 random walk 机制,Grin 可以防止有人追踪到交易的发源地,Grin 也使用看不同的 POW 挖矿算法,可以有效处理专业挖矿芯片挖矿和 CPU 挖矿之间的关系。更多的细节,可以到 Grin 的 Github 仓库中找到详细的文档 https://github.com/mimblewimble/grin/blob/master/doc/intro.md 。

参考: