ビットコイン・マイニングの難易度の調整とは?
ビットコインを発明し、未だその正体が分かっていないサトシ・ナカモト。そんなサトシが残した約2年間の文章を、小宮自由氏の解説と共に紹介する連載「サトシ・ナカモトが残した言葉〜ビットコインの歴史をたどる旅」の第31回。
まずサトシのメールの前に、本連載の元になっている書籍『ビットコイン バイブル:サトシナカモトとは何者か?』の著者フィル・シャンパーニュ氏の解説も掲載する。
フィル・シャンパーニュ氏の解説
参加する採掘者の増加とともに起きるプルーフ・オブ・ワークの難易度の上昇について、サトシが論じている。
プルーフ・オブ・ワークの難易度の上昇 サトシ・ナカモト 2010年02月05日 午後07時19分12秒
それではサトシの投稿をみていこう。
========================
2009年12月30日に初めて、プルーフ・オブ・ワーク難易度の自動調節がありました。
難易度の最低レベルは32ビットのゼロですので、ノードの稼動者が一人だとしても、難易度はこれ以上易しくなることはありません。去年の大半の時期は、最低レベルよりも下で推移していました。12月30日にこれを上回り、アルゴリズムで難易度を高める調節が働きました。この後、調節のたびに難易度が上がっています。
前回(12月30日)は去年の1.34倍に上がったのに対して、2月4日の調節では去年の1.82倍になりました。これはつまり、同じ作業量でも、生成可能なコイン量が55%に減ったことになります。
難易度の調節はネットワーク全体の作業量を参照しながら進んでいきます。ノードの数が二倍になれば、難易度も二倍になり、コインの全生成量を目標数に戻します。
技術的なことに関心のある人は、debug.log内で「target」で検索するとプルーフ・オブ・ワークの難易度を見ることができます。これは署名無しの256ビットの十六進数になっていて、ブロックの生成に成功するにはSHA-256の値がこれ以下になる必要があります。難易度の調節は2016ブロックごと、だいたい二週間おきに実行されます。debug.logにGetNextWorkRequired RETARGETがプリントされるときがそれです。
最低値
00000000ffff000000000000000000000000000000000 0000000000000000000
2009年12月30日
00000000d86a00000000000000000000000000000 00000000000000000000000
2010年01月11日
00000000c42800000000000000000000000000000 00000000000000000000000
2010年01月25日
00000000be7100000000000000000000000000000 00000000000000000000000
2010年02月04日
000000008cc300000000000000000000000000000 00000000000000000000000
2010年02月14日
00000000654657000000000000000000000000000 00000000000000000000000
2010年02月24日
0000000043b3e5000000000000000000000000000 00000000000000000000000
2010年03月08日
00000000387f6f0000000000000000000000000000 0000000000000000000000
2010年03月21日
00000000381375000000000000000000000000000 00000000000000000000000
2010年04月01日
000000002a1115000000000000000000000000000 00000000000000000000000
2010年04月12日
0000000020bca7000000000000000000000000000 00000000000000000000000
2010年04月21日
0000000016546f000000000000000000000000000 00000000000000000000000
2010年05月04日
0000000013ec53000000000000000000000000000 00000000000000000000000
2010年05月19日
00000000159c24000000000000000000000000000 00000000000000000000000
2010年05月29日
000000000f67c0000000000000000000000000000 0000000000000000000000
2010年06月11日
000000000eba64000000000000000000000000000 00000000000000000000000
2010年06月24日
000000000d3142000000000000000000000000000 00000000000000000000000
2010年07月06日
000000000ae493000000000000000000000000000 00000000000000000000000
2010年07月13日
0000000005a3f4000000000000000000000000000 00000000000000000000000
2010年07月16日
000000000168fd000000000000000000000000000 00000000000000000000000
2010年07月27日
00000000010c5a000000000000000000000000000 00000000000000000000000
2010年08月05日
0000000000ba18000000000000000000000000000 00000000000000000000000
2010年08月15日
0000000000800e000000000000000000000000000 00000000000000000000000
2010年08月26日
00000000006920000000000000000000000000000 00000000000000000000000
日付、難易度、前回からの変化率(%)
2009 1.00
2009年12月30日 1.18 +18%
2010年01月11日 1.31 +11%
2010年01月25日 1.34 +2%
2010年02月04日 1.82 +36%
2010年02月14日 2.53 +39%
2010年02月24日 3.78 +49%
2010年03月08日 4.53 +20%
2010年03月21日 4.57 +9%
2010年04月01日 6.09 +33%
2010年04月12日 7.82 +28%
2010年04月21日 11.46 +47%
2010年05月04日 12.85 +12%
2010年05月19日 11.85 -8%
2010年05月29日 16.62 +40%
2010年06月11日 17.38 +5%
2010年06月24日 19.41 +12%
2010年07月06日 23.50 +21%
2010年07月13日 45.38 +93%
2010年07月16日 181.54 +300%
2010年07月27日 244.21 +35%
2010年08月05日 352.17 +44%
2010年08月15日 511.77 +45%
2010年08月26日 623.39 +22%
========================
解説
ビットコインには、マイニングが早くなりすぎないように難易度(difficulty)の調整メカニズムがあります。ノードの計算能力(ハッシュパワーと言います)が高ければ難易度をあげ、低ければ難易度を下げ、マイニングがだいたい10分で終わるように調整しています。
現在の難易度は初期に比べ遥かに向上し、個人のコンピュータではもはや対応不可能です。現在は企業が数千台以上のコンピュータを用いて行う一大事業になっています。
小宮自由