當前位置:首頁 » 區塊鏈知識 » 生日悖論和區塊鏈

生日悖論和區塊鏈

發布時間: 2025-01-02 11:11:17

區塊鏈:防篡改的哈希加密演算法

同學A和B在教室里拋硬幣,賭誰打掃衛生,正面朝上,則A打掃,反面朝上,則B打掃,這個策略沒有什麼問題。

然而,如果把情景遷移到網路聊天室,A和B同樣進行拋硬幣的游戲,估計B就不會答應了,因為當A拋了硬幣,B不論是猜

正面還是反面,A都可以說B猜錯了。

怎麼解決這個問題呢?要不先給拋硬幣的結果加密,B再猜?這個方法可以試一下。

假設任意奇數代表硬幣正面,任意偶數代表反面。A想一個數375,然後乘以一個258,把其結果告訴B為96750,並聲明A想的375為密鑰,由他保管。
在接下來驗證結果時,A可以謊稱258為他想的數,375為密鑰,A還是立於不敗之地。那如果A事先把密鑰告訴B呢?B可以直接算出原始數字,失去了保密作用。

這種知道加密方法就知道了解密方法顯然行不通,那有沒有一種方法,知道了加密方法仍然無法恢復原文呢?

顯然是有的,在加密過程中加入不可逆運算就OK了。A設計新的加密方式:

假設A想的數是375,進行加密:

B拿到結果120943,但他幾乎不能根據120943反算出密匙375。
如果B想要驗證A是否說謊:

終於可以拋硬幣了……

這種丟掉一部分信息的加密方式稱為「單向加密」,也叫 哈希演算法

有個問題:

這個是有可能的,但可以解決,就是增加上述演算法的難度,以致於A很難很難找到。

根據以上表述,一個可靠的哈希演算法,應該滿足:

密碼學中的哈希函數有3個重要的性質,即 抗碰撞性、原像不可逆、難題友好性

碰撞性,就是指A同學事先找出一奇一偶使得哈希結果一致,在計算上是不可行的。

首先,把大空間桑拿的消息壓縮到小空間上,碰撞肯定是存在的。假設哈希值長度固定為256位,如果順序取1,2,…2 256 +1, 這2 256 +1個輸入值,逐一計算其哈希值,肯定能找到兩個輸入值使得其哈希值相同。

A同學,看到這里時, 請不要高興的太早。因為你得有時間把它算出來,才是你的。為什麼這么說呢?

根據生日悖論,如果隨機挑選其中的2 130 +1輸入,則有99.8%的概率發現至少一對碰撞輸入。那麼對於哈希值長度為256為的哈希函數,平均需要完成2 128 次哈希計算,才能找到碰撞對。如果計算機每秒進行10000次哈希計算,需要約10 27 年才能完成2 128 次哈希計算。

A同學,不要想著作弊了,估計你活不了這么久。當然如果計算機運算能力大幅提升,倒是有可能。

那麼完整性還用其他什麼用途呢?

用來驗證信息的完整性,因為如果信息在傳遞過程中別篡改,那麼運行哈希計算得到的哈希值與原來的哈希值不一樣。

所以,在區塊鏈中,哈希函數的抗碰撞性可以用來做區塊和交易的完整性驗證。

因為一個哈希值對應無數個明文,理論上你並不知道哪個是。就如,4+5=9和2+7=9的結果一樣,知道我輸入的結果是9,但能知道我輸入的是什麼數字嗎?

如果,對消息m進行哈希計算時,在引入一個隨機的前綴r,依據哈希值H(r||m),難以恢復出消息m,這代表該哈希函數值隱藏了消息m。

所以,B同學,根據結果想反推出原數據,這是不大可能的事,就猶如大海里撈針。

難題好友性,指沒有便捷的方法去產生一滿足特殊要求的哈希值。是什麼意思呢,通俗的講,就是沒有捷徑,需要一步一步算出來。假如要求得到的哈希結果以若干個0開頭,那麼計算找到前3位均為0的哈希值和找到前6位均為0的哈希值,其所需的哈希計算次數是呈一定數量關系。

這個可以怎麼用呢?在區塊鏈中,可以作為共識演算法中的工作量證明。

主要描述了哈希函數的3個重要性質: 抗碰撞性、原像不可逆、難題友好性

因為這些重要性質,區塊鏈中的區塊和交易的完整性驗證、共識演算法的工作量證明等功能用哈希函數來實現。

[1].鄒均,張海寧.區塊鏈技術指南[M].北京:機械出版社,2016.11
[2].長鋏,韓鋒.區塊鏈從數字貨幣到信用社會[M].北京:中信出版社,2016.7
[3].張健.區塊鏈定義未來金融與經濟新格局[M].北京:機械工業出版社,2016.6

熱點內容
區塊鏈改變商業 發布:2025-01-02 11:35:36 瀏覽:461
比特幣呼喚牛市 發布:2025-01-02 11:35:25 瀏覽:630
利用cpu挖礦的幣 發布:2025-01-02 11:33:16 瀏覽:394
區塊鏈趨勢是什麼意思 發布:2025-01-02 11:30:01 瀏覽:473
生日悖論和區塊鏈 發布:2025-01-02 11:11:17 瀏覽:246
深圳夢想生活區塊鏈 發布:2025-01-02 11:04:56 瀏覽:625
怎麼判斷自己手機是否合約機 發布:2025-01-02 10:38:44 瀏覽:158
doge狗奔跑的表情包下載 發布:2025-01-02 10:28:00 瀏覽:334
比特幣剛開始的客戶端 發布:2025-01-02 10:26:42 瀏覽:978
迷你世界挖礦視頻鑽石039 發布:2025-01-02 10:25:16 瀏覽:415