Builder solidity
Builder solidity is a superset of Solidity with additional precompiles to support decentralized MEV applications. Using these precompiles, builder solidity contracts can define how SUAVE computors run computation.
That is, SUAVE computors can accept encrypted data from users, do stuff with it privately and only reveal the results, not the inputs. This ensures confidentiality and improves efficiency, enabling computation that is not possible on blockchains like Ethereum.
Verifiable logic, private data
Block builders currently have no incentive to share the algorithms by which they currently build blocks, and searchers depend on builders they send their bundles to to ensure the bundles are included. Searchers are therefore more likely to send their bundles only to the few builders they do trust, or only those who consistently build winning blocks. This trust-dependency results in block builder centralization over time.
Builder solidity enables anyone to create contracts that specify exactly how they will order bundles (and transactions) sent to them. This may help create incentives for block builders to implement their algorithms in verifiable, public contracts (that nevertheless preserve the confidentiality of any sensitive data they process). The are multiple reasons for this:
- The credible neutrality of an open marketplace in which many parties share their views, strategies, and opinions gives SUAVE an information advantage on centralized builders.
- There are efficiency gains when aggregating and clearing user preferences inside the same auction. More users means more oderflow means more likelihood of landing blocks, or settling auctions, successfully.
- Block builders who only operate on a single domain will find themselves increasingly disadvantaged due to cross-domain MEV. Builder solidity on SUAVE should decrease the cost (and complexity) of building blocks for many different blockchains.
- Enabling computation on sensitive data in a permissionless setting is hard. By solving it once, builder solidity contracts amortize the cost across the ecosystem and provide better solutions more cheaply than any individual participant could.
Builder solidity is not just block builders, though. Builder solidity contracts are a uniform programming model for implementing every component of the transaction supply network, such that we can ensure that any value created is distributed well. An auction for blockspace is not very different from an auction for solving user preferences and we expect that mechanisms which work well for either will easily translate into many different use cases.
Source: frontier.tech
The result should be continuous improvement of mechanisms which compete for sensitive data, and do so by virtue of the efficiency of their implementation combined with the guarantees their contracts make about how they will distribute value arising from the aggregation of such data.
This enables us to combine the collective verifiability we expect from blockchains with the individual privacy we need in order to protect users, curtail the negative externalities of unbridled value extraction, and create pluralistic systems which are resilient to economic centralization pressures across time.
Worked examples
To dive deeper into how builder solidity actually works, we recommend that you begin with our how to write builder solidity guide.
Further context
We recommend this early research talk from Andrew Miller to get a sense of the ideas from which builder solidity has grown.
Please note that the pseudo code Andrew shows is now outdated and you are better off learning from our how to write builder solidity guide above, or looking directly at our list of available precompiles. That said, the framework used in this talk and the background provided should still prove useful when writing your own builder solidity contracts.