Easy Track proved to be a safe and effective tool that helped to streamline DAO operations and to reduce the voter fatigue. We’d like to extend it further, adding more Motion types and having the community concentrated on the more contentious DAO votings.
But before that, we need to resolve the existing security concerns, at least partially. As you can get from the specification, Easy Track core is a EVMScriptExecutor
contract which is responsible for enacting the Motion. The core is allowed to make payments from the DAO treasury and has a relevant Aragon ACL permission for that, but it does not limit amount, frequency or destination of these transactions. Thus, the Motion, draining the treasury to an unspecified address, can be created and, even, enacted if it is not objected within the 72h timelock period. And, the possibility to overlook such a case grows if we increase the number of the Motions. Also, further development of Easy Track can introduce a vulnerability and this risk should be considered.
Solution
To mitigate this risk, we’re going to harden the overall security by introducing limits and budgets. We want each Easy Track committee to operate more freely, but within the budget and in limits defined by the Lido DAO. We’ll achieve that in several steps:
- A simple security cap for the amount of funds that can be moved by Easy Track from the treasury per transaction. It’s a simple, but effective measure that will be useful in all the possible undesirable scenarios.
- Extensive limit and budget security system that allows us to set individual strict constraints on each type of the Motion.
We need to implement at least the first step to be safe while establishing more routine operations using Easy Track, which becomes one of the top priorities now, because of the growing voters’ apathy.
Proposal
This proposal focuses on the first step, and you can find its thorough description in the related LIP. The second step requires additional time and effort to think it out, and it’ll be in a separate proposal. Here I will describe briefly what we’re going to do:
- We’ll revoke the Aragon ACL permission that gives Easy Track access to the treasury
- And replace it with a special parametrized permission with built-in logic that checks if the token is in the list and if the amount is under the limit.
- That’s it.
Limits
We’ve analyzed the latest operations and can propose the following limits as secure and high enough to keep things running smoothly:
- 1,000 ETH
- 1,000 stETH
- 5,000,000 LDO
- 100,000 DAI
If you can see why it might be too strict or too loose, your feedback would be greatly appreciated.