挖矿(下称WK)一直是2020~2021的热点话题,一直持续到今天,今天我们想聊聊用FPGA进行WK的核心是什么,以及为什么会现在鲜有用FPGA进行挖矿的了?
WK在挖什么?
大家都在聊WK,那么这个矿是什么?这个其实很多人都了解的,就是虚拟数字“币”,最著名的就是Bitcoin。
今天我们的主题并不是Bitcoin,也不是区块链这些,而是WK(以Bitcoin为例)。
WK实际上就是通过一系列算法,计算出符合要求的哈希值(HASH),从而争取到记账权。这个过程实际上就是试错的过程,一台计算机每秒产生的随机HASH碰撞次数越多,先计算出正确HASH的概率就越大。
这就是WK的本质。
关于比特币WK与HASH
今天第一个项目是一个介绍类项目,关于比特币WK与HASH。
https://github.com/ray33ee/BitcoinHash-Verilog
项目关于HASH组成以及在WK中的应用,作者很用心的手绘了很多框图帮助我们理解,同时也有Verilog描述。
关于比特币任务生成器
在使用FPGA集群进行挖矿需要使用CPU接收任务,所以需要一个任务接收的FPGA,现在一般使用ZYNQ,以前也有软核,下面这个项目就是关于比特币任务生成器。
https://github.com/Canaan-Creative/MM
Miner Manager 是一个比特币任务生成器固件,适合 FPGA 和更快的矿机,它内部有 LM32 CPU,适合 XC6SLX16 等小型 FPGA。
关于比特币矿工
一
这个是已经应用并淘汰的比特币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 开发板开发的比特币矿工
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/WebKingdom/bitcoin_asic
这个就是今天的第三个主角ASIC,这是一个ASIC比特币矿工。
GPU、ASIC和FPGA算力对比
上面介绍的项目大家不用太在意,大部分都是落后的架构和算力(不然我也不敢介绍),主要是大家可以学习比特币SHA256算法实现原理,之前有个比较火的网站(https://fpga.guide/)现在也封掉了,FPGA挖矿基本也处于淘汰的状态了,所以我们再回头看看为什么FPGA被淘汰了?
通过以上的项目在Vivado中在XC7A200T上的算力及功耗如下:
功耗约为0.5W,算力功耗比约为200MHash/sW。
而GPU呢?
在https://technical.city/en/video/bitcoin-rating 算力榜很容易得到数据:
(较老的数据)算力功耗比最高不会超过6MHash/sW。
最后就是ASIC,以蚂蚁区块链运算机DR5 35T版本为例,其算力为35THash/s,功耗为1610W,算力功耗比约为21739MHash/sW。
经过以上对比,高下立判,不解释。
PS:GPU挖矿是最简单易行的,插上显卡,下载个软件就可以了。
总结一下:虽然ASIC已经淘汰了FPGA,但是FPGA真的一无是处吗?
通过对比我们发现FPGA其实在某些方面还是优于GPU的,但是为什么现在鲜有用FPGA WK呢?其实这是一个误区,一些好的币种肯定被ASIC取代了(第一个用FPGA挖矿的矿机是中国人制造的,创造者是中国人南瓜张(张楠赓,嘉楠耘智创始人))。在一些小众的币种里FPGA还是有一席之地的。
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的币种,让全世界为你疯狂~\
免责声明:本文观点仅代表个人观点,如有错误欢迎指正,同时本文只是简单的介绍一些WK原理,由此产生的任何经济损失,本公众号概不负责~
原文:OpenFPGA
作者:碎碎思
相关文章推荐
更多FPGA技术干货请关注FPGA 的逻辑技术专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。