時間:2021-12-15|瀏覽:431
假設(shè)小黑給大白發(fā)了 666BTC,并被打包到了第 N 個區(qū)塊。沒過幾分鐘,小黑反悔了,通過自己控制的超過 50% 的算力,發(fā)起了 51% 算力攻擊,通過剔除發(fā)給大白的 666BTC 那筆交易,重組第 N 個區(qū)塊,并在重組的第 N 個區(qū)塊后面繼續(xù)延展區(qū)塊,使之成為最長合法鏈。
這就是雙花的過程,小黑發(fā)給大白的那 666BTC 被作廢。
從上面的例子中,我們可以看到,即便大白當(dāng)時收到了小黑轉(zhuǎn)賬過來的 666BTC,交易被打包上鏈,這筆交易也是有可能被作廢的。
為了避免雙花造成的損失,一般認為,等 6 個區(qū)塊確認后的比特幣交易基本上就不可篡改了。也就是說,如果小黑發(fā)給大白的 666BTC 這筆交易被打包在了第 N 個區(qū)塊(第1個區(qū)塊確認),大白等到第 N+5 個區(qū)塊出現(xiàn)的時候(第6個區(qū)塊確認),這筆交易基本上就不可篡改了。
請注意,這里用的是“基本上”,并不是絕對。
不久前,幣安發(fā)生了黑客盜幣事件,一共被盜 7000 多枚比特幣,這筆比特幣被黑客轉(zhuǎn)走,交易記錄打包在區(qū)塊高度 575013 上。事故發(fā)生不久后,有人就提議進行區(qū)塊重組,當(dāng)時已經(jīng)有很多個區(qū)塊確認了。
區(qū)塊重組的意思是,從黑客轉(zhuǎn)走比特幣的那個區(qū)塊開始,剔除黑客的交易記錄,重新創(chuàng)造那個區(qū)塊以及所有之后的區(qū)塊。如下圖:
據(jù)說盜幣事件發(fā)生后,幣安的 CZ 給比特大陸的吳忌寒打了電話,溝通過比特幣區(qū)塊鏈重組的事情。當(dāng)時,他們能聯(lián)合比較大的比特幣算力,從技術(shù)的角度看是有能力重組并讓重組鏈成為比特幣最長合法鏈的。如何計算重組后需要花費多長時間成為最長合法鏈,可以參考白話區(qū)塊鏈學(xué)堂的推文《幣安7074枚比特幣被盜,如果區(qū)塊重組有多大概率成功拿回》。
重組消息一出,業(yè)內(nèi)一片嘩然,各種爭議聲不斷。當(dāng)然,最后沒有重組,幣安愿意自己承擔(dān)黑客盜幣的所有損失。
一般來說,確認的區(qū)塊數(shù)越多,越安全,被 51% 攻擊后篡改、重組的可能性越低。至于我們經(jīng)常看到的比特幣交易 6 個區(qū)塊確認后就安全了,這個數(shù)字 6 并不是硬性規(guī)定的,只是說有了 6 個區(qū)塊確認,被篡改的可能性非常低,因為黑客或者攻擊者目前很難掌握大量的比特幣算力來做惡。
比特幣平均每 10 分鐘打包一個區(qū)塊,6 個區(qū)塊確認平均下來需要 60 分鐘。那我們是不是每一筆比特幣交易,都要等上 60 多分鐘呢?
其實不是。對于小額交易,不需要等待 6 個區(qū)塊確認,因為比特幣發(fā)生 51% 算力攻擊的可能性很小。一般來說,小于 1000 美元的比特幣交易,1 個區(qū)塊確認即可;介于 1000~10000 美元的比特幣交易,一般的交易平臺充值、提現(xiàn)會要求至少 3 個區(qū)塊確認;介于 10000~100000 美元的比特幣交易,基本需要 6 個區(qū)塊確認;大于 100000 美元的交易,確認的區(qū)塊數(shù)量越多越好。