Skip to content
AsyncDAOProxy

AsyncDAOProxy

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

Created on 1st March 2024

•

AsyncDAOProxy

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.

Discussion

Builders also viewed

See more projects on Devfolio