ブロックチェーンとは、特定の所有者を持たず、多数のコンピューターが同期して保持する共有の記録帳です。この記事では、その作りと、履歴が非常に変更しにくい理由、そしてスマートコントラクトとは何かを、やさしい言葉と実例で説明します。
読みながら、その考え方が動いている様子を見ることもできます。ライブのイーサリアムのページやライブのビットコインのページを開くと、新しいブロックが次々に現れるのが見られます。
基本の考え方:多くの人が保管する記録帳
ネットワーク上で行われたすべての支払いを一覧にしたノートを想像してください。さらに、何千人もの人がそれぞれ同一のコピーを持っていて、新しいページは、その大半が同意したときにだけ追加されるとします。これがブロックチェーンの核心です。
記録は公開されています。誰でも読み、確認できます。帳簿をつけるために銀行や企業を信頼する必要はありません。その役割を、ネットワークのルールと、多数の参加者が持つコピーが果たすからです。
ブロック:取引のページ
トランザクション(取引)は、たとえば「AliceからBobへ20 USDCを送る」といった1つの指示です。取引はブロックと呼ばれるグループにまとめられます。ブロックは、記録帳の1ページのようなものです。
各ブロックには**ブロック高(block height)**があり、これはチェーン内での位置です。最初のブロックは高さ0、次は高さ1、というように続きます。ブロックは、ネットワークに応じた一定のリズムで作られます。
- ビットコインは、約10分ごとにブロックを生成します。
- イーサリアムは、12秒ごとにブロックを生成します。
- Solanaは、約400ミリ秒ごとに新しいスロットを生成します。
ChainMonitorでは、各ブロックがタイルとして表示され、どれくらい埋まっているか、どんな手数料が支払われたかがわかります。タイルをクリックすると、中の取引が見られます。そこで何が見つかるかは、トランザクションの読み方ガイドで説明しています。
連鎖するハッシュ:チェーンがチェーンである理由
**ハッシュ(hash)**は、データの短い指紋のようなものです。ハッシュ関数は、どんな入力も、固定長の文字列に変換します。同じ入力からは、常に同じハッシュが得られます。入力の1文字を変えると、ハッシュはまったく別のものに見えます。ハッシュからデータを逆算することはできません。
すべてのブロックには、その前のブロックのハッシュが含まれています。このつながりが、チェーン(鎖)になる理由です。
- ブロック100には、その取引とブロック99のハッシュが含まれます。
- ブロック101には、自身の取引とブロック100のハッシュが含まれます。
- ブロック102には、ブロック101のハッシュが含まれ、以降も同様です。
誰かがブロック100の取引を1つ変更すると、ブロック100のハッシュが変わります。するとブロック101は、もう一致しないハッシュを指すことになります。不一致はすぐに表面化し、それ以降のすべてのブロックも壊れます。
ノード:コピーを保管する人たち
**ノード(node)**は、ネットワークのソフトウェアを実行し、ブロックチェーンを保存し、ルールを検証するコンピューターです。新しいブロックが届くと、各ノードはそれを独立して検証します。存在しないコインを使うなど、ブロックがルールに違反していれば、誠実なノードはそれを拒否します。
ブロックの生成を手伝うノードもあります。読み取りと検証だけを行うノードもあります。ウォレットを使うとき、ウォレットは通常、RPCエンドポイントを通じてノードと通信します。これは「自分の残高は?」といった質問に答えるウェブアドレスです。公開エンドポイントは、RPCヘルスページで比較できます。
コンセンサス:全員が合意する方法
何千ものコピーがあるため、ネットワークは次にどのブロックが来るかについて合意する手段を必要とします。その合意の過程が**コンセンサス(consensus)**です。主に2種類あります。
プルーフ・オブ・ワーク
プルーフ・オブ・ワーク(proof of work、PoW)では、マイナーと呼ばれる参加者が、難しいパズルを解くために競います。パズルは、膨大な数の推測を試すことでしか解けず、電力とコンピューターの時間を消費します。勝者が次のブロックを追加し、報酬を受け取ります。ビットコインは、プルーフ・オブ・ワークを使います。
不正にはコストがかかります。履歴を書き換えるには、攻撃者は古いブロックとそれ以降のすべてのブロックの作業をやり直し、しかもネットワーク全体を合わせたよりも速くやらなければなりません。
プルーフ・オブ・ステーク
プルーフ・オブ・ステーク(proof of stake、PoS)では、バリデーターと呼ばれる参加者が、ステークと呼ばれるデポジットとしてコインをロックします。ネットワークは、ブロックを提案し承認するバリデーターを選びます。ルールに従うバリデーターは報酬を得ます。ルールを破るバリデーターは、ステークの一部を失うことがあります。イーサリアムとSolanaは、プルーフ・オブ・ステークを使います。
ここでも不正にはコストがかかりますが、そのコストは電力ではなくデポジットです。
誰も履歴をこっそり編集できない理由
3つのことが組み合わさっています。
- ハッシュのつながり。 古いブロックを変更すると、それ以降のすべてのブロックが壊れます。
- 多数のコピー。 編集する人は、1つではなく、コピーの過半数を変更する必要があります。
- コスト。 プルーフ・オブ・ワークでは、攻撃者に莫大な計算能力が必要です。プルーフ・オブ・ステークでは、破壊されうる巨額のステークが必要です。
これは、仕組みが魔法だという意味ではありません。上にブロックが積まれるほど、履歴は変更しにくくなるということです。取引所やアプリが、支払いを確定として扱う前に、複数の承認を待つのはそのためです。詳しくはファイナリティと承認数をご覧ください。
残高を管理する2つの方法:アカウントとUTXO
ネットワークは、「誰が何を所有しているか」を、2つの方法のどちらかで管理します。
アカウントモデル。 Ethereum、Arbitrum、Base、Optimism、Polygon、Solanaは、銀行の台帳のように動作します。各アドレスが残高を持ち、取引は、ある残高から引いて、別の残高に加えます。
UTXOモデル。 ビットコインは、現金に近い動作をします。UTXO(未使用トランザクションアウトプット)は、1回だけ使えるコインのような断片です。支払いでは、1つ以上のUTXOをインプットとして使い、新しいUTXOをアウトプットとして作成します。通常は、送信者に戻る「お釣り」も含まれます。ビットコインの残高は、使えるUTXOの合計です。
どちらのモデルも、あらゆる点で優れているわけではありません。異なるトレードオフを持つ、異なる設計です。
スマートコントラクトとは?
スマートコントラクトは、ブロックチェーン上に保存された小さなプログラムです。誰かが取引を送ると、書かれたとおりに実行されます。トークンを保持し、ルールに従い、結果を他のコントラクトに送ることができます。デプロイされたコントラクトのコードは、コード自体がアップグレードを許可していない限り、誰にも変更できません。
例:あるトークンを別のトークンにスワップするコントラクト、担保を取ってお金を貸すコントラクト、USDCトークンを定義するコントラクトなどです。イーサリアムとその上に構築されたチェーンは、EVM(Ethereum Virtual Machine)を使ってコントラクトを実行します。Solanaには独自のコントラクトの仕組みがあり、プログラムは異なる設計で動きます。ビットコインは、単純なスクリプトにしか対応していません。
コントラクトの実行には、ガスという手数料がかかります。その計算方法はガスと手数料をご覧ください。
スマートコントラクトの品質は、そのコード次第です。コントラクトのバグで資金を失うことがあり、確定した取引は取り消せません。
次に読むもの
異なるネットワーク同士の関係を知るには、レイヤー1・レイヤー2・レイヤー3をわかりやすく解説をお読みください。自分の資金を保管する方法を学ぶには、ウォレットと鍵をお読みください。短い定義は、用語集をご利用ください。
よくある質問
ブロックチェーンはビットコインと同じですか?
いいえ。ビットコインは1つのブロックチェーンで、広く使われるようになった最初のものです。ブロックチェーンは、その基盤となる技術です。イーサリアム、Solana、その他多くのものが、それぞれ独自のルールを持つ別々のブロックチェーンです。
ブロックチェーンはハッキングされたり、変更されたりしますか?
大規模なネットワークの古いブロックを書き換えるのは極めてコストが高く、最大級のネットワークでは起きていません。損失の大半は他の場所から生じます。鍵の盗難、詐欺、スマートコントラクトやその上に構築されたアプリのバグなどです。
ブロックチェーンは誰が管理していますか?
公開ブロックチェーンを管理する単一の所有者はいません。ルールは、ノードが実行するソフトウェアによって決まり、変更には、開発者、バリデーターやマイナー、ユーザーの幅広い合意が必要です。これは意図的に、企業の決定より遅くなっています。
ブロックとトランザクションの違いは何ですか?
トランザクションは、支払いのような1つの動作です。ブロックは、多数のトランザクションをまとめて、チェーンに一緒に追加する束です。
なぜブロックチェーンの取引には手数料がかかるのですか?
手数料は、ネットワークを運営する人々に支払われ、スパムを防ぎます。ブロックのスペースは限られているため、ネットワークが混雑しているときには、誰の取引が先に取り込まれるかも手数料が決めます。