Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ビットコインのハッシュレートを計算してみた

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for Kazuki Ikuta Kazuki Ikuta
December 15, 2017
610

 ビットコインのハッシュレートを計算してみた

Avatar for Kazuki Ikuta

Kazuki Ikuta

December 15, 2017
Tweet

Transcript

  1. 2 ©Gunosy Inc. ⾃⼰紹介 名前 : ⽣⽥ 和希 (いくた かずき)

    @ikutyy 所属 : 株式会社Gunosy 新規事業開発室 (内定者インターン) 早稲⽥⼤学 ⽂化構想学部 4年 趣味 : 将棋(アマチュア五段くらい) / 能(宝⽣流) 個⼈的なトピック : 先週、卒論提出したぞ!!!!!
  2. 12 ©Gunosy Inc. ハッシュ値の例 •  SHA256(bitcoin0) -> 2277EFD2E9051A1978682CAD7A111876031F7FCDB9A2A06B5FDEEE160DD8F34E •  SHA256(bitcoin1)

    -> DBDBAC0B3072D7677FC94EEBAF8EBA9E81E5C3B7DE6899DAE12C98D6799B065A •  SHA256(bitcoin2) -> 1ED7259A5243A1E9E33E45D8D2510BC0470032DF964956E18B9F56FA65C96E89 16進数表⽰なので64桁。2進数だと256桁(256bit)
  3. 13 ©Gunosy Inc. ビットコインのハッシュ値の作り⽅ •  ver (バージョン)4byte •  preview hash

    (前回発⾒されたハッシュ値)32byte •  markle root (トランザクションを要約したハッシュ値) : 32byte •  time (ハッシュ値を計算したときの時間):4byte •  nonce (⾃由に⼊れることができる値)4byte •  bits (difficulty targetを変換した値)4byte ハッシュ値の計算に使う値 nonceを⼊れ替えて毎回ハッシュ値を計算する。(実際はもう少し⼯夫してる)
  4. 15 ©Gunosy Inc. マイニング成功確率の計算 サイコロの場合 l  1回振ったときにn以下になる確率 —  n /

    6 マイニングの場合 l  1回ハッシュ値を計算したときにtarget以下になる確率 —  1 / target —  いまはだいたい 1 / 2^68 くらい l  ⾒⽅を変えれば、2^68回計算したら1回はたぶん⾒つかる。 l  10分に1回⾒つかるように調整されてるということは、   10分間で2^68回ハッシュ値が計算されると想定されている。 => これでハッシュレートを計算できるぞ!
  5. 16 ©Gunosy Inc. ハッシュレートの計算 計算例 l  target = 2^68 とする。

    l  ハッシュ値の発⾒時間は前回のマイニング成功から10分(600秒)とする。 —  target / 600 = 491913175298921408(hash/second) l  実際には係数を考慮する必要があるのでもう少し⼤きい。 l  ブロックにあるbitsからtargetへ変換する必要がある。 githubにコードを置いておきました。 https://github.com/ikutyy/bitcoin_hash_rate_culculate
  6. 19 ©Gunosy Inc. 参考資料 •  bitcoin wiki •  https://en.bitcoin.it/wiki/Difficulty • 

    https://en.bitcoin.it/wiki/Target •  Gunosy Tech Blog •  http://tech.gunosy.io/entry/crypto-mining-summary •  その他 •  『ビットコインとブロックチェーン:暗号通貨を⽀える技術』 •  https://www.bitcoinbook.info/translations/ja/book.pdf