在接触和使用以太坊(Ethereum)的过程中,生成和分享收款码是一项常见操作,许多细心的人可能会注意到,以太坊地址(通常以收款码的形式呈现)的开头偶尔会出现一个看起来像是数字“0”或者字母“O”的字符,这不禁让人产生疑问:以太坊收款码的第一个字符,究竟是数字0还是字母O?要解答这个问题,我们需要从以太坊地址的构成规则说起。
以太坊地址的“出身”:从公钥到地址
以太坊地址并非随机生成的一串字符,它有其特定的生成算法:
- 生成私钥:用户随机生成一个私钥,这是一个256位的数字,是控制以太坊账户资产的根本。
- 生成公钥:通过椭圆曲线算法(ECDSA,具体是secp256k1曲线),从私钥计算出对应的公钥,公钥是一个512位的数字。
- 生成地址:对公钥进行一系列哈希运算(首先是Keccak-256哈希,然后取后20位),最终得到一个40个字符的十六进制地址,这个地址通常以“0x”开头,但在实际收款码中,我们看到的往往是“0x”之后的那40个字符,或者直接是这40个字符组成的地址。
十六进制字符集:0-9和A-F
