哈希算法是什麼?
區塊鏈的四大核心技術分別是密碼學、分布式帳本、共識機制以及智能合約。而密碼學作為其中最重要的一部分,可以說是區塊鏈的基石,而其他技術是以密碼學為地基,才能搭建出區塊鏈這座高樓大廈。
區塊鏈主要應用的密碼學算法有兩個部分:一個哈希算法,另一個是非對稱加密。
簡單來說,哈希算法就是一種特殊的函數,不論輸入多長的一串字符,只要通過這個函數都可以得到一個固定長度的輸出值,這就好像身份證號碼一樣,永遠都是十八位而且全國唯一。哈希算法的輸出值就叫做哈希值。
哈希算法有三個特點,它們賦予了區塊鏈不可篡改、匿名等特性,並保證了整個區塊鏈體系的完整。第一個特點是具有單向性。比如輸入一串數據,通過哈希算法可以獲得一個哈希值,但是通過這個哈希值是沒有辦法反推回來得到輸入的那串數據的。這就是單向性,也正是基於這一點,區塊鏈才有效保護了我們信息的安全性。
哈希算法的第二個特點是抗篡改能力,對於任意一個輸入,哪怕是很小的改動,其哈希值的變化也會非常大。它的這個特性,在區塊與區塊的連接中就起到了關鍵性的作用。區塊鏈的每個區塊都會以上一個區塊的哈希值作為標示,除非有人能夠破解整條鏈上的所有哈希值,否則數據一旦記錄在鏈上,就不可能進行篡改。
哈希算法的第三個特點就是抗碰撞能力。所謂碰撞,就是輸入兩個不同的數據,最後得到了一個相同的輸入。就跟我們逛街時撞衫一樣,而坑碰撞就是大部分的輸入都能得到一個獨一無二的輸出。在區塊鏈的世界中,任何一筆交易或者帳戶的地址都是完全依託於哈希算法生產的。這也就保證了交易或者帳戶地址在區塊鏈網絡中的唯一性。
無論這筆轉帳轉了多少錢,轉給了多少個人,在區塊鏈這個大帳本中都是唯一的存在。它就像人體體內的白細胞,不僅區塊鏈的每個部分都離不開它,而且它還賦予了區塊鏈種種特點,保護著整個區塊鏈體系的安全。
那什麼是非對稱加密呢?
簡單來說,非對稱加密就是用來對內容進行加密的一種特殊方法,我們日常生活中總用到的鑰匙跟鎖,其中開門用的鑰匙,在密碼學中就被稱之為「密鑰」。而像這種單獨只有一個密鑰,既用於加密有用於解密的方式被稱為對稱加密。
而所謂的非對稱加密就是加密時會產生兩個密鑰,最核心的被稱為私鑰,它是由用戶自己保管的,另一個會被公開出來,叫做公鑰。
它們有個特點,私鑰加密的內容通過公鑰可以解密讀取出來,反之通過公鑰加密的內容,也可以由私鑰解密讀取出來。這就好像雙胞胎的心靈感應一樣,非對稱加密的區塊鏈中的主要用途並不是為了保護內容的隱私性,而是為了防止身份被冒充。
當我們在區塊鏈網絡上進行了一筆交易時,我沒有辦法確定交易的是不是你本人,這個時候就可以讓你的私鑰加密一段內容作為數字籤名發過來,然後我通過已經公開的公鑰進行破解。因為私鑰只有你本人保留,如果我能用與之對應的公鑰成功破解,說明是你本人在進行交易操作。如果不能破解,則說明是別人盜用了你的身份。以此就解決了「我是我」以及"這是我在交易"的問題。
總的來說,密碼學是區塊鏈網絡中最基礎的存在,它不僅保護了整個網絡的安全,更解決了很多交易中的證明問題。
或許隨著量子計算等新技術的出現,有人會質疑它的安全。但要知道,密碼學也在隨時代而進步,要是真的到了量子計算商用的那一天,區塊鏈的密碼學也一定會隨著時代的發展變得更加安全。