碎碎思 · 2022年06月30日

从开源项目探讨“FPGA挖矿”的本质

挖矿(下称WK)一直是2020~2021的热点话题,一直持续到今天,今天我们想聊聊用FPGA进行WK的核心是什么,以及为什么会现在鲜有用FPGA进行挖矿的了?

WK在挖什么?

大家都在聊WK,那么这个矿是什么?这个其实很多人都了解的,就是虚拟数字“币”,最著名的就是Bitcoin。

image.png
image.png

今天我们的主题并不是Bitcoin,也不是区块链这些,而是WK(以Bitcoin为例)。

WK实际上就是通过一系列算法,计算出符合要求的哈希值(HASH),从而争取到记账权。这个过程实际上就是试错的过程,一台计算机每秒产生的随机HASH碰撞次数越多,先计算出正确HASH的概率就越大。

这就是WK的本质。

关于比特币WK与HASH

今天第一个项目是一个介绍类项目,关于比特币WK与HASH。

https://github.com/ray33ee/BitcoinHash-Verilog

项目关于HASH组成以及在WK中的应用,作者很用心的手绘了很多框图帮助我们理解,同时也有Verilog描述。

image.png

关于比特币任务生成器

在使用FPGA集群进行挖矿需要使用CPU接收任务,所以需要一个任务接收的FPGA,现在一般使用ZYNQ,以前也有软核,下面这个项目就是关于比特币任务生成器。

https://github.com/Canaan-Creative/MM

Miner Manager 是一个比特币任务生成器固件,适合 FPGA 和更快的矿机,它内部有 LM32 CPU,适合 XC6SLX16 等小型 FPGA。

关于比特币矿工

https://github.com/teknohog/Xilinx-Serial-Miner

https://github.com/teknohog/Open-Source-FPGA-Bitcoin-Miner

这个是已经应用并淘汰的比特币WK程序,一个使用Xilinx FPGA实现,一个使用Altera实现的。

https://github.com/kmod/bitcoin_mining

一个简单的比特币挖掘系统,用于 Digilent Nexys 3 fpga 板上.

https://github.com/fpgaminer/fpgaminer-vanitygen

一个功能性的,实验性的项目,性能较低。

https://github.com/byingyang/mojo-miner

为 mojo fpga 开发板开发的比特币矿工

image.png

https://github.com/jackproudfoot/fpga-bitcoin-miner

ECE350 最终项目

https://github.com/dawood95/BitcoinMinerFPGA

ECE350 最终项目

https://github.com/jkiv/shapool-core

针对 Lattice iCE40 比特币矿工

https://github.com/xtrinch/fpga-bitcoin-miner

针对 Lattice ECP5

https://github.com/dawood95/BitcoinMinerFPGA

ECE 337 最终项目

https://github.com/ivandavid14/Bitcoin

EE454 最终项目

https://github.com/jesstherobot/llbitcoin

https://github.com/ailuropoda0/BitcoinMiningAlgorithm

https://github.com/WebKingdom/bitcoin_asic

这个就是今天的第三个主角ASIC,这是一个ASIC比特币矿工。

GPU、ASIC和FPGA算力对比

上面介绍的项目大家不用太在意,大部分都是落后的架构和算力(不然我也不敢介绍),主要是大家可以学习比特币SHA256算法实现原理,之前有个比较火的网站(https://fpga.guide/)现在也封掉了,FPGA挖矿基本也处于淘汰的状态了,所以我们再回头看看为什么FPGA被淘汰了?

通过以上的项目在Vivado中在XC7A200T上的算力及功耗如下:

image.png

功耗约为0.5W,算力功耗比约为200MHash/sW。

而GPU呢?

https://technical.city/en/video/bitcoin-rating 算力榜很容易得到数据:

image.png

(较老的数据)算力功耗比最高不会超过6MHash/sW。

最后就是ASIC,以蚂蚁区块链运算机DR5 35T版本为例,其算力为35THash/s,功耗为1610W,算力功耗比约为21739MHash/sW。

image.png

经过以上对比,高下立判,不解释。

PS:GPU挖矿是最简单易行的,插上显卡,下载个软件就可以了。

总结一下:虽然ASIC已经淘汰了FPGA,但是FPGA真的一无是处吗?

通过对比我们发现FPGA其实在某些方面还是优于GPU的,但是为什么现在鲜有用FPGA WK呢?其实这是一个误区,一些好的币种肯定被ASIC取代了(第一个用FPGA挖矿的矿机是中国人制造的,创造者是中国人南瓜张(张楠赓,嘉楠耘智创始人))。在一些小众的币种里FPGA还是有一席之地的。

image.png

FPGA矿机的几个特点:

1、通过上面的对比,FPGA的算力功耗比比GPU低很多;

2、FPGA可以通过升级让矿机挖取不同算法的POW币种;

3、优化得当,算力比GPU高很多;

4、当算法内存需求小、并行性较高时,其优势较GPU更高;

5、风险较ASIC低,每个币种都有不同算法,ASIC更新周期较慢,而且一旦“币潮”前期的投入基本没了,对于一个小公司可能就GG了。

(上面的对比反正就是拿我的优势对比你的劣势,XX对比法则!@)

最后点缀一下主题:“FPGA WK”的本质是什么?

通过上面一些Bitcoin的WK算法,我们能看出WK的本质其实就是并行实现挖取不同币种所需要的算法,比如SHA256或者Scrypt等。不能说在WK领域FPGA被淘汰了,而是在受欢迎的币种里被淘汰了,在小币种里还是受欢迎的,由于其“可重构”的特点更适合在不同币种之间进行切换,硬件成本也低,或许哪一天这个领域突然就火起来了。或许你也可以先制作一个可以用FPGA进行WK的币种,让全世界为你疯狂~\

image.png

免责声明:本文观点仅代表个人观点,如有错误欢迎指正,同时本文只是简单的介绍一些WK原理,由此产生的任何经济损失,本公众号概不负责~

原文:OpenFPGA
作者:碎碎思

相关文章推荐

更多FPGA技术干货请关注FPGA 的逻辑技术专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。
推荐阅读
关注数
10614
内容数
577
FPGA Logic 二三事
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息