ArkEcosystem / AIPs

ARK Improvement Proposals
26 stars 25 forks source link

AIP-60: Make votes from inactive wallets obsolete #48

Closed roks0n closed 5 years ago

roks0n commented 5 years ago

This AIP is inspired by Tezos where inactive addresses are not allowed to vote (or mine, in our case forge) until they are re-activated. They consider an address as inactive if it's not showing any activity for a year (determined by timestamps).

1. How would this be seen in Ark?

Deactivated wallets would not add to the vote weight of a delegate. At the point where we try to get active delegates we would filter out wallets without any activity and not add their Ark holdings towards the vote weight of that delegate.

2. What would classify a wallet as inactive?

First thought that comes to mind is if the wallet has no incoming/outgoing transactions for X days (eg. 365). Unfortunately in reality there is a flaw here because this would mean that a wallet would stay active until the delegate that they are voting for is sharing rewards. Which in one scenario could mean if an individual looses keys to his wallet they'd end up voting for a delegate despite the fact that the wallet should really be marked as inactive.

Another thing is if delegates themselves could "resurrect" their voters wallets by sending small transactions to them.

Based on this I'd suggest that we'd only look at outgoing transactions. Only small concern I'm having with this approach is it could potentially add a little bit extra complexity for long term hodlers.

3. How would this change be reflected in delegate rankings today?

Wallets voting that haven’t made any outgoing transaction (eg. “inactive” wallets) since 1.1.2018:

4. What would activate an wallet?

Depending on our decision under point 2, but in general any outgoing transaction from a wallet could activate it.

5. Technical implementation

To be determined based on the discussion under this issue.

dmvt commented 5 years ago

Another potential approach that would not goof HODLers would be to not consider any transactions from or to a registered delegate address in the calculation.

roks0n commented 5 years ago

Given delegate registration fee are fairly low there are a lot of non-delegates that have (and I'm sure will in the future) registered their personal wallets as delegates just to get a name attached to it.

moazzamak commented 5 years ago

I think this is a good idea. Funds locked up in lost wallets would end up adding undue stability to a delegate and provide opportunity for them to misbehave. This change will make it so that only active wallets take part in electing delegates and therefore keep the delegates honest and competitive.

As for how we decide an inactive wallet I think the outgoing transaction way is a better method.

sleepdefic1t commented 5 years ago

I'm neither endorsing nor opposing voter decay, but I definitely feel it's relevant here.

EOS also implements a vote decay system, whereby more recent votes carry more weight. Voters who recast their votes every month will have the full weight of their votes counted, while older votes will slowly decay until they have minimal impact after 2 years. This will encourage participation and also slowly discount those who simply cast votes once. In the case of block producers offering reward sharing, this means that those who simply cast votes one time and expect to earn passive income will gradually have their voting power removed. Other methods, like requiring voters to lock up their tokens for a period of time, could discourage vote bribing, as well.

src: https://multicoin.capital/wp-content/uploads/2018/03/DPoS_-Features-and-Tradeoffs.pdf - (page 14)

skeuo commented 5 years ago

A good alternative to expiring votes where active voters are not impacted by the hassle of renewing votes. Dead/inactive wallets are a problem that should be addressed. look at Dr10 for example, he still has 600k votes months after dropping out, he is one third of the way to being a red node locked into the top 51. A gradual expiry would be ideal if achievable.

fix commented 5 years ago

What is the problem is it solving?

roks0n commented 5 years ago

@fix I'm sorry, I don't understand. Can this not be understood from the comments or is this a rhetorical question?

sleepdefic1t commented 5 years ago

I believe he means defining specifically what the intent of this AIP is.

It’s clear to me we’re discussing inactive wallets and delegates; but narrowing down specifically what the issue were solving is helps to better understand the issue in general.

The goals can change quite a bit depending on what we’re exactly attempting to solve.

fix commented 5 years ago

why do you want to deactivate those wallets?

Economically, tokens burnt is equivalent to even redistribution to all other wallets.

alessiodf commented 5 years ago

I can't rationalise why the voting weight of a person's wallet should be diminished over time. My view is that, if someone spends ark voting for a delegate, then it shouldn't be time limited.

I can't think of any justification for why a person, who could end up being incapacitated for an extended period, should lose their vote weight because they've been unable to transact, or someone who wants to buy a bit of crypto every month with no intention to sell should lose out because they don't make any outbound transactions after voting (since outbound transactions would be used to determine if a wallet is active or not).

Even people who lost their passphrase after voting still somehow acquired that ark in the first place and chose to engage in the democratic process of voting for a delegate. Their ark doesn't and shouldn't become worthless just because they lost their passphrase, in my opinion. Speaking for myself, I have a voter who has admitted that he's lost his passphrase. He says he is happy that he's voting for me and would've had no intention of ever changing his vote even if he could (his voting rewards are rerouted to another wallet which he does know the passphrase to). His vote weight would be unfairly stripped against his will under a proposal like this.

I'm struggling to see a reason to disenfranchise some wallets just simply because they're old or voting for inactive delegates.

skeuo commented 5 years ago

There is also a scenario in which someone with a lost passphrase becomes unhappy their dead wallet is voting for a delegate and can't do anything to change it, its not necessarily always going to be that they want to keep their vote where it is. What if a whale lost his key and was voting for Axi? I think asking someone to ping from their wallet once a year isn't asking too much, given they are receiving rewards for 'participating' in delegated consensus. Things change, if dead man votes were permanent we would probably still support vocalists for slavery, as crazy and flawed as that may sound.

Just to add, if you've lost your passphrase forever or you've died, you've lost your stake. Should this person have input on who secures the network when they no longer have a stake in the network?

moazzamak commented 5 years ago

For a DPoS to work properly we assume that the voters are active in the community and up to date with whatever is happening. The problem with current model is that as people lose interest due to bear market or lose access to their wallets (due to losing passphrase or death etc) there will be more and more ark that is locked in voted wallets over time.

While on one hand this can be considered as burned ark and provides a positive outcome to the community by removing part of the supply it also has a drawback that the delegates voted in by these wallets will get harder and harder to push out as time goes on in case the community feels they don't deserve the forging spot anymore. Right now this isn't an issue but in 10 years it might be. I think it's important that a blockchain based currency system which aspires to be decentralized removes as many of the centralization pressures as possible and this is one of those.

n4ru commented 5 years ago

I see the issue with voters allowing people to misbehave, but I disagree with this solution. A lot of people specifically want to "set it and forget it" when it comes to Ark, including a good chunk of the biz voterbase. They explicitly ask and confirm that they can just vote once and forever before they vote, and we have many such questions publicly as well.

The number of votes required to get into 51 will plummet as small voters get their vote invalidated. This will give more power to whales and further centralize the delegates. The chances of many voters performing an action are lower than 1 whale performing an action.

skeuo commented 5 years ago

I think there are many potential variants of how this could be done. A new tx that shows as "revote" in wallet, nodes set it to be cheap as chips. Would voters click a button once a year if it mean't they would get more Ark per year? There is a good chance they would.

roks0n commented 5 years ago

I'll be a bit more precise and describe an issue that comes to mind, but I do agree with a lot of points that were made and I'm not yet convinced which approach is better.

To share some stats, current biggest 5 wallets that are voting for someone and haven't made any outgoing transaction since 1.1.2018:

We could assume that one person holds many wallets (therock 👀 ) which would mean arkane and therock (just as an example) could be voted in the top 51 for a long time and if the owner of the wallet looses their passphrase or god forbid something happens to them, we'd see them among top 51 for a very long time. We could also end up with red nodes being voted in the top 51, although I'm not sure how likely this actually is to occur which is why I'm torn between what approach would be better.

A lot of people specifically want to "set it and forget it" when it comes to Ark, including a good chunk of the biz voterbase. They explicitly ask and confirm that they can just vote once and forever before they vote, and we have many such questions publicly as well.

@n4ru this is the case at the moment where Ark's only use case is speculation but I'd hope this to change in the future.

Speaking for myself, I have a voter who has admitted that he's lost his passphrase. He says he is happy that he's voting for me and would've had no intention of ever changing his vote even if he could (his voting rewards are rerouted to another wallet which he does know the passphrase to). His vote weight would be unfairly stripped against his will under a proposal like this.

@alessiodf I think this goes both ways, I'm sure there are examples of voters who voted for a delegate, lost their password and feel the opposite now after they got to know the ecosystem better.

Economically, tokens burnt is equivalent to even redistribution to all other wallets.

@fix I agree, but issue is that in our case those "burnt" tokens would add towards the voting power of a delegate. I wouldn't say this is an issue with smaller wallets but with big ones.

zillionn commented 5 years ago

I agree, a vote shouldn't be forever. In real life you vote every few years, your vote doesn't transfer to the next elections...

However, I don't believe the best approach is to detect inactive wallets. I have many wallets, some of them haven't touched in a while. We could make that votes have a duration of 1 year and you'll see in the clients when your vote will expire: You voted for delegate "roks0n". Vote will expire on Jun 23rd, 2018 at 23:20 | Rank 838 | Productivity: 0.13%

zillionn commented 5 years ago

And about the wallets with lost passphrases. You're giving examples when the person doesn't want to change the vote, but what if that person wants to unvote a bad delegate but can't and his/her vote will stay there forever?! Also, if you have no access to the wallet, you should not participate in any type of network voting.

@alessiodf And how exactly you're sure that your voter with the lost passphrase is the real owner of that wallet? I can contact you and tell you that I'm the owner of the wallet but lost my passphrase and redirect my payments to some other address. That wallet could be to his/her friend!

dmvt commented 5 years ago

I love @zillionn's approach above of limiting the duration of a vote to 1 year and being very transparent about it. @n4ru also makes a good point about the difficulty of getting people to do things en mass. If we're specifically trying to solve the problem @roks0n describes where 1 or 2 whales succumb to hit-by-a-bus syndrome, would putting a cap on the value (say 5000 ARK) of the voting wallet after the vote is 'inactive' (i.e. older than one year) solve this issue?

roks0n commented 5 years ago

@dmvt I'd try to avoid discriminating wallets. I also like @zillionn's approach.

Btw, the example I've described is not the only reason why I think this could benefit the ecosystem. It's also the fact that delegates and protocol change and having votes stuck due to loss of passphrase (or any other reason) can cripple the network (primarily when thinking about large wallets).

Perhaps a strange example, but imagine if votes of people that passed away in real life applied indefinitely. We'd likely be in a strange world right now.

dmvt commented 5 years ago

I agree completely @roks0n, but there is already discrimination built into DPOS by design, it's just economically based, not time based. I was trying to balance the two with my proposed limiting of value. A new vote would re-instate the full balance of the wallet.

To @n4ru's point, inadvertently (or internationally for that matter) giving whale-based delegates more power is not optimal...

n4ru commented 5 years ago

@roks0n

Perhaps a strange example, but imagine if votes of people that passed away in real life applied indefinitely. We'd likely be in a strange world right now.

That is what inflation is for. We already have natural "vote decay". I think a better solution would be for delegates to apply this individually, or a collective agreement to stop paying inactive wallets. This would mean that everyone delegate's vote grows by roughly 422 daily, and distribute the inactive payment among the active voters.

zillionn commented 5 years ago

@n4ru So you'll accept the inactive wallet vote and stay in top 51, but not pay that voter. Do not agree, we should just remove that vote.

n4ru commented 5 years ago

@zillionn The point is the inflation they create is passed on to other voters who can then choose to continue voting for you or unvote you. I don't see why this would be an issue since it helps solve the alleged problem. Their vote is worth less as time goes on because they are no longer accumulating inflation against every other wallet.

zillionn commented 5 years ago

IMO the inflation is too low to make a difference.

moazzamak commented 5 years ago

The point is the inflation they create is passed on to other voters who can then choose to continue voting for you or unvote you

The biggest reason to limit voters to active wallets is so that a delegate doesn't become too entrenched, and if they abuse their power they can be taken out of forging easier. What you're suggesting does nothing for that and might even give more power to the delegate. i.e if I see there are wallets voting for me which haven't had outgoing tx in more than a few years then I can choose to stop paying them and keep their share for myself.

Also having such a vote expiry or active wallet mechanism as optional creates a disadvantage for those who adopt it. It has to be all or none.

fix commented 5 years ago

I believe this 'vote expiration' is a solution to a transitional issue. So two options

moazzamak commented 5 years ago

IMO we should be planning ahead and trying to reduce the chances that we will need to do a hard fork to unvote a whale who has lost their keys. If we do that hardfork what stops people from asking us to move their funds to a new address that they control or a government to move funds because of some order. It leads down a slippery slope that ends up removing the only feature of a blockchain of data immutability that separates it from a database.

zillionn commented 5 years ago

So, are we implementing 1 year expiration of the vote? Somebody please write down an AIP.

n4ru commented 5 years ago

@fix How could it become decentralized over time? Most PoS systems inherently benefit bigger wallets more and those who hold; they don't get more diluted over time - in fact, the opposite happens.

zillionn commented 5 years ago

The price will NEVER reach say $100 with so many whales

@fix Why and what does price have to do with this discussion?

moazzamak commented 5 years ago

If I understood @fix 's point correctly then he means whales will liquidate a significant amount of their holdings as the price moves up and new people keep buying. Also @n4ru 's point is valid but only if the whales are running private delegates. If they support public delegates then over time the overall percentage of supply that whales own will go down as delegates take a part of that and compete between each other to provide better services.

n4ru commented 5 years ago

if the whales are running private delegates.

But that's not an if, and it's unlikely to change because game theory provides no incentive to do so. It's clear as day by just looking at the largest voting wallets.

roks0n commented 5 years ago

I've create a PR for this AIP: https://github.com/ArkEcosystem/AIPs/pull/62. Based on any further points raised in this discussion feel free to modify the proposal and also add yourself as an author.

doubled1c3 commented 5 years ago

Firstly let me state that none of this is directed at anyone specifically and certainly not rocks0n for starting the discussion, but I'm putting in my thoughts here. Kudos rocks0n.

ARK has probably the easiest system in place for voting for any system out there. 1 Ark = 1 Vote, Press here, you're voted. This AIP is aiming to increase the complexity of the voting process beyond 0, which is why I do not support it. However, more importantly, there is a philosophical issue with this discussion. Y'all are assuming these wallets are all dead, and aren't hodling while supporting inactive delegates. Why? Because they aren't receiving voting rewards and still haven't moved their coins to a forging delegate? Because they haven't moved any coins in a long time? This is enough evidence to make decisions for them unless they take actions by keeping their wallet "active?" I say no. How do you know they aren't just hodling and supported a delegate who left? Maybe they want them to come back and they're putting their money where their mouth is.

The issue that probably a good amount of the ARK is in fact dead should not be enough reason to force hodlers of ARKs that are not dead to jump through additional bureaucratic hoops. You can't know which ARK is dead and which isn't so you can't take actions on other people's behalf as the "network" doing "what's best for the user"

The truth is the user is King. The user in control of his keys is in control of changing their vote or leaving their vote for 100 years regardless of whether they lose interest during a bear market. The user who loses control of his keys suffers the consequences of that loss of keys. The delegate who benefits from a user losing their keys is a simple side effect of the user retaining the power in the system and not being subject to extra steps or worse, not understanding how the system works and suffering from the network making decisions for them (like unvoting).

KMD makes you move your coins every month to get rewards and it's so dumb. If we absorb every piece of technology from other blockchains just because there are some apparent benefits, it can water down our value offering as being the easiest blockchain in existence and erode the edge we have by thinking differently than any other blockchain project.

Anything that trades off certain benefits for increased complexity for the end user should be CAREFULLY examined and those benefits better be minimum AMAZING... I do not see any 'amazing' benefits here, only mildly interesting benefits. So I do not think we should do this.

cambo commented 5 years ago

I was going to leave an extensive, unnecessary, and unsolicited comment until I read @doubled1c3 comment. Nailed it on the head.

I personally don't see any reason for the network to make these decisions for the users. If they want to vote for a dead delegate, that is 100% their prerogative. It's even in the Ark wallet entrance tutorial... the power is given to you, THE USER.

However, if this AIP were adapted I'd say 1 year is way too short. I'd even go as radical as saying 10 years would be when a vote should decay.

I know it's a far fetched comparison, but, how many of you have $$ locked up in a retirement fund that you haven't touche in years? What if you go to retire and they tell you, "Sorry, you never withdrew any of your retirement money, so we deactivated it 35 years ago.". I just think it's extremely unrealistic to expect X users (X = a lot haha) to send an outgoing tx every so often to stay "active". That's not our business to determine who is active and who isn't.

skeuo commented 5 years ago

I've somewhat given my opinion already but just to expand on why i'm in favour of expiring votes after reading Justin's reply. I agree that added complexity should provide amazing benefits, however, i feel the added complexity is minimal and the inconvenience of refreshing a vote is vastly overstated (after all discussions between here and slack). It isn't taking away any rights or Ark. I'm not saying this specific proposal is the way to go, but some form of long term vote expiry would keep Ark from developing areas of stagnation and encourage positive growth. I think the benefits that voters would get back outweigh anything taken away.

Just some concerns:

Ultimately, the voter has the right and responsibility to do whatever they want with their Ark as stated by the majority but i think there are benefits to encouraging diligent voting as well as removing the possibility of locked votes which work in favour of those same voters and the ecosystem as a whole.

Ream me gently.

moazzamak commented 5 years ago

I think all of you are ignoring the entire "Ecosystem" aspect of Ark. An Ark wallet belonging to some user is unlikely to sit idle for more than a year unless the owner died or lost their keys since there will be services in the ecosystem that they are using. I'm not talking about right now but in 10 years when the ecosystem has matured. Additionally the "burden" of making a transaction once every year to keep your vote live is not a burden even on cold wallets. It's an exercise to make sure that the account's keys are still valid and the ark is still there, consider it our version of proof of keys.

What if you go to retire and they tell you, "Sorry, you never withdrew any of your retirement money, so we deactivated it 35 years ago."

No funds are being slashed. Only voting power will not be counted. So if someone leaves a wallet for 100 years the funds will still be there unless ark changes the addressing format.

roks0n commented 5 years ago

Points on both sides are valid, but I'm still leaning more towards supporting this AIP especially given any "hard fork" that we will do later when the damage will already be done will be perceived in a negative way by the Ark and wider community imo. Who are we to decide that a wallet was lost or owner died? Hence why I support adding this to a protocol level now while there are no problems to avoid other political debates in the future when it will already be too late.

dmvt commented 5 years ago

I know it's a far fetched comparison, but, how many of you have $$ locked up in a retirement fund that you haven't touche in years? What if you go to retire and they tell you, "Sorry, you never withdrew any of your retirement money, so we deactivated it 35 years ago.". I just think it's extremely unrealistic to expect X users (X = a lot haha) to send an outgoing tx every so often to stay "active". That's not our business to determine who is active and who isn't.

Actually, many states in the US do have this law. In NJ for instance, if you don't add to or log into a retirement account for 5 years, the money is given to the state and has to be reclaimed. When this happens, no further interest is gained and the retirement account is closed.

  • 1 voter's mistake or death can have a lasting, irreversible impact on consensus, especially given current distribution.

this :point_up_2:

  • I can't think of scenarios where someone's political vote can inadvertently last forever?
  • Grandchildren left with grandparents politicians. Just some crazy talk from me.

and this :point_up_2:

Points on both sides are valid, but I'm still leaning more towards supporting this AIP especially given any "hard fork" that we will do later when the damage will already be done will be perceived in a negative way by the Ark and wider community imo. Who are we to decide that a wallet was lost or owner died? Hence why I support adding this to a protocol level now while there are no problems to avoid other political debates in the future when it will already be too late.

I agree completely. We wouldn't wait until after we got hacked to fix a known security issue. Why wait until after we have a dead whale to address the issue of what to do with it?

whale

j-a-m-l commented 5 years ago

What if, instead of a strict expiration, that void your voting power, we use a simple formula that reduces it every period?

Something like:

votingPower = walletTokens * (1/2 ^ n)

If n is decided to be 1 year, every year the voting power of the wallet would be reduced to the half. This would affect whales the most and it would mitigate the problem of dead whales voting non-contributing delegates forever and ever.

This formula could be changed to something more complex, to include the current network voting power into calculation (or an estimation to improve performance), to have a threshold, etc.

As an example:

votingPower = walletTokens * (2 - (1 + relativeVotingPower) ^ (relativeVotingPower * 2000 * n))

where relativeVotingPower is walletTokens / totalVotingTokens. In this case, the biggest the account, the biggest the reducing factor. The impact on tiny and small wallets (< 10k) would be almost nonexistent, but on whales with more than 1 million would empty their voting power after 5 years. That's only an example, but the formula could be changed in lots of ways.

Other example would be setting a different factor that decides n (the period), so bigger accounts would need activity more frequently than smaller ones to not reduce their voting power.

This idea wouldn't be enough if the whale split the account into lots of smaller accounts that vote the same non-contributing delegate.

doubled1c3 commented 5 years ago

@j-a-m-l developers may applaud your idea, but please don't make me show vote weight decay curves or convolution kernels to my grandparents, man let's keep it simple lol

Firstly everyone, it would be really interesting if someone could analyze the blockchain and the voters of the current 51 and generate a report of how much ARK is in wallets with no outgoing transactions for 12+ months are voting for each current delegate. And post result here. I don't know how but it would be really really interesting to see a current "state of the union" re: inactive wallets.

I'm starting to detect a running opinion that inactive wallets need to be addressed and this AIP may very well be the solution moving forward. While I stand by my previous points, the main reasons of this AIP are chaos avoidance, and we need to introduce some amazing benefits as well. As a non-dev with a different point of view, I have an idea for this.

What if we had the system unvote inactive wallets on the same day each year, all at once.

This would create a Governance Event similar to the Bitcoin Halvening, and would like grow to be called "The Unvotening." What this does is, instead of isolating each inactive voter in a silo of responsibility, where they each have their own timer, it concentrates the event such that the entire community comes together and reacts to it all at once. As you can guess, this can have massive positive impact on our community and network.

  1. It will become impossible to forget because it happens to every dormant wallet all at once and everyone will be talking about it leading up to it and away from it.
  2. It creates a scenario where a dormant wallet can vote unmolested from minimum 1 maximum 1.999 year which is fine.
  3. It "brings home" all hardcore hodlers at once, blowing up our Reddit, Slack, Discord, Twitter, etc. teeming with life leading up to and away from the event.
  4. A bunch of people will be reading over delegate proposals and discussing them with each other, all at once. This will create a lot of things to talk about and discuss, enriching our community.
  5. New delegates can strategically launch new proposals around this time, with so much extra attention on governance and so many people exploring ARK governance all at once.
  6. It provides a ton of content to journalists, youtubers, redditors, etc to talk about all at once. "The Unvotening soon! What will happen? Who is safe? Who are you voting for? Etc."
  7. Delegates can do marketing on why they are great all at once, creating additional buzz.
  8. The system still runs as expected and anyone can vote and unvote any time during the year and everything else stays the same, but The Unvotening acts as a beacon that people should be paying attention to ARK and what's going on with it.
  9. It creates a trough of opportunity to receive higher voluntary payouts from delegates during a time afterwards, which might be good incentive for people to join our community and start staking, or move funds off of exchanges.
  10. Most importantly, it keeps the process simple as possible while still achieving the goals of the AIP, while at the same time giving ARK community a reason to pay close attention to ARK each year.
  11. Knowing that there will be a period of time each year where the maximum people are participating in the community, ARK.io can time certain events or milestones to this time period to make sure the maximum people are informed on what ARK.io is up to all at once.
  12. To my knowledge NO ONE ELSE IS DOING THIS and could give us a unique edge in the space.

I think it's a good idea, let's consider it. I might suggest Jan 1, or March 21 as it is ARK's birthday.

roks0n commented 5 years ago

it would be really interesting if someone could analyze the blockchain and the voters

Here are some: https://github.com/ArkEcosystem/AIPs/issues/48#issuecomment-453922688

dmvt commented 5 years ago

I really like that idea @doubled1c3.

doubled1c3 commented 5 years ago

@roks0n Nice stats! Curious to see a complete table with NumDormantVoters and TotalDormantWeight for each delegate

zillionn commented 5 years ago

@j-a-m-l Then I'll just split my coins into 100 wallets.

OK how about your vote to expire in 1 year but not since you placed the vote, but 1 year after your last outgoing transaction? Therefore, if you're interacting with your wallet at least once per year, your vote will never expire.

j-a-m-l commented 5 years ago

@zillionn I know that it's a limitation, but that idea could be 1 of the measures to solve this problem.

@doubled1c3, I understand your point, and I wouldn't like to create something complex.

I've updated my 2nd example, and it would only affect very big wallets, so, the voting power of regular users would be almost the same even if they are inactive. You wouldn't need to explain your parents that after 5 years their vote is 0.000x% less.

I like your idea of The Unvotening because it looks like a way to reunite the entire community for an event each year, although I'm not sure about how practical it is for those that hodl some crypto, but don't read news about it, or check their non-whale balances 1 or 2 times per year, or even less frequently.

Anyway, something to have in mind is that users could program bots to automate some interactions (sending transactions between them, creating new addresses, voting after The Unvotening, etc.), so those interactions would be working as long as those bots do, even if their owners are dead.

doubled1c3 commented 5 years ago

@j-a-m-l thanks for your comments, and it's true, macros and other tools can help out hodlers as needed

@zillionn I think there's a general agreement on wallets declared dormant on 365 days of no outgoing transactions, seems reasonable

PS - The unvotening would certainly be explained in the wallet installation slideshow thing so people know about it on install

moazzamak commented 5 years ago

I like the Unvotening idea. Like I said, it can be own version of proof of keys.

rrbest commented 5 years ago

I think it is important that a bad voter should be punished. It is proof of stake after all, and that comes with some responsibility. For ark, the premise is that voting for a bad delegate means they aren't forging and thus you don't get a reward. But this isn't actually always true, and creates a conflict of interest when voting for up and coming delegates that aren't already voted in. This needs to be fixed by implementing ranked choice voting.

Additionally, there is a problem with bribery in the system as well. It is minor because ark delegates tend to share a lot (90%+) but it is still a problem because voters are all doing the same job and should be compensated the same. As such, auto sharing a set amount for successful forged blocks solves this unfairness.

Now given that we have ranked choice voting and auto sharing, we can properly implement voter decay as below:

No rewards for any voter, only decays for bad voters. Voting poorly is hard because of ranked choice voting, and decay is equal because everyone receives the same rewards for voting regardless of delegate. However, if your top voted forging delegate is not very good you will be decayed faster than the average ark user and thus lose value. Every other participant in the system receives your value in an indirect way.

Because there are no rewards whatsoever, ARK would have a permanent declining supply rather than an increasing one. This has some simplicity for taxes as well because you won't be receiving any income from rewards, which is typically taxed at a higher rate.

Now the decay for bad voting can be quite punishing, perhaps even half your coins per year. So the way this would look is if there was a total supply of ARK of 100, and a bad voter had 10 and disappeared, the following year the total supply of ARK would be 95, and the bad voter would have 5 coins remaining. If you voted well for the year, you'd retain your 1 ark, and thus your share of the network value would increase from 1% to 1.05%, and the bad voters share of the network value would decline from 10% to 5.2%. Given the continuously declining supply of ARK, its price would inevitable go up, and if/when you chose to reduce your share back to 1% of the network, you could just sell 0.05 of the coins you own to replicate your income from rewards. For those who do pay taxes, this 0.05 is taxed at more favorable capital gains rates instead of income, and even for those who just like the cleanliness, you could keep your 1 coin forever if you wanted.

vasild commented 5 years ago

This AIP lacks any reasoning, other than "This AIP is inspired by Tezos where [they do it]".

I don't see the point of doing this. Furthermore it could be easily circumvented by sending funds from one address to another. And if somebody votes for a delegate and looses the keys for his wallet, why should the vote be deactivated? I would argue that it shouldn't.

If this proposal is implemented, I don't see it achieving anything other than annoying long term holders and chasing them away.