Skip to main content

原文準拠 Phase 1:基礎

1.2 ブロックチェーンの中心概念

Midnight Academy Phase 1 / Unit 1 / 1.2 の原文準拠版。分散化・コンセンサス(PoW / PoS / BFT)・ブロック・ノード・改ざん耐性(immutability)を、正確に・やさしく。


📘 Academy原文準拠 | Phase 1 · Unit 1 · Lesson 1.2 Core Concepts of Blockchain Technology 内容に忠実な日本語版です。原文(英語)・図・動画は公式 Academy(外部リンク・別タブで開きます)を正本に。

前のレッスンでは、ビットコインから Midnight までのブロックチェーンの歩みを見てきました。ここからは「中身のフタを開けて」、これがどう動いているのかを覗いてみます。

「コンセンサス(consensus)」や「改ざん耐性(immutability)」という言葉は、最初は難しそうに聞こえます。でも、この中心となる考え方さえつかめば、ブロックチェーンの残りの部分はぐっと分かりやすくなります。ここでは、その土台をやさしく・正確にほぐしていきます。

動画で学ぶ(公式)

🎬 ブロックチェーンの中心概念(公式の解説動画) YouTubeで開く ↗

分散化(Decentralization)

ブロックチェーンには「ボス」がいません。CEO もいなければ、コンセントを抜けば止まるサーバー室もありません。あるのは、世界じゅうに散らばった何千台ものコンピューターだけ。そして、その一台一台が、まったく同じ記録のコピーを自分の手元に持っています。

これはよく考えると不思議なことです。あなたが今まで使ってきたシステムには、たいてい「責任者」がいました。

  • 銀行があなたの口座を管理する。
  • SNS があなたの投稿を管理する。
  • 政府があなたの ID を管理する。

ところがブロックチェーンには管理者がいない。それなのに、ちゃんと動きます。

分散型ネットワークの図。新しい取引が、フル台帳を持つ複数のノード(ノード1〜4)に配られ、すべてのノードが検証する。信頼は「数字とルール」にあり、単一のノードには依存しない

普通のシステムでは、中央のサーバーが落ちると、利用者は何もできなくなります。中央に1つだけ「壊れたら全部止まる場所」があるからです。ブロックチェーンではこれが起きません。壊すべき1点が存在しないからです。

それぞれのコンピューター(これをノード(node)と呼びます)が、これまでに行われた全取引の完全な履歴を持っています。あなたがビットコインを送るとき、銀行に許可をもらうのではありません。何千台ものコンピューターに一斉に「これをやります」と宣言するのです。彼らはみんなで計算を確かめ、あなたに残高があることに同意し、自分の記録を更新します。

この仕組みの美しいところは、どれか1台のコンピューターを信用する必要がないことです。信用しているのは「数学」と、「何千台もの独立したコンピューターが、まったく同じ間違いを同時にすることはまずない」という事実です。

コンセンサスの仕組み(PoW・PoS・BFT)

ここで大きな疑問が出てきます。ボスがいないなら、これだけ大量のコンピューターはどうやって意見をそろえるのか?

その答えがコンセンサスの仕組み(consensus mechanisms)です。名前は難しそうですが、要は「ボスがいないとき、どうやってみんなで合意するか」というだけのこと。そして、ブロックチェーンごとにそのやり方が違います。

PoS と PoW の比較図。プルーフ・オブ・ステークはアルゴリズムでバリデーターが選ばれ、不正するとステークを失う。プルーフ・オブ・ワークはマイナーが最初に計算問題を解いてブロックを追加し、報酬を得る

Proof of Work(PoW):採掘による合意

ビットコインは Proof of Work を使います。ここでは採掘者(マイナー)たちが、難しい数学パズルを解く競争をします。

イメージとしては、世界一お金のかかる宝くじを、何百万台ものコンピューターが一斉に引いている感じです。みんなが本当に難しい数学パズルを解こうと競争し、最初に解けた者が、次の取引のまとまり(=ブロック)をチェーンに追加でき、報酬としてビットコインを受け取ります。

マイナーは未処理の取引を集め、正しい「ハッシュ(digital fingerprint=デジタルの指紋のようなもの)」が出るまで、何兆通りもの数字を試します。答えを見つけるのは途方もなく大変で、お金もかかります。でも、他人が出した答えが正しいかどうかを確かめるのは簡単です。

たとえるなら、「7 を掛けたとき末尾がちょうど 843,792,461 になる数字を探して」と言われたら、あなたは何百万通りも試す必要があります。でも「答えは 120,541,780 だよ」と教えられれば、数秒で正しさを確認できます。

15 年が経っても、ビットコインへの攻撃は誰も成功させていません。実戦で鍛え抜かれている(battle-tested)わけです。ただし弱点もあります。アルゼンチン一国に匹敵するほどの電力を消費します(誇張ではありません)。しかも処理速度は 1 秒あたり 7 件ほどしかありません。

Proof of Stake(PoS):ステーキングによる合意

2017 年ごろ、人々は「一国分の電力を燃やさずに済む方法はないか?」と考え始めました。

CardanoEthereum 2.0、そしてより新しいブロックチェーンは Proof of Stake を使います。

Proof of Stake のやり方は違います。計算力で競うのではなく、バリデーター(validator)が暗号資産を担保(collateral)として預けます。いわば「敷金」です。次のブロックを追加できる人はシステムがランダムに選びますが、多く預けている(ステークしている)ほど選ばれる確率が高くなります。

もし不正をしようとすると、預けた資産を失います。これをスラッシング(slashing)と呼び、しかも自動です。偽の取引を承認しようとすれば、コードがあなたのお金を取り上げます。裁判も上訴もありません。

これは純粋に経済の力で動いている点が見事です。ネットワークを攻撃しようとすれば、その過程で自分自身の大金を失うことになります。「イカサマをした瞬間に自分の口座が空になるカジノ」のようなものです。

面白いのは、エネルギー消費が 99% も少ないこと。取引の確定(ファイナライズ)も速い。ただし、たくさん預けられる裕福なバリデーターほど影響力が大きくなるという側面もあります。また PoW より新しいぶん、実戦での検証はまだ浅めです。

Byzantine Fault Tolerance(BFT)系

BFT はそれ自体がコンセンサスの仕組みではありません。PoW にも PoS にも備わりうる「性質」です。意味は、一部の参加者が悪意を持っていたり壊れていたりしても、システムが正しく動き続けること。

この名前は古いパズルに由来します。ある都市を取り囲むビザンチン帝国の将軍たちが、攻撃のタイミングを合わせたい。でも一部の将軍は裏切り者で、偽の伝令を送ってくるかもしれない。忠実な将軍たちは、どうやって合意にたどり着けるか? これが「ビザンチン将軍問題(Byzantine Generals Problem)」です。

ブロックチェーンが直面するのもまさにこれです。一部のノードは壊れているかもしれないし、乗っ取られているかもしれないし、悪意を持っているかもしれない。BFT とは、そんな「悪い参加者」がいてもシステムが動き続けることを指します。

ビザンチン将軍問題の図。将軍たちが「攻撃/退却」を伝え合い、裏切り者がいても、障害ノードが全体の1/3以下なら(多数が一致すれば)合意が成立する=BFT

多くのブロックチェーンは、ノード全体のうち最大 3 分の 1 までが悪意を持っていたり壊れていたりしても、問題なく動き続けられます。なぜ 3 分の 1 なのか? その理由は頭が痛くなるような数学ですが、ここでは「ちゃんと成り立つ」とだけ覚えておけば十分です。

実用的な BFT 系のコンセンサスアルゴリズム(PBFTTendermint、そして Cardano の Ouroboros の一部の側面など)は、ノード同士の投票を何ラウンドか調整して行うことでブロックに合意します。

BFT 系のコンセンサスは、しばしば速いファイナリティ(一度ブロックが確定したら、それが最終)をもたらします。プライベートチェーンやコンソーシアム(共同運営型)チェーン、さらにいくつかの新しいパブリックチェーンでよく使われます。名前は難しそうですが、具体例に踏み込むときに、実際の動き方を見ていきます。

ブロック・ノード・改ざん耐性(Blocks, Nodes, and Immutability)

「ブロックチェーン」という名前は、データの保存のしかたから来ています。データをブロック(block)というまとまりにして、それを時系列のチェーン(chain)としてつなげていくのです。各ブロックには、最近の取引のリストと、1つ前のブロックへの参照(暗号学的ハッシュ)が入っています。

「暗号学的ハッシュ(cryptographic hash)」が難しく聞こえるなら、いまは「そのデータ専用の指紋(fingerprint)」だと考えてください。実際の暗号の中身は、後のレッスン(Cryptography)で扱います。

各ブロックが持つものは、(1) 取引のまとまり、(2) 1つ前のブロックのハッシュ(指紋)、(3) 自分自身のハッシュ、の3つです。古い取引の文字を1つ変えただけでも、そのブロックのハッシュが変わります。すると次のブロックとのつながりが壊れ、さらにその次のブロックとのつながりも壊れる——という連鎖が起きます。

チェーン全体が崩れ、ネットワーク内のすべてのノードが、あなたが不正をしようとしていることに即座に気づきます

改ざんの試みと正常なチェーンの比較図。1つのブロックを改ざんするとハッシュが一致しなくなり、以降のチェーンが壊れてネットワークが検知する。正常な場合は各ブロックのハッシュが前のブロックと一致して連なる

しかも、まだ続きがあります。歴史を書きかえるには、次のすべてを成し遂げなければなりません。

  • その取引を書きかえる
  • そのブロックのハッシュを計算し直す
  • そのブロックの Proof of Work をやり直す
  • その後ろのすべてのブロックの Proof of Work もやり直す
  • これを世界中のノードの過半数で行う
  • しかも新しいブロックが追加されるより速くやる

ビットコインの場合、これを成功させるには、いくつもの大国を合わせたよりも多い計算力が必要になります。これが改ざん耐性(immutability)という言葉の意味です。いったんブロックチェーンに刻まれたものは、基本的に永遠にそこに残ります。お金のための、消えない記録だと考えてください。

開発者として押さえる点

  • 分散化=単一障害点(落ちたら全停止する1点)が無い。信用するのは特定の1台ではなく「数学」と「多数の独立ノード」
  • コンセンサスはチェーンごとに違う。PoW(計算力で競う・堅牢だが高消費電力・低速)/ PoS(担保を預ける・低消費電力・速い・slashing で不正を罰する)を区別する
  • BFT は仕組みではなく性質。PoW/PoS どちらにも乗りうる。一般に最大 1/3 の悪意・故障ノードまで耐える。PBFT・Tendermint・Ouroboros が代表例で、速いファイナリティが得られやすい
  • ブロックは前ブロックのハッシュで連結される。古いデータを1文字でも変えるとハッシュが変わり、以降のリンクが全部壊れて即バレる=改ざん耐性の根拠
  • 「永久に残る」前提で設計する。いったん刻まれた記録は取り消せない

やさしい版・公式へ

つぎに読むページ

➡️ 原文準拠コースの入口へ戻る。このコースについて(次のレッスンは順次追加します)