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