位元幣挖礦與攻擊方式分析

2021-10-02 13:31:23 字數 1273 閱讀 9496

中本聰在位元幣***中曾提到「one-cpu-one-vote」,可見中本聰一開始預想的是所有人用cpu也就是最普通的個人pc就可以挖礦。位元幣執行初期全節點確實是用cpu來挖礦的,全球的總算力也比較低。隨著挖礦難度的增加,現在用cpu已經很難挖到礦了。

隨著位元幣的價值提公升,人們開始用**更高的gpu挖礦,gpu執行雜湊計算相比cpu而言更有優勢,大概是cpu挖礦速度的10倍。

到了2023年下半年開始出現asic(apllication specific integrated)礦機,asic挖礦的速度是cpu的2000倍以上,而功耗卻與gpu相當。asic其實就是一堆猜數字的機器,除了挖礦沒有任何其他作用。從這時開始全球的算力開始由執行asic礦機的節點掌握。

由於挖礦成功是乙個概率性事件,購買了**高昂的礦機仍然可能連續幾個月挖不出區塊,收益非常的不穩定,所以引出了一種新的挖礦模式,即礦池。礦池主任負責打包區塊和隨機數nonce分片,而個體的礦機只需接入礦池參與hash計算,個體使用者無需承擔全節點的任務,減輕了負擔。如下圖所示:

收益分配

安全分析

分叉攻擊(forking attact)

分叉攻擊指的是,惡意節點不接在最長合法鏈上的最新區塊後面繼續挖礦,而是接在之前的某乙個區塊後面出塊,繼而產生分叉,如果這條分叉的長度趕上最長合法鏈,分叉將成為最長合法鏈,這條鏈上的交易將被共識為合法交易,而被分叉的原先最長合法鏈的上的交易將全部失效。

抵制攻擊(boycott)

佔據較大比例算力的礦池故意不把某賬戶相關的交易放入區塊,同時告知其他節點,其他節點因為害怕自己挖出的區塊不被大礦池認可,大礦池可以輕易發起分叉,導致這些節點得不到獎勵,因此這些節點也就不敢將該賬戶的交易放入區塊。這就是抵制攻擊。

臨時保留區塊攻擊(selfish mining)

臨時保留區塊攻擊指的是如果挖到區塊之後,不立馬發布出去,而是自己接著再挖下乙個區塊,這時會少一些競爭,由於礦池佔的算力比例較高,是有很大可能趕在其他節點之前挖出下乙個區塊的。順利挖到的話,一下子把兩個區塊發布出去,這樣自己能夠獲得兩個區塊的獎勵。

算力較低的節點發起臨時保留區塊攻擊,會存在乙個風險,如果不發布挖到的區塊,別人隨時可能挖到區塊並發布,如果別人的區塊生效了,那麼自己保留的區塊將會失效,也就得不到任何獎勵。算力比例較大的礦池可以相對比較容易地發起臨時區塊保留攻擊。

位元幣挖礦

什麼是 挖礦 簡單來說,數字貨幣網路是乙個龐大的p2p記賬體系,網路中的每一筆交易都需要被確認才能生效,而確認交易需要使用運算能力 即 算力 來解決大量 隨機的數學難題,挖礦 就是通過挖礦裝置 即 礦機 為整個網路提供運算能力,解決數學難題以確認交易的過程。作為對礦機貢獻算力的回報,數字貨幣網路將根...

位元幣挖礦 錢包

1 安裝 plain view plain copy apt get install bitcoind 2 修改配置檔案 plain view plain copy vi bitcoin.conf 內容如下 rpcuser abc rpcpassword 123 server 1 rpcallowi...

位元幣 挖礦過程

在收到交易後,每乙個節點都會在全網廣播前對這些交易進行校驗,並以接收時的相應順序,為有效的新交易建立乙個池 交易池 每乙個節點在校驗每一筆交易時,都需要對照乙個長長的標準列表 交易的語法和資料結構必須正確。輸入與輸出列表都不能為空。交易的位元組大小是小於max block size的。每乙個輸出值,...