iT邦幫忙

2021 iThome 鐵人賽

DAY 14
2

Yes


今天是第二天介紹hash!
總結一下hash,其實有兩個很重要的重點:

  1. 不能讓任何人從hash導出原本的值,hash函數應該要是單向的,就像你不能用果汁做出水果的概念。
  2. 要確保每個hash值只能對應到一個原始值,不能因為很像就有一樣的hash產生,就像test 跟Test的hash值不能一樣。(要讓機率降到最低)
    另外在hash的計算中,有分成簡單hash(simple hash)以及tree,當我們今天要進行hash的項目數量是固定的,則使用簡單hash。如果今天要進行hash的項目數量不固定時,則用樹狀結構來進行計算。
    現在最常見的哈希大小是 256 位,常用函數是 SHA-3、SHA-256 和 Keccak。
  • MD 5:它會產生一個 128 位的hash。
  • SHA 1:生成 160 位hash。
  • SHA 256:生成 256 位hash。目前正在被比特幣使用。
  • Keccak-256:生成 256 位hash,目前被以太坊使用。

區塊分成head&body

區塊頭(head)包含...

  • 版本號
  • 時間戳(timestamp)
  • Difficulty target:代表這個區塊的proof of work 的困難值。(難度係數越大,目標值越小)
  • 前一個區塊的hash。
  • Nonce:表示proof of work 的執行次數。
  • Merkle root hash:紀錄目前區塊裡經由merkle tree 演算法算出來的merkle tree root 的hash值。

區塊體(body)包含...

實際數據


此外還有找到一個可以demo hash的網頁,大家如果好奇可以去玩看看!
https://andersbrownworth.com/blockchain/hash


參考資料:
https://blockgeeks.com/guides/what-is-hashing/
https://blockgeeks.com/guides/what-is-hashing/


那今天的介紹就到這邊拉~
真的是沒有很專業的介紹,比較像是跟大家分享我學到甚麼,我還有很多要學習的地方:(
如果喜歡的話明天記得繼續回來看下一篇!影片記得按讚訂閱開小鈴鐺謝謝大家!
/images/emoticon/emoticon29.gif


上一篇
[Day13]What is hash?
下一篇
[Day15]Week2總結
系列文
連續30天,每天5分鐘,一起學習blockchain!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言