news-deep-dive-2026-oct-week4-electrum

ビットコインのウォレット(自分で管理するためのソフト)の一つ「Electrum(エレクトラム)」の開発者が、10月24日、GitHubでセキュリティ勧告を公表しました。4.8.3より前のすべての版に、深刻度「高」(High)の脆弱性(プログラムの弱点)があり、同じ日に修正版の4.8.3が配布されています。開発者は、実際にこの攻撃をしているサーバーがある、と書いています。当校の10月19日〜25日分の週間まとめでも、BTCの項目で取り上げた出来事です(リンクは記事の最後にまとめています)。

「ウォレットに脆弱性」「攻撃者に送金」と聞くと、ビットコインが盗まれた、と考えたくなります。ところが、開発者の勧告を読むと、お金が攻撃者へ動いたのは、利用者のウォレットが自分で署名したときでした。この記事が渡すものは1つだけです。

署名する前に、画面の宛先と金額を、自分が送ろうとした中身とその場で照らす。履歴に出ている取引を、そのまま信じて操作しない。

材料は、開発者の勧告とリリースノート、Electrumの公式FAQ・公式サイトだけです。英語の原文の該当箇所を引用するので、読者が自分で確かめ直せます。

※ この記事は、Electrumや特定のウォレット・サービスの利用を勧めるものではありません。価格の見通しも示しません。英文の訳は当校によるものです。

塾長とミサキ

晩秋の月曜の夜、帰りの電車。ミサキは吊り革につかまったまま、予備校の週間まとめを読んでいた。BTCの欄のいちばん下で、指が止まる。

ミサキミサキ
「塾長、週間まとめのElectrumのところ、見ました? ウォレットに脆弱性、攻撃者に送金、って。ウォレットって、この前の『自分で管理する』ほうですよね。……それでも盗まれるなら、ビットコイン自体が危ないんじゃ」
塾長塾長
「怖い見出しだよな。……その段落、お金が動く直前に、誰が何をしたって書いてある?」

電車が駅に止まり、人が入れ替わる。ミサキは同じ段落を、今度はゆっくり読み直した。

ミサキミサキ
「『利用者がその取引の手数料を引き上げる操作をすると、攻撃者に送金してしまう』……。操作してるの、利用者です」
塾長塾長
「そこだな。手数料の引き上げ。開発者の文書だと、RBFって書いてある」
ミサキミサキ
「アールビー……。略し方より、それが何をするボタンなのかを教えてください」
塾長塾長
「悪い。送ったのに、なかなか確定しないときに、手数料を足して急がせるボタンだ」
ミサキミサキ
「急がせるボタンで、知らない人に送っちゃうんですか。急がせたいのは、自分が送ったお金なのに。……自分で押したなら、盗まれた、とは違うんですか」
塾長塾長
「どっちなのか、開発者が書いた元の文書で確かめよう。訳をつけて、送っておく」

1. 先に、1つだけ予想してください

ミサキと同じところで、止まってみてください。

資金を失った利用者は、なぜ失ったのか。開発者の勧告から言えるのは、どちらでしょう。

① 攻撃者に秘密鍵(署名に使う、持ち主だけの鍵)を盗まれたから
② 利用者のウォレットが、攻撃者への支払いに自分で署名したから

決めてから、次へ進んでください。

2. 答え:②です

勧告は、利用者2人から報告があり、そのうち1人が手数料を上げてお金を失ったと書いています。その仕組みの最後の1文が、これです。

If the client then manually RBF fee-bumps tx2, the client will sign it with a higher fee, and hence pay the attacker.

そのあと利用者が手作業で、tx2(偽の取引)の手数料をRBFで引き上げると、ウォレットはより高い手数料でそれに署名し、結果として攻撃者に支払うことになる。

「client」は、利用者の手元で動くElectrum(ウォレットのソフト)のことです。署名したのは、攻撃者ではなく利用者のウォレットでした。

①のように、秘密鍵が盗まれる手順は、勧告のどこにも書かれていません。Electrumの公式FAQも、こう説明しています。

The Electrum client never sends private keys to the servers.

Electrumは、秘密鍵をサーバーへ送ることはない。

同じFAQによると、秘密鍵は署名するときだけ一時的に使われ、そのためにパスワードを入れます。つまり、お金が攻撃者へ向かう取引ができあがったのは、利用者が自分の画面で手数料を上げる操作をし、自分のウォレットで署名したときです。

①を選びたくなるのは自然です。攻撃者は実際にいて、お金は攻撃者に渡りました。ただ、攻撃者がしたのは「鍵を盗むこと」ではなく、「利用者に署名させるための偽の取引を、履歴に入れること」でした。だから、この攻撃を防ぐ場所は「鍵の守り方」ではなく、「署名する前に何を見るか」になります。

3. 前提を2つだけ

攻撃の流れを読む前に、ミサキが初めて聞いた言葉を2つだけ説明します。

未承認の取引と手数料。 ビットコインの取引は、マイナー(取引を記録する人たち)がブロックチェーンに書き込んだときに「承認」されます。書き込まれるまでの取引は「未承認」です。Electrumの公式FAQは、承認の速さは一般に取引に付けた手数料で決まり、マイナーは手数料の高い取引を優先する、と説明しています(会話で塾長が「確定しない」と言ったのは、この承認が進まないことです)。

手数料の引き上げ(RBF)。 承認がなかなか進まないとき、手数料を足して、同じ支払いの取引を置き換えることができます。RBFは「Replace by fee(手数料による置き換え)」の略です。FAQによると、Electrumは標準で、この置き換えができる取引を作ります。操作の流れは、FAQでは次のように書かれています(英文の手順を当校が短くまとめたものです)。

履歴の取引を右クリック →「Increase Fee(手数料を上げる)」→ 手数料を決めて「OK」→ まだ署名していない取引の画面が開く →「Sign(署名)」→「Broadcast(送信)」

この記事で大事なのは、最後の「Sign」を押す手前で、これから署名する取引の中身を見る画面が一度出ることです。

4. 攻撃の流れ:4つの手順

勧告に書かれた流れを、4つに分けます。

手順1 送った取引が、隠される
利用者が取引(tx1)を送ると、悪意のあるサーバーがそれを握りつぶす。報告した1人目の利用者は、送った取引がビットコインのネットワークに広まっておらず、サーバーが止めていた、と伝えている。

↓

手順2 宛先をすり替えた偽の取引が、履歴に出る
サーバーは、宛先を攻撃者のアドレスに替えた取引(tx2)を、利用者の履歴に入れる。履歴にはtx2が未承認の取引として表示され、tx1は表示されない。

↓

手順3 利用者が、偽の取引の手数料を上げる
利用者は、それを自分が送った取引だと思い、手数料を上げる操作をする。

↓

手順4 ウォレットが署名し、攻撃者に支払う
ウォレットは、tx2の宛先のまま、高い手数料を付けた取引に署名する。この取引で、お金は攻撃者に渡る。

なぜ手順2が起きるのか。FAQによると、Electrumは、ビットコインの仕組みのうちいちばん複雑な部分を受け持つサーバーと組んで動く作りで、ふだん約10のサーバーにつなぎ、そのうち1つを「メイン」のサーバーにしています。送る取引も、このメインのサーバーを通して流します。

そのうえでFAQは、承認された取引はElectrum自身が確かめる一方で、「The server is trusted about unconfirmed transactions.(未承認の取引については、サーバーを信頼する)」と書いています。勧告も、これは「文書化された設計」だとしたうえで、それを実際に悪用する方法を誰かが見つけた、と書いています。

偽の取引tx2の署名は、本当は正しくありませんでした。ただ、これまでのElectrumは、未承認の取引の署名を確かめていなかったため、履歴にそのまま表示されました。そして手順4で手数料を上げると、ウォレットは利用者の鍵でその取引に署名し直します(勧告の「the client will sign it」)。署名の正しくなかった偽の取引が、こうして利用者の署名の付いた、本物の支払いになります。

5. 押してしまうように、画面が作られていた

ミサキは「自分で押したなら」と引っかかっていました。知らない人に送るボタンを、なぜ押してしまうのか。勧告の報告の部分に、その答えになる記述が2つあります。

1つ目:偽の取引は、手数料ゼロで作られていた。 2人目の利用者の報告によると、サーバーが作ったtx2は手数料がゼロでした。開発者は「presumably in hope of the user bumping its fee(おそらく、利用者が手数料を上げることを期待して)」と書いています。第3章のとおり、承認の速さは一般に手数料で決まります。自分が送ったはずの取引が手数料ゼロで止まって見えれば、「手数料を上げて急がせよう」と考えるのは自然です(当校の見方)。

2つ目:攻撃者のアドレスは、末尾の4文字が同じだった。

both reported the attacker’s output address in tx2 was grinded to match the last four chars of the legit address from tx1

2人とも、tx2の攻撃者のアドレスは、tx1の本来の宛先と末尾の4文字が一致するように作られていた、と報告している。

宛先を末尾の4文字だけで確かめていたら、この偽の取引は見分けられません。

隠す、止まって見せる、末尾まで似せる。3つがそろうと、利用者には「自分が送った取引が、手数料が足りずに止まっている」ように見えます。お金を動かした署名は利用者のものでしたが、その署名をさせるための偽の取引を履歴に入れたのは、攻撃者でした。

6. 直ったことと、自分で確かめること

修正版4.8.3で変わったこと。 勧告によると、4.8.3のElectrumは、未承認の取引を履歴に加える前に、自分のアドレスから支払う部分について、署名が正しいかを確かめるようになりました。

ただし、勧告は、修正後も確かめるのは「自分のアドレスから支払う部分」だけで、受け取る側の取引の署名は確かめない、とも書いています。今回の偽の取引は「自分のアドレスから支払う」形だったので、修正で見分けられるようになりました。一方、自分が受け取る取引の未承認の表示は、修正後もサーバーを信頼したままです。

入れ方。 Electrumの公式サイト(electrum.org)の最新版は4.8.3です。公式サイトは「electrum.org以外からElectrumをダウンロードしないでください」と注意しています。公式FAQは、更新の前に、ウォレットの復元に使う言葉(シード)を紙に控えておくよう書いています。

更新できないとき。 勧告は、更新しないまま使う場合の回避策として、次のように書いています。

when signing any transaction, for bumping the fee or not, they should verify the output addresses and amounts are as expected.

手数料の引き上げかどうかにかかわらず、どの取引に署名するときも、宛先と金額が思っているとおりかを確かめること。

影響を受けない人。 勧告によると、自分で動かしているサーバーなど、信頼できるサーバーにつないでいる人は影響を受けません。

当校の見方。 勧告では、署名のたびに宛先と金額を確かめることは「更新できない場合の回避策」です。ただ、偽の取引がどこから来ても、最後に署名するのは自分のウォレットです。更新した後も、署名の前に宛先と金額を見る習慣は残しておくことをおすすめします。照らす相手は履歴の表示ではなく、自分が送ろうとした宛先と金額です。

7. この記事で言えないこと

被害の大きさ。 勧告にあるのは、利用者2人の報告と、そのうち1人がお金を失ったことだけです。金額も、被害にあった人の総数も書かれていません。

攻撃していたサーバー。 どのサーバーが、いくつ攻撃していたのかは、勧告に書かれていません。

隠された本来の取引のその後。 握りつぶされたtx1がその後どうなったか(相手に届いたのか)も、勧告に書かれていません。

Electrum以外のウォレット。 同じ攻撃が他のウォレットにも当てはまるかは、当校が保存した一次情報では確かめられませんでした。

日付について。 Electrumのリリースノートは4.8.3を「October 23, 2026」の版としています。勧告の経緯によると、23日は版として確定した日で、配布版が出て勧告が公表されたのは24日です。

塾長とミサキ(続き)

その夜、家に着いたミサキは、コートを脱ぐのも忘れて、塾長から届いた勧告の訳を最後まで読んだ。

ミサキミサキ
「読みました。押したのは本人だったけど、押したくなるように、画面のほうが作られてたんですね。……私だったら、たぶん押してました」
塾長塾長
「末尾の4文字まで似せてあったら、慣れてても見落とす」
ミサキミサキ
「まだウォレットは持ってないですけど、押す前に見るのは、履歴じゃなくて、これから署名する中身のほう。それは覚えておきます」
ミサキミサキ
「……でも、そのサーバーって、誰がやってるんですか」
塾長塾長
「それは、ウォレットを選ぶときに一緒に見よう」

今日できること

Electrumを使っている方

① 使っている版が4.8.3より前なら、electrum.orgから4.8.3以降を入れる。更新の前に、復元用の言葉(シード)を紙に控えてあるかを確かめる
② 更新するまでは、どの取引に署名するときも、宛先と金額が自分の送ろうとした中身と同じかを確かめる
③ 履歴に、自分が送ったつもりの取引と宛先が違う取引が出ていたら(末尾の数文字だけでなく、宛先の全体を見る)、その取引の手数料を上げない

③は、勧告にある2人の報告からの当校の見方です。1人目は、送った後の履歴に別の取引が入っていることに気づき、開発者に知らせました。2人目は、その取引の手数料を上げて、お金を失いました。

まだウォレットを使っていない方

「署名」のボタンを押す前に、これから署名する取引の宛先と金額を見る。照らす相手は、履歴の表示ではなく、自分が送ろうとした中身

Electrum以外のウォレットに同じ弱点があるかは分かりません。それでも、署名の前に宛先と金額を見ることは、どのウォレットを使っても自分でできる確かめ方です(当校の見方)。

この記事の一次情報

英文の訳は当校によるものです。

一次情報(開発者の公表)

一次情報(Electrumの公式FAQ・公式サイト)

  • Electrum 公式FAQ(Frequently Asked Questions):「Does Electrum trust servers?」(秘密鍵をサーバーへ送らないこと、約10のサーバーとメインのサーバー、承認された取引は自分で確かめ、未承認の取引はサーバーを信頼すること、送る取引はメインのサーバーを通すこと)。「My transaction has been unconfirmed for a long time. What can I do?」(承認の速さは手数料で決まること、標準で置き換えられる取引を作ること、Increase Fee → Sign → Broadcast の操作)。「How is the wallet encrypted?」(秘密鍵は署名のときだけ一時的に使い、パスワードを入れること)。「How do I upgrade Electrum?」(更新の前にシードを紙に控えること)。
  • Electrum 公式サイト(electrum.org):最新版が4.8.3であること。electrum.org以外からダウンロードしないようにという注意。

この記事が確認していないこと

  • 被害額と、被害にあった人の総数
  • 攻撃していたサーバーの名前と数
  • Electrum以外のウォレットが同じ攻撃の対象になるか
  • Electrumの利用者数

当校の関連記事

この記事は情報提供のみを目的としており、特定の暗号資産・金融商品の売買や、特定のサービスへの登録・利用を勧めるものではありません。価格の見通しは示していません。

連載「ミサキの0からクリプト」

暗号資産をまだ買ったことのない会社員のミサキが、塾長に質問しながら一つずつ確かめていく連載です。第0話から読む →

注意事項・免責事項
本ページは情報提供のみを目的としております。 ご利用時は各自のご判断にて行って下さいませ。 また掲載している情報には細心の注意を払って掲載をしておりますが、正確性および完全性を保証するものではなく、生じた損失には責任を負えませんのでご理解を願います。 ※また予告なしに、掲載情報が変更になる場合も御座います。

公式LINE|暗号通貨に関する情報を毎週配信

LINEで友達募集中

*LINE ID検索時「@176npczt」

質問・相談なども受付していますので、よろしくお願いいたします。