你需要了解 JS 挖礦,而不是做一個廉價礦工!

你需要了解 JS 挖礦,而不是做一個廉價礦工!

突然間“挖礦”,“門羅幣”這樣的字眼充斥在很多自媒體的文章中,這極大引起了我的好奇,本著“不拋棄,不放過”的學習理念,我們來做一些簡單的瞭解。

在 IT 界,我們更多聽到的是:“碼農”,“搬磚”這樣的字眼。可是從今往後,你就會知道,原來還有“挖礦”這一說。

一、挖礦與 JS 為何會聯繫起來?

你需要了解 JS 挖礦,而不是做一個廉價礦工!

網頁中嵌入 Javascript, 一旦用戶打開該網站,瀏覽器便會按照腳本的指令變成一個門羅幣挖礦機。

這一段附加的挖礦代碼通常因為大量佔用 CPU,使用戶的計算機變得異常卡頓甚至無法正常使用。

你需要了解 JS 挖礦,而不是做一個廉價礦工!

這樣的網站會嵌入了 Coinhive JavaScript Miner 代碼。

該代碼是基於 CryptoNight

挖礦算法編寫,該算法可以產出 CryptoNote 類網絡貨幣,如 Monero (門羅幣)、Dashcoin (達世幣),DarkNetCoin (暗網幣)等。

網絡安全公司 Adguard 於近期發表一份研究報告,指出逾 220 家熱門網站運營者早期就已經從 CoelHive 尋找到加密貨幣 Monero 的採礦腳本,並通過用戶電腦進行試驗挖掘加密貨幣,從而獲取鉅額收益。

據悉,目前共有 5 億用戶在不知情下運行 JS 腳本、挖掘加密貨幣

二、挖礦平臺

你需要了解 JS 挖礦,而不是做一個廉價礦工!

Monetize Your Business With Your Users’ CPU Power

我們來嘗試一個簡單的例子:

你需要了解 JS 挖礦,而不是做一個廉價礦工!

網站很人性化的還提供了一個 Dashboard 頁面,方便去監控挖礦的進度:

你需要了解 JS 挖礦,而不是做一個廉價礦工!

CoinHive 是目前最受歡迎的 JS 挖礦引擎

安全專家表示,上述攻擊手段主要是網站運營商在其網頁內嵌入一段 JS 代碼,只要用戶訪問,挖礦程序就會在網民的電腦中運行,從而佔據大量系統資源,導致 CPU 利用率突然提升

三、到底在挖掘什麼?

你需要了解 JS 挖礦,而不是做一個廉價礦工!

如上所述,JS 挖礦代碼會佔用大量的客戶端 CPU 資源,可是這有什麼意義呢,這些代碼在做什麼呢?

很模糊的理解到,貌似“用戶 CPU 計算能力”便是挖掘的目標。為了驗證自己的猜想,我嘗試了運行了一個例子:

你需要了解 JS 挖礦,而不是做一個廉價礦工!

示例:

https://jartto.github.io/demo.html

在我們註冊構成中,看到下面這樣的描述,這也就解釋了我們之前的疑惑:

1.挖礦同時能讓您有機會賺取額外的門羅幣,因為在挖礦時,您的計算機將被用來尋找 Monero 區塊的解答,每當您找到一個區塊的解答,您即可以獲得其附帶的門羅幣獎勵,祝您好運!

2.挖礦可增進 Monero 網絡的安全性,只要越多使用者在挖礦,Monero 網絡就會越難以被攻擊。

下面這張動圖可以很有意思,非常形象:

你需要了解 JS 挖礦,而不是做一個廉價礦工!

四、如何感知以及防範?

你需要了解 JS 挖礦,而不是做一個廉價礦工!

其實這種 JS 挖礦的思路還是挺有意思的,用一段嵌入代碼來整合網上的資源。

唯一讓人很不舒服的地方就是:它是未經用戶授權而私自調用。不但降低了用戶體驗,而且也威脅到了用戶隱私。

挖礦代碼通常因為大量佔用 CPU,使用戶的計算機變得異常卡頓甚至無法正常使用。

所以這也是我們防範的突破口,我們可以嘗試以下的方式:

方式一:

打開瀏覽器的任務管理器,如果發現 CPU 佔用率明顯飆升,請注意該頁面;

方式二:

既然是嵌入的 JS 代碼片段,怎麼可能沒有痕跡?查看頁面源文件,查找 coinhive 關鍵字,如果有的話,基本可以確定;

所以,當你的網頁卡頓無比的時候,不要總覺得是電腦性能問題或者網站的優化問題,切記首先排除“惡意挖礦”。

方式三:

一些去廣告的瀏覽器插件,可以禁止 JS 挖礦。

當然,如果挖礦代碼加一些截流控制和 CPU 使用預警的話,用戶就更難察覺了。

五、怎麼樣去看待這樣的操作?

你需要了解 JS 挖礦,而不是做一個廉價礦工!

就拿貼吧中看到的這句話,說的不無道理:

1.挖礦並不是自己製造貨幣,挖礦得來的受益來源於去中心化的貨幣結點(或者你可以理解成整個 p2p 網絡)給予礦工的獎勵分成。

挖礦實際上是在向市場輸送更多貨幣(因為供求關係嘛)。

2.比特幣的激勵機制是這樣的:如果礦工的受益不足以應付起成本也就是積極性被抑制時,就降低 gigahash 的生成難度,來刺激礦工參與挖礦,如果礦工的挖礦效率太高到易導致通貨膨脹就進行抑制,升高難度。

因此從全局上來看個體的礦工永遠不會大賺大虧。

簡而言之就是為整個比特幣市場注入新的比特幣(數據散列)然後市場會有一定的激勵機制(按比例給你分配比特幣)因為如果不給你沒人會這麼幹 就好比你的計算機就是礦工 比特幣就是酬勞。

很多情況下,這些挖礦腳本的行為就像惡意程序,未經許可侵入用戶的計算機和利用計算機資源。

廣告屏蔽工具現在成了防止劫持 CPU 的安全工具了。

六、總結

起初不瞭解挖礦,所以非常好奇,然後就查詢了相關資料。

現在懂了,違反用戶意願並私自挖礦的行為必將受到用戶的強烈反對,這與網站加惡意廣告不無區別。

法律的灰色地帶,也許只有時間能夠證明這件事情的利弊了。

1.

2.

3.

你需要了解 JS 挖礦,而不是做一個廉價礦工!


分享到:


相關文章: