Mining-Theory
防止女巫攻擊:比特幣如何知道節點的計算能力?
我知道比特幣通過工作量證明來防止女巫攻擊——它考慮了每個參與節點的計算能力。那麼比特幣是如何獲得這些資訊的呢?
如今,大多數節點根本不挖礦,也不關心到底是誰在為網路貢獻算力。
工作證明並不能阻止女巫攻擊的發生,相反,創建一個塊所需的工作使得成功的女巫攻擊者為受害者提供量身定制的鏈提示成本很高。除非使用巨大的算力,否則他們最多只能將雙花交易交給受害者,同時保留在網路其餘部分中繼的新區塊和交易。簡單地等待與交易價值相對應的一個或多個確認,在很大程度上減輕了女巫攻擊的危險。
另一方面,女巫攻擊本身很困難,因為比特幣節點向網路中的隨機對等點發起 8 個出站連接,優先選擇不同 IP 範圍內的節點。雖然攻擊者可能在辨識受害者的 IP 地址後控制大量入站連接,但替換出站連接會困難得多。然而,只要節點只連接到一個誠實的對等點,上述雙花攻擊就會被挫敗。
比特幣客戶端不知道,也不需要知道它連接的節點的計算能力。它只需要知道連接節點發送的塊鏈中的計算能力。
雖然這並不能完全防止女巫攻擊,但它使它們變得更加困難。節點將獨立驗證已進入鏈的工作,因此這是無法欺騙的。如果兩個連接節點聲稱的工作量(通過它們廣播的塊進行通信)之間存在差異,那麼客戶端就會知道工作最少的那個可能正在做一些惡意的事情。
只有當攻擊者能夠確保他們控制了受害者曾經連接過的所有節點時,他們才能真正發動女巫攻擊。即便如此,該節點的所有者可以將自己節點的區塊鏈狀態與線上區塊鏈瀏覽器的狀態進行比較,並很快發現有問題。