區塊鏈技術在金融行業的一個主要應用場景是進行境外匯款。目前傳統銀行進行境外匯款需要2~3個工作日,而採用區塊鏈技術可以將時間縮短為幾個小時甚至是幾分鐘。那具體是如何實現的?我們就以比特幣系統為例,為大家介紹為什麼比特幣的交易確認時間為1個小時,也就是60分鐘。
在比特幣系統中,交易是記錄在區塊中的,而每個區塊的平均產生時間為10分鐘,在比特幣系統中規定只有等待6個區塊產生後,交易才能進行最終確認,這就是為什麼比特幣系統中交易需要1個小時進行確認。
------------------------------------
如果想了解的更為詳細一些,那就繼續往下看吧!
------------------------------------
為什麼規定區塊平均10分鐘產生一個:
在比特幣系統中,礦工在挖取到區塊時,需要將區塊廣播到整個比特幣網絡中,考慮到網絡延時,同時為了確保有足夠的節點能接收到這個區塊,所以規定區塊的產生時間為10分鐘。
臨時分叉:
在廣播區塊的這個過程中,可能會出現多個礦工同時挖取到正確區塊的情況,所以可能會有多個符合條件的區塊在網絡上進行傳播,也就是當前區塊的後面可能會鏈接多個區塊,所以就會產生臨時性的分叉。
最長鏈原則:
在比特幣系統中,採用的是最長鏈原則,也就意味著所有的比特幣節點只會沿著最長鏈來挖取下一個區塊,而沒有位於最長鏈上的區塊最終會被拋棄掉,所以如果某個交易沒有打包在最長鏈所在的區塊中,那麼這個交易就無法得到確認。
需要6個區塊確認:
如果只有1次確認,那麼有可能這個區塊不在最長鏈上,而在臨時分叉上,那麼這個交易不被確認的概率非常高。而經過6個區塊的確認,打包有當前交易的區塊在主鏈上的機率才能接近100%,所以這就是為什麼選擇6個區塊進行確認的原因。換言之,在連續6個區塊被確認後,區塊信息基本上沒有辦法被篡改,所以交易才算最終完成。
為什麼需要6個區塊的確認呢?
在《Analysis of hashrate-based double-spending 》這個論文中有一張表可以用做參考,左側是攻擊節點佔全網算力的概率,上側是需要等待確認幾個區塊的數量,中間是攻擊節點發動攻擊成功的概率,從圖中可以看出,在假設攻擊節點的算力佔全網算力10%時,等待6個區塊的確認,攻擊行為成功的概率為0.059%,小於0.1%。可以看出6的選擇也是一個折衷的結果,畢竟是在假設攻擊節點算力只有10%的前提下。
小編感嘆:原來比特幣也不是完全安全的交易系統!
閱讀更多 I舟冰I 的文章