Configuration-based mechanism for 'freezing' ledger keys #1811
Replies: 2 comments 4 replies
-
|
If such mechanism is in place, I think we will need some clear rules on how to add an entry and also have a record for the reason, potentially some timeout, context info, etc. Would the ban be on every operations or would you add an option to allow some operations? |
Beta Was this translation helpful? Give feedback.
-
|
I've drafted CAP-77 for this. Properly supporting even just account and trustline entries out of all the classic entries ended up rather tricky. It's not clear to me if complexity is worth it, maybe we could limit the proposal to just the Soroban entries, but that seems rather restrictive as well. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
One of the first remediation steps for the data corruption incident that has occurred in protocol 23 has been the 'freeze' of the corrupted ledger entries at the overlay layer in order to prevent further data corruption until the protocol has been fixed. Any transaction that has accessed any one of the corrupted keys (detectable via footprint) was rejected by the validators without being added to the mempool.
This was a bespoke change that has been released in a separate Core build. The 'freeze' has only become fully active when every tier 1 validator has updated to the new build, and even then it was not 100% effective (e.g. a validator could roll back the build). Also notably this kind of change can only be easily done for the Soroban entries - it would be much trickier to do quickly in case if any classic accounts or trustlines have been corrupted for whatever reason.
While the Stellar Core team puts a lot of effort to reduce the probability of the similar data corruption issues from ever occurring again, there is always a non-zero risk that something goes wrong. There also may be a possibility of using a similar mechanism for remediation of other issues beyond the protocol bugs, such as freezing the data entries that are known to be vulnerable in some way, e.g. are known to be hacked.
With that motivation in mind, the following protocol change sketch is proposed:
The proposal has the following advantages over overlay-level bans:
There are also some downsides of the proposal:
This discussion is open to anyone to add any more ideas or raise any concerns.
Beta Was this translation helpful? Give feedback.
All reactions