If bids and transaction bundles were transmitted in clear text over the peer-to-peer (P2P) network, it could allow competing bidders and providers to observe and adjust their strategies based on the visible bids. This visibility potentially harms the expected utility of bidders, as their competitors could outbid them by adjusting their bids accordingly. Moreover, the premature revelation of a provider’s commitment to a bid could lead to information leakage about the total value of the block being constructed. This would not only affect the privacy of the providers but also skews the competitive landscape, enabling providers to underbid based on the leaked value information.To counteract these privacy issues mev-commit provides end-to-end privacy for all bids and commitments in the sense that until commitments are opened after the corresponding L1 block has been confirmed, the contents of the commitment and the corresponding bid are only visible to the bidder who made the bid and the provider who made the commitment. All other bidders and providers and external parties learn nothing except that this provider has made a commitment. Moreover, it is crucial that commitments to bids are binding to the specific bid, i.e., that the commitment can only be opened for that single bid. Since bidders and providers can have conflicting incentives, it is important that they can both open the commitments, which is guaranteed using zero-knowledge proofs.
The security and privacy of mev-commit is achieved by combining two novel cryptographic primitives, anonymous receiver-updatable broadcast encryption (ARUBE), and dual-phase commitments (DPCOM), with a highly efficient ZK proof.
ARUBE is used to efficiently disseminate bids from bidders to providers of their choice in a privacy-preserving manner, DPCOM is used to securely commit to those bids and later allow for the opening of such commitments, and a ZK proof is used to ensure that commitments can be opened by providers and bidders. Below we expand on the specific security and privacy notions achieved for the bidders and the providers along with a short description of the corresponding cryptographic primitive used for each.
Each bidder can choose a group of providers who will have access to their bids. The bids are then encrypted and sent to this specific group of providers. Other bidders and providers remain unaware of the details of a bid and its designated receivers. The cryptographic primitve that mev-commit leverages to achieve this privacy notion in an efficient way is called ARUBE.
ARUBE is the primitive that allows bidders in the mev-commit protocol to privately send bids to a subset of the providers without revealing what this subset is. This functionality is commonly provided by anonymous broadcast encryption [BBW06]. A feature of broadcast encryption is that a new set of recipients can be specified for each message that is encrypted.In commitment games, the set of recipients for a given bidder typically remains stable since bidders mostly send their bids to the set of providers they work with and occasionally add or remove a provider from that set. To be able to leverage this for more efficient schemes, we refine the notion of broadcast encryption by adding an algorithm for updating the set of recipients, while the encryption algorithm encrypts a message for a previously determined recipient set. We call this notion anonymous receiver-updatable broadcast encryption (ARUBE).The image below illustrates ARUBE in operation, where a bidder securely posts an encrypted bid to providers A and B. Provider C and any eavesdropper will be unable to decrypt the bid.
Using ARUBE, mev-commit keeps all information and value related to bids private pre-execution while allowing them to be settled in a decentralized manner.
A provider who receives a bid can make a commitment to it, which they also sign for authentication. The signed commitment binds the provider to the bid. Furthermore, the process is executed in such a way that only the bidder who issued the bid can identify a commitment as being related to their bid. This approach ensures a high level of privacy for the providers, as the commitments they issue are not linkable to a specific bid. In a normal run of the protocol the provider opens all its commitments at the end of the L1 slot, however if the provider refuses to open any of its commtiments, the bidder can independently open the commitment without needing assistance from the provider. This functionality is provided by the novel notion of dual-phase commitments.
DPCOM is a two-party commitment protocol that allows a message to be committed in two distinct phases. In the first phase, one party precommits to a message and receives both a precommitment and an opening key. In the second phase, the other party commits to the precommitment generated in the first phase, receiving a decommitment information as the output.A key feature of a dual-phase commitment scheme is its flexibility in opening the resulting commitment using either the opening key or the decommitment information. This is especially useful in the context of the mev-commit protocol, where the bidder generates a precommitment to its bid, after which the provider commits to that precommitment. This process also ensures that both parties can open the commitment: the bidder obtains the opening key when generating the precommitment, and the provider obtains the decommitment information when committing to the precommitment. Consequently, both parties can later prove the content of the committed message to third parties. Crucially, if the provider misbehaves and refuses to publicly open the commitment, the bidder can independently open it without needing assistance from the provider.The image below illustrates provider B committing to a bid posted by bidder 2, while the other parties remain unaware of the specific bid being committed to.
A crucial property of the commitments issued by providers on mev-commit is that they can both be opened by providers as well as bidders. Being able for the bidders to open commitments is necessary when providers violate the commitment and thus have no incentive to open it. Therefore, when providers open a commitment, they have to prove in zero-knowledge that the commitment was generated correctly. This ZK proof is verified in a smart contract on the mev-commit chain when the provider sends the commitment-opening transaction. Thus, a provider can only open commitments that have been generated correctly and could also have been opened by the bidder.
The ZK proof used has been tailor-made for this particular use-case and optimized for efficiency. It is based on so-called sigma protocols and only requires a few elliptic curve operations and the computation of a hash. Generating a single ZK proof for the commitment opening takes only 0.122 milliseconds on a Mac M1 Pro. Furthermore, only around 32k gas is consumed in the smart contract to verify the proof. For comparison, the overall gas cost of the commitment opening transaction is around 488k gas. Hence, only less than 7% of the gas cost is attributed to the zero-knowledge proof verification.More details on the used ZK proofs can be found here.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Documentation","colors":{"primary":"#E97D25","light":"#E97D25","dark":"#E97D25"},"logo":{"light":"https://mintcdn.com/primev-24/vCvd1KJjwKE40BBt/logo/light.svg?fit=max\u0026auto=format\u0026n=vCvd1KJjwKE40BBt\u0026q=85\u0026s=9328e283852e060d9fd99dc9f92b7803","dark":"https://mintcdn.com/primev-24/vCvd1KJjwKE40BBt/logo/dark.svg?fit=max\u0026auto=format\u0026n=vCvd1KJjwKE40BBt\u0026q=85\u0026s=3ad707c866922e72a7ac26aaa16badee"},"favicon":"https://mintcdn.com/primev-24/vCvd1KJjwKE40BBt/favicon.svg?fit=max\u0026auto=format\u0026n=vCvd1KJjwKE40BBt\u0026q=85\u0026s=9df046f9631bbbd08673df25e8bf75a5","footer":{"socials":{"twitter":"https://twitter.com/primev_xyz","github":"https://github.com/primev/mev-commit","linkedin":"https://www.linkedin.com/company/primevxyz"}},"integrations":{"ga4":{"measurementId":"G-H7MFKTB1FS"}},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"primev-24","hasAudioNarration":false,"actualSubdomain":"primev-24","customDomains":["docs.primev.xyz"],"gitSource":{"type":"github","owner":"primev","repo":"mev-commit-docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ae91ed5b06fa73e673c71bd:success","clientVersion":"0.0.4087","searchFilterCounts":[{"language":"default","tag":"Documentation","count":105},{"language":"default","tag":"API Reference","count":104},{"language":"default","tag":"Concepts","count":49},{"language":"default","tag":"Knowledge Base","count":39},{"language":"default","tag":"Developers","count":28},{"language":"default","tag":"Get Started","count":28},{"language":"default","tag":"Bidder","count":24},{"language":"default","tag":"Provider","count":20},{"language":"default","tag":"Products","count":17},{"language":"default","tag":"mev-commit chain and p2p","count":13}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"div.min-w-full>pre.language-shell{white-space:pre-wrap;word-break:break-word;overflow-wrap:break-word}.inline-card-header>a{height:100%}.inline-card-header>a>div{padding-left:1.25rem;padding-right:1.25rem}.inline-card-header>a>div>div{display:inline-block;vertical-align:middle}.inline-card-header>a>div>h2{display:inline-block;vertical-align:middle;margin:auto 0 auto 10px}.inline-card-header div a{text-decoration:none;font-weight:600;border-bottom:1px solid rgb(var(--primary-light))!important}#content.mdx-content[data-page-title=\"Welcome to Primev\"]{margin-top:0.75rem}#content.mdx-content[data-page-title=\"Welcome to Primev\"]>h3:first-child{margin-top:0}"}],"page":{"pagePath":"v1.1.0/concepts/privacy","slug":"/v1.1.0/concepts/privacy","pageMetadata":{"title":"Security \u0026 Privacy","sidebarTitle":"Security \u0026 Privacy","description":null,"href":"/v1.1.0/concepts/privacy"},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,p:`p`,..._provideComponents(),...props.components},{Frame,Heading,OptimizedImage,Tip}=_components;if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`If bids and transaction bundles were transmitted in clear text over the peer-to-peer (P2P) network, it could allow competing bidders and providers to observe and adjust their strategies based on the visible bids. This visibility potentially harms the expected utility of bidders, as their competitors could outbid them by adjusting their bids accordingly. Moreover, the premature revelation of a provider’s commitment to a bid could lead to information leakage about the total value of the block being constructed. This would not only affect the privacy of the providers but also skews the competitive landscape, enabling providers to underbid based on the leaked value information.`}),`\n`,_jsx(_components.p,{children:`To counteract these privacy issues mev-commit provides end-to-end privacy for all bids and commitments in the sense that until commitments are opened after the corresponding L1 block has been confirmed, the contents of the commitment and the corresponding bid are only visible to the bidder who made the bid and the provider who made the commitment. All other bidders and providers and external parties learn nothing except that this provider has made a commitment. Moreover, it is crucial that commitments to bids are binding to the specific bid, i.e., that the commitment can only be opened for that single bid. Since bidders and providers can have conflicting incentives, it is important that they can both open the commitments, which is guaranteed using zero-knowledge proofs.`}),`\n`,_jsx(Tip,{children:`The security and privacy of mev-commit is achieved by combining two novel cryptographic primitives, anonymous receiver-updatable broadcast encryption (ARUBE), and dual-phase commitments (DPCOM), with a highly efficient ZK proof.`}),`\n`,_jsx(_components.p,{children:`ARUBE is used to efficiently disseminate bids from bidders to providers of their choice in a privacy-preserving manner, DPCOM is used to securely commit to those bids and later allow for the opening of such commitments, and a ZK proof is used to ensure that commitments can be opened by providers and bidders. Below we expand on the specific security and privacy notions achieved for the bidders and the providers along with a short description of the corresponding cryptographic primitive used for each.`}),`\n`,_jsx(Heading,{level:`2`,id:`posting-bids`,children:`Posting Bids`}),`\n`,_jsx(_components.p,{children:`Each bidder can choose a group of providers who will have access to their bids. The bids are then encrypted and sent to this specific group of providers. Other bidders and providers remain unaware of the details of a bid and its designated receivers. The cryptographic primitve that mev-commit leverages to achieve this privacy notion in an efficient way is called ARUBE.`}),`\n`,_jsx(Heading,{level:`3`,id:`anonymous-receiver-updatable-broadcast-encryption-arube`,children:`Anonymous Receiver-Updatable Broadcast Encryption (ARUBE)`}),`\n`,_jsxs(_components.p,{children:[`ARUBE is the primitive that allows bidders in the mev-commit protocol to privately send bids to a subset of the providers without revealing what this subset is. This functionality is commonly provided by anonymous broadcast encryption `,_jsx(_components.a,{href:`https://www.cs.utexas.edu/~bwaters/publications/papers/privatebe.pdf`,children:`[BBW06]`}),`. A feature of broadcast encryption is that a new set of recipients can be specified for each message that is encrypted.`]}),`\n`,_jsx(_components.p,{children:`In commitment games, the set of recipients for a given bidder typically remains stable since bidders mostly send their bids to the set of providers they work with and occasionally add or remove a provider from that set. To be able to leverage this for more efficient schemes, we refine the notion of broadcast encryption by adding an algorithm for updating the set of recipients, while the encryption algorithm encrypts a message for a previously determined recipient set. We call this notion anonymous receiver-updatable broadcast encryption (ARUBE).`}),`\n`,_jsx(_components.p,{children:`The image below illustrates ARUBE in operation, where a bidder securely posts an encrypted bid to providers A and B. Provider C and any eavesdropper will be unable to decrypt the bid.`}),`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/primev-24/4WGjB8DW4_T8qPTp/v1.1.0/images/ARUBE.png?fit=max\u0026auto=format\u0026n=4WGjB8DW4_T8qPTp\u0026q=85\u0026s=ae8c1b64ea5ac30334bf8a7301f83bf5`,\"data-og-width\":`467`,width:`467`,\"data-og-height\":`359`,height:`359`,\"data-path\":`v1.1.0/images/ARUBE.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/primev-24/4WGjB8DW4_T8qPTp/v1.1.0/images/ARUBE.png?w=280\u0026fit=max\u0026auto=format\u0026n=4WGjB8DW4_T8qPTp\u0026q=85\u0026s=f5907471a55f53766fffe825f9633e25 280w, https://mintcdn.com/primev-24/4WGjB8DW4_T8qPTp/v1.1.0/images/ARUBE.png?w=560\u0026fit=max\u0026auto=format\u0026n=4WGjB8DW4_T8qPTp\u0026q=85\u0026s=672aba647d7030acc4cae3d98f822b89 560w, https://mintcdn.com/primev-24/4WGjB8DW4_T8qPTp/v1.1.0/images/ARUBE.png?w=840\u0026fit=max\u0026auto=format\u0026n=4WGjB8DW4_T8qPTp\u0026q=85\u0026s=04fe5eeb39282937bd5bd95a3078713b 840w, https://mintcdn.com/primev-24/4WGjB8DW4_T8qPTp/v1.1.0/images/ARUBE.png?w=1100\u0026fit=max\u0026auto=format\u0026n=4WGjB8DW4_T8qPTp\u0026q=85\u0026s=6b47be5a6a54767a294d8539fc5d275f 1100w, https://mintcdn.com/primev-24/4WGjB8DW4_T8qPTp/v1.1.0/images/ARUBE.png?w=1650\u0026fit=max\u0026auto=format\u0026n=4WGjB8DW4_T8qPTp\u0026q=85\u0026s=e8cebd61d64d0a5d8209b23efc9692e4 1650w, https://mintcdn.com/primev-24/4WGjB8DW4_T8qPTp/v1.1.0/images/ARUBE.png?w=2500\u0026fit=max\u0026auto=format\u0026n=4WGjB8DW4_T8qPTp\u0026q=85\u0026s=2f26001e32e3ac29a64abf492649be9b 2500w`})}),`\n`,_jsx(_components.p,{children:`Using ARUBE, mev-commit keeps all information and value related to bids private pre-execution while allowing them to be settled in a decentralized manner.`}),`\n`,_jsx(Heading,{level:`2`,id:`committing-to-bids`,children:`Committing to Bids`}),`\n`,_jsx(_components.p,{children:`A provider who receives a bid can make a commitment to it, which they also sign for authentication. The signed commitment binds the provider to the bid. Furthermore, the process is executed in such a way that only the bidder who issued the bid can identify a commitment as being related to their bid. This approach ensures a high level of privacy for the providers, as the commitments they issue are not linkable to a specific bid. In a normal run of the protocol the provider opens all its commitments at the end of the L1 slot, however if the provider refuses to open any of its commtiments, the bidder can independently open the commitment without needing assistance from the provider. This functionality is provided by the novel notion of dual-phase commitments.`}),`\n`,_jsx(Heading,{level:`3`,id:`dual-phase-commitment-dpcom`,children:`Dual-Phase Commitment (DPCOM)`}),`\n`,_jsx(_components.p,{children:`DPCOM is a two-party commitment protocol that allows a message to be committed in two distinct phases. In the first phase, one party precommits to a message and receives both a precommitment and an opening key. In the second phase, the other party commits to the precommitment generated in the first phase, receiving a decommitment information as the output.`}),`\n`,_jsx(_components.p,{children:`A key feature of a dual-phase commitment scheme is its flexibility in opening the resulting commitment using either the opening key or the decommitment information. This is especially useful in the context of the mev-commit protocol, where the bidder generates a precommitment to its bid, after which the provider commits to that precommitment. This process also ensures that both parties can open the commitment: the bidder obtains the opening key when generating the precommitment, and the provider obtains the decommitment information when committing to the precommitment. Consequently, both parties can later prove the content of the committed message to third parties. Crucially, if the provider misbehaves and refuses to publicly open the commitment, the bidder can independently open it without needing assistance from the provider.`}),`\n`,_jsx(_components.p,{children:`The image below illustrates provider B committing to a bid posted by bidder 2, while the other parties remain unaware of the specific bid being committed to.`}),`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/primev-24/4WGjB8DW4_T8qPTp/v1.1.0/images/dpcom.png?fit=max\u0026auto=format\u0026n=4WGjB8DW4_T8qPTp\u0026q=85\u0026s=b2f2962af520edcf0086fc095c6fc1cd`,\"data-og-width\":`657`,width:`657`,\"data-og-height\":`355`,height:`355`,\"data-path\":`v1.1.0/images/dpcom.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/primev-24/4WGjB8DW4_T8qPTp/v1.1.0/images/dpcom.png?w=280\u0026fit=max\u0026auto=format\u0026n=4WGjB8DW4_T8qPTp\u0026q=85\u0026s=d06e40163a5b6301b07c1e85975b24d9 280w, https://mintcdn.com/primev-24/4WGjB8DW4_T8qPTp/v1.1.0/images/dpcom.png?w=560\u0026fit=max\u0026auto=format\u0026n=4WGjB8DW4_T8qPTp\u0026q=85\u0026s=c134c65784580bc208fef12ff03f7ef2 560w, https://mintcdn.com/primev-24/4WGjB8DW4_T8qPTp/v1.1.0/images/dpcom.png?w=840\u0026fit=max\u0026auto=format\u0026n=4WGjB8DW4_T8qPTp\u0026q=85\u0026s=c5f4cd4e9deaf34086b4375b9e801126 840w, https://mintcdn.com/primev-24/4WGjB8DW4_T8qPTp/v1.1.0/images/dpcom.png?w=1100\u0026fit=max\u0026auto=format\u0026n=4WGjB8DW4_T8qPTp\u0026q=85\u0026s=7faa520685a88760e270e631d6ace6f8 1100w, https://mintcdn.com/primev-24/4WGjB8DW4_T8qPTp/v1.1.0/images/dpcom.png?w=1650\u0026fit=max\u0026auto=format\u0026n=4WGjB8DW4_T8qPTp\u0026q=85\u0026s=488d79160438351cb72f3dabd2face82 1650w, https://mintcdn.com/primev-24/4WGjB8DW4_T8qPTp/v1.1.0/images/dpcom.png?w=2500\u0026fit=max\u0026auto=format\u0026n=4WGjB8DW4_T8qPTp\u0026q=85\u0026s=9c746d0a462b3030c265c5897385e9d7 2500w`})}),`\n`,_jsxs(_components.p,{children:[`You can read more on ARUBE and DPCOM `,_jsx(_components.a,{href:`https://mirror.xyz/preconf.eth/iz2J0uTXHhl8DiAkG-VLLwvCp-8qcc_Z7A8_4rU0A3g`,children:`here`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`zk-proofs-for-opening-commitments`,children:`ZK Proofs for Opening Commitments`}),`\n`,_jsx(_components.p,{children:`A crucial property of the commitments issued by providers on mev-commit is that they can both be opened by providers as well as bidders. Being able for the bidders to open commitments is necessary when providers violate the commitment and thus have no incentive to open it. Therefore, when providers open a commitment, they have to prove in zero-knowledge that the commitment was generated correctly. This ZK proof is verified in a smart contract on the mev-commit chain when the provider sends the commitment-opening transaction. Thus, a provider can only open commitments that have been generated correctly and could also have been opened by the bidder.`}),`\n`,_jsx(Heading,{level:`3`,id:`implementation-and-efficiency`,children:`Implementation and Efficiency`}),`\n`,_jsx(_components.p,{children:`The ZK proof used has been tailor-made for this particular use-case and optimized for efficiency. It is based on so-called sigma protocols and only requires a few elliptic curve operations and the computation of a hash. Generating a single ZK proof for the commitment opening takes only 0.122 milliseconds on a Mac M1 Pro. Furthermore, only around 32k gas is consumed in the smart contract to verify the proof. For comparison, the overall gas cost of the commitment opening transaction is around 488k gas. Hence, only less than 7% of the gas cost is attributed to the zero-knowledge proof verification.`}),`\n`,_jsxs(_components.p,{children:[`More details on the used ZK proofs can be found `,_jsx(_components.a,{href:`https://mirror.xyz/preconf.eth/AgtLSBob1hd2A924vlL7jCyJxQDZZE2tCq_K07w5vuU`,children:`here`}),`.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Security \u0026 Privacy","sidebarTitle":"Security \u0026 Privacy","description":null,"href":"/v1.1.0/concepts/privacy"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Posting Bids","slug":"posting-bids","depth":2,"children":[{"title":"Anonymous Receiver-Updatable Broadcast Encryption (ARUBE)","slug":"anonymous-receiver-updatable-broadcast-encryption-arube","depth":3,"children":[]}]},{"title":"Committing to Bids","slug":"committing-to-bids","depth":2,"children":[{"title":"Dual-Phase Commitment (DPCOM)","slug":"dual-phase-commitment-dpcom","depth":3,"children":[]}]},{"title":"ZK Proofs for Opening Commitments","slug":"zk-proofs-for-opening-commitments","depth":2,"children":[{"title":"Implementation and Efficiency","slug":"implementation-and-efficiency","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":[],"subdomain":"primev-24","siteName":"Documentation","title":"Security \u0026 Privacy - Documentation","navMaps":{"firstHrefInVersion":{"v1.2.x":{"href":"/v1.2.x/concepts/privacy","matchLevel":1},"v1.1.0":{"href":"/v1.1.0/concepts/privacy","matchLevel":0}},"firstHrefInLanguage":{}},"lastModified":"2026-08-17T19:35:19.211Z","originalFileLocation":"v1.1.0/concepts/privacy.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"application-name\" content=\"Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/primev-24/brCCNTodP4-GXx45/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/primev-24/brCCNTodP4-GXx45/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/primev-24/brCCNTodP4-GXx45/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/primev-24/brCCNTodP4-GXx45/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/primev-24/brCCNTodP4-GXx45/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/primev-24/brCCNTodP4-GXx45/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/primev-24/brCCNTodP4-GXx45/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/primev-24/brCCNTodP4-GXx45/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/primev-24/brCCNTodP4-GXx45/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Security \u0026amp; Privacy - Documentation\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.primev.xyz/v1.1.0/concepts/privacy\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://primev-24.mintlify.site/_mintlify/api/og/v2?division=Concepts\u0026amp;title=Security+%26+Privacy\u0026amp;theme=ef5fd9abf3635cb59735d8a5\u0026amp;signature=6148bd4bbf3b539ad74ffb30ebbaa977488ec3b6e371044456d854d62bf0b743\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Security \u0026amp; Privacy - Documentation\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://primev-24.mintlify.site/_mintlify/api/og/v2?division=Concepts\u0026amp;title=Security+%26+Privacy\u0026amp;theme=ef5fd9abf3635cb59735d8a5\u0026amp;signature=6148bd4bbf3b539ad74ffb30ebbaa977488ec3b6e371044456d854d62bf0b743\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/primev-24/brCCNTodP4-GXx45/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#E97D25\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.primev.xyz/v1.1.0/concepts/privacy\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/v1.1.0/concepts/privacy.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.primev.xyz/#organization\",\"name\":\"Documentation\",\"url\":\"https://docs.primev.xyz\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/primev-24/vCvd1KJjwKE40BBt/logo/light.svg?fit=max\u0026auto=format\u0026n=vCvd1KJjwKE40BBt\u0026q=85\u0026s=9328e283852e060d9fd99dc9f92b7803\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.primev.xyz#website\",\"name\":\"Documentation\",\"url\":\"https://docs.primev.xyz\",\"publisher\":{\"@id\":\"https://docs.primev.xyz/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.primev.xyz/v1.1.0/concepts/privacy#webpage\",\"url\":\"https://docs.primev.xyz/v1.1.0/concepts/privacy\",\"name\":\"Security \u0026 Privacy\",\"dateModified\":\"2026-08-17T19:35:19.211Z\",\"isPartOf\":{\"@id\":\"https://docs.primev.xyz#website\"},\"breadcrumb\":{\"@id\":\"https://docs.primev.xyz/v1.1.0/concepts/privacy#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.primev.xyz/v1.1.0/concepts/privacy#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Concepts\",\"item\":\"https://docs.primev.xyz/v1.1.0/concepts/what-is-mev-commit\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Security \u0026 Privacy\",\"item\":\"https://docs.primev.xyz/v1.1.0/concepts/privacy\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.primev.xyz/v1.1.0/concepts/privacy#article\",\"headline\":\"Security \u0026 Privacy\",\"name\":\"Security \u0026 Privacy\",\"url\":\"https://docs.primev.xyz/v1.1.0/concepts/privacy\",\"mainEntityOfPage\":{\"@id\":\"https://docs.primev.xyz/v1.1.0/concepts/privacy#webpage\"},\"dateModified\":\"2026-08-17T19:35:19.211Z\",\"publisher\":{\"@id\":\"https://docs.primev.xyz/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.primev.xyz#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Documentation","nav":{"global":null,"versions":[{"version":"v1.2.x","pages":[{"title":"v1.2.x","href":"/v1.2.x/concepts/privacy"}]},{"version":"v1.1.0","tabs":[{"tab":"Documentation","groups":[{"group":"Get Started","pages":[{"title":"Welcome to Primev","sidebarTitle":"Welcome to Primev","mode":"wide","icon":"sailboat","href":"/v1.1.0/get-started/welcome-to-primev"},{"title":"Quickstart for mev-commit bidder node","sidebarTitle":"Quickstart","icon":"gear","href":"/v1.1.0/get-started/quickstart"},{"title":"FAST RPC","sidebarTitle":"FAST RPC","icon":"forward-fast","href":"/v1.1.0/get-started/fastrpc"},{"group":"Bridge","icon":"bridge","pages":[{"title":"Using the Bridge UI","sidebarTitle":"Bridge UI","href":"/v1.1.0/get-started/bridge/bridge"},{"title":"Bridge CLI","sidebarTitle":"Bridge CLI","href":"/v1.1.0/get-started/bridge/bridge-cli"}]},{"group":"Validators","icon":"list-check","pages":[{"title":"Validator Guide","sidebarTitle":"Validator Guide","href":"/v1.1.0/get-started/validators/validator-guide"},{"title":"Eigenlayer Opt-in","sidebarTitle":"Eigenlayer Opt-in","href":"/v1.1.0/get-started/validators/eigenlayer"},{"title":"Symbiotic Opt-in","sidebarTitle":"Symbiotic Opt-in","href":"/v1.1.0/get-started/validators/symbiotic"},{"title":"Vanilla Opt-in","sidebarTitle":"Vanilla Opt-in","href":"/v1.1.0/get-started/validators/vanilla"}]},{"title":"Relay Integration Guide","sidebarTitle":"Relays","icon":"arrow-right-arrow-left","href":"/v1.1.0/get-started/relays"},{"group":"Bidders","icon":"user-bounty-hunter","pages":[{"title":"Bidder Best Practices","sidebarTitle":"Best Practices","href":"/v1.1.0/get-started/bidders/best-practices"},{"title":"Bidder Node Commands","sidebarTitle":"Bidder Node Commands","href":"/v1.1.0/get-started/bidders/bidder-node-commands"},{"title":"Bidder CLI application","sidebarTitle":"Bidder CLI","href":"/v1.1.0/get-started/bidders/bidder-cli"}]},{"group":"Providers","icon":"network-wired","pages":[{"title":"Registering as a Provider","sidebarTitle":"Registering as a Provider","href":"/v1.1.0/get-started/providers/registering-a-provider"},{"title":"Consuming Bids from mev-commit","sidebarTitle":"Consuming Bids","href":"/v1.1.0/get-started/providers/consuming-bids"},{"title":"Sending Commitments","sidebarTitle":"Sending Commitments","href":"/v1.1.0/get-started/providers/sending-commitments"},{"title":"Querying for Proposers","sidebarTitle":"Querying for Proposers","href":"/v1.1.0/get-started/providers/Querying-for-proposers"},{"title":"Withdraw Stake","sidebarTitle":"Withdraw Stake","href":"/v1.1.0/get-started/providers/withdraw"}]}]},{"group":"Concepts","pages":[{"title":"What is mev-commit?","sidebarTitle":"What is mev-commit?","href":"/v1.1.0/concepts/what-is-mev-commit"},{"title":null,"href":"/v1.1.0/concepts/actors"},{"title":"Understanding mev-commit","sidebarTitle":"Network Overview","description":null,"href":"/v1.1.0/concepts/network-overview"},{"title":"Security \u0026 Privacy","sidebarTitle":"Security \u0026 Privacy","href":"/v1.1.0/concepts/privacy"},{"title":null,"description":null,"href":"/v1.1.0/concepts/commitments"},{"title":"Solvers","sidebarTitle":"Solvers","href":"/v1.1.0/concepts/solvers"},{"title":"Builder Attribution","href":"/v1.1.0/concepts/builder-attribution"},{"group":"Bids","pages":[{"title":"Bid Structure","sidebarTitle":"Bid Structure","href":"/v1.1.0/concepts/bids/bid-structure"},{"title":null,"href":"/v1.1.0/concepts/bids/reverting-txns"},{"title":"Understanding Bidder Deposit Rules","sidebarTitle":"Bidder Deposit","href":"/v1.1.0/concepts/bids/bidder-deposit"},{"title":"Bid Decay Mechanism","sidebarTitle":"Bid Decay","href":"/v1.1.0/concepts/bids/bid-decay-mechanism"}]},{"group":"Mev-commit Chain","pages":[{"title":"Chain Details","sidebarTitle":"Chain Details","href":"/v1.1.0/concepts/mev-commit-chain/chain-details"},{"title":"Differences Between Ethereum and mev-commit Chain","sidebarTitle":"Ethereum vs mev-commit","href":"/v1.1.0/concepts/mev-commit-chain/differences-between-ethereum-and-mev-commit-chain"},{"title":"Bridging Details","sidebarTitle":"Bridging Details","href":"/v1.1.0/concepts/mev-commit-chain/bridging-details"}]},{"group":"Rewards and Slashing","pages":[{"title":"Rewards and Slashing","sidebarTitle":"Rewards and Slashing","href":"/v1.1.0/concepts/rewards-and-slashing/rewards-and-slashing"},{"title":"mev-commit Points Program","sidebarTitle":"Points","href":"/v1.1.0/concepts/rewards-and-slashing/points"}]},{"title":null,"href":"/v1.1.0/concepts/oracle"},{"sidebarTitle":"Validator Considerations","title":null,"href":"/v1.1.0/concepts/validator-considerations"}]},{"group":"Developers","pages":[{"group":"Networks","pages":[{"title":"Mev-commit Mainnet","sidebarTitle":"Mainnet","href":"/v1.1.0/developers/networks/mainnet"},{"title":"Hyperliquid (Early Access)","sidebarTitle":"Hyperliquid","href":"/v1.1.0/developers/networks/hyperliquid"},{"title":"Mev-commit Testnet","sidebarTitle":"Testnet","href":"/v1.1.0/developers/networks/testnet"}]},{"title":"System Requirements","sidebarTitle":"System Requirements","href":"/v1.1.0/developers/system-requirements"},{"title":"FAST RPC API","href":"/v1.1.0/developers/fast-rpc-api"},{"title":"Provider API","href":"/v1.1.0/developers/provider-api"},{"group":"Bidder API","pages":[{"title":"Bidder API","sidebarTitle":"Bidder API","href":"/v1.1.0/developers/bidder-api/bidder-api"},{"title":"Managing Your Bidder Deposit","sidebarTitle":"Managing Your Bidder Deposit","href":"/v1.1.0/developers/bidder-api/bidder-deposit"},{"title":"Docker Container for Bidder Node","sidebarTitle":"Docker Container for Bidder Node","href":"/v1.1.0/developers/bidder-api/docker-bidder"},{"title":"Tools for Bid Submission","sidebarTitle":"Tools for Bid Submission","href":"/v1.1.0/developers/bidder-api/tools-for-bid-submission"}]},{"title":null,"href":"/v1.1.0/developers/contracts"},{"title":null,"href":"/v1.1.0/developers/debugging"},{"title":"Manual Node Setup","sidebarTitle":"Manual Node Setup","href":"/v1.1.0/developers/manual-start-mev-commit"},{"title":"Run mev-commit Chain Node","sidebarTitle":"Run mev-commit Chain Node","href":"/v1.1.0/developers/run-mev-commit-chain-node"}]}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/getcommitmentinfo"}]},{"tab":"Knowledge Base","pages":[{"title":"Knowledge Base","href":"/v1.1.0/knowledge-base/introduction"}]}]}]},"basePath":"","title":"Security \u0026 Privacy - Documentation","buildId":"dpl_FWZhTb2vab28gFGFH4ojka6qEznQ","deploymentId":"dpl_FWZhTb2vab28gFGFH4ojka6qEznQ","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-CXMGc493.js","DynamicMarkdown-D-2HDKEp.js","zoom-image-lightbox-CE4cYsJE.js","lightbox-handle-r17bVUz3.js"]}