Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

possible error with two missing #48

Closed
gballet opened this issue Apr 9, 2022 · 2 comments
Closed

possible error with two missing #48

gballet opened this issue Apr 9, 2022 · 2 comments

Comments

@gballet
Copy link
Contributor

gballet commented Apr 9, 2022

I am not yet sure if the error is with rust-verkle or go-verkle, I'm brain-dumping here.

I have a running testnet in which geth produces blocks, and I am verifying them with rust-verkle to make sure that the codebases are fully compatible.

I produce the following proof:

00000000090000000808080a0808080a0804000000bdab5fe8197dfb538e43e93b36bee12dc4b13a59bb88c96e9594b368e139c881a059443990023f4517419b00e286b52c979471c10034969ebb7ab86f7b6892d5c8f712f666f0daab3ac325f329f078f932afff9c7c970be57befaf4c6021576734854706d259fe6cb0e9fa626a8fb708fb03654aca32d003ca4078a07d7ae09d9f2b622162addd376bc0a7dcf01b8caf1e55cd10ab26f3d8f178ba3142183a43e7d77e98b9a74bf6b082682af1a0fd0d94d095c8f5cd97dbaf3c74ab32eaafbd06b9f6a3e317f60800768c7bd92482fa3b51f6cb9456fa9aa5e24a62a4c49faa13851e163c021e1eb096798cdc18ae42c637e8f96c075b627beb18013515f14984d3e47ea1df829209b850a0964e124b4da2605e881e2ba2f5e09a45672e6ca838c5ccd1a2ceb5d5ba629a0bbc8b9e1f6300debb4e6cb495c5faabe61afeb40744253e682305b5822d56ec0fb0d55338dc4fdf49803c3550a8294ebe366fec53a4cd218d32337b6c7c8b3d1d30920e9cc9aea232064ba63aba36c8a4a6e3daa07eb548b47406c09e2b619b6b9f02725ccd01c3e2ae60a461cdbe8033415d610e215070c9927f21a4b0f0c6cdf9122b2d69727d51cc6e9ae6fbcefe97936b87dbd312abd0e84942309a19d0da051f6faf1b953bbfd6b8452737b0e1d64a2f329be67a86bc4759c8430c625e21e5fa8d7f4a229c02cc8115d4f51960d8eae6fb9947169fa5ae5b3a9fbe2783bcb51fdbfbf9a828a469e08c9832d5f647848df3483c34f50e682fa271bad4e866ce04d8dc196a4135c51a534191d835998f6a6c70974a2e6444c9f85b8f314c510c929cc700ab58e7544babb1360cc2a5a7438e25a4b97603284fb60925486ffd7a8885e9bfe6ecfc0dc00ed9eddedfe96e78e60db0bec41442c042c826326c760e9f3cf6dff85b8a1cf319b9e984ef0c96ee8253e6e9762dc4d466d615304ec658d7397ddf2f6bf97a52ef70905c953be6746a18

Note that there are 9 "extension status" descriptors.

The associated (keys, values) are shown below. There are 10 different stems, but two stems use the same proof of absence (path 0x69...). All the blocks that don't verify seem to have the same feature (there's 500+ of them so far, only checked a dozen).

      [
        088bcd6531bcfdd7d4529b689d415af18485f3e5f7f08d50d0d3fc6f95e01500,
        "",
      ],
      [
        088bcd6531bcfdd7d4529b689d415af18485f3e5f7f08d50d0d3fc6f95e01502,
        "",
      ],
      [
        088bcd6531bcfdd7d4529b689d415af18485f3e5f7f08d50d0d3fc6f95e01503,
        "",
      ],
      [
        1be5b2c8a376ad34ba9e5917ef6f84de1d342758d5e147f7b9d05b90a2cd6700,
        "",
      ],
      [
        1be5b2c8a376ad34ba9e5917ef6f84de1d342758d5e147f7b9d05b90a2cd6701,
        "",
      ],
      [
        1be5b2c8a376ad34ba9e5917ef6f84de1d342758d5e147f7b9d05b90a2cd6702,
        "",
      ],
      [
        1be5b2c8a376ad34ba9e5917ef6f84de1d342758d5e147f7b9d05b90a2cd6703,
        "",
      ],
      [
        1be5b2c8a376ad34ba9e5917ef6f84de1d342758d5e147f7b9d05b90a2cd6704,
        "",
      ],
      [
        212e8cb758fb84a7ae1715f444bdb71c4c9e5db400a88cdee03338b91c5e8f79,
        "",
      ],
      [
        6766d007d8fd90ea45b2ac9027ff04fa57e49527f11010a12a73f58ffa580800,
        0000000000000000000000000000000000000000000000000000000000000000,
      ],
      [
        6766d007d8fd90ea45b2ac9027ff04fa57e49527f11010a12a73f58ffa580801,
        e89208cfa015d5191e0200000000000000000000000000000000000000000000,
      ],
      [
        6766d007d8fd90ea45b2ac9027ff04fa57e49527f11010a12a73f58ffa580802,
        3300000000000000000000000000000000000000000000000000000000000000,
      ],
      [
        6766d007d8fd90ea45b2ac9027ff04fa57e49527f11010a12a73f58ffa580803,
        c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470,
      ],
      [
        6766d007d8fd90ea45b2ac9027ff04fa57e49527f11010a12a73f58ffa580804,
        0000000000000000000000000000000000000000000000000000000000000000,
      ],
      [
        694dc6ea427eea992996e5dfa6992eb0434d7e305574cf74f45226538e34a800,
        "",
      ],
      [
        694dc6ea427eea992996e5dfa6992eb0434d7e305574cf74f45226538e34a802,
        "",
      ],
      [
        694dc6ea427eea992996e5dfa6992eb0434d7e305574cf74f45226538e34a803,
        "",
      ],
      [
        695921dca3b16c5cc850e94cdd63f573c467669e89cec88935d03474d6bdf900,
        "",
      ],
      [
        695921dca3b16c5cc850e94cdd63f573c467669e89cec88935d03474d6bdf901,
        "",
      ],
      [
        695921dca3b16c5cc850e94cdd63f573c467669e89cec88935d03474d6bdf902,
        "",
      ],
      [
        695921dca3b16c5cc850e94cdd63f573c467669e89cec88935d03474d6bdf903,
        "",
      ],
      [
        695921dca3b16c5cc850e94cdd63f573c467669e89cec88935d03474d6bdf904,
        "",
      ],
      [
        6d3edc4c95095f56c4019b8aa097cfd9e3f7095966788bc497e488d78f29fa00,
        "",
      ],
      [
        6d3edc4c95095f56c4019b8aa097cfd9e3f7095966788bc497e488d78f29fa01,
        "",
      ],
      [
        6d3edc4c95095f56c4019b8aa097cfd9e3f7095966788bc497e488d78f29fa02,
        "",
      ],
      [
        6d3edc4c95095f56c4019b8aa097cfd9e3f7095966788bc497e488d78f29fa03,
        "",
      ],
      [
        6d3edc4c95095f56c4019b8aa097cfd9e3f7095966788bc497e488d78f29fa04,
        "",
      ],
      [
        8cbef1db2d70a48f58505953351092c37f903bcf78b0aff05b1d544609fb8900,
        "",
      ],
      [
        8cbef1db2d70a48f58505953351092c37f903bcf78b0aff05b1d544609fb8901,
        "",
      ],
      [
        8cbef1db2d70a48f58505953351092c37f903bcf78b0aff05b1d544609fb8902,
        "",
      ],
      [
        8cbef1db2d70a48f58505953351092c37f903bcf78b0aff05b1d544609fb8903,
        "",
      ],
      [
        8cbef1db2d70a48f58505953351092c37f903bcf78b0aff05b1d544609fb8904,
        "",
      ],
      [
        9f2a59ea98d7cb610eff49447571e1610188937ce9266c6b4ded1b6ee37ecd00,
        0000000000000000000000000000000000000000000000000000000000000000,
      ],
      [
        9f2a59ea98d7cb610eff49447571e1610188937ce9266c6b4ded1b6ee37ecd01,
        e06a0ec345e83437e43b00000000000000000000000000000000000000000000,
      ],
      [
        9f2a59ea98d7cb610eff49447571e1610188937ce9266c6b4ded1b6ee37ecd02,
        0200000000000000000000000000000000000000000000000000000000000000,
      ],
      [
        9f2a59ea98d7cb610eff49447571e1610188937ce9266c6b4ded1b6ee37ecd03,
        c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470,
      ],
      [
        f1dd4962bea2321c889520858b4784bcf8f21181312ce2d7396244bd493e1d00,
        "",
      ],
      [
        f1dd4962bea2321c889520858b4784bcf8f21181312ce2d7396244bd493e1d01,
        "",
      ],
      [
        f1dd4962bea2321c889520858b4784bcf8f21181312ce2d7396244bd493e1d02,
        "",
      ],
      [
        f1dd4962bea2321c889520858b4784bcf8f21181312ce2d7396244bd493e1d03,
        "",
      ],
      [
        f1dd4962bea2321c889520858b4784bcf8f21181312ce2d7396244bd493e1d04,
        "",
      ],
    ],

It's quite hard to see why the verification in rust-verkle fails, would you have some insights on how to figure out if this is indeed the problem?

@gballet
Copy link
Contributor Author

gballet commented Apr 9, 2022

btw, it's totally possible to reconstruct the tree, my explorer code does it (a bug is always possible, of course)

image

so either it's a bug in the way rust-verkle reconstructs the tree, or in the way go-verkle produces the proof in that case.

@kevaundray
Copy link
Contributor

Closing this issue as its a deduplication of #50

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants