今天问
今日活跃
浏览16次
0
我创建了这个testnet事务:
版本:01000000
马克:00
国旗:01
输入计数:01
输入#1 TXID:42A752FE4EBD0BDC69CB1B3724DE6CCC364661028AB9C04352F3F7CB0571147
输入#1 VOUT:00000000
输入#1脚本大小:00
输入#1脚本信号:
输入#1序列:ffffffff
输出计数:01
输出值:e8fd000000000000
输出脚本长度:16
输出脚本:00143778e5361fdad0d209de8a16c2ec4ca64618993e
证人:
见证堆栈大小:02
证人签名长度:47
见证人签名:304402204af85395dd8c758ac379c343bc278351f73cdf9d8548d933aada5fa4e13194a80220126c0614f75520709e63ac41 9308344C00A4A22C021AE1B9D8B42115AA73E37B01
密钥长度:21
见证人公开密钥:02AD2A42EED9FECC22093E8682B62B0346900B06587BE18F01BB8E60DF1AFEAAF8
锁定时间:00000000
当我尝试广播它时,它会给我以下错误:
Mempool accept test失败:64:非强制性脚本验证标志(检查失败(多)SIG操作的签名必须为零)
我相信发生此错误是因为签名不正确,但我很难确定我是如何创建错误签名的。
以下是我签署交易的步骤:
使用签名密钥对以下内容的哈希进行签名:
1.事务版本(4字节小端)
2.所有输入输出点的哈希(32字节)
3.所有输入序列的哈希(32字节)
4.输出点(32+4字节)
5.脚本代码(26字节,由0x1976a914<20字节发布密钥哈希>88ac组成)
6.有符号输入的值(8字节小端)
7.有符号输入的序列(4字节小端)
8.所有输出的哈希(32字节)
9事务的锁定时间(4字节小端)
10Sighash类型(4字节小端)
然后将该签名与签名密钥的公钥结合使用,以创建如上所示的见证脚本。
以下是我用于创建交易的信息:
输入#1:
txid:471157b07c3f6f5243c0b98a02614636cc6cde24371bcb69dc0bbd4efe52a742
输出:0
签名密钥wif:3a8c0c731cba400917f66bc3435a405387a9a5b20cdbfdedb19e37d0c6cad8b9
输出#1
价值:65000
收件人:TB1QXAUW2DSLMTGDZW73GTV9MZV5ERP3XF7MT83VQ
隔离证人
消息签名
bip143
共有
15小时前编辑
17小时前问
Keijyu
111青铜徽章
新撰稿人
sighash计算中缺少sighash类型。10sighash签名类型(4字节小尾端)
Azuchi Shigeyuki
15小时前
@ShigeyukiAzuchi在写步骤时犯了我的错误。我的代码添加了sig散列类型,但仍然得到了错误的签名
Keijyu
15小时前
因此,您生成的sighash的价值是什么
Azuchi Shigeyuki
11小时前
1答案
0
见证人签名:304402204af85395dd8c758ac379c343bc278351f73cdf9d8548d933aada5fa4e13194a80220126c0614f75520709e63ac41 9308344C00A4A22C021AE1B9D8B42115AA73E37B01
签名值似乎包含空格。
下面的签名值是否正确?
30440220722ed739d8a69832ecf6e5d636b2949ab6dc00026b88129a8652916904b80c6e0220370d30e8fb3e2d76f6c64b6d89e050ab47faefd3ca017752496035329534207e01
而完整发送是:
010000000001471157B07B07C3F6F5243C0B98A02614636CC6CDE24371BCB69DC0BBD4EFE52A7420000000000FFFF01E8FD0000001600143778E5361D0D209DE8A16C2EC4CA64618993E024730440220722ED739D8A69832ECF6E5D636B2949AB6DC00026B88129A8652916904B80C6E0220D30E8FB3D76F6C607070778E6D6D8950AB47017752520E490EAD9C002860B69026262626587be18f01bb8e60df1afeaaf800000000