比特幣區塊鏈為啥用雜湊函式?對稱加密與非對稱加密原理?

買賣虛擬貨幣
【原創圖文幽默解釋】比特幣區塊鏈為啥用雜湊函式?對稱加密與非對稱加密原理?小白一文讀懂基礎

比特幣區塊鏈的世界總會聽到一個詞,雜湊Hash,也稱雜湊函式。一天到晚雜湊來,雜湊去的,把人都聽迷糊了。那麼為什麼要用雜湊函式呢?這篇文章就給大家通俗易懂的講一講。

LET'S GO!!!


首先,加密,我們來講最純潔兩小無猜的資訊傳遞:如下圖完美展示嘿嘿:

A傳遞資訊123給B,B直接接收到的就是123。但這就像我們在象牙塔裡面憧憬未來社會一樣單純可愛。因為一旦一個人發現了這個資料直接就偷走了,有可能給造成極大的損失,比如保險櫃密碼。


然後,就出現了一種想法,沒有安全感啊,加個密吧,吼吼吼。

就是經常在網上看到的下圖:(傳統對稱加密)

     當然例子裡面的+1演算法是最簡單的秘鑰,實際生活中將會更加的複雜,所以這種加密的方法在某些程度上已經能夠滿足生活中某些地方的需要。

都能滿足了,那為啥還要繼續學!!!!

因為,他/她/它~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

駭客一旦盜取破解了你的秘鑰,那麼就可以代替你做很多事,當然你最好別指望他大發慈悲給你存個200元紅包。

那麼會有人說了,駭客破解秘鑰容易嗎?答案是:不容易,但概率也不低。

但是,只要這個監聽者嘗試次數夠多,透過你的密文相關資訊不斷總結,運算速度夠快,就很有可能碰撞出我們的秘鑰從而得到關鍵他需要的資訊來盜用。

因為上述傳統對稱加密的方法,秘鑰被算破解後,就可以為所欲為了

區塊鏈中,我們經常用的是,非對稱加密的方法。

那用傻白甜的圖理解咋理解呢:

前半部可以按之前的非對稱加密的方法理解就好了哦


區別在於後半部,密文是透過B的私有秘鑰開啟的,所以這種演算法就避免了傳統加密模式中的秘鑰被駭客推算出來後就完蛋了的尷尬。

(演算法會有所不同,但是非對稱加密e和d的規律永遠是我們畫的這樣)

但駭客也有可能透過黑你儲存私鑰的地方來偷,但是難度係數要大一點,所以區塊鏈的夥伴別傻了吧唧把私鑰發給任何人,或者任何論壇,等公開場合上面,公鑰隨便發哈哈哈,看看能不能收到糖果。私鑰可以儲存在額外加密的onenote,或其他地方即可。

以上資訊呢,是加密的基礎知識方面,接下來,我們來介紹雜湊函式這個數字簽名中常用的東東。不要被它神奇的名字弄蒙圈了。

我們來講一個故事,這個故事你會覺得很驚訝,但他就是事實。啥故事呢?

生日碰撞現象:

假如一個班50個同學,有2個同學同一天生日的概率有多少?我們一定會想,一年365天,我們班一共50個人,那概率不大啊。

表面看來的確是這樣的,但實際的概率呢?往往真實並不跟我們想的一樣。

假設,一共有N個人,兩個人生日不在同一天的概率是P, SO,那麼兩個人在同一天的概率就是1-P,

當N=1時,就不存在第二個人了,那肯定P=100%了

當N=2和3時,


以此類推,當N=n時的P就是:


所以,我們來看看,我們最開始覺得概率很小的那個50人中倆人一天出生概率到底有多少呢,將N=50代入公式中得到:

P=2.9%,所以1-P=97.1% !!

也就是說,50人裡面生日同一天的概率居然有97.1%,萬萬沒想到啊。當我第一次看到這個數的時候也覺得很不可思議,但是的確這是沒有問題的演算法。

當然接下來說的雜湊函式,也會被生日碰撞現象撞出來,所以生日碰撞現象是一個威脅。

那你還說他幹嘛!!!

利大於弊嘛!!!

主要是,利用雜湊函式的特點:

1.單向性

2.每個函式推匯出的結果位數確定

比如如下圖:A給B透過雜湊函式傳輸資料,B得到RNG


利用雜湊函式的單單向性,我們就能避免傳統加密被駭客破解秘鑰後的尷尬。

傳統情況一旦你的秘鑰被駭客知道了,接收者也不知道資料的真假。

所以你很有可能接收到的就是錯誤的駭客發出的222資料,因為你只能解密,你也不知道哪個是正確的資料。

而有了雜湊函式演算法後,我們就可以利用它的單向性。避免這個問題

我們收到了123這個資料,也收到了RNG這個轉換後的資料,透過雜湊函式推算,123的確能推算出RNG,那證明這個資料就是真實的。而且駭客就算拿到了計算後的雜湊值RNG,也反推不回去123這個資料。

RNG這段也就是我們常常說的數字簽名的意思。上半段還是我們講的加密。

所以結局要來了哈哈哈,區塊鏈中的雜湊

區塊鏈中,每個區塊不僅僅告訴你之前區塊的位置,也給你提供一個雜湊值去驗證這個區塊所包含的資料是否發生篡改。

睜大你的雙眼,哈哈這塊有一丟丟繞哦:


也就是,

第一、單向性保證了透過雜湊值RNG你沒法反推出我的原資料123,當然真正的時候雜湊值亂七八糟的,不可能是RNG這麼簡單的,哈哈哈。

第二、每個區塊儲存了前面區塊的雜湊值,也就是Block2有Hash值,h2,所以Block2如果被坑了,那麼Block2算出來了H2,和h2就不一樣了哦。所以就會檢查出問題節點。

在區塊鏈中,剛剛描述的生日碰撞現象是與雜湊函式相關的重要概念體現著雜湊函式的安全性指兩個不同的訊息在同一個雜湊函式作用下,具有相同的雜湊值。

所以這是一個需要不斷更新演算法來增加抗碰撞性。

這就是比特幣區塊鏈中我們經常聽到的雜湊雜湊的原理,系不繫明白了呢,感謝偉大的工程師們。

具體的hash函式演算法,我就不深究了,那個太複雜了,燒腦哈哈。

咱們瞭解一下基礎層面的就夠啦哦~~~

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;