Proposal #9 - Airdrop to TORN Governance Voters

Proposal #9 - Airdrop to TORN Governance Voters

Problem statement

Several useful TORN proposals have not passed. We believe this is for several reasons:

  • The 25,000 voting quorum threshold is too high
  • There is no incentive to vote compared to putting TORN in the unuswap LP reward pool
  • The whole voting process is cumbersome and costs a lot of gas, keeping people disinterested in TORN governance

Proposal #2 attempted to reduce the voting quorum to 15k in order to make getting improvements to Tornado easier, which sadly did not pass.

Tornado cannot innovate and move forwards without passing proposals. We need to make passing them easier to increase the utility of the project, of TORN, and ensure the longterm survival of the project. As we cannot get the threshold lowered, we are proposing an alternative mechanism.

Solution - TORN Governance Voter Airdrop

This proposal gives 50,000 TORN, or 0.5% of the total supply, to previous voters in all proposals (both successful and unsuccessful). This accomplishes several things:

  • The people who have already demonstrated that they can and will vote now have more capability to vote, thus making it easier to pass the 25k threshold without needing a proposal to lower the quorum.
  • Gives TORN to the people most likely to hold TORN longterm, rather than AP miners and LPers who dump quickly.
  • Rewards those who have been most essential to the TORN project - the governance voters - rather than quick-money LPers who have provided very little value to the project but for some reason are given tons of free TORN.
  • Will encourage more people to vote in governance proposals because this proposal demonstrates that rewards can potentially go to them, even if an airdrop like this never happens again.

Mechanism

Every voter’s total votes from all prior proposals are added up, and then they are given their percentage of the total votes multiplied by 50,000 TORN.

If the proposal passes, the executeProposal() function transfers 50,000 TORN to the airdrop voter contract 0x2aa1953bc1213935eb3ceef04de00428c6c7b808. Airdrop receivers will then be able to call the claim() function on the airdrop voter contract, which will transfer their TORN from the contract to their address. This allows them to claim only when it is beneficial for them, for tax and other purposes. Receivers must claim() manually to get the funds.

Distribution Data

See linked github voterData.json file

Submitting the proposal

Somebody with TORN >= proposal_threshold can submit at any time. We will wait a few days for discussion and then submit ourselves if no one has submitted yet,

Security considerations

The contract ensures the airdropped funds are zeroed out before transferring to prevent any contract-to-contract trickery. We also have unit tests to ensure it works seamlessly. Finally, anyone can recreate the airdrop themselves from the linked repository to verify the values.

Deployed Proposal Contract

Repository Link

Who we are

Experienced software / solidity dev. This post has the backing of several large TORN holders and governance voters who are interested in making TORN governance easier.

See Voter Distribution Data to see what your airdrop will be

The majority of governance proposals to date have passed. Only three of eight have failed.

The three proposals that have failed would have failed to meet proposal #2’s reduced quorum.

Inducements to vote are not generally good for healthy decision-making. If there are incentives to vote, then more people will simply vote for the sake of attaining those inducements. Rewarding people for voting does in no way encourage people to understand what they’re voting for, and its effects upon the ecosystem.

Additionally, is the insight there to say that those who did not vote were not simply abstaining? Perhaps it would be of greater value to add an “Abstain” option to the voting process, which allows people to contribute to quorum, without necessarily influencing the outcome. That may be desired by those who wish to demonstrate that they wish for a matter to be decided, but don’t know well enough to take a stance.

Is there any possible mechanism by which voting could be done on an L2, to address the gas cost factor?

There is an assumption here that holders of TORN are purely ambivalent, or have overriding conflicting interests (e.g. LP rewards, gas costs). Could it not be in part that some major TORN holders desire a conservative approach to improvements to the project?

I’m not sure that looking at the “total supply” is the way to understand the dilution that this proposal would create. My napkin math of looking at the supply held outside of vesting/governance contracts puts the “liquid” supply at roughly 1.26M. That means that a 50K token distribution would dilute the liquid supply by just about 4%.

If I were a large holder of TORN, I’d be selling off before the vote on this concludes, then buying back in after the dilution devalues the token.

This doesn’t seem like an especially equitable distribution. It may in fact create the opposite effect to what you state you desire. It gives more voting power to those who are already voting on proposals, and inherently reduces the relative voting power of everyone who you wish to have take part in the governance process.

More than anything, this proposal passing would demonstrate that Tornado’s major token holders are willing to dilute the token supply in their own favour, by voting to cut themselves a cheque.

In my view, this proposal would overall weaken the governance process. The means by which it proposes to solve the stated problem create a number of undesirable side effects, and there are a number of unfounded assumptions underlying how it presumes to increase “voter turnout”.

It seems to me that there are likely better solutions to fixing governance, like improved “get out the vote” processes, and working on solutions to the voting disincentives that exist.

4 Likes

Hey, thanks for the initiative.
This is a bit weird, the contracts are not verified Etherscan:

Beside that, I am not sure that a retroactive airdrop to previous voters will favor more voting participation. @h-ivor is working on a more interesting proposal to reward future voters.

3 Likes

The top 10 addresses are getting more than 1000 TORN. The first address gets 5k TORN:

Top 10 recipient:

0xe2ca7390e76c5A992749bB622087310d2e63ca29,5058.805710758738
0xc8E68D674Df0Eab152926C4F0EE7D0ac0745c715,4685.814830923625
0xEBf919b0DAfb9ea4BF324108A142C64A69052D8f,3396.559789689241
0x055AD5E56c11c0eF55818155c69ed9BA2f4b3e90,2738.5086166488727
0xB40A916277FcB5Db234a98cA2417444EC448B470,2687.1299335994117
0xbEA07b01E8Fe3936A3D206158521A87addB65cfE,1946.1143852126436
0xC3cEd05096C6a3Fc82988a95A6b86206b943FF97,1907.8198120092782
0xB631651cB570bA0C0D696bD5E4860cbD214f20a0,1179.7395196424895
0xCBfB423D668F848866427089E8527474dbbE4a58,1112.003114898679
0x356eE97D7D560af2E97E9f9EEe56b2e09D60e6F5,1021.4560540458276

Moreover, the amount proposed is huge. It’s almost 1 TORN gifted per TORN voted. 50k TORN is currently $2.6m awarded retroactively solving no issue.

I quickly reviewed the reward calculation script. You are using the Voted event which does not account for double voting. Some people switched their votes from YES to NO several times emitting the event several times. These people will get more tokens.

7 Likes

The contracts have to be verified first of all.
Secondly, the amount of incentives is huge, why would we need 50k incentives when the quorum is 25k? A more reasonable alternative would have been 25k minus the lowest amount of locked TORN used for voting on a single proposal. This amount of TORN gives a small group of users enough voting power to pass any proposal with governance.
We are working on incentivization already, but this will be designed differently and not just as a flat airdrop.
For now, this is a “no” from me.

Verified the contracts on etherscan, forgot to yesterday.

Moreover, the amount proposed is huge. It’s almost 1 TORN gifted per TORN voted. 50k TORN is currently $2.6m awarded retroactively solving no issue.

Considering 30% - 3 million TORN - is going to the team and “early supporters”, 0.5% of the supply to the voters seems fair to us. It is a small token of appreciation.

I quickly reviewed the reward calculation script. You are using the Voted event which does not account for double voting. Some people switched their votes from YES to NO several times emitting the event several times. These people will get more tokens.

This is a very good point, and will be rectified and contracts redeployed. This is why we have the discussion here.

1 Like

The people who aren’t voting are not going to vote. The people who are voting can’t get the things they need passed - see Proposal #8. There is no reason for that not to pass, other than simply people don’t care.

If we wait for the TORN team to vest, then they will have full ability to pass whatever they want as well, given the absurdly huge amount of TORN they will receive as a small group of people. This seems a much better way to decentralize.

1 Like

I would also store the address that TORN is being transferred to as a constant address if you are already hardcoding it so it can be viewed.

I would also store the address that TORN is being transferred to as a constant address if you are already hardcoding it so it can be viewed.

delegateCall() means a state variable cannot be used, as the context switches to the governance contract

pragma solidity 0.6.12;
contract A {
    
    uint256 public constant x = 5;
    uint256 public j;
    address public constant add = address(0xe0943059e477e62D8b8E1841c58Fd5f703E56dEe);
    
    constructor() public {
        j = 4;
    }
    
    event five(uint256);
    event someAddress(address);
    
    function execute() external {
        emit five(x);
        emit five(j);
        emit someAddress(add);
    }
}

contract B {
    A a;
    constructor(address forA) public {
        a = A(forA);
    }
    
    function main() external {
        address(a).delegatecall(abi.encodeWithSignature("execute()"));
    }
}

Run in remix.
So then address can be hardcoded as address public constant add = something.

Argue about the number to be given, not whether the folks that upkept the tiny bit of democracy should get paid some torn to offset the hardly-negligible gas costs lmfaoo

1 Like

@anon9876 Are you open to lowering the proposed airdrop amount and giving an equal distribution amount to all voters? The costs and time to vote are not correlated with TORN vote size. Seems to me this would be a more equitable way to distribute to all participants.

1 Like

Let’s be clear:

This proposal is a con. A scam. A fraud.


If the intentions of @anon9876 were pure, they would renumerate governance participants based on gas spent. Not number of votes voted. A person with 20k TORN (as one of @anon9876’s friends has) did not spend any more on governance than an OG user who was airdropped 20 TORN.

As anyone who’s been on the forum can attest, I wouldn’t normally use such inflammatory language. But this is an exception. More than 50% of this airdrop goes to 10 addresses.

These people will collectively receive $1.3 Million for voting no more than 8 times

9 Likes

If we are concerned about centralization, maybe we should take the three million from the team vesting, and move to community fund? I am deeply concerned that 3 million to TORN team is very, very centralizing. In fact, this year alone a group of (3?) people will receive 600,000 TORN.

I am very concerned that governance will be ruined by this.

Red herring argument @anon9876

We’re discussing you and your friends siphoning more than $1.3 million from the treasury. Not the Tornado team’s compensation for bringing Tornado and TORN to market.

2 Likes

this proposal is useless. How does it make the protocol better and stronger? What problem does it solve?
Future incentives solve the problem because the community already had one failed proposal.
Fully agree with @ethdev.

8 Likes

First of all, TORN is run by decentralized governance. I or anyone else in the entire world have every right to propose literally anything we want, have it debated, and have it voted up or down. This is not a “a con. A scam. A fraud.” Despite the core devs disagreement, people have voiced support in both discord and the group here. I think it is quite disingenuous to say that a proposal with supporters is a “fraud”.

Second, saying that 50k TORN is too much is a valid argument, but with a tidal wave of 600k TORN ($30 mil) being released to a small core group very soon, I think its an extremely disingenuous and misleading argument to talk about “centralization” as a reason not to reward voters. Clearly the addresses being paid from such an airdrop are quite more distributed than the core devs’ addresses.

And me and this proposals’ backers love TORN and the group that made it. We think the creators deserve to get rewarded. I am merely stating valid arguments that poke holes in what critics - who are overwhelmingly about to make tens of millions of dollars over the following 5 years - are saying.

I think there is strong support for giving voters of past votes a reward. We are giving a lot of TORN to people who LP, who IMO are only making it easier for those who dump to get out at a decent price. I would rather they dump, have the price tank, and then let the believers accumulate at a cheaper price than hand out TORN to uniswap dumpers.

I need to redeploy the contract anyway after patching for the voting calculation bug. I can see an argument to change the amount and how people are rewarded.

But merely stating that the voters deserve nothing is a very dumb argument. Either voters are worthless, in which case why even have decentralized government, or voters are important, in which case they should be rewarded. And you said yourself further proposals are coming… sometime… to award voters. So even core devs think it is a valid argument.

Anyone can post any proposal anytime. We should have a civil conversation, not a core group of insiders making baseless attacks. For shame :pensive:

2 Likes

You have every right to propose literally anything, and others have every right to ruthlessly criticize it end-to-end, including the intentions that would seem to be behind it.

You say that there are supporters of this proposal. So far, I’ve seen two supporters, whose argument in favour of this proposal is very muddled, laced with appeals to loyalty to those who this proposal would benefit.

I think that the discussion on this issue thusfar has demonstrated that this is not the case. If there is strong support in favour of this proposal, it would seem to be coming from those who stand to financially benefit from the distribution.

That is a bizarre false dichotomy. Nobody has devalued those who have voted on historical proposals, that I’ve seen. To suggest that this is the argument that critics of this proposal are making is disingenuous at best.

Make a more convincing argument. Anything less simply affirms that this is an attempt to raid the governance fund for personal benefit.

4 Likes

How does this proposal provide a benefit to the current protocol?
What problem does it solve?
Feel free to post it on chain, as you said, it’s completely permissionless to do so. Will see how strong the community support for it.
My guess since it doesn’t solve any problem it won’t pass. There is 0 need to award previous voters. Governance voting is for those who care about the protocol and want to make it better.
Don’t waste your time, come up with something that improves the protocol.

Disclaimer: Opinions are my own.

2 Likes