MSTR Cat

ブロックチェーン/レベル VIII · ミームコインの時代/8.2 Solana/レッスン 2

ウォレットと署名

支出を行う署名、それより長く残る承認、そして読めないものに署名するリスク

用意するものウェブブラウザが搭載されたコンピュータSolanaのブロックエクスプローラー(例:Solscan)Phantom/Solflareがインストールされているハードウェアウォレットまたはモバイルデバイス

問い

  1. なぜSolanaのトランザクションには有効期限があるのでしょうか?
  2. ユーザーがバージョン付きトランザクションに署名すると、具体的に何が承認されるのでしょうか?
  3. 1つのトランザクションが、完全な形で記載しているよりもはるかに多くのアカウントを、どのようにして参照できるのでしょうか?

探究

  1. Solanaの鍵はed25519の鍵ペアです。ほとんどのウォレットは、導出パスm/44'/501'/0'/0'を使ってBIP39のシードフレーズからこの鍵を導出します。この標準により、ユーザーは元の12語または24語のニーモニックを保持していれば、互換性のある別のソフトウェアでもアイデンティティ全体を復元できます。秘密鍵はローカルにとどまり、公開鍵はオンチェーンでアカウントのアドレスとして機能します。
  2. トランザクションには、具体的な命令(instruction)と、それらの命令が扱うアカウントが記載されています。重要なのは、最近のブロックハッシュが含まれている点です。このハッシュは有効期限の仕組みとして機能します。トランザクションが約150ブロック、つまりおよそ60〜90秒以内に処理されなければ、ブロックハッシュが古くなり、ネットワークはそのトランザクションを拒否します。Durable Nonce(永続ノンス)を使うと、最近のブロックハッシュの代わりに専用のノンスアカウントに保存された値を用いることで、より長く有効なトランザクションに署名できます。
  3. 署名は、トランザクションに含まれるすべての命令を承認します。悪意のあるペイロードは、ユーザーが個々のサブ命令をはっきり認識しないまま、トークンアカウントを移転したり、その権限設定を変更したりできます。Phantom、Solflare、Backpackなどのウォレットは、こうしたトランザクションをシミュレーションして、人間が読めるプレビューを表示します。しかしそれでも、ユーザーは生データをその意図を検証せずに承認する「ブラインド署名」によって、有害な命令を承認してしまう可能性があります。
  4. バージョン付きトランザクションではアドレスルックアップテーブル(ALT)が導入され、1つのトランザクションで、すべての完全なアドレスを列挙する代わりにインデックスで多数のアカウントを参照できるようになりました。この最適化により、多数のトークンミントやポジションに関わる複雑な操作のバイトサイズが削減されます。代償は複雑さです。解決後のアドレスを把握するには、参照先アカウントの現在の状態と照らし合わせてテーブルのインデックスをデコードする必要があります。
  5. ハードウェアウォレットは、USBやQRコードで接続して署名のための隔離された環境を提供し、ホストシステム上のマルウェアから鍵を保護します。しかし、セキュリティはトランザクションデータを作成・表示するホストアプリケーションの完全性に依存します。ホストが侵害されていると、ユーザーが正当に見えるものに署名している間に、悪意のある内容が提示される可能性があります。ハードウェアデバイスの画面上ですべてのパラメータを直接確認することで、この種の攻撃経路を軽減できます。
  6. トランザクションの構造を確認するには、Solanaのブロックエクスプローラーを開き、複数ステップの操作を含む最近のトランザクションを任意に選択します。「Instructions」セクションを展開して、個々のプログラム呼び出しを確認します。次に「Accounts」タブで、各命令によってどのアカウントが読み取られ、どのアカウントに書き込まれたかを確認します。これらを生データと照合することで、シミュレーションのプレビューが実際の状態変化にどう対応しているかを理解できます。

重要な事実

  • Solanaの鍵は、BIP39シードからパスm/44'/501'/0'/0'で導出されるed25519の鍵ペアです。
  • トランザクションには最新のブロックハッシュが含まれており、約150ブロック後(60~90秒後)に有効期限が切れます。
  • 署名はすべての命令を承認するため、プレビューを無視すると悪意のあるペイロードにブラインド署名してしまう可能性があります。
  • バージョン付きトランザクションは、アドレスルックアップテーブルを使って複数のアカウントをコンパクトに参照します。
  • ハードウェアウォレットは鍵を隔離しますが、トランザクションデータの表示はホストアプリケーションに依存しています。
  • ウォレットは署名を求める前にトランザクションをシミュレーションし、人間が読めるプレビューを表示します。

演習 九・六・三・一

9集めるSolanaのウォレットインターフェースまたは署名方法で、互いに異なるものを9つ挙げてください。それぞれの主なセキュリティモデル(ソフトウェア、ハードウェア、MPC)と、取引の確認に役立つ具体的な機能1つを記載してください。
6まとめる署名前にユーザーがどれだけのトランザクションデータを確認できるかに基づいて、9つを6つのカテゴリーに分類してください:生データをすべて表示、シミュレーションによるプレビューのみ、ハードウェアの画面での検証、中身の見えない実行。
3絞り込む6つのグループを、Solanaウォレットにおける使いやすさとセキュリティ上の可視性との間の、3つの核となるトレードオフに絞り込んでください。
1結晶化するSolanaにおいて署名が実際に何を承認するのかを、他のチェーンと比較して1文で書いてください。

事実確認

日付、数字、主張は、下記に記載された公表資料と照合して確認しました。

インタラクティブ版で開く →

EN PT ES ZH KO RU DE FR MS