派生 Solana 地址

Solana 区块链上的每个公共地址都使用长度介于 32 到 44 个字符之间的字符串。这些地址中的每一个都遵循 BIP44 标准,因此使用 base-58 字符集。

如何获取 Solana 地址
solana派生地址

这些看似随机的字母和数字字符串被称为“公钥”(或pubkey简称),是人们可以在互联网上自由共享的地址。这是您的“钱包地址”。

这些公共地址具有一组非常特定的单向关系,可防止任何派生地址计算派生自身的秘密。因此是单向的。这种单向关系是大多数密码学和所有区块链的核心基础之一。

这就是我们互联网上的普通人如何拥有真正的数字所有权和来源。

Base-58 字符集

Solana 公共地址和交易在 58 进制字符集上运行。本质上来说,只有 58 个可能的字符:

  • 包括大写 AZ,不包括大写OI(如 和Oscar 中India
  • 小写字母 AZ,不包括小写字母l(如letter
  • 数字 1-9,(包括0

这些特定字母被排除在 Base-58 字符集中,因为它们很容易被误认为是其他字符。而如果使用了错误的字符,那么区块链地址就完全不同了!

Solana 地址是如何得出的?

助记词阶段 -> 私钥 -> 公钥(又名你的钱包地址)

对于大多数人(而不是程序)来说,在区块链上获取公共地址的过程涉及安装基于网络的“浏览器钱包”,例如 Phantom 或 Solflare。然后,它将生成一个随机的单词列表,称为 “助记词短语”,然后用于以单向密码学的形式导出(或计算)公共地址。

在这里我将分解每个步骤:

助记词

Solana 区块链上的公共地址通常源自 mnemonic phrase.

对于大多数人来说,他们通常会使用mnemonic phrase随机生成的单词列表,通常长度为 12 或 24 个单词。对于 Solana,该短语包含 BIP39 单词列表中非常具体的单词。

这些单词及其特定顺序的非常具体的组合将允许区块链使用Ed25519 算法“导出”(或“计算”)私钥 。然后可以使用该私钥来派生公钥,从而为我们提供一个(也称为私钥和公钥的组合。)keypair

从理论上讲,助记词本质上比随机字符串(例如私钥)更容易被人类阅读。因此,与随机字符串相比,人类更容易无错误地写下该短语。

私钥

派生私钥(或“秘密密钥”)是特殊密钥,是唯一能够为其相应公钥签署交易的密钥,从而证明它拥有公共地址。

私钥总是可以派生出它的“子”公钥(是的,这是多个,稍后会详细介绍),但公钥无法派生出它的私钥。

还值得注意的是,同样,私钥也无法派生出自己的助记词。这也是一种单向关系,也是区块链加密完整性的关键。

推导路径

生成区块链地址时最常被误解的部分之一是derivation path.这条特殊的信息允许单个私钥派生 出多个 公钥,而这些公钥无法辨别它们来自同一个私钥。只有私钥的所有者才能知道。

这些派生路径本质上是一个如下所示的序列:

顺序:m/<PURPOSE>/<COIN_TYPE>/<ACCOUNT>/<CHANGE>

  • 每个部分由一个单独的分隔/
  • m记做根密钥或“主”密钥
  • 之后的每个其他元素都m应该是零或正整数
  • 每个元素也可能以一个'结尾,表明它是“加固的”
    • 你可以在这里了解更多相关信息,但这并不是必需的。
    • 只需知道 Solana 使用强化元素并将自动强制执行此操作,无论是否'包含 s。

仅指定 的派生路径m/<PURPOSE>/<COIN_TYPE>(如 Solana CLI 使用的路径),只能派生“根密钥”。指定<ACCOUNT>/<CHANGE>将允许从同一私钥派生多个公钥。

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号码,基本上总是为公开地址设置

公钥和钱包地址

使用派生路径从私钥派生出的公钥(又名pubkey)是人们所熟知的“钱包地址”的公共地址。该地址将允许区块链上的任何人安全地转移代币或以其他方式与其帐户进行交互。

💡
原文链接:Derive Solana Addresses
本文由SlerfTools翻译,转载请注明出处。

SlerfTools专为Solana设计的工具箱,致力于简化区块链操作,提供无编程全可视化界面,使发币管理流动性无代码创建Dapp等复杂过程变得安全简单。