SIMD-0159

Relax Precompile Failure Constraint

Author: Justin Starry (Anza) · Category: Core Protocol GitHub →

Feature Gate Status

Mainnet Active E760
Testnet Active E742
Devnet Active E847

9ypxGLzkMxi89eDerRKXWDXe44UY2z4hBig4mDhNq5Dp

TL;DR

The Solana protocol currently prohibits block producers from including transactions with precompile instructions that fail signature verification. This constraint is not ideal since block producers may have to do work to verify precompiles without a guarantee that they can receive a fee from the transaction.

Summary

The Solana protocol currently prohibits block producers from including transactions with precompile instructions that fail signature verification. This constraint is not ideal since block producers may have to do work to verify precompiles without a guarantee that they can receive a fee from the transaction.

Motivation

Ensure that block producers are sufficiently incentivized to include transactions which make use of precompile instructions by allowing such transactions to be included in a block even if verification fails.

Key Changes

  • Precompile instruction-level signature: A signature specified inside a precompile instruction which must be verified successfully for the transaction to be executed successfully

Impact

End users that submit transactions with invalid precompile instructions will now be able to see clearly in explorers and other tooling that their transactions failed rather than those transactions being dropped. They will also be charged fees for such transactions. Block producers can be assured that compute time spent on verifying any non-fee payer signatures will be compensated with fees.

Backwards Compatibility

*(Optional)* This change will require the use of a new feature gate which will remove the precompile failure constraint from produced blocks.

Security Considerations

NA