回復の体験談。Blockchain.info
記憶している17語からウォレットを再構築する
The client had part of an old Blockchain.info backup phrase — 17 words — in a format the modern site refuses to import. Recovering it took brute force and a lot of source-code archaeology and fun
初期のBlockchain.infoウォレットは、後に業界で標準となった12語のシードフレーズとは異なり、独自のバックアップフレーズを使用していました。この事例では、そうした旧式のフレーズの1つが関係しており、クライアントはその一部しか思い出せませんでした。この問題を解決できたのは、そうした旧式のウォレットがどのように構築されていたかを長年にわたり詳細に研究してきたおかげでした。
状況
このクライアントは、ビットコインの黎明期にBlockchain.infoのウォレットを作成し、単語フレーズでバックアップをとっていました。当時の方式では、現在の標準である12語ではなく、15語、17語、19語、または21語が使用されていました。数年後、17語を思い出したものの、順番に完全な自信が持てず、現在のBlockchain.comのサイトではそのフレーズがどうしても受け入れられませんでした。 最新のソフトウェアにとって、この旧式の17語のバックアップは、認識できる形式とは全く異なるものとして扱われてしまうのです。
何が難しかったのか
2つの問題が重なっていました。第一に、そのフレーズ自体が非標準であり、BIP39には対応していないため、市販のツールでは復元できません。第二に、クライアントは正確な語順を把握しておらず、語順こそがすべてです。間違えると、そのフレーズから再構築されるウォレットは別の、空のウォレットになってしまいます。したがって、この作業は単に古い形式をデコードするだけでなく、多くのあり得る順序の中から唯一の正しい順序を見つけ出すことだったのです。
その謎を解き明かした方法――ソースコード考古学
これらを復元するには、当時Blockchain.infoが実際にその単語リストをどのように鍵に変換していたかを理解する必要があります。この仕組みはウォレットのバージョンごとに変化しており、現在ではどこにも公開されたドキュメントが残っていません。 私たちは、ウォレットの過去のソースコードをバージョンごとに読み解くことでそのロジックを再構築し、正確な導出プロセスを再現できるようにしました。そこから、制御されたブルートフォース攻撃の問題へと発展しました。つまり、クライアントの既知のアドレスに対して、17個の既知の単語の有効な順序と解釈を、ウォレットが正確に再構築されるまでオフラインでテストし続けたのです。導出されたアドレスが一致した時点で、その順序が間違いなく正しいことが判明しました。
結果
適切な処置により、ウォレットとその残高は復元され、クライアントは資金を自身が管理する最新のウォレットに移しました。いつもの通り、手数料は回収額の一定割合であり、成功した場合にのみ支払われ、当社がコインを預かることは一切ありませんでした。公式サイトでは復元不可能と見なされていたバックアップも、適切な過去の知識があれば、完全に復元可能でした。
Blockchain.infoの旧ワード形式
業界で12語のBIP39シードが標準化される以前、Blockchain.infoは独自のバックアップ方式を採用していました。それは、そのウォレットのバージョンごとに鍵のエンコード方法が異なっていたため、15語、17語、19語、あるいは21語からなる単語フレーズでした。これはBIP39よりも前に存在し、BIP39とは異なる方式であるため、現在誰もが使用しているツールとは一切互換性がありません。そのため、本来は完全に有効な古いフレーズであっても、現代のソフトウェアではエラーしか発生しないのです。 また、暗号化やエンコードの方法もウォレットのバージョンごとに異なっていたため、復旧作業ではまずそのフレーズがどの時代のものかを特定し、汎用的なロジックではなく、そのバージョンに固有の正確なロジックを適用する必要があります。
公式サイトではどうにもならない理由
Blockchain.comは、こうした旧式のリカバリーフレーズのインポート機能のサポートをかなり前に打ち切っているため、同社のサイトではそのフレーズが無効であると表示されます。当然のことながら、これによりユーザーは資金が失われたと誤解してしまいます。しかし、そうではありません。ウォレットは依然としてブロックチェーン上に存在しており、元の導出手順を再現できれば、そのフレーズから鍵を導出することは可能です。その再現こそが最大の課題であり、それが可能であるのは、私たちが過去のコードを保存し、研究してきたおかげに他なりません。 資金が失われたことは一度もありません。単に、それらにアクセスする方法が現代のツールセットから外れてしまっただけなのです。
試してみるべきこと
Blockchain.infoのレガシーウォレットの復元を試みるには、お客様が現在お持ちのリカバリーフレーズ(その数や順番は問いません)と、可能であればウォレットの受信アドレスが必要です。これらがあれば、復元が間違いなく正しく行われたことを確認できるからです。 また、ウォレットがいつ作成されたかのおおよその見当があれば、どのバージョンの導出ロジックを適用すべきかを特定するのに役立ちます。一部しか覚えていない、不確かな、順番が間違っている――そういった場合でも対応可能ですが、何も思い出せない場合は対応できません。
古いBlockchain.infoウォレットをお持ちの場合
Blockchain.infoのウォレットには、非常に初期のビットコインが数多く眠っています。これらは、所有者が現在のサイトを試してみたもののエラーが表示され、コインが失われたと結論づけてしまったものです。こうしたケースのほとんどにおいて、コインは依然としてそこに存在しています――リカバリーフレーズは有効であり、残高もオンチェーン上に記録されていますが、現在のツールでは導出方法が不明なだけなのです。「ウェブサイトでは無効と表示される」という状況と「実際には復元可能」という現実との隔たりは、まさに、そうしたウォレットがどのように機能していたかという歴史的知識にかかっています。 もし古いフレーズの一部、あるいはウォレットIDやパスワードのヒントを何か残しているなら、公式のエラーメッセージを絶対的な結論として受け止めないでください。こうした初期のウォレットは、復元できた際の報酬が最も大きい一方で、最も誤解されがちなものの一つでもあります。
そこから得られるもの
もし、15~21語からなる古いBlockchain.infoのフレーズをお持ちで、それが「機能しなくなった」としても、それは想定内のことです。現在のサイトではそのサポートが終了していますが、ウォレット自体が失われたわけではありません。フレーズが不完全であったり、順番が乱れていたりする場合でも、多くの場合、ご自身のアドレスを基に復元することが可能です。Blockchain.comの復元ページでは、こうした旧式のニーモニックについて詳しく解説しています。
よくある質問
Blockchain.infoの古いフレーズは17語あるのですが、インポートできません。失われてしまったのでしょうか?
いいえ。旧Blockchain.infoのフレーズ(15~21語)は、現在のサイトでは廃止されたBIP39以外の方式を採用しています。弊社では、お客様がご登録されているアドレスを基に、不完全または順序が乱れているフレーズを復号し、再構築することが可能です。
語順がはっきりしないのですが、まだ復元できるでしょうか?
多くの場合、そうです。ウォレットが正確に再構築されるまで、既知のアドレスに対して有効な順序を検証するため、正しい順序が確実に確認されます。
Blockchain.comはなぜ私の以前のフレーズを復元してくれないのですか?
このサイトでは、以前の単語・フレーズ形式はサポートされなくなりました。ウォレット自体は依然としてブロックチェーン上に存在しており、必要なのは元の導出ロジックのみです。このロジックは、過去のソースコードから再構築しました。
料金はいくらですか?
成功報酬型:ウォレットの再構築に成功した場合に限り、回収額の一定割合を報酬として受け取り、前払いは一切ありません。
古いブロックチェーンのフレーズの一部をお持ちですか?
お持ちのウォード数と、もしご存知であればウォレットアドレスをお知らせください。24時間以内に復元可能かどうかを判断いたします。成功報酬制となります。
