Kaspa地址的派生路径
在 Kaspa 生态系统中,派生路径用于从助记词(mnemonic phrase)生成根私钥及其子私钥和地址,通常遵循 BIP-32(层次确定性钱包)和 BIP-44(多币种 HD 钱包)标准。以下是 Kaspa 当前的派生路径信息,基于 rusty-kaspa 和 Kaspa-ng 钱包的最新实现。
Kaspa 当前的派生路径
标准派生路径
Kaspa 的官方标准派生路径遵循 BIP-44,定义为:
text
WrapCopy
m / 44' / 111111' / account' / change / address_index
m:主密钥(master key)。
44':BIP-44 的目的(purpose),硬化(hardened)。
111111':Kaspa 的币种类型(coin type),硬化,注册于 SLIP-44(111111 表示 Kaspa)。
account':账户索引,硬化,用于分隔不同账户(如 0'、1')。
change:变化地址(0 表示外部地址,1 表示找零地址)。
address_index:地址索引(0、1、2...,非硬化)。
示例:
第一个外部地址:m/44'/111111'/0'/0/0
第一个找零地址:m/44'/111111'/0'/1/0
第二个账户的第一个地址:m/44'/111111'/1'/0/0
来源
rusty-kaspa 文档(wallet/core/src/derivation.rs 和 kaspa.aspectron.org)明确指出:
标准路径为 m/44'/111111'/0'(账户级别),后续根据 change 和 address_index 扩展。
这是 Kaspa-ng 钱包和现代实现的默认路径。
历史派生路径(已弃用)
Kaspa 早期钱包(如 KDX 和 wallet.kaspanet.io)使用非标准的派生路径,现已弃用:
路径:m/44'/972'/0'
972' 是历史遗留的币种类型,与 BIP-32 不完全兼容。
使用 12 词助记词。
现状:
不支持 BIP-32 标准。
rusty-kaspa 和 Kaspa-ng 不再支持此路径,用户需迁移到 m/44'/111111'/0'。
验证当前路径
从助记词生成地址
以下是使用 rusty-kaspa 生成地址的示例代码:
rust
WrapCopy
use kaspa_wallet_core::derivation::{Mnemonic, HDWallet, DerivationPath};
use kaspa_consensus_core::network::NetworkType;
fnmain() -> Result<(), Box<dyn std::error::Error>> { // 示例助记词
let mnemonic = Mnemonic::from_phrase("witch collapse practice feed shame open despair creek road again ice least", Language::English)?;
let seed = mnemonic.to_seed(None); // 无密码
let wallet = HDWallet::new(seed)?; // 派生路径 m/44'/111111'/0'/0/0
let path = DerivationPath::from_str("m/44'/111111'/0'/0/0")?;
let keypair = wallet.derive_keypair(&path)?;
let address = keypair.to_address(NetworkType::Mainnet)?;
println!("Address: {}", address); Ok(())
}
输出:类似 kaspa:qr... 的主网地址。
路径:m/44'/111111'/0'/0/0 是当前标准。
Kaspa-ng 钱包
Kaspa-ng(基于 rusty-kaspa)默认使用 m/44'/111111'/0'。
用户创建钱包时,输入助记词后,钱包会按此路径派生地址。
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
感动 | 同情 | 无聊 | 愤怒 | 搞笑 | 难过 | 高兴 | 路过 |
- 上一篇:手把手教你实现HD钱包助记词生成算法
- 下一篇:Bech32编码产生背景
相关文章
-
没有相关内容