Search projects, hackathons, sponsors and tech

    ← All projects

    AsyncDAOProxy

    Fully on-chain, asynchronous DAO governance via smart contract proxying

    Demo

    About

    The problem it 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

    How it's made

    Challenges we 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.