「ブロックチェーンとは何か?」を技術的観点から捉える
はじめに
Project LUCKと書く人
Project LUCKメンバーの中西です!Project LUCKというのは、株式会社マーキュリー(代表取締役:都木聡)の中で立ち上げたプロジェクトです。そのコアメンバーが日々、自分たちが学んだことや読者の皆さんとコミュニケーションをとりたいと思い、さまざまな記事を書いています。
今回のテーマ
「ブロックチェーンとは何か?」について、技術的観点から言及すれば、「P2Pネットワークを基盤とし、暗号技術とゲーム理論を統合して構築された分散型システムである」と言えます。
本記事では、この定義に登場する「P2Pネットワーク」、「暗号技術」、「ゲーム理論」について、それぞれの概要とブロックチェーンにおける役割を紹介し、基本的な部分について捉え直します。
P2Pネットワーク
P2Pネットワークとは、ネットワークの参加者(ノード)が中央サーバーを介さずに直接接続し、データやリソースを分散して共有するアーキテクチャを指します。
この構造により、各ノードがサーバー、クライアント双方の役割を果たすことになるため、データの送受信や処理を分散して行うことが可能です。
ブロックチェーンにおいて、P2Pネットワークは分散型システムとしての基盤を支えています。各ノードは、作成されたトランザクションやブロックを受け取り、他のノードに伝播することで、ネットワークに参加する全てのノードのデータを同期させています。
これにより、特定のノードのデータが改ざんされたとしても、他のノードが持つ正確なデータと突合できるため、不正な操作が検知されやすいのです。
また、P2Pネットワークは中央サーバーを介さずにデータの共有や検証を行っているため、中央集権的な管理者が存在しません。このため、特定のノードがダウンしても、他のノードが機能し続ける限り、システム全体へ影響を与えないという特徴があります。
このように、P2Pネットワークは、その分散性によってシステム全体の改ざん耐性や耐障害性を担保しており、ブロックチェーンの信頼性を支える役割を果たしています。
上記の詳細については、こちらの記事で紹介しています。
暗号技術
ブロックチェーンにおいて、暗号技術は信頼性とセキュリティを保証しており、ハッシュ関数と公開鍵暗号の2つの技術が使用されています。
ハッシュ関数とは、入力データから一定の長さのハッシュ値を出力するアルゴリズムであり、ブロックチェーンのデータが改ざんされないように保護する役割を果たしています。
このハッシュ値は、入力データがわずかでも変更されると大きく変化するため、データの改ざんを容易に検出することが可能です。
ブロックチェーンでは、ブロックに格納された全てのトランザクションデータをハッシュ関数に入力し、特定のブロック全体に対応するハッシュ値を生成します。
そして、このハッシュ値は次のブロックに引き継がれ、新しいトランザクションデータと組み合わされて新たなハッシュ値が生成されるのです。
このような作業が繰り返されることで、各ブロックは前後のブロックと関連づけられ、鎖のような構造が形成されます。
したがって、特定のブロックの改ざんを行う場合、整合性を保つためにその後の全てのブロックを再計算する膨大な計算力が必要となるため、「改ざんは事実上不可能である」と言われているのです。
公開鍵暗号とは、データの送受信やデジタル署名に用いられる暗号方式であり、ブロックチェーンにおけるトランザクションの正当性を保護する役割を果たしています。
この暗号方式では、公開鍵と秘密鍵の2つの文字列が使用されており、特徴として以下の2つが挙げられます。
ブロックチェーンにおいては、トランザクションの作成者が自らの秘密鍵でトランザクションに署名しており、その他のノードが公開鍵によってその正当性を検証しています。
したがって、ブロックチェーン内の全てのトランザクションは検証可能であり、不正な操作や改ざんが行われていないことが担保されています。
上記の詳細については、こちらの記事で紹介しています。
ゲーム理論
ゲーム理論とは、利害関係にある複数のプレイヤーが、戦略的な意思決定を行う過程を数学的に分析する理論であり、ブロックチェーンにおいては、各ノードによる不正を防止し、ネットワーク全体の安全性を保つための仕組みを提供しています。
ブロックチェーンは中央集権的な管理者が存在しない分散型システムであるため、各ノードが協調して正当な行動を取ることが求められます。
例えばビットコインでは、ノードが新たなブロックを検証し、正当な方法でブロックチェーンに追加することで報酬を受け取れる仕組みが存在しており、この報酬制度が正当な行動を促す経済的なインセンティブとなっています。
また、前章で述べたように、ブロックの改ざんには膨大な計算力が必要であり、ノードにとって不正を働くよりもネットワークの維持に貢献した方が自らの利益になるため、このようなインセンティブ設計がシステム全体の安定性を支えていると言えます。
上記の詳細については、こちらの記事で紹介しています。
参考文献
Bikramaditya Singhal, Gautam Dhameja, Priyansu Sekhar Panda (2020). ブロックチェーン実践入門: ビットコインからイーサリアム、DApp開発まで