Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion bip-0352.mediawiki
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
2022-03-28: https://gnusha.org/pi/bitcoindev/CAPv7TjbXm953U2h+-12MfJ24YqOM5Kcq77_xFTjVK+R2nf-nYg@mail.gmail.com/ [bitcoin-dev] Silent Payments – Non-interactive private payments with no on-chain overhead
2022-10-11: https://gnusha.org/pi/bitcoindev/P_21MLHGJicZ-hkbC4DGu86c5BtNKiH8spY4TOw5FJsfimdi_6VyHzU_y-s1mZsOcC2FA3EW_6w6W5qfV9dRK_7AvTAxDlwVfU-yhWZPEuo=@protonmail.com/ [bitcoin-dev] Silent Payment v4 (coinjoin support added)
2023-08-04: https://gnusha.org/pi/bitcoindev/ZM03twumu88V2NFH@petertodd.org/ [bitcoin-dev] BIP-352 Silent Payments addresses should have an expiration time
Version: 1.1.1
Version: 1.1.2
Requires: 340, 341, 350
</pre>

Expand Down Expand Up @@ -505,6 +505,8 @@ The <code>MAJOR</code> version is incremented if changes to the BIP are introduc
The <code>MINOR</code> version is incremented whenever the inputs or the output of an algorithm changes in a backward-compatible way or new backward-compatible functionality is added.
The <code>PATCH</code> version is incremented for other changes that are noteworthy (bug fixes, test vectors, important clarifications, etc.).

* '''1.1.2''' (2026-10-02):
** Add test vectors "Pubkey extraction from malleated p2pkh with failing OP_CHECKSIG" and "Pubkey extraction from malleated p2pkh with another pubkey pushed first"
* '''1.1.1''' (2026-04-16):
** Add test vector "Input keys intermediate sum is zero but final sum is non-zero"
* '''1.1.0''' (2026-03-02):
Expand Down
172 changes: 172 additions & 0 deletions bip-0352/send_and_receive_test_vectors.json
Original file line number Diff line number Diff line change
Expand Up @@ -2619,6 +2619,178 @@
}
]
},
{
"comment": "Pubkey extraction from malleated p2pkh with failing OP_CHECKSIG",
"sending": [
{
"given": {
"vin": [
{
"txid": "0000000000000000000000000000000000000000000000000000000000000001",
"vout": 0,
"scriptSig": "47304402202e02b6243dcc69e508702e4be4fd520cf65f3e94dfd0849ac6af29ac7e1f54a802206f8bf155d2e01f58d5af70ed7484c8e34258af344aca26ffb7602729e2ab3db801210279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f817980930060201010201010178ac632102c6047f9441ed7d6d3045406e95c07cd85c778e4b8cef3ca7abac09b95c709ee568",
"txinwitness": "",
"prevout": {
"scriptPubKey": {
"hex": "76a914751e76e8199196d454941c45d1b3a323f1433bd688ac"
}
},
"private_key": "0000000000000000000000000000000000000000000000000000000000000001"
}
],
"recipients": [
{
"address": "sp1qqgste7k9hx0qftg6qmwlkqtwuy6cycyavzmzj85c6qdfhjdpdjtdgqjuexzk6murw56suy3e0rd2cgqvycxttddwsvgxe2usfpxumr70xc9pkqwv",
"scan_pub_key": "0220bcfac5b99e04ad1a06ddfb016ee13582609d60b6291e98d01a9bc9a16c96d4",
"spend_pub_key": "025cc9856d6f8375350e123978daac200c260cb5b5ae83106cab90484dcd8fcf36"
}
]
},
"expected": {
"outputs": [
[
"6944a00d96d76a21bac956898c95526d145ec454ebc2b9920332ee900b6534fe"
]
],
"shared_secrets": [
"02c092d68b280bd1b2568c5348f306cd42246305c233580466ea9ca5a33b7cd700"
],
"input_private_key_sum": "0000000000000000000000000000000000000000000000000000000000000001",
"input_pub_keys": [
"0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"
]
}
}
],
"receiving": [
{
"given": {
"vin": [
{
"txid": "0000000000000000000000000000000000000000000000000000000000000001",
"vout": 0,
"scriptSig": "47304402202e02b6243dcc69e508702e4be4fd520cf65f3e94dfd0849ac6af29ac7e1f54a802206f8bf155d2e01f58d5af70ed7484c8e34258af344aca26ffb7602729e2ab3db801210279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f817980930060201010201010178ac632102c6047f9441ed7d6d3045406e95c07cd85c778e4b8cef3ca7abac09b95c709ee568",
"txinwitness": "",
"prevout": {
"scriptPubKey": {
"hex": "76a914751e76e8199196d454941c45d1b3a323f1433bd688ac"
}
}
}
],
"outputs": [
"6944a00d96d76a21bac956898c95526d145ec454ebc2b9920332ee900b6534fe"
],
"key_material": {
"spend_priv_key": "9d6ad855ce3417ef84e836892e5a56392bfba05fa5d97ccea30e266f540e08b3",
"scan_priv_key": "0f694e068028a717f8af6b9411f9a133dd3565258714cc226594b34db90c1f2c"
},
"labels": []
},
"expected": {
"addresses": [
"sp1qqgste7k9hx0qftg6qmwlkqtwuy6cycyavzmzj85c6qdfhjdpdjtdgqjuexzk6murw56suy3e0rd2cgqvycxttddwsvgxe2usfpxumr70xc9pkqwv"
],
"outputs": [
{
"priv_key_tweak": "7be503c3a106f5a3f7ca793a0b828269b40dd559a16508085afdce3c8e81b03e",
"pub_key": "6944a00d96d76a21bac956898c95526d145ec454ebc2b9920332ee900b6534fe",
"signature": "1539b68f754ade477cc0b4325e41acd9dd97b75b11acf248eccf4d968db4d1ed74d3ac820da7d0af087fb1ab30702bf84abbcebaef370ed602eeb7993adcd19a"
}
],
"tweak": "02be87d1a35d5bc34d771a18d94ecac4585d73036222688f85dbf91f75df8d0cc4",
"shared_secret": "02c092d68b280bd1b2568c5348f306cd42246305c233580466ea9ca5a33b7cd700",
"input_pub_key_sum": "0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"
}
}
]
},
{
"comment": "Pubkey extraction from malleated p2pkh with another pubkey pushed first",
"sending": [
{
"given": {
"vin": [
{
"txid": "0000000000000000000000000000000000000000000000000000000000000001",
"vout": 0,
"scriptSig": "2102c6047f9441ed7d6d3045406e95c07cd85c778e4b8cef3ca7abac09b95c709ee57547304402202e02b6243dcc69e508702e4be4fd520cf65f3e94dfd0849ac6af29ac7e1f54a802206f8bf155d2e01f58d5af70ed7484c8e34258af344aca26ffb7602729e2ab3db801210279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798",
"txinwitness": "",
"prevout": {
"scriptPubKey": {
"hex": "76a914751e76e8199196d454941c45d1b3a323f1433bd688ac"
}
},
"private_key": "0000000000000000000000000000000000000000000000000000000000000001"
}
],
"recipients": [
{
"address": "sp1qqgste7k9hx0qftg6qmwlkqtwuy6cycyavzmzj85c6qdfhjdpdjtdgqjuexzk6murw56suy3e0rd2cgqvycxttddwsvgxe2usfpxumr70xc9pkqwv",
"scan_pub_key": "0220bcfac5b99e04ad1a06ddfb016ee13582609d60b6291e98d01a9bc9a16c96d4",
"spend_pub_key": "025cc9856d6f8375350e123978daac200c260cb5b5ae83106cab90484dcd8fcf36"
}
]
},
"expected": {
"outputs": [
[
"6944a00d96d76a21bac956898c95526d145ec454ebc2b9920332ee900b6534fe"
]
],
"shared_secrets": [
"02c092d68b280bd1b2568c5348f306cd42246305c233580466ea9ca5a33b7cd700"
],
"input_private_key_sum": "0000000000000000000000000000000000000000000000000000000000000001",
"input_pub_keys": [
"0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"
]
}
}
],
"receiving": [
{
"given": {
"vin": [
{
"txid": "0000000000000000000000000000000000000000000000000000000000000001",
"vout": 0,
"scriptSig": "2102c6047f9441ed7d6d3045406e95c07cd85c778e4b8cef3ca7abac09b95c709ee57547304402202e02b6243dcc69e508702e4be4fd520cf65f3e94dfd0849ac6af29ac7e1f54a802206f8bf155d2e01f58d5af70ed7484c8e34258af344aca26ffb7602729e2ab3db801210279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798",
"txinwitness": "",
"prevout": {
"scriptPubKey": {
"hex": "76a914751e76e8199196d454941c45d1b3a323f1433bd688ac"
}
}
}
],
"outputs": [
"6944a00d96d76a21bac956898c95526d145ec454ebc2b9920332ee900b6534fe"
],
"key_material": {
"spend_priv_key": "9d6ad855ce3417ef84e836892e5a56392bfba05fa5d97ccea30e266f540e08b3",
"scan_priv_key": "0f694e068028a717f8af6b9411f9a133dd3565258714cc226594b34db90c1f2c"
},
"labels": []
},
"expected": {
"addresses": [
"sp1qqgste7k9hx0qftg6qmwlkqtwuy6cycyavzmzj85c6qdfhjdpdjtdgqjuexzk6murw56suy3e0rd2cgqvycxttddwsvgxe2usfpxumr70xc9pkqwv"
],
"outputs": [
{
"priv_key_tweak": "7be503c3a106f5a3f7ca793a0b828269b40dd559a16508085afdce3c8e81b03e",
"pub_key": "6944a00d96d76a21bac956898c95526d145ec454ebc2b9920332ee900b6534fe",
"signature": "1539b68f754ade477cc0b4325e41acd9dd97b75b11acf248eccf4d968db4d1ed74d3ac820da7d0af087fb1ab30702bf84abbcebaef370ed602eeb7993adcd19a"
}
],
"tweak": "02be87d1a35d5bc34d771a18d94ecac4585d73036222688f85dbf91f75df8d0cc4",
"shared_secret": "02c092d68b280bd1b2568c5348f306cd42246305c233580466ea9ca5a33b7cd700",
"input_pub_key_sum": "0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"
}
}
]
},
{
"comment": "P2PKH and P2WPKH Uncompressed Keys are skipped",
"sending": [
Expand Down
Loading