比特币(BTC)作为加密世界的先驱,其核心安全性与匿名性很大程度上依赖于其独特的地址生成机制,许多用户每天使用BTC地址进行交易,但可能并不清楚这个看似随机的字符串是如何从一串更长的数字——公钥——演变而来的,本文将深入浅出地探讨BTC地址是如何根据公钥生成的,揭开这背后的数学原理。

基础:公钥与私钥的“双胞胎”

要理解地址生成,首先必须明白比特币的密钥对系统:

  1. 私钥(Private Key):这是一串随机生成的、长度为256位的数字,本质上是一个巨大的整数,它是比特币所有权的终极证明,相当于你的“密码”或“钥匙”,私钥必须被严格保密,一旦泄露,对应地址中的所有BTC都将被盗。
  2. 公钥(Public Key):由私钥通过特定的加密算法(椭圆曲线算法,ECDSA,具体是secp256k1曲线)计算得出,公钥与私钥是一一对应的数学关系,但无法从公钥反向推导出私钥,公钥可以公开,它用于验证交易确实由对应私钥的签名者发起。

私钥是“秘密”,公钥是“公开的身份证明”。

核心步骤:从公钥到BTC地址

有了公钥之后,BTC地址的生成经历了一系列精心设计的数学转换和编码步骤,目的是为了将公钥压缩成更短、更易于人类阅读和机器处理的格式,同时确保其唯一性和可验证性,这个过程主要包括以下几个关键环节:

步骤1:公钥的格式选择与哈希(Hashing)

比特币的公钥通常有两种格式:

  • 未压缩公钥:长度为65字节,以0x04开头,后跟X和Y坐标各32字节。
  • 压缩公钥:长度为33字节,以0x020x03开头,后跟X坐标32字节,Y坐标的奇偶性由前缀决定(偶数0x02,奇数0x03),因为椭圆曲线方程决定了给定X坐标后Y坐标只有两个可能的值(一正一负),压缩公钥可以节省存储空间和交易大小,是目前的主流。

地址生成的第一步,就是对公钥进行SHA-256哈希运算。 无论公钥是压缩还是未压缩格式,首先都会对其进行一次SHA-256哈希,得到一个32字节(256位)的哈希值,哈希函数是一种单向函数,能将任意长度的输入转换为固定长度的输出,且微小的输入变化会导致输出发生巨大改变(雪崩效应)。

随机配图