石榴矿业6block 船员 2021-05-06 15:13:35 发布在 矿业挖矿
1316 0
本期视频主要和大家分享一下当前火热的项目Chia。由于市场情绪高涨,硬盘价格暴涨甚至被矿工们抢至脱销。在这疯狂的背后,大家也面临着新兴事物的出现而带来的信息不对称。
一直以来,石榴矿池秉持着“公开·透明”的区块链精神。本期视频李白将为大家详细解析Chia的核心原理,为大家揭开Chia的神秘面纱。
Chia背景
Chia(奇亚)官网:https://www.chia.net/
区块浏览器:https://www.chiaexplorer.com/
Github源码库:https://github.com/Chia-Network
绿皮书:https://www.chia.net/assets/ChiaGreenPaper.pdf
P盘
Chia的封装过程,俗称P盘(英文Plot),它的输入主要是一些随机数(输入数据量很小,几乎没有数据),配合farmer和pool两个公钥,经过1-4个阶段的Plot过程,最后输出101.3GiB的Plot文件。
从这个过程可知,Chia设计之初就不是为了存储,这是其和Filecoin的最大区别。Chia标榜是btc的替代品,主要还是起到了去中心化记账,数字货币的作用。但和btc的主要区别是:btc中比拼的是算力,而Chia比的是硬盘,硬盘多,存储空间大,获得代币的概率就大。
综上所述,我们知道:
- Chia没法存储数据
- Chia封装无时间要求
- Chia封装对硬件要求更低:近5G内存要求
- 少量线程、高频率、高IO
- 暂时无法通过GPU加速
P盘硬件
Chia挖矿对硬件的要求较低,但由于Chia挖矿过热以及信息的不透明造成相关的硬件价格涨幅过高。其实从整体分析Chia P盘的硬件选择是非常宽泛的,建议矿工们从性价比的角度去理性选择,以下是石榴矿池对其硬件相关条件的总结,仅供参考:
- 高频率的CPU
- 高IOPS的SSD
(1)332GiB的临时文件
(2)1.6-1.8TiB的SSD写入 官方硬件推荐:https://github.com/Chia-Network/chia-blockchain/wiki/Reference-Plotting-Hardware
由于硬件价格相对便宜,入场门槛较低,使得Chia全网算力增长更快。而在Chia的挖矿中,硬盘的支出占比高,P盘封装机占比少,大家可以根据硬件市场情况灵活选择高性价比的配置。 Plot文件结构
一个Plot文件包括:
- Plot ID
- Farmer public key(矿工公钥)
- Pool public key(矿池公钥)
爆块
从上文可知,Chia产生的文件数量很大,算力很容易达到1P。在Chia挖矿中,没有Window Post,只有Winner Post,所以即使是存储丢失也不会造成惩罚,而且也没有前置抵押,因此门槛较低,整个过程中只有爆块。 Chia通过两轮的筛选得到出块权,尽可能减少数据读取量:
- 根据Plot ID 筛第一轮
- 根据一个叶子筛第二轮(需要做七次寻址操作,大约70ms时间):
经过以上两轮,矿工获得了Winner。在此基础上读取完整数据并生成证明:
- 读一个满二叉树
- 64个叶子
Timelord
Chia爆块的第一个输入Challenge是一个随机数,在链上每10S产生一个,并且提前不可知。在Filecoin中是通过Drand服务去得到随机数,而Chia中是通过VDF得到。 VDF的特性:
- 计算难验证易
- 计算时间恒定难以优化
- 优化后可以影响爆块率
(VDF实现图)
Timelord是用来跑VDF,产生Challenge的。一定程度上保证只有在规定时间内才能获得下一个Challenge。如果矿工跑VDF的速度远快于官方,将能提前知道Challenge,这将影响挖矿的爆块率,否则没有必要启用Timelord,矿工可直接在链上的广播中获得Challenge。
区块签名
Plot文件生成时需要绑定Farmer公钥和Pool公钥,来表示算力归属。出块时要用两个私钥进行签名:
- Farmer决定7/8的收益
- Pool决定1/8的收益
以上可知,官方在设计之初已强制将挖矿收益以一定比例分配给矿工和矿池。回到矿池平滑分账的本质,正常情况下应该将挖矿的所有收益全部给矿池,然后矿池再进行平滑分账,以确保加入矿池的矿工收益。从Chia出块的私钥签名设计可知其离矿池本质还是有很长的距离。
在P盘过程中产生的Plot文件需要立即绑定Farmer key和Pool key,也就是说这样的算力文件的归属权是不能更换的,在P盘的过程中就已经决定了这份算力文件属于谁,只有谁的签名才有用,才能获取收益。这在常规意义的矿池中是不符合逻辑的,如果算力归属不能更换,假设三种情况:
- 如果矿池独享私钥,则任人宰割
- 如果共享私钥,则存在风险
- 如果一边持有一个私钥,则达不到平滑收益的目的
Chia矿池方案目前还不完善,官方也在博客中提到:等到开发完Chia转账将进一步完善矿池方案,这也是官方下一阶段重点研发的方向。所以现阶段市面上的矿池方案可能都存在一定的风险,或是无法真正达到矿池平滑分账的目的。
分叉攻击
上文提到,如果矿池和矿工共享私钥,则可能存在分叉风险,下面具体聊一聊。
分叉是指:在非PoW的区块链里,矿工可以在同一高度产生多个block。
在ETH2.0或者Filecoin中,如果矿工在同一高度产生两个Block,将会受到质押惩罚。 在Chia中,它将一个block拆成两部分:Trunk+Foliage。Trunk包含了block中的关键数据,当矿工获得出块权时,Trunk是已经确定不会再改变的,而Foliage是可改变的。此时如果发起分叉攻击,Trunk是无法改变的,只能攻击Foliage。这样相对保护了链的稳定性。
但是如果Farmer key泄露,将存在产生另一个Foliage的风险,此时链上就面临了分叉攻击。但是目前分叉攻击只会影响收益,不会影响共识。
总结
(1)P完的盘永久绑定Farmer Public key和Pool Public key,决定收益的归属,无法更换。
(2)通过优化VDF计算速度,爆块环节存在优化空间。
(3)矿池很重要,因为分散式的挖矿,平滑收益是急切需求。
(4)目前没有靠谱的矿池方案,但官方会作为研发重点。
(5)整个项目数学层面扎实,应用设计上还有所欠缺,期待后续迭代。
评价
基于以上,石榴矿池李白对Chia的评价:
- 有史以来第一个没实现转账功能就上主网的链
- 也是有史以来第一个逻辑不严谨就能达到如此高度的链
- 有重要的意义
(1)节能
(2)Proof of Hardware