ビットコイン(BTC)安全性の確保と価値の担保の仕組み|仮想通貨プロトコルの概要編(3)

本稿は、コラム連載企画の3回目の記事です。前回の記事は以下からご覧ください。

前回の記事紹介
前回の記事では、ビットコインはどのようにデータが管理されのいるのか、マイニングの基礎知識からワークフローまで解説しています。 ビットコイン(BTC)ブロックチェーンとマイニングの仕組み|仮想通貨プロトコルの概要編(2)
初回記事はこちら 非中央集権で信頼を担保する ビットコイン(BTC)ネットワークの仕組みを解説|仮想通貨プロトコルの概要編(1)

本連載は論文の翻訳そのままではなく独自の解説を行っていますが、各章のタイトルには論文と対応する番号を振ってあるので参考にしてください。

1.2.4 フォーク中の二重支払いの抑止

前回、1.2.3節まででマイニングについて学びました。その中で、マイニングによってブロックチェーンの可能性とも呼べるチェーンが複数伸びることがありました。

さて、このチェーンが複数伸びている状態を「フォーク」と呼びますが、これによって二重支払いが起こりえるので、それをどのように抑止しているのか見ていきましょう。

一般的に、取引所などはBitcoinに関して6ブロック生成の確認(confirmations)が完了するまで待ちます。

つまり、少なくともトランザクションが記録されてから5ブロック生成されるまで待つわけです。約60分なので短くはありませんが、6ブロック目の生成の確認まで待てば十分に安全であるといわれています。 他の例を挙げると、世界最大の取引所であるBinanceではEthereumまたはERC20トークンに関して、30ブロックまで確認を待って反映を行っているようです。ブロックは 10-20秒程度で生成されるので、5-10分程度になります。

悪用するケース

一番初めの記事で述べたように、AliceがBob,Charlieに同じBitcoinで支払いをするケースを考えましょう。

AliceはわずかなBitcoinしか持っていません(0.01 BTCと仮定)。Bobからケーキ、Charlieから本を書いたいと思っていますが、どちらも値段は 0.01 BTCです。 Aliceは十分な金額を持っていないため知恵を働かせ、同時に別のノードに対し、Bobへの0.01BTCのトランザクション、Charlieへの0.01 BTCのトランザクションを送信します。 これがうまく働くと、Bobは自分に対し0.01BTCが支払われたように見えますし、Charlieもやはり自分に支払われたように見えます。しかしこれは一時的なものです。

時間が経つと、どちらかのトランザクションは無効になってしまうため、Aliceは2人を急かします。ここで2人が品物を渡してしまえばAliceの企みは成功です。

しかしBobもCharlieも用心深く、およそ1時間つまり6ブロック生成の確認まで待っていたとしましょう。残念ながら、どこかのタイミングでBobへのトランザクションが記録されたブロックが無効になってしまいます。(あるいはCharlieかもしれません)

現実世界で支払いのために 1時間も待つことはできませんが、分散型台帳という仕組みの都合上、時間をかけて安全かどうか判断する必要があるのです。

1.2.5 Bitcoinの総供給

次にBitcoinの価値を支える概念、総供給について触れます。

Bitcoinはマイニングによって新規のコインが生成されますが、2009年の時点では50 BTCが生成されていました。

以降、21万ブロックに達した時点で半減して25 BTC、42万ブロックで12.5 BTCと減り続け、693万ブロックまで採掘された時点でゼロになります。これは 2140年頃になると見積もられています。

もっとも、時間が経てば経つほど新規に生成されるコインは小額になってしまいます。Bitcoinよりも優れたコインが広まったり、他の技術が発明されてしまう可能性もありますね。

ブロックの生成は10分に1回になるように難易度が調整されています。

この調整は2016ブロックごとに行われますが、これはBitcoinのブロック生成時間10分で計算するとちょうど2週間となります。(2016×10/60/24=14)

Bitcoinでは、2016ブロックごとにタイムスタンプ(時刻情報)をチェックし、2016ブロック前の情報と比べています。2週間よりも短い時間で採掘されている場合は、採掘が簡単になっている(マイナーが増えたり、計算が効率化されているなど)と判断し、難易度を上げ、採掘を難しくします。もちろん逆もあり、2週間以上かかっていた場合は難易度を下げます。

過去のBitcoinのハッシュレートを振り返ってみると、2018年8月に61 EH/s(エクサはペタの上の単位で、10の18乗)を記録しましたが、その後は下がり続け50 EH/s 前後となっています。

ハッシュレートの変動や難易度が2週間ごとに変動している、という点は BitcoinWisdom などのサイトを見ると、より実感できるでしょう。

2018年8月頃はすでにBitcoinの価格は7000ドル前後になっており、ハッシュレートのピークが2017年12月に価格のピークを迎えた時期とずれている点は興味深いですね。当時はグラフィックボードが品薄で高騰していたので、仕入れのタイムラグなどもあったのかもしれません。

まとめ

ここまで、論文の一章に該当する部分について、関連する事例や情報を交えて説明してきました。例えば今回だと、Ethereumの話やハッシュレートの詳細は論文には載っていません。次回から第二章に入り、実際にBitcoinの技術でどのように攻撃を防ぐことができているのか、どのように安全に設計されているのか、見ていきたいと思います。

坪 和樹

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

銀行システムとはどのように違う? トラストの有無と攻撃リスク|ビットコインプロトコルのセキュリティ編(1)

次回記事では、ビットコインプロトコルのセキュリティについて、銀行システムとの比較から解説していきます。既存のシステムと比較した場合のビットコインの強みとは?

コメントしてBTCを貰おう