了解 Substrate 钱包和地址约定
Substrate 是由 Parity Technologies 创建的区块链开发框架,允许开发人员构建自定义区块链。它是 Polkadot 和许多其他区块链的基础。Substrate 提供了一个模块化架构,开发人员可以在其中选择和自定义各种组件,包括账户和地址系统。
Substrate 恰好是 Subspace 协议以及 Autonomys Network 构建的框架。
TL;博士
Autonomys 网络使用 SS58 地址格式。这意味着派生帐户的单个助记词可以用数字表示格式。例如,这个助记词:
burden elite evidence shiver unit spring churn primary brush fuel indoor magnet
给我们一个默认的 Substrate 地址:5DRdk5tocyroWWast4A5APtpV1xabrCb5GQ1G84TZUtTW3HE
在 Gemini(自定义前缀 2254)上看起来像这样:st7d7pacGKeK2G8ZTkDoZNaNtDdM3YYgr6XsjYg2kMQDZLERq
在 Taurus 上看起来像这样(自定义前缀 6094):sucS1hTjK61Rvc1dRLCzv36NFuuVTNJ8eveBhmvgGJE8sZDpf
但所有账户都代表同一个账户。
请注意,农民软件接受 in either 或 格式,奖励被发送到两种格式代表的单个帐户。--reward-address
st
su
如果您想了解更多关于其工作原理的信息,请继续阅读!
什么是 SS58 地址格式?
SS58 是 Base58-Check 编码的修改版本,专为基于 Substrate 的链设计。主要特性包括:
- 它源自比特币的 Base58-Check 编码,但进行了重要的修改
- 地址始终以特定于网络的前缀开头
- 使用 blake2b-512 哈希而不是 double-SHA256 进行校验和计算
- 包括通过前缀系统进行的内置类型识别
SS58 地址的基本结构是:
prefix (1-2 bytes) | payload (public key) | checksum (2-8 bytes)
为什么 Substrate 账户可以用不同的格式表示?
一个 Substrate 账户可以用多种格式表示,因为当编码格式发生变化时,底层公钥保持不变。同一账户可以表示为:
- 原始公钥 (32 字节)
- 基本表示
- 通常显示为十六进制字符串
- 例:
0x3c328a2597eac1a22dbb9ef23baf4477c91dc5c119d0d0b6fd4a7cf8f6506c06
- SS58 地址
- 特定于网络的编码格式
- 人类可读并包括错误检测
- 例:
5DRdk5tocyroWWast4A5APtpV1xabrCb5GQ1G84TZUtTW3HE
- 通用 Substrate 地址
- 使用默认的 Substrate 前缀 (42)
- 兼容任何基于 Substrate 的链条
以不同格式表示帐户的功能有几个用途:
- 网络识别
- 错误检测
- 跨链兼容性
- 人类可读性
什么是 SS58 自定义前缀?
SS58 自定义前缀是分配给不同基于 Substrate 的网络的唯一标识符。它有几个重要用途:
- 网络识别
- 每个网络都有一个唯一的前缀
- 帮助防止跨链交易错误
- 常见前缀:
- 0:波卡
- 2: 草间弥生
- 42: 通用基材
- 可用于其他网络的自定义范围
- 前缀范围:
- 0-1:波卡直播
- 2-16: Kusama 和早期采用者
- 17-41:保留供将来使用
- 42:通用 Substrate 地址
- 43-999:保留用于将来的协议
- 1000+:自定义应用程序特定地址
- 安全优势:
- 防止意外的跨链转移
- 支持对目标网络进行视觉识别
- 维护特定于网络的地址格式
不同网络上的同一账户示例:
Polkadot: 12MvtR9sUm8Gx3bPqhD5JYiyLdxEJ9kj9m8VRR3p7ZuygPHC
Kusama: DwFQQEgFLsjGAQKeky84MFpdcEpQX1mXeEkenLR3H6xF9PH
Generic: 5DRdk5tocyroWWast4A5APtpV1xabrCb5GQ1G84TZUtTW3HE
所有这些地址都表示相同的底层公有密钥,但根据其网络前缀的格式不同。
ss58.org 上的工具允许您使用这种行为来适应它。