1

This question already has an answer here:

Ethereum doesn't store transaction signature (r,s,v) in its tries. The first answer in that it is state-based, not UTXO based: Retrieve the signature of a transaction on the blockchain

But there is no way to re-validate a transaction after it get mined. Is it good approach?

marked as duplicate by Ismael, Achala Dissanayake, Richard Horrocks, shane, Briomkez Feb 16 at 10:01

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

2

A transaction will not be mined without a valid signature, under current consensus rules. Thus, if it has been mined, a valid signature was provided.

This means that you can retrieve a historical transaction, and a historical state trie from just before that transaction, and replay the execution to validate the result.

Moreover, although the signature is not stored in the state trie, it is stored in the raw block data. At any point, you can retrieve the raw transaction and validate the signature as needed.

0

Of course Ethereum stores the r,s,v parameters in the trie. Every block header has a transactionsRoot of a merkle tree, where each leaf is a transaction that has the fields nonce, gasPrice, gasLimit, to, value, v, r, s, data, init.

Transaction signatures aren't stored in the state tree because the state tree doesn't know or care what a transaction is, it just cares about the balances, nonces, code, and storage slots of all addresses.

Not the answer you're looking for? Browse other questions tagged or ask your own question.