トランザクション展性とは

トランザクション展性(Transaction malleability:トランザクション・マリアビリティ)とは、取引内容を変えずにトランザクションID(Txid)を書き換えることができてしまう、ビットコインシステムの脆弱性のことです。

トランザクション展性のほかに、「マリアビリティ」「マリアビリティ問題」と表現されることもあります。

このトランザクション展性によって、二重支払が生じてしまう恐れがあります。

 

各トランザクションはハッシュ値からなる「トランザクションID」によって識別されていますが、このトランザクションIDは悪意のあるノードによって書き換えられてしまう可能性がありました。

まだブロックチェーン上に追加されていないトランザクションのIDを書き換えることで、識別番号が異なるトランザクションが生成されます。

マイナーが識別番号が異なるトランザクションを先に承認してしまうと、正規のトランザクションは二重支払と見なされ、エラーが示されます。

しかし、トランザクションの内容自体は変化しないため、支払いが実行されます。

つまり、二重支払のエラーを示しながらも、支払いが行われるといったトラブルが生じてしまうのです。

この現象によって、実際に支払われているのにも関わらず何度も送金が行われたり、IDの改変によって支払いの正当性が保てなくなったりします。

 

2014年に起きたMt.Gox(マウントゴックス)のビットコイン流出事件も、このトランザクション展性が一因だったのではないかとも推測されており、ビットコインのシステムにかかわる長年の課題として取り沙汰されてきました。

現在では、Segwit(Segregated Witness)を使った解決法が導入されており、トランザクションデータと署名を分担管理することで、トランザクションIDを改ざんすることが不可能になっています。