比特幣的交易為什麼需要1個小時才能確認?

區塊鏈技術在金融行業的一個主要應用場景是進行境外匯款。目前傳統銀行進行境外匯款需要2~3個工作日,而採用區塊鏈技術可以將時間縮短為幾個小時甚至是幾分鐘。那具體是如何實現的?我們就以比特幣系統為例,為大家介紹為什麼比特幣的交易確認時間為1個小時,也就是60分鐘。

在比特幣系統中,交易是記錄在區塊中的,而每個區塊的平均產生時間為10分鐘,在比特幣系統中規定只有等待6個區塊產生後,交易才能進行最終確認,這就是為什麼比特幣系統中交易需要1個小時進行確認。

------------------------------------

如果想了解的更為詳細一些,那就繼續往下看吧!

------------------------------------

比特幣的交易為什麼需要1個小時才能確認?

為什麼規定區塊平均10分鐘產生一個:

在比特幣系統中,礦工在挖取到區塊時,需要將區塊廣播到整個比特幣網絡中,考慮到網絡延時,同時為了確保有足夠的節點能接收到這個區塊,所以規定區塊的產生時間為10分鐘。

臨時分叉:

在廣播區塊的這個過程中,可能會出現多個礦工同時挖取到正確區塊的情況,所以可能會有多個符合條件的區塊在網絡上進行傳播,也就是當前區塊的後面可能會鏈接多個區塊,所以就會產生臨時性的分叉。

最長鏈原則:

在比特幣系統中,採用的是最長鏈原則,也就意味著所有的比特幣節點只會沿著最長鏈來挖取下一個區塊,而沒有位於最長鏈上的區塊最終會被拋棄掉,所以如果某個交易沒有打包在最長鏈所在的區塊中,那麼這個交易就無法得到確認。

需要6個區塊確認:

如果只有1次確認,那麼有可能這個區塊不在最長鏈上,而在臨時分叉上,那麼這個交易不被確認的概率非常高。而經過6個區塊的確認,打包有當前交易的區塊在主鏈上的機率才能接近100%,所以這就是為什麼選擇6個區塊進行確認的原因。換言之,在連續6個區塊被確認後,區塊信息基本上沒有辦法被篡改,所以交易才算最終完成。

比特幣的交易為什麼需要1個小時才能確認?

為什麼需要6個區塊的確認呢?

在《Analysis of hashrate-based double-spending 》這個論文中有一張表可以用做參考,左側是攻擊節點佔全網算力的概率,上側是需要等待確認幾個區塊的數量,中間是攻擊節點發動攻擊成功的概率,從圖中可以看出,在假設攻擊節點的算力佔全網算力10%時,等待6個區塊的確認,攻擊行為成功的概率為0.059%,小於0.1%。可以看出6的選擇也是一個折衷的結果,畢竟是在假設攻擊節點算力只有10%的前提下。

小編感嘆:原來比特幣也不是完全安全的交易系統!


分享到:


相關文章: