位元幣位址生成演算法之P2SH

2021-10-06 16:57:11 字數 1184 閱讀 2133

功能**:

//計算公鑰

if iscompress else

// base58check( 0x05 hash160( 0x00 0x14 hash160( pubkey ) ) )

//上面的 hash160(x) = ripemd160(sha256(x)),base58check(x) = x sha256(sha256(x)).substring(0,4)

if hash160, err = ripemd160aftersha256(pubkey); err != nil

return "", err

} checksum := sha256aftersha256(buf)

return base58.encode(buf),nil

}測試**:

func testnewp2sh(t *testing.t)  ,

} var err error

var address string

for _, onecase := range testcases

if address != onecase.address

}}

這裡的測試用例可以用electrum錢包生成的位址測試。不過electrum錢包匯出的私鑰是wif格式的,需要將它解碼轉成位元組陣列的形式填寫在測試用例中。

(全文完)

位元幣位址生成演算法之P2PKH

功能 如下 1.用私鑰生成公鑰 privkey secp256k1.privkeyfrombytes rawprivkey 2.計算公鑰 if iscompress else 3.計算公鑰的sha256雜湊值 4.計算上一步結果的ripemd160雜湊值 if hash160,err ripemd1...

位元幣位址生成演算法之公鑰和私鑰(上)

關於橢圓曲線部分的知識,我就不寫了,不是因為簡單,恰恰相反,因為太難了,我自己也沒搞懂。這裡我只寫一點寫 的時候需要掌握的一點點知識。首先是公鑰,我們可以把公鑰看成是乙個二維座標上的點,作為乙個二維座標上的點,它當然有x軸和y軸兩個數來共同決定。另外,這兩個數還特別大,每個數要用256bit來儲存,...

《區塊鏈寶典》位元幣默克爾根生成演算法及原理

一 默克爾樹 二 默克爾根 一 只有唯一一次鑄幣交易 只有唯一一筆coinbase交易的hash就是默克爾根的hash值 二 默克爾根的生成步驟 將每乙個葉子節點下的分支節點進行兩兩hash,之後大小端顛倒然後拼接到一起,拼接好的資料進行雜湊運算,之後在進行一次大小端顛倒 如下 package ma...