為什麼礦池不能在生成的區塊內提供虛假交易?
假設 Alice 想要添加一個虛假交易,她收到X數量的BTC。我知道,為了將該交易添加到區塊鏈中,她必須與所有其他礦工競爭以生成下一個區塊,這使得作為個人對抗他們的可能性不大。
現在,如果我們看下一張圖(取自blockchain.info),它顯示了網路中雜湊率最高的礦池:
我們看到,例如,礦池BTC.com擁有 26.4% 的網路雜湊率,因此我的問題是:**為什麼這個礦池中的所有礦工都不能通過向他們的所有區塊添加虛假交易來達成協議產生?**與之前的情況不同,在之前的情況下,愛麗絲是一個幾乎沒有機會生成更改塊的個人,礦池很有可能做到這一點。
假設 Alice 想要添加一個虛假交易,她收到 X 數量的 BTC。我知道,為了將該交易添加到區塊鏈中,她必須與所有其他礦工競爭以生成下一個區塊,這使得作為個人對抗他們的可能性不大。
不,這是不正確的。不管她有多大的算力,也不管她合作的礦工有多少,她都無法在區塊鏈上添加虛假交易。
一個常見的誤解是,礦工全權負責確定交易是否有效,如果他們說是,那麼其他人都接受它。事實上,任何執行比特幣全節點(例如比特幣核心)的人都會自動檢查每筆交易是否有效(從之前有效且未使用的交易中花錢,正確簽名等)。如果礦工試圖在一個區塊中包含無效交易,這將被檢測到並且他們的整個區塊將被所有人忽略,這實際上意味著他們沒有得到他們的挖礦獎勵。
有了足夠的算力,或者有礦池的配合,Alice 可以用她的虛假交易創建一個區塊。但是世界上沒有人會認為它是有效的或接受它作為區塊鏈的一部分。如果她試圖花費該交易的收益,例如將這些硬幣發送給 Bob 以換取一些商品,Bob 的軟體將簡單地忽略它。他會認為愛麗絲根本沒有付款,不會給她寄任何貨物。所以整個練習將是對愛麗絲的時間和資源的巨大浪費,而沒有得到她任何東西或傷害任何其他人。
礦工擁有的唯一特殊權限是:如果有兩個或多個其他有效交易相互衝突,那麼礦工可以決定哪一個(或沒有)進入區塊鏈,從而確認它。但他們無法確認一開始就無效的交易。
大量的算力或礦池可以幫助 Alice 執行雙花攻擊,在這種攻擊中,有效且已確認的交易隨後在區塊鏈中被替換為不同的有效交易。第一個可能已經發給了 Bob,他會發送一些貨物,第二個可以有效地從 Bob 那裡拿回錢,然後從 Alice 那裡退還,Alice 現在已經擁有了錢和貨物。但是第二筆交易是 Alice 本來可以創造的(當然她可以把自己的錢寄給自己);它不是“假的”。