Mining-Theory

了解比特幣驗證節點去中心化

  • March 23, 2022

我希望能更好地理解礦工節點和驗證節點之間的區別,以及控制 X% 所有驗證節點的一方所帶來的去中心化風險(如果有的話)

我一直在這里通過一些關於驗證和礦工的重要資源:

據我了解,礦工節點不必下載任何區塊鏈,他們可以簡單地盡可能快地創建雜湊嘗試並報告給可以獲取正確雜湊的“父節點/礦池”,形成塊候選人,並將其傳播到網路的其餘部分以進行驗證和包含。當礦工(或礦工組)控制雜湊率並能夠創建更長的鍊或工作證明時,存在 51% 攻擊的風險。

驗證者節點的分佈是否也有類似的要求去中心化?

例如,如果給定的一方控制了大多數(甚至更小的百分比)驗證節點,他們是否可以更改其比特幣核心程式碼以執行以下任何操作並破壞網路?

  • 根據自己的地址塊列表實現拒絕傳入的記憶體池交易
  • 用錯誤的交易淹沒記憶體池並減慢所有其他節點參與者的速度(即刪除交易的初始驗證檢查(https://github.com/bitcoin/bitcoin/blob/master/src/validation.cpp))
  • 與礦工合作以接受具有無效交易的已開採交易塊
  • 拒絕礦工合法創建的有效區塊,導致獎勵流向其他地方

正如 RedGrittyBrick 指出的那樣,每個節點都會單方面驗證他們收到的所有數據,從而執行比特幣協議的所有規則。許多節點無法說服節點告訴他們無效數據。如果數據不符合共識規則,他們只會丟棄該數據並禁止向他們發送無效數據的對等方。因此,要更詳細地回答您的最後一段:

例如,如果給定的一方控制了大多數(甚至更小的百分比)驗證節點,他們是否可以更改其比特幣核心程式碼以執行以下任何操作並破壞網路?

  • 根據自己的地址塊列表實現拒絕傳入的記憶體池交易
  • 用錯誤的交易淹沒記憶體池並減慢所有其他節點參與者的速度(即刪除交易的初始驗證檢查(https://github.com/bitcoin/bitcoin/blob/master/src/validation.cpp))
  • 與礦工合作以接受具有無效交易的已開採交易塊
  • 拒絕礦工合法創建的有效區塊,導致獎勵流向其他地方

不管有多少節點行為不端,擁有一個誠實的對等點就足以了解實際的最佳鏈,並了解更多的對等點。一個例外是,如果你所有的同齡人都串通一氣來欺騙你。然後他們可以對你隱藏新數據,如果他們也有足夠的探勘能力,甚至可以為你提供一個替代的較短的鏈提示,你的節點會在沒有更好的資訊的情況下被誤解為最好的鏈。如果您的所有對等點都由攻擊者控制,則這稱為eclipse 攻擊

除此之外,是的,有人可以做你建議的事情,但它們不會產生預期的效果:節點可以在本地拒絕交易,但這不會阻止其他節點將相同的交易轉發給彼此。節點可以創建錯誤數據並向其對等節點發送垃圾郵件,但他們的對等節點將簡單地禁止它們轉發無效數據——您的節點永遠不會僅僅因為它被多次呈現而接受無效數據。節點可以故意接受無效塊,但這不會導致其他節點接受這些塊。節點可以拒絕一個有效的區塊,但這只是將它們從最佳鏈中分叉出來。

一個節點可以自由地為自己創建一個替代現實,但他們不能改變其他節點對情況的評估。

引用自:https://bitcoin.stackexchange.com/questions/112972