メインコンテンツへスキップ
Change page

プルーフ・オブ・ワーク(PoW)

最終編集者: @HiroyukiNaito(opens in a new tab), 2023年12月8日

イーサリアムのネットワークは、プルーフ・オブ・ワーク(PoW)という合意メカニズムを使用して始まりました。 このメカニズムにより、イーサリアムネットワークのノードは、ブロックチェーンに記録されたすべての情報に関してネットワーク全体で合意を取り、特定の種類の経済的な攻撃を防ぎました。 しかしながら、イーサリアムは 2022 年にプルーフ・オブ・ワーク(PoW)を停止し、これに代わるプルーフ・オブ・ステーク(PoS)の使用を開始しました。

現在、プルーフ・オブ・ワークは廃止されています。 イーサリアムの合意メカニズムにはプルーフ・オブ・ワークではなく、 現在はプルーフ・オブ・ステークが採用されています。 詳細については、プルーフ・オブ・ステークステーキングを参照してください。

前提条件

このページをよく理解するためには、まずトランザクションブロック、および合意メカニズムについて読むことをお勧めします。

プルーフ・オブ・ワーク(PoW)とは

ナカモトコンセンサスはプルーフ・オブ・ワークを利用した旧メカニズムで、分散型のイーサリアムネットワークが、アカウント残高やトランザクションの順序などについてコンセンサス(例: すべてのノードが合意すること)を得ることを可能にしました。 加えてユーザーのコインの「二重支出」を防ぎ、イーサリアムチェーンの攻撃や改ざんを非常に困難なものにしました。 これらのセキュリティは現在、Gasperとして知られる合意メカニズムを用いたプルーフ・オブ・ステークによりもたらされています。

プルーフ・オブ・ワークとマイニング

プルーフ・オブ・ワーク(PoW)は、プルーフ・オブ・ワークのブロックチェーン上のマイニング難易度とルール設定の基礎となるアルゴリズムです。 マイニングとは「ワーク(作業)」そのもので、 チェーンに有効なブロックを追加する行為です。 チェーンの長さがブロックチェーンの正しいフォークを選択する上で使われるため、マイニングは重要な作業となります。 より多くの「ワーク」が完了すると、チェーンが長くなりブロック番号が上がり、ネットワークが現在の状況に確信をより持てるようになります。

マイニングの詳細

イーサリアムのプルーフ・オブ・ワークの仕組み

イーサリアムトランザクションがブロックへと処理されます。 現在廃止されているプルーフ・オブ・ワークのイーサリアムでは、ブロックには以下の情報が含まれていました。

  • 難易度 - 例: 3,324,092,183,262,715
  • mixHash – 例: 0x44bca881b07a6a09f83b130798072441705d9a665c5ac8bdf2f39a3cdf3bee29
  • nonce – 例: 0xd3ee432b4fb3d26b

このブロックデータは、プルーフ・オブ・ワーク(PoW)に直接由来していました。

プルーフ・オブ・ワークの詳細

プルーフ・オブ・ワークのプロトコルである Ethash では、有効なノンスを持つブロックのみがチェーンに追加され、マイナーはブロックを生成するノンスを見つけるためにトライ&エラー(試行錯誤)を繰り返し、マイナー間の激しい競争を必要としました 。

ブロック生成の競争において、マイナーはフルチェーンをダウンロードして実行することによってのみ得られるデータセットを、数学的な関数を用いて計算を実行し、繰り返し送りました。 このデータセットは、ブロックの難易度によって決まるターゲットを下回る mixHash の生成に使用されました。 これを行うには、トライ&エラーの繰り返しになります。

難易度はハッシュのターゲット値の大きさを決定し、 ターゲットが小さいほど、有効なハッシュのセットは小さくなります。 一度ブロックが生成されると、他のマイナーやクライアントは驚くほど簡単にブロックを検証できました。 たとえ 1 つのトランザクションが変更された場合でも、ハッシュが全く異なり、不正が明らかになりました。

まとめると、ハッシュはトランザクションの改竄の発見を容易にします。 また、プロセスとしてのプルーフ・オブ・ワークは、チェーンに対する攻撃への大きな抑止力にもなりました。

プルーフ・オブ・ワークとセキュリティ

イーサリアムのメインチェーンでマイニングを行うインセンティブがマイナーに支払われました。 システムを弱体化させてしまうため、マイナーが独自のチェーンを始めることに対するインセンティブはほとんどありませんでした。 ブロックチェーンは、ある単一の状態が真実であることに依存します。

プルーフ・オブ・ワークは、チェーンを拡張することを目的としました。 最も長いチェーンは、最も計算が行われたチェーンであるため、最長のチェーンが有効なチェーンとして最も信頼を置くことができました。 イーサリアムのプルーフ・オブ・ワーク(PoW)システムでは、トランザクションを消去するブロックの作成、不正なブロックの作成、または別のチェーンを維持することはほぼ不可能でした。 これは改ざんを行おうとすると、悪意のあるマイナーが常に他の誰よりも速くブロックノンスを解決しなければならなかったためです。

悪意のあるブロックを有効なものとして、一貫して作成するためには、悪意を持ったマイナーは他のマイナーに勝つ必要があります。そのためには、ネットワークのマイニングパワーの 51%以上が必要でした。 その「ワーク」量には、多くの高価な計算能力が必要であり、それに費やされるエネルギーは、攻撃で得られる利益を上回る可能性さえありました。

プルーフ・オブ・ワークの経済

また、プルーフ・オブ・ワークは通貨を新規発行し、マイナーにインセンティブを与えていました。

コンスタンティノープルアップグレード以降、ブロックの生成を正常に行ったマイナーには、新たにミントされた 2 ETH とトランザクションフィーの一部が報酬として支払われました。 また、Ommer ブロックの場合には、1.75 ETH を補償しました。 Ommer ブロックとは、あるマイナーが有効ブロックを生成したのとほぼ同時に、違うマイナーが有効なブロックを生成したことを指します。最終的にはどのチェーンが先端に入るかが決定されました。 この Ommer ブロックは、通常ネットワークの遅延が原因で起こりました。

ファイナリティ

イーサリアムでは、トランザクションが変更不可能なブロックの一部になると、「ファイナリティ」に達します。

マイナーは分散して作業するため、2 つの有効なブロックが同時にマイニングされることがありました。 これは一時的なフォークを作成します。 最終的には、これらのチェーンの内の 1 つが容認されたチェーンとなり、後続のブロックがマイニングされて追加され、チェーンが長くなっていきました。

さらに複雑なことに、一時的なフォークで拒否されたトランザクションが、容認されたチェーンの方に含まれていない可能性がありました。 これはトランザクションが取り消される可能性があることを意味します。 そのため、ファイナリティとは、トランザクションを取り消し不可能と見なすまでに待機する時間を指します。 以前のプルーフ・オブ・ワークのイーサリアムでは、特定のブロックNの上に多くのブロックをマイニングすればするほど、Nのトランザクションが成功し、元に戻されなくなり、より高い信頼性を得られました。 現在のプルーフ・オブ・ステークではファイナリティは確率的なものではなく、明示的で、ブロックのプロパティによりファイナリティに至ります。

プルーフ・オブ・ワークのエネルギー使用

ネットワークを安全に保つために必要なエネルギー量は、プルーフ・オブ・ワークが批判を受ける大きな要因です。 セキュリティと分散化を維持するために、プルーフ・オブ・ワークのイーサリアムは多量のエネルギーを消費しました。 イーサリアムは、プルーフ・オブ・ステークに移行する少し前、マイナーによる年間消費電力量が合計で年間約 70 TWh に達していました(2022 年 7 月 18 日のdigiconomist(opens in a new tab)によるとチェコ共和国の年間消費電力量とほぼ同等) 。

メリットとデメリット

メリットデメリット
プルーフ・オブ・ワークは中立。 開始時に ETH は必要なく、ブロック報酬により残高が 0 ETH から増える。 プルーフ・オブ・ステークでは、最初に ETH が必要。プルーフ・オブ・ワークはエネルギーを大量に消費するため、環境への悪影響がある。
プルーフ・オブ・ワークは、長年にわたって、ビットコインやイーサリアムを安全性と分散性を維持してきた十分にテスト・試行された合意メカニズム。マイニングをしたい場合は、専門機器が必要となり、始めるにあたって多額の投資が必要。
プルーフ・オブ・ステークと比較すると、実装が比較的容易。必要な計算量が増えるため、マイニングプールがマイニングゲームを支配する可能性があり、集中化とセキュリティのリスクにつながる。

プルーフ・オブ・ステークとの比較

プルーフ・オブ・ステークは、プルーフ・オブ・ワーク同様、分散型ネットワークが安全にコンセンサスを得られるようにするという共通の目的があります。 しかし、プロセスと役割にはいくつかの違いがあります。

  • プルーフ・オブ・ステークにより、計算能力の重要性が ETH のステーキングへと移行する。
  • プルーフ・オブ・ステークにより、マイナーはバリデータに代わり、 バリデータは ETH をステークすることで、新しいブロックを作成できる。
  • ブロック作成におけるバリデータ間の競争がなくなり、アルゴリズムがバリデータをランダムに選択。
  • ファイナリティがより明確になり、特定のチェックポイントで、2/3 のバリデータがブロックの状態に合意した場合、最終とみなされる。 バリデータはこの合意に自身のステーキングすべてを賭ける必要があり、共謀しようとすると、ステーキング全額を失うことになる。

プルーフ・オブ・ステークの詳細

映像で学びたい人向け

参考文献

ビデオ

この記事は役に立ちましたか?