Option 1
Allow app developers to selfdestruct an app contract (the deployed library that proxies rely on). This would force all organizations using the app to upgrade (kernel.setAppCode(...)) to a new version (with the vulnerability fixed) to keep on using it.
Reference @3esmit 3esmit/Hive-Democracy@2d5641b
Problem: organizations might remove the ability to update apps in order to guarantee immutability. In that case a destructed app could be fatal, because selfdestructing a contract is irreversible.
Something to keep in mind is that an app developer can unilaterally implement this option in their app.
Option 2
Implement a list at the network level of contracts that have been emergency stopped. In order to add a contract to the list, a significant amount of tokens are staked to immediately pause the contract for the entire network. A period would follow in which more stakeholders would decide whether it was a real threat (and reward the submitter) or if it was just a spam attack (slashing the deposit and removing the contract from the stopped contracts list).
Problem: would require to extend the Kernel so it could fail before returning an stopped app address.
Option 1
Allow app developers to selfdestruct an app contract (the deployed library that proxies rely on). This would force all organizations using the app to upgrade (
kernel.setAppCode(...)) to a new version (with the vulnerability fixed) to keep on using it.Reference @3esmit 3esmit/Hive-Democracy@2d5641b
Problem: organizations might remove the ability to update apps in order to guarantee immutability. In that case a destructed app could be fatal, because selfdestructing a contract is irreversible.
Something to keep in mind is that an app developer can unilaterally implement this option in their app.
Option 2
Implement a list at the network level of contracts that have been emergency stopped. In order to add a contract to the list, a significant amount of tokens are staked to immediately pause the contract for the entire network. A period would follow in which more stakeholders would decide whether it was a real threat (and reward the submitter) or if it was just a spam attack (slashing the deposit and removing the contract from the stopped contracts list).
Problem: would require to extend the Kernel so it could fail before returning an stopped app address.