malleability問題
トランザクション展性、トランザクション・マレアビリティ問題とはビットコイン全体における脆弱性の一つである。実際に世界最大の仮想通貨取引所であったマウントゴックスの攻撃にも利用されたとされている。簡単にいうと***ハッシュを変えた同等のトランザクションを本来のトランザクションよりも先にブロックに取り込むことで"トランザクションがブロックチェーンに取り込まれないまま彷徨っているように監督者に見せる"***ことでトランザクションを何度も再送することができたのである。つまり、第三者によってトランザクションIDが書き換えられてしまうのである。
方法
txIDの生成の際にINPUTとOUTPUTを合わせたデータをハッシュにするわけだが、これを意味を変えずに改竄しようとするのは不可能に近い(ハッシュ関数の不可逆性)従って***"重要でないデータに手を加える"***ことで、意味はほぼ同じデータが完成する。この方法で、もし取引所が顧客による引出履歴をtxIdで管理している場合、一度作成したtxIdを改ざんすることで、あたかもそのトランザクションがビットコイン・ネットワークに承認されてないかのように取引所側に見せかけることが出来てしまう。
改善策
Segwitを用いた対策
下記の記事で簡単にまとめています。
https://qiita.com/shoukitsuda0310/items/e8b07229e8c98e46635e