Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SIMD-0152: Precompiles #152

Merged
merged 3 commits into from
Jun 20, 2024
Merged

Conversation

0x0ece
Copy link
Contributor

@0x0ece 0x0ece commented Jun 4, 2024

Summary

Define a unified behavior for precompiles, and highlight a few minor
changes to the existing precompiles to minimize differences.

Motivation

Precompiles are special native programs designed to verify additional
transaction signatures.
They run without the VM and without loading any account, and they can access
data from other instructions, within the same transaction.

At the time of writing, two precompiles exist to verify Ed25519 and
Ethereum-like Secp256k1 signatures, and another one is being proposed to
support Secp256r1 signatures for FIDO Passkeys.

Historically, the two precompiles were built at different times and
by different people, so naturally there are some subtle differences
in how they behave, especially in edge cases.

The main goal of this document is to provide a specification for how
a precompile should behave, remove differences and provide guidelines
for future proposals.

In addition, we highlight 3 minor changes to the existing precompiles
that will simplify their behavior and make it easier to develop
alternative validator clients.

Copy link
Contributor

@samkim-crypto samkim-crypto left a comment

Choose a reason for hiding this comment

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

Looks good to me and sorry for the delay on this.

proposals/0152-precompiles.md Show resolved Hide resolved
Copy link

@topointon-jump topointon-jump left a comment

Choose a reason for hiding this comment

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

Nice! Left some minor comments 😄

proposals/0152-precompiles.md Show resolved Hide resolved
proposals/0152-precompiles.md Show resolved Hide resolved
proposals/0152-precompiles.md Show resolved Hide resolved
proposals/0152-precompiles.md Show resolved Hide resolved
proposals/0152-precompiles.md Show resolved Hide resolved
proposals/0152-precompiles.md Show resolved Hide resolved
@samkim-crypto
Copy link
Contributor

@jacobcreech, it seems like we have reached consensus, but I cannot seem to merge it. Can you help with merging 🙏 ?

@joncinque joncinque merged commit ad5c150 into solana-foundation:main Jun 20, 2024
2 checks passed
@lheeger-jump
Copy link
Contributor

Yay great work @0x0ece!

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.

7 participants