Once a transaction that is composed of something as simple as a contract, has been verified and added to the blockchain, is there a way to make edits to this document? Or is it pretty much locked in at that point? If so, what are some solutions that exist for situations like this?


Back



    The key characteristic of blockchain is immutability. So there is no way to change transaction, and thus code of contract, which already mined. However in ethereum contracts have mutable memory section, and thus during contract development you can add possibility to alter contract behavior. Thus, if your contract is Token – you can provide additional tokens issue ability.
    Besides that you can add feature of migration from old contract to new one. Again, if your contract is token and you found bug in code, you can create another contract and start migration process (stop all operation in old contract and deposit the same number of tokens in new contract). But again, all this functionality should be included into first contract code at initial stage.
    There are talks of creating a mutable Blockchain (Accenture is infact working on a prototype)
    I am not taking a purist view on “if blockchain should be immutable or not”, but i do see making a decentralised ledger having serious technical challenges.
    Idea sounds good, but it creates other challenges, like
    1) Who need to consent on the edits?
    2) How do you handle challenges to validity of edits?
    3) If you edit/change the blocks/transactions, how will you handle the blockchain rebuild due to change in hash value?
    4) How to handle if multiple edits/mutations? Are we going to bring in RDBMS locks?
    5) If a txn is changed, will we maintain change value in the chain as well (if so how)? Else how will the Blockchain be audit-able.

    I think mutable blockchain might make some type of business models impossible because it lacks transaction finality. Maybe github is a good place to see how to handle mutable blockchain successful. After all, github is also a kind of blockchain for code!!!

    Ref:
    https://www.ft.com/content/f5cd6754-7e83-11e6-8e50-8ec15fb462f4