區塊鏈鼻祖比特幣之7:區塊鏈在比特幣中的真正用意

尹成發表於2018-04-27

前面的文章我們已經提到了,分散式的傳輸所帶來的致命問題,那就是難以保證時間順序帶來的惡意攻擊。

比特幣採用精巧的設計,來決定和保護交易順序,這就是區塊鏈的基礎。比特幣系統把交易集結成群,每一群稱為一個區塊。把區塊串在一起,成為了區塊鏈。



       注意,這個之前講解的交易鏈是不同的東西。區塊鏈用來排序交易,而交易鏈用來追蹤比特幣所有權的變化。比特幣設計,所有的交易都參照驗證前一個交易,也就是說,區塊按照時間的順序來排列區塊。由於後一個區塊保留了前一個區塊的id,因此新產生的區塊可以一直追溯到初始的區塊。同區塊的交易被視為同時間產生的交易,還沒有進入區塊的交易則被視為未確認或未排序。任何節點都可將一群未確認的交易收進一區塊,併傳送告知其他節點,作為下一個區塊的參考。由於同一時間可有多個人在同時建立區塊,所以有很多的排序可能。那系統要如何決定下一個區塊呢?我們不能靠區塊出現的順序決定,以為前面提過,不同節點收到的順序不一樣。比特幣的做法是將區塊加上特殊的數學題目,這是通過雜湊函式來決定的。電腦會執行整個區塊文字,並加上一個隨機猜測。這道數學問題是F(block)<目標值。採用了當前最流行的SHA256雜湊加密演算法。如下圖所示,任何一個微小的差距都會帶來截然不同的輸出,因此,解決問題的辦法就是靠猜。

 

        這道數學題目的解可能有多個。我們在區塊中補增一個隨機數(Nonce),這個隨機數要使得該給定區塊的隨機雜湊值出現了所需的那麼多個0。我們通過反覆嘗試來找到這個隨機數,直到找到為止,這樣我們就構建了一個工作量證明機制。只要該CPU耗費的工作量能夠滿足該工作量證明機制,那麼除非重新完成相當的工作量,該區塊的資訊就不可更改。由於之後的區塊是連結在該區塊之後的,所以想要更改該區塊中的資訊,就還需要重新完成之後所有區塊的全部工作量。




網址:http://www.qukuailianxueyuan.io/



欲領取造幣技術與全套虛擬機器資料

區塊鏈技術交流QQ群:756146052  備註:CSDN

尹成學院微信:備註:CSDN




網址:http://www.qukuailianxueyuan.io/



欲領取造幣技術與全套虛擬機器資料

區塊鏈技術交流QQ群:756146052  備註:CSDN

尹成學院微信:備註:CSDN

相關文章