# MINA｜Mina 基于zk-SNARK技术的轻量化区块链，公链战争中独具特色的项目-1/18

By [钻石手DiamondHands](https://paragraph.com/@diamondhands) · 2022-01-18

---

> **一旦学会观察一种特定模式，你就可以在任何目光所及之处识别出它来。--伊藤穰《爆裂》**

`本期内容YouTube链接：`

[![]({{DOMAIN}}/editor/youtube/play.png)](https://www.youtube.com/watch?v=DocVqOvXRpU)

`本期内容哔哩哔哩链接：`

[https://www.bilibili.com/video/BV17S4y1o7Wq/](https://www.bilibili.com/video/BV17S4y1o7Wq/)

当我们的注意力被火热的新公链战争所吸引时，一个底层问题似乎被我们忽略了： 无论对以太坊和比特币做出了怎样的创新， 区块链的数据结构没有发生变化。

随着交易记录的增加， 不同的区块链账本都在变得越来越大， 这也使得普通人想要参与运行记账节点变得越来越难。 而新公链们似乎都在忙着解决拥堵和高手续费问题，鲜有关注区块存储的大小问题， 那么如何把区块链变得轻量化， 似乎就成了目前公链竞争红海中的一条差异化赛道。

今天我们要讲的项目--[Mina](https://minaprotocol.com/), 就是这个赛道中可能被人忽视的选手， 它声称能在将整个区块链的大小压缩到22Kb左右的同时，保证数据的安全性和隐私性， 这种独特的竞争力使其拥有了其他公链所不具备的潜力，也许值得我们关注。 **通证--MINA**

![](https://storage.googleapis.com/papyrus_images/928731bcfe78f942e8aef367f4a2116d46d4ace120c659a2c2272db67bdcdac2.png)

Mina是什么：使用zk-SNARK技术，将区块大小压缩在kb级别的轻量化区块链
----------------------------------------

### 公链账本不断变大，从人均可验证到人均验证不起

如前文所述，比特币和以太坊的账本都在不断增大， 下图则直观的显示了过去十年来比特币（包括相关分叉币）和以太坊等公链的历史账本大小：

![](https://storage.googleapis.com/papyrus_images/ec6ab2b212b7404c5f3c8b81105468db324b251fdda7d09b91ce92f01cb41235.png)

从图中可以看出，最近五年比特币和以太坊的账本大小激增， 而比特币的总账本大小更是突破了370GB，这也让希望运行全节点的个人用户望而却步：

1-同步370G+的历史数据可能需要不间断的下载1-2天；

2-370G+的数据大小足以占用一块主流个人电脑的硬盘大部分的空间。

实际上比特币的账本维护工作早已不是普通个人玩家能够负担得起的，大规模的矿池和显卡升级的军备竞赛过程中， 比特币的记账权早已转移到少数“算力大户”的手中， 这种现象其实已经与区块链设计的“民主化”和“去中心化”的初衷相违背了。

虽然公链的技术特征是人人都可参与验证账本的真实性， 但现状却是不一定人人都“验证得起”。 因为高验证成本，实际上存在着一定规模的“记账代理”（矿池和数据中心等），

![](https://storage.googleapis.com/papyrus_images/a7c163e665972f36d25f935dee26bdec1492a3997dbc071ad97f10e4bc0502ef.png)

是否环保和产生社会价值暂且不论，而一旦某些代理算力足够大，他们还是存在非理性的发起51%攻击的可能。 以上这一切，都让公链的验证和使用离普通用户足够远，实际上是不利于整个行业发展的。

### zk-SNARK技术，从存数据到存“正确性证明”，压缩账本大小的关键

**面对账本变大的问题，Mina的解决方案是压缩账本到恒定的22kb左右， 使得无论区块链上记录了多少笔交易，账本的大小保持不变。** 这听起来似乎有些不太可能，而让Mina的方案能够实际落地的关键， 则是其背后的**zk-SNARK技术**。

![](https://storage.googleapis.com/papyrus_images/b1662d0da666a552d15b434048d2decf7662e1c9f33d6f5406453cf34b0cc2cd.png)

zk-SNARK实际上是一种算法，名称是一串英文的缩写，即zero-knowledge succinct non-interactive arguments of knowledge， 有技术基础的读者，可以直接[点击这里](https://blockchain.iethpay.com/zkSNARK-intro.html)了解该技术。 对于新手读者来说， 我们很难完全给出一个直译，但下面这个例子可以让你迅速理解其中的含义：

简例：我既想证明拥有房子的钥匙，但又不想把钥匙给你看。 你在窗边看到房里有一个苹果，如果我能把这个苹果拿给你，就证明了我确实拥有这间房的钥匙。

*   zero-knowledge: 0知识证明，即在不暴露关键隐私（钥匙）情况下向对方证明一件事情（房子所有权）。
    
*   succinct：简洁性，“我有房里的苹果”这句话证据占用的空间很小。
    
*   non-interactive：无需交互性，你不用麻烦的翻箱倒柜搜钥匙，我告诉你有苹果就是证据。
    

这个技术通俗来说就是：**我可以给出占用空间很小的证明文件，用来确定某件事情是对的，而无需展示这件事情本身。**

了解这一点后，我们可以把zk-SNARK用在压缩区块大小上。

对传统区块链来说，整个账本中的历史交易记录数据量非常大， 因为每个区块中都存了当时发生的某些交易，再进行堆叠数据量可想而知。 使用zk-SNARK,只需要把每个区块中的交易做一次证明：“这些交易是正确的”， 然后在区块中仅存入这个证明即可。

这样就实现了一种效果：区块链上储存的全都是交易正确性的证明，而非交易本身。 因为前面说到的这种证明占用空间很小，因此区块的大小得以被压缩。

![](https://storage.googleapis.com/papyrus_images/6b247352c77b63af2a512f4835a277fffc12a7d02d9c149de664079513beec1c.png)

### Mina的创新：套娃使用zk-SNARK，将区块的总大小保持在恒定的小量级

如果按照上述做法，为每个区块创建一个SNARK， 每个区块的确实是变小了。 但是随着时间的推移，SNARK也会堆积起来， 100个包含SNARK的区块，会导致区块链整体又变大了100倍。 因此单纯的压缩一个区块的大小还是治标不治本的， 为了从根源上压缩整个区块链的大小， Mina创新性的对zk-SNARK进行了“递归”使用。

递归是一种数学意义上函数调用方法，为了避免学术化， 我们给出一个非常通俗的概念来替换---“套娃”， 即Mina压缩区块链账本的最终办法是：套娃使用zk-SNARK技术。 我们用Mina官方推特上的一张非常有趣的图来解释这个方法。

![](https://storage.googleapis.com/papyrus_images/560b66de39b860da9e0c8ba59eb55c424b76e5da8f2a6ddaf6d694c8ecec2727.png)

如果一个消息被转发了100次，怎么证明如下两个问题：

1-我确实是第100手的转发者；

2-之前的99手真实存在且没有间断。

答案就是套娃，即每一个转发人都引用上一个转发人的截图， 这样第100个人**只需要1张截图**就可以回答上面两个问题， 而无需逐个搜集前99张图。

同样的，对一个区块链来说， 如果你想证明第100号区块是正确的，那么就必须证明前99号区块全部都是正确的， 这时可以采取的办法是：

*   对1号区块做一次zk-SNARK证明：得到“1号区块是对的”的证明文件；
    
*   在对2号区块做证明时，也把“1号区块是对的”的证明文件放进去，得到“1+2号都是对的”的证明；
    
*   如此套娃到第100号时，即可证明前面99个区块都是正确的。
    

![](https://storage.googleapis.com/papyrus_images/89f439a7a0936dfc92003e26241b3d82a98cbb4b97f75ad73edb8d785cc098f8.png)

\*\*对于当前任意一个最新的区块来说，只需要一个最新的证明即可验证过往信息全部的正确性，\*\*而这个最新的证明仅仅需要21kb左右：1kb的SNARK证明 + 20kb的过往交易路径摘要， 这就保证了对于任意时间点来说，Mina区块链上只保存了当前正确状态的更新， 而没有像比特币和以太坊的区块链那样保存大量的交易原始数据。 由此看出，Mina通过套娃使用zk-SNARK,达到了一举两得的效果：

**永远只存1个21kb大小的最新证明 + 该证明包含了全部正确的历史。**

![](https://storage.googleapis.com/papyrus_images/51bc785264e5cd5f8cd68faa6568f510cedaa71683d8d58340e0ec09aff150d3.png)

### Mina的应用：零知识证明打造可信验证生态，账本轻量化可与其他公链打造合作场景

Mina强调轻量化的区块链，较传统区块链来说，其好处是显而易见的：

*   降低硬件门槛，更多人可以充当验证节点；
    
*   网络运行更加敏捷，可以快速验证链上信息的正确性；
    
*   网络节点增加使得网络本身更加强壮，安全性提升；
    
*   SNARK的使用不光给账本瘦身，还能支撑特定的数据验证场景。
    

而针对特定的数据验证场景，Mina也打造了一款名为snapp的dapp应用， 使得用户通过网页端提交的链下数据， 通过与snapp进行交互，使用零知识证明的方法， 在Mina区块链上生成对这些链下数据证明的状态， 而不保存链下数据本身。

![](https://storage.googleapis.com/papyrus_images/8700c1ff806acebfd65d24264f1f3d0422918457ca1b78840f5bf1375b8f38ea.png)

这样的特性可以使snapp成为Mina区块链与现实互联网交互的网关，并且可以关联需要出示证明的应用场景，官方也给出了几个例子：

例如，我需要向你证明我的交易利润，但又不想暴露我的交易细节； 我想证明我的信用评分，但又不想暴露我的个人信息； 我想证明我知道一个数学题的答案，但又不想告诉你这个答案是什么等等。

![](https://storage.googleapis.com/papyrus_images/37d7fe7a906a26173e1f06f3a76739a843ba3a2881b1083f5c474b0dabbcb374.png)

以上例子发散后可以用于任何需要隐私数据证明的场景中，如学位证明、健康证明、身份登陆、征信评估等更多商务和政务领域， 具有出圈的潜力和正向社会效应。

此外，考虑圈内的应用场景，由于Mina区块链上的数据很小， 任何其他区块链上的智能合约都可以轻松的验证Mina上的证明， 因此Mina也可以充当跨链桥的作用。 例如以太坊上的用户想使用Snapp来进行某种验证， 用户不需要把自己在以太坊上的数据进行迁移， 仅需要Mina提供一个你确实是这些数据的拥有者的证明， 就可以访问Snapp。

这也意味着任何Mina以其轻量化的特性可以方便的接入任意一条公链， 为自己导入更多的用户流量。 实际上Mina也正在和以太坊基金会合作， 双方正在出资寻求一个第三方团队， 能够给出EVM（以太坊虚拟机）和SNARK结合的优化方案， 其目的是为了以太坊的扩容，同时实现Mina和ETH的互操作性。

Mina的经济设计：MINA作为维护账本的核心激励，供应量逐年增加，通胀率逐年递减
-----------------------------------------

Mina区块链中的核心通证是MINA，实际上它的作用与ETH和BTC类似， 都是分发给记账节点，作为它们记账和维护账本的奖励。 但Mina区块链上维护账本的方式与ETH和BTC又有所不同， 账本的维护者包括区块生产者（BP）和zk-SNARK证明的提供者（snarker), 二者共同获得MINA通证作为奖励。 而MINA没有用PoW的方式奖励给节点，其特征更类似于PoS和市场竞价的结合，

1.  需要质押一定数量的MINA，才能成为区块生产者（BP，类似记账节点）；
    
2.  BP生产区块，将搜集全网的交易，其中愿意支付给BP更多MINA手续费的交易会被优先打包；
    
3.  对于每一笔交易，都需要做一次zk-SNARK证明，由snarker来完成这一动作；
    
4.  snarker做证明存在成本，该成本也以MINA计算；
    
5.  snarker们竞相报价，BP选择报价最低的snarker做的证明，和交易一起打包；
    
6.  最终BP得到的MINA奖励=所有交易的手续费 - 支付给snarker的费用；
    
7.  snarker得到的MINA奖励=所有竞标成功的SNARK证明带来的奖励。
    

因此从Mina的经济设计来看，BP和snarker存在互相需要的关系，

双方也按照不同的比例瓜分了MINA通证的奖励。

![](https://storage.googleapis.com/papyrus_images/2d69b10e4a36a2f9835d4e4a390bdc464c80395d752e67a65797f869ae87bd16.png)

在了解经济设计中的角色之后，我们回到MINA通证的本身，官方设计其初始供应量为10亿，之后会进行增发，用以对产生区块进行奖励， 整个增发的时间持续8年左右。 从官方白皮书给出的数据来看，8年后供应量将会在20亿左右。

而与通证数量相对，官方也设计了逐年递减的通胀比率， 初始为12%，逐年递减到7%左右。 这种设计也是为了持续激励验证节点（BP和snarker)来维护账本： 如果后期交易的手续费没有提高，通胀率的下降意味着单位MINA价值的提高， 节点在手续费用不增加的情况下，仍有利可图。

![](https://storage.googleapis.com/papyrus_images/fa0c0968c3158f6556863dca811d062705cf1c5db38b0fd73d9c3c17cfab9c11.png)

另外，Mina的主网于2021年3月上线，此时开始计算生产区块的额外奖励，而对于上线开始15个月内没有被锁定通证的用户， 官方提供了一项“超级奖励”的激励计划，鼓励用于进行质押， 越早抵押获得的收益率越高。

![](https://storage.googleapis.com/papyrus_images/1936565440bede748acd1276ad5a6b313cd324757da27cf3e9a6dbdd40624242.png)

Mina的团队和资方：密码学团队O(1)lab+顶级资方加持
------------------------------

Mina背后的团队来自于美国的O(1)Labs，于2017年成立， 之前创立过一个名为Coda的项目，而Mina就是由Coda改名而来。 查看其团队构成可以发现，CEO早期曾在Mozilla（火狐浏览器）工作， 随后创立了O(1)Labs和Mina基金会。 而其他董事会成员则来自于其他知名加密和算法项目，如Zcash和Tendermint。

![](https://storage.googleapis.com/papyrus_images/989fc99a3ac1773cf686d078a41ffd966f69df9cebb13d97556e775ee28e9fe6.png)

此外，项目共有30多位贡献者，分别致力于开发、市场和公关方面的工作。我们也从其他国外信息统计网站上看到，O(1)Labs的公司规模在50人以内， 这也与官网所展示的信息基本一致。

这样的团队规模对于一个初创公司来说是比较大的一个量级， 也符合一个底层基础设置构建所需要的人力和工作量的要求。

![](https://storage.googleapis.com/papyrus_images/9c0270d7cea7928521e8f7c7d107b7ecee4cbc68b4fb94bfb4673f0416f02f9b.png)

而在资方层面，Mina也拥有相当豪华的配置，Coinbase Ventures、MetaStable、Polychain Capital、Three Arrows Capital、HashKey Capital、Fenbushi Capital、Paradigm、Multicoin等耳熟能详的资方都对其进行了投资， 优秀资方的扎堆，从营销层面来讲能够吸引大量的流量对项目予以关注。

而从实际执行层面，资方所带来的充裕资金和行业人脉都能够为Mina的生态发展拓宽道路， 各类黑客松、AMA、空投、路演、传播和营销活动等都会得到强有力的资金和资源支持， 进而吸引用户，使得一个新底层公链的生态变得壮大。

![](https://storage.googleapis.com/papyrus_images/da4d5cc3cb6cece5b90fc3d66bc2f34d98f263388fc3ee5ae26ddd8827194346.png)

Mina的潜力和风险：轻量化和隐私计算带来独特差异，但起步较晚能否持续
-----------------------------------

整体来看，Mina主打轻量化和隐私计算， 作为一个底层区块链来说，这2点足够有差异化， 其背后也有过硬的技术团队和强劲的资方支撑。 因此Mina会有自己的发展赛道，短时间来看还没有其他能与其功能类似的公链。

此外正如我们前文所述，Mina目前体量较小， 还无法与其他知名的公链项目正面抗衡， 但它提供的zk-SNARK证明却可以让其他的公链轻松验证， 其轻量化的特性可以方便的接入任意一条公链，为自己导入更多的用户流量。

这种借势的特性正好在新公链战争的夹缝中找到了合适的用武之地， 不同链上的用户都可以接入Mina，一旦营销得当或者数据验证场景真实出现， Mina或有可能借势而起。

但我们也需要提醒， 从实际数据上来看，目前Mina使用的量还比较少， 每日的活跃节点大约在150个左右， 每日新增的账户数则在200-300左右。

![](https://storage.googleapis.com/papyrus_images/c456763a6aa19ac639b8023474729f14645e063fc06113d1110db234939261f2.png)

这组数据一方面体现了目前Mina可能还不那么为人所知，在充满潜力的同时，另一方面体现的是其生态发展上的掣肘， 如何真正的拓展更多的应用场景，将与其他公链合作的特性真正落地， 是目前摆在Mina面前的重要问题。

Mina上线的时间相对于其他公链来说也比较晚（2021年3月）， 在不具备先发优势的条件下，需要更多技术和营销层面的努力， 去提升项目的易用性和知名度。 而对于我们来说，当链游的热度暂时平息的时候， 多关注这些底层技术项目，也许会成为下一个应用浪潮来临时的热点。

**参考资料：**

1.  zk-SNARK技术讲解和开源知识 [https://blockchain.iethpay.com/zkSNARK-intro.html](https://blockchain.iethpay.com/zkSNARK-intro.html)
    
2.  Mina SDK接入教程 [https://docs.minaprotocol.com/en/developers/client-sdk](https://docs.minaprotocol.com/en/developers/client-sdk)
    
3.  Snapp Dapp简介 [https://docs.minaprotocol.com/en/snapps](https://docs.minaprotocol.com/en/snapps)
    
4.  深潮文章：通过递归零知识证明打通数据交互：Mina 生态应用场景丰富 [通过递归零知识证明打通数据交互:Mina 生态应用场景丰富 - 深潮TechFlow](https://www.techflow520.com/news/370)
    
5.  O1labs参考信息 [O(1) Labs - Crunchbase Investor Profile & Investments](https://www.crunchbase.com/organization/o-1-labs)
    
6.  mina区块链浏览器 [https://minaexplorer.com/stats](https://minaexplorer.com/stats)
    
7.  mina经济白皮书 [https://minaprotocol.com/wp-content/uploads/economicsWhitepaper.pdf](https://minaprotocol.com/wp-content/uploads/economicsWhitepaper.pdf)
    

> **创作不易，您的关注与转发就是对我们最大的支持。**
> 
> 同时您只需要将我们\*\*「任意一篇文章、视频转发到任意群组/朋友圈」\*\*，
> 
> 或者「**转推**[**钻石手小伙伴的任一推特**](https://twitter.com/zolo_hands)」即可获得我们一份**免费的How to defi中文版、资方排名、defi指标参考资料。**
> 
> 完成后截图发送到微信公众号后台，我们将私发您材料链接。

再次感谢大家的支持，你还可以在以下地方找到我们：

[**钻石手Twitter**](https://twitter.com/zolo_hands)

[**钻石手YouTube**](https://www.youtube.com/channel/UCMN-hG9y4jcqd0lpFzlTIsg)

[**钻石手微信公众号**](https://mp.weixin.qq.com/s?__biz=MzI2ODMzMzQ2NQ==&mid=2247485192&idx=1&sn=bdd33e7dbc810d17136597112244f2e5&chksm=eaf07ffedd87f6e82f0b2c6f507e62f625653563f6690a12b0cbc941d77aa8bdee88650dc7b1&token=292395796&lang=zh_CN#rd)

[**钻石手B站**](https://space.bilibili.com/610357733)

[**钻石手电报群**](https://t.me/diamondhandsinvest)

[**Endless Discord社区**](https://discord.gg/CBuPVjErxH)

---

*Originally published on [钻石手DiamondHands](https://paragraph.com/@diamondhands/mina-mina-zk-snark-1-18)*
