You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python实现交易Hex的离线签名?求对应签名函数

Python实现交易Hex离线签名的方法

当然可以实现啦!完全不用自己从零搭建签名逻辑——市面上有很多经过安全验证的Python库,能帮你高效搞定这个需求,还能避免手动实现加密逻辑时容易踩的坑。下面我分两种常见链的场景给你写符合要求的函数:

场景1:比特币及兼容链(比如BTC、BCH等)

首先需要安装依赖库python-bitcoinlib,用pip就能搞定:

pip install python-bitcoinlib

接下来是核心函数,它接收原始交易Hex和十六进制格式的私钥,返回签名后的交易Hex:

from bitcoin.core import CTransaction, x
from bitcoin.core.script import CScript, OP_CHECKSIG
from bitcoin.wallet import CBitcoinSecret

def sign_raw_btc_transaction(raw_tx_hex, private_key_hex):
    # 1. 将原始交易Hex反序列化为交易对象
    raw_tx_bytes = x(raw_tx_hex)
    tx = CTransaction.deserialize(raw_tx_bytes)
    
    # 2. 把十六进制私钥转换成可用于签名的对象
    priv_key = CBitcoinSecret.from_secret_bytes(x(private_key_hex))
    pubkey = priv_key.pub
    
    # 3. 遍历交易的每个输入,完成签名
    for input_idx in range(len(tx.vin)):
        # 这里默认交易的输出是P2PKH类型(最常见的普通地址),如果是其他类型需要调整脚本
        script_pubkey = CScript([pubkey, OP_CHECKSIG])
        # 计算签名哈希
        sighash = tx.sighash(input_idx, script_pubkey)
        # 生成签名并附加哈希类型标识
        sig = priv_key.sign(sighash) + bytes([sighash.nHashType])
        # 设置输入的解锁脚本
        tx.vin[input_idx].scriptSig = CScript([sig, pubkey])
    
    # 4. 把签名后的交易序列化为Hex格式返回
    return tx.serialize().hex()

小提示:

  • 如果你的私钥是WIF格式(比如以L或K开头的字符串),直接用CBitcoinSecret(private_key_wif)初始化私钥对象即可,不用转十六进制。
  • 如果交易涉及P2SH、P2WPKH等复杂脚本类型,需要针对性调整解锁脚本的构造逻辑,建议参考对应链的脚本规范。

场景2:以太坊及兼容链(比如ETH、BSC等)

这类链可以用web3.py库来实现,先安装依赖:

pip install web3 eth-account

对应的签名函数如下:

from web3 import Web3
from eth_account import Account

def sign_raw_eth_transaction(raw_tx_hex, private_key):
    w3 = Web3()
    # 1. 解析原始交易Hex为交易字典
    tx_dict = w3.eth.account.decode_transaction(raw_tx_hex)
    # 2. 用私钥签名交易
    signed_tx = w3.eth.account.sign_transaction(tx_dict, private_key=private_key)
    # 3. 返回签名后的交易Hex
    return signed_tx.rawTransaction.hex()

重要提醒:

千万不要自己手动实现签名的核心加密逻辑!签名涉及哈希算法、签名格式、脚本规则等诸多细节,稍有不慎就会导致交易无效甚至资产丢失,用成熟的第三方库是最稳妥的选择。

内容的提问来源于stack exchange,提问作者Kamil Septio Trojnar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:23:04