用 PHP 进行 BTC 转账问题?

2022-03-04 13:58:58 +08:00
 cqtop

小弟请教大家一个用 php 进行比特币转账的问题?

参考的这篇文章 https://learnku.com/articles/49660 用的 bitwasp/bitcoin 库,测试了 1 开头的地址没问题,但是用 3 开头地址给其他人转账时就无法成功 不知道要怎么改了 有知道的大哥,可以指点一下吗?只要能解决 php 能进行 3 开头地址转账,红包感谢

2791 次点击
所在节点    PHP
12 条回复
x86
2022-03-04 14:20:57 +08:00
1 是传统地址,3 是什么隔离啥的忘了,可能因为这个
akaxiaok339
2022-03-04 14:44:20 +08:00
vvhhaaattt
2022-03-04 14:51:03 +08:00
1 是公钥地址,一般个人生成的用的最广的。
3 是脚本地址,一般用于多签地址,你要从 3 开头地址转出去,得理解这个地址是怎么运作。
上述这两个都是 base58 编码的。
还有 bech32 的一对呢……
cqtop
2022-03-04 18:19:37 +08:00
谢谢上面朋友的回复
试了下 2 楼给的方法,广播时还是报错,我是新手,好多不太明白
有没有已经实现过的朋友呀,加下 iwkk888
感谢,感谢
acess
2022-03-05 10:07:37 +08:00
@x86 3 开头是 P2SH ,以前大多是多重签名,然后隔离见证用的更多。

@akaxiaok339 一般用的最多的是 P2SH-P2WPKH 吧。P2SH-P2WSH 感觉比较鸡肋,不如直接用 P2WSH ( bc1 开头)。
P2SH 是 160bit 的哈希,在多重签名涉及多方参与的时候被认为抗碰撞强度可能不够高(生日攻击下只有 80bit 强度),所以 P2WSH 就改用 256bit 的哈希。
acess
2022-03-05 10:16:35 +08:00
话说现在 taproot 都激活了来着( bc1p 开头)。
隔离见证之前还发现有个手续费超付漏洞,也是 taproot 里彻底修正了(不用 taproot 也能修正,但对于冷钱包来说,需要在冷热端之间需要传更多交易数据。而且其实隔离见证激活之前就有开发者公开讨论过类似情况了,但当时没意识到严重性——虽然这个漏洞威胁其实也不大): https://blog.trezor.io/details-of-firmware-updates-for-trezor-one-version-1-9-1-and-trezor-model-t-version-2-3-1-1eba8f60f2dd
brader
2022-03-05 11:23:00 +08:00
我做过比特币、以太币、grin 、beam 等,你是要做离线签,进行广播吗?
brader
2022-03-05 14:06:32 +08:00
做这个,建议你还是要知其然,这个比特币地址和私钥怎么回事,可以看一下我的博客,上面还配有一些 PHP 版的源码教程。

https://brad.9iqu.cn/bitcoin-segwit/
cqtop
2022-03-22 16:46:16 +08:00
@brader 是的,大哥,我要做离线签名,然后广播,,我只有 3 开头的转账地址,wif ,和接收方地址,,用上面的教程,以及自己改了下里面的各种方式,依然广播提交时失败
brader
2022-03-23 09:24:29 +08:00
@cqtop 广播失败的话,是当时提交广播就不成功吗? API 返回什么提示信息? 或者是广播出去了,一直呆在交易池,迟迟得不到矿工确认? 各种情况的解决办法都不同,必须要明确问题先。
cqtop
2022-03-23 17:20:19 +08:00
@brader 谢谢回复,,就是构造裸交易数据没搞对,已经解决了!
winner202201
2022-06-29 16:59:59 +08:00
@cqtop 可以分享下你的代码吗,使用 3 开头的地址转账无法成功

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/837944

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX