フォローしましたビットコインのような暗号通貨は、取引所で購入するだけではなく、PCやマイニング機器を使って「掘り出す」こともできる。このエッセイではそれについて解説してみようと思う。ビットコインの仕組みまずは簡単にビットコインの仕組みについて説明しておこう。ビットコインの実体のデータベースは「ブロックチェーン」と呼ばれていて、そこにビットコイン上で行われた今までのすべての送金記録が入っている。BTCのコインをアドレスCに送ったといった情報で、1件1件の送金記録はトランザクションと呼ばれる。ビットコインが勝手に増えたりしないように、ブロックチェーンに含まれているトランザクションはすべて整合性が取れていることが保証されている。BTCを送った履歴や、同じコインが2回以上使われている履歴などは、ブロックチェーンには入っていない。一般のビットコインのユーザはブロックチェーンを直接構築したりはしない。一般のユーザは、取引を行いたいときは、トランザクションを作ってそれに電子署名をつけて、「マイナー」(採掘者)と呼ばれるブロックチェーンを構築する人たちのP2Pネットワークに流す。マイナーは、ユーザから送られてきたトランザクションをまとめてブロックに入れて、それをP2Pネットワークにブロードキャストする。その後、また別のマイナーがトランザクションを別のブロックにまとめてネットワークに流す、という形でトランザクションがブロックに保存されていくことになる。トランザクションの順番を正しく保存するために、各ブロックには前のブロックのIDが入っていて、それによってブロックはポインタ参照みたいな形でチェーンを構成することになる。マイニングに参加するためにはある程度の性能のコンピュータが必要になる。フル機能のノードとしてマイニングに参加するとなると、ひたすら増え続けるブロックチェーン全体(現在のところおよそ300GB)をディスクに保存する必要があるし、ネットワークから送られてくるトランザクションやブロックの1つ1つについて整合性を検証する必要がある。マイナーは、ある程度数がいないとビットコインの信頼性に問題がでてきてしまう。ビットコインでは、大多数のマイナーが正しくビットコインを実装していると仮定して、それらのマイナーが先頭だと思っているブロックが大体一致しているという多数決に似た形で、どれが「正統」なチェーンかどうかというのがなんとなく決まるので、参加者が少ないとチートがしやすくなってしまう。極端な話、マイナーが1人しかいない場合、相互検証が行われないので、不正なトランザクションでもチェーンに含め放題ということになってしまう。BTCまでコインを新規作成できるということになっている。BTCということになる。これは現在のレートだとおよそ1000万円だ。ブロックを作成するマイナーはなるべく偏りがないことが望ましい。ブロックを作成するマイナーが偏っている場合、ずいぶん昔のブロックを起点に新しいブロックをどんどん追加していって、メインのチェーンだとみんなが考えているチェーンより長い枝を作ることができてしまう。ビットコインでは、一番長い枝がメインであると考えることになっているので、そのようなことが行われてしまうと、今までメインだと思っていた枝で行われた取引が微妙な存在になってしまう。そこで、なるべく多くの人にブロックを生成する権利を分散するために、ブロックを生成するためにはある種のクジを引かなければいけないということになっている。具体的には、SHA256という暗号的ハッシュ関数でブロックのハッシュ値を計算して、それの先頭が、現在のところ75ビット程度0が連続している場合だけ、正しいブロックとみなされるということになっている。ブロックのハッシュ値は、ブロックを受け取ったマイナーは誰でも簡単に計算ができるので、一度正しいブロックができてしまえば、SHA256クジをうまく引いたことは誰でも簡単に検証ができる。ハッシュ値として何がでてくるかは事前に予測がつかないので、先頭75ビットが0のハッシュ値を出してみるためには、ブロックの中身を少しづつ変えて、とにかくひたすらSHA256を計算してみるしかない(この目的のために中身をランダムに変えてよいフィールドがブロックには存在している)。これはコイン投げをして75回連続で表がでる確率と同じで、期待値としては275回ハッシュ値を計算するとやっと答えが見つかるということになる。これは驚くほど低い確率だ。ビットコインでは全体として毎秒1垓回くらいSHA256を計算しているので、平均10分で正解が見つかってしまう(実際にはだいたい10分ごとになるように75というパラメータがときどき自動的に調整されている)。運よく正解を見つけた人のブロックが、新たな先頭のブロックとしてP2Pネットワークにブロードキャストされることになる。いうわけで、ここまでの話をまとめると、マイニングというのは、ブロックを作ってひたすらSHA256ハッシュを計算し続ける作業ということになる。これについてちょっと考えてみよう。ビットコインが単なるおもちゃだった牧歌的な時代には、マイナーは普通のCPUでSHA256を計算していた。その後ビットコインの値段が上がってくると、競争が激しくなってきて、みんなすぐにGPUを使うようになり、その後はFPGA、最終的には専用チップ(ASIC)を設計して、専用のデータセンターにマイニング機器を大規模に設置するというレベルになってしまった。それ自体では特に意味のないSHA256クジをなるべく効率よく引くために、一大産業ができてしまったのだ。このように、ビットコインは多種多様なハードウェアからなるネットワークで、参加者総数もよくわからない。ビットコイン全体が消費している資源は簡単に計算することができる。マイニングによって得られる全体の報酬が、平均で10分ごとに1000万円だとしよう。ネットワーク全体が10分ごとに100万円しか使っていなかったら、参加者のリターンの期待値は10倍で、これはとてもよいビジネスということになる。したがってそのような状態では新規参入者がどんどん増えることになる。反対に、もしネットワーク全体が10分ごとに2000万円を使っていたら、使ったお金に対して平均で半分のリターンしか期待できないということで、撤退する人がでてくることになる。結局のところ、マイニングの報酬とマイナーの費用は長期的には一致する。マイニングのコストの大部分を占めるのは電気代だ。従って、ビットコインは全体として10分ごとに1000万円を電気代に費やしていることになる。月額で言うと約400億円、年間では5000億円くらいになる。採掘に費やすことができるリソースはビットコインの値段に比例していて、例えばビットコインの値段が現在の2倍になれば、年間1兆円を使ってもマイニングビジネスが成立することになる。どれだけマイニングの効率化競争が加熱しても、ビットコインの値段が変わらない限りマイニングに使われる資源量も変わらない、とも言うことができる。ビットコインでは、次のブロックを作る人を決めるために、参加者全員に1/275の確率で当たるクジを全力で引かせ続けているわけだけど、絶対にそういう仕組みが必要というわけではない。別の仕組みでは、例えばある種のトークンを事前に配布しておいて、「当たり」のトークンを持っているかどうかでブロックを作成する人を決める、みたいな方法もあって、これだと計算資源はほとんど使わなくて済む。違うモデルになってしまうけど、P2Pをやめてもいいのなら、単に300GBのデータベースをどこかに置いておくだけでもよい。これもほとんどタダみたいなコストしかかからない。ビットコインの代わりになる仕組みを作っても、ビットコインと同じように人気を得るのは極めて難しい。ビットコインに価値があるのは、みんながビットコインに価値があると思っているからで、仕組みだけ似たようなものを作っても、誰もそこに権威や正統性を見出してはくれない。ビットコインは最初からそこに存在していただけで、人々がそれが価値があるものだと思い始めると、それに比例してマイニングのコストが上昇するような仕組みになっている。これは誰にも止めることはできない。環境への影響と「希少な財」の本当の価値ビットコインのマイニングに莫大なエネルギーが使われているとしたら、それは一体どれくらい地球環境に影響を与えているのだろうか?実はこれもかなり簡単に計算することができる。Wikipediaによると世界全体のエネルギーコストはおよそ600兆円。5000億円は大金だけど、地球規模で見ると、ビットコインマイニングはその他の人間の活動に比べれば無視していいレベルだということがわかる。実際のところ人間はやらなくてもよい活動をたくさんやっているので、ビットコインの採掘は大した問題ではないと思う。金(ゴールド)などの貴金属も、採掘された資源の相当部分は何にも使われずにそのまま金庫にしまい込まれているだけで、それらは「所有している」ということ以外の目的ではまったく使われていない。貴金属の採掘に使われるリソースも、ビットコインと同じように、ある意味においては無駄なものだということができる。ゴールドなどの貴金属は、みんなが欲しがるからいい値段がついていて、その需要を満たすために莫大なお金を使って「採掘」しているわけだけど、この構図自体はビットコインととてもよく似ている。面白いのは、ゴールドなどはキラキラしていてキレイなので古来からみんなが欲しがってきたわけで、欲しがる人が多いから価値があると見なされてきたわけだけど、ビットコインはキラキラしていないし、そもそも形すらないのに、同じ構図が成立しているのである。なんとも抽象的な話だけど、ビットコインには今のところいい値段がついているのは事実だ。これは、いいか悪いかは別にして、価値とはそもそも一体なんなのかを考えるときに思い出したい、よい話になっていると思う。ダウンロードこの記事が気に入ったら、サポートをしてみませんか?気軽にクリエイターを支援できます。系記事まとめnoteに投稿されたエンジニア系の記事のまとめ。コーディングTIPSよりは、考察や意見などを中心に。クリエイターへのお問合せnoteカイゼン目安箱クリエイターの。