Mtgoxの引き出しの遅れと一般的な騒ぎにつながったBitcoinプロトコルの機能

MtGoxは、ビットコインプロトコルの「問題」により、BTCの撤回が遅れたため、原因が修正されるまですべての支払いを停止しなければならないと述べました。 www.mtgox.com/press_release_20140210.html



迅速な回答が必要な場合-ビットコイン自体に間違いはありません。 あなたはBitstamp / Coinbase / btc-eに行き、レートが800ドルから900ドルに戻る前に大きな割引でBTCをもっと買うことができます...



長い答え:



未確認のビットコイントランザクションは常に順応性(粘性)でした。つまり、「リンボ」(ブロックチェーン内ではない)のトランザクションをわずかに変更でき、署名を破ることはできません。 ただし、初期操作、量、入力と出力の順序、その他のメタデータなどの重要なデータを変更することはできません。 できることは、トランザクションの本質を変更せず、その内容を変更するダミーデータを追加することです。



これはどういう意味ですか? トランザクションをABC123に送信すると、だれかがネットワーク上でトランザクションを確認し、サイレントに変更できます。その結果、ビューはABC124になります。 運が良ければ、ABC124が最初にオンになり、元のABC123はオンになりません(二重支出を防ぐため)。 取引の受取人に問題はありません-引出しを要求した住所にすべてのお金を受け取ります。 しかし、彼が意図的にブロックチェーンを介してトランザクションを観察する場合、ABC123は、そこでそれを検出することはありません。



MtGoxは、彼らがいかさまされたかを説明します:



1)。 ユーザーは、MtGoxから一定量のBTCを自分の住所に引き出すよう要求します。

2)。 MtGoxは、独自の「未使用の出力」の一部を受け入れ、ユーザーの住所に資金を送信するトランザクションをコンパイルします。

3)。 MtGoxはこのトランザクションのハッシュを記憶し、ブロックチェーンに出現するかどうかを確認します。

4)。 ユーザー(攻撃者)または誰かがp2pネットワークで未確認のMtGoxトランザクションを確認し、元のデータと同じデータで構成されるトランザクションを作成します。その結果、その要素に署名する必要はありません(つまり、金額、入力を変更しません)または出力)が、重要でないデータ(たとえば、余分なバイト)を追加します。その結果、このトランザクションのハッシュは元のトランザクションとは異なりますが、ネットワークに対しては有効なままです(翻訳者のメモ)。

5)。 新しい変更されたトランザクションがブロックチェーンに含まれます。 MtGoxは送金しましたが、それについてはまだ知りません。 結論を要求することで、それまでにすでにウォレットの資金を受け取り、すでにそれらを確認します。

6)。 次に、ユーザー(攻撃者)はMtGoxサポートにアクセスして、お金が受け取られなかったことを訴えます。 または、MtGox自体は、資金があまりにも長く受信されていないことを確認し、同じアドレスに他の「未使用TX出力」を送信する別のトランザクションを自動的に繰り返し送信できます(再試行)。 何らかの方法で、MtGoxに多くの混乱を引き起こし、最初は同じバッグを何度も送信することさえあります。

これは、トランザクションのこのような変更を許可するビットコイン自体の問題ですか? はい、おそらくそうです。 しかし、これをどのように防ぐことができるかは明確ではありません。



MtGoxは、ビットコインのこの特性を知らなかったため、この問題に出くわしました。



MtGoxは次のように問題を解決できます:特定のトランザクションのハッシュの外観を監視するためにブロックチェーンを使用する代わりに、アドレスX(ユーザーが指定)が合計N(ユーザーが指定)を受け取り、出力Y、Z、W(MtGoxを使用) 。 これにより、取引が変更された場合でも、ユーザーはおそらくそれを確認し、ユーザーが意図したお金を受け取ったかどうかを確認することが保証されます。



PS資料は著者oleganzaの許可を得て掲載されていますが、ここでは稀であり、現在Redditについて述べています。



All Articles