読者の皆様こんにちは。
Coin Shirube編集者のひろじぇーと申します。
ブロックチェーンの技術面に関する基礎的な知識を説明します。
ブロックチェーンのざっくりな概要
技術の説明の前に
この記事を見てくださっている方は、恐らく以下のいずれかのタイプに属するのではないでしょうか?
①ブロックチェーンに関して全く知識がないが、最近Web3という言葉をよく聞く&儲かりそうだからこの分野で起業したい。なのでまず知識を得たい
②ある程度ブロックチェーンに関して知識も興味もあるが、技術面の知識について全体像を体系的に知りたい
今回の記事は特に②の方に向けたものですが、①の方でも無理なく理解ができるよう、なるべく丁寧かつ優しい言葉を用いるよう心がけます。
では、ご覧ください。
まず、ブロックチェーンは
【分散型台帳技術(DLT: Distributed Ledger Technology)】の一種です。
もうこの時点で「お前は何を言ってるんだ。分散とか台帳って何だよ??」という疑問を持つ方が多数いらっしゃると思います。順を追って説明します。
ここでいう「分散」とは、従来型の「特定のサーバーと呼ばれる大きな何かが、クライアントと呼ばれる個々のノード(コンピュータ)の依頼に応じて動く」という仕組み(クライアントサーバシステム)とは異なります。
ブロックチェーンの文脈における分散とは、複数のノードが同じデータを共有する仕組みのことをいいます。PtoPとも言います。
これにより、今までのようにサーバーが壊れたらシステム全体がダメになってしまうこともなく、震災や戦争などがあっても
「全部のノードが壊れない限り平気」
というメリットがあります。
そして「台帳」とは、「データを保存する場所」つまり「データベース」のことだと思ってください。
各ノードは取引の情報を「ブロック」という一つの纏まりにしてからチェーン状に連結し、変更が困難な形でデータが保存されます。チェーンに追加することで台帳を更新します。
そして、この更新プロセスは次のような流れで実行されます。
①トランザクションの送信: 取引が発生すると、そのデータがネットワーク全体に送信されます。
②トランザクションの検証: 各ノードがトランザクションを検証し、その正当性を確認します。この検証では、例えば送信者が十分な資産を持っているかどうかや、トランザクションが正しい形式であるかが確認されます。
③ブロック生成: 正当とされたトランザクションはブロックにまとめられ、コンセンサスアルゴリズム(後ほど説明)によってチェーンに追加されます。
では、変更が困難な形での保存をどのように実現しているのでしょうか?
暗号化の役割
ブロックチェーンは、暗号技術を利用してデータの安全性を確保しています。
取引が行われる際、ハッシュ関数(SHA-256など)を使って取引データが不可逆的に暗号化されます。
、、またよくわからない言葉が出てきました。
「ハッシュ関数って何??」
この記事では詳細な説明を省きますが
「データを入力すると、それを用いて”適当に見える値”を返してくる魔法の箱」
だと思ってください。
このハッシュ関数によって生み出される
ハッシュ値こそが、唯一無二の情報として
デジタルデータの指紋のような役割を果たします。
ブロックチェーンにおいては
①トランザクションと呼ばれる一連の取引・直前のブロックのハッシュ値・ナンスと呼ばれる一定の値の3つをブロックという箱に入れ、ハッシュ関数に入れて「今のブロックの」ハッシュ値をゲットする
↓
②「今のブロックの」ハッシュ値を秘密鍵(公開鍵で暗号化されたものを複合するための文字列。逆もできる)で暗号化
↓
③世の中の人は、世界に公開されている公開鍵を使い、秘密鍵を開けてハッシュ値を読む
↓
④読んだハッシュ値が正しいか、ハッシュ関数にトランザクションを入れてみて、同じ数値になるか実験する
↓
⑤同じなら何も問題なく、違っていれば不正や改ざん、通信エラーによるデータの毀損などがあったと分かる
このような流れで、
「一連の取引は改ざんされていません!」
ということを証明することができます。
そして、これは新しいブロックがチェーンに追加されるたびに、前のブロックのハッシュ値を取り込むことを意味します。
これにより、途中のブロックの中身を改ざんしようと思ったら、そこから先のすべてのブロックの中身を計算しないと取引履歴の改ざんができず、改ざんが非現実的となるのです。
コンセンサスアルゴリズムの役割
分散型ネットワーク上に不特定多数のノードが存在する環境、つまりPtoPの状況を想定してください。
例えば「XさんがYさんに100ビットコインを送金をした」という取引情報を記録した台帳に対して、誰もがその真正性に合意できる仕組みのことをコンセンサスアルゴリズムと呼びます。
銀行であれば、銀行自体の信用に担保される形で、中央集権型システムである銀行のサーバーによる指示と、そのサーバーが持つデータを信用すれば足ります。
しかし、分散型ネットワーク上に見知らぬ参加者が取引情報を流すようなシステムの場合、誤情報や悪意のある情報が流れてくる可能性もあります。
そこでビットコインの創造者であるサトシ・ナカモトは、「特定の権威によらず取引情報の真正性を担保する手法」を暗号学を駆使することで実現しました。
これは俗に「ナカモトコンセンサス」と呼ばれ、ビットコインのコンセンサスアルゴリズムになっています。
ちなみにナカモトコンセンサスは
①PoW(Proof of Work)
②最長チェーン選択ルール
の2つによって構成されます。
PoWの説明は別の記事で行いますが、これ自体はコンセンサスアルゴリズムではありません。
シビル耐性メカニズムという「多数のユーザに成りすましネットワークを支配することにより、正常なノードに行われる攻撃を防ぐ仕組み」をいいます。
最長チェーン選択ルールは
どのチェーンが「正当な」チェーンであるか
を決めるために使用されます。
PtoPネットワークの場合、同時多発的にブロックが生成される可能性があり、複数の異なるチェーンが同時に存在する状態が生まれます。
その場合、最長のチェーンが正当となり、それ以外のチェーンは無効になります。
これを最長チェーン選択ルールと呼びます。
ブロックの構造
ブロックチェーンの「ブロック」は、前述の通り複数の取引(トランザクション)を一つにまとめたものです。
ブロックは主に以下の要素から構成されます
①ブロックヘッダー: ブロックのメタデータ(他のデータを説明するための情報)が含まれます。前のブロックのハッシュ値や、ブロック生成時間、難易度ターゲット(PoWの場合。別の記事で解説)などの情報が記録されています。
②トランザクションリスト: ブロックに含まれるすべてのトランザクションが格納されています。
③マークルツリー: トランザクションのハッシュ値が階層構造でまとめられ、最終的に「マークルルート」と呼ばれる一つのハッシュ値に集約されます。これにより、個別のトランザクションの検証が効率的に行えます。
ガバナンスモデルについて
ブロックチェーンの運用には、ガバナンス(管理・意思決定)の仕組みが重要です。
特に、パブリックブロックチェーンでは、システムのアップデートやプロトコル変更について、どのように意思決定が行われるかが大きな問題となります。
主として以下の2種類のガバナンスモデルがあります。
①オンチェーンガバナンス: プロトコルの変更をブロックチェーン上で直接投票にかける仕組み。Tezosなどがこのモデルを採用しています。
②オフチェーンガバナンス: 開発者やコミュニティが非公式な会議やディスカッションを通じて意思決定を行い、合意を形成するモデル。ビットコインやイーサリアムはこの方式を採用。
スケーラビリティ(拡張性)について
スケーラビリティとは、元々はIT用語としてシステムや機器、ソフトウェアなどが、規模や利用負荷の増大に対応できる度合い、または拡張性や拡張可能性を指す言葉として用いられています。
ブロックチェーンのスケーラビリティは、特に
パブリックチェーンにおいて大きな課題です。
スケーラビリティの問題は、ブロックチェーンが大量のトランザクションをリアルタイムで処理する能力が限られていることが原因となっています。
どのチェーンであっても、1つのブロックに書き込めるトランザクションの量には限界があります。そこで、主に3つの方法でスケーラビリティを向上させる取り組みが進められています。
①オンチェーンの改善: ブロックサイズの拡大や取引手数料の最適化などにより、ブロックチェーン自体の効率を向上させる方法。
②オフチェーンのソリューション: レイヤー2(セカンドレイヤー)ソリューションとして、Lightning NetworkやPlasmaなど、メインのブロックチェーンの外で取引を行い、チェーンの負荷を減らす技術。
③シャーディング: ネットワークを複数の部分(シャード)に分割し、それぞれが独立してトランザクションを処理できるようにすることで、処理能力を大幅に向上させる技術。イーサリアム2.0ではプロトタイプ〜ダンクシャーディングにてこのアプローチを導入予定。
プライバシー技術について
パブリックブロックチェーンは透明性が高い一方で、取引内容がすべて公開されます。
そのためプライバシーの懸念が大いにあります。これに対処するために、以下のようなプライバシー技術が開発されています。
①ゼロ知識証明(Zero-Knowledge Proofs, ZKP): 取引の内容を公開せずに、その取引が正当であることを証明する技術。Zcashはこれを利用した代表的な暗号資産です。
②ステルスアドレスとミキシング: トランザクションを匿名化するために、複数の取引をミックスする技術(Moneroなど)や、取引の送信者と受信者を隠す技術もあります。
インターオペラビリティ(相互運用性)について
現在、多くのブロックチェーンは独立して運用されており、異なるブロックチェーン間での資産の移動やデータの共有が難しいという問題があります。
これを解決するための技術がインターオペラビリティであり、現在様々な技術手段が開発されています。
例)クロスチェーン技術: PolkadotやCosmosなどのプロジェクトは、異なるブロックチェーン同士が相互にデータを共有できるようにする技術を開発しています。これにより、異なるブロックチェーンが一つのエコシステムとして連携する未来が期待されています。
最後に
ブロックチェーン技術に関して、よく聞くコンセンサスアルゴリズムと暗号化以外にも、分散型ネットワーク、トランザクション処理、ブロック構造、ガバナンスモデル、スケーラビリティ、セキュリティ、プライバシー技術、インターオペラビリティetc…といった様々な要素が全て重要だということがお分かりいただけたでしょうか?
これら様々な要素が密接に相互作用することで、ブロックチェーンは安全で信頼性の高いシステムとして機能し、幅広いビジネスや技術に応用される基盤となるのです。
個々の技術に関する詳しい記事は、別途個別に執筆いたしますので、またご覧いただけると幸いです。
以上、ご覧いただきありがとうございました。
コメント