リプレイプロテクションについて
今回は、リプレイアタックの対策として知られるリプレイプロテクションについて簡単に書いてみたいと思います。
リプレイアタックとは
ハードフォーク後の新旧チェーンどちらにも共通の秘密鍵が使用されることを悪用して、トランザクションをコピーする攻撃のことです。
(詳しくは過去記事を参照ください。)
リプレイプロテクションとは
リプレイプロテクションとは、リプレイアタックの対策として用いられるもので、新旧チェーンのトランザクションをそれぞれ別物として明確に区別する技術です。
こうすることで、攻撃者がトランザクションをコピーしても承認はされず攻撃は防がれます。
リプレイプロテクションの例
SIGHASH_FORK_ID
電子署名型のリプレイプロテクションで、ビットコインキャッシュに実装されているものとして知られています。Sighash Typeというトランザクションのパラメータにそれぞれ固有の番号を入れます。ビットコインキャッシュの場合、BTCには番号は空白で、BCHには0が付されています。
固有の番号に対応しているトランザクションだけを、それぞれのチェーンは承認するのでリプレイアタックは不可能になります。
Opt-in Replay Protection
リプレイプロテクションを有効にするには特定の作業(手数料の支払い)を必要とする、選択可能なタイプです。
旧チェーンでの特定のビットコインアドレス(ブラックリストアドレス)に送金した記録を用いて、トランザクションを区別します。
旧チェーンでブラックリストアドレスへの送金記録のあるアドレスは区別され、そのトランザクションは新チェーンでコピーされても承認されないという仕組みです。
まとめ
もう少し詳しく調べたい。。。