Author: Michael Gronager 2014-02-19 14:11:51
Published on: 2014-02-19T14:11:51+00:00
The Bitcoin community has been trying to eliminate the problem of malleability in transactions for a long time. One proposed solution was to modify signatures to include the entire transaction, but this was deemed unnecessary and ineffective by Gregory Maxwell. Instead, it was suggested that the next Bitcoin version could "prettify" all relayed transactions as deterministic transactions fulfilling the scheme 1-6, effectively blocking any malleability attack. If miners upgraded, then all transactions in blocks would have a deterministic hash. In a later version, relay of non-deterministic transactions could be blocked, as well as the acceptance of blocks with non-confirming transactions. To non-standard conforming clients, the prettify change of hash would be seen as a constant malleability attack, but given the prettify code, it is to fix any client into producing only conforming transactions, just by running the transaction through it before broadcast. However, there is a possible fork risk in step 2 if a majority of miners have not upgraded to 1 when 2 is introduced. It was suggested to monitor the percentage of non-conforming transactions in a block and only introduce the second step once that number is sufficiently small for a certain duration. The criteria for switching on forcing of unmalleable transactions in blocks would be when there have been only conforming transactions for 1000 blocks.
Updated on: 2023-06-08T02:41:10.657943+00:00