ToB企服应用市场:ToB评测及商务社交产业平台

标题: BTC 地址 [打印本页]

作者: 数据人与超自然意识    时间: 2024-7-23 09:15
标题: BTC 地址
比特币地址(Bitcoin Address)是用于吸收和发送比特币的唯一标识符,雷同于传统金融系统中的银行账号。一个比特币地址由一串字母和数字组成,通常以1、3或bc1开头,具体长度为26至35个字符。以下是比特币地址的主要类型及其特点:
地址生成过程

比特币地址是通过以下步调生成的:
利用与安全

安全发起

btcd示例

利用btcutil来创建比特币地址涉及几个步调,包括生成密钥对(私钥和公钥),然后利用公钥生成地址。
  1. func NewBTCAddress(){
  2.     // 生成私钥
  3.         privKey, err := btcec.NewPrivateKey()
  4.         if err != nil {
  5.                 panic(err)
  6.         }
  7.         // 导出公钥
  8.         pubKey := privKey.PubKey()
  9.         // 生成BTC地址(P2PKH)
  10.         addressPKH, err := btcutil.NewAddressPubKey(pubKey.SerializeUncompressed(), &chaincfg.MainNetParams)
  11.         if err != nil{
  12.                 panic(err)
  13.         }
  14.         fmt.Printf("Private Key: %x\n",privKey.Serialize())
  15.         fmt.Printf("Public Key: %x\n",pubKey.SerializeUncompressed())
  16.         fmt.Printf("BTC Address: %s\n",addressPKH.EncodeAddress())
  17.         // 生成公钥hash
  18.         pubKeyHash := btcutil.Hash160(pubKey.SerializeCompressed())
  19.     // 创建一个简单的多重签名脚本
  20.         script, err := txscript.NewScriptBuilder().AddOp(txscript.OP_DUP).
  21.                 AddOp(txscript.OP_HASH160).AddData(pubKeyHash).
  22.                 AddOp(txscript.OP_EQUALVERIFY).AddOp(txscript.OP_CHECKSIG).Script()
  23.         if err != nil {
  24.                 panic(err)
  25.         }
  26.         // 生成P2SH地址
  27.         addressP2SH, err := btcutil.NewAddressScriptHashFromHash(pubKeyHash, &chaincfg.MainNetParams)
  28.         if err != nil{
  29.                 panic(err)
  30.         }
  31.         fmt.Printf("P2SH Address: %s\n",addressP2SH.EncodeAddress())
  32.        
  33.         // 生成Bech32地址(P2WPKH)
  34.         addressBech32,err := btcutil.NewAddressWitnessPubKeyHash(pubKeyHash, &chaincfg.MainNetParams)
  35.         if err != nil{
  36.                 panic(err)
  37.         }
  38.         fmt.Printf("Bech32 Address: %s\n",addressBech32.EncodeAddress())
  39. }
复制代码
声明:本作品采用署名-非商业性利用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)进行允许,利用时请注明出处。
Author: mengbin
blog: mengbin
Github: mengbin92
cnblogs: 恋水无意
腾讯云开发者社区:孟斯特

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4