什么是靓号地址?自定义加密货币地址指南
目录
大多数加密货币地址是看起来随机的字符串。靓号地址用一个有意的模式取代了这种随机性——一个你选择的可识别前缀或后缀。你的 Bitcoin 地址不再是 bc1q8x6k...,而可能是 bc1qcoffee...。你的 Ethereum 地址不再是 0x7a3b...,而可能是 0xdead... 或 0xcafe...。
靓号地址不是一种不同类型的地址。它们是标准地址,通过标准密码学过程生成,只是碰巧包含一个人类可读的模式。安全性与任何其他地址完全相同;唯一的区别是你搜索了许多可能的密钥,直到找到一个其地址与你期望的模式匹配。
靓号地址详解¶
每个加密货币地址都是从私钥通过单向数学过程派生的。你无法从地址反推出私钥,也无法在不实际计算的情况下预测给定私钥会产生什么地址。
靓号地址生成器利用了这一点,将生成过程运行数百万或数十亿次,每次检查结果是否与你期望的模式匹配。当找到匹配时,它输出私钥和对应的地址。过程在概念上很简单:
- 生成一个随机私钥
- 从私钥派生公钥
- 从公钥计算地址
- 检查地址是否包含目标模式
- 如果不包含,回到步骤1
这是一个暴力搜索。没有数学捷径可以生成产生特定地址前缀的私钥。搜索在计算上是昂贵的,所需时间随期望模式的长度呈指数增长。
"靓号"一词来自与靓号车牌相同的概念:一个个性化的标识符,除了识别和品牌之外没有功能性目的。
靓号生成的工作原理¶
技术过程因区块链而略有不同,但核心机制是一致的。
Bitcoin 靓号地址¶
对于 Bitcoin,生成器创建一个随机的256位私钥,计算 secp256k1 公钥,然后应用适当的地址编码。对于传统地址,这意味着用 SHA-256 和 RIPEMD-160 进行哈希,然后用 Base58Check 编码。对于 SegWit 地址,公钥哈希用 Bech32 编码。
由于 Bech32 只使用小写字母和数字(字符 023456789acdefghjklmnpqrstuvwxyz),Bitcoin SegWit 靓号模式可用的字符集比 Base58 更受限。你不能在 Bech32 靓号前缀中搜索大写字母或字符 1、b、i 或 o。
Ethereum 靓号地址¶
对于 Ethereum 和其他 EVM 链,生成器创建一个私钥,派生 secp256k1 公钥,用 Keccak-256 进行哈希,取最后20字节作为地址。然后地址以 0x 前缀显示。
Ethereum 靓号生成每次尝试通常比 Bitcoin 快,因为地址派生涉及的哈希步骤更少。十六进制字符集(0-9, a-f)意味着每个位置只有16个可能的字符,这也影响搜索时间。
并行搜索¶
现代靓号生成器将搜索并行化到多个 CPU 核心或 GPU 线程上。每个线程独立地生成和检查密钥。由于每次尝试都是独立的,搜索随可用计算能力线性扩展。如果一个线程每秒可以检查100万个地址,八个线程就可以检查800万个。
GPU 加速的生成器每秒可以完成数亿次检查,使6-7个字符的模式在合理的时间范围内可行。
按前缀长度的时间估算¶
找到靓号地址的时间取决于每个位置的可能字符数和期望模式的长度。数学就是简单的概率计算。
Bitcoin Bech32(字母表中32个字符)¶
对于 bc1q 后的 Bech32 地址前缀:
| 前缀长度 | 可能的组合 | 平均时间(100万次检查/秒) | 平均时间(1亿次检查/秒) |
|---|---|---|---|
| 1个字符 | 32 | 即时 | 即时 |
| 2个字符 | 1,024 | < 1秒 | 即时 |
| 3个字符 | 32,768 | < 1秒 | 即时 |
| 4个字符 | ~100万 | ~1秒 | 即时 |
| 5个字符 | ~3,300万 | ~33秒 | < 1秒 |
| 6个字符 | ~10亿 | ~17分钟 | ~10秒 |
| 7个字符 | ~340亿 | ~9.5小时 | ~5.7分钟 |
| 8个字符 | ~1万亿 | ~12.7天 | ~3小时 |
Ethereum 十六进制(字母表中16个字符)¶
对于 0x 后的十六进制前缀:
| 前缀长度 | 可能的组合 | 平均时间(100万次检查/秒) | 平均时间(1亿次检查/秒) |
|---|---|---|---|
| 1个字符 | 16 | 即时 | 即时 |
| 2个字符 | 256 | 即时 | 即时 |
| 3个字符 | 4,096 | < 1秒 | 即时 |
| 4个字符 | 65,536 | < 1秒 | 即时 |
| 5个字符 | ~100万 | ~1秒 | 即时 |
| 6个字符 | ~1,670万 | ~17秒 | 即时 |
| 7个字符 | ~2.68亿 | ~4.5分钟 | ~2.7秒 |
| 8个字符 | ~43亿 | ~1.2小时 | ~43秒 |
这些是平均时间。由于搜索的概率性质,你可能在预期时间的一半找到匹配,也可能需要两倍时间。这些估算假设在地址开头进行单一模式匹配;搜索后缀或地址中任意位置的模式会改变概率。
每增加一个字符,搜索时间就乘以字符集的大小(Bech32 为32倍,十六进制为16倍)。这种指数增长就是为什么超过7-8个字符的靓号前缀对大多数用户来说变得不切实际。
安全注意事项¶
靓号地址有几个安全细微之处,用户在生成或信任它们之前应该了解。
生成工具必须值得信赖¶
靓号生成过程会产生一个私钥。如果生成靓号地址的工具是恶意的,它可能会记录或传输该私钥,从而让攻击者完全控制该地址。这是靓号地址最大的单一风险。
始终使用你可以审计的开源工具。SafeSeed 的 Bitcoin 靓号地址生成器和 Ethereum 靓号地址生成器完全在你的浏览器中运行。私钥在本地生成和搜索,没有数据离开你的设备。源代码可公开查看。
靓号地址钓鱼¶
攻击者利用靓号地址进行一种称为"地址投毒"的特定类型钓鱼攻击。攻击方式如下:
- 攻击者观察目标在公共区块链上的交易历史
- 他们生成一个靓号地址,匹配目标经常交互的地址的前几个和后几个字符
- 他们从这个相似地址向目标发送一笔微小的交易
- 当目标之后从交易历史中复制地址时,可能会意外复制攻击者的相似地址
这种攻击在 Ethereum 和 EVM 链上特别有效,因为地址历史很容易查看。防御方法很简单:永远不要从交易历史中复制地址。始终使用你的地址簿或原始来源。
熵没有减少¶
一个常见的误解是靓号地址不太安全,因为攻击者知道地址的一部分。这是不正确的。地址是通过单向函数从私钥派生的。知道一个地址以 bc1qcoffee 开头不会给攻击者提供关于私钥的任何信息。私钥的搜索空间仍然是完整的 2^256 种可能性。
靓号模式约束的是地址,而不是密钥。靓号地址背后的私钥与任何其他私钥具有完全相同的熵。有关熵为何重要的更多信息,请参阅什么是加密货币中的熵?。
不要使用第三方生成服务¶
永远不要使用为你生成靓号地址并发送私钥给你的网站或服务。如果别人生成了密钥,他们就有一份副本。这适用于声称在其服务器上"安全"生成密钥的服务。唯一安全的方法是在你自己的设备上本地生成。
支持的链¶
靓号地址生成适用于任何区块链,尽管实际难度和字符集有所不同。
Bitcoin¶
传统地址(Base58Check,前缀 1 或 3)和 SegWit(Bech32,前缀 bc1q 或 bc1p)靓号地址都受支持。推荐 Bech32 靓号地址以获得更低的交易费用和更好的错误检测。
Ethereum 和 EVM 链¶
由于所有 EVM 链——Ethereum、Polygon、Arbitrum、Optimism、Base——共享相同的地址格式,为 Ethereum 生成的靓号地址自动在所有 EVM 链上有效。这是共享 0x 格式的优势之一。
Dogecoin 和 Litecoin¶
Dogecoin 地址以 D 开头,因此靓号生成在初始 D 之后搜索模式。Litecoin 传统地址以 L 或 M 开头,有类似的限制。两者都使用 Base58Check 编码。
Solana¶
Solana 地址使用 Base58 编码的 Ed25519 公钥。靓号生成是可能的,但需要 Ed25519 密钥生成,这在计算上与 Bitcoin 和 Ethereum 使用的基于 secp256k1 的生成不同。
靓号地址的用途¶
除了个人品牌之外,靓号地址还有几个实际用途:
商业身份¶
接受加密货币捐赠或支付的组织可以使用靓号地址来建立识别度和信任。慈善机构可能使用以 bc1qhelp... 开头的地址,咖啡店可能使用 0xcafe...。这使发送者更容易在视觉上确认他们正在向正确的实体发送。
欺诈检测¶
当你的地址有一个容易记住的模式时,如果恶意软件或钓鱼攻击替换了不同的地址,你更可能注意到。一目了然地识别你的靓号前缀,在自动化校验和验证之上增加了一层人工可检查的验证层。
收藏性和趣味性¶
一些用户纯粹为了娱乐或作为计算能力的展示而生成靓号地址。具有有意义的单词、重复字符或文化意义数字的地址在加密社区中具有新奇价值。
安全生成你的靓号地址¶
如果你想生成靓号地址,请遵循以下原则:
-
使用客户端的开源工具。SafeSeed 的 Bitcoin 靓号地址生成器和 Ethereum 靓号地址生成器完全在你的浏览器中运行,没有服务器端组件。
-
保持现实的期望。4-5个字符的自定义前缀可以在几秒到几分钟内实现。7-8个字符的前缀可能需要几小时。超过8个字符的任何内容都需要严肃的硬件和耐心。
-
立即保护私钥。一旦生成,靓号地址的私钥必须以与任何其他私钥相同的谨慎程度来存储。考虑使用冷存储或纸钱包。我们的纸钱包完整指南涵盖了最佳实践。
-
独立验证地址。生成后,使用单独的工具如 Bitcoin 地址验证器验证地址,确认其格式正确且校验和正确。
-
尽可能离线生成。为获得最大安全性,在气隙机器上生成你的靓号地址。这消除了任何基于网络的密钥泄露可能性。请参阅如何离线生成 Bitcoin 助记词了解离线密钥生成的一般方法。
靓号地址是在强大密码学之上的一个小小的个性化。数学不会改变,安全性不会减弱,唯一的成本是你在搜索中投入的计算时间。使用值得信赖的工具正确操作,这是一种安全且有趣的方式来让你的加密身份变得可识别。