AsyncDAOProxy
Fully on-chain, asynchronous DAO governance via smart contract proxying
Created on 1st March 2024
•
AsyncDAOProxy
Fully on-chain, asynchronous DAO governance via smart contract proxying
The problem AsyncDAOProxy solves
Currently, most DAO governance is done off-chain (e.g. snapshot.org). This creates a simple, yet powerful mechanism to do fully on-chain, async smart contract updating. DAO members set their own target contract. Each proxy forward goes to the winner contract, determined from the set targets and the corresponding votes from the ERC20 balances mapping.
Bullet points:
smart contract governance is essentially about pointing to the correct smart contract
all user calls to the AsyncDAOProxy are forwarded to the target_DAO contract
AsyncDAOProxy is an ERC20 and the votes are contained in the balances mapping
the target mapping contains an address that each token holder (DAO member) considers the current latest version
target_DAO is calculated as the address with the most votes, on each call to AsyncDAOProxy_update, which is run by each token holder asynchronously
the contract is protected economically, just like Proof-of-Stake (DAO members can proxy to a bad contract destroying the value of their own token)
flashloan attacks do not work as they only point to a bad contract intra-transaction, i.e. only for themselves, before reverting to the previous state
this is a no veto, purely democratic DAO governance structure
minting: AsyncDAOProxy_mint adds votes for an address to become a new token_holder, AsyncDAOProxy_unmint removes votes. if an address reaches majority votes (upon calling AsyncDAOProxy_mint), new tokens are minted for that address. the constructor contains an init token holder that can bootstrap all other token holders.
a single dev can use this simple contract to have an updatable smart contract
a community can use this for a purely democratic update process
any distribution (of unequal) governance power can be implemented using this contract
Challenges I ran into
The biggest challenges are considering all potential attacks against this concept/contract.
The contract is protected economically, just like PoS (proof-of-stake). Since DAO members choose the target, choosing a bad target causes economic loss to the DAO.
Flashloans attacks are only intra-transaction and do not effect any other users.
Creating an equally asynchronous minting mechanism required some thought as well.
Technologies used
Cheer Project
Cheering for a project means supporting a project you like with as little as 0.0025 ETH. Right now, you can Cheer using ETH on Arbitrum, Optimism and Base.
