Addresses

為什麼我的私鑰的公鑰沒有生成正確的公共地址?

  • March 20, 2018

私鑰:9ccbcabf23e271183dbed503b43277f4c6eee9ac918cd6cda75ebb73ceb35c7d

相應的公共地址:(0xa73Fb234B1773ed7b115D18A1f0a15579bA2C1e1例如,在 MyCrypto 上檢查自己)

可以從私鑰生成公鑰:25b867253fe38ac7ed594f54b4f55fa18c49ced332fc352991e48a77ab7816c759d46cab51a59d9833cd6d958cc752ad95f10bbe469b364db2de5d3535417966

然而,這個公鑰似乎並沒有產生上面的公共地址。相反,在通過 keccak256 執行它,然後取最後 20 個字節後,我們剩下:0xaa72e09d258da5496a7e6628e09207ec382e478a

我究竟做錯了什麼?

您需要散列公鑰(不是公鑰字元串)的字節。

在 Javascript https://runkit.com/embed/2w4f7dvkz2lg

keccak256 = require('js-sha3').keccak256;

keccak256(new Buffer('25b867253fe38ac7ed594f54b4f55fa18c49ced332fc352991e48a77ab7816c759d46cab51a59d9833cd6d958cc752ad95f10bbe469b364db2de5d3535417966', 'hex')).slice(24)

“a73fb234b1773ed7b115d18a1f0a15579ba2c1e1”

注意公鑰是如何放入緩衝區的。

引用自:https://ethereum.stackexchange.com/questions/40072