Diversification strategy: UNIV2-2FOLD

The prevalent liquidity issues rooting from the recent delistings from exchanges like Binance and OKEX pushforth the reality of a “liquidity crunch”. Given the organisations unique orientation, prioritising market stability and concentrating liquidity on-chain is crucial for economic sustainability and open participation.

Over 1 year ago I conceptualised a strategy to diversify a proportion of the treasury; through leveraging proceeds from an auction with vesting. Deployed into a dual provisioning strategy between DAI and ETH to incentivise ring trades and capitalise off arbitage while saturating market volatility.

                           ┌─────────────────────────┐                           ┌─────────────────────────┐
                           │                         │                           │                         │
              aTORN        │                         │                     LP    │                         │
       ┌─────────────────  │         VESTING         │                 ┌─────────┤     UNIV2-DAI-TORN      │    ◄────────┐
       │                   │                         │                 │         │                         │             │
       │                   │                         │                 │         │                         │             │
       │                   └─────────────────────────┘                 │         └─────────────────────────┘             │
       │                                                               │                                                 │
       │                            ▲       ▲                          │                                                 │
       │                      TORN  │       │  TORN                    │                                                 │
       ▼                                                               │         ┌─────────────────────────┐             │
                           ┌─────────────────────────┐                 │         │                         │             │
    ┌──────┐               │                         │                 │   LP    │                         │             │
    │      │     ETH       │                         │                 ├─────────┤     UNIV2-ETH-TORN      │             │  DAI    
    │ USER │  ──────────►  │      DUTCH AUCTION      │   ◄───────┐     │         │                         │             │
    └──────┘               │                         │           │     │         │                         │             │
                           │                         │           │     │         └─────────────────────────┘             │
                           └─────────────────────────┘           │     │                                                 │
                                                                 │     │                                                 │
                               ETH  │       │  ETH               │     │                                                 │
                                    ▼       ▼              TORN  │     │         ┌─────────────────────────┐             │
                                                                 │     │         │                         │             │
                           ┌─────────────────────────┐           │     │         │                         │             │
                           │                         │           │     │         │     UNIV2-ETH-DAI       │   ──────────┘
                           │                         │           │     │         │                         │
                           │        TREASURY         │   ────────┘     │         │                         │
                           │                         │                 │         └─────────────────────────┘
                           │                         │                 │
                           └─────────────────────────┘                 │                      ▲
                                                                       │                      │
                                       │                               │                      │  ETH
                                       │                               │                      │

Figure 1: Strategy flowchart


These metrics and data series were computed in Rust, you can view the source code here. For more information on the higher-level concepts applied within you can read more here, and here.


Modern portofolio theory has found many ways to quantify the “risk” of any given financial strategy, through the means of primitive mathemathical pricipcals. Specifically through the application of subject mean-variance of any data time series.

Variance (VAR): is the rate of dispersion over an asset’s mean trajectory

Covariance (COV): is the relationship between two assets returns over a trajectory

Figure 2: Covariance matrices

Calculating covariances amongst a selection of assets can help identify which is the riskiest asset in any given portfolio. This is achieved by creating what is called a covariance matrix and computing the Eigenvalues (EV) and Eigenvectors (EVV) from.

An asset with the highest eigenvalue is known as the “market eigenvalue”, which is usually removed from strategising as it is the most correlated with general market returns and performances. For capital efficiency strategies should seek returns uncorrelated from the general market.


  • When the price of ETH moves more than 2% daily, simulate volume on the DAI pair
  • When the price of TORN moves more than 2% daily, simulate volume on the DAI pair
  • Volume simulation is approximately 25% of daily UNIV2-ETH-TORN pool volume
  • Fees are priced relative to latest index, since it is not a proactive strategy
  • The UNIV2-DAI-TORN and UNIV2-ETH-TORN pools have equal reserves


Covariance plot (figure 3) match the expected assumptions, we see a clear correlation with TORN while ETH still is relative but slightly displaced suggesting a clear option of diversification.

Figure 3: Covariance plot

When analysing the values of TORN and UNIV2-FOLD eigenvalues (figure 4), we see the decision of removing TORN from the eigenportfolio to follow the general market eigenvalue thesis through exclusion.

Figure 5: Eigenvalue plot

While it’s clear the eigenvalue plot (figure 5) expresses volatility, there is clear indicaton of stability in UNIV2-2FOLD. With observations to it’s inverse relationship to both assets at varying time intervals, reforcing dynamics of market growth and depression of either provisioning asset’s capitalisiation.

Figure 5: Eigenvector plot

Figure 6: ETH-USD, TORN-USD, eigenvalue plot

Figure 7: Volume, eigenvector plot

When benchmarking culmative fees versus singular UNIV2-ETH-TORN provisioning (figure 8), the capital efficiency is proven; approximately $600,000 more fees are captured by UNIV2-2FOLD.

Figure 8: Culmative fees plot


Following criterion weighing of the associated eigenvectors we can find the optimal weighting for such strategy on the basis of covariance, let’s assume we deploy $500,000 out of the $5,000,000 dollars of the treasury’s current resources from the following parameters:

ETH 3.219809892793882e-6 0.4359091422125294
TORN 1.0587911840678754e-22 0.17171100046127025
UNIV2-2FOLD -6.617444900424222e-24 0.3923798573262003

and deployed using eigenvector (EVV) weighing:

  • $217,954.57 in ETH
  • $85,855.50 in TORN
  • $196,189.928 in UNIV2-2FOLD


The best course of asset to address liquidity concerns is pointing to accelerating two-folded market making than single sided. When it comes to executing, the decision could be taken to:

  • follow the eigenvector weighting as is, which can allow for resources to be rebalanced later without allocating more resources from the treasury
  • remove the TORN weighing and allocate it equally
  • remove the TORN weighing and allocate it to TORN or ETH

The simulation model could be drasticially optimised to model LP positions effectively, using Uniswap’s x * y = k formula as currently it is flawed in that regard. While it would be beneficial, the data already indicates to the strategy being more optimal than a legacy approach.

1 Like

While I support this, I also think something must be done about the huge amount of TORN held by the original developers, much of which is still to be released. It is unknown if that balance is held by governmental authorities, and whether they have it or not, the danger is that such an overwhelming amount of TORN in the hands of so few people is centralizing.

We should have another vote to blacklist the original TORN distribution addresses from using TORN in any meaningful way. I would also be fine putting it back into a developer or community fund, if not outright burned. This would give clarity on TORN distribution and would likely help price.

IMO it would absolutely crash the price of TORN and ruin the credibility of the protocol if a proposal to ‘blacklist’ someone’s asset was to pass without any solid reasoning behind it.

If your guess is right and those tokens are in the hands of a specific government, they still won’t be able to ‘freeze’ any of the assets sitting in the various pools. The damage you, me or anyone can do with a bunch of TORN, is very limited.

Blacklisting is the wrong term. Recent disclosures have made clear that an overwhelming majority of all TORN went to two or three developers. You can see on-chain this with the upcoming TORN unlock schedule.

While the original team did a good job and deserve to be compensated, the world has changed, and this is now a community project. If millions of TORN were unlocked into government hands, they could pass or block any protocol and cripple the project. We could fork, but the TVL in the original project would be lost forever.

I think we move all of the unreleased TORN into the community fund, and earmark it for the original devs if and when they return. But I see this as a potential disaster for the project if we don’t do something.

Please enlighten me on how you would be able to ‘cripple the project’ and how you would ‘lose the TVL’ just with some TORN.
Governance doesn’t have the power to drain any of the privacy pools. The power governance has is actually very limited compared to other protocols.

Protocol votes are majority rule. If a couple people, or a government agency, has millions of TORN, no protocol change can be passed. Or they can propose protocols that change the contract addresses of key contracts.

I really can’t imagine any possible reason why you want former developers, who have disappeared, to continue to receive millions of TORN. Can you please enlighten me as to why that is a good idea?

Once the protocol is broken, or impossible to fix, then all the notes trapped inside will not move to a forked version.

To me it just sounds like you have no idea how Tornado.cash governance or the protocol itself works.

Governance can’t alter any privacy pool contract in any way shape or form.
The UI is also centralized so you partially relay on that to make sure you are depositing inside the right contract/pool.

You could have the entire supply of TORN and still only do minimal damage compared to the TVL of the protocol itself.
People tend to forget that the protocol itself like 99% of other protocols, was fully functional before TORN was issued.

Once the protocol is broken, or impossible to fix, then all the notes trapped inside will not move to a forked version.

This lack of understanding of how pretty much everything works, makes me feel like you are proposing this blacklist just because you are down massively on your TORN bag and trying to shrink the supply.

I really can’t imagine any possible reason why you want former developers, who have disappeared, to continue to receive millions of TORN. Can you please enlighten me as to why that is a good idea?

Just like Satoshi Nakamoto kept his million bitcoins, I see nothing wrong with the original developers getting paid for what they built and what is being used by thousands of people. We all know why they HAD to leave.

Last but not least if a government was on the sidelines ready to absorb those team tokens once they are released, it would be quite easy to manipulate ‘your’ governance proposal by spending very little money and buy up a good portion of the supply on Binance (currently 19% of the entire supply is stored there).

You are aware that not a single vote can pass if the majority votes against it, yes? So having a group antagonistic to TORN means nothing can ever pass?

Second, they can propose any change they want, and auto-vote it to pass.

Third, yes, the protocol changing process can literally change anything. It’s a function call that can literally do anything - it has god-mode permission. See update-ens-ipfs-proposal/Proposal.sol at master - update-ens-ipfs-proposal - tornadocash for a recent example

The fact you think

  1. 2 or 3 people who have disappeared and are no longer involved in the project receiving millions of TORN is a good thing
  2. Have no idea how to code and don’t understand how this system works
  3. Don’t care about the future of the project and its longterm sustainability

Makes me think you are a government plant and your opinions should be ignored as you simply are uninformed and ignorant of the technical nature of solidity and the TORN contracts

So having a group antagonistic to TORN means nothing can ever pass?

The contracts will accept deposits and withdrawals with or without governance.

  1. People have disappeared after fearing for their freedom, they didn’t just rug a project and moved on with their life. It’s extremely disrespectful to even think something like that, they worked and should be rewarded for it.
  2. Ok pal
  3. TORN was and isn’t needed for the protocol itself to work, you thinking that it’s fine to blacklist someone’s tokens is far more damaging for the protocol than giving devs what they earned.

Makes me think you are a government plant and your opinions should be ignored as you simply are uninformed and ignorant of the technical nature of solidity and the TORN contracts

You are just chatting shit at this point. Why don’t you buy up a couple hundred tousand TORN on binance and drain every single privacy pool to prove me wrong.
Show the world how you can manipulate the pools with a governance proposal and profit hundreds of millions.

Why don’t we shift the focus on actually including @gozzy in those team token unlocks, he has shown great expertise in all the fields that this protocol needs, keeping him on board and motivated is a must.

I wouldn’t mind him taking a large chunk of those unlocks to improve liquidity, increase his own salary and/or hire another dev to help him, start a new round of anonimity mining to increase the anonimity set of all pools.

We funded gozzy with 260k USD of TORN because he is providing labour to continue the project. He is not being paid to do nothing. I am advocating we take the ~$25 million USD scheduled to unlock for people who are no longer here, and give it to people like gozzy to actually work on the project. If the Peppersec devs wants to come back, they can apply and I’ll 100% vote to assign funds to them. But right now giving them tens of millions of dollars, which further centralizes the project and does absolutely nothing to bring it forwards, makes no sense!

And while you are correct the funds trapped in notes themselves cannot be seized, I am 95% sure the contracts could be changed in such a way to make them trapped, and regardless of that, if we had to fork to a new system the funds would not travel with the fork, making the value of Tornado itself (having hundreds of millions USD locked) far less and probably irredeemable.

To be clear, here are the (disappeared, nonexistent) original team’s vesting contracts.

There is $6 million at current prices remaining. They have already vested and claimed millions of dollars, so I think they have been rewarded.

The community fund: $4.84 | TORN Token (TORN) Token Tracker | Etherscan

Only $200k USD remaining.

I propose we zero out the team vesting contract balance, then move all of it to the community fund.

If original team wants to come back, I am 100% in favor of funding them again. All it would take is a simple tweet or signed message. If they don’t want to come back publicly, then they are anon like all of us here. If you want to be a benevolent dictator then you need to be the original team, otherwise you need to put in work like everyone else to get paid.

This function let’s us rescue tokens from vesting contracts torn-token/TORN.sol at master - torn-token - tornadocash

I will write up a proposal and pull request for this and make a new post. It is the right thing to do

Sounds ok to me, I would 100% rather give the tokens back to the Community Fund instead of just ‘blacklisting’ and ‘burning’ millions of dollars worth of TORN.

If the old team decides to come back and make an effort to keep the project alive, I will stand behind what you said.

Further optimisations to the simulations could be obtained by applying a Kalman filter, this negates noise which the current implementation certainly suffers from. There is also now a DAI/TORN UNIV2 liquidity pool so we can use the average of price displacement that results in rebalancing for a more approximate simulation.