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

Bit-Wasp/bitcoin-php通过扩展公钥生成比特币地址问题求助

问题解决方案

问题1:测试网配置下生成主网格式地址

原因:AddressCreator默认使用主网配置生成地址,未传入你初始化好的测试网实例,导致网络配置不生效。
修改代码:将返回地址的代码行修改为传入你提前声明的$btc网络实例即可:

// 原代码
// return $child_key->getAddress(new AddressCreator())->getAddress();
// 修改为
$addressCreator = new AddressCreator();
return $child_key->getAddress($addressCreator, $btc)->getAddress();

如果是旧版本的bitcoin-php库,需要将网络注入AddressCreator构造:

$addressCreator = new AddressCreator($btc);
return $child_key->getAddress($addressCreator)->getAddress();

修改后测试网环境会生成tb1开头的隔离见证地址、m/n开头的Legacy地址,不会再出现主网bc1格式的错误地址。

问题2:硬化派生路径要求提供私钥

这是BIP32协议的固有规则:带'后缀的硬化派生必须使用父私钥才能完成,仅用公钥无法实现硬化派生,不存在绕过该规则的方法。
可行实现方案:

  • 让用户在自己的钱包端完成所有硬化路径的派生,导出对应账户级的扩展公钥(比如BIP84标准的路径m/84'/0'/0'下的zpub/vpub/tpub)提交给系统
  • 系统拿到账户级扩展公钥后,仅对后面的非硬化路径(0/$index对应收款地址、1/$index对应找零地址)进行派生,全程不需要私钥,完全符合安全要求

内容的提问来源于stack exchange,提问作者brinhildr

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 16:15:06