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

Proof of Work (PoW)とは

概要

Proof of Work (PoW) は、リクエストの送信者に一定量の計算処理を要求することで、大量リクエストのコストを引き上げる技術である。ビットコインのマイニングで広く知られるが、Web サービスのスパム対策としても応用されている。人間が 1 件の質問を送る場合は気づかない程度の計算量だが、Bot が数千件を送ろうとすると膨大な計算リソースが必要になり、攻撃の費用対効果が著しく悪化する。

仕組み

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

N の値 (難易度) を調整することで、計算にかかる時間をコントロールできる。質問箱サービスでは、一般的なスマートフォンで 0.5-2 秒程度で解ける難易度に設定し、ユーザー体験を損なわずに Bot を抑止する。

CAPTCHA との違い

CAPTCHA は人間と Bot を視覚的なテスト (画像認識、文字入力) で区別する技術である。PoW は計算コストで区別する。CAPTCHA はユーザーに明示的な操作を要求するため、ユーザー体験を損なう。特にモバイル環境では画像の選択操作が煩雑で、離脱率の上昇につながる。

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

ブロックチェーンや暗号技術の仕組みを学びたい方は、暗号技術の関連書籍も参考になります。

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

関連用語

関連記事

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

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

無料で始める