【问题标题】:How does Hyperledger fabric EVM generate the address from the public key?Hyperledger Fabric EVM 如何从公钥生成地址?
【发布时间】:2021-02-23 15:27:15
【问题描述】:

在以太坊中,钱包地址是钱包公钥的keccak256哈希的后20个字节。

我正在使用Hyperledger Fabric EVM,我想知道用于从公钥生成地址的机制。

我将 keccak256、sha256 和 sha-3 256 应用于我的公钥,但我没有得到正确的地址...

这是我的 pem 格式的私钥:

-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgjUp+AWrFlIVp13Dl
rpm/Uu2M++ZhOC4AbmjWdsofP7ihRANCAARWnvMdt+149KEt9yPKoLHG98lL5wPe
cGVMBMxsJhz3JLBSQlBCfLMz8fe5vIng4N7TGYt66P2HNeG/fLjwt7jI
-----END PRIVATE KEY-----

这是我的 pem 格式的公钥:

-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEVp7zHbftePShLfcjyqCxxvfJS+cD
3nBlTATMbCYc9ySwUkJQQnyzM/H3ubyJ4ODe0xmLeuj9hzXhv3y48Le4yA==
-----END PUBLIC KEY-----

这是我的十六进制公钥:

Public_key = 0x04569ef31db7ed78f4a12df723caa0b1c6f7c94be703de70654c04cc6c261cf724b0524250427cb333f1f7b9bc89e0e0ded3198b7ae8fd8735e1bf7cb8f0b7b8c8

这是我的地址:

13065B11B498911F2A19815035D0AC24457D1BB6

我正在使用 secp256r1

【问题讨论】:

    标签: hyperledger-fabric ethereum evm


    【解决方案1】:

    地址是3059301306072a8648ce3d020106082a8648ce3d030107034200 + public_key_hex的sha3-256的最后20个字节

    在我的例子中,取“结果”的最后 160 位(20 字节):

    var Public_key = 0x04569ef31db7ed78f4a12df723caa0b1c6f7c94be703de70654c04cc6c261cf724b0524250427cb333f1f7b9bc89e0e0ded3198b7ae8fd8735e1bf7cb8f0b7b8c8
    var result = SHA3_256(0x3059301306072a8648ce3d020106082a8648ce3d030107034200 + Public_key)
    var address = last_20bytes(result)
    
    console.log("address = ",address);
    
    //address = 13065B11B498911F2A19815035D0AC24457D1BB6
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-14
      • 1970-01-01
      • 2018-08-19
      • 1970-01-01
      • 1970-01-01
      • 2019-08-15
      相关资源
      最近更新 更多