1. 首頁
    2. 比特幣挖礦是什么(比特幣挖礦究竟是在挖什么?)

    比特幣挖礦是什么(比特幣挖礦究竟是在挖什么?)

    比特幣上產生的交易向整個網絡上所有的節點傳播,每一個節點都對該筆交易進行收集、驗證、確認(有驗證規則),經過驗證的交易會進入交易池。交易池里面的交易需要被打包進一個區塊,然后與前面的區塊相鏈接,成為一條區塊鏈,只有打包進區塊的交易才算是全網確認的交易。比特幣網絡上的一些節點(礦工節點),每10分鐘都可以參與一次競爭,角逐把這10分鐘內的交易打包成一個區塊的權利。誰獲得這個權利,誰會得到比特幣獎勵和所有交易的交易費用。角逐打包區塊權利的過程就是“挖礦”。

    挖礦的過程就像一個大型的競爭性數字拼圖游戲,當有人找到一個解決方案時,游戲就重新開始,而游戲的難度也會自動進行調整,使每找到一個解決方案的時間大致維持在10分鐘。想象一個巨大的數字拼圖,高度有幾千行,寬度有幾千列。如果我給你看已經填充好的拼圖,你可以很快地驗證有沒有錯誤。但是,如果只填了一部分,剩下的都是空白,那就需要花費大量的時間才能解決。數字拼圖游戲的難度可以通過調整尺寸(增減行列數)來調節,但是不管尺寸大小,其確認過程都很簡單。比特幣中用的“拼圖”是建立在加密哈希算法之上的,它展現了與拼圖類似的特性:它也是不對稱的,很難解決卻很容易驗證,而且它的難度也可以調整。

    成千上萬的礦工們一起進行一場查找區塊解決方案的全球競賽。為了找到一個解決方案(被稱為“工作量證明”),全網每秒要進行幾萬億次的哈希計算。比特幣中的工作量證明算法是采用SHA256加密哈希函數不斷地對區塊頭和一個隨機數進行哈希計算,直到找到一個與預設的模式匹配的方案。第一個找到這個解決方案的礦工將贏得這一回合的競爭,隨即將這個區塊發布到區塊鏈當中。

    如果礦工(或礦池)想要利用自身擁有的哈希算力進行欺騙或攻擊的話,比特幣的共識機制至少在理論上是有可能被攻擊的。正如我們所看到的,共識機制依賴大多數礦工出于個人利益而愿意誠實行事的假設前提。但是,如果一個礦工或礦工集團能獲得全網較大比例的挖礦能力時,他們就可以通過攻擊共識機制從而瓦解比特幣網絡的安全性和可用性。

    一種針對共識機制的攻擊叫作“51%攻擊”。這是由一群控制了51%以上的全網哈希算力的礦工,合謀發起的對比特幣的攻擊。他們擁有開采大部分區塊的能力,可以故意在區塊鏈中制造“分叉”、進行雙重支付交易,或者針對特定交易或地址發起拒絕服務攻擊。分叉/雙重支付攻擊指的是攻擊者通過在某個區塊之下創建分叉,形成新的主鏈,使之前已確認的區塊變得無效。只要擁有足夠的算力,攻擊者就可以將連續6個甚至更多區塊變為無效,從而使那些經過6次確認、已被認定為是無法篡改的交易變為無效狀態。

    除了雙重支付攻擊,還有一種共識攻擊是針對特定的比特幣參與者(特定比特幣地址)的拒絕服務。擁有大多數算力的攻擊者可以簡單地將特定交易忽略掉。如果這些交易被其他礦工包含進區塊,攻擊者可以對該高度的區塊排除該筆交易后進行重新計算,形成分叉。只要攻擊者控制了網絡中的大部分算力,這種類型的攻擊就可以持續地對特定地址或地址集進行拒絕服務。

    全網哈希算力的大量增加,已使得比特幣系統不可能被單個礦工攻擊了。個體礦工幾乎不可能控制即使1%的全網算力。但是,礦池帶來的中心化控制,也導致了礦池管理人以盈利為目的攻擊風險。托管礦池中的礦池管理人控制了候選區塊的生成,因而也控制了交易的篩選。這給了礦池管理人排除或包含交易的權利。如果這種權利被礦池管理人有節制而巧妙地進行濫用,礦池管理人就可以在不為人知的情況下發起共識攻擊并獲益。

    但是,不是所有的攻擊都是因利益驅使的。一種潛在的攻擊情形就是攻擊者只是想搗毀比特幣網絡,而不希望從中獲益。這些意在破壞比特幣網絡的惡意攻擊者,需要有大筆的資金和隱蔽的計劃,若是由資金充足的政府支持,則一切都順理成章。或者,一個資金充足的攻擊者也可以購置大量挖礦設備并聯合一些礦池管理人,對其他礦池發起拒絕服務攻擊,從而達到對比特幣的共識機制發動攻擊的目的。這些情形都在理論上存在可能性,隨著比特幣網絡的全網算力持續呈指數級增長,要發起這些攻擊已經不切實際了。比特幣系統在不斷演化,諸如旨在推動礦池去中心化控制的P2P礦池協議的推出,比特幣的共識機制已變得越來越難以攻擊。

    相關文章
    草莓视频