密碼算法算法
密碼算法的應用在區塊鏈中是個很巧妙的東西,它應用的點也不少,咱們在這裏不詳細介紹密碼算法的原理,就從幾個關鍵的應用來介紹一下。數據結構
首先咱們回顧一下區塊鏈帳本格式,經過上述講解咱們已經知道,區塊鏈帳本就是鏈接起來的一個個區塊,那麼究竟是經過什麼來鏈接的呢?學過數據結構的朋友都知道,在數據結構中有一種變量叫作指針,它能夠用來指向某數據的地址,那麼區塊的鏈接是否是用過這樣的方式呢?生活中地址鏈接的例子不少,好比路牌、門牌等,然而區塊之間的鏈接,每每都不是靠數據地址來鏈接的,而是靠一種叫作哈希值的數據來關聯的,什麼叫哈希值?這是經過密碼算法中的哈希算法計算得出的,哈希算法能夠經過對一段數據計算後得出一段摘要字符串,這種摘要字符串與原始數據是惟一對應的,什麼意思呢?若是對原始數據進行修改,哪怕修改一點點,那麼計算出來的哈希值都會徹底變化。區塊鏈帳本對每一個區塊都會計算一個哈希值,稱爲區塊哈希,經過區塊哈希來串聯區塊。這裏有個很好的做用就是,若是有人篡改了中間的某一區塊數據,那麼後面的區塊都要進行修改,這個時候並非簡單的修改一下後面區塊的地址指向就能結束,因爲後面的區塊是經過區塊哈希來指向的,只要前面的區塊發生變更,這個區塊哈希就無效了,就指不到正確的區塊了。區塊鏈
另一個對密碼算法的應用就是梅克爾樹結構,梅克爾樹在以後會詳細講解,咱們先初步認識一下,經過上述講解咱們知道,每一個區塊會被計算出一個哈希值,實際上,除了整個區塊會被計算哈希值以外,區塊中包含的每一筆事務數據都會計算一個哈希值,稱爲事務哈希,每個事務哈希均可以惟一的表示一個事務,對一個區塊中全部事務進行哈希計算後,能夠得出一組事務哈希,再經過對這些事務哈希進行加工處理,最終得出一顆哈希樹的數據結構,哈希樹的頂部就是樹根,稱爲梅克爾根。經過這個梅克爾根就能夠將整個區塊中的事務約束起來,只要區塊中的事務有任何改變,梅克爾根就會發生變化,利用這一點能夠保證區塊數據的完整性。spa
固然,密碼算法在區塊鏈系統中的應用還遠不止這些,好比經過密碼算法來建立帳戶、地址、簽名交易事務等,這些應用在後續會逐步介紹。指針