github.com/turingchain2020/turingchain@v1.1.21/wallet/bipwallet/transformer/btcbase/README.md (about) 1 # btcbase模块 2 3 本模块实现基于比特币规则的公钥和地址的生成 4 5 ## 涉及币种 6 - BTC -- 版本号为0x00 7 - BCH -- 版本号为0x00 8 - LTC -- 版本号为0x30 9 - ZEC -- 版本号为两个字节0x1c,0xb8 10 - USDT -- 版本号为0x00,与比特币相同 11 - TRC -- 版本号为0x00, 与比特币相同 12 13 ## 依赖清单 14 - github.com/mr-tron/base58/base58 15 - github.com/haltingstate/secp256k1-go 16 - golang.org/x/crypto/ripemd160 17 18 ## 输入输出格式说明 19 ```golang 20 //传入32字节私钥,生成压缩形式的公钥 21 func (t BtcBaseTransformer) PrivKeyToPub(priv []byte) (pub []byte, err error) 22 ``` 23 ```golang 24 //传入压缩或非压缩形式的公钥,生成base58编码的地址(压缩和非压缩形式的公钥生成的地址是不同的,但都是合法的) 25 func (t BtcBaseTransformer) PubKeyToAddress(pub []byte) (addr string, err error) 26 ``` 27 28 ## 生成规则 29 30 ![地址生成流程](btc_wallet_gene.png) 31 32 不同币种的区别只在于版本号 33 34 详细介绍可以参考《精通比特币》的第四章: 35 http://book.8btc.com/books/6/masterbitcoin2cn/_book/ch04.html