是否可以通過檢查節點是否連接到多個 ASIC 而不是一個來對抗挖礦集中化?
在礦池中,來自世界各地的許多 ASIC 和 GPU/CPU 連接到礦池的節點。是否可以強制每個節點的客戶端軟體在允許節點探勘之前檢查節點是否僅連接到一個計算單元?還是我錯過了關於礦池節點如何工作的一些資訊?
如果我是對的,有人會說我們無法知道客戶端或硬體是否被篡改,以至於客戶端總是會說只有一個計算單元。將客戶端和硬體置於可信執行環境 (TEE) 中以防被篡改如何?
不,這是不可能的。必須允許礦工在未經許可的情況下加入網路,否則就需要“決策者”的職位。這並不一定意味著決策者只是一個人(或一群人等),但在任何情況下,它都會增加進入網路的障礙。
考慮一下:如果我是一名礦工,我為什麼要允許我的節點“允許”任何其他礦工加入網路?通過不允許其他任何人加入,我在挖礦時的競爭就會減少。所以我會很聰明地盡我所能阻止其他人加入。
此外,網路如何就允許哪些節點進行挖礦達成共識?這是一個不平凡的問題,實際上是挖礦本身允許網路保持共識。你需要創建一個全新的系統和共識層,這將在挖礦行為之前。
另外值得一提的是:即使有可能,執行一個節點的成本也不高,因此不會阻止單個實體執行多個節點以執行多個挖礦硬體設備。
正如您所提到的,也沒有辦法強制使用者使用特定的軟體實現。在這種情況下,可信執行環境不是解決方案:強制執行類似的操作將集中決定在 TEE 內執行什麼,這與無許可和開源性質的加密貨幣形成鮮明對比。沒有這些屬性,像比特幣這樣的加密貨幣的價值主張就會被破壞。如果決策者或硬體製造商受到損害怎麼辦?這樣的情況給網路帶來了巨大的生存風險。
將客戶端和硬體置於可信執行環境 (TEE) 中以防被篡改如何?
這基本上是您可以完成此任務的唯一方法。但這意味著必須對程式碼進行簽名,並且您需要一些集中的權限來進行簽名。該機構將完全控制比特幣的運作方式。
然而,比特幣的主要設計目標之一是避免中心化,因此關於貨幣如何運作的決定是由共識做出的,而不是由任何單一權威機構做出的。(你可以在創世區塊中看到一些文字,表達了 Satoshi 對中央銀行的懷疑。)所以你可以設計一種只能在 TEE 上執行的貨幣,它可能有你想要的採礦限制,但我想你會發現目前的大多數比特幣使用者群對使用這種貨幣沒有興趣。