<cite id="1ndtl"></cite>
<ruby id="1ndtl"></ruby>
<strike id="1ndtl"></strike>
<span id="1ndtl"><dl id="1ndtl"></dl></span><span id="1ndtl"><dl id="1ndtl"></dl></span>
<strike id="1ndtl"></strike>
<strike id="1ndtl"><dl id="1ndtl"><del id="1ndtl"></del></dl></strike>
<span id="1ndtl"></span>
<span id="1ndtl"><dl id="1ndtl"></dl></span>
<strike id="1ndtl"></strike>
<strike id="1ndtl"></strike><span id="1ndtl"><dl id="1ndtl"></dl></span>
<strike id="1ndtl"></strike><strike id="1ndtl"></strike>
<strike id="1ndtl"></strike>
<span id="1ndtl"></span>
<span id="1ndtl"><dl id="1ndtl"></dl></span>
<th id="1ndtl"><noframes id="1ndtl"><span id="1ndtl"><video id="1ndtl"><strike id="1ndtl"></strike></video></span> <strike id="1ndtl"></strike>
<strike id="1ndtl"></strike>
<span id="1ndtl"><dl id="1ndtl"></dl></span>
  1. 首頁
  2. 比特幣的哈希算法(比特幣的密碼學基礎-哈希函數)

比特幣的哈希算法(比特幣的密碼學基礎-哈希函數)

1.哈希函數

區塊鏈是比特幣的核心技術,而區塊鏈事實上是一條哈希鏈,通過哈希函數串聯一塊塊歷史數據。

2.哈希函數的定義

哈希又譯為“散列”,哈希函數以任意長度的消息為輸入,輸出固定長度的消息摘要。例如:哈希函數SHA-256輸出的哈希值為256 bit。通常情形下,哈希函數是一類壓縮函數,它的值域遠小于定義域,即一個消息摘要存在多個原像與之對應。

比特幣系統中所應用的哈希函數還需要滿足以下3個安全要求:

(1)對任意消息 m ,很容易計算出它的哈希值 y = h(m) ;

(2)由 y 得出 m 在計算上不可行(單向性或原像穩固性);

(3)已知消息 m ,很難找出另一個 消 息 n 使得 h(n)= h(m)(抗碰撞性)。

3.哈希校驗

由于哈希函數具有單向性和抗碰撞性,因此可用于檢驗消息的完整性,即檢驗消息在傳送過程中是否被篡改。該過程被稱為哈希校驗。效驗步驟:假設 B 要發送一條消息 m 給 A,首先計算 m 的消息摘要y = h(m) ,并附在消息后面一起發出。A 收到消息 m′ 后,檢驗 h(m′)= y 。如果相等,由于哈希函數具有強抗碰撞性,A可在很大程度上相信消息在傳送過程中沒有被篡改。

4.哈希現金

哈希現金(Hashcash)最早是由ADAM B 提出的 ,其本質是一種PoW系統。用戶A要求發給他的郵件的哈希值必須包含某段特定字符串,例如:用戶 A 要求郵件的哈希值的前 8 位必須是 0,否則拒絕接收該郵件。那么發給 A 的郵件正文必須添加某些隨機字符使得哈希值滿足該要求,這個工作是沒有捷徑的,計算機必須不斷循環進行如下步驟:隨機選取某些字符,并將其串聯到郵件末尾,計算串聯后的郵件的哈希值,直到哈希值的前 8 位是 0 為止。當然,計算開銷取決于計算機的算力,當要求的難度提升巨大時,想要通過隨意轉發垃圾郵件的方式完成 A 的要求的可能性幾乎為零,從而達到了防止垃圾郵件的目的。

相關文章
美女网站色