{"id":15956088,"url":"https://github.com/jsign/vkt-proof-bench","last_synced_at":"2025-10-15T19:46:17.847Z","repository":{"id":163182968,"uuid":"638554825","full_name":"jsign/vkt-proof-bench","owner":"jsign","description":"Benchmarks for Verkle Trees proofs (Multiproofs \u0026 Inner Product Arguments)","archived":false,"fork":false,"pushed_at":"2023-06-01T14:51:34.000Z","size":68,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-12T05:01:48.225Z","etag":null,"topics":["cryptography","ethereum","inner-product-argument","ipa","multiproof","verkle","verkle-trie"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jsign.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-09T15:43:31.000Z","updated_at":"2024-06-19T21:05:49.000Z","dependencies_parsed_at":null,"dependency_job_id":"ab292ca9-8adb-4d8f-a9ae-cfe9cb03539d","html_url":"https://github.com/jsign/vkt-proof-bench","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsign%2Fvkt-proof-bench","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsign%2Fvkt-proof-bench/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsign%2Fvkt-proof-bench/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsign%2Fvkt-proof-bench/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jsign","download_url":"https://codeload.github.com/jsign/vkt-proof-bench/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243893559,"owners_count":20364914,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cryptography","ethereum","inner-product-argument","ipa","multiproof","verkle","verkle-trie"],"created_at":"2024-10-07T13:28:25.220Z","updated_at":"2025-10-15T19:46:12.791Z","avatar_url":"https://github.com/jsign.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# vkt-proof-bench\nThis repository contains benchmarks to measure the performance of proof generation and verification in Verkle Trees.\n\n## Run\n\nYou can run this benchmark by just doing: `go run main.go`.\n\nThe first time it runs it may take longer than usual since it will generate the `precomp` file needed for fast MSM \nrequired by `go-verkle`. This file is saved and not recomputed in subsequent runs.\n\n\n## Results \nThe following are the results run on an AMD Ryzen 7 3800XT processor and https://github.com/crate-crypto/go-ipa/commit/a49f82a18f8cc7c6e73a4b7a704ee7c7a4ea1546go-ipa@a49f (with some twists only metric collection).\n\n```\n$ go run main.go\n##### VKT proof benchmark #####\nSetup: tree with 1000000 random key-values...\n\nFor 1 random-key values of the tree:\n        Generating proof took 51ms:\n                Collected 8 polynomials evaluations to prove\n                Collecting those polys evals (comm, evals, etc) took 0ms\n                The rest (Multiproof + nits) took 51ms\n        Serializing proof took 0ms\n        Deserializing proof took 0ms\n\nFor 1000 random-key values of the tree:\n        Generating proof took 217ms:\n                Collected 7307 polynomials evaluations to prove\n                Collecting those polys evals (comm, evals, etc) took 112ms\n                The rest (Multiproof + nits) took 104ms\n        Serializing proof took 1ms\n        Deserializing proof took 30ms\n\nFor 2000 random-key values of the tree:\n        Generating proof took 364ms:\n                Collected 14352 polynomials evaluations to prove\n                Collecting those polys evals (comm, evals, etc) took 203ms\n                The rest (Multiproof + nits) took 160ms\n        Serializing proof took 1ms\n        Deserializing proof took 53ms\n\nFor 4000 random-key values of the tree:\n        Generating proof took 661ms:\n                Collected 28377 polynomials evaluations to prove\n                Collecting those polys evals (comm, evals, etc) took 373ms\n                The rest (Multiproof + nits) took 287ms\n        Serializing proof took 3ms\n        Deserializing proof took 102ms\n\nFor 8000 random-key values of the tree:\n        Generating proof took 1287ms:\n                Collected 56284 polynomials evaluations to prove\n                Collecting those polys evals (comm, evals, etc) took 685ms\n                The rest (Multiproof + nits) took 602ms\n        Serializing proof took 5ms\n        Deserializing proof took 195ms\n\nFor 16000 random-key values of the tree:\n        Generating proof took 3802ms:\n                Collected 111399 polynomials evaluations to prove\n                Collecting those polys evals (comm, evals, etc) took 2336ms\n                The rest (Multiproof + nits) took 1465ms\n        Serializing proof took 16ms\n        Deserializing proof took 385ms\n\n\n##### Raw polynomials multiproof benchmark #####\nFor 1 polynomials:\n        Proving:\n                Proof serialization duration: 0.14ms\n                Proof creation duration: 164ms\n                Duration per step:\n                        Generate challenge r and powers : 0.04ms\n                        Calculate t, g(x) and D         : 64.63ms\n                        Calculate h(x) and E            : 49.50ms\n                        Calculate (h-g)(x) and E-D      : 0.02ms\n                        IPA for (h-g)(x) and E-D on t   : 50.13ms\n        Verification:\n                Proof deserialization duration: 0.14ms\n                Total duration: 5ms\n                Duration per step:\n                        Generate challenge r and powers                       : 0.00ms\n                        Calculating helper_scalars r^i/(t-z_i)                : 0.00ms\n                        g_2(t) = SUM y_i*(r^i/(t-z_i))=SUM y_i*helper_scalars : 0.03ms\n                        Compute E                                             : 0.33ms\n                        Compute E-D and verify IPA                            : 5.05ms\n\nFor 1000 polynomials:\n        Proving:\n                Proof serialization duration: 0.10ms\n                Proof creation duration: 64ms\n                Duration per step:\n                        Generate challenge r and powers : 1.07ms\n                        Calculate t, g(x) and D         : 14.39ms\n                        Calculate h(x) and E            : 4.68ms\n                        Calculate (h-g)(x) and E-D      : 0.01ms\n                        IPA for (h-g)(x) and E-D on t   : 44.40ms\n        Verification:\n                Proof deserialization duration: 0.10ms\n                Total duration: 8ms\n                Duration per step:\n                        Generate challenge r and powers                       : 1.14ms\n                        Calculating helper_scalars r^i/(t-z_i)                : 0.05ms\n                        g_2(t) = SUM y_i*(r^i/(t-z_i))=SUM y_i*helper_scalars : 0.05ms\n                        Compute E                                             : 2.66ms\n                        Compute E-D and verify IPA                            : 4.17ms\n\nFor 2000 polynomials:\n        Proving:\n                Proof serialization duration: 0.11ms\n                Proof creation duration: 69ms\n                Duration per step:\n                        Generate challenge r and powers : 2.19ms\n                        Calculate t, g(x) and D         : 20.68ms\n                        Calculate h(x) and E            : 4.07ms\n                        Calculate (h-g)(x) and E-D      : 0.00ms\n                        IPA for (h-g)(x) and E-D on t   : 42.69ms\n        Verification:\n                Proof deserialization duration: 0.11ms\n                Total duration: 11ms\n                Duration per step:\n                        Generate challenge r and powers                       : 2.45ms\n                        Calculating helper_scalars r^i/(t-z_i)                : 0.10ms\n                        g_2(t) = SUM y_i*(r^i/(t-z_i))=SUM y_i*helper_scalars : 0.06ms\n                        Compute E                                             : 4.55ms\n                        Compute E-D and verify IPA                            : 4.11ms\n\nFor 4000 polynomials:\n        Proving:\n                Proof serialization duration: 0.10ms\n                Proof creation duration: 82ms\n                Duration per step:\n                        Generate challenge r and powers : 5.40ms\n                        Calculate t, g(x) and D         : 31.12ms\n                        Calculate h(x) and E            : 3.95ms\n                        Calculate (h-g)(x) and E-D      : 0.00ms\n                        IPA for (h-g)(x) and E-D on t   : 42.45ms\n        Verification:\n                Proof deserialization duration: 0.10ms\n                Total duration: 16ms\n                Duration per step:\n                        Generate challenge r and powers                       : 4.57ms\n                        Calculating helper_scalars r^i/(t-z_i)                : 0.25ms\n                        g_2(t) = SUM y_i*(r^i/(t-z_i))=SUM y_i*helper_scalars : 0.05ms\n                        Compute E                                             : 8.41ms\n                        Compute E-D and verify IPA                            : 3.32ms\n\nFor 8000 polynomials:\n        Proving:\n                Proof serialization duration: 0.10ms\n                Proof creation duration: 116ms\n                Duration per step:\n                        Generate challenge r and powers : 14.32ms\n                        Calculate t, g(x) and D         : 54.71ms\n                        Calculate h(x) and E            : 4.07ms\n                        Calculate (h-g)(x) and E-D      : 0.01ms\n                        IPA for (h-g)(x) and E-D on t   : 43.18ms\n        Verification:\n                Proof deserialization duration: 0.10ms\n                Total duration: 25ms\n                Duration per step:\n                        Generate challenge r and powers                       : 8.04ms\n                        Calculating helper_scalars r^i/(t-z_i)                : 0.49ms\n                        g_2(t) = SUM y_i*(r^i/(t-z_i))=SUM y_i*helper_scalars : 0.04ms\n                        Compute E                                             : 13.78ms\n                        Compute E-D and verify IPA                            : 2.97ms\n\nFor 16000 polynomials:\n        Proving:\n                Proof serialization duration: 0.10ms\n                Proof creation duration: 191ms\n                Duration per step:\n                        Generate challenge r and powers : 43.83ms\n                        Calculate t, g(x) and D         : 100.36ms\n                        Calculate h(x) and E            : 3.98ms\n                        Calculate (h-g)(x) and E-D      : 0.00ms\n                        IPA for (h-g)(x) and E-D on t   : 42.86ms\n        Verification:\n                Proof deserialization duration: 0.10ms\n                Total duration: 40ms\n                Duration per step:\n                        Generate challenge r and powers                       : 15.18ms\n                        Calculating helper_scalars r^i/(t-z_i)                : 0.99ms\n                        g_2(t) = SUM y_i*(r^i/(t-z_i))=SUM y_i*helper_scalars : 0.03ms\n                        Compute E                                             : 21.28ms\n                        Compute E-D and verify IPA                            : 2.54ms\n\nFor 128000 polynomials:\n        Proving:\n                Proof serialization duration: 0.10ms\n                Proof creation duration: 2874ms\n                Duration per step:\n                        Generate challenge r and powers : 2077.34ms\n                        Calculate t, g(x) and D         : 749.15ms\n                        Calculate h(x) and E            : 4.04ms\n                        Calculate (h-g)(x) and E-D      : 0.01ms\n                        IPA for (h-g)(x) and E-D on t   : 44.41ms\n        Verification:\n                Proof deserialization duration: 0.10ms\n                Total duration: 236ms\n                Duration per step:\n                        Generate challenge r and powers                       : 100.18ms\n                        Calculating helper_scalars r^i/(t-z_i)                : 18.41ms\n                        g_2(t) = SUM y_i*(r^i/(t-z_i))=SUM y_i*helper_scalars : 0.05ms\n                        Compute E                                             : 114.70ms\n                        Compute E-D and verify IPA                            : 3.28ms\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjsign%2Fvkt-proof-bench","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjsign%2Fvkt-proof-bench","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjsign%2Fvkt-proof-bench/lists"}