Mitigate transaction replay on different chains

Dear Lisk community,

With this email I want to kickstart the discussion and gather your feedback regarding the LIP “Mitigate transaction replay on different chains”. You can find a short summary of the LIP and link to the LIPS repository below.

Abstract

This LIP proposes to mitigate transaction replay on different chains by introducing a network identifier as a constitutive component of the signature of a transaction.

https://github.com/LiskHQ/lips/blob/master/proposals/lip-0009.md

···


Manu Nelamane Siddalingegowda
Developer, Lightcurve
manu@lightcurve.io
www.lightcurve.io

There is one aspect of this proposal we are going to change: The idea is to completely remove the version identifier from the network identifier. So the definition of the `network identifier will be:

network identifier = H(nethash + community identifier)

The motivation behind this change is the following:

We believe that bumping the version in the network identifier for every hard fork is an excessively strict rule. In the future, this will imply to upgrade not only the running nodes, but every other third party tool using the API or Lisk Elements. And this would also apply for sidechains, which would make the process unnecessarily arduous for the developer.

Bear in mind that this change does not lower the security against transaction replay attacks as long as a proper validation process is defined when a certain transaction type is updated/created.

I’ll create a pull request to change this detail very soon.

The pull request has been merged.