Mining-Pools
是什麼阻止了礦池礦工竊取整個區塊?
據我了解,在探勘 BTC 併計算區塊時,目標是找到低於某個值的 SHA-256 雜湊(以前一個區塊、隨機數和其他東西作為輸入)。礦池礦工是否都直接執行該計算(只是使用不同的隨機數?)
如果是這樣,是什麼阻止了“找到”區塊的礦工保留它,而不是將其報告回礦池?我假設這裡有一些保護措施,而礦工們實際上並不會找到完整的解決方案。
當您在礦池中執行礦工時,您通過
getwork
協議進行通信。它基本上歸結為請求工作和發回共享(在極少數情況下,解決塊)。getwork 中的工作是一個塊頭,而不是整個塊。coinbase 交易在 merkle 根中編碼,但礦工不知道。創建共享或塊解決方案的塊雜湊僅對給定的默克爾根有效。如果你改變幣基,給自己所有的錢,你的解決方案就會失效,必須重新開始。如果您正在探勘自己的區塊,則任何池都不應該接受您的份額(除非它是愚蠢的)。總而言之 - 礦工不知道 coinbase 交易,也不能在不使其失效的情況下更改區塊。
另一方面,礦工可以在送出其他份額的同時保留一個塊解決方案。這將使資金池獲得更少的錢,同時仍然必須為這些股票支付潛在的費用。但是這個漏洞可以通過統計來檢測,因此在很長一段時間內可以發現這樣的惡意礦工。