neo-project / neo

NEO Smart Economy
MIT License
3.47k stars 1.03k forks source link

Adjusting the economic model #285

Closed erikzhang closed 3 years ago

erikzhang commented 6 years ago

Adjusting the economic model for gas distribution.

Agreed:

Contentious:

igormcoelho commented 6 years ago

This one I don't get the direction yet... any ideas brother @vncoelho?

vncoelho commented 6 years ago

A naice veri gud. I think that is could be crossed in time, ma broda, not in terms of blocks. @lerider

If the generation is expected 8 GAS in terms of 15s it should be 0,54 per 1000ms. We all know that the current code can run much fast block times. Thus, let just adapt/adjust the formula towards that.

In this sense, Ontology and other private blockchains could easily follow this formula and generate GAS accordingly. This would unify the price of gas across different blockchains ecosystems. Haduken.

deanpress commented 6 years ago

One of NEO's main attracting powers was always that if decentralization would be introduced, consensus nodes can be run by parties without any direct incentives from transaction fees. Consensus nodes would benefit from other factors such as funding/exposure/contributing to ecosystem, and the blockchain fees would be distributed only to NEO holders (not consensus nodes). NEO holders would also be in control deciding over the blockchain's fees.

I'm sure there are many projects that will completely voluntarily maintain high performance consensus nodes, just for the sake of exposure and engagement with the NEO community.

I personally know many projects that are looking to engage with the NEO community who want to dedicate resources to improve the ecosystem.

The game theory behind this model is interesting and refreshing, and it hasn't had a chance to prove itself right or wrong yet, so why would there already be considerations to move to a fundamentally different economic model?


Additionally, if the economic model is moving to proof of x + infinite GAS supply, wouldn't it become more similar to Ethereum Casper except with more complexities due to dual-token model (which was not designed for this model) + centrally decided upon fee structure (instead of letting NEO holders vote)? What would be the remaining benefit relative to other platforms in terms of performance/fee ratio?

ThomasLobker commented 6 years ago

A small increase in the supply of gas every year

GAS should be a fixed supply and recycled based on usage. Like we have already. This is a very solid model.

Reward consensus nodes

This is called Network Fee and it's already part of NEO right? A small network fee would be a nice way for the consensus node to be rewarded. It would be nice though if you can still choose to pay no network fee for a low priority transaction.

Make neo divisible

NEO is already divisible by a factor 100,000,000. Why would anyone need smaller amounts of NEO which is a governing token? For payments we already have GAS which is a utility token. This two-token model with an non-divisible governing token is one of NEO's biggest charms.

Allow gas to use the decimal part when being used as sys_fee

That sounds like a good plan!

erikzhang commented 6 years ago

If the economic model is moving to proof of x + infinite GAS supply, wouldn't it become more similar to Ethereum Casper except with more complexities due to dual-token model (which was not designed for this model) + centrally decided upon fee structure (instead of letting NEO holders vote)?

GAS should be a fixed supply and recycled based on usage. Like we have already. This is a very solid model.

In the dual-token model, if neo enters a blackhole address, it causes all of the gas that this part of neo gets lost, and the process, like a real blackhole, will eventually devour all the gas.

lerider commented 6 years ago

A small increase in the supply of gas every year Reward consensus nodes I strongly oppose these. The economic model is built upon circulation in a closed system, aligning interest so that both users and CN's have the same motives. Allowing increase in GAS based on for example reward to CN's nodes will create a system where CN's main interest is of economic gain and not for the benefit of users. It will result in a consortium of CN's who manipulate GAS price for their own maximized profit. It may potentially give a short term spike in NEO price when people are hoarding voting power (see EOS), but once hoarding is complete, the CN's will gain most benefit from "stabilizing" the consortium and we are stuck with CN's that never change owner (unless they dump on purpose). There are already dozens of parties who want to carry the cost of a CN (around 500 USD a month) without direct economic gain; I do not see a reason to overhaul the whole economic model.

Make neo divisible The only thing this would help is to allow distribution of smaller GAS fees. The small benefit does not justify the big risk forced upon token holders.

  1. NEO is the governance token and GAS is the utility token. The characteristics of the tokens support this; if you want to fuel a contract with a system asset, then you use the utility token (GAS). This will increase demand on GAS token as the network usage increases, and in turn increase value of NEO when GAS is recycled. Allowing NEO to be divisible create a big risk that dApps choose to fuel themselves with NEO token instead. This may be negative in terms of token price for both NEO and GAS token; as GAS loses demand, the value decrease. As the recycling benefit decreases in value, NEO token may also lose value. This is my personal expectation, and I do not see the big risk for token holders justify the small benefit.
  2. Even though high voting participation is beneficial, we would like to avoid random voting as much as possible. Allowing fractional NEO to vote (for reward) will give much power to wallet creators, as they will certainly implement a "vote standard" function (for their own nodes?) to make it easier to vote for users. People who are more invested will have more incentive to vote "properly", and keeping the NEO as indivisible is at least a small barrier for participation in voting (for good and bad).

Allow gas to use the decimal part when being used as sys_fee I think the "decimal part" refers to decimal part of the NEO token when distributing GAS so that smaller fees can be accepted. I greatly support smaller fees, but think we should try to find another way to allow the recycling rather than making NEO divisible.

In summary, I do not support these changes. It has too much influence on the economic model and there is no reason big enough that justify these changes. Moreover, it has too much impact on both developers and token holders; it creates an uncertainty. Developers and token holders need to know what they can expect in the future, and this overhaul is too big without enough reason to do so.

My biggest objections are against increasing GAS supply and rewarding consensus nodes (more than they already are).

erikzhang commented 6 years ago

@lerider Please see my reason at https://github.com/neo-project/neo/issues/285#issuecomment-403859121

EdgeDLT commented 6 years ago

I agree with @lerider that incentivizing consensus nodes & increasing GAS supply should not be implemented. It disturbs the closed economic model that NEO was created to serve. I also have qualms about divisible NEO, as this is detrimental to the value of GAS and use of a two-token model, although I understand that it is ideal for accessibility as NEO's price increases.

My suggestion about an improved voted mechanism using time-locked voting contracts may prove a useful solution to this issue. It also suggests approval voting, which should drastically reduce the risk of random voting whilst also minimizing the potential vote influence of centralized exchanges. It will also incentivize voting, and could prevent the risk of GAS being lost to a 'black hole' address as @erikzhang has described it, by only distributing some/all GAS to vote-locked NEO.

Please view my proposal here for more information. Review/discuss here.

BehindYou27 commented 6 years ago

I strongly oppose these changes. In my opinion, divisible Neo is NOT needed and serves no noticeable reason. In case you have a point to change this immediately, please point these out.

Gas-Inflation:

I’m not in favor of this at all. This would punish all gas-holders. In addition (like Malcolm pointed out) CN’s don’t need the additional economical benefit. They will cover their expenses by transaction fees. This has to be enough to make it interesting for these parties.

To be completely candid: I don’t understand the reasoning behind these changes anyway. Neo is right now not that expensive that we would have a liquidity-issue. Gas price is not that expensive that a inflation is needed to prevent holding.

Why change a running system?

Edit: Regards the black hole of Gas: Yes, in an infinite timeframe, this could and probably will happen. But until all Gas is lost, I don’t see a problem. A solution could be dynamic pricing of system fees. I also really like the proposal of @Edgegasm.

erikzhang commented 6 years ago

@Edgegasm We don't need to worry about gas in the black hole address. But we do need to worry about neo in the black hole address. Because in the current economic model, the gas that is consumed will be given to neo holders. So gas will flow into the black hole address until all gas is gone.

EdgeDLT commented 6 years ago

@erikzhang If GAS is only distributed to voting participants (incentivizes voting), and we use a contract approach as my suggestion, GAS would never flow into a black hole NEO address. The NEO at that address would not ever be placed into a voting contract, so the address would not be eligible for GAS distribution.

As a result, lost NEO would only serve to lower the circulating supply & increase the value for other NEO holders.

erikzhang commented 6 years ago

If GAS is only distributed to voting participants (incentivizes voting), and we use a contract approach as my suggestion, GAS would never flow into a black hole NEO address.

Addresses that lose their private keys can also cause problems.

EdgeDLT commented 6 years ago

In what way? Without access to the private key, you wouldn't be able to send your NEO to the voting contract. Without voting, no GAS will be distributed to the address.

erikzhang commented 6 years ago

I sent neo to voting contract, and then lost private key. So I can never withdraw them back. Does this cause problems?

ghost commented 6 years ago

If neo can enter a black hole address and that causes a problem with the ecosystem, neo transactions should be reversible so they cannot be blackholed.

EdgeDLT commented 6 years ago

That would depend on whether the contract required users to personally withdraw their funds, or whether funds are automatically returned to the holder after the voting period has concluded (after a specific duration/block). I'd suggest the second option is ideal for simplicity, so time-locked contracts.

This would place the NEO back at their origin address (along with the GAS distributed from that voting period), but it would not affect any subsequent voting periods. Each voting period is unique; GAS is distributed only when a wallet participates. Of course we can't do anything about a user losing their private key, but we can prevent it having a negative impact on the rest of the system. If it's not possible to have NEO automatically returned after the voting period (if users must manually withdraw), then the NEO will remain lost in a dead contract (burned).

The end result is the same; losing your private key will mean losing access to your NEO, and the NEO in the contract cannot have any negative effects on the system.

BehindYou27 commented 6 years ago

@erikzhang

Can you point out what exactly will be the problem if Gas is locked up in dead wallets? Is it only the appreciation of Gas?

On what bases would you like to have the inflation? Some random number like EOS has? A calculated inflation?

There is one thing I could get behind: If the Gas is redistributed to the holders/voters. But it can’t be a random number. I’d propose that the lost gas has to be calculated over a long time. Maybe 22 years after the genesis block. So you would have to check what wallets didn’t touch the generated gas for 22 years and add this to the Gas-distribution.

The longer the timeframe, the more secure this system becomes for holders.

I still won’t like it but I could deal with it. That would mean in case someone would regain access to the gas that was locked up for 22 years in their wallet, the additional distribution would stop until we have less than 100 Million gas in realistic supply

Sent with GitHawk

t-ant8 commented 6 years ago

@lerider @deanpress I think, rewarding consensus nodes was planned from the beginning if I remember correctly. It was written in the first Antshares whitepaper (CN were called "book-keeper" nodes).

I think GAS-incentive makes it more attractive for large businesses (such as KPN) to run a CN node. In the end, running CN is just business for coorporates (IMO)

EdgeDLT commented 6 years ago

@t-ant8 Rewarding consensus nodes was only intended to be done using transaction fees, with the idea that we can keep them low if not zero by competition for the right to participate in consensus.

Goodwill with the NEO community is incentive enough in a lot of cases.

erikzhang commented 6 years ago

@Edgegasm Can you put your solution in a separate issue?

EdgeDLT commented 6 years ago

@erikzhang It's currently up as a NEP pull request. Would you like me to post it as an issue instead?

erikzhang commented 6 years ago

It's currently up as a NEP pull request. Would you like me to post it as an issue instead?

Yes, please post it as an issue so that we can discuss it in the context of NEO 3.0

BehindYou27 commented 6 years ago

Hi @t-ant8

But what would be the reason behind this? I don’t think that we will have problems to find enough CNs that are willing to spend this money to run a node.

So we could decide if they get a Gas-Incentive to run it, which would effectively take away value from every gas-holder due to increased supply

Or

CN’s will try to make it efficient by having transaction fees. This would take away gas from people that are using the system.

Which one is fairer?

I know what I think.

Sent with GitHawk

EdgeDLT commented 6 years ago

@erikzhang Issue opened for discussion here.

erikzhang commented 6 years ago

In fact, I don't like to increase gas supply either. If the problem of black hole addresses can be solved, there is no reason to do so.

EdgeDLT commented 6 years ago

Indeed, one of the most widely disliked parts about FIAT currency is inflation. It should be avoided at all costs.

t-ant8 commented 6 years ago

@BehindYou27 Please don't get me wrong. I do not support the GAS-inflation idea. If too many GAS are stuck in black hole addresses (if that ever happens) then the pricing model could be adapted. GAS are lost just same as NEO are lost over time.

Concerning "reward CN": Maybe I understood it wrong, but when I read "rewarding CN" I thought it's meant to be the transaction fees which go Consensus nodes, or is it something else? (not increased amount of GAS, just a redistribution)

EdgeDLT commented 6 years ago

@t-ant8 Transaction fees (if enabled) go to CNs. System fees (contract deployment etc) are redistributed to NEO holders.

ThomasLobker commented 6 years ago

The black hole problem is not really a problem. Less NEO and GAS in circulation will simply increase the value and thus making it more likely for people to be more careful in the future. This is no different with Bitcoin, or even paper money. Stuff gets lost or breaks. I don't see how this is a problem.

ghost commented 6 years ago

It is my understanding, If the amount of neo in circulation decreases below 66% of total, you will be unable to reach consensus because you have 33% of your neo present but not voting.

So blackholed neo is a problem.

EdgeDLT commented 6 years ago

@coranos Not a problem with the time-locked voting contract proposal as only the locked up NEO are being counted for votes.

How much NEO is in circulation doesn't matter; all that matters in determining CNs is the vote distribution.

cryptogirlHODL commented 6 years ago

@coranos Please do look at @Edgegasm 's proposal! I think it solves a lot of issues, including this black hole issue since only actively locked-up NEO receives GAS and black-holed NEO is not locked-up. Additionally it removes voting power from exchanges, incentivizes people to hold in their private wallets (since exchanges cannot pay out GAS for them). As a fun side-bonus, it doubles the HODL power of the NEO token too since due to the lock-up less panic-selling can occur which can only be positive for price stability.

It's a multi-edged blade.

ghost commented 6 years ago

If GAS is lost to blackhole addresses is it worth doing a 'back-of-an-envelope' calculation to estimate how much utilization the network could handle before GAS reaches its divisibility limit for various conditions of e.g. rate of GAS loss, network load, lifespan of network etc.

Perhaps the rate of loss would turn out to be a non-issue if the chance of GAS reaching its divisibility limit is vastly lower than a conceivable high usage global model would require?

ThomasLobker commented 6 years ago

If the amount of neo in circulation decreases below 66% of total, you will be unable to reach consensus because you have 33% of your neo present but not voting.

@coranos that would mean if people were just too lazy to vote, we will also be unable to reach consensus. I'm assuming that we will only look at the actual votes, not at sleeping (or blackholed) NEO.

CrypJohn commented 6 years ago

In the end we also will have to deal with inflation. The current system is good, but you will attrack more people with; Allow gas to use the decimal part when being used as sys_fee

t-ant8 commented 6 years ago

@coranos, i think the 66% relates to the number of CNs and not to the amount of NEO for consensus to be achieved (dBFT).

BehindYou27 commented 6 years ago

@CrypJohn

you will attract more people with; Make Neo divisible

That is true. However in Germany we have a saying for this. It’s called “Milchmädchenrechnung” It’s a calculation that works but that doesn’t make sense.

By making Neo divisible you are effectively increasing the supply. It would probably increase liquidity and lead to a short term increase in price. For the long term I see big risks for Gas, f.e. rendering it’s use case useless, because Neo could be used for everything then. If Gas loses value, so should Neo-because the value of Neo is tied to the value of Gas. (But because Neo takes over this part from Gas, it should balance itself out)

I know that you are probably aware of this. I still wanted to point this out because we probably have visitors that may still learn about Neo.

I also know that you didn’t say that you are in favor of this. You only stated that it will attract people. I agree. It does attract people but for the wrong reasons.

It’s like an exchange listing that boots the price of a token. For a token that has low liquidity it makes sense. For a well established token, it does not. It’s not sustainable growth.

EdgeDLT commented 6 years ago

This is why the time-lock contract approach makes so much sense. We want divisible NEO for the accessibility it provides. It will aid us in becoming decentralized, and it will make it more likely to stay that way.

NEO is scarce because it's indivisible. But if most divisible NEO are going to be locked up for voting/getting GAS, we create scarcity again. This method allows us to use divisible NEO without harming the value proposition for GAS as a utility token. Best of all worlds; Incentivized voting, NEO scarcity, less influential exchanges and valuable GAS.

CrypJohn commented 6 years ago

@BehindYou27

Agree with your feedback, deleted that part just after posting. To much negative effects.

BehindYou27 commented 6 years ago

@CrypJohn

Okay, I hope I could make it a bit more understandable. :)

Have a nice day.

@Edgegasm

I understand that divisible Neo could benefit the distribution but I have a hard time liking it.

Because we will probably use a Neo=Vote (1-1) system, these partial votes probably won’t have any noticeable impact. If we opt to use divisible Neo, I’d like to keep it at .1 - Maybe shift the “,” every time we reach a 10 in value. Neo price= 10= 1 (Minimal Voting) Neo price= 100= 0.1 (Minimal Voting) Neo price= 1000= 0.01 (Minimal Voting) Neo price= 10000= 0.001 (Minimal Voting)

This would keep voting/participation cost always below $100.

saltyskip commented 6 years ago

I'd like to make an argument FOR inflationary gas which seems to be strongly opposed here. As @erikzhang already, mentioned the black hole problem leads to a further and further decreasing supply of GAS.

Any deflationary currency rewards hoarding instead of spending. If GAS is inflationary then it should increase the velocity of transactions inside the NEO network, which benefits NEO holders. Even if GAS is inflationary, then percentage of the total GAS that you own remains constant, assuming you do not change the amount of NEO you hold.

IMO in the two token role, NEO is meant for holding, and GAS is meant for spending. Making GAS inflationary actually strengthens this relationship rather than weakens it

I generally believe that hoarding GAS is a net negative on the ecosystem, gas should circulate with high velocity to aid in the long term sustainability of the ecosystem.

Murquia commented 6 years ago

To prevent blackhole, shouldn't there be a default system recourse where an unused wallet gets deleted with its tokens redistributed to the rest of the active token holders or simply returned to the ecosystem after a certain duration of inactivity? (e.g. 10 years or.. 50 years?).

BehindYou27 commented 6 years ago

@Murquia

Yes. This is a very crucial point.

I’ve pointed out a proposal with my second comment below this post:

https://github.com/neo-project/neo/issues/313

diskooooo commented 6 years ago

I would also like to chip in: I've closely monitored NEO's progress since ANS days, and I believe we're at a make-or-break point right now.

Basically, I'm mostly siding with @Lerider, @deanpress and @Edgegasm and on this one. However, on certain details I have different thoughts, or, IMHO, improved alternatives.

There are a few topics to discuss:

NEO divisibility

From what I've read, this change is mostly pushed by those that believe that indivisibility makes NEO too inaccessible as the price goes up.

After giving it much thought, I disagree with this change. I personally do not see the need to make NEO divisible, because it is actually a share/stock in the smart economy, and the utility token, GAS, already is divisible. It is A) what makes NEO unique, and B) making it divisible does not add any benefits except for accessibility to future investors.

Let's do a (crazy :)) thought experiment:

1 NEO, in a distant future, is trading for $200.000, 1 GAS is trading for $10.000. In comparison, 1 share of Berkshire Hathaway Inc. Class A is worth about $286.000 right now. This is just 1 share in a company, and it is not capable of doing anything special, while having a share in NEO will be equal to having a share in a full economy (a smart one, I should add!), giving the holder decision making power over the economy.

Even if crypto may never reach these kind of market caps, we should definitely not think too small here; the possibilities are endless once we start to see mass adoption and enterprise scale usage. Alas, if NEO would have such a high value (this point should also apply to values of $1000, $20.000,...), we have to think about accessibility and spendability.

Accessibility

It will indeed be hard to buy 1 NEO for regular investors. Is this a bad thing however? Should the NEO price eventually reach levels like these, it means that we have come to a consensus on the changes being discussed now, and it has worked out perfectly ;) And people who then still hold many NEO are probably early investors (or the companies who built the network and economy), and they should have the most understanding about the technical and economical mechanics of the NEO ecosystem. They are the ones who made it possible for NEO to grow to these valuations, and hence should have most governing/voting power.

Besides, should NEO be made divisible, then there is the voting issue: more people could vote as NEO gets more accessible (e.g. a holder of 0.001 NEO could vote?), but the 0.001 vote would barely have any impact. I therefor see no problem regarding accessibility when NEO is kept indivisible.

Spendability

NEO is a share (and a governance token), and not a currency. Should someone hold 1 NEO, but wants to spend less than 1 full NEO, they can log in to any exchange, trade that 1 NEO for GAS, and transfer that. Problem solved.

And if there are still centralized exchanges when NEO reaches these kind of valuations, investors could buy and trade fractions of NEO on those exchanges.

Voting / Time-locked NEO

For the most part I agree with @Lerider regarding the voting mechanics, and with @Edgegasm regarding locking NEO when voting.

However: I actually am against the need to send your NEO to another address (contract) in order to lock it away. I do not see the benefits of that, because:

Ad IIII: I believe we can achieve the same time-locked contract effect without sending out the NEO to a different contract. Why? Each NEO (wallet) address already is a smart contract address by itself. I don't see why we could not make the NEO unspendable (not being able to transfer) in the own wallet (contract) after voting. This would also make it easier to cancel/modify votes, and would spam the network less.

It would achieve the same effect:

For an exchange, this would cause severe liquidity problems in the case of users attempting to withdraw funds.

The unspendable NEO is still in their wallet, and users could not withdraw that NEO from their wallet while the NEO is being locked in to vote. Maybe I'm missing something here, or am I misunderstanding certain facts, but if not, this approach seems better to me.

GAS claims

Rendering a vote would constitute a GAS claim (unlock unclaimed GAS). This changes the current system that NEO has to be sent to itself to claim GAS. This, in turn, incentivises voting.

Rewarding consensus nodes

I must agree with @deanpress here:

The game theory behind this model is interesting and refreshing, and it hasn't had a chance to prove itself right or wrong yet, so why would there already be considerations to move to a fundamentally different economic model?

IMHO we should not give extra rewards to CN's before the existing model had a change to prove itself.

Allow gas to use the decimal part when being used as sys_fee

I agree, I only see upsides to this.

A small increase in the supply of gas every year (NEO / GAS blackholing)

I disagree with artificial inflation. If I understand correctly, this thought was introduced because of the possibility that NEO/GAS can be blackholed? IMO, this is equal to saying that the USD circulating supply must steadily increase (have inflation), because someone can throw a bag of money in the sea.

Firstly, see chapter above (GAS claims). Secondly, we can recycle spent GAS on system fees (and maybe smart contract execution/invocation), proportionally to NEO holders, who vote. This also gives extra incentive to hold NEO and participate in voting (which inherently increases its value). Furthermore, GAS will never run out of supply, and it will only further incentivize spending GAS and holding NEO (+ participating in voting).

Lastly, it will solve @erikzhang 's worry:

Because in the current economic model, the GAS that is consumed will be given to NEO holders. So GAS will flow into the black hole address until all GAS is gone.

If NEO is sent to a black hole address, GAS cannot flow into it, because GAS is only unlocked or released by recycling to NEO holders who vote. This means that we can never run out of GAS.

Final words

Seeing the NEO community so involved in such important discussions is heartwarming and awesome - it really makes NEO stand out from the rest. In this regard, NEO does not have any competition, and it's time to shine will ab-so-lutely come. Reading all this, I'm ever more proud to be invested in NEO!

I also believe smart contract platforms are still in infancy (alpha?) stage - the first one to do it right (meaning: secure, reliable, performant and highly scalable) will bring on board big business and facilitate real world adoption. Let's make it work!

EdgeDLT commented 6 years ago

It will indeed be hard to buy 1 NEO for regular investors. Is this a bad thing however?

I think the answer to this is unquestionably yes, it is a bad thing. We require decentralization as a high priority. Having 10000 people voting rather than 1000 is a net positive, even if some have higher vote power than others due to their own financial stakes. Of course, it doesn't make a difference if the vast majority of tokens are held by a select few, but as long as this is not the case, we can attain decentralization this way. We need to design a system that allows anyone to get involved, and then we need to start thinking about token distribution. Divisible NEO allows more people to join in on consensus (both in terms of smaller holders & moving funds off exchanges), and 1 NEO = 1 Vote power allows financial stakes to be respected. This balance is ideal for the smart economy.

It's all in the interests of diversifying where those votes are coming from. We cannot claim decentralization if only exchanges/whales/early adopters are controlling votes. It needs to be more open than this. In addition, using both indivisible NEO & time-locked voting will drive scarcity through the roof. NEO's price will become an obscene barrier, and management of the network will stagnate. We'll end up with top-heavy token distribution, resulting in consensus plutocracy.

It will become scary to vote and see your expensive (4/5/?? digit NEO) temporarily being moved away from your wallet

A wallet can pull the contract hash and just list your NEO as 'locked for voting,' but as you've said, the wallets are essentially contracts already. If we can produce a special transaction locks tokens inside the existing wallet, registers specific candidate nominations & can track/count votes, then I agree that this is an ideal approach. I think that is going beyond the scope of a special transaction though. We shall have to defer to the devs. @erikzhang might have some thoughts.

They are however in effect the same thing. Contracts are used to leverage a time-locking mechanic and to allow a certain amount of calculation/validation. It doesn't make a difference to the system if NEO is sent to a new contract address, or if it would somehow remain locked under your own address. Either way, a transaction must still be registered. Without transfers, there is no data to go in a block. Without block data, the votes are not immutable. Indeed the same-wallet approach will likely be preferable for the user experience, so we shall have to see if it's possible.

This would also make it easier to cancel/modify votes, and would spam the network less.

Votes should not be cancellable (at least after the locking period). Prior the locking period, votes can simply be withdraw as in any other contract. The network will be spammed the same amount; as I mentioned earlier, vote transactions must be recorded in blocks in order for the voting system to remain immutable.

toghrulmaharram commented 6 years ago

@erikzhang The blackhole problem could be solved by distributing GAS only to the voting NEO. Even if the private key of an address is lost after voting, the GAS would be distributed to the wallet only until the next voting period starts. Another solution would be to distribute GAS claims only with the present NEO, meaning that the GAS cannot be claimed after NEO has been moved out of the wallet. This would simplify the distribution scheme as well.

I agree with Erik that the nodes have to be incentivized more than they currently are. The platform should not rely on goodwill, this is a short-sighted approach.

erikzhang commented 6 years ago

The blackhole problem could be solved by distributing GAS only to the voting NEO.

This is a good alternative at the moment.

ThomasLobker commented 6 years ago

I think the answer to this is unquestionably yes, it is a bad thing. We require decentralization as a high priority. Having 10000 people voting rather than 1000 is a net positive, even if some have higher vote power than others due to their own financial stakes.

It's actually very unlikely that allowing more votes will change the outcome. Proper data sampling is very reliable. and you must also consider the following two facts:

So this should not be considered political voting. The users are not voting, the shareholders are voting. What's important is that the voting outcome represents the majority of the shareholders, weighted by how much NEO they are holding. If we have 100,000,000 samples or 1,000,000,000 samples makes no difference. Something like 10,000 samples will probably be more than enough. Mandatory cumulative voting will help to prevent political and tactical voting too. We should require each NEO to be voting on three candidates, so that no candidate can gain more than 33% of the votes.

Locking is very unnecessary and not appealing at all.

I propose a very simple strategy:

This is actually a very light system. It's very easy to keep track of votes. Each NEO address will have a number of candidates that is voted on, multiplied by the amount of NEO in that address, divided by the amount of votes for that address. This can be recalculated on a ContractTransaction involving that NEO address. It's a fair and reliable system that doesn't require locking, staking or other tricks.

Sorry for going off-topic. This comment should have been placed here.

toghrulmaharram commented 6 years ago

@ThomasLobker I think you're missing the point. You cannot equate the Consensus Node elections to a shareholder voting event, because in a corporate world, a single entity owning a 50%+1 stake is a norm, which cannot be said for NEO as it is geared towards a decentralized environment. NEO voting mechanism should be considered to be a mix between political and shareholder voting as otherwise decentralization will not work.

vncoelho commented 5 years ago

Hi @erikzhang, could you update the post with the ideas more related to the current discussions?

According to our recent meetings with communities and developer, I believe that we most are not supporting:

Thus, the proposal could be kept to: