You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Solana区块链生成keyphrase、mnemonic、seed、私钥与公钥

Solana官方规范密钥生成方案(兼容Mainnet/Testnet/Devnet)

注:Solana三类网络采用完全一致的密钥算法体系,同一套合法密钥可直接在三个网络下使用,不存在网络专属的密钥格式,网络差异仅体现在链上状态、RPC接入点、代币规则层面,密钥本身无网络区分。

核心概念定义

  • keyphrase:即密钥短语,属于BIP39规范中的可选加盐字段,非必填项,用于为助记词派生增加额外安全因子,用户可自定义设置
  • mnemonic:即助记词,由固定数量通用单词组成的人类可读字符串,是密钥备份的核心载体,遵循BIP39标准
  • seed:即种子,是助记词(搭配可选keyphrase)通过固定算法派生的定长二进制串,是所有密钥对派生的根输入
  • private key:即私钥,Solana体系下为32字节Ed25519签名私钥,常见展示形式包括64字符十六进制串、64字节(32字节私钥+32字节公钥拼接)Base58编码串(主流钱包通用导出格式)
  • public key:即公钥,也常被称为钱包地址,是私钥通过Ed25519曲线运算生成的32字节公开标识,常见展示形式为Base58编码字符串,长度在32-44字符区间

标准生成流程

1. 生成合规mnemonic(助记词)

  • 熵源要求:必须使用密码学安全随机数生成器(CSPRNG)生成128位(对应12词助记词)或256位(对应24词助记词)随机熵,禁止使用普通伪随机源
  • 校验位计算:对生成的熵做SHA256哈希,取哈希值前(熵长度/32)位作为校验位,拼接在原始熵末尾
  • 单词映射:将带校验位的比特串按每11位为一组拆分,每组映射到BIP39标准英文词表(Solana官方默认使用英文词表,其他语言词表兼容性差不推荐)中的对应单词,按顺序拼接得到完整助记词
  • 有效性校验方法:
    • 检查助记词单词数是否为12/15/18/21/24的合法长度
    • 检查所有单词均存在于对应语言的BIP39官方词表中
    • 反向将助记词拆解为比特串后,校验末尾校验位与重新计算的SHA256结果完全匹配

2. 结合keyphrase生成seed(种子)

  • 输入参数:上一步生成的mnemonic字符串、自定义keyphrase(无设置则传空字符串)
  • 派生规则:使用PBKDF2-HMAC-SHA512算法,迭代次数固定为2048次,派生输出长度固定64字节;算法盐值固定为字符串mnemonic拼接用户输入的keyphrase
  • 输出结果:得到64字节长度的二进制seed
  • 有效性校验方法:相同mnemonic和keyphrase输入,多次派生必须得到完全一致的64字节seed,过程无随机因子

3. 派生Solana标准路径private key(私钥)

  • 派生路径:遵循SLIP-0010 Ed25519派生规范,Solana官方标准派生路径为m/44'/501'/0'/0',其中501为SLIP-0044规范分配给Solana的币种编号,非标准路径生成的私钥无法被主流钱包识别
  • 派生逻辑:以64字节seed为根输入,沿指定派生路径做SLIP-0010子密钥派生,最终得到32字节Ed25519私钥
  • 有效性校验方法:
    • 私钥原始长度必须为32字节
    • 私钥不能为全0字节,不能落在Ed25519曲线定义的弱私钥取值范围内

4. 计算public key(公钥/地址)

  • 计算逻辑:将32字节私钥输入Ed25519曲线点乘运算,得到对应的32字节公钥点,序列化后即为原始公钥
  • 编码规则:原始32字节公钥使用Bitcoin风格Base58字母表(剔除0、O、I、l等易混淆字符)编码,得到用户可见的地址字符串
  • 有效性校验方法:
    • 公钥原始长度必须为32字节,Base58解码后长度校验通过
    • 公钥对应的Ed25519曲线点必须在合法曲线上,不属于小阶子群等非法点范围
    • 使用私钥对任意随机消息签名后,该公钥可正常通过签名验签逻辑

跨网络使用说明

  • 符合上述规范生成的密钥对,无需任何格式修改即可直接在Mainnet、Testnet、Devnet三个网络下使用
  • 同一公钥在不同网络下的余额、资产、交易记录完全独立,由对应网络的节点单独维护,与密钥本身无关
  • Testnet、Devnet的水龙头测试代币仅在对应网络有效,无法跨网络流通到主网

官方CLI校验操作

可使用Solana官方命令行工具做密钥有效性、网络可用性验证:

# 本地生成符合官方规范的全新密钥对
solana-keygen new --outfile ~/.config/solana/id.json

# 校验指定私钥文件合法性,输出对应公钥地址
solana-keygen pubkey ~/.config/solana/id.json

# 通过助记词恢复密钥对,验证助记词有效性
solana-keygen recover 'prompt:?key=0/0' --outfile recover_key.json

# 切换网络环境
solana config set --url mainnet-beta  # 切主网
solana config set --url testnet       # 切测试网
solana config set --url devnet        # 切开发网

# 查询当前网络下公钥余额,能正常返回结果即代表密钥在该网络可用
solana balance <你的公钥地址>

内容的提问来源于stack exchange,提问作者Obot Ernest

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 02:15:34