Generalised Replay Protection for Future Hard Forks



Summary:

The proposal being discussed in this context aims to solve the problem of replay protection during hard forks. The solution involves incorporating a fork ID into new address formats like Bech32. Under this solution, a private key in cold storage would remain valid across hard forks, but an address would only be valid for the specific fork ID it was generated for. This makes accidental mis-sends fundamentally impossible since the address contains the identifier of the token that should be sent. However, it is possible to 'mis-receive' if the receiving wallet was not aware of a newer chain and the receiver actually wanted to receive the newer token but instead, their wallet created an address for the old token. The proposal also enables wallets to distinguish between different tokens, which can lead to different implementations by developers. While there may be cases where an address needs to be valid across all chains intentionally (for instance, in cold-storage-type cases), this could be achieved using a special nForkId value, say -1. In conclusion, the proposed solution provides a comprehensive approach to replay protection during hard forks and encourages developers to incorporate fork IDs into new address formats.


Updated on: 2023-06-12T22:01:51.449909+00:00