用語集 / ウォレットとカストディ
ブレインウォレット
- ブレインウォレットとは?
- ブレインウォレットは、記憶したフレーズをハッシュ化してそのまま秘密鍵に変換する方式です。研究者が大規模にウォレットを空にした設計であり、現在も保守されているウォレットでこの機能を提供しているものはありません。
魅力は明らかでした。1つの文章を暗記し、何も持たずに国境を越え、渡航先でウォレットを再現できるという点です。欠陥も同じくらい単純でした。人は推測されやすい文章を選ぶうえ、攻撃者はオフラインで無料で候補を試せるからです。2016年の学術研究は、2011年から2015年の間に1,806ビットコインを保有していた884件のブレインウォレットを特定し、そのうち21件を除くすべてが空にされていたと報告しました。
仕組み
状況:2015年に公開の解析ツールが登場した後、ブレインウォレットは放棄され、現在保守されているウォレットでこの選択肢を提供しているものはありません。機器が生成するリカバリーフレーズが完全に取って代わりました。
その構築は1行のコードです。フレーズを取得し、それにSHA-256を適用し、得られた32バイトを秘密鍵として扱います。ソルトも、ランダムな要素も、意図的な遅延もありません。したがって同じフレーズは、それを思いつく地球上のすべての人に対して同じ鍵を生成し、秘密が検索の問題に変わってしまいます。
攻撃者はこれを直接悪用します。これまで残高を持ったことのあるすべてのアドレスのリストを作成し、高速な照合構造に読み込ませ、候補フレーズを何百万件もハッシュ化します。歌詞、聖書の一節、映画の引用、過去の漏えいデータにあるパスワード、そしてそれらの出典から並べ替えて作れるあらゆる文字列です。各ハッシュはマイクロ秒単位でアドレスリストと照合されます。Ryan Castellucciは2015年8月のDEF CON 23でこの攻撃を実演し、この手法を一般的なものにしたツールbrainflayerを公開しました。同じ研究チームは、新たな入金を監視する競合の搾取ツールを十数個ほど数えており、そのため資金のあるブレインウォレットは通常1日以内に、しばしば数分以内に空にされていました。
人のフレーズ選択こそが修正できない部分です。自分では独自だと思う文章でも、その探索空間はランダムな鍵が占める2の256乗よりはるかに小さく、攻撃者が必要とするのは人が実際に選ぶフレーズだけです。
どこで見かけるか
ブレインウォレットは歴史的なものですが、この考え方は新しい名前で繰り返し現れるため、見分けられるようにしておく価値があります。Keybaseが2014年に公開したWarpWalletは、scryptとPBKDF2、さらにメールアドレスをソルトとして使ってこの概念を救おうとしましたが、入力は人が選んだという事実は変わらず、推測1回あたりのコストが上がるだけでした。
現在も続く混同は、正規のリカバリーフレーズを暗記することとの混同です。ハードウェアウォレットが生成する12単語は128ビットの機械的なエントロピーを持ち、暗記しても暗記しなくても強さは変わりません。自分で発明したフレーズは、自分の想像力に含まれる分のエントロピーしか持たず、それは感じられるよりはるかに小さいものです。あるサイト、アプリ、または「カスタムバニティシード」ツールが、自分で思いついた文章を入力するよう求めて、その代わりにウォレットを約束するなら、それを閉じてください。
ブレインウォレットvsパスフレーズ
ブレインウォレットは秘密の全体です。BIP-39のパスフレーズは、機械が生成した単語の上に重ねる追加の要素です。この違いが攻撃を決めます。ブレインウォレットを総当たりするには、アドレスが公開されているため、攻撃者には単語リストと電気だけで十分です。パスフレーズを総当たりするには、攻撃者はすでにあなたのリカバリー単語を保有している必要があり、つまり攻撃は物理的な侵害の後にしか始まりません。弱い人為的な入力はどちらでも危険ですが、資金が入った瞬間からインターネット全体にさらされるのは片方だけです。