Problem:
There are too many “We should add a tornado pool for X token” posts [1, 2, 3, 4]. To approve each one requires a lot of governance overhead (not to mention the shills will never cease to bombard this forum with new tokens)
Solution:
Create a meta-protocol to autonomously create mixer pools when provable market demand is reached
Meta-protocol:
- Pre-commitment pools can be created with any fixed
deposit_amount
for any asset - Governance decide upon a
deposit_count
threashold that must be met for any pre-commitment pool - Before the
deposit_count
is met for any pool, committers can withdraw their deposit - If/when
deposit_count
is reached, the pool is locked from withdraws and a tornado pool is then deployed trustlessly and permissionlessly (no need for governance) - Once the tornado pool is created, then committers can only make a one way tx which deposits their commitment into the torndao pool for mixing
Example:
- TORN governance decides any pool can be opened at any
deposit_count
of 1,000 - A
UNI
community member decides to open a 100 UNIdeposit_amount
pre-commitment pool and make the first deposit - The
UNI
community member spreads the word in the rest of theUNI
community - Eventually, 999 other
UNI
holders all deposit exactly 100 UNI into the pre-commitment pool - At the 1,000th 100
UNI
commitment, the contract can be called by anyone to lock funds and deploy the tornado pool - Once locked, committed
UNI
community members can begin depositing their committedUNI
into the tornado pool - From here on out, anyone can begin mixing their
UNI
in batches of 100UNI
Requirements:
- A pre-commitment pool contract
- A pre-commitment pool factory contract
- A tornado pool factory contract that’s admin-ed by pre-commitment pool contracts
- An official proposal to codify this