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





