go-blockchain/testdata/v2_spending_tx_mixin10.hex
Claude a803fd1794
feat(consensus): V2 Zarcanum signature and proof verification
Add full V2 transaction verification pipeline: parse SignaturesRaw variant
vector into structured ZC signature data, verify CLSAG GGX ring signatures
per ZC input, verify BPP range proofs, and verify BGE asset surjection
proofs with correct ring construction (mul8 point arithmetic).

Fix three wire format bugs that caused V2 parsing failures:
- RefTypeGlobalIndex (tag 0x1A) uses 8-byte LE, not varint
- Raw uint64_t variant (tagUint64) uses 8-byte LE, not varint
- zarcanum_tx_data_v1 fee uses FIELD() → 8-byte LE, not VARINT_FIELD()

Add cn_point_sub to C++ bridge and Go wrapper for BGE ring construction.
Add GetZCRingOutputs to chain for fetching ZC ring member data.

Co-Authored-By: Charon <charon@lethean.io>
2026-02-22 00:06:10 +00:00

1 line
No EOL
8.9 KiB
Text

030225101ad6060000000000001ad1030000000000001a70000000000000001a60020000000000001a24020000000000001ad6000000000000001a3e010000000000001a92000000000000001a23000000000000001aa5010000000000001a89000000000000001a15000000000000001a2f000000000000001a55000000000000001a14000000000000001a1c0000000000000064ea0914da4b064546ce695218a67ec5e3eb2e3afb701e6b26d5350d078b01dd0025101aff0e0000000000001a23000000000000001a0e020000000000001a6e000000000000001a48010000000000001a28000000000000001ab1000000000000001a39000000000000001a32000000000000001a31000000000000001a1d000000000000001a91000000000000001a3d000000000000001a14000000000000001a19000000000000001a0f00000000000000898f64f5ce0a9a0d73675b1cf56765eabbcd828c2b5038623ca0d25270066f180005164c124727e7e46dc9230c5b9f23054992d437196ad13a0ea6b3451cc5825f390e1700000b022f320b02e5712700e40b5402000000022686c57402e7c45f811b00331a4dc1f2f49d6ac4a297da7a6ba6234027fbc2eea208d160cb32b318d7f700c78858d0014239fe4b295be4aff542dece5f5b944f1687e036878bd80a38a9eaa401a4fa04abc38eb0447c1fb99810a3c635dba5ce1174c32d3eaafafc623bf483e858d42e8bf4ec7df064ada2e34934469cff6b626812d6103fcec70b680026b03ea35496c00cfd8e5adc92dbb79d8e3f144b68e905810cdf3a752a3b7156045fea20470e92972fb4a785b30355fb725317eb13a69756e269e770b96ba1a02c4006271e3db956abd94319806186e634d95604484827855db363505904eceb3674c32d3eaafafc623bf483e858d42e8bf4ec7df064ada2e34934469cff6b62685ec593299f965c07000500022b09a82c3177ce0ae00a1a0db75ea108c601386f0d30ee132f95ef64a99241c9a0136d04692074be1cee50cd2ad2c5464113cd6330ab679a9d2a3f3b495e72809da8539ae7818c29c5c414e20422045d8aa016cc17bc8099280946dbf405c6720310f3707df706e29bb2df81c2db3076c9741f30e985a1900e7a4373accdea1a6d07aa0435b1abb7f4d6c53f961db677b357defc9dd2e30f1fd50b770273fd3711035c51a797bd0d828c89db6b59b621c8137819272d1c793f579070e3aaf6a1c20eff2fbe87d7c07878eb711e267e607a6678a31da1b356e580cc85d5aee030ac01715bc93922b4579e731d4654f831deefbf757d57b04a9cce13c9101817b4e80ed4430a5ded71b0888ec1569955270a35328fadb274b69b0ca0d673c96e80c30f96a81cdf1fa28a38a4d02fb875046dbd9b80f0cb54524e65ee6897ce8814ca0076054a08bf05431756423d4001885450717f5b4b095bc121ccd060a61cc3730c2334d224073f9dab00ebb6d169b57d488ac97917e63bac22d6f9887d1531f104822cbb087cbf142af30fd761f30c9d3985cbffacc575b93155ffc7e235c2e609e3b138d7592b1f67d1653c3c256c125137c81fe589ff3c21f51951a125cb240bca857d656b8044606d6241b57f73a0deac1d15024b353f7af3f90b70bf486c0611dae7b3902bf0771f20b4952b91c2cf0f79cf30e23ef3cea548bb5629e2440496a049b5612a9dafa510a64646e5487cd0b3e7af75d3dee1dfb0021c9b95c1087c5c3e24ee8dcfa2ac46082768ffc47dab0d2c1a7ab0ded64f9771815bf02d05fe3c382bff34a78333279a77830e0d31133e58b9eeaec397a74588bdb146830b102c928d0c8ad2604219d4d965272342b14e0d17df8e4e177d152d3b4148d6850e656e63feb47ba3f766fb512a8c0a44212f10177e77412c00b48363031c30900ac47ef085d68690440fda38c49a77b9cf032fbe2703b4dc0c836abbe77fc693062d8226da158d9b0d4f36426417247685fc520d9cfce0f9fbbd067537f8c5a20858978b089a5a2775b8ae7d4d0a54f54723d5e9f017e0511226c40ae2bcd46d0077cff9b3a23b46ded581407844551537ced9d7f6b002bfcf5ca3b75b481adb01cd9a46a5f8de792177f90fc76bf7dbdb31de2bff9c8b03d4ba6aa952f72f4906b0889dfe8e64266dfa0e7f8b466a7767fc282a9b83e27ff0ed4a679e44d2a405268b5cd0e26c384f5e99cb9f4dfd8659661a04af84fcbd8fea9b3f4f9ab9bc09f57d1a034420abf9864359e049542d8686220ea9d5efdb400a2aa1145a546509e5c4c9dd1149cc09014cdecd9c0c02769f93732ff2fc00cbef1d8779e7f9770507ecc04fac82c886b4a0f35fae0eb77b62c5adfbec4f281182ff5908c7d8320ad095a7c7b133caaabbaf0efc3c522eba2201f5e92d58e7341161b6828ba91e060a4a405186caa1ff30b1dfe3a05f1e9ca7d24ea5d6057524824edab0ac07bb01ee4ca244a4aded4f161145ed144260f7320c3eafad59d555382580f8f2860806e9a964a02e80c65c1c375ec91879645152f9297502e075e2f3e7d8ccbd31b1085a5799f3e984f0af7ddf51319a312c05c61b9d6e9c01637b433a02a6af98144217a30a75196894d491af26afaf47dcbacd831df31666d51cd75a484f226d5cac2b43d5c2c57231841b9b6ee949a6255887deaa5ad0a86f164df0ad2ba698f0f93c9615c35f943091d960f487a3a94220fa795f6fc9f006e83055dc96c37234cf351a8de5c0877340ffd48a43ad234f4d24652b678ea2c4fe87a6a1859e8af44f0210fa5198630cbb557ee38a80f72799df306995d81473684bc795ae3e022ebd170960ad5f7564166441f61c2ee12dab92bc744484d4f1f35e11130ab9613bbf240e3f2fd7680d72815b4a84cb7a1a559a21321338b6c73408d2fb7a919b885f180e6904af5bcb2c9c6c82662cffadb701f3ccb5fedd93016fad583a6eba08593005161f855f1d8a96291e71ed5a58a4e31e7bbd486aad3f66df91ca12f4168261047ecf344de862eb5e26ba35f8dae111782bb72d961c955be13e77834a3e8f8809be3b350f27cf7d27591821fe12fddb9c466c03c0d7081422913a82a92bcb8003b003db3de75c0f2769aaa5bea9cc9e341c14ba6e6603702e91bb65cfd2e2f505a3a53bb50bd5706320e4b0b588b35267c07c10a58bcc2e76f8aaf297d6b3c60e10b41d3b05c071e40a7aa74c000a8fc12d6f5fd30eb0a5fbf623ad9c9114700c6c69edf07a1b9fb09d0ac0e299b64d6feab16173ede2547c89088e44da69ad030ac233af4a07450187bd08f2ade2c249e8e0db3b929c0fc740d188315c5550001e73624a20bde32d550d78fd21cc22db072a4535b6d186e443d1cd64c8649706acc1b3ef9c76e31f0355bcb2ca17aaa574ec05e04476d5f5a1cfd99f4c4c8a0cf72e2ecd5b2a61d549ab3e6954c559594b5b0ba81810ce49041099703dd9920d7b127e7afb3151b9a6a9435ffc8bd65dc2e858c55652f977aaa75307cb56740710f7f6b3feaed74a260ccfe94ee6beed0696e35f0c82c45d869c9d7549bac5bb03adcddd94d1e2eaf4e0b49dc03afa011d6b2922b2fa5fee6db0dae44c1fa33f0b7ff26188094bcf105389c45b0c27beaa120968f993edd02a161bbe7708902c074f29f527fc6927f09b76f772fda3dcd62b18e4cb273e73b997202804783a7d03450d4c18e24cd5bcb79f33bc4667c367bec07a5552cf33155d233668133bcf05ebc5c574a829311eab45d643444edaf9ae942d7132390168e2081ab2dc66680afa09677f19d87a9cccff573f47ba3512347b23f1b2e1b8c56de787c63524160b4adb44f2fb1d7ab88194287695ea58a3b36b2ada09484e4ca3375c1256e2ab0631ad24c90a2170b02099b15d3b1425d18808fcce117e30b1e0ec6699f8bc45016a9bbe4c8bde73df4ac6537fcb9db33d9cdb8bfc10f3bd7b7e73f64e7e004602ca32d021d7f12db8c54ed638f92a1b055517e55ada29dd526e0205c7613d00036baceabf31bfa30fe7c45d4bdb03ce978485457396d2a66df91d5dc87c98ae0f36596d91e868ca0edea773e2e82f717eb57ebad5724beb0695bfa630c56cb70f573b926066ea8b70fad77d4f57334f92dd08d1e97645ff19acbf5b677427ca0c28acfc19564519d837793daf60c9adf7c6b2526b46ab4a640f49d8bfc8fca70a51cf18065262e964d7f866211901f9409469139d7b8be9a0370c39ef7a51cb0933e5e67ba58bd1b960c0c534e6a51faf8e8a78a036ae06ca2cf463c95daed366a4c1d82eadddf6e090005372c07d5d48c48047190f8bb5fbe1d54f9f136fa7f3032e02d5917bbc72f8a2fd0d3986cabad7c6ce5623782a7a6ecdec7e239bc73f9ff9f5498f6fb9bb0225a0821bea6b3bd4ecd51a7ed18c87ba7dc1689cf010367b5708019de27fe1a25c7e5560fb1d610ff64b83cec4f56f46b5ab99af1b79fa474b9b260367be1bb3f878f1b558683347d19b01b744b592cd072ecfb95ec61c6e54bd630a6ba861bd13a2ec9eff69931c409240e8a0313d3cf0412328d4861a80472e480946320b3f90a7f2d1dcbeb530b84f4d41d6e636fc3aa06fce30b075010b2d1e053fab1c5e2801890eb9218220e4540929aae80753e239338075c1584298e0bd007fd8f70469761bab3c9417633395b7be758594a89dbdfd835e1ab2c0747e220056eeaf02314fff3e8144c9bfd8291393cff7ef0c133d3bbdd2b33b976b2258c4c9307b913756276cbcbf48d70d146cb4ff2cb6299b4e231f9d8d0eb236cdd2c101522d9b61e31f7dcc61f2056cc5b23cbd5e3fca42c52a171e67dd471c0ccbc3dc0302b1df84a4c5fe494449223d1e89f078ec8de3aafd14c38f36376296cb92960aa74acd9ad796c7eca78041f4077ccc67fbfc28ff7e3871cc242a647a9ce0460ace88fc0c727d6d89658e33a7b64656971f1f10e159df87c66ff999cd45ed5b0097b2eadcab7e8e4c808af6209d6859bea9c5b530f203106d02764d2bf5ce65093f86ff7127233aa878ae127865a3f2acd1dd3aac2ef5701e4bc395570a7289082f07fcf74e6a830b96f0916cdba86579cf9a47e935dc08c91ea9a5a3def91b787b342e262fb66ee1f90d93f76b1880f6bde297d0ab939f3817deb0c8e638d2e6111a2fddad329949138929e6fca2de215f66b91c8b6d72924851a03cf7161b4dacca6b8e3585c438c299b3ee57a51b468c2cbc57154c48a6a0d4742e5099645a147a827914527ec5e3932bbd844f1c591413c8db997b63105517350f37011aa54dc06d4741a940daaa34c8e5252cf8dc469db78388e4ed564dcfd4c91529f5482610cbc14d7679dec688c8556fd6689af43ad590674b2efcf08c88846f2b07e5afb407f886dde4134f43abc9fa0bf8ae5a94a782ad8b51a9e936faa23f710d13300040740930b390baa054de8ee3bffa71bff5f000d1f8432aa36baa81e4e25b77cf133f67854bc899aa9a448c06f6c95737b8f982c3120b99deebcb94d812e71cb420bfcdda20b7c0d25b1e3ec1bb8aef15ba83b40476525e83dbb741faa8f51ea59dabd97e3044b643ade483f8239502b047eb2a24345b5a7de3f6b9da7e0c0526f9ff706fa6064461a18bcb1ca1176b75966f19214ce9cd4bd10a952ab46bf5accbc4383cdde2c8f4f661af0b53c84c8c5d087bc39b651cc73a46620f6ca01d65cb1e64a807514f256f13ae51c9ef5a4bf7192facf740e144f6f7e108abd137fcfe2760a9a1170bbc040d4c4b70d910ea4e2343ed241b76ab47816a8969ec3a068184a92b01f1417eeb3b980ea99c2fd018f52d6098c3af7450cde98bc307388ad26de6e1cf28725e74d2c1a4469c3abfdcf5242ef885e1cf97cd5c7a4bbf49550052b2f52b15c51f092ece08ae22d7b64a6001e74d33d759cba7e56523d8b7390785eaa86741891c5c4e63084a4225a0239435630d20e5f974725f3b769779910d023f9f333273bfaf16113cbbb280f3f99c21f3b166a3a9fe3527c9e5c9812fff8b9995db1dc2556651488e203e2bbd7cebdf51131bb5baef4ef4c81f53d9e0f7d4029ad83cdc0762a19062706eae3ea538848293307c9024ce4bd6fdbbbbfb8bcd0fb17300d6e93faa3f19320b44b920bbcb3c3fe2fc85bdab97664234f3f709df05025dc666e1136577b0f1ba5b6144ae67614c5ed678a349b6cde0548a9bd60dc8044ffe2d2adbfde1bc70cdcc82ee21f8decb90f61592851d059531e232d24cd305f9ef05495ad9d68d19fa7c2a083dc2fe87e121c592b0196e0f7d099c7c93680b30c5dd63dd2360ca5c3ea4cd1a3eb55579472ed9546746318293fbb7e545067a0d09a7e1504679727867038887db86d90340c9df9d70731fccef539cb311d16b02876ffdbf22812e57bc5e50bb9c429a594610a334dbb0dd0f9f3b16872ede5b02