EIP-8197: Cryptographically Agile Transactions (CATX)

I agree that this is one of the most important parts of cryptographic migration, hence many attempts to make EIP-7932 as modular as possible.

In regards to the RLP high bit problem, I’d make the case for signatures to be internally tagged (sig_type || signature) instead of externally as it would allow for the full 0x00 → 0xFF range without the RLP prefix byte, and reduce some of the parsing logic to EIP-7932 (or similar registry EIP) as it provides helper functions such as validate_signature(signature) which directly operates on internally tagged signatures.

Efficiency wise, the RLP serialization would be generally more compact as all the 256 permutations would only use 1 byte, compared to 2 bytes if > 128. Similarly, contracts & intermediaries that need to pass along the signature the would only have to process a byte array rather than a byte array and a variably sized integer.

It’d also making handling extensions to the algorithm id space significantly easier, e.g. 0xFD || ULEB128 integer, which can be implemented without breaking fixed-length implementations. This is out of scope for EIP-7932 and presumably EIP-8197, but is worth noting for future reference.

1 Like