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