Skip to content

Encrypted mempool#651

Merged
JoshLind merged 32 commits intoaptos-foundation:mainfrom
rex1fernando:main
Apr 8, 2026
Merged

Encrypted mempool#651
JoshLind merged 32 commits intoaptos-foundation:mainfrom
rex1fernando:main

Conversation

@rex1fernando
Copy link
Copy Markdown
Contributor

No description provided.

Copy link
Copy Markdown
Contributor

@JoshLind JoshLind left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Beautiful!! 🚀 Thanks @rex1fernando 😄

Comment thread aips/aip-144.md Outdated
These transactions are public to all validators; this means that the block
leader may choose to order or censor these transactions based on their
behavior in a way that is most profitable for them. This phenomenon is
known as MEV; it has been widely documented and studied in the past several
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: maybe add the full name before the short hand? e.g.,

This phenomenon is known as Maximal Extractable Value (MEV);

Comment thread aips/aip-144.md Outdated
computation, requiring `O(stake weight threshold)` communication per
encrypted payload. This proposal avoids a similar blowup via a new _batch
threshold encryption scheme_. Using this scheme, along with heavy
pipelining, means that the encrypted mempool will support >1000 TPS, with
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: maybe just indicate that the TPS number referenced here is just a start? i.e., we may want to see high numbers in the future? 😄

Comment thread aips/aip-144.md Outdated
pending transactions, and to have the committee decrypt transactions as
soon as they reach this queue. But this would mean that these transactions
would wait several rounds after they are confirmed in order to be executed.
[Rex: should I mention Shutter network by name here?]
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I imagine this note should be removed? 😄

Comment thread aips/aip-144.md Outdated
security. This is because any encrypted transaction which _targets_ a specific
block is completely revealed, even _if it fails to be included in the
block_, for instance because of congestion, or because the fullnode decides
to censor it. [Rex: should I mention fairblock by name here?]
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Likewise (remove this note)? 😄

Comment thread aips/aip-144-encrypted-mempool.md Outdated
block_, for instance because of congestion, or because the fullnode decides
to censor it. [Rex: should I mention fairblock by name here?]

**Previous batch threshold encryption schemes.** Several previous works [cite]
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: maybe just remove cite if we don't have a reference? 😄

Comment thread aips/aip-144-encrypted-mempool.md Outdated
included in a block and decrypted, the user's transaction intent is
revealed.

We must also present this type of payload theft. We do this using the
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: present -> prevent?

Comment thread aips/aip-144.md Outdated
threshold encryption scheme in order to avoid vulnerabilities.
* to integrate well with account abstraction.

[Rex: I don't remember why the encrypt->sign design integrates better with
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Likewise (remove this note)? 😄

Comment thread aips/aip-144.md Outdated
4. Finally, the `EncryptedPayload::Encrypted` enum variant is initialized
with the `ciphertext` and the `payload_hash`. This is signed by the
user's signing key as part of the final transaction being submitted.
[Rex: explain extra_config?]
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Likewise (remove this note)? 😄

Comment thread aips/aip-144.md Outdated

Unit tests for each component, smoke tests, forge tests/benchmarks.

## Risks and Drawbacks
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: you could maybe just remove this section if there's nothing important to call out 😄

Comment thread aips/aip-144.md Outdated
validators.


## Timeline
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: you could also remove this section if you want? Or be more vague (to give us some breathing room), e.g., implementation and mainnet deployment completed in Q2 2026?

@rex1fernando rex1fernando marked this pull request as ready for review April 8, 2026 19:52
@JoshLind JoshLind merged commit e95964b into aptos-foundation:main Apr 8, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants