ブロックチェーンやビットコインは本当に不変なのでしょうか?
ブロックチェーンというコンセプトを追求し、ビットコインとの関わりとその不変性を追求していきます。 共有
ブロックチェーンについて語る時、不変性が話題となります。この話題に関しては多くの意見がありますが、みんな同じ疑問を持っています。ブロックチェーンとビットコインは不変なのか、ということです。端的に言えば、はい、ブロックチェーンやビットコインは不変であると言えます。詳しく理解するには、その全体像をきちんと理解する必要があります。
本編に入る前にブロックチェーンの基本をご説明します。複雑なので技術的な詳細には踏み込みません。では、ブロックチェーンとは何でしょうか? ブロックチェーンとビットコインを混同する人が多いですが、別物です。ブロックチェーンはコンセプト、仕組みに関するアイデアです。ビットコインはそのコンセプトを実現した主要な初の例です。ブロックチェーンはビットコインと全く異なる他の形態で実現することもできます。スマート契約や銀行間決済などの分野で進歩していて、ビットコインよりずっと興味深いものです。
端的に言うとブロックチェーンは分散元帳にすぎません。信頼された中央組織に制御を任せる通常のパラダイムとは違い、ブロックチェーンでは単一の支配組織ではなく、ネットワークがあります。誰一人信用する必要がないのはシステム自体が単一人物による支配を不可能にするからです。非中央化することで多くの人に人気を集め、パワフルなものとなるのです。
ビットコインはブロックチェーンに基づいて、誰にも制御されていません。取引は瞬時に行われ、少額の手数料が各取引に伴います。そのため、世界的な支払いに人気があります。しかし、どこにも裏付けがないため、この通貨には本質的な価値はありません。価値は単純に、人がどれだけ支払う意思があるか、そしてシステムへの信頼に比例しています。ブロックチェーンに関する報道があるたびにビットコインの価値が低下するのはそのためです(ビットコインについての詳細はこちらをお読みください)。
では、不変性とは何で、なぜ重要なのでしょうか? 一般的に、不変性とは何かが創造された後に変えられないことを指します。ソフトウェアのプログラミングを手掛ける人には不変性がいかに重要か理解できるでしょう。ブロックチェーンに関しては同じような意味ですが、その重要性がはるかに高いのです。なぜそんなに重要なのか説明するために、ビットコインを例にとってみましょう。
ビットコイン取引は世界中で行われ、取引情報は複数のコピーとしてネットワーク中に保存されています。ブロックのチェーンとして繋がれているのです。そのブロックが変えられてしまったら、悪意のある人に取引履歴を変えることで億万長者になることができます。そのためブロックが変えられない、つまり不変であることが大変重要になるのです。詳細を見てみましょう:
新しい取引を始めるには、取引情報を発表します(例えば「ボブに9BTC支払う」)。しかし、取引先が勝手に作り出したのでなく、本当にあなたであることを保証するにはどうすればいいのでしょうか? そのためにはあなたが使っているビットコインのソフトウェア(ウォレット)があなたのプライベートキーで電子署名を作ります。それはあなた(あなたのシステム)だけに知られている情報で、取引ごとに異なります。他人はあなたのパブリックキーを使って解読します。以下の図を参照してください。
取引は信頼できないネットワークやコンピュータを介して行われるので、メッセージが不変で他人に変えられないようにするにはどうしたらいいのでしょう? 電子署名は、メッセージが変えられると署名全体を無効にするため、みんなにそのメッセージが変えられたことが知られるのです。次に、あなたの取引はまだ承認されていない取引のプールに加わります。ビットコインネットワークに参加している人は皆、複数の取引を選んで既存のブロックに追加します。しかし、取引を追加するために、数学のパズルを解決しないといけません。(SHA256ハッシュと言います)。このパズルを解決するには時間がかかります。以下で詳しく説明しますが、この点はビットコインの重要なポイントになってきます。複数の人がパズルを解決しようとします。先に解決した人がブロックに追加することができ、その人が報酬としてわずかな割合のビットコインを受け取る仕組みです。以下の図で詳しく説明されています。矢印は古い取引を指しています。
ビットコインのインフラの特徴のため、ブロックチェーンには複数の分岐点があることもあり、そこには相反する情報が含まれています。どのチェーンを信頼したらいいのでしょうか。信頼すべきなのは最も長いチェーンで、短いチェーンは未承認の取引プールに戻されます。そのため、取引するたびに冷却期間があり、最初は承認されておらず、リスクが伴います。赤く表示して未承認だと示すウオレットもあります。
では、最初の質問に戻ってみてみましょう。ブロックは本当に不変なのでしょうか? 悪意のあるアタッカーに都合よくブロックを変えられてしまわないのでしょうか? 100%不変であるわけではないというのが答えです。しかし、先ほどの数学の問題を解決しなければならないというポイントのため、変えることはほぼ不可能となります。アタッカーが成功するためには既存のチェーンよりも長いチェーンを作る必要があります。分岐点が散らばっていて、長いチェーンを作るのには時間がかかるため実質的に不可能です。
すでに承認されているブロックに関してはどうでしょうか? 不変ではありませんが、分岐点が散らばっているためアタッカーはネットワーク上の多くのコンピュータを制御する必要があります。51%のコンピュータを制御する必要があるため、「51%攻撃」と呼ばれています。しかし多数のコンピュータを制御しなければならないとなると、他人から盗み取るよりマイニングや通常の方法でビットコインを稼いだ方が手っ取り早いのです。
ですから、多数の参加者がいる限り、ブロックチェーンはほぼ不変であると言えます。でもこの話題について心配している人がいる理由を理解することも重要です。
この記事を改善する方法についてコメントをお願いします。あなたのフィードバックが重要です!