1. Users
  2. User Privacy

Users

User Privacy

Primev provides a simple cryptographic mechanism to abstract user address and connection privacy from external parties.

Primev protocol protects user privacy under two different contexts:

  • Identity & connection privacy

  • Bundle & transaction privacy

User Privacy

Primev contracts store data that could otherwise be leveraged to get a sense of which builders and searchers are connected. To control for this we’ve implemented the following simple commitment mechanism to protect user privacy:

        $$
c = commit{}(PrivKey_{builder} || address_{searcher})
$$

      

c is the commitment that get’s added to the rollup. A more detailed flow of data is highlighted below:

security diagram

To open the commitment, someone requires:

        $$
c, PrivKey_{builder},address_{searcher}
$$

      

The builder can subsequently verify the commitment as follows:

        $$
true/false := verify(c, Privkey_{builder}, address_{searcher})
$$

      

Through this scheme we can ensure that no entity in the system can learn about more searcher <> builder relationships than the ones they are party to.

We’ve also architected builder-boost as a sidecar module to ensure block data remains in the builder’s environment, and existing trust relationships between searchers and builders continue to hold.