iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 27
0

助記詞的產生

  • 助記詞就是冷錢包密鑰的 seed ,因此我們來看看這些助記詞是怎麼產生的呢 ?
  1. 產生一個 128 ~ 256 bits 的隨機 Entropy
  2. 對這個 Entropy 取 SHA-256 的前 (Entropy/32) 位 bits 作為 checksum
  3. Entropy = Entropy + checksum
  4. 切成 12 ~ 24 段的 11 bits 長的片段
  5. 將每一個 11 bits 片段對應到一個 2048 個字的字典當中的一個單字
  6. 遮些單字就是助記詞
  • 換句話說,助記詞就代表的一開始的 Entropy

https://ithelp.ithome.com.tw/upload/images/20191013/20120131sHu0zCiAvo.png

助記詞轉為 seed

  • 由於助記詞就代表了 Entropy ,那要怎麼由 Entropy 轉換成 seed ?
  • Entropy 會通過一個叫做 PBKDF2 的函數並且產生一個 512 bits seed
  • PBKDF2 函數:
    • 首先第一個參數是助記詞
    • 第二個參數是密碼學中的鹽 (salt)
      • 鹽是在做 Hash 的時候,為避免把資料太好被破解,因此加進去增強安全性的一段字
      • SHA256('withoutsalthash') = 0927a9a5c82b237d23c328e1a0962d2d397abacc2f3dbdc6b4e5125c6ced9ba1
      • 加了 tlas 當作 salt 加進去
      • SHA256('withoutsalthashwithsalt') = d89d036d2218cfc88b98d586a471a97f5e5c5e49b788ad3c87d4fdf261bfff88
      • 在冷錢包中 salt 會是"mnemonic" + passphrase

https://ithelp.ithome.com.tw/upload/images/20191013/20120131usn2wFHq53.png

PassPhrase 密碼

  • 如果沒有密碼,預設的 passphrase 就是 "mnemonic"

  • 在冷錢包中,沒有錯誤的密碼,所有的密碼都會是有效的,所有暴力破解產生的 seed 都是產生一堆位初始化的錢包,因此暴力破解是不存在的

  • 是在冷錢包中除了助記詞的第二層保護,


上一篇
Go to Blockchain: Day26 冷錢包技術簡介
下一篇
Go to Blockchain: Day28 區塊鏈的側鏈 - 1
系列文
Go to Blockchain: 從區塊鏈基礎到用 Go 實作區塊鏈30

尚未有邦友留言

立即登入留言