什么是 Solana 地址验证器?
Solana 地址验证器检查字符串是否恰好是 32 字节(ed25519 公钥的大小)的 Base58 编码,然后测试这些字节是否解码为 ed25519 曲线上的点。曲线上的公钥属于普通钱包;曲线外的值是程序派生地址(PDA)。Solana 地址没有校验和,所以曲线测试是唯一可用的输入错误检测手段。
结果说明
- 有效,钱包账户:字符串解码为 32 字节且公钥在 ed25519 曲线上。这就是 Phantom、Solflare 或 Backpack 钱包显示的地址。
- 有效,PDA / 曲线外:格式正确,但不可能存在对应的私钥。常见于代币账户和程序金库。
- 无效:长度错误、非法字符,或者该字符串其实是其他链的地址。
曲线检查原理
ed25519 公钥编码了曲线点的 y 坐标加一个符号位。工具根据 y 计算 x² = (y² − 1) / (d·y² + 1) mod 2²⁵⁵ − 19,并测试 x² 是否存在平方根。存在则说明该点存在、该公钥可能有私钥;不存在则地址在曲线外。运算在浏览器中用 BigInt 完成。
常见的 Solana 地址错误
- 缺少最后一个字符。聊天应用有时会截断长字符串。本应 44 位却只有 43 位的地址会解码为错误长度并失败。
- 把 Mint 当成钱包。USDC 的 Mint 地址 EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 是有效地址,但向它发送代币会把代币烧掉。只向对方明确告知为其钱包的地址发送。
- 粘贴了以太坊地址。0x… 不是 Solana。除跨链桥外,跨格式发送的资产会丢失。
用 Solana Pay 二维码生成器为已验证的地址创建收款码。