非中央集権で信頼を担保する ビットコイン(BTC)ネットワークの仕組みを解説|仮想通貨プロトコルの概要編(1)

2018年5月、ボンベイのインド工科大学に所属するSaravanan Vijayakumaran氏がBitcoinプロトコルに関するセキュリティを論文にまとめました。

今回は、その論文を紹介しつつ連載形式で少しずつ紐解き、Bitcoinのセキュリティがどのように保護されているのかを見ていきます。

セキュリティに興味をお持ちの読者にとっては序盤は一般的な内容に留まるため、なかば常識のような内容も多くなってしまうかもしれませんが、基礎的な部分が多く含まれる1章から順を追って解説するのでご了承いただければ幸いです。

1.1 暗号資産のチャレンジ

坪 和樹

クラウド業界で働くエンジニア、アイルランド在住。 MtGox や The DAO では被害を受けたが、ブロックチェーンのセキュリティに興味を持ち続けている。セキュリティカンファレンスでの講演、OWASP Japan の運営協力や Mini Hardening といったイベント立ち上げなど、コミュニティ活動も実績あり。

1.1.1 オーナーシップ

フィアット通貨、いわゆる日本円などの法定通貨は、国がオーナーとなっています。紙幣やコインは国によって裏付けられた通貨であり、銀行によって製造されるものです。その反面、Bitcoinをはじめとする暗号資産は、個人や組織といった特定の誰かがつくるものではなく、またオーナーと呼べる管理者も存在しません。

例えば、各個人が保管している秘密鍵は、個人が責任をもって管理するべきものです。秘密鍵を紛失してしまった場合、第三者が再発行することは出来ません。

そして、秘密鍵と公開鍵(≒アドレス)の対応は、一方向性の関数によって計算できるもので、逆の計算が非常に難しいという性質によって保護されています。 この点は将来的に量子コンピュータによって危殆化される可能性が懸念されていますが、採用されているアルゴリズム(例えばBitcoinならばsecp256k1)の計算量によって守られているという点は、記憶しておくとよいでしょう。

そして、オーナーが不在であるという性質によって、特定のノードや組織を信頼する必要がありません。つまり、Bitcoinをはじめとした暗号資産は「信頼のない(trustless)ネットワーク」を前提としているのです。

特定のなにかを信頼しないということは、簡単に言えば、仮に悪意を持つ人間や組織が入ってきたとしても、大多数が正しい動作をすれば問題がない設計になっている、ということを意味します。

なお、ハッシュパワーの大多数が一部のマイニングプールに集中しているのではないか等の懸念については、ここでは触れませんのでご了承ください。

1.1.2 二重支払いの回避

世間一般でよく知られている銀行の残高を使うとき、つまり振り込みや引き出しを行うとき、残高はその瞬間に変化します。これは当たり前といっていいでしょう。

例を挙げると、日曜日の場合、残高の反映は遅れますが、すぐにお金は出てきます。そんなサービスがあったらどうなるでしょう。

100万円の残高がある口座から、全額の100万円を引き出す。残高が反映されないうち、すぐに100万円をもう一度引き出す。こんなことができてしまいます。

Bitcoinなどの暗号資産は、ネットワーク上の全ノードにデータが反映されるまで時間がかかるものです。また、51%攻撃などのように、ブロックのチェーンが巻き戻るリスクもあります。

このような二重取引は、暗号資産の取引所から預けている以上の金額を引き出したり、違う相手に支払いを行うのに使うといったケースに悪用される可能性があります。

例えば下図で Aliceは支払いを行っていますが、BobとCharlieの両方に支払うだけの十分な金額を持っていなかったとしても、一時的に支払いができたように見せかけることが可能です。

一般的に取引所などでは、フォークしたチェーンが最長(最善)になっていることを確認するため、トランザクションが記録されてから一定回数の確認(confirmation)を待ち、預け入れや引き出しを管理しています。しかし、カナダで起こったATM引き出しなど、この確認が短すぎたために悪用されてしまった事例もあるのです。

1.1.3 総供給の管理

暗号資産の総供給を管理することはその価値を保つ上で極めて重要な位置を占めます。誰かが将来的に総供給を増やしてしまうと、その価値が暴落する危険性があるためです。

Bitcoinをはじめとした暗号資産のほとんどは、この懸念に対応するため、総供給をコード上で定めています。例えばBitcoinは 2100万枚となっています。逆に、Ethereumのように議論が続いているものもあります。

Bitcoinの発行は、PoW(Proof of Work)なのでマイニングによりますが、一定期間ごとに半減期が訪れる仕組みとなっています。2019年時点でBitcoinはマイニングあたり12.5枚のコインが発行され続けていますが、今後1-2年で半減し、6.25枚になってしまうでしょう。その後も徐々にマイニングあたりの発行枚数が半分ずつ減っていきます。

新規発行が少なくなり、いずれなくなったとしても、トランザクションに伴う手数料でマイニング収入は発生しますが、おそらく微々たるものになるでしょう。そのため、総供給を増やすという議論が発生することもしばしばです。

まとめ

Bitcoinプロトコルの概要を説明した 1章のうち、基礎となる「1.1 暗号資産のチャレンジ」を紹介しました。

セキュリティに関連する最低限の知識の説明となっているので、基礎から学びたい方は以下の記事なども参考にされると良いでしょう。

次回は「1.2 Bitcoin のデザイン」について解説していきたいと思います。

仮想通貨の仕組み【初心者向け図解】暗号技術と問題点について
仮想通貨を支えるブロックチェーン技術について解説図を用いて簡単に、仮想通貨がはじめての人でもわかりやすく解説します。暗号技術・ハッシュ・P2Pなどが主要なキーワードになります。

ビットコイン(BTC)ブロックチェーンとマイニングの仕組み|仮想通貨プロトコルの概要編(2)

次回記事では、分かりそうで分からない「トランザクション」や「マイニング」の仕組みについて詳しく解説していきます。

コメントしてBTCを貰おう