成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

揭秘區塊鏈的核心技術之「哈希與加密算法 」

區塊鏈 算法
大家都知道,區塊鏈的關鍵技術組成主要為:P2P網絡協議、共識機制、密碼學技術、賬戶與存儲模型。而這些技術中,又以 密碼學與共識機制 這兩點為最核心。

 

[[285099]]

大家都知道,區塊鏈的關鍵技術組成主要為:P2P網絡協議、共識機制、密碼學技術、賬戶與存儲模型。而這些技術中,又以 密碼學與共識機制 這兩點為最核心。那么今天我們來詳細的聊一聊密碼學,看一看密碼學技術是如何在區塊鏈中應用的。

首先,我們需知道區塊鏈中用到的密碼學算法有哪些?其實就兩大類:

  • 哈希算法
  • 非對稱加密算法

一、區塊鏈中的哈希算法

哈希算法是區塊鏈中用的最多的一種算法,它被廣泛的使用在構建區塊和確認交易的完整性上。

它是一類數學函數算法,又被稱為散列算法,需具備三個基本特性:

  1. 其輸入可為任意大小的字符串
  2. 它產生固定大小的輸出
  3. 它能進行有效計算,也就是能在合理的時間內就能算出輸出值

如果要求哈希算法達到密碼學安全的話,我們還要求它具備以下三個附加特性:

1.碰撞阻力:

是指對于兩個不同的輸入,必須產生兩個不同的輸出。如果對于兩個不同的輸入產生了相同的輸出,那么就說明不具備碰撞阻力,或是弱碰撞阻力。

2.隱秘性:

也被稱為不可逆性,是指 y = HASH(x)中,通過輸入值x,可以計算出輸出值y,但是無法通過y值去反推計算出x值。為了保證不可逆,就得讓x的取值來自一個非常廣泛的集合,使之很難通過計算反推出x值。

3.謎題友好:

這個特性可以理解為,謎題是公平友好的,例如算法中 y = HASH(x),如果已知y值,想去得到x值,那就必須暴力枚舉,不斷的嘗試才能做到,并且沒有比這更好的辦法,沒有捷徑。

哈希算法有很多,比特幣主要使用的哈希算法是 SHA-256 算法。

除此之外,還有其他一些哈希算法也很流行,例如 MD5、SHA-1、SHA-2(SHA-224、SHA-256、SHA-384、SHA-512)、SHA-3 等,其中 MD5、SHA-1 已被證明了不具備 強碰撞阻力,安全性不夠高,因此市場上不再推薦使用。

我們以比特幣為例,來看一下哈希算法的具體應用:

在比特幣中,使用哈希算法把交易生成數據摘要,當前區塊里面包含上一個區塊的哈希值,后面一個區塊又包含當前區塊的哈希值,就這樣一個接一個的連接起來,形成一個哈希指針鏈表,如下圖:

 

上面只是示意圖,那么在實際比特幣系統中,每個區塊包含哪些內容呢:

 

重點關注一下上圖中的:

  • Prev Block:記錄簽一個區塊的hash地址,32字節
  • Merkle Root:是一個記錄當前塊內的所有交易信息的數據摘要hash值,32字節
  • Nonce:一個隨機值,需要通過這個隨機值去找到滿足某個條件的hash值(挖礦),4字節

上面只是解釋了幾個重點的字段,其它字段通過字面應該容易理解就不一一解釋了。

這所有的字段一起就組成了 block header(區塊頭),然后需要對 block header 進行2次hash計算,計算完成的值就是當前比特幣區塊的hash值。因為比特幣系統要求計算出來的這個hash值滿足一定的條件(小于某個數值),因此需要我們不斷的遍歷Nonce值去計算新的hash值以滿足要求,只有找到了滿足要求的hash值,那么這就是一個合法區塊了(這一系列動作也叫作挖礦)

python 示例: SHA-256(SHA-256 (Block Header)

我們再看一下上面的另一個重要字段: Merkle tree 字段。

Merkle tree 被稱為 默克爾樹,它也是哈希算法的一個重要應用。

它其實是一個用哈希指針建立的二叉樹或多叉樹。

Merkle tree 如圖:

 

其樹的頂端叫做 默克爾根(Merkle Root),Merkle Root 也是一個hash值,它是怎么計算出來的呢?

比特幣中對每一筆交易做一個hash計算,然后把每2個交易的hash再進行合并做hash,如圖中的 交易A的hash值是 H(A),交易B的hash值是H(B),再對這2個交易合并hash后就是H(hA|hb),就這樣一直往上合并計算,算到最后的根部就是 Merkle Root 了。

在比特幣和以太坊中都是使用的默克爾樹結構,但是以太坊為了實現更多復雜的功能,所以有三個默克爾樹。

至此,區塊鏈中的哈希算法應用就介紹完了,接下來我們看一下非對稱加密算法。

二、區塊鏈中的非對稱加密算法

區塊鏈中有一個很關鍵的點就是賬戶問題,但比特幣中是沒有賬戶概念的,那大家是怎么進行轉賬交易的呢?

這里就得先介紹區塊鏈中的非對稱加密技術了。

非對稱加密技術有很多種,如:RSA、ECC、ECDSA 等,比特幣中是使用的 ECDSA 算法。

ECDSA 是美國政府的標準,是利用了橢圓曲線的升級版,這個算法經過了數年的細致密碼分析,被廣泛認為是安全可靠的。

所謂非對稱加密是指我們在對數據進行加密和解密的時候,需使用2個不同的密鑰。比如,我們可以用A密鑰將數據進行加密,然后用B密鑰來解密,相反,也可以用B來加密,然后使用A來解密。那么如果我想給某個人傳遞信息,那我可以先用A加密后,將密文傳給她,她拿到密文之后,用手上的B密鑰去解開。這2個密鑰,一個被成為公鑰、一個是私鑰。

在比特幣中,每個用戶都有一對密鑰(公鑰和私鑰),比特幣系統中是使用用戶的公鑰作為交易賬戶的。

我們先看下圖:

 

在圖中可以看到,在第一筆交易記錄中,是 用戶U0 來發起的交易,要將代幣支付給 用戶U1,是怎么實現的呢?

  1. 首先 用戶U0 寫好交易信息:data(明文,例如:用戶U0轉賬100元給用戶U1)
  2. 用戶U0 使用哈希算法將交易信息進行計算,得出 H = hash(data),然后再使用自己的私鑰對 H 進行簽名,即 S(H),這一步其實是為了防止交易信息被篡改用的
  3. 然后基于區塊鏈網絡,將 簽名S(H) 和 交易信息data 傳遞給 用戶U1
  4. 用戶U1 使用 用戶U0 的公鑰 來對 S(H) 解密,就得到了交易信息的哈希值 H
  5. 同時,用戶U1 還使用哈希算法對 交易信息data 進行計算,得出 H2 = hash(data)
  6. 對比上面2個哈希值,如果 H1==H2,則交易合法。說明 用戶U0 在發起交易的時候確實擁有真實的私鑰,有權發起自己賬戶的交易
  7. 網絡中每一個節點都可以參與上述的驗證步驟。

這個示例,就是比特幣中一次交易的簽名流程,即將 哈希算法與非對稱算法結合在一起用于了比特幣交易的數字簽名。

除此之外,比特幣中,公私鑰的生成、比特幣地址的生成也是由非對稱加密算法來保證的。

以上,就是區塊鏈體系中,核心技術之哈希算法與加密算法的應用情況,歡迎一起交流。

 

責任編輯:武曉燕 來源: 不止思考
相關推薦

2020-04-06 20:11:26

區塊鏈分布式核心技術

2020-01-15 10:29:29

區塊鏈架構模型

2018-07-10 10:29:27

2018-01-16 10:49:52

區塊鏈核心技術

2018-08-19 11:00:05

2022-05-18 14:18:56

區塊鏈加密技術數據

2021-08-07 15:29:48

區塊鏈比特幣技術

2023-05-08 15:33:22

2018-08-06 09:40:22

2022-07-12 10:38:25

分布式框架

2022-01-25 13:59:19

區塊鏈加密貨幣數字資產

2018-04-12 06:58:55

區塊鏈招聘加密貨幣

2017-03-08 10:06:11

Java技術點注解

2020-01-11 17:49:03

區塊鏈數字貨幣比特幣

2024-03-26 15:27:05

2020-12-23 15:12:13

區塊鏈加密貨幣以太坊

2018-11-26 09:00:14

2020-04-08 09:00:00

數字貨幣區塊鏈區塊鏈技術

2023-05-04 16:42:38

2022-10-11 08:37:43

Servlet配置版本
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 色网站视频 | 亚洲精品国产综合区久久久久久久 | 亚洲欧洲成人av每日更新 | 欧美男男videos| 日本精品一区二区三区视频 | 国产电影一区二区在线观看 | 久久久久国产精品午夜一区 | 一区二区三区欧美在线观看 | 国内91在线 | 中文字幕国产一区 | 91麻豆精品国产91久久久更新资源速度超快 | 天天玩夜夜操 | 日韩中文字幕免费在线 | 人人人人干 | 一区二区精品视频 | 日韩理论电影在线观看 | 国产久| 男女羞羞视频在线免费观看 | 亚洲精品一区二区在线观看 | 国产精品久久久久久亚洲调教 | 久草色视频 | 国产毛片毛片 | 久久免费精彩视频 | 国产小视频在线观看 | 日本视频在线 | 91原创视频| 亚洲精品自在在线观看 | 久久久久国产一区二区三区 | 成人在线视频一区 | 天天爽天天操 | 青娱乐自拍| 中文字幕在线国产 | 成人国产免费观看 | 日韩国产在线观看 | 欧美一区二区大片 | 二区av| 在线午夜| 精品综合久久久 | av特级毛片 | 久久国产精品久久久久久 | 国产成人精品免高潮在线观看 |