當前位置:首頁 » 區塊鏈知識 » 區塊鏈里的哈希加密演算法

區塊鏈里的哈希加密演算法

發布時間: 2023-08-21 22:52:25

1. 區塊鏈的密碼技術有

密碼學技術是區塊鏈技術的核心。區塊鏈的密碼技術有數字簽名演算法和哈希演算法。
數字簽名演算法
數字簽名演算法是數字簽名標準的一個子集,表示了只用作數字簽名的一個特定的公鑰演算法。密鑰運行在由SHA-1產生的消息哈希:為了驗證一個簽名,要重新計算消息的哈希,使用公鑰解密簽名然後比較結果。縮寫為DSA。

數字簽名是電子簽名的特殊形式。到目前為止,至少已經有 20 多個國家通過法律 認可電子簽名,其中包括歐盟和美國,我國的電子簽名法於 2004 年 8 月 28 日第十屆全 國人民代表大會常務委員會第十一次會議通過。數字簽名在 ISO 7498-2 標准中定義為: 「附加在數據單元上的一些數據,或是對數據單元所作的密碼變換,這種數據和變換允許數據單元的接收者用以確認數據單元來源和數據單元的完整性,並保護數據,防止被人(例如接收者)進行偽造」。數字簽名機制提供了一種鑒別方法,以解決偽造、抵賴、冒充和篡改等問題,利用數據加密技術、數據變換技術,使收發數據雙方能夠滿足兩個條件:接收方能夠鑒別發送方所宣稱的身份;發送方以後不能否認其發送過該數據這一 事實。
數字簽名是密碼學理論中的一個重要分支。它的提出是為了對電子文檔進行簽名,以 替代傳統紙質文檔上的手寫簽名,因此它必須具備 5 個特性。
(1)簽名是可信的。
(2)簽名是不可偽造的。
(3)簽名是不可重用的。
(4)簽名的文件是不可改變的。
(5)簽名是不可抵賴的。
哈希(hash)演算法
Hash,就是把任意長度的輸入(又叫做預映射, pre-image),通過散列演算法,變換成固定長度的輸出,該輸出就是散列值。這種轉換是一種壓縮映射,其中散列值的空間通常遠小於輸入的空間,不同的輸入可能會散列成相同的輸出,但是不可逆向推導出輸入值。簡單的說就是一種將任意長度的消息壓縮到某一固定長度的消息摘要的函數。
哈希(Hash)演算法,它是一種單向密碼體制,即它是一個從明文到密文的不可逆的映射,只有加密過程,沒有解密過程。同時,哈希函數可以將任意長度的輸入經過變化以後得到固定長度的輸出。哈希函數的這種單向特徵和輸出數據長度固定的特徵使得它可以生成消息或者數據。
比特幣區塊鏈為代表,其中工作量證明和密鑰編碼過程中多次使用了二次哈希,如SHA(SHA256(k))或者RIPEMD160(SHA256(K)),這種方式帶來的好處是增加了工作量或者在不清楚協議的情況下增加破解難度。
以比特幣區塊鏈為代表,主要使用的兩個哈希函數分別是:
1.SHA-256,主要用於完成PoW(工作量證明)計算;
2.RIPEMD160,主要用於生成比特幣地址。如下圖1所示,為比特幣從公鑰生成地址的流程。

2. 區塊鏈密碼演算法是怎樣的

區塊鏈作為新興技術受到越來越廣泛的關注,是一種傳統技術在互聯網時代下的新的應用,這其中包括分布式數據存儲技術、共識機制和密碼學等。隨著各種區塊鏈研究聯盟的創建,相關研究得到了越來越多的資金和人員支持。區塊鏈使用的Hash演算法、零知識證明、環簽名等密碼演算法:

Hash演算法

哈希演算法作為區塊鏈基礎技術,Hash函數的本質是將任意長度(有限)的一組數據映射到一組已定義長度的數據流中。若此函數同時滿足:

(1)對任意輸入的一組數據Hash值的計算都特別簡單;

(2)想要找到2個不同的擁有相同Hash值的數據是計算困難的。

滿足上述兩條性質的Hash函數也被稱為加密Hash函數,不引起矛盾的情況下,Hash函數通常指的是加密Hash函數。對於Hash函數,找到使得被稱為一次碰撞。當前流行的Hash函數有MD5,SHA1,SHA2,SHA3。

比特幣使用的是SHA256,大多區塊鏈系統使用的都是SHA256演算法。所以這里先介紹一下SHA256。

1、 SHA256演算法步驟

STEP1:附加填充比特。對報文進行填充使報文長度與448模512同餘(長度=448mod512),填充的比特數范圍是1到512,填充比特串的最高位為1,其餘位為0。

STEP2:附加長度值。將用64-bit表示的初始報文(填充前)的位長度附加在步驟1的結果後(低位位元組優先)。

STEP3:初始化緩存。使用一個256-bit的緩存來存放該散列函數的中間及最終結果。

STEP4:處理512-bit(16個字)報文分組序列。該演算法使用了六種基本邏輯函數,由64 步迭代運算組成。每步都以256-bit緩存值為輸入,然後更新緩存內容。每步使用一個32-bit 常數值Kt和一個32-bit Wt。其中Wt是分組之後的報文,t=1,2,...,16 。

STEP5:所有的512-bit分組處理完畢後,對於SHA256演算法最後一個分組產生的輸出便是256-bit的報文。

2、環簽名

2001年,Rivest, shamir和Tauman三位密碼學家首次提出了環簽名。是一種簡化的群簽名,只有環成員沒有管理者,不需要環成員間的合作。環簽名方案中簽名者首先選定一個臨時的簽名者集合,集合中包括簽名者。然後簽名者利用自己的私鑰和簽名集合中其他人的公鑰就可以獨立的產生簽名,而無需他人的幫助。簽名者集合中的成員可能並不知道自己被包含在其中。

環簽名方案由以下幾部分構成:

(1)密鑰生成。為環中每個成員產生一個密鑰對(公鑰PKi,私鑰SKi)。

(2)簽名。簽名者用自己的私鑰和任意n個環成員(包括自己)的公鑰為消息m生成簽名a。

(3)簽名驗證。驗證者根據環簽名和消息m,驗證簽名是否為環中成員所簽,如果有效就接收,否則丟棄。

環簽名滿足的性質:

(1)無條件匿名性:攻擊者無法確定簽名是由環中哪個成員生成,即使在獲得環成員私鑰的情況下,概率也不超過1/n。

(2)正確性:簽名必需能被所有其他人驗證。

(3)不可偽造性:環中其他成員不能偽造真實簽名者簽名,外部攻擊者即使在獲得某個有效環簽名的基礎上,也不能為消息m偽造一個簽名。

3、環簽名和群簽名的比較

(1)匿名性。都是一種個體代表群體簽名的體制,驗證者能驗證簽名為群體中某個成員所簽,但並不能知道為哪個成員,以達到簽名者匿名的作用。

(2)可追蹤性。群簽名中,群管理員的存在保證了簽名的可追蹤性。群管理員可以撤銷簽名,揭露真正的簽名者。環簽名本身無法揭示簽名者,除非簽名者本身想暴露或者在簽名中添加額外的信息。提出了一個可驗證的環簽名方案,方案中真實簽名者希望驗證者知道自己的身份,此時真實簽名者可以通過透露自己掌握的秘密信息來證實自己的身份。

(3)管理系統。群簽名由群管理員管理,環簽名不需要管理,簽名者只有選擇一個可能的簽名者集合,獲得其公鑰,然後公布這個集合即可,所有成員平等。

鏈喬教育在線旗下學碩創新區塊鏈技術工作站是中國教育部學校規劃建設發展中心開展的「智慧學習工場2020-學碩創新工作站 」唯一獲準的「區塊鏈技術專業」試點工作站。專業站立足為學生提供多樣化成長路徑,推進專業學位研究生產學研結合培養模式改革,構建應用型、復合型人才培養體系。

3. 區塊鏈中哈希演算法的特點是什麼

哈希演算法可以作為一個很小的計算機程序來看待,無論輸入數據的大小及類型如何,它都能將輸入數據轉換成固定長度的輸出。哈希演算法在任何時候都只能接受單條數據的輸入,並依靠輸入數據創建哈希值。
根據最終產生的哈希值的長度不同,有不同的哈希演算法。
在區塊鏈中使用的為加密哈希演算法,其特點有:
1、能夠為任何類型的數據快速創建哈希值
2、確定性
3、偽隨機
4、單向函數
5、防碰撞

4. 什麼是哈希演算法

哈希演算法也被稱為「散列」,是區塊鏈的四大核心技術之一。是能計算出一個數字消息所對應的、長度固定的字元串(又稱消息摘要)的演算法。

散列演算法是區塊鏈中保證交易信息不被篡改的單向密碼機制。區塊鏈通過散列演算法對一個交易區塊中的交易進行加密,並把信息壓縮成由一串數字和字母組成的散列字元串。

區塊鏈的散列值能夠唯一而准確地標識一個區塊。在驗證區塊的真實性時,只需要簡單計算出這個區塊的散列值,如果沒有變化就 意味著這個區塊上的信息是沒有被篡改過的。

相關信息:

鏈喬教育在線旗下學碩創新區塊鏈技術工作站是中國教育部學校規劃建設發展中心開展的「智慧學習工場2020-學碩創新工作站 」唯一獲準的「區塊鏈技術專業」試點工作站。專業站立足為學生提供多樣化成長路徑,推進專業學位研究生產學研結合培養模式改革,構建應用型、復合型人才培養體系。

5. 區塊鏈中的哈希演算法是什麼

哈希演算法是什麼?如何保證挖礦的公平性?
哈希演算法是一種只能加密,不能解密的密碼學演算法,可以將任意長度的信息轉換成一段固定長度的字元串。
這段字元串有兩個特點:
1、 就算輸入值只改變一點,輸出的哈希值也會天差地別。
2、只有完全一樣的輸入值才能得到完全一樣的輸出值。
3、輸入值與輸出值之間沒有規律,所以不能通過輸出值算出輸入值。要想找到指定的輸出值,只能採用枚舉法:不斷更換輸入值,尋找滿足條件的輸出值。
哈希演算法保證了比特幣挖礦不能逆向推導出結果。所以,礦工持續不斷地進行運算,本質上是在暴力破解正確的輸入值,誰最先找到誰就能獲得比特幣獎勵。

6. 哈希演算法

1.通過哈希值不能反向推導出原始數據(所以哈希演算法也叫單向哈希演算法)
2.對於輸入數據非常敏感,及時更改了一個比特位,哈希值也大不相同
3.散列沖突的概率要小,
4.執行效率要高,及時很長的文本,也能盡快計算出哈希值

MD5的結果是128位 --> 32個16進制串

最常用於加密的哈希演算法是 MD5(MD5 Message-Digest Algorithm,MD5 消息摘要演算法)和 SHA(Secure Hash Algorithm,安全散列演算法)

通過拿到加密後的密文然後再字典表(彩虹表)中比對,找到相同的密文則可以知道其明文。
可以通過在用戶的密碼後加鹽(加入一個字元串)然後加密存儲起來。

區塊鏈是一塊塊區塊組成的,每個區塊分為兩部分:區塊頭和區塊體。
區塊頭保存著 自己區塊體 和 上一個區塊頭 的哈希值。
因為這種鏈式關系和哈希值的唯一性,只要區塊鏈上任意一個區塊被修改過,後面所有區塊保存的哈希值就不對了。
區塊鏈使用的是 SHA256 哈希演算法,計算哈希值非常耗時,如果要篡改一個區塊,就必須重新計算該區塊後面所有的區塊的哈希值,短時間內幾乎不可能做到。

假設我們有 k 個機器,數據的哈希值的范圍是 [0, MAX]。我們將整個范圍劃分成 m 個小區間(m 遠大於 k),每個機器負責 m/k 個小區間。當有新機器加入的時候,我們就將某幾個小區間的數據,從原來的機器中搬移到新的機器中。這樣,既不用全部重新哈希、搬移數據,也保持了各個機器上數據數量的均衡。

7. hash演算法是什麼呢

hash演算法是:一種特殊的函數,不論輸入多長的一串字元,只要通過這個函數都可以得到一個固定長度的輸出值,這就好像身份證號碼一樣,永遠都是十八位而且全國唯一。

哈希演算法的輸出值就叫做哈希值。哈希演算法也被稱為「散列」,是區塊鏈的四大核心技術之一。是能計算出一個數字消息所對應的、長度固定的字元串。

原理:

Hash演算法的原理是把輸入空間的值映射到Hash空間內,由於Hash值的空間遠小於輸入的空間,而且藉助抽屜原理 ,可以得出一定會存在不同的輸入被映射成相同輸出的情況,如果一個Hash演算法足夠好,那麼他就一定會有更小的發生沖突的概率,也就是說,一個好的Hash演算法應該具有優秀的 抗碰撞能力。

8. 哈希演算法是什麼呢

哈希演算法就是一種特殊的函數,不論輸入多長的一串字元,只要通過這個函數都可以得到一個固定長度的輸出值,這就好像身份證號碼一樣,永遠都是十八位而且全國唯一。哈希演算法的輸出值就叫做哈希值。

原理:

哈希演算法有三個特點,它們賦予了區塊鏈不可篡改、匿名等特性,並保證了整個區塊鏈體系的完整。

第一個特點是具有單向性。比如輸入一串數據,通過哈希演算法可以獲得一個哈希值,但是通過這個哈希值是沒有辦法反推回來得到輸入的那串數據的。這就是單向性,也正是基於這一點,區塊鏈才有效保護了我們信息的安全性。

哈希演算法的第二個特點是抗篡改能力,對於任意一個輸入,哪怕是很小的改動,其哈希值的變化也會非常大。

它的這個特性,在區塊與區塊的連接中就起到了關鍵性的作用。區塊鏈的每個區塊都會以上一個區塊的哈希值作為標示,除非有人能夠破解整條鏈上的所有哈希值,否則數據一旦記錄在鏈上,就不可能進行篡改。

哈希演算法的第三個特點就是抗碰撞能力。所謂碰撞,就是輸入兩個不同的數據,最後得到了一個相同的輸入。

就跟我們逛街時撞衫一樣,而坑碰撞就是大部分的輸入都能得到一個獨一無二的輸出。在區塊鏈的世界中,任何一筆交易或者賬戶的地址都是完全依託於哈希演算法生產的。這也就保證了交易或者賬戶地址在區塊鏈網路中的唯一性。

無論這筆轉賬轉了多少錢,轉給了多少個人,在區塊鏈這個大賬本中都是唯一的存在。它就像人體體內的白細胞,不僅區塊鏈的每個部分都離不開它,而且它還賦予了區塊鏈種種特點,保護著整個區塊鏈體系的安全。

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

同學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

熱點內容
btc賣比特幣 發布:2025-06-28 18:43:17 瀏覽:123
去宜家薈聚購物中心 發布:2025-06-28 18:23:48 瀏覽:939
跟比特幣相關的上市公司 發布:2025-06-28 18:17:32 瀏覽:706
藍精靈數字貨幣 發布:2025-06-28 18:07:01 瀏覽:634
紐約區塊鏈大會 發布:2025-06-28 17:54:48 瀏覽:332
怎麼做元宇宙直播 發布:2025-06-28 17:49:43 瀏覽:572
usdt價格下跌怎麼辦 發布:2025-06-28 17:47:39 瀏覽:798
幣圈一級市場在哪裡可以下載 發布:2025-06-28 17:31:51 瀏覽:124
btc錢包連接到節點 發布:2025-06-28 17:26:25 瀏覽:8
幣圈中的掛單和吃單什麼意思 發布:2025-06-28 17:25:01 瀏覽:114