I am trying to research about Redactable blockchain so my question is how can I implement a Redactable chain in Eth if someone has some idea about it I will be thankful

  • Had to google the term "redactable blockchain". If I understood right it has to do with redacting information from the blockchain - censoring of sorts. Then the answer is simple: it's not possible in Ethereum with any easy means as the blockchain is fully transparent. Private blockchains are of course different. – Lauri Peltonen Oct 21 '19 at 17:23

You don't redact. Non-repudiation is a feature.

You can, however, make contracts that permit overwrite of states. Consider three ordered pseudo transactions (the state means whatever it means in the context of the contracts):

1, Alice: +1, from Bob
2, Alice: +2, from Carol
3. Alice: +3, from Dave

Read-only inspection doesn't require a transaction, and generally anyone can do it.

read-only, getAlice: 6, from anyone

Great. What if something went wrong? Redaction would be a possible response to an error in the contract or an unanticipated situation. A contract may be written to allow intervention by an authorized signer.

4, setAlice: 4, from Authority

Fine. Now Alice == 4:

read-only, getAlice: 4, from anyone

We have an amended state and an unredacted transaction history (four transactions).

It will likely not be possible to redact history, for example, to pretend transaction #2 never happened because that would take a world-wide cooperative effort, by design. Blockchain is a data structure designed to ensure that it isn't possible to tamper with it like that.

Private chains are designed to lower the threshold for the arbitrary redaction of history. Such is by no means the only property that separates them from public blockchains, but it is true and it is a "feature" or an "anti-feature" depending on one's design goals.

A system with a smaller number of validators has a lower threshold, say, 3/5 or 11/20. Even if such a low threshold exists it should probably be the avenue of last resort. The first would be good contract design so that such rollbacks are never required.

Over-reliance on rollback may be indicative of a situation that shouldn't be tackled with blockchains at all. The lowering the threshold for redaction weakens what one can say about transaction finality.

Hope it helps.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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