暗号通貨とマイニング

先日知り合いに異業種交流会に誘っていただき、仮想通貨について何かプレゼンしてほしいと言われていたので15分くらい?しゃべってきました。
で、そのときの資料を死蔵させるのもなんかな、と思うのでここに置いておきます。
非エンジニア向けなのであえて投資・投機の話はなし。単純に暗号通貨についてお話ししました。

文章中に画像も使っていましたが、借り物が多かったのでここでは削除しています。

しゃべるのはこんなひと

今回お話しする暗号通過とマイニングについては、バブル崩壊後の今年(2018年)の4月頃から興味を持ちはじめました。体育会系のコワーい先輩方に誘われて始めたクラウドマイニングがきっかけです。
短時間ですが、できるだけわかりやすくエンジニアの視点から暗号通貨を説明したいと思います。

用語

一般的な用語が特殊な意味合いで使われる事があるので、先に少しだけ説明します。

  • 暗号通貨
    = 仮想通貨 です。日本では仮想通貨と言う呼ばれ方が一般的ですが、海外ではCrypto Currency(暗号通貨)と言う呼び方が一般的です。
  • ブロックチェーン
    単位時間 or 単位容量の情報をブロックとして、それを時系列につなげた物をブロックチェーンと呼びます。サトシ・ナカモト氏が提唱する、暗号通貨の根幹となる仕組みです。
  • マイニング
    新規に生成されたブロックをブロックチェーンにつなげるための一連の処理をマイニングと言います。マイニングをおこなうことで報酬を得ることができることから、ブロックを解析する処理をゴールドラッシュになぞらえて”マイニング(掘削)”と呼ばれます。
  • ウォレット / アドレス
    ウォレットはそのままお財布のことです。ウォレットはアドレスを管理するもので、アドレスにはその所有者の暗号通貨が入っています。アドレスがわかれば、そのアドレスの残高を確認したりそのアドレスに送金することができますが、出金には秘密鍵が必要です。

1. 暗号通貨

2008年にサトシ・ナカモトと名乗る人物が「P2Pネットワークでの分散処理」「秘密鍵による暗号管理」に関する論文をインターネット上に公開しました。その理論を元に2009年に公開されたソフトウェアがBitcoin Coreです。今話題に上がる暗号通貨は、Bitcoinから始まっています。
サトシ・ナカモトとはプロジェクトの名前と言われていますが、初期プロジェクトメンバの個人情報等は公になっておらず、人物像については謎のままということになっています。

Bitcoinの理論もソフトウェアもオープンソースになっていてGithubにて公開されており、誰でもアクセスすることができます。

論文: https://bitcoin.org/bitcoin.pdf
Bitcoin Core: https://github.com/bitcoin/bitcoin

日本における仮想通貨についての定義は 資金決済に関する法律 第2条第5項 にてされているようです。

1-1. ビットコインとオルトコイン

暗号通貨はBitcoinが基軸通貨となり、そのほかのをオルトコイン(AltCoin)と呼んでいます。
オルトコインはBitcoinのデメリットを補完した物や、Bitcoinにない特徴を備えた物があります。例えば、決済が遅くブロックサイズが小さい事を補完したBitcoinCashや、Bitcoinにない匿名性を備えたMoneroやZCashといった物もあります。日本製の暗号通貨もあり、MonaCoin(Bitcoin系)やKotoCoin(ZCash系)等があります。

暗号通貨は現在3,000種類近く存在しています。

2. ブロックチェーン

単位時間・容量あたりの取引をブロックとして、それを時系列につなげたデータベースをブロックチェーンと言います。暗号通貨の根幹となる、取引の正しさを証明する仕組みです。

2-1. ブロックチェーンの仕組み

ブロックには取引情報の他に、Nonceと呼ばれるブロック解析結果の正解と前ブロックのハッシュ値が格納されています。
ブロック自体は暗号化されており、Nonceを導き出すことでブロックが正しいことを証明しています。また、Nonceを導き出すことは暗号を解読することであり、膨大な計算量が必要になります。この計算をおこなうことをマイニングと呼びます。

またブロックチェーンは、FinTech界隈では分散型台帳技術とも言われていますが、P2Pネットワークに参加しているコンピュータ上に複製されており、また一部を改ざんしても複雑な計算の整合性がとれなくなるため、強力な改ざん耐性が備わっています。

なお、ブロックはBitcoinの場合、約10分毎に生成されることになっています。

3. マイニング

マイニングとは、以下をおこなうための処理です。

  • 取引の承認 (Nonceを導き出して照合)
  • 新規暗号通貨の発行 (マイニング報酬)

一般的なマイナーはマイニング報酬を得るためにマイニングをおこなっています。また、より多くの報酬を受け取るためには高スペックかつ通貨の暗号化アルゴリズムに合うパーツ(CPU / GPU / ASIC等)を選択する必要があります。

3-1. 取引の承認

P2Pネットワークにデータベースがあるため、ブロックは2つ以上発生してしまう可能性があります。
しかし複数発生したブロックを一つに選択するために、より高いハッシュレートのブロックが残され、そのブロックの取引が承認されます。
承認されなかった取引はシステムに拒否され、取り消されル事があります。取引を完了するためには1度の承認では不足で、最低承認回数を満たす必要があります。複数回の承認を必要とすることが、ブロックチェーンへの攻撃をブロックする事にもつながっています。

3-2. 新規暗号通貨の発行

現在のBitcoinでは1ブロックあたりのマイニング報酬として12.5BTCが発行されていますが、半減期を迎えることで報酬額は半減していきます。
また、発行枚数にも上限が設定されていて、2100万BTCが上限とされています。これはBitcoinに希少性を持たせて価値を維持するための仕組みです。
これらの仕組みは通貨によって異なり、イーサリアム(ethereum)は発行上限が決まっていません。
また、リップル(ripple)は1,000億XRPがすべて発行されていてもう新規に発行されません。さらに、リップルネットワークを利用者が使用するたびに、リップルは減少する仕組みになっています。

3-3. マイニングの方法

マイニング報酬を得るためには一番早く計算を完了させる必要があるので、一般的には複数人でマイニングをおこないます。
下記の方法があります。

  • ソロマイニング
    • 単独でマイニングをおこなう方法です。一般に知られていない草コインなら手軽で良いですが、Bitcoinのようなコインではまずマイニングの成功率は非常に低いです。ですが、成功した場合には多くのマイニング報酬を受け取ることができます。
  • プールマイニング
    • プールにワーカーを登録し、自分のコンピュータでマイニングをおこなう方法です。マイニング報酬は登録されているワーカーと分配することになりますが、全体としてハッシュレートが高くなるのでマイニング成功率が上がります。
  • クラウドマイニング
    • クラウドマイニング業者に出資して出資額に応じたマイニング報酬を受け取ります。マイニング関する機材の調達やセットアップ等は業者がおこなうため知識がなくても始められますが、残念ながら詐欺が横行しています…

4. 暗号通貨の今後

今年はコインチェックやZaifへのハッキング被害などもあり、また市場価値も低迷しているため、現在の暗号通貨界隈は悲壮感に包まれている、というのが正直なところです。
ですが、暗いニュースだけではありません。
ブロックチェーンの理論は非常に優れたものなので、この理論への注目度は上がってきています。
メガバンクの暗号通貨参入や応用技術の実用化など、AI(機械学習)と並んでこれから一般的な技術になると思います。

大手金融機関やスマホユーザの8割が利用していると言われているLINEの参入は暗号通貨業界への追い風となる可能性が高く、市場の安定化に貢献するはずです。市場が安定すれば、仮想通貨を遣える店舗も増えるかもしれません。現在ビックカメラではBitcoinで商品を購入することができます。

私はエンジニアなので、PCの余剰リソースをマイニングに充てて夢を見つつ、最新技術に触れていきたいとと思います。通貨のあり方を変えるほどの技術が、手に届く場所にあるのです!

5. 参考情報

Happy Hacking!