MSTR Cat

区块链/等级 VIII · Meme币时代/8.2 Solana/课程 2

钱包与签名

用于花费的签名、比它更长久的授权,以及签署看不懂内容的风险

材料一台装有网络浏览器的电脑Solana 区块浏览器(例如 Solscan)安装了 Phantom/Solflare 的硬件钱包或移动设备

好奇

  1. 为什么 Solana 交易会有有效期?
  2. 当用户签署带版本号的交易时,究竟批准了什么?
  3. 一笔交易如何能引用比其完整列出的多得多的账户?

探索

  1. Solana 密钥为 ed25519 密钥对。大多数钱包会通过 BIP39 助记词,按照 m/44'/501'/0'/0' 这一派生路径生成这些密钥。只要用户保留着原始的 12 个或 24 个单词的助记词,这一标准就能让用户在各种兼容软件中恢复自己的完整身份。私钥始终保存在本地,而公钥则在链上充当账户地址。
  2. 一笔交易会列出具体的指令以及这些指令所涉及的账户。关键在于,它还包含一个最近的区块哈希。该哈希起到了过期机制的作用:如果这笔交易在大约 150 个区块内(约 60 到 90 秒)未被处理,该区块哈希就会过期,网络会拒绝这笔交易。持久 nonce(durable nonce)则用存储在特殊 nonce 账户中的值替代最近的区块哈希,让用户签署的交易在更长时间内保持有效。
  3. 签名即表示批准交易中包含的每一条指令。恶意载荷可以在用户并未明确察觉这些具体子指令的情况下,转移代币账户或更改其权限设置。Phantom、Solflare 和 Backpack 等钱包会模拟这些交易,以提供人类可读的预览。不过,用户仍可能通过“盲签”批准有害指令,即在未核实其意图的情况下直接接受原始数据。
  4. 版本化交易引入了地址查找表,使单笔交易能够通过索引引用大量账户,而无需列出每个完整地址。这种优化减少了涉及大量代币 Mint 或仓位的复杂操作所占用的字节数。代价是复杂性增加:要弄清解析后的地址,需要根据所引用账户的当前状态来解码表中的索引。
  5. 硬件钱包为签名操作提供了隔离环境,通过 USB 或二维码进行连接,从而保护私钥免受主机系统恶意软件的侵害。不过,其安全性取决于用于生成和显示交易数据的宿主应用程序的可靠性。如果该宿主应用程序被攻破,它可能会展示恶意信息,而用户则会在误以为内容合法的情况下进行签名。在硬件设备的屏幕上直接验证所有参数,即可有效防范这种攻击方式。
  6. 要查看某笔交易的结构,可打开 Solana 区块浏览器,选择任意一笔涉及多步骤操作的近期交易。展开“指令”部分即可看到每一个独立的程序调用。接着查看“账户”标签页,了解每条指令读取或写入了哪些账户。将这些信息与原始数据对照,就能明白模拟预览是如何对应实际状态变化的。

关键事实

  • Solana 密钥是由 BIP39 种子在路径 m/44'/501'/0'/0' 下派生的 ed25519 密钥对。
  • 交易中包含一个最近的区块哈希,交易会在大约 150 个区块(60-90 秒)后过期。
  • 签名会批准所有指令;如果忽视预览,就可能对恶意载荷进行盲签。
  • 版本化交易通过地址查找表来简洁地引用多个账户。
  • 硬件钱包可隔离私钥,但需要依赖主机应用程序来显示交易数据。
  • 钱包会在请求签名之前模拟交易,以显示便于人类阅读的预览内容。

练习 九、六、三、一

9收集列出9种不同的Solana钱包界面或签名方式。说明它们的主要安全机制(软件、硬件、MPC),以及它们为交易审核所提供的某一特定功能。
6归类根据用户在签名前能够查看的交易数据量,将这9种情况分为6类:完整原始数据、仅模拟预览、硬件屏幕验证,或不可见执行。
3提炼将这6组因素简化为Solana钱包在可用性与安全可见性之间的3个核心权衡。
1凝结写一句话,说明与其他链相比,Solana 上的签名实际授权了什么。

事实核查

日期、数字及数据均依据下方列出的已发表资料进行核实。

在互动学院中打开 →

EN PT ES JA KO RU DE FR MS