メインコンテンツへスキップ
Q どろっぷ
不正対策

Proof of Work (PoW) とは

概要

Proof of Work (PoW) は、リクエストの送信者に一定量の計算処理を要求することで、大量リクエストのコストを引き上げる技術である。ビットコインのマイニングで広く知られるが、Web サービスのスパム対策としても応用されている。人間が 1 件の質問を送る場合は負担にならない程度の計算量に留める一方、Bot が多数の送信を試みる場合は必要な計算量が積み上がり、攻撃の費用対効果が下がる方向に働く。

仕組み

PoW の基本的な仕組みは、サーバーが「チャレンジ」と呼ばれるランダムな文字列を発行し、クライアントがそのチャレンジに対して特定の条件を満たす「ナンス」(nonce) を見つけることである。たとえば「チャレンジ + ナンスの SHA-256 ハッシュ値が、先頭 N ビットゼロになる」という条件を設定する。

N の値 (難易度) を調整することで、計算にかかる時間をコントロールできる。人間の 1 回の送信では体感しにくい程度に難易度を調整し、ユーザー体験への影響を抑えながら Bot を抑止する。

CAPTCHA との違い

CAPTCHA は人間と Bot を視覚的なテスト (画像認識、文字入力) で区別する技術である。PoW は計算コストを課す。CAPTCHA はユーザーに明示的な操作を要求するため、その分の手間がユーザー側に発生する。モバイル環境では画像の選択操作の負担が大きくなり、送信の途中で離脱する要因になり得る。

PoW はバックグラウンドで自動実行されるため、ユーザーに明示的な操作を求めない。ただし、PoW は「人間か Bot か」を判定するのではなく「大量リクエストを非合理にする」技術であるため、少数の手動による嫌がらせには効果が限定的である。そのため、ハニーポットやレートリミットと組み合わせる多層防御の設計がとられる。

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

関連用語

関連記事

あなたも質問箱を作ってみませんか?

メールアドレスだけで登録でき、パスワード不要で始められます。

無料で始める