暗号資産初心者向けの記事です。本記事ではトランザクション展性についてわかりやすく解説していきます。
はじめに
みなさん、こんにちは!今日も暗号資産について一緒に勉強していきましょう。
早速ですが本日はトランザクション展性について知識を深めていきたいと思います。ところでみなさんはこの言葉を耳にしたことはありますか?
トランザクション展性とは取引内容を変えずにトランザクションID(Txid)を書き換えることができてしまう、ビットコインシステムの脆弱性のことです。
今日はこれについてみなさんと一緒に勉強していきたいと思います。
トランザクション展性とは
上記でも簡単に述べたようにトランザクション展性とは取引内容を変えずにトランザクションID(Txid)を書き換えることができてしまう、ビットコインシステムの脆弱性を意味するものになります。
ハッシュ値からなる各トランザクションはトランザクションID(Txid)によって識別されています。しかしこのトランザクションIDは悪意のあるノードによって書き換えられてしまう可能性が高くなっているのです。ブロックチェーン上に未追加となっているTxidを書き換えることにより、異なる識別番号を持ったトランザクションが生成されます。
マイナーが識別番号が異なるトランザクションを先に承認してしまうと、正規のトランザクションは二重支払と見なされ、エラーが示されます。しかしトランザクションの内容自体は変化することがないため、支払いが実行されてしまうのです。
つまり二重支払のエラーを示しながらも、支払いが行われるといったトラブルが生じるというわけです。この現象によって、実際に支払われているのにも関わらず何度も送金が行われたり、Txidの改変によって支払いの正当性が保てなくなるので覚えておいてください。
トランザクション展性の仕組み
次にトランザクション展性の仕組みについて詳しくご紹介していきたいと思います。
上記でも出てきたTxidはトランザクションのデータ全体のハッシュをとったものとなっています。このハッシュ値はデータが少し違うだけでも全く異なる値になってしまう値です。したがって実際にTxidを書き換えるためにはトランザクションを変えず、あまり重要でない部分に手を加えることで改ざんを行うのです。
ではみなさんが気になっているのは具体な改ざんの仕方だと思います。トランザクションに含まれる電子署名は決まった形式で書かれていないため、プログラムが意味を読み取り容認する記述ができてしまいます。そしてTxidを計算する際には署名が正しいかどうかも詳細にチェックされることはありません。これを利用してTxidを書き換えることが可能になっているのです。
Mt.GOXから見るトランザクション展性
Mt. GOX社は管理がずさんだったためとあるユーザーから「送金が成功していない」と通知を受けた際に、それが詐欺だと気がつかず送金を行ってしまったという実例があります。実際、送金は成功していたのですがトランザクションID上では失敗しているように工夫されていたため、騙されて二重支払いをしてしまうという事態が発生したのです。
つまり「送金が成功していない」と騙すことに成功してハッカー側は二重支払いを成功させたということになります。しかしMt. GOXは何度もハッカーによって悪用されていた過去もこの事件以来次々に明らかになりました。1つの要因としては自動的に失敗したトランザクションは再度送金するようにしていたためであると考えられています。
最後に
本記事ではトランザクション展性の概要から実例までを解説してきました。
最初にも触れたようにトランザクション展性とは取引内容を変えずにトランザクションID(Txid)を書き換えることができてしまう、ビットコインシステムの脆弱性のことです。
現在、トランザクション展性における解決方法としてSegwit(Segregated Witness)が導入されています。このシステムではトランザクションデータと署名を分担管理することで、トランザクションIDを改ざんすることが不可能になっています。
みなさんも暗号資産を運用する際には良い部分だけを見るのではなく、思わぬ落とし穴があるかもしれないということを頭の片隅に入れながら暗号資産を扱ってくださいね!それでは今日はここまでです。お疲れ様でした!