ほとんどの暗号資産ユーザーは、非常に早い段階で一つのセキュリティルールを学びます。シードフレーズを守ることです。
その助言は正しいですが、不完全です。
リカバリーフレーズは安全に生成され、オフラインで保管され、決して露出しなくても、それが管理するウォレットは危険なオンチェーンのセキュリティ状態へと発展し得ます。
理由は単純です。
ウォレットのセキュリティは、ウォレットの使用に伴って変化します。
承認は付与されます。署名は作成されます。スマートコントラクトは呼び出されます。新しい取引相手が現れます。資産はプロトコルやネットワーク間を移動します。取引の挙動は時間とともに発展します。
つまり、「暗号的な秘密を守ること」と「ウォレットが何を認可しているかを監視すること」は、別々のセキュリティ責任です。
ウォレットセキュリティの5つの層
役に立つ枠組みでは、ウォレットのリスクを5つの層に分けます:
1. 鍵の生成
2. 鍵の保存
3. 権限
4. カウンターパーティの露出
5. トランザクション挙動
これらの層は重なりますが、答える質問はそれぞれ異なります。
鍵の生成
最初の質問は、リカバリーフレーズまたは秘密鍵が、十分に予測不可能な暗号的ランダム性を使って生成されたかどうかです。
元の秘密が粗く生成されていた場合、その後に安全に保存しても弱点は修復できません。
ここにも重要な制限があります。
パブリックなブロックチェーンスキャナは、通常のパブリックウォレットアドレスを調べただけでは、元のエントロピーの質を一般に判断できません。
したがって、クリーンなブロックチェーン履歴は、基となるリカバリーフレーズが安全に生成されたことを証明しません。
鍵の保存
次の質問は、生成後も秘密が機密のまま保たれていたかどうかです。
フィッシング、マルウェア、スクリーンショット、クラウドバックアップ、偽のウォレットアプリ、危険なシードのインポートは、正しく生成されたリカバリーフレーズでも危うくし得ます。
強力な生成と強力な保存は、したがって別々の要件です。
権限は、鍵を盗まなくてもリスクを生み得る
ここでウォレットセキュリティは、シードフレーズ保護を超えて進みます。
秘密鍵は完全に機密のままでも、別のアドレスが特定の資産に対する権限をなお獲得することがあります。
ERC-20 allowanceはその一例です。
許可(allowance)を見直すときは、文脈が重要です。関係する所有者、トークン、スパンダー(spender)、ネットワークを知る必要があります。
NFTはオペレーター権限を持ち込むことができます。
許可ベースのシステムは、署名によって支出権限を作り出せます。
スマートアカウントやその他の認可システムは、委任された権限の追加の形態をもたらし得ます。
つまり、ウォレットのセキュリティには、秘密鍵が露出したかどうかだけでなく、ウォレットが何を認可しているかを理解する必要があります。
ウォレット接続とオンチェーン承認
これらの概念は頻繁に混同されます。
ウォレットをdAppに接続することは、そのアプリがウォレット内のすべての資産を使う権限を自動的に持つことを意味しません。
接続するとウォレットと通信でき、アプリが実行を要求できるようになります。
重要なセキュリティ上の出来事は、権限を生み出すトランザクションまたは署名です。
その逆も同様に重要です。
ウォレットをWebサイトから切断しても、オンチェーンにすでに保存されているERC-20のallowanceが自動的に取り消されるわけではありません。
Webサイトを閉じると、接続状態が変わります。
これはブロックチェーンの状態を書き換えません。
許可(permit)署名
従来の承認トランザクションは、認可の仕組みの唯一の方法ではありません。
permitシステムは、署名済みメッセージを使ってトークン支出の権限を確立できます。
そのため、通常のapproveトランザクションだけを検索するセキュリティレビューでは、関連する許可経路を見逃す可能性があります。
ユーザーは、署名が何を認可するのかを理解すべきであり、「オンチェーンの承認トランザクションがない=権限が存在しない」と決めつけないでください。
NFTオペレーターの権限
NFTのセキュリティにも同様の考慮事項があります。
ERC-721およびERC-1155規格は、資産に対するオペレーター権限をサポートできます。
つまり、代替可能トークンのallowanceだけを見ても、ウォレットの権限状態の全体像としては不完全になり得ます。
カウンターパーティの露出
ウォレットは稼働するにつれて関係性を形成します。
それは、取引所、ルーター、ブリッジ、スマートコントラクト、プロトコル、その他のウォレットと相互作用します。
こうした関係性は、有用な調査のための証拠になります。
最初にウォレットに資金を送ったアドレスはどれですか?
別のアドレスが繰り返しガスを提供していますか?
不自然な資産移動の直前に現れるのは、どのコントラクトですか?
ウォレットは、それまで使ったことのないカウンターパーティとやり取りを始めていますか?
これらの観察は、悪意のある活動を自動的に証明するものではありませんが、調査する価値のある関係性を特定できます。
リスクラベルには文脈が必要
アドレスのラベルは役に立ちますが、自動判定として扱うべきではありません。
ラベルの付いていないアドレスが必ずしも安全とは限りません。
分類に十分な証拠が揃う前に、新しい悪意あるアドレスが存在し得ます。
同様に、危険なアドレスとのやり取りがあっても、それがウォレット所有者が悪意を持っていることを自動的に証明するわけではありません。
トランザクションの方向、タイミング、方法、経済的な文脈が重要です。
良い調査では、ラベルを証拠として使い、ラベルが分析に取って代わることを許さないでください。
資金パス
資金の関係性は、残高画面では決して表示されないつながりを露出させ得ます。
ウォレットに最初に資金を送ったアドレス、繰り返しガスを供給するアドレス、疑わしいトランザクションのシーケンスの前に現れるアドレスは、有用な文脈を提供できます。
同じ資金源を共有する複数のウォレットも、状況によっては調査の対象に値するかもしれません。
繰り返しになりますが、その関係は証拠であって自動的な帰属ではありません。
トランザクション挙動
ウォレットの挙動は時間とともに変わります。
突然の資産の一掃、異常なトランザクション頻度、繰り返される失敗した呼び出し、見慣れない承認(approvals)、予期しないコントラクトの相互作用、そして過去の活動からの大きな逸脱はいずれも、より深い確認を正当化し得ます。
通常の活動が過去にどのようなものだったかを確立するのに十分な履歴がある場合、行動(挙動)分析は特に有用です。
トランザクションのデコード
トランザクションが見慣れないように見える場合、デコードすることで実際に何が起きたのかを把握できます。
利用可能なデータ次第で、デコード済みのトランザクションは、呼び出されたコントラクト、実行されたメソッド、パラメータ、送金、承認、イベント、その他の実行情報を明らかにできます。
これは、Webサイトのボタン文言がオンチェーンで何が起きるかを決めるわけではないためです。
あなたが認可したトランザクションがそれを行います。
そのため、トランザクションそのものを理解することは、インターフェースが提示する説明を信じるよりも信頼性が高くなります。
オフチェーンの詐欺はオンチェーンの権限を作り得る
多くの攻撃はブロックチェーンの外側から始まります。
偽のサポートメッセージが切迫感を作ります。
SNSアカウントがリンクを送ります。
フィッシングサイトが正当なサービスを模倣します。
ユーザーは何かに署名するよう説得されます。
ソーシャルエンジニアリングはオフチェーンで起きますが、その結果のトランザクションまたは権限がオンチェーンの露出を生みます。
これらの段階を分けることで、被害者がどのように説得されたのか、また実際に資産に何が起きたのかの両方を説明しやすくなります。
EVMとSolanaは同一ではない
ウォレット分析でも、ブロックチェーンのアーキテクチャの違いを尊重する必要があります。
EVMネットワークでは、ERC-20 allowance、NFTオペレーター権限、コントラクト呼び出しといった概念が使われます。
Solanaには独自のアカウント、プログラム、委任、トークン権限の構造があります。
セキュリティ目標は似ていますが、仕組みは異なります。
そのため、Solanaの活動は、EVMの用語を機械的に適用するのではなく、Solanaのアーキテクチャに従って解釈すべきです。
ウォレットリスクスキャナーでは証明できないもの
これは理解すべき最も重要な制限の1つです。
クリーンなウォレットリスクスキャンは、リカバリーフレーズまたは秘密鍵が安全であることを証明しません。
スキャナはサポートされるパブリックな証拠を分析します。
一般に、誰かがリカバリーフレーズをオフラインでこっそりコピーしたかどうかは判断できません。
元の鍵が十分なランダム性を使って生成されたかどうかを、必ずしも確実に判断できません。
また、未知のアドレスが無害であることを保証できません。
検出されたオンチェーン警告がないことは、利用可能なカバレッジと証拠に従って解釈すべきです。
リスクスコアは意思決定支援のシグナル
ウォレットのリスクスコアは複数のシグナルを要約するのに役立ちますが、その数値が根拠となる証拠に代わるべきではありません。
スコアが似ている2つのウォレットでも、それらを受け取った理由はまったく異なるかもしれません。
不審な権限を持っているかもしれません。
別のものはカウンターパーティの露出を持っているかもしれません。
別のものは、不自然なトランザクション挙動を示すかもしれません。
したがって、スコアの裏にある証拠のほうが、数値を絶対的な判断として扱うより重要です。
より良いウォレットセキュリティのプロセス
ウォレットセキュリティは反復的であるべきです。
暗号的な秘密を守ってください。
権限を見直す
見慣れないトランザクションを理解する
必要に応じてカウンターパーティを調査する
資金の関係性を調べます。
トランザクション挙動の変化を監視する
リスクラベルは証明ではなく証拠として扱ってください。
利用可能なデータの限界を考えてください。
不完全な情報を確実性に変えるのではなく、不確実性を記録してください。
鍵となる違いはこれです:
リカバリーフレーズを保護することは、ルートとなる秘密を守ることです。
オンチェーンの活動を監視することは、その秘密がブロックチェーンアプリケーションと相互作用し始めた後に起きることを守るのに役立ちます。
どちらも重要です。
ウォレット権限、許可(permit)署名、NFTオペレーター権限、カウンターパーティの露出、資金パス、トランザクションのデコード、EVMとSolanaのワークフロー、ウォレットのリスクスコア、確信度とカバレッジを含む、TokenToolHubの調査全体を公開しました。
調査の全文を読む:
https://tokentoolhub.com/wallet-security-beyond-seed-phrase/
ウォレットセキュリティは、シードフレーズが生成された当日に完了したものとして扱うべきではありません。
これは、すべての認可、相互作用、トランザクションとともに変化する、進化し続けるセキュリティ体制です。