暗号リプレイ攻撃

従来のネットワークリプレイ攻撃は、ネットワークを介したデータ送信が不正にまたは悪意を持って遅延または繰り返される場合です。これは「中間者」攻撃の一形態であり、意図したものとは異なるコンテキストでメッセージまたはデータ送信を再生するために使用できます。.

暗号通貨内では、リプレイ攻撃には特定の意味があり、さまざまな暗号通貨プロトコルのハードフォークに関連しています。リプレイ保護は業界では一般的であり、一般的であるはずですが、歴史的には常にそうであるとは限らず、将来のハードフォークプロトコルはそれを実装しないことを選択する可能性があります.

暗号通貨に関連してリプレイ攻撃がどのように機能するかを理解するには、最初にビットコインなどの一般的な暗号通貨プラットフォーム内のトランザクションがどのように機能するかについての基本的な理解が必要です.

暗号リプレイ攻撃

分散型台帳とハードフォーク+

ビットコインなどの暗号通貨は、参加しているすべてのノードに存在するグローバルな分散型デジタル台帳として機能します。各フルノードは、ビットコインの履歴にあるすべてのトランザクションを含む元帳全体のコピーを保持します。ビットコインの元帳も透過的です。つまり、すべてのトランザクションの送信アドレスと受信アドレス、および転送された金額がパブリックレジャーに表示されます。.

ビットコイン台帳は、ネットワーク内に1つのユニバーサル台帳として存在します。つまり、すべてのコピーがまったく同じです。ノードアプリケーションを実行するソフトウェアは、基盤となるビットコインプロトコルであり、すべてのネットワークのノードのユニバーサルプロトコルとしても存在します。.

暗号通貨プロトコル内でハードフォークが発生すると、リプレイ攻撃が関連するようになります。基本的に、プロトコルは新しいアップグレードされたバージョンにフォークされ、新しい開発者チームは最初のプロトコルと元帳のより良い反復と見なします。したがって、プロトコルと後続の元帳の間に分割があり、2つの別々のプロトコルによって管理される2つの元帳が作成されます.

これの最も良い例は、ビットコインとビットコインキャッシュです。 2017年8月1日、ビットコインキャッシュの開発者はビットコインプロトコルをハードフォークしました。従来のビットコインチェーンを継続したいすべてのユーザーは、ソフトウェアをビットコインキャッシュプロトコルにアップグレードしないことを選択し、ビットコインキャッシュチェーンに参加したいすべてのユーザーは、ソフトウェアをアップグレードしてビットコインキャッシュネットワークに参加しました。その結果、元のビットコイン元帳と新しいビットコインキャッシュ元帳が残っていました.

ビットコインキャッシュガイド

ビットコインキャッシュのガイドを読む

それらはフォークの日付までのまったく同じ元帳履歴を共有しますが、それ以降は異なるトランザクション元帳を持つ2つの別個のチェーンとして存在します。それで、あなたは尋ねているかもしれません、ハードフォークがある場合、私が保持している私のビットコインはどうなりますか?ハードフォークの前にビットコインを所有していた場合は、BTCも保持しながら、最初にビットコインを所有していたのと同じ金額のビットコインキャッシュを受け取りました。たとえば、アリスがハードフォークの前に5 BTCを所有していた場合、フォークの後、彼女は5 BTCを保持し、ビットコインキャッシュチェーンで追加の5BCHを受け取ります。信じられないかもしれませんが、無料のお金は存在します(人々は、結果として生じる市場価値は分割の結果としてバランスが取れると言いましたが、それは実際には起こりませんでした).

リプレイアタックとは?

リプレイ攻撃は、ハードフォークと、フォークされたチェーン上のトークンの複製を利用します。正直なユーザーにとっての問題は、一方のチェーンにお金を使いたいが、もう一方のチェーンにはお金をかけたくない場合に発生します。たとえば、アリスは1 BTCをオンラインで使いたいが、同時に1BCHを使いたくないとします。.

リプレイ攻撃の機会は、アリスがレガシーチェーンから1BTCを費やしたときに発生します。 BTCトランザクションに添付されたデジタル署名はBCHチェーンでも同じであるため、他の誰かがアリスの署名を複製してBCH元帳トランザクションに含めることができます。基本的に、他の誰かがあなたのお金を他のチェーンに使うことができます。ただし、リプレイ攻撃が機能するには、トランザクションで使用される正確な量とアドレスが同じである必要があります。同じでない場合、デジタル署名は機能しません。.

トランザクションアドレスと転送金額の両方を同じにする必要があるため、奇妙な形の攻撃に見えるかもしれませんが、オンライン支払いに関連するいくつかのより複雑な問題につながる可能性があります。したがって、リプレイ攻撃に対する簡単な保護は、そもそもリプレイ攻撃に対して脆弱な暗号通貨を費やすことではありません。これは不便な解決策ですが、それでも機能します。リプレイ保護が暗号通貨ハードフォークで提供されていない場合、ほとんどのハードウォレットサービスは、ほこりが落ち着き、リプレイ保護を含む新しいフォークの問題が解決されるまで、コインを使わないことをお勧めします.

ビットコインフォーク

ビットコインフォークのガイドを読む

例とリプレイ保護

リプレイプロテクションの実装は非常に簡単であり、この時点では一般的であり、基本的にハードフォークチェーンの必須条件です。ビットコインキャッシュは、ビットコインキャッシュノードがレガシービットコインチェーンで費やされたトランザクションをビットコインキャッシュチェーンから独立しているものとして区別できるようにする独自のマーカーを実装することにより、チェーンのリプレイ保護を作成しました.

BCHチェーン上のトランザクションを特別なマークで識別することにより、レガシービットコインノードは同様にBCHトランザクションを無効として拒否します。ビットコイン/ビットコインキャッシュの分割は、分割前にリプレイ保護を正常かつ意図的に実装したハードフォークを表します.

特に、かつて計画され、非常に物議を醸したSegWit2Xビットコインハードフォークの提案には、リプレイ保護が含まれていませんでした。代わりに、彼らは、ビットコインコアチームが懸念事項であると考えた場合、リプレイ保護を実装することを要求しました。明らかに、SegWit2Xチームは、計画されていたフォークが最終的にキャンセルされ、リプレイ保護を実装する意欲がないことで広く批判されたため、これはうまくいきませんでした。.

ビットコインキャッシュがリプレイ保護を実装するために採用した戦略以外に、使用している暗号通貨がリプレイ保護を提供しない場合に、ユーザーがリプレイ攻撃を軽減するのに役立つ戦略がいくつかあります。.

まず、コインミキシングサービスを使用して、1つのチェーンでのみ有効でフォークされたチェーンでは再生できないCoinbaseトランザクションとトランザクションを混合できます。ただし、この戦略では、サービスを中心に独自の懸念があるサードパーティのコインミキシングサービスを使用する必要があるため、慎重に使用してください.

次に、両方のチェーンに2つの別々の秘密鍵のセットを使用するようにしてください。さらに、独自の分割サービスを実装している取引所にコインを送ることができ、取引所があなたに代わってそれを処理します。これは、ユーザーがShapeshift SplitterとPoloniexの両方を使用してコインを分割し、リプレイ保護を提供できるETH / ETCハードフォークで発生しました。.

結論

リプレイ攻撃は、実際には分散ブロックチェーンシステムにのみ関連します。ハードフォークがリプレイ保護を提供しないか、フォークの後に実装するのが遅れている場合です。コンセプトは、ビットコインの提案されたSegWit2Xハードフォークの直前に主流の沸点に達しました。彼らはそれを実装しないと公に発表したからです。.

現在、ハードフォークにリプレイ保護を実装することは、ユーザーを保護するための新しいチェーンの基本コンポーネントである必要があります。そうしないと、フォークされたネットワークを使用しても安全でないと感じます。 2017年末に見られた熱狂で注目を集めるハードフォークが続くかどうかはまだわかりませんが、そうであれば、リプレイ攻撃の問題が再び非常に重要になることは間違いありません。.