Uncle Maker: (Time)Stamping Out The Competition in Ethereum

目錄

  • 筆記
  • 后續的研究方向
  • 摘要
  • 引言
    • 貢獻
    • 攻擊的簡要概述

Uncle Maker: (Time)Stamping Out The Competition in Ethereum
CCS 2023

在這里插入圖片描述

筆記

本文對以太坊 1 的共識機制進行了攻擊,該機制允許礦工獲得比誠實同行更高的挖礦獎勵。這種名為“Uncle Maker”的攻擊操縱區塊時間戳和難度調整算法,使礦工在區塊競賽中占據優勢。作者描述了攻擊的幾種變體,包括一種對礦工來說沒有風險的變體。他們分析了來自以太坊區塊鏈的數據,并提供了證據,證明一些礦工多年來一直在積極運行這種攻擊的變體而沒有被發現,這使其成為礦工操縱主要共識機制的第一個證據。作者還提出了具體的修復建議,并提供了一個實現,作為以太坊 1 最受歡迎的客戶端 geth 的補丁。

大意:

  • 這種名為 Uncle Maker 的攻擊操縱了以太坊 1 共識機制中的區塊時間戳和難度調整算法。
  • 與誠實的同行相比,該攻擊允許礦工獲得更高的采礦獎勵。
  • 描述了攻擊的幾種變體,包括無風險的攻擊。
  • 來自以太坊區塊鏈的數據提供了證據,表明一些礦工多年來一直在積極運行這種攻擊的變體,而沒有被發現。
  • 建議對以太坊 1 最受歡迎的客戶端 geth 進行具體修復和補丁,以減輕攻擊。

后續的研究方向

  1. 對其他礦池的進一步分析:調查其他礦池是否也在執行類似的攻擊,或者不同礦池是否存在 Uncle Maker 攻擊的變體。

  2. 研究攻擊對整個網絡的影響:分析 Uncle Maker 攻擊對以太坊網絡的影響,例如其對交易確認時間、網絡擁塞和整體安全性的影響。

  3. 制定更強大的緩解策略:探索其他緩解技術來應對 Uncle Maker 攻擊和其他類似攻擊。這可能涉及對共識機制進行更改、改進分叉選擇規則或實施可靠的時間戳機制。

  4. 調查其他攻擊媒介:探索針對共識機制的其他潛在攻擊媒介,例如時間戳操縱,并分析它們對不同加密貨幣的影響。

  5. 評估建議的 geth 補丁的有效性:評估以更自然的方式實施攻擊的 geth 補丁的有效性。確定此實現是否降低了攻擊的可檢測性,以及它是否會產生任何意外后果。

  6. 探索時間戳操縱的影響:調查時間戳操縱在共識機制中的更廣泛影響,包括它們在其他類型的攻擊中的潛在用途以及它們對區塊鏈系統的安全性和可信度的影響。

  7. 研究礦工的經濟動機:分析礦工執行 Uncle Maker 攻擊背后的經濟動機以及它如何影響他們的盈利能力。考慮此類攻擊對采礦生態系統的長期影響。

  8. 檢查過渡到權益證明 (PoS) 的影響:評估過渡到 PoS 在緩解 Uncle Maker 攻擊和其他與工作量證明相關的攻擊方面的有效性。分析 PoS 共識機制對安全性和性能的影響。

  9. 研究時間戳操作在其他環境中的使用:探索時間戳操作在區塊鏈以外的其他領域的潛在用途,例如分布式系統、共識協議或其他加密應用程序。

  10. 開發檢測和預防機制:設計和實施工具和算法,以實時檢測和防止時間戳操縱和其他類似攻擊。這可能涉及使用機器學習、異常檢測或加密技術。

摘要

我們提出并分析了對以太坊1共識機制的攻擊,該機制允許礦工與誠實的同行相比獲得更高的挖礦獎勵。這種攻擊是新穎的,因為它依賴于操縱塊時間戳和難度調整算法(DAA),以便在發生塊競爭時給礦工帶來優勢。我們稱我們的攻擊為制造叔叔,因為它會導致更高的叔叔攔截率。我們描述了攻擊的幾種變體。其中一個對礦工來說是無風險的。

我們的攻擊不同于過去的攻擊,如自私的采礦[30],這些攻擊已被證明是有利可圖的,但從未在實踐中觀察到:我們分析了以太坊區塊鏈的數據,并表明以太坊的一些礦工多年來一直在積極運行這種攻擊的變體,但沒有被檢測到,這是礦工操縱主要共識機制的第一個證據。我們提供了我們的證據,以及對攻擊者以犧牲誠實礦工為代價獲得的利潤的估計。

由于幾個區塊鏈仍在運行以太坊1的協議,我們建議進行具體的修復,并將其作為geth的補丁來實現。

引言

比特幣[56]和以太坊[11]等加密貨幣依靠精心設計的激勵計劃來鼓勵挖礦,這在面對對手時保持了系統的完整性。因此,加密貨幣的激勵機制是其安全性所固有的。的確在比特幣之后出現的無數加密貨幣中,以及隨后的學術文獻中,提出并實施了對區塊鏈獎勵機制的許多更改。做出這些改變是為了確保礦工沒有動機利用系統牟利[43,49,58]。

2022年9月15日,以太坊過渡到一種新的權益證明(PoS)機制,而不是工作證明(PoW)。我們提出了對后一種機制的激勵驅動攻擊,也稱為以太坊1。當以太坊1仍然活躍時,該攻擊被披露給了以太坊基金會(EF)。我們注意到以太坊1仍被加密貨幣使用,如以太坊經典[14]、以太坊PoW[60]和以太坊博覽會[27]。這些顯然在礦工中很受歡迎:截至2023年3月1日,他們的綜合哈希率是整個以太坊1生態系統峰值哈希率的12.5%[55]。

在我們的攻擊中,礦工更改自己區塊的時間戳,以略微增加這些區塊的挖掘難度。雖然這種難度的增加似乎適得其反,但事實上,如果區塊鏈出現分叉,這些區塊更有可能被選中。由于以太坊1中的共識機制有利于難度較高的區塊鏈,因此以這種方式創建的區塊在與難度較低的區塊的區塊競賽中占主導地位。礦工可以利用這一事實創建區塊,以贏得競爭對手同時創建的尚未看到的區塊,或者更積極地替換競爭對手已經知道的區塊。

這種攻擊是新穎的,因為它依賴于時間戳操作和難度調整機制之間新的、未經探索的交互。它對礦工特別有吸引力,因為它總是比遵循協議設計者制定的“誠實”規則更有利可圖,這意味著我們的攻擊策略主導了誠實策略。

眾所周知,以太坊共識(以及其他區塊鏈機制)中存在激勵漏洞,但在實踐中尚未觀察到。以太坊中的大多數經濟操縱和攻擊都集中在以太坊的應用層,例如利用智能合約中的漏洞、提前運行和利用套利機會[72,78]。

目前已知的其他時間戳攻擊要么是高度理論化的,成功概率很低[5],要么是快速修復的有針對性的漏洞[74]。

通過對以太坊區塊鏈數據的檢查,我們提供了強有力的證據,證明我們討論的一種攻擊變體已經由礦工實施了大約兩年的時間。在我們的研究結果早期公布后,以太坊當時第二大礦池F2Pool的聯合創始人之一承認以這種方式操縱區塊時間戳(見第5節)。據我們所知,這是首次在實踐中觀察到礦工對共識協議的這種操縱。

貢獻

我們在PoW以太坊1上提出了一個攻擊向量,它依賴于時間戳操作,而不是傳統的操作,如阻止[30,62]。

我們描述了這種攻擊的幾種變體,包括一種風險較小的變體。與根據誠實協議進行采礦相比,這種變體保證至少能獲得相同的絕對和相對利潤,同時減少競爭對手的利潤。

通過調查以太坊區塊鏈,我們表明該攻擊是在野外執行的,從而首次提供了主要加密貨幣中存在共識篡改的證據。

為了證明攻擊向量的可行性,我們提供了一種攻擊變體的實現,作為以太坊1最受歡迎的客戶端Go Ethereum(geth)的補丁。

最后,我們提出了幾種緩解技術,包括針對geth的補丁,它可以防止一種形式的攻擊。

我們的貢獻摘要見表1。
在這里插入圖片描述

攻擊的簡要概述

如果區塊開采過快,以太坊1的DAA會導致開采難度略有增加,如果區塊開采太慢,則會導致開采困難略有下降。這是通過基于與其父塊的時間戳的差異來改變當前正在挖掘的塊的難度來實現的。難度以9秒的離散倍數變化(見等式(1))。

由于節點之間的時鐘并不完全同步,時間戳本質上是“廉價的談話”。它們可以由礦工根據需要設置,但仍然需要單調增長,而且不能太遠。這允許區塊創建者稍微改變區塊的難度。這樣的小變化并不會使挖掘變得更加困難,但會影響在挖掘相同高度的兩個沖突塊的情況下,哪些塊節點選擇擴展。選擇難度較高的區塊作為主鏈,如圖1所示。

我們后來展示了F2Pool本質上是在操縱塊時間戳,而不是挖掘時間戳是其父塊之后9秒的倍數的塊。這種形式的操作不是最優的,可以從區塊鏈數據中發現,但每當F2Pool挖掘出沖突的區塊時,它就占據了上風。這反過來又為他們提供了更高的區塊獎勵,并允許他們從沖突的區塊中“搶奪”高費用交易。

在無風險制造者(RUM)攻擊中,我們利用以太坊DAA中的這個漏洞來主動替換另一個礦工已經挖掘并發布的區塊。只有當替換一個區塊就像在上面誠實挖掘一樣容易時,我們才會有選擇地進行攻擊。我們在第3節中對攻擊進行了詳細解釋。
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/206953.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/206953.shtml
英文地址,請注明出處:http://en.pswp.cn/news/206953.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

mysql數據庫中int字段長度,即int(1)和int(10)的區別

1.起因 為什么想起來看這個問題,是最近有同事問mysql的init類型的字段長度的問題,他問int(1)和int(10)是什么意思,是字段長度越大,能存儲的數字越大么?咋一問,還有點懵,從慣性思維來看&#xf…

React 中虛擬DOM是什么,為什么需要它?

注意:本節主要講React中的虛擬DOM,但是虛擬DOM并不是React中特有的內容。 1. React 中虛擬 DOM是什么? 虛擬DOM是對真實DOM的描述,虛擬DOM是JS對象,實際上就是 JSX 通過 babel 轉換成 React.createElement()&#xff…

8.3 C++11對Unicode的支持

一、C11對Unicode的支持 在C98中,引入wchar_t對Unicode支持,但是后來由于不同平臺下wchar_t的寬度并不相同(8,16,32位),導致可移植性受到影響。因此從C11開始引入了char16_t、char32_t以及原有的char,分別存儲utf16,u…

邊緣端部署的典型目標識別網絡

邊緣端(Edge)部署深度學習目標檢測網絡通常涉及到在資源受限的設備上執行模型推斷。這里有一些邊緣端部署深度學習目標檢測網絡的常見策略和技術: 輕量化模型: 選擇或設計輕量級的深度學習模型,例如MobileNet、Squeez…

來自OpenAI的官方解釋:ChatGPT中的GPTs與Assistants API的區別是什么?有什么差異?

本文原文來自DataLearnerAI的官方網站: 來自OpenAI的官方解釋:ChatGPT中的GPTs與Assistants API的區別是什么?有什么差異? | 數據學習者官方網站(Datalearner)https://www.datalearner.com/blog/1051701996595465 OpenAI發布的產…

圖解算法數據結構-LeetBook-查找01_第一個只出現一次的字符

某套連招動作記作僅由小寫字母組成的序列 arr,其中 arr[i] 第 i 個招式的名字。請返回第一個只出現一次的招式名稱,如不存在請返回空格。 示例 1: 輸入:arr “abbccdeff” 輸出:‘a’ 示例 2: 輸入&…

3D Web輕量引擎HOOPS Communicator如何實現對大模型的渲染支持?

除了讀取輕松外,HOOPS Communicator對超大模型的支持效果也非常好,它可以支持30GB的包含70萬個零件和3.5億個三角面的Catia裝配模型! 那么它是如何來實現對大模型的支持呢? 我們將從以下幾個方面與大家分享:最低幀率…

python核心階段(五)—— 面向對象三大特性

1.封裝 概念:封裝主要是指將一些屬性和相關方法封裝在一個對象中,對外隱藏內部具體實現細節 作用:1)使用起來更加方便,類似于提供了一個工具箱 2)保證數據的安全(設置私有屬性) 3&am…

高精度加法,減法,乘法,除法(下)(C語言)

前言 上一篇博客我們分享了高精度加法,減法,這一期我將為大家講解高精度乘法和高精度除法。那讓我們開始吧! 對加法和減法感興趣的話就點我 文章目錄 1,乘法2,除法3,尾聲 1,乘法 讓我們想想我們平時做數學…

openpyxl讀取Excel文件忽略單元格公式僅讀取所顯示的值

目錄 前言解決方案先不加:看讀取信息加上參數:看讀取信息完整代碼 前言 我們在讀取Excel文件時,假如某行或者某列是利用公式生成的,但是我們在利用openpyxl進行讀取時,發現讀取到的是公式,而非顯示的值 解…

Java并行和并發有什么區別?

Java并行和并發有什么區別? 并行和并發是兩個在多線程編程中經常使用的概念,它們描述了不同的多任務處理方式。 并發(Concurrency): 定義:并發是指多個任務共享資源,但是并不一定同時執行。它強…

pipe函數、SIGCHLD、execvp

pipe函數 以下是一個使用C語言編寫的通過管道&#xff08;pipe&#xff09;進行進程間通信的示例代碼&#xff1a; #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/types.h>int main() {int pipefd[2];pid_t pid;char b…

[⑧ADRV902x]: Digital Pre-Distortion (DPD)學習筆記

前言 DPD 數字預失真技術&#xff0c;是一種用于抑制功率放大器非線性失真的方法。 它通過在信號輸入功率放大器&#xff08;PA&#xff09;之前插入一個預失真模塊&#xff0c;對輸入信號進行適當的調制&#xff0c;以抵消功率放大器引起的非線性失真&#xff0c;使功率放大器…

Ubuntu 安裝 CUDA 和 cuDNN 詳細步驟

我的Linux系統背景&#xff1a; 系統和驅動都已安裝。 系統是centos 8。查看自己操作系統的版本信息&#xff1a;cat /etc/issue或者是 cat /etc/lsb-release 用nvidia-smi可以看到顯卡驅動和可支持的最高cuda版本&#xff0c;我的是12.2。驅動版本是535.129.03 首先&#…

[足式機器人]Part2 Dr. CAN學習筆記-數學基礎Ch0-9閾值選取-機器視覺中應用正態分布和6-sigma

本文僅供學習使用 本文參考&#xff1a; B站&#xff1a;DR_CAN Dr. CAN學習筆記-數學基礎Ch0-9閾值選取-機器視覺中應用正態分布和6-sigma 5M1E——造成產品質量波動的六因素 人 Man Manpower 機器 Machine 材料 Material 方法 Method 測量 Measurment 環境 Envrionment DMAI…

RESTful 服務的開發

目錄 1.RESTful風格介紹2.使用 RESTful 風格設計的用戶管理 Web API 的示例代碼13.RESTful 風格設計的用戶管理 Web API 的示例代碼2 1.RESTful風格介紹 RESTful&#xff08;Representational State Transfer&#xff09;是一種軟件架構風格&#xff0c;用于設計網絡應用程序的…

模塊電源(六):前饋電容

一、前饋電容&#xff1a; 前饋電容是與電阻分壓的頂部電阻 并聯的"可選電容器" 二、計算及仿真&#xff1a; 1、計算 無前饋電容時&#xff0c;輸出電壓&#xff1a;&#xff1b;有前饋電容時&#xff0c;輸出電壓&#xff1a;&#xff0c;(其中&#xff0c;&am…

Java工程找不到javax.xml.bind.annotation包

文章目錄 問題解決方法參考 問題 最近Java工程找不到javax.xml.bind.annotation包&#xff0c;進行了解決。 解決方法 參考 stackoverflow: package javax.xml.bind.annotation does not exist error javax.xml.bind這個庫從Java 11版本就被移除了&#xff0c;缺失了這個包…

crmeb本地開發配置代理

crmeb 是一個開源的商城系統&#xff0c; v5 版本是一個前后端分離的項目&#xff0c; 我們從git倉庫中下載下來的是一個文件夾&#xff0c;其結構是這樣的 我的系統沒有使用docker &#xff0c;使用的是 laragon 的系統 所以首先我們要在 nginx 中配置 之后&#xff0c; 我們…

WebStorm:Mac/Win上強大的JavaScript開發工具

WebStorm是JetBrains公司開發的針對Mac和Windows系統的JavaScript開發工具。它為開發者提供了一站式的代碼編輯、調試、測試和版本控制等功能&#xff0c;幫助你更高效地進行Web開發。新版本的WebStorm 2023在性能和用戶體驗方面都做出了重大改進&#xff0c;讓你的JavaScript開…