SOLANA 地址推导
Solana 区块链上的每个公共地址都使用长度介于 32 到 44 个字符之间的字符串。本文介绍助记词、私钥、公钥、地址的完整推到过程
一键发币: SOL | BNB | ETH | BASE | Blast | ARB | OP | POLYGON | AVAX | FTM | OK
Solana 区块链上的每个公共地址都使用长度介于 32 到 44 个字符之间的字符串。 这些地址中的每一个都遵循 BIP44 标准,因此使用 base-58 字符集。
这些看似随机的字母和数字字符串被称为“公钥”(或简称 pubkey),是人们可以在互联网上自由共享的地址。 这是您的“钱包地址”。
这些公共地址具有一组非常特定的单向关系,可防止任何派生地址计算派生自身的秘密。 因此是单向的。 这种单向关系是大多数密码学和所有区块链的核心基础之一。
这就是我们互联网上的普通人如何拥有真正的数字所有权和来源。
1、Base-58 字符集
Solana 公共地址和交易在 base-58字符集上运行。 本质上来说,只有 58 个可能的字符:
- 包括大写 A-Z,不包括大写 O 和 I(如 Oscar 和 India)
- 小写字母 a-z,不包括小写 l(如字母中所示)
- 数字 1-9(不包括 0)
这些特定字母被排除在 Base-58 字符集中,因为它们很容易被误认为是其他字符。 而如果使用了错误的字符,那么区块链地址就完全不同了!
2、Solana 地址是如何得出的?
助记词 -> 私钥 -> 公钥(又名你的钱包地址)
对于大多数人(而不是程序)来说,在区块链上获取公共地址的过程涉及安装基于网络的“浏览器钱包”,例如 Phantom 或 Solflare。 然后,它将生成一个随机的单词列表,称为“助记词短语”,然后用于以单向密码学的形式导出(或计算)公共地址。
在这里我将分解每个步骤:
3、助记词
Solana 区块链上的公共地址通常源自助记词(mnenomic phrases)。
对于大多数人来说,他们通常会使用助记短语,该短语是随机生成的单词列表,通常长度为 12 或 24 个单词。 对于 Solana,该短语包含 BIP39 单词列表中非常具体的单词。
这些单词及其特定顺序的非常具体的组合将允许区块链使用 Ed25519 算法“派生”(或“计算”)私钥。 然后可以使用该私钥来派生公钥,从而为我们提供密钥对(也称为私钥和公钥的组合)。
从理论上讲,助记词本质上比随机字符串(例如私钥)更容易被人类阅读。 因此,与随机字符串相比,人类更容易无误地写下该短语。
4、私钥
从助记词派生的私钥(Private Key)是特殊密钥,是唯一能够为其相应公钥签署交易的密钥,从而证明它拥有公共地址。
私钥始终可以派生出它的“子”公钥(是的,这是多个,稍后会详细介绍),但公钥无法派生出其私钥。
还值得注意的是,同样,私钥也无法派生出自己的助记词。 这也是一种单向关系,也是区块链加密完整性的关键。
5、派生路径
生成区块链地址最常被误解的部分之一是派生路径(derived path)。 这条特殊的信息允许单个私钥派生出多个公钥,而这些公钥无法辨别它们来自同一个私钥。 只有私钥的所有者才能知道。
这些派生路径本质上是一个如下所示的序列:
m/<PURPOSE>/<COIN_TYPE>/<ACCOUNT>/<CHANGE>
- 每个部分由一个
/
分隔 m
表示根密钥或“主”密钥m
之后的每个其他元素都应该是零或正整数- 每个元素也可以以单个
'
结尾,表明它是“硬化的”。你可以在这里阅读更多相关内容,但这并不是真正必要的。只需知道 Solana 使用硬化元素并将自动强制执行此操作 。
仅指定 m/<PURPOSE>/<COIN_TYPE>
的派生路径(如 Solana CLI 使用的路径),只能派生“根密钥”。 指定 /
将允许从同一私钥派生多个公钥。
6、Solana 的派生路径
Solana 区块链上使用的“标准”派生路径是:
m/44'/501'
由 Solana CLI 用于生成“根密钥”,以及m/44'/501'/0'/0'
用于大多数基于网络或基于浏览器的钱包(如 Phantom 和 Solflare)
由于这两个派生路径不同,这就是为什么大多数人尝试将 CLI 生成的个性地址添加到浏览器钱包中,但得到的地址不同。 推导路径不同。 因此,派生的公网地址是不同的。
这些 Solana 派生路径段基本上意味着:
44'
- (必需)使用BIP44标准501'
-(必需)Solana 区块链硬币类型的标识符0'
- (可选)定义要派生的帐户 ID。 这是浏览器钱包(如 Phantom 和 Solflare)将更改的值,以使用户能够动态生成新的公共地址,同时仍然使用单个助记词短语。0'
- (可选)一个附加数字,对于公开的地址基本上始终设置为 0
7、公钥和钱包地址
使用派生路径从私钥派生出的公钥(又名 pubkey
)是人们所熟知的“钱包地址”的公共地址。 该地址将允许区块链上的任何人安全地转移代币或以其他方式与其帐户进行交互。
8、个性地址
通常,公共 Solana 地址显示为字母和数字的随机字符串(如上所述)。 但是,有一种常见的技术用于尝试生成以行中的某些字符(如单词)开头的地址。 这些地址称为个性地址(Vanity Address)。
DefiPlot翻译整理,转载请标明出处