Skip to content

Commit

Permalink
glossary and minor cleanups
Browse files Browse the repository at this point in the history
  • Loading branch information
metachris committed Nov 3, 2023
1 parent 990dc31 commit 0555d6d
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 36 deletions.
4 changes: 2 additions & 2 deletions docs/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,13 @@ keywords:

# Start Building on SUAVE

<div class="warning">
:::info

SUAVE is currently in early alpha state. The first testnet is called Rigil.
Please be aware that your data will likely not persist or that it is fully confidential or secure.
Happy hacking!

</div>
:::

## Explore

Expand Down
10 changes: 7 additions & 3 deletions docs/sidebars.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@ module.exports = {
collapsed: false,
link: { type: 'doc', id: 'index' },
items: [
'what-is-suave', 'novel-use-cases',
'technical/specs/rigil/glossary',
'what-is-suave',
'novel-use-cases',
],
},
{
Expand All @@ -20,9 +22,11 @@ module.exports = {
label: 'Run SUAVE Locally',
link: { type: 'doc', id: 'how-to/run-suave/index' },
items: [
'how-to/run-suave/with-docker', 'how-to/run-suave/build-yourself'
'how-to/run-suave/with-docker',
'how-to/run-suave/build-yourself'
]
}, 'how-to/send-transactions',
},
'how-to/send-transactions',
{
type: 'category',
label: 'Create Contracts',
Expand Down
2 changes: 1 addition & 1 deletion docs/technical
45 changes: 15 additions & 30 deletions docs/what-is-suave.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -12,21 +12,26 @@ keywords:

# What is SUAVE?

SUAVE - the *Single Unifying Auction for Value Expression* - is a platform for building better mechanisms (such as OFAs and block builders) in a decentralized and private way.
SUAVE - _Single Unifying Auction for Value Expression_ - is a platform for building MEV applications such as OFAs and block builders in a decentralized and private way.

SUAVE is designed as an open marketplace for mechanisms, which we call "SUAPPs". A SUAPP is an application deployed on SUAVE which requires one (or many) of the following:
Read more about SUAVE:

1. **private data**, e.g., auctions, block building
2. **coordination within block times**, e.g., block building, trade routing and filling
3. **access to fresh off-chain data**, e.g., trading strategies conditional on centralized exchange prices or transactions that are conditional on other transactions
4. **commitments** of various kinds, e.g., shared sequencers for rollups, new kinds of DEXes and bridges
5. **too much gas to do on-chain** because of how much compute they use.
- https://writings.flashbots.net/the-future-of-mev-is-suave
- https://writings.flashbots.net/mevm-suave-centauri-and-beyond

SUAVE is designed as an open marketplace for MEV Applications which we call "_SUAPPs_". A SUAPP is an application deployed on SUAVE which can utilize the following SUAVE-native functionality:

1. **Private data**, e.g., auctions, block building
2. **Coordination within block times**, e.g., block building, trade routing and filling
3. **Access to fresh off-chain data**, e.g., trading strategies conditional on centralized exchange prices or transactions that are conditional on other transactions
4. **Commitments** of various kinds, e.g., shared sequencers for rollups, new kinds of DEXes and bridges
5. **Too much gas to do on-chain** because of how much compute they use.

## What SUAVE is not

SUAVE does not replace other blockchains: it is intended to aggregate and coordinate all the things that ultimately change the state of other chains.

SUAVE is not a Layer 2. It does not post state roots to Ethereum or otherwise depend upon Ethereum for its security.
SUAVE is not a Layer 2. It does not post state roots to Ethereum or otherwise depend upon Ethereum for its security.

## What is different about SUAVE

Expand All @@ -37,27 +42,7 @@ SUAVE is not a Layer 2. It does not post state roots to Ethereum or otherwise de
2. The type returned by the SUAVE JSON RPC is always a _SUAVE transaction_.
3. In practice, deploying contracts is the same (and can be done from familiar tools like Remix or Forge), but sending transactions and handling their responses requires custom code, for which we have developed two SDKs, one in Go and another in typescript.
4. We call the primary protocol actor a _Kettle_, because it is a modified version of a Geth node + an extended RPC + a confidential data store.
5. The _confidential compute requests_ contained in the extended transactions above can be encrypted for specific actors (i.e. Kettles and/or other contracts), which enables _programmable privacy_.
6. A Kettle can compute over confidential data sent to it, add that data to its local store, and only emit specific information, or _hints_, on the SUAVE chain itself.
5. The _confidential compute requests_ contained in the extended transactions above can be encrypted for specific actors (i.e. Kettles and/or other contracts), which enables _programmable privacy_.
6. A Kettle can compute over confidential data sent to it, add that data to its local store, and only emit specific information, or _hints_, on the SUAVE chain itself.
1. This means the programming model and how to think about state transitions both differ from what you may be used to.
2. These differences are best illustrated via practical examples, which you can find in our [how to guides](/how-to).

## Important Terms

Here are all the key terms you'll find in these docs. The names and descriptions will evolve as the software does.

| Term | Description |
| --- | --- |
| Rigil Testnet | The current test network. Naming convention follows the stars in the Alpha Centauri system. |
| SUAPP | SUAVE application. For now, a smart contract that uses SUAVE precompiles. Frontend optional. |
| SUAVE Chain | A fork of Ethereum, currently running Clique PoA consensus for rapid iteration. Main purpose is to reach (and maintain) consensus about smart contract code. |
| Kettle | Accepts and processes confidential compute requests and maintains the SUAVE chain; the logical unit of the SUAVE network and main protocol actor. |
| MEVM | Modified EVM, where the modifications enable credible, confidential computation. |
| Precompile | A convenient way to enable direct execution of predefined functions in the EVM, meant to enable more interesting SUAPPs. |
| Confidential Compute Request (CCR) | A user request to Suave that contains (1) information such as `to` address and `calldata`, (2) confidential inputs, and (3) a list of SUAPPs and Kettles allowed to operate on confidential inputs. |
| SUAVE transaction | The transaction object that is broadcast on the SUAVE Chain. Contains the result of a CCR in its calldata + the signature of the Kettle(s) which computed said result. |
| Confidential Data Store | A privacy-centric networked storage system specifically tailored to enable programmable privacy in SUAPPs. |
| Bid | An artefact from early development, which is now just a Data Identifier used when operating on confidential data. For instance, a SUAVE transaction can emit logs on chain which reference the `bidId` from a CCR without revealing the confidential inputs to that CCR. |
| Peekers | Contracts with the correct permissions - granted by users in CCRs - to get and put data in the Confidential Data Store |
| Builder solidity | Solidity with access to precompiles that help facilitate the processing of transactions and intents. |
| RPC | Remote Procedure Call which (in Rigil) receives user transactions, moves confidential inputs to the Confidential Data Store, and passes CCRs to MEVM. |

0 comments on commit 0555d6d

Please sign in to comment.