有不少礦友遇到或關注到了一個情況—— 因以太坊DAG 文件的日益增大,使得1063 等顯卡因顯存不足問題無法挖礦。

據說這一情況將隨著以太坊的發展,在以後的很長一段時間裡不停地敦促我們增加顯卡的顯存。

那麼DAG 到底是什麼呢?它的增大為什麼會讓顯卡無法工作?

DAG 是有向無環圖的英文縮寫,指的是任意一條邊有方向,且不存在環路的圖。

例如下面這張示意圖中,我們假設有一條數據需要在DAG 中傳輸,它可以從點1 傳到點2,也可以從點3 傳到點6 。

但是卻沒有任何直接或者間接的途徑可以再把信息從點2 傳回點1,點6 傳回點3,這種傳遞方法確保了數據的唯一性,該技術被廣泛地應用在加密領域中。

其實從最原始的數據傳輸模式上來說,DAG 和區塊鏈的區別是非常大的。

區塊鏈的數據傳輸模式是將各類信息打包成為區塊,再通過“鏈”來進行傳輸。出於安全考慮,在沒有出現分叉等情況的正常狀態下,整個網絡只能有一條主鏈。

而DAG 技術的數據在傳輸之前並沒有打包這一操作,它直接將一個個信息鏈接成有向無環圖,通過信息之間的一些關聯性來進行傳遞,最關鍵的是有向無環圖可以從多個點發送和接收信息,在速度上較傳統的區塊鏈有很大優勢。


傳統區塊鏈的單鏈傳輸模式除了傳輸速度緩慢外,還缺乏應對分叉的手段。為了解決這一系列難題,區塊鏈學者們另闢蹊徑,將DAG 和區塊鏈這兩種本來不兼容的技術融合在了一起。

例如以太坊在2016 年6 月份發布的 Dagger-Hashimoto 算法,其核心內容就是DAG 有向無環圖,而目前以太坊正在使用的Ethash 算法就是通過 Dagger-Hashimoto 算法改良的。

多點傳輸方式可以明顯地提升區塊鏈的數據傳輸速度,但是DAG 和傳統區塊鏈在結構上存在巨大差異,為了預防雙花、重放等網絡攻擊,區塊鏈需要一條主鏈來引導工作,無法直接使用DAG 那樣多個平等節點接發信息的方式。

為了解決這一難題,引入DAG 機制的區塊鏈專家提出了一個新思路。

不同於之前用上一個區塊信息驗證下一個區塊的方式,使用了DAG 後,每一個新產生的區塊都被鏈接到之前所有的區塊上。新區塊的驗證信息中包含了之前所有區塊的加密信息,這就是大家最近經常聽到的“ DAG 文件” 。


使用了DAG 技術之後,礦工在挖礦前需要先到區塊鍊網絡上下載該區塊鏈之前所有區塊的加密信息,然後才能從這些信息中解答出下一個區塊的哈希值。

簡單來說,“ DAG 文件”就是區塊鏈提供給礦工們的謎題,而下一個區塊的哈希值就是謎底,最快解出謎底的人將獲得這一區塊的數字貨幣獎勵

在之前的文章中,老路曾經給大家說過,顯卡挖礦使用的是顯卡的計算能力,為了能對DAG 文件中包含的信息進行“解密”,顯卡需要把DAG 的所有內容“放在”自己的顯存之中進行運算。

所以想要挖以太坊,顯卡的顯存首先要大於當前DAG 文件的體積,這就是為什麼近來一些顯存較小的顯卡無法繼續挖取以太坊的原因。

以太坊的DAG 大小自2016 年6 月份引入Dagger-Hashimoto 算法時的1GB 開始,以每年約520MB 的速度增大到了現在的2.7 G,預計2020 年底以太坊的DAG 大小將增加至4G 。屆時,顯存小於4G 的顯卡都將無法繼續用來挖以太坊。