Proof of Work
概要
Proof of Work (PoW) はサービス要求者に何らかの作業を強制することによって DoS 攻撃やスパムメールの送信といった悪意のあるコンピューティング能力を使用を防止する実用上の対策である。通常 Work はコンピュータの計算資源を使った処理時間を指しており、サービス要求者がその作業を達成することが極めて困難、かつ、確かに達成したことを第三者によって容易に検証しうるという非対称性をもつ。
- チャレンジ-レスポンスプロトコル
- クライアントからの要求を受けたサーバがチャレンジ (問題) を返信し、要求者はその解答をサーバに送信することで目的のサービスを得られるプロトコル。チャレンジの難解さをサービス提供側の負荷要求に合わせて都度調節ができる。
- 解法検証プロトコル
この概念は 2004 年に Hal Fanney によって "reusable proof of work" というアイディアの基に通貨に適用された。2009 に導入された Bitcoin はこのアイディアの広く採用させた適用例となった。現在では Proof of Work は他の多くの暗号通貨の基礎技術となっている。
Bitcoin の Proof of Work
ネットワーク上のトランザクションのうちまだブロックチェーンに取り込まれていないものをまとめて新しいブロックを生成する。
Bitcoin の場合、ブロックは以下の情報を入力都市、ターゲットよりも小さいハッシュ値を生成する nonce を探す。
- 前のブロックのハッシュ値
- 新しく作成するブロックのトランザクションハッシュツリールートのハッシュ値
- これから求めるハッシュ値のターゲット (目標値)
ターゲットが小さいほど nonce の特定には時間がかかる。ターゲットの難度は過去の難度と実際の nonce 特定にかかった時間から導出され、ブロックの生成が概ね 10 分となるように見積もられる。難度は 2016 ブロックごとに再設定される。
参考文献
- Fabien Coelho (2005) Exponential Memory-Bound Functions for Proof of Work Protocols