1
1
According to this wiki page to create a bitcoin address,
1) you have your public key of the properly derived path
2) Then SHA256 it
3) Then RIPEMD-160 it,
Add version byte at the front and boom blam you’re good.
But in bitcoinjs-lib, they have this function getAddress which seems to skip step 2 and continue down the path ensuring Base58Checking
function getAddress (node) {
return baddress.toBase58Check(bcrypto.hash160(node.publicKey), bitcoin.networks.bitcoin.pubKeyHash)
}
My question is, why is bitcoinjs-lib skipping step 1? Don’t you have to SHA256 the pub key again?
Derivation occurs pretty straightforwardly with derivePath
var child1 = root.derivePath("m/44'/0'/0'/0/0")
1https://github.com/bitcoinjs/bitcoinjs-lib/blob/master/src/crypto.js
hash160(buffer)isripemd160(sha256(buffer))– dave_thompson_085 – 2018-05-23T21:24:03.100Yes, that is obvious. The step skipped is the extra SHA256 – arshbot – 2018-05-23T21:25:36.977
Ah I see, my bad. Leave a proper answer so I can give you credit – arshbot – 2018-05-23T21:49:30.393