在探索以太坊或其他基于以太坊生态的应用时,我们经常会接触到一长串由字母和数字组成的地址,0x742d35Cc6634C0532925a3b844Bc9e7595f8d5e8,细心的用户可能会注意到,在这串以 0x 开头的十六进制地址中,往往在中间位置附近会出现一个或多个特定的数字,比如上面例子中的 23,这个“以太坊中间的数字”并非随意生成,它是以太坊地址生成机制中的一个关键组成部分,其背后有着重要的校验作用。

要理解这个数字的含义,我们需要先简单了解一下以太坊地址是如何生成的。

  1. 从私钥到地址的旅程

    • 私钥:一切始于一个随机生成的私钥,它是一个非常大的随机数,本质上控制着你对以太坊账户中资产的所有权,私钥必须严格保密,一旦泄露,账户资金将面临被盗风险。
    • 公钥:通过椭圆曲线算法(具体是 secp256k1),可以从私钥推导出公钥,公钥与私钥是一一对应的,但无法从公钥反推出私钥。
    • 地址:以太坊地址并非直接使用公钥,而是通过对公钥进行一系列哈希运算得来的,具体步骤通常是:对公钥进行 Keccak-256 哈希运算,然后取哈希值的后 40 个字符(即 20 字节),并在前面加上 0x随机配图