js挖矿

/images/server/js挖矿-状态图.jpg

前段时间有新闻说js挖矿,于是自己试了一下。写一写,留个印象。

虚拟货币的产生,是通过一系列的计算得出的。而计算的过程需要强大的算力。这个计算过程就是挖矿。
js挖矿就是把挖矿过程从专用计算工具搬到了浏览器里。让页面的访问者进行计算。

如果有一天,你在浏览网页的时候,不经意发现旁边的360悬浮球提示cpu占用率持续在90%以上,那么小心了。你的电脑很有可能在挖矿!
如下方法检查

/images/server/js挖矿-cpu图.jpg

如果没有故意隐藏的话,可以看到。否则还是看cpu更直接
/images/server/js挖矿-js图.png

可以看到,对于设备cpu的使用率,是可以进行调整的。同时可以对不同设备,用js进行判断是否启用挖矿代码。
所以一般而言,网站不会把cpu使用率弄到100%,否则用户会明显感受到电脑卡顿。如果是黑客行为,那可能就不会在乎这么多了

但不用过于担心,因为它只会占用你的cpu运算能力,而不会读取你的个人数据。只要关闭网页,即可恢复正常。

  1. 会导致耗电量的提高,特别是手机/平板等移动设备。在页面正常运行时,续航将减少
  2. 会导致发热的问题。手机变成暖手宝,电脑设备风扇开始狂转散热
  3. cpu负载过高,设备将会卡顿,影响到你的操作体验
  4. 电脑设备如果一直打开网页不关闭。长期如此,可能对设备寿命有影响(手机设备有更好的耗电管理,所以影响较小)

一个网站的维护,是需要成本的。
一些网站有赞助商(需要愿者上钩,或者利益相关)。
一些网站有数不清的广告(广告可能无关联,且影响页面美观)。
一些网站是出于个人爱好,指不定哪天就关了(相当于阅后即焚?)。
而coinhive却能通过用户的一部分计算能力,直接提供盈利。经过用户同意后,网站有了一定的收入保障。而对用户而言,这是最最简单的免费赞助!

/images/server/js挖矿-停止服务.jpg

就在今天早上起来,我看了这则通知。
一句话概括:由于门罗币(monero)大跌了超过50%,几乎在崩溃的边缘。网费都要付不起了…掰掰,老子不玩了。

其实用Coinhive只是图个方便。网站完全可以自己搭建一个专用服务,还没有手续费。同时也非常简单:

  1. coinhive-stratum-mining-proxy一个python实现
  2. coin-hive-stratumtypescript参考后也实现了一个

几乎没有影响。js挖矿的算力对于那些大矿池来说,九牛一毛。同时大矿池的算力一直在增长。