Skip to content

Commit

Permalink
Add Output ID Proof test vectors
Browse files Browse the repository at this point in the history
  • Loading branch information
PhilippGackstatter committed Oct 25, 2023
1 parent b0f8278 commit 2198aa5
Showing 1 changed file with 203 additions and 0 deletions.
203 changes: 203 additions & 0 deletions tips/TIP-0045/tip-0045.md
Original file line number Diff line number Diff line change
Expand Up @@ -1401,6 +1401,209 @@ Transaction ID:
0x4125a5129ece49933dc24a38df82ecf62dd107bd07403648cb935478f394fc5a00001000
```

## Output ID Proof

### Single Output

An Output ID Proof for a transaction with a single output.

Transaction (1 Output) (binary-encoded):

```
0x490443ee9f5955c4cf1fe14d00000100002aa135e8d314aed6c1576616e2d38b73589a221f914e2036938ff3294a1a04760000000001000000000000000001000040420f00000000000000000000000000010000150e514b09393e50122d27267510724c036743754277443079355c07152f222500
```

Output ID Proof (Output Index 0) (json-encoded):

```json
{
"slot": 1306599375,
"outputIndex": 0,
"transactionCommitment": "0xf19781740f56e40014579adb74ca05c0d41d7395458e0c28f85204b4c3831a41",
"outputCommitmentProof": {
"type": 2,
"hash": "0x399c949535c72bb4b696dd1569f63915b5dd26822e7138349dde74a619ebe46a"
}
}
```

Output ID Proof (Output Index 0) (binary-encoded):

```
0xcf1fe14d0000f19781740f56e40014579adb74ca05c0d41d7395458e0c28f85204b4c3831a410220399c949535c72bb4b696dd1569f63915b5dd26822e7138349dde74a619ebe46a
```

### Five Outputs

An Output ID Proof for a transaction with five outputs (not a power of two number of outputs).

Transaction (5 Outputs) (binary-encoded):

```
0x490443ee9f5955c42a69480400000100002aa135e8d314aed6c1576616e2d38b73589a221f914e2036938ff3294a1a04760000000001000000000000000020000040420f000000000000000000000000000100004e6614257d0f11460315281e11274b272d465c0c06087778294b6e3e505f3200000040420f00000000000000000000000000010000424f1f695e16503f76476f7d541d051c016b130d502e4f3b502249152c5b7c54000040420f000000000000000000000000000100002d1a401d1470606f21733a184f3f4a713010651a2211033a690b3c6f21015c52000040420f00000000000000000000000000010000150c0d09214a7e6f4d11645f6d24406f6c3950090f782b37440d2719134f070d000040420f00000000000000000000000000010000652e08620a3b4c436d4a120b5d2f20723374403754232166792e4a29000e0f13000040420f00000000000000000000000000010000587b322e037420120c51576b2e2e4d205c3d46080c1d2971055c1a2069794838000040420f000000000000000000000000000100001f6311134d4736093340793d363459186943670103561f2d20436a090e3e451d000040420f00000000000000000000000000010000680113416907254311613a111a2b5b735f6e436c11220a372f0e5d28507c454a000040420f0000000000000000000000000001000034492d4f734b011f4878120053534c5f424066517b652f3609171a1e0c190709000040420f000000000000000000000000000100003b02352954251034220943153c631f6473595f6e5a2c157351606850621a1a5b000040420f000000000000000000000000000100005171045931294f265b675b1c3d557e0a5f56072e4a630b597b32742f65572e1e000040420f000000000000000000000000000100003c713b3d2d5e1f4b0348711b714c2b5e657e1968061c4e372e3d4b6921062331000040420f000000000000000000000000000100002c6f2a4741107c412f39593d4742457171630541721f6c4b7a3a04190e0a721c000040420f000000000000000000000000000100000f38217d311079404a0a7a762b0f125972795f22561577776a31415b531e173c000040420f000000000000000000000000000100007d1d1f5a7a2d492123187721446527791f5d172454495c0146683b6417567448000040420f0000000000000000000000000001000026586b714d20651e7d05032d7c2f431e2311174910237d725065502062195934000040420f0000000000000000000000000001000065287565632a66420063022f253f4564447624704f503b102a37610028246a7e000040420f00000000000000000000000000010000024a04246574032502172a36640d1935462714311f78120127581d47714f6d49000040420f00000000000000000000000000010000383d6958267d415462515d70590d160e09262c103e6a5b27334a2c0b3b644f79000040420f0000000000000000000000000001000065552c286513794c4769340f6d492f627337411b2a3f0f6558256d0d3c593b0c000040420f000000000000000000000000000100000f7573063d626b1163490a4362262a3a3044366d2d7d6a5e470a03675c121c26000040420f000000000000000000000000000100006e05524732705e325f651b3c0f1f045e1a6f23610e1b2066795e5a05116d3f24000040420f0000000000000000000000000001000034471553696a0031045b666d7a0b2c761260023a376a101e057556147d551c70000040420f00000000000000000000000000010000615e0716310e0326304a45552b4e6a1d7c4403704b240f1430643c5b513a4961000040420f00000000000000000000000000010000157c721907161a173e780d4e09285f4467422b790715335964765d3c4d205a0f000040420f000000000000000000000000000100003109614f3a1c511b442a2b1b5032393b3811216757577960745b4b623c447d2e000040420f00000000000000000000000000010000536133335c0867403f7a2a300e453d57205d595a66775e4634575e4803526709000040420f000000000000000000000000000100007424116251541033114a6277472b5017013b0f02225d363c493915647d107602000040420f00000000000000000000000000010000477862677e1a3b4a352f657355421a433a172a045c22306c406a594e65653d56000040420f00000000000000000000000000010000555d6964565e082a7248670537242266503c5e2f37735e3a2f14413163703978000040420f000000000000000000000000000100000c767a111356470e0f553f1b3e1a45431b6d745036505d23121f4d7e03594d27000040420f000000000000000000000000000100003c51753a1e207b4c4b6f4e6419161a393807104316584d0b1d7955766825521b00
```

Output ID Proof (Output Index 2) (json-encoded):

```json
{
"slot": 1688515374,
"outputIndex": 2,
"transactionCommitment": "0x136e4de73da82ea76984d400a4d71fd827f54d05a411519870e6b12dfd6f715c",
"outputCommitmentProof": {
"type": 0,
"l": {
"type": 0,
"l": {
"type": 1,
"hash": "0x246e927334aa19300bd2e329e9b89f2a6cc317c14e26eef1974a70532df4e8d3"
},
"r": {
"type": 0,
"l": {
"type": 2,
"hash": "0x2acb2638e5245e2a6e8fbf6ed3fce77d51dbd64d12d04663f3634f43edc62b71"
},
"r": {
"type": 1,
"hash": "0xf6487a13fb0700732b6933f0ddbacb01ee5d282dd730fc08160fee2825be9f45"
}
}
},
"r": {
"type": 1,
"hash": "0xa7226628c1173a6b8fef343b51fddcd140f283b8736838759183b179fad5e396"
}
}
}
```

Output ID Proof (Output Index 2) (binary-encoded):

```
0x2eb3a4640200136e4de73da82ea76984d400a4d71fd827f54d05a411519870e6b12dfd6f715c00000120246e927334aa19300bd2e329e9b89f2a6cc317c14e26eef1974a70532df4e8d30002202acb2638e5245e2a6e8fbf6ed3fce77d51dbd64d12d04663f3634f43edc62b710120f6487a13fb0700732b6933f0ddbacb01ee5d282dd730fc08160fee2825be9f450120a7226628c1173a6b8fef343b51fddcd140f283b8736838759183b179fad5e396
```

### 32 Outputs

An Output ID Proof for a transaction with 32 outputs.

Transaction (32 Outputs) (binary-encoded):

```
0x490443ee9f5955c42a69480400000100002aa135e8d314aed6c1576616e2d38b73589a221f914e2036938ff3294a1a04760000000001000000000000000020000040420f000000000000000000000000000100004e6614257d0f11460315281e11274b272d465c0c06087778294b6e3e505f3200000040420f00000000000000000000000000010000424f1f695e16503f76476f7d541d051c016b130d502e4f3b502249152c5b7c54000040420f000000000000000000000000000100002d1a401d1470606f21733a184f3f4a713010651a2211033a690b3c6f21015c52000040420f00000000000000000000000000010000150c0d09214a7e6f4d11645f6d24406f6c3950090f782b37440d2719134f070d000040420f00000000000000000000000000010000652e08620a3b4c436d4a120b5d2f20723374403754232166792e4a29000e0f13000040420f00000000000000000000000000010000587b322e037420120c51576b2e2e4d205c3d46080c1d2971055c1a2069794838000040420f000000000000000000000000000100001f6311134d4736093340793d363459186943670103561f2d20436a090e3e451d000040420f00000000000000000000000000010000680113416907254311613a111a2b5b735f6e436c11220a372f0e5d28507c454a000040420f0000000000000000000000000001000034492d4f734b011f4878120053534c5f424066517b652f3609171a1e0c190709000040420f000000000000000000000000000100003b02352954251034220943153c631f6473595f6e5a2c157351606850621a1a5b000040420f000000000000000000000000000100005171045931294f265b675b1c3d557e0a5f56072e4a630b597b32742f65572e1e000040420f000000000000000000000000000100003c713b3d2d5e1f4b0348711b714c2b5e657e1968061c4e372e3d4b6921062331000040420f000000000000000000000000000100002c6f2a4741107c412f39593d4742457171630541721f6c4b7a3a04190e0a721c000040420f000000000000000000000000000100000f38217d311079404a0a7a762b0f125972795f22561577776a31415b531e173c000040420f000000000000000000000000000100007d1d1f5a7a2d492123187721446527791f5d172454495c0146683b6417567448000040420f0000000000000000000000000001000026586b714d20651e7d05032d7c2f431e2311174910237d725065502062195934000040420f0000000000000000000000000001000065287565632a66420063022f253f4564447624704f503b102a37610028246a7e000040420f00000000000000000000000000010000024a04246574032502172a36640d1935462714311f78120127581d47714f6d49000040420f00000000000000000000000000010000383d6958267d415462515d70590d160e09262c103e6a5b27334a2c0b3b644f79000040420f0000000000000000000000000001000065552c286513794c4769340f6d492f627337411b2a3f0f6558256d0d3c593b0c000040420f000000000000000000000000000100000f7573063d626b1163490a4362262a3a3044366d2d7d6a5e470a03675c121c26000040420f000000000000000000000000000100006e05524732705e325f651b3c0f1f045e1a6f23610e1b2066795e5a05116d3f24000040420f0000000000000000000000000001000034471553696a0031045b666d7a0b2c761260023a376a101e057556147d551c70000040420f00000000000000000000000000010000615e0716310e0326304a45552b4e6a1d7c4403704b240f1430643c5b513a4961000040420f00000000000000000000000000010000157c721907161a173e780d4e09285f4467422b790715335964765d3c4d205a0f000040420f000000000000000000000000000100003109614f3a1c511b442a2b1b5032393b3811216757577960745b4b623c447d2e000040420f00000000000000000000000000010000536133335c0867403f7a2a300e453d57205d595a66775e4634575e4803526709000040420f000000000000000000000000000100007424116251541033114a6277472b5017013b0f02225d363c493915647d107602000040420f00000000000000000000000000010000477862677e1a3b4a352f657355421a433a172a045c22306c406a594e65653d56000040420f00000000000000000000000000010000555d6964565e082a7248670537242266503c5e2f37735e3a2f14413163703978000040420f000000000000000000000000000100000c767a111356470e0f553f1b3e1a45431b6d745036505d23121f4d7e03594d27000040420f000000000000000000000000000100003c51753a1e207b4c4b6f4e6419161a393807104316584d0b1d7955766825521b00
```

Output ID Proof (Output Index 0) (json-encoded):

```json
{
"slot": 71854378,
"outputIndex": 0,
"transactionCommitment": "0x904d514becc987a2950297476ee07fec838d780f60e6a67cc655cddc4c5333e4",
"outputCommitmentProof": {
"type": 0,
"l": {
"type": 0,
"l": {
"type": 0,
"l": {
"type": 0,
"l": {
"type": 0,
"l": {
"type": 2,
"hash": "0x94406e58a06ee2dd1a99472caed7bed6d82b1ea3d692195bcfec18cabdb16674"
},
"r": {
"type": 1,
"hash": "0x52d24e8cbbe5a92dc800e48a0135a5bb0f2d151c3345fbe122f63ad58f379cd8"
}
},
"r": {
"type": 1,
"hash": "0x08de9a5e8b92bafd57fef8bc3d2f4a3dbcf7eaed3efc59bd966891f6df836d1b"
}
},
"r": {
"type": 1,
"hash": "0xbc4ef7e28be5b72785eb1d00bb98cf190aad0a91d3bc1176b091c3bc5d5d5d53"
}
},
"r": {
"type": 1,
"hash": "0x0571ab27a77432a693bc717c325402b79121a7bd718fb8adefa7f4e9bbec09a8"
}
},
"r": {
"type": 1,
"hash": "0xa300087aefa3f2b42818c9edb5135ae5708dc2a3617daf9e654f09a96e4859d9"
}
}
}
```

Output ID Proof (Output Index 0) (binary-encoded):

```
0x2a6948040000904d514becc987a2950297476ee07fec838d780f60e6a67cc655cddc4c5333e40000000000022094406e58a06ee2dd1a99472caed7bed6d82b1ea3d692195bcfec18cabdb16674012052d24e8cbbe5a92dc800e48a0135a5bb0f2d151c3345fbe122f63ad58f379cd8012008de9a5e8b92bafd57fef8bc3d2f4a3dbcf7eaed3efc59bd966891f6df836d1b0120bc4ef7e28be5b72785eb1d00bb98cf190aad0a91d3bc1176b091c3bc5d5d5d5301200571ab27a77432a693bc717c325402b79121a7bd718fb8adefa7f4e9bbec09a80120a300087aefa3f2b42818c9edb5135ae5708dc2a3617daf9e654f09a96e4859d9
```

Output ID Proof (Output Index 28) (json-encoded):

```json
{
"slot": 71854378,
"outputIndex": 28,
"transactionCommitment": "0x904d514becc987a2950297476ee07fec838d780f60e6a67cc655cddc4c5333e4",
"outputCommitmentProof": {
"type": 0,
"l": {
"type": 1,
"hash": "0x24c6ff8772cb21ecc443f6f12a4db2e624c4e5710793575c4c74242c38f641cc"
},
"r": {
"type": 0,
"l": {
"type": 1,
"hash": "0xa058d1f3196d12febcd561cc60fb31ec4afaa935cb9781028e08a6b0df1bb5a2"
},
"r": {
"type": 0,
"l": {
"type": 1,
"hash": "0xd3b68289625ab76aba41ce4254731a94cd047efbe449973bbde5fa74c11d9f8e"
},
"r": {
"type": 0,
"l": {
"type": 0,
"l": {
"type": 2,
"hash": "0xcf02568a886a5c7c91c730d710d1b65b36a7656129817f408e1780905716ece9"
},
"r": {
"type": 1,
"hash": "0x0045ac64f5fdea88388b16737c273d3326437d67fd802e32b6364a2bf32b9325"
}
},
"r": {
"type": 1,
"hash": "0x93ae83d3031afb93c7e1eb0ef050d4b66c67fcd4f3cea280ffa5ea5deceb9223"
}
}
}
}
}
}
```

Output ID Proof (Output Index 28) (binary-encoded):

```
0x2a6948041c00904d514becc987a2950297476ee07fec838d780f60e6a67cc655cddc4c5333e400012024c6ff8772cb21ecc443f6f12a4db2e624c4e5710793575c4c74242c38f641cc000120a058d1f3196d12febcd561cc60fb31ec4afaa935cb9781028e08a6b0df1bb5a2000120d3b68289625ab76aba41ce4254731a94cd047efbe449973bbde5fa74c11d9f8e00000220cf02568a886a5c7c91c730d710d1b65b36a7656129817f408e1780905716ece901200045ac64f5fdea88388b16737c273d3326437d67fd802e32b6364a2bf32b9325012093ae83d3031afb93c7e1eb0ef050d4b66c67fcd4f3cea280ffa5ea5deceb9223
```

# Copyright

Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/).

0 comments on commit 2198aa5

Please sign in to comment.