The economic incentive for the Node Holders should not came for the transaction fees.
We already saw in order crypto currencies that Node Holders can choose to process the transactions with higher fees leading to an unscalable situation where to transfer a few dollars, the fees could be much higher.
Attached on each produced block there is gas that will be distributed to the NEO holders. I think that part of the produced gas can be distributed to the block producer
How this gas can be distributed?
1潞 A percentage of the gas generated by NEO included in the block
-> don't know how this could work in other NEPXXX tokens transactions that do not generate gas and SC execution
2潞 A percentage of all the gas generated and distributed in the block
-> this resolve the problem of transfer NEPXXX transactions and SC executions.
In order to archive the number of 0 GAS for transaction fees
Define a new economic structure and reward for the Node holders leading to zero gas on transaction fee.
with this proposal, the need for transaction fee is removed but not the incentive system to have a NEO node.
Out of this proposal are:
-> smart contract deployment
-> smart contract invokes that exceed a certain value of gas
-> coin generation
-> all operation that are not transaction in the NEO network.
As soon a new Node version is deployed and the node is the one elected to produce a certain block, it's used the new rules of distribution of gas
In the future this rules can be improved with a proposal of change the percentages and a vote system direct on the blockchain.
Soon the proposal pass (51%, 75% or 85% of the voters need to give their positive vote), the new proposal can go online X blocks after (need to be defined in the proposal).
@aboimpinto Setting the transaction fees at 0 GAS can potentially cause spam attacks with nothing preventing the attacker from sending thousands of transactions to impede the "real" transactions from being added to the block.
@toghrulmaharram tkx for your answer.
If the only reason that a transaction cannot be free is the SPAM, then we aren't doing here anything. We have brilliant minds in this group to find a way to prevent this potential SPAM.
At this moment all the transaction are virtually free on the NEO network due the rule that we do not change less than 10GAS in a transaction.
Like I explain, the SPAM can be used both ways, to increases the fee value or to take advantage of the free transaction but never together.
@aboimpinto Transaction fees exist for two reasons - spam prevention and node incentivization. I will not discuss the latter one, as the economics of the issue are outside the scope of my previous thesis.
Game theory dictates that "free" propositions cannot be sustainable as a given number participants will eventually take advantage of the loophole and abuse the system.
As long as the fees are not actually charged, the platform will remain vulnerable to spam attacks. Both malicious and opportunistic. Nothing stops the user from creating a smart contract (with an initial investment of 490 GAS) and abuse the system by dumping gigabytes of data to the chain to take advantage of the unrivalled data immutability characteristics that decentralized blockchains offer.
My approach would be to create a base fee which would be charged for every transaction.
we can agree that we disagree ...
I don't think that fees are the only way...
regarding the game theory, like I explain, the system is not perfect. Adding a fee is not the perfect solution because we already saw that if someone want to spam the network ... they will.
I think we should prevent the spam with other weapons. Just increasing the fees is not the solution. Have a fixed transaction fee is not a solution ...
RE: Nothing stops the user from creating a smart contract (with an initial investment of 490 GAS) and abuse the system by dumping gigabytes of data to the chain to take advantage of the unrivalled data immutability characteristics that decentralized blockchains offer.
@toghrulmaharramov @aboimpinto, you don't need to create or deploy a smart contract on the NEO blockchain to be able to store data for free on the network.
Although it isn't explicitly called directly out in my Medium.com article, this is one of the key advantages of the #DumpData protocol: safe, secure, immutable, auditable, historized, permanent data stored on the blockchain (and in the case of NEO) at no cost - no deployment cost, no transaction fees, no systems fees.
I am not sure whether you are referring to the ongoing Ethereum network congestion or the past attacks on the Bitcoin network. Both situations are drastically different to the scenario described in my previous comment.
Ethereum network congestion is a result of a single token (iFishYunYu) being circle traded between roughly 600 accounts with an intermediate goal of driving the Gas prices up. The attacker is either aiming to drive the prices up to increase the mining profits (did some maths, owning 30+% of the hashrate would make the aforementioned attack profitable) or to DDoS the network.
An introduction of a fixed fee removes the possibility of the "mining" attack vector described above and makes the latter attack vector meaningless or extremely costly if coupled with a high-tps platform (which will be the case with NEO).
The only other viable solution would be an introduction of selective censorship which contradicts the core premise of the decentralized platforms. EDIT: As suggested by Erik, PoW could potentially be able to prevent the spam attacks as well, however, as outlined below, there are drawbacks to this approach.
@mwherman2000 Makes a spam attack even easier to set up.
Is not that I don't agree with you @toghrulmaharramov but the history already had show that frees do not prevent SPAM of the network.
using this starting point, your sentence:
"Transaction fees exist for two reasons - spam prevention and node incentivization. "
it's false because the fee reason is false. If we look careful, I try to present a different type of node inactivation that go away from the fee model (as has been proved, do not prevent SPAM).
Then the question should be: how can we prevent span of the network?
This is what should be the discussion. SPAM of the network can happen to in many forms and to try to archive many goals.
Make sense to SPAM the VISA network? Make sense to get people around the world in the same second try to make a VISA purchase in order to show the VISA network it's not good enough?
It's the fee value that prevent this to happen?
During 2017 the bitcoin fees were high as hell due network SPAM. Tell me how the fees prevent that? In fact the fess were the issue that I'm trying to remove from the equation with this proposal.
With no network fees all transactions should be processed using the FIFO method and no transaction should be left out because didn't payed enough fee.
This proposal will bring transparency to the time to choose the transaction to be processed and not because payed more, his transaction is processed and mine not.
Transparency and Equality choosing transactions.
Returning to the second part of your sentence, I believe that removing the fees doesn't mean remove the inventive to the node holders.
On my proposal I don't talk that to be a node we need to have 1000 NEO coins or something like that. I imagine that everyone can have and there will be a process that will elect the block producer and assign the reward.
Because I propose to remove the fees, the reward need to came from somewhere else and I propose to came from the gas generation that happen every block.
I'm not defining how this is done, I'm just saying that can be taken out from it.
therefore returning to the original sentence:
"Transaction fees exist for two reasons - spam prevention and node incentivization. "
1潞 Do not prevent at all SPAM
2潞 There are more ways to pay the incentive to the nodes.
My proposal turn invalid your sentence.
@aboimpinto The entire premise of your argument approaches the issue from a wrong standpoint.
Firstly, Visa does not run on a decentralized consensus protocol so there is no need to worry about the malicious actors disrupting the validity of the data by abusing the core economic principles of the platform. Aside from that, the preservation of the data efficiency is not as crucial for Visa thanks to centralization as it is for distributed data ledgers.
Secondly, Bitcoin's network congestion can be attributed to the 1MB block size limit (technically, a bit more if you don't discount the Witness structure), not to the spam attacks. The aforementioned artificially imposed limit is the reason for the miner behaviour described in your previous reply. Bitcoin Cash disproves your point as the platform manages to sustain relatively low fees thanks to the 32MB block size limit. I am still unsure about the existence of the spam attacks that you have been consistently mentioning which are supposed to somehow disprove my point.
Thirdly, fixed transaction fees do not affect the transaction processing method, as the transactions can still be processed via the FIFO method with the rest of transactions (too high or too low fees) being discarded and not relayed further.
Fourthly, the Consensus Nodes have to be incentivized via the transaction fees and contract-related fees, as otherwise, the economic model will not be sufficient to discourage the nodes from acting maliciously.
Agree with the points that you said and that is why I believe that we should discourage SPAM and not promoting it.
I agree too to have a fixed value of fees ... and that value should be ZERO.
Another point that I disagree is the 4潞 when you said the only way to incentive is through fees ... There are other ways to do it .. and I propose that.
exchanging crypto should be the same as exchange money and if I give you money on your hand, that don't have fees .... therefore the exchange of crypto should follow approach in order to be treated as money (in general)
One way to prevent SPAM is to force each transaction to contain a PoW.
@aboimpinto I still haven't heard a single viable example defending your opinion on the matter. How exactly do transaction fees promote spam attacks?
Which alternative incetives do you propose though? Printing money out of thin air forever?
You do pay transaction fees for exchanging paper money for goods though. Those come in form of price add-ons and taxes. Exchanging paper money on a street is a very niche example though and you are ignoring all the other use-cases that incur transaction fees for exchanging money.
@erikzhang True, completely forgot about PoW. However, PoW requires a few bytes of space per transaction that offer no benefit to the platform, unlike the transaction fees which incentivize the Consensus Nodes to remain honest or are distributed amongst the NEO holders depending on the distribution model.
@toghrulmaharramov looks like this brain storming started....
How transaction fees promote spam attacks?
In theory they don't. In theory, you have to spend money to spam the network, and if with the spam you earn more then you pay?
That question was answered last year with the SPAM of the bitcoin network. Someone spammed the network and the fees spike to the roof.
There was a time that a miner responsible to write the block was earning the same in fees that was in BTC reward, mean, 12BTC reward and amost 12BTC in fees.
Sky-rocketing the price of the fees lead to this situation and I'm not discussing here who did that. I'm just point the fact this happened.
Miners / block producers will always get greedy (it's the human nature) and they will do anything to sky-rocket the fee price and I don't agree with this model.
This is the same as giving the block producers the cheese and the knife and tell them to cut what part they should get. THIS IS WRONG.
Moving the network from a fee based system will not let this happen.
Which alternative incetives do you propose though? Printing money out of thin air forever?
The alternative that I propose it's because NEO it's a two head currency, mean, that we have the NEO coins and the GAS coin.
This idea it's not trying to copy any other implemented solution but use the current environment in favor of us.
The GAS is a unique utility coin that was not mined previously. It's is generated by staking NEO and this is the main part of the idea.
The moment that I move my NEO, I'm not staking anymore, it's in transit to anywhere else address.
The production of gas can be seen as "printing money" like you say, but, until now no one came and discuss that, mean that everyone accept that.
NEO is printing money every block. Rewarding the NEO holder with a small amount of gas during several years (it's a fact).
SPAM the network would not give more gas to the BlockProducer?
Well, if we give the same (or less) gas that the NEO should produce, NO, I will explain.
If I have bad intentions and I want to get more fees and I have a lot of NEO I could transfer my NEO to several accounts every second and collect the GAS as BlockProducer, right? NO.....
Have the NEO in my staked in wallet will produce X gas to me and if I need to transfer will produce the same or less gas to the BlockProducer, mean, If I cannot collect more gas as BlockProducer than holding my NEO.
I would suggest even to have a diminish return to not encourage SPAM by the BlockProducers.
Another kind of SPAM would be by opponent that want to show that NEO network cannot deal with SPAM. Doing he need to have some NEO, he will reaward the BlockProducers and not receiving gas.
We are working in a solution that will lead to 10.000 TPS (I'm part of the NeoSharp team) and according with this article (https://news.bitcoin.com/no-visa-doesnt-handle-24000-tps-and-neither-does-your-pet-blockchain/), VISA handle 1.700 TPS.
Instead of creating fees that do not end the SPAM, like @erikzhang said: SPAM can only be prevented if we can attack a PoW at each transaction and that make no sense in our days. I want to pay for coffee and have to wait to my mobile do some computation for me to be able to pay, instead of that we can make the fees tend to zero and reward the node holder with a different model that discourage SPAM ...
I like the free model .. not free as beer, but free. Free like the radio that we listen with our AM/FM radios. To receive those waves we pay nothing but we pay because we are listening advertising and that is paying the radios.
The same model applies here. I don't think the user should pay for the transaction, but, because my currency generate GAS, instead of me receive this GAS, the BlockProducer can get it and keep up his work.
this is a different economic model, a different reward model and a different way of thinking, maybe extending the game theory.
@aboimpinto You skipped a lot of important details in your last reply.
As I have previously mentioned, the Bitcoin spam attack was made possible thanks to the block size limit imposed by the network and limiting the space available per block, forcing the nodes to aim to maximize the profits. NEO doesn't have that problem anymore, as the 500 transaction limit per block has been recently removed, making the described attack vector almost impossible to be achieved on the NEO platform.
You skipped a vital platform caveat though. GAS distribution follows a decaying formula, meaning that the "money printing" aspect of the platform will continue declining in profitability (eventually stopping 22 years after the Genesis Block), eventually leading to negligible incentivization for the Consensus Nodes (as long as the transaction fees are discarded) which would could open up more floodgates to the security of the platform as a whole. The amount of GAS generated during the "transfer" is negligible and also allows the nodes to prioritize the largest transactions (NEO-wise) to maximize their profits.
Visa can handle a peak of 56,000 tps (https://usa.visa.com/dam/VCOM/download/corporate/media/visa-fact-sheet-Jun2015.pdf) with an average of 1,700 tps (https://mybroadband.co.za/news/security/190348-visanet-handling-100000-transactions-per-minute.html). Technically, I am also part of the neo-sharp team, however, I haven't really been contributing due to the fact that I've been busy working on the voting-related protocols.
I respect your opinion, but I do not think that the game theory can be broken or extended.
it's good to discuss opinions ... this was a good discussion.
this could be a good economic model to reward the node holder. it's going to work? I have no idea but I believe that could work and the "COULD" is the genesis of all ideas like Bitcoin, Etherium or NEO.
We may not agree now, but, may one day some one will pick this discussion and maybe create a project that will be able to full fill some of the topics discussed here.
Maybe will be NEO ... maybe not!
I think it is unfair to compare open Blockchains tps to Visa. Visa is a private banking network so is not subject to the level of malicious attacks as an open network.
There is nothing free in life, so the question @aboimpinto (great discussion and good hosting too btw) is where the cost is being incurred somewhere else.
There is a non-zero cost of computation, whether that's processing a simple UTXO transaction or executing complex smart contract VM code. This can be measured as a function of the size of the transaction in bytes or the amount of work done to process it or a combination of the two.
There is also the opportunity cost that in a finite block size and finite time constraint, some prioritisation has to be done.
FIFO is a good start but it is not perfect either on its own.
Just like smart contract executions essentially have a fee attached per operation, you could do the same for transactions too (since they also need to do some basic operations like verification and updates.
There is an economic argument on both sides to have a fixed fee per unit of computation or having a free for all with ranking by fee / unit and let the 'market' decide the right price to get included in the block if you want it fast or don't mind it slow.
hello @penlite and tkx for your contribution ...
I agree with you, there is a non-zero computation cost executing transaction / smart contracts and maintaining the ledger but I believe the cost should be somewhere else.
When we listen to the radio in AM /FM waves we do not pay to receive the signal, we don't pay to the people that work in the radio but they are payed.
There is a huge economic incentive to build radio stations but who pays? Not the final consumer but the advertises.
My idea is trying to go on the same philosophical ground. The final user of the network should not be the one that pay.
Then the question is: Who keep the economic incentive?
To answer this question I would use the fowling metaphor. Where we live, the town hall keep the roads and do some maintenance to it. If we aren't happy with the roads due traffic issues or we want to go faster, we can go to the Highway and pay toll.
The same can be applied here. There should be a way that execute a transaction without cost and I know that can take some time but will go through. If I want to be fast I should have the option too.
Another example is that when I have cash in my hand and I give it to you, I don't pay fee, therefore, why I should pay fee when I'm sending this "internet money" to you?
This make no sense in the philosophical point of view.
Hi @aboimpinto, I don't think we are following this path :(
Since NEO owners now get gas, and don't need to claim it anymore, it will be transparent and "free" for NEO owners.
It is also planned to allow the smart contract owner to pay for other users fees.
Most helpful comment
@aboimpinto Setting the transaction fees at 0 GAS can potentially cause spam attacks with nothing preventing the attacker from sending thousands of transactions to impede the "real" transactions from being added to the block.