Temporal Replay Protection


#1

This EIP would add temporal replay protection: https://github.com/ethereum/EIPs/pull/1681

We already have cross-chain replay protection, thus ‘temporal’ to signify that we’re talking about replay over time.

The main driver for my EIP is to make dust account removal possible, but there are also other scenarios where it could be useful: during ICO (either the tx makes it through within two hours or just remove it) and to make it easier for nodes to clean up/maintain transaction queues.

EDIT: Linked to the PR instead of a the version in a specific commit-hash


Ping a ring from a post
#2

Really like this EIP - much cleaner than e.g. replacing a transaction with a higher gas price when the tx is not wanted anymore.

Just a small nit:

Note: this EIP does not introduce any maximum valid-until date, so it would still be possible to create transactions with near infinite validity.

actually it introduces a maximum (max uint64) - so perhaps change to:

Note: this EIP does not introduce any maximum valid-until date apart from the maximum of uint64, so it would still be possible to create transactions with near infinite validity.

so there is no more room to nit-pick.

Thanks for the initiative with this EIP! Can’t wait for the HF introducing this feature.


#3

Another possibility is to consider that valid-until 0 is equivalent to valid forever. This is what I call the “check only if value is set” approach.


#4

I do not think this is needed and it would introduce a bit more complexity in code. So I would signal not to do it this way. I think the approach of @holiman is completely fine there my comment was just to get the wording a bit more precise so there is no more nit-picking possible.


#5

I’d agree about that. I pushed some changes to the EIP, to give credit to an earlier EIP (by @Arachnid) which was basically the same, but used blocknumber instead of time. I also added some reasoning about that choice.