比特幣的共識規則究竟是如何執行的?
有一些規則稱為共識規則,例如區塊生成量。
據說“改變共識規則是硬分叉”。
但是共識規則究竟是如何執行的呢?
網際網路上說共識規則是每個完整節點都遵循的規則。並且每個節點“無論如何”都會拒絕不符合共識規則的區塊。
好的。
但。
必須所有完整節點都接受嗎?還是應該大多數完整節點接受?還是有一些必須接受的“神聖的完整節點”?
如果一個人控制了 90% 的全節點並決定接受 200 BTC/塊的塊怎麼辦?如果一個人控制 90% 的算力和 90% 的所有節點和 90% 的所有全節點怎麼辦?
全節點軟體是否以某種方式“簽名”以防止修改共識規則?
但是共識規則究竟是如何強制執行的呢?
每個完整節點都會強制執行它們。
網際網路說共識規則是每個完整節點都遵循的規則。並“無論如何”拒絕不符合共識規則的區塊。
正確的。
好的。
但。
所有的完整節點都應該接受嗎?還是應該大多數完整節點接受?還是有一些必須接受的“神聖的完整節點”?
你的全節點做什麼對我來說並不重要。其他人的完整節點做什麼對我來說並不重要。據我了解,我的執行共識規則。
如果一個人控制了 90% 的全節點並決定接受 200btc/塊的塊怎麼辦?如果一個人控制 90% 的算力和 90% 的所有節點和 90% 的所有完整節點怎麼辦?
然後一個人擁有一個不會與其他任何人互操作的網路,因為它不遵循共識規則,所以它所說的一切對其他人來說都是垃圾。就世界其他地區而言,90% 的算力只是停止探勘有效的比特幣區塊。他們不會試圖理解那個人產生的垃圾,因為他們不知道這意味著什麼。他們怎麼知道使這些數據有意義的規則是什麼?
我怎麼知道這些區塊有 200 BTC 的獎勵?相同的規則集告訴我在哪裡查看塊以找出獎勵也告訴我獎勵不是200 BTC。我的節點怎麼會知道如何理解這一點?當然,它不會。它會說,“這不是一個障礙,這是一些我無法理解的垃圾”並忽略它。
我的比特幣全節點遵循的規則沒有提供任何方式來指定超過 50 BTC 的塊獎勵。根本沒有辦法讓我的完整節點接受這樣的事情存在,因為它被編碼為不存在。
全節點軟體是否以某種方式“簽名”以防止修改共識規則?
不,每個人都可以遵循他們想要的任何規則。當然,它們只能與同意遵守相同規則的人進行互操作。如果他們不能達成一致,那麼網路可以與選擇不同規則的人在不同的區塊鏈上進行分叉。