プルーフ・オブ・ワーク (PoW)
イーサリアムネットワークは、**プルーフ・オブ・ワーク (PoW)**を伴うコンセンサス・メカニズムを使用して始まりました。これにより、イーサリアムネットワークのノードは、イーサリアムブロックチェーンに記録されたすべての情報の状態についてコンセンサスを得ることができ、特定の種類の経済的攻撃を防ぐことができました。しかし、イーサリアムは2022年にプルーフ・オブ・ワークを停止し、代わりにプルーフ・オブ・ステーク (PoS)を使用し始めました。
前提知識
このページをよりよく理解するために、まずはトランザクション、ブロック、およびコンセンサス・メカニズムについて読むことをお勧めします。
プルーフ・オブ・ワーク (PoW) とは?
プルーフ・オブ・ワークを利用するナカモト・コンセンサスは、かつて分散型イーサリアムネットワークがアカウント残高やトランザクションの順序などについてコンセンサスに達する(つまり、すべてのノードが同意する)ことを可能にしたメカニズムです。これにより、ユーザーがコインを「二重支払い」するのを防ぎ、イーサリアムチェーンを攻撃したり操作したりすることが非常に困難になることが保証されました。これらのセキュリティ特性は現在、Gasperとして知られるコンセンサス・メカニズムを使用するプルーフ・オブ・ステークによって提供されています。
プルーフ・オブ・ワークとマイニング
プルーフ・オブ・ワークは、プルーフ・オブ・ワークのブロックチェーン上でマイナーが行う作業の難易度とルールを設定する基盤となるアルゴリズムです。マイニングは「作業」そのものです。それは有効なブロックをチェーンに追加する行為です。チェーンの長さは、ネットワークがブロックチェーンの正しいフォークをたどるのに役立つため、これは重要です。行われた「作業」が多いほど、チェーンは長くなり、ブロック番号が大きくなるほど、ネットワークは現在の状態をより確信できるようになります。
イーサリアムのプルーフ・オブ・ワークはどのように機能したか?
イーサリアムのトランザクションはブロックに処理されます。現在非推奨となっているプルーフ・オブ・ワークのイーサリアムでは、各ブロックに以下が含まれていました。
- ブロック難易度 – 例: 3,324,092,183,262,715
- mixHash – 例:
0x44bca881b07a6a09f83b130798072441705d9a665c5ac8bdf2f39a3cdf3bee29 - ナンス – 例:
0xd3ee432b4fb3d26b
このブロックデータはプルーフ・オブ・ワークに直接関連していました。
プルーフ・オブ・ワークにおける作業
プルーフ・オブ・ワークのプロトコルであるイーサッシュは、ブロックのナンスを見つけるために、マイナーに試行錯誤の激しい競争を勝ち抜くことを要求しました。有効なナンスを持つブロックのみがチェーンに追加できました。
ブロックを作成する競争において、マイナーは(マイナーが行うように)完全なチェーンをダウンロードして実行することでのみ取得できるデータセットを、数学的関数に繰り返し通しました。このデータセットは、ブロック難易度によって決定されるターゲットを下回るmixHashを生成するために使用されました。これを行う最善の方法は試行錯誤です。
難易度はハッシュのターゲットを決定しました。ターゲットが低いほど、有効なハッシュのセットは小さくなります。一度生成されると、他のマイナーやクライアントがこれを検証するのは非常に簡単でした。1つのトランザクションが変更されただけでも、ハッシュは完全に異なり、不正を示します。
ハッシュ化により、不正を簡単に見つけることができます。しかし、プロセスとしてのプルーフ・オブ・ワークは、チェーンへの攻撃に対する大きな抑止力でもありました。
プルーフ・オブ・ワークとセキュリティ
マイナーは、メインのイーサリアムチェーンでこの作業を行うようにインセンティブを与えられていました。一部のマイナーが独自のチェーンを開始するインセンティブはほとんどありませんでした。それはシステムを弱体化させるからです。ブロックチェーンは、信頼できる情報源として単一の状態を持つことに依存しています。
プルーフ・オブ・ワークの目的は、チェーンを拡張することでした。最も長いチェーンは、それを生成するために最も多くの計算作業が行われたため、有効なものとして最も信頼できました。イーサリアムのPoWシステム内では、トランザクションを消去したり、偽のトランザクションを作成したり、2番目のチェーンを維持したりする新しいブロックを作成することはほぼ不可能でした。なぜなら、悪意のあるマイナーは、常に他の誰よりも早くブロックのナンスを解決する必要があったからです。
悪意のある、しかし有効なブロックを一貫して作成するには、悪意のあるマイナーは他の全員を打ち負かすためにネットワークのマイニング能力の51%以上を必要としたでしょう。それだけの「作業」には多くの高価な計算能力が必要であり、消費されるエネルギーは攻撃で得られる利益を上回っていたかもしれません。
プルーフ・オブ・ワークの経済学
プルーフ・オブ・ワークはまた、システムに新しい通貨を発行し、マイナーに作業を行うインセンティブを与える役割も担っていました。
コンスタンティノープル・アップグレード以降、ブロックの作成に成功したマイナーには、新しく発行された2 ETHとトランザクション手数料の一部が報酬として与えられました。オマーブロック(Ommer blocks)も1.75 ETHの報酬を与えました。オマーブロックとは、あるマイナーが正規のブロックを作成したのとほぼ同時に別のマイナーによって作成された有効なブロックのことであり、最終的にはどちらのチェーンが先に構築されたかによって決定されました。オマーブロックは通常、ネットワークの遅延によって発生しました。
ファイナリティ
トランザクションは、変更できないブロックの一部になったときに、イーサリアム上で「ファイナリティ」を持ちます。
マイナーは分散型の方法で作業していたため、2つの有効なブロックが同時にマイニングされる可能性がありました。これにより、一時的なフォークが作成されます。最終的に、後続のブロックがマイニングされて追加され、より長くなった後、これらのチェーンの1つが受け入れられたチェーンになりました。
さらに複雑なことに、一時的なフォークで拒否されたトランザクションは、受け入れられたチェーンに含まれていなかった可能性があります。これは、それが取り消される可能性があることを意味します。したがって、ファイナリティとは、トランザクションが不可逆的であると見なす前に待つべき時間を指します。以前のプルーフ・オブ・ワークのイーサリアムでは、特定のブロック N の上にマイニングされるブロックが多いほど、N 内のトランザクションが成功し、元に戻されないという確信が高まりました。現在、プルーフ・オブ・ステークでは、ファイナライズはブロックの確率的ではなく明示的な特性です。
プルーフ・オブ・ワークのエネルギー使用量
プルーフ・オブ・ワークに対する主な批判は、ネットワークを安全に保つために必要なエネルギー出力の量です。セキュリティと分散化を維持するために、プルーフ・オブ・ワーク上のイーサリアムは大量のエネルギーを消費しました。プルーフ・オブ・ステークに切り替える直前、イーサリアムのマイナーは全体で年間約70 TWhを消費していました(2022年7月18日のdigiconomist (opens in a new tab)によると、チェコ共和国とほぼ同じです)。
メリットとデメリット
| メリット | デメリット |
|---|---|
| プルーフ・オブ・ワークは中立です。開始するためにETHは必要なく、ブロック報酬により0 ETHからプラスの残高にすることができます。プルーフ・オブ・ステークでは、開始するためにETHが必要です。 | プルーフ・オブ・ワークは非常に多くのエネルギーを消費するため、環境に悪影響を及ぼします。 |
| プルーフ・オブ・ワークは、ビットコインとイーサリアムを長年にわたって安全かつ分散型に保ってきた、実証済みのコンセンサス・メカニズムです。 | マイニングを行いたい場合、非常に専門的な機器が必要となるため、開始するための投資が大きくなります。 |
| プルーフ・オブ・ステークと比較して、実装が比較的簡単です。 | 必要な計算量が増加しているため、マイニングプールがマイニングゲームを支配する可能性があり、中央集権化やセキュリティリスクにつながる恐れがあります。 |
プルーフ・オブ・ステークとの比較
高いレベルで見ると、プルーフ・オブ・ステークはプルーフ・オブ・ワークと同じ最終目標を持っています。それは、分散型ネットワークが安全にコンセンサスに達するのを助けることです。しかし、プロセスと参加者にはいくつかの違いがあります。
- プルーフ・オブ・ステークは、計算能力の重要性をステークされたETHに置き換えます。
- プルーフ・オブ・ステークは、マイナーをバリデータに置き換えます。バリデータはETHをステークして、新しいブロックを作成する機能を有効にします。
- バリデータはブロックを作成するために競争するのではなく、アルゴリズムによってランダムに選ばれます。
- ファイナリティがより明確です。特定のチェックポイントで、バリデータの2/3がブロックの状態に同意した場合、それはファイナライズされたと見なされます。バリデータはこれにステーク全体を賭けなければならないため、後で共謀しようとすると、ステーク全体を失うことになります。