功能**如下:
) //1. 用私鑰生成公鑰
privkey = secp256k1.privkeyfrombytes(rawprivkey)
//2. 計算公鑰
if iscompress else
//3. 計算公鑰的sha256雜湊值
//4. 計算上一步結果的ripemd160雜湊值
if hash160, err = ripemd160aftersha256(pubkey); err != nil
//6. 取上一步結果,計算sha256雜湊值
//7. 取上一步結果,在計算sha256雜湊值
hash256 = sha256aftersha256(hash160withprefix)
//8. 取上一步結果的前四個位元組,放在第五步結果後面,作為校驗
//9. 用base58編碼上一步結果
return base58.encode(address),nil
}下面是測試**:
func testnewp2pkh(t *testing.t) ,
} var err error
var address string
for _, onecase := range testcases
if address != onecase.address
} })
}
工具**:
下面這個**可以看到一步一步怎麼計算得到最終結果的。btw,這**要翻牆才能看。
(全文完)
位元幣位址生成演算法之P2SH
功能 計算公鑰 if iscompress else base58check 0x05 hash160 0x00 0x14 hash160 pubkey 上面的 hash160 x ripemd160 sha256 x base58check x x sha256 sha256 x substrin...
位元幣位址生成演算法之公鑰和私鑰(上)
關於橢圓曲線部分的知識,我就不寫了,不是因為簡單,恰恰相反,因為太難了,我自己也沒搞懂。這裡我只寫一點寫 的時候需要掌握的一點點知識。首先是公鑰,我們可以把公鑰看成是乙個二維座標上的點,作為乙個二維座標上的點,它當然有x軸和y軸兩個數來共同決定。另外,這兩個數還特別大,每個數要用256bit來儲存,...
《區塊鏈寶典》位元幣默克爾根生成演算法及原理
一 默克爾樹 二 默克爾根 一 只有唯一一次鑄幣交易 只有唯一一筆coinbase交易的hash就是默克爾根的hash值 二 默克爾根的生成步驟 將每乙個葉子節點下的分支節點進行兩兩hash,之後大小端顛倒然後拼接到一起,拼接好的資料進行雜湊運算,之後在進行一次大小端顛倒 如下 package ma...