從0開始學區塊鏈:密碼學的創新應用?

從0開始學區塊鏈:密碼學的創新應用?

在區塊鏈領域,我們經常聽到一個詞語,叫做加密貨幣,其實就是我們平時理解的數字貨幣。但是為什麼成為加密貨幣?

其實就是說,他使用了一種密碼學的技術來確保交易安全及控制交易單位創造,比特幣就是第一個真正意義上的去中心化的加密貨幣,不依靠法定貨幣機構發行,不受央行管控。它依據全世界的計算機運算一組方程式開源代碼,通過計算機顯卡、cpu大量的運算處理產生,也就是我們經常提到的POW的共識激勵機制,並使用密碼學的設計來確保貨幣流通各個環節安全性。

因此其實我們可以看到在區塊鏈領域中,密碼學技術是一個繞不開的話題,作為一個區塊鏈從業者,我也對密碼學技術有過一定的瞭解,接下來我會按照自己的理解來像大家介紹密碼在區塊鏈領域的相關情況。

首先,大家一定都還記得,在上篇《區塊鏈那些事?》中,專員有提到過的區塊鏈的五大特性,其中有一點提到過的就是有一點,叫做不可篡改性,不可篡改其實大家很好理解,也就是說,一旦交易生成寫塊之後,便無法再進行修改,保證了交易的唯一性。

但是在保證這個其實的時候,我有提到到一個名詞,叫做哈希(Hash)算法。

就是說,每個交易區塊鏈或者說交易都有一個唯一的Hash值,而區塊鏈中存儲的交易信息每一條都有相對應的哈希值、時間戳以及前一個區塊的標識符(Hash)形成一條鏈式結構,要想篡改區塊鏈中的一條記錄,不僅要修改本區塊的Hash值,還要修改後續所有區塊的Hash值。其實Hash算法,就是我們所提到的一個重要的密碼學算法之一,他的學名叫雜湊算法,其實又叫做摘要算法,他的作用就是,把你任意長度的一段明文,經過密碼學的運算,生成一種固定長度的雜湊值,而根據輸入的明文的不同,保證了生成的摘要也就是Hash值也是不同的,因此Hash算法被廣泛用於完整性檢查、數字簽名等場景,另外Hash算法也能做為每個交易或者區塊等相關信息的唯一標識符,我們可以通過Hash值快速檢索或查詢某個交易或者區塊的相關信息。常見的摘要算法有MD5、RIPEMD、SHA系列和國密的SM3。

接著專員要來說,剛剛提到過的數字簽名,上篇文章中我也有提到說區塊鏈有一個所謂不可偽造性,整個核心就是利用了數字簽名這一密碼學手段來進行的。在將數字簽名之前,我必須給大家提一下一個密碼學當中很常見的一個名詞,叫做非對稱加密,何為非對稱加密,其實就是說加密解密雙方拿到的密鑰是不同的,也就是我們常說的公私鑰對,在對稱加密當中是分別有一個公鑰以及私鑰的,私鑰是留給自己的,不能給別人所知道,公鑰也就是說可公開的,沒關係,大家都可以知道的。

接下來我來講一下,整個簽名的流程,如下圖所示:

從0開始學區塊鏈:密碼學的創新應用?

發送者,首先要講自己要發送的信息用hash算法進行計算,算出一個固定長度且唯一不可變的一個摘要,接著發送者利用自己的私鑰對摘要信息進行一些列的簽名,生成針對於這筆交易的唯一簽名,將信息和簽名通過網絡一起利用網絡進行了傳輸,對手方收到了之後,想要驗證這個消息有沒有被篡改或者是不是你本人認可過的,很簡單,只要利用收到的交易,利用同一個hash算法進行hash,然後利用發送方的公鑰,進行驗籤,如果說消息再傳播的過程中被篡改,則驗籤不會被通過,另外如果說黑客攔截消息想進行簽名的修改,他沒有簽名方的私鑰,也沒有辦法再次進行簽名,整個簽名算法也是不可逆的,只有擁有私鑰的人才能再次進行修改,這樣就保證了消息再傳輸過程中不被篡改以及身份認證。

這時候,很多人會問,保證了消息不被竄改,但我消息還是明文傳輸的呀,誰拿到都可以知道我這筆交易有多少錢了啊,我沒有任何隱私可言了,這時候就用了我們所說的對稱加密,何為對稱加密,其實就是說,兩邊的密鑰對是一致的,就相當於兩邊都擁有一致的密碼,在交易通信之前,我們先協商好自己的密碼,保證兩邊的密碼是一樣的,這樣的情況下我們就可以理解,通過的密碼我當然可以加密也可以解密。當然其實剛剛的非對稱加密也可以做加密解密,我為什麼不提?因為在區塊鏈當中,因為非對稱加解密的效率比較低,用的比較少,而用對稱加密加解密信息的比較多,所以我單獨講了一些對稱加密。

綜上,其實專員剛剛講的知識最最基礎的密碼學相當的應用,我們還有很多先進的密碼學相關的東西,比較最近很火的零知識,環簽名等等,但是都是在我剛剛說的基礎之上的,我們以後也會講到,希望大家在關注數字貨幣的時候,也多多關注區塊鏈技術的發展情況,比較區塊鏈技術真的是一門可以改變世界的技術。專員對此也是有一定的信仰的!!!


分享到:


相關文章: