Poll: What should be done with the fixed transaction fee of 0.01 PPC/kB

+1

The more I think about a fixed transaction fee, the more I come to the conclusion that a variable transaction fee would be better. The only problem I see with this variable transaction fee: you can’t rely on it’s height.
Let’s try to find out how serious that problem is.

Let me try to compare it with something we know for some time - BTC.

[ul][li]
In BTC the transaction fee is optional. It is paid to the miners for solving a block that includes transactions with fees. Fees incentivize the miners to include transactions with fees.
You can avoid a transaction fee at the price of an unknown transaction duration. So if the transaction is not time critical, you can save money by paying 0.00 fee.[/li]

[li]
In PPC the transaction fee is mandatory. It is destroyed and not paid to miners. Fees don’t incentivize the miners directly. Fees incentivize the ones who want to execute transaction to do that deliberately. This prevents the network from being swamped.
If you were in a PPC world with a variable transaction fee you could save transaction fees by waiting for a period with smaller transaction fees if the current ones were to high for your taste.
One drawback might be: the variable transaction fees can stay high or even rise if lots of transactions need to be done and are postponed until they can’t be postponed any longer; eventually they might begin to swamp the network despite the high fees.
But thinking twice this is quite similar to paying high fees for BTC transactions if you are in a hurry:
the miners (I imply the majority being PoS miners) that work (energy efficiently) on the transaction do not only get a PoS reward, but by destroying the (relatively) high fees, their share of issued PPC rises. It’s quite similar to earning high fees for processing urgent BTC transactions.
[/li][/ul]

That would kind of resemble BTC’s dependency between the point of time you think about excuting a transaction and the point of time you want to have it done:

[ul][li]
BTC: individually eligible transaction fees incentivize miners to include the transaction to the next block. You pay extra if you are in a hurry.[/li]
[li]PPC: variable and determined by the network transaction fees incentivize people to execute a transaction in a time with low fees (caused by low transaction rates). Once again, you (might) pay extra if you are in a hurry.[/li][/ul]

It has taken some time, but now I find this approach of variable transaction fees more sophisticated than a fixed rate because it can adjust the fees to the demand for transactions.
A fixed rate might fail by being too high to attract people to Peercoin OR by being too low to prevent people from swamping the network with transactions. Variable fees can adjust!

I really like a variable fee, although it might be hard to create a sophisticated algorithm.
I see more advantages than disadvantages at the moment.

Please tear this post apart if you have valid arguments for doing so!
I feel the transaction fee discussion needs much more input!

One last thing - just to name a disputatious idea that crossed my mind:
it could be considered to incentivize the miners directly: if the transaction fee is higher than x (needs to be defined^^), the part above x is not destroyed but (partly?) paid as reward!
Without that incentive PPC holders not doing anything profit by the ones sustaining the network.
It would be especially nice to pay that reward for PoS blocks only.
…maybe I overshoot the mark :slight_smile:

Oh hey just noticed this thread.

In the other thread I wrote that the fee should be a certain base amount plus optional fee for faster processing. The set number of transactions per block seems like a very clean way of setting a “base fee” and I like it. Some people mentioned that Bitcoin transaction fees are currently quite high; The first idea that came to mind was destroying half of the optional transaction fee instead of rewarding it all to miners in order to dampen a possible speculative bubble that drives up the cost of too quickly.

Thoughts?

[quote=“concavecircle, post:21, topic:1103”][…]
Some people mentioned that Bitcoin transaction fees are currently quite high; The first idea that came to mind was destroying half of the optional transaction fee instead of rewarding it all to miners
[…]
Thoughts?[/quote]

sure: http://www.peercointalk.org/index.php?topic=1539.msg12777#msg12777 - or just visit my last post in this thread…

But maybe that post was to long.
Here comes the TL;DR version:
variable txn fees!
Parts of them are paid to miners if they are above a certain limit.

[quote=“masterOfDisaster, post:22, topic:1103”]sure: http://www.peercointalk.org/index.php?topic=1539.msg12777#msg12777 - or just visit my last post in this thread…

But maybe that post was to long.
Here comes the TL;DR version:
variable txn fees!
Parts of them are paid to miners if they are above a certain limit.[/quote]

Well not really. I think I’m saying something different. The deflationary effect from destroyed fees is nowhere near as good for a miner as being straight up paid the same fee. A fee that is paid to miners offers better “product differentiation” for transaction fees, but I mentioned that the cheaper transactions might get slowed down too much, which is why I proposed destroying half the fee. For the person who wants a faster transaction, that means they’ll have to pay 100% more to get their transaction put at a higher priority, basically a speedy transaction tax placed on the consumer, reducing demand.

Nothing. It rocks!

“Target a certain number of transactions per block and raise the target gradually over time to match expected improvements in hardware. If transaction levels are below the target, fees will be very low. If they are above the target, fees will be high.”

+1, This will give PPC constant optimum growth.

A currency needs a community who actually uses the currency and not just hoard it. The value of a currency comes from the people who share the same thought that it has value. So, the more the people who use it and are willing to accept it, the more its intrinsic value is in some sense.

In the third option, “Do nothing for now and reconsider the problem when it becomes more acute.”, What assurance do we have that we will even reach the point where this will become a problem? And, how do we know that it has become a problem? For me, it is already a problem. Perhaps a rapid adoption of PPC isn’t going to happen because people are aware that this fee will become a problem in the future. The third option also had the highest vote which suggests that people know and acknowledge that the fixed fee is going to be a problem in the future. This might be the thing that is suppressing adoption of PPC. User adoption is fundamental for any currency. That is enough evidence to me that we should deal with the fees as soon as possible.

I don’t think it is very different at all. I ask for a variable tx fee (the height of the fee is associated to the tx load on the block chain). If that fee exceeds a certain value, it is partly paid as reward for the miners. There is a part of the tx fee that is consitently destroyed to limit/counter the inflation caused by PoS/PoW rewards.
In my view the variable fee and the partial payout of it is not the incentive for the PoS miners (the 1% interest per year should be enough) to do their work, but the incentive for those who want to execute transactions to do that a bit more deliberately than without fees.
Isn’t that the basic idea of the fixed fee - to prevent from “tx DOS attacks”, to make those who execute transactions pay for the “service”?
I feel like a variable fee can do the same, but by being more flexible (allowing relatively cheap tx in time with low tx rate, limiting additional tx in times with already high tx rates) it doesn’t supress adoption the way a fixed fee might do.
I’m not saying it does. But i fear that it could do. Apart from the design, the programming work, the maybe need for a hard fork, and all that other small things that need to be done to achieve a variable tx fee (just kiddin’; I know this is a hell of work!), I don’t see a drawback of a soundly designe variable tx fee yet.

Can we try to focus on advantages and disadvantages of a variable tx fee?
I think doing nothing doesn’t need to be discussed as widely as the introduction of a variable fee. If the discussion regarding doing something/nothing comes to the conclusion that doing something is the choice, you still need to look for “what to do”.
And one solution could be the introduction of a variable tx fee…

Shall I create a new topic for that as I don’t want to claim “introduce a varTxFee” the “answer to this poll” (I see clearly from the current results, waiting might be preferred, although I second lumierre’s post in assuming that people might know that a fixed tx fee could be (or become) a problem…)

[quote=“masterOfDisaster, post:26, topic:1103”]Can we try to focus on advantages and disadvantages of a variable tx fee?
I think doing nothing doesn’t need to be discussed as widely as the introduction of a variable fee. If the discussion regarding doing something/nothing comes to the conclusion that doing something is the choice, you still need to look for “what to do”.
And one solution could be the introduction of a variable tx fee…[/quote]

Is this thread not called “What should be done with the fixed transaction fee”? lol aka what’s the way a variable or different fee should be set up?

I think we both agree that directly paying miners a fee as part of the incentive to mine is beneficial, but I’m saying the reason from a textbook economics POV is that it would allow differentiated transactions, by priority/processing time, and the classic way to do this is to charge people who want the premium product more, giving the people providing the premium product incentive to do so (premium product here is a faster transaction). As a “tax” part of the fee can be destroyed, reflecting upon the possible loss of efficiency that occurs when transactions become differentiated by priority. I’m still learning about the security design of these cryptocoins so I can’t say if that’s an economically sound thing to do, but it’s a hunch based on seeing the Bitcoin arms race.

At any rate, a transaction fee that is anywhere near reflective of the network cost should be low enough that getting the economics perfectly efficient shouldn’t be necessary.

I’m bumping this one. With Jordan Lee’s proposal about voting, fees and what not I think this thread is worth revisiting!

Well done Pillow! I didn’t know about this
I vote the last one.
I will follow Sunny’s opinion about the fee thing, what ever that may be :wink:

Time to bump this due to current “heavy and strange use” (transaction spam) of the Bitcoin network.
Bitcoin introduced the “dust limit” to keep very tiny outputs out of the network : https://www.reddit.com/r/Bitcoin/comments/2unzen/what_is_bitcoins_dust_limit_precisely/
But even with the current dust limit it’s possible to spam the Bitcoin network with transactions very cheaply.
Preventing dust transations is not sufficient.

Litecoin developer Charles Lee invented something for Litecoin that makes this kind of attack very costly:

I wish I could say that Peercoin has a defense for that kind of attack (I consider it an attack).
I can’t.
As long as 0.01 PPC/kB get paid, transactions will be put into blocks. You can buy 1 MB of blockchain size for roughly 10 PPC. If you want to “add” 100 MB of blockchain size, this costs 1000 PPC.
At the current price level that would cost roughly 600 USD; 1 GB costs 6000 USD - which is nothing compared to the market cap!
I don’t consider the mandatory (fixed) fee a defense mechanism (against blockchain bloating) any longer.

Peercoin needs variable (still mandatory!) tx fees that adjust to the utilization of the network.

masterOfDisaster was gracious enough to explain this issue for me, and my vote would be for option 1 but unfortunately I already voted for None of the above at the time.

[quote=“masterOfDisaster, post:30, topic:1103”]Time to bump this due to current “heavy and strange use” (transaction spam) of the Bitcoin network.
Bitcoin introduced the “dust limit” to keep very tiny outputs out of the network : Reddit - Dive into anything
But even with the current dust limit it’s possible to spam the Bitcoin network with transactions very cheaply.
Preventing dust transations is not sufficient.

Litecoin developer Charles Lee invented something for Litecoin that makes this kind of attack very costly:
https://www.reddit.com/r/Bitcoin/comments/3ci25k/the_current_spam_attack_on_bitcoin_is_not/

I wish I could say that Peercoin has a defense for that kind of attack (I consider it an attack).
I can’t.
As long as 0.01 PPC/kB get paid, transactions will be put into blocks. You can buy 1 MB of blockchain size for roughly 10 PPC. If you want to “add” 100 MB of blockchain size, this costs 1000 PPC.
At the current price level that would cost roughly 600 USD; 1 GB costs 6000 USD - which is nothing compared to the market cap!
I don’t consider the mandatory (fixed) fee a defense mechanism (against blockchain bloating) any longer.

Peercoin needs variable (still mandatory!) tx fees that adjust to the utilization of the network.[/quote]

Charles Lee’s “dustspamfix” seems like a reasonable protection to me.

A sample attack in Peercoin would roughly look like that https://bkchain.org/ppc/tx/e1090e0120ee72c69361c417cba89d875e276df8ea3b85f84a99b4a8c1947247

One input requires approximately 148 bytes, and each output requires approximately 34 bytes.

Most efficient blockchain spamming to max out one block requires 25600 outputs. The attacker would send a transaction with 25600 outputs of 0,00000001 PPC each = 10.24025600 PPC (in combination with transaction fee).

“dustspamfix” integrated in Peecoin code (additional fee of 0.01 PPC for every output below 0.01 PPC) and the attacker would send a transaction with 25600 outputs of 0,01 PPC each = 266.24 PPC (in combination with transaction fee).

  1. “dustspamfix” will make this kind of dust spamming attack 26 times more costly.

  2. Higher fees don’t apply for anyone who is making transactions normally. Honest Peercoiners have nothing to lose but a small blockchain to protect.

Why not integrate it?

(besides that I favor to keep a fixed transaction fee)

Edit: also applies to XPM

"dustspamfix" integrated in Peecoin code (additional fee of 0.01 PPC for every output below 0.01 PPC) and the attacker would send a transaction with 25600 outputs of 0,01 PPC each = [b]266.24 PPC[/b] (in combination with transaction fee).

I thought an output below 0.01 PPC already couldn’t exist? Haven’t we basically already done the dustspamfix from the get-go?

Also, what prevents someone from sending outputs of 0.011 PPC a billion times to their own addresses continuously over and over again? The cost is only as MoD was stating, which is quite cheap, even if it would significantly reduce supply if sustained.

[quote=“Nagalim, post:33, topic:1103”]

“dustspamfix” integrated in Peecoin code (additional fee of 0.01 PPC for every output below 0.01 PPC) and the attacker would send a transaction with 25600 outputs of 0,01 PPC each = 266.24 PPC (in combination with transaction fee).

I thought an output below 0.01 PPC already couldn’t exist? Haven’t we basically already done the dustspamfix from the get-go?[/quote]

That would be great! :slight_smile:

Nothing. However, it would be more expensive than

[quote=“masterOfDisaster, post:30, topic:1103”]As long as 0.01 PPC/kB get paid, transactions will be put into blocks. You can buy 1 MB of blockchain size for roughly 10 PPC. If you want to “add” 100 MB of blockchain size, this costs 1000 PPC.
At the current price level that would cost roughly 600 USD; 1 GB costs 6000 USD - which is nothing compared to the market cap![/quote]

Primary outputs would be re-used as new inputs. Inputs require more transaction size than outputs, 148/34 (bytes) = 4.35 times more transaction size.

Found this: https://github.com/ppcoin/ppcoin/blob/v0.4.0ppc/src/main.cpp#L463

These poll’s answers are a complete non-sense regarding today’s situation. I don’t think this topic should have been bumped. We should start a new one.

I can confirm that there is already a minimum in place for txout at 0.01. So we don’t have the ‘dust spam’ issue of bitcoin, however as estimated, it’s still fairly inexpensive to flood the network.

The flood is a lesser form of denial of service attack, as bitcoin/peercoin has an user option to send transaction with more fees during high volume period for higher priority. Other than paying more fees, user transactions are also prioritized (hence protected to some degree) relevant to the coin-age consumed, thus attacker’s transactions would typically be of lower priority.

The coin age protection is very nice, but couldn’t the spammer just use 0.01001 as their fee for only minimal cost to get around that protection?

I spelled out a possible method of understanding and dealing with the spam problem here (mably helped put it together):
https://wiki.peercointalk.org/index.php?title=Preventing_Network_Spam

I think we can agree that the Peercoin is not designed for daily use nor expected to handle large amounts of transactions regularly.

I don’t fear denial of service attacks. As you’ve lined out, there’s already some protection against that and those who use the Peercoin network as a backbone network (and don’t execute transactions often) are in a better position (compared to spammers) getting their transactions processed (included in blocks).
I fear blockchain bloating, especially if it’s dirt-cheap (compared to the market cap).
The blockchain size is one of Peercoin’s unique features. Sycning the almost 3 years old blockchain requires hours instead of days. It can be stored on devices with little space. It’s one of the reasons that helps Peercoin prevent centralization. Running a full node comes at almost no cost (when using devices like a RaspberryPi with an SDCard). Maybe we see mobile phones being full nodes - the transfer volume for keeping the blockchain in sync should be fairly small.
I feel this unique feature is at stake.

An attacker might not care when the transaction is included in a block. The attack would solely be directed towards bloating the blockchain and would not care about the block in which that happens.

As the average level of transactions is very low (like intended), there’s no reason to keep transactions above that average usage level as cheap as below that level.
That can’t ultimately protect the blockchain from any bloating attacks, but it can make them way more expansive for attackers while having a negligible effect for the “honest” users.

One may argue that spammers could spam the blockchain up to exactly that level at the same cost as without additional protection. That’s right. It would look like normal use and can hardly (if ever) be prevented.
But it would limit the bloating to that level - additional bloating would be more costly.

That’s all I’m arguing for: make bloating attacks more expansive!

Requiring a minimum (PPC) value for outputs is no effective way to prevent this bloating - an attacker can send lots of outputs (each above the minimum) and all he has to pay is the standard price of 0.01 PPC per kB. Using this to spam can’t be told apart from fair use.

All sums up to: should the Peercoin network be interested in keeping the blockchain small at the price of higher tx fees under certain circumstances?
I’m still convinced that there’s additional anti spam required.
I’m arguing for an exponential growth of tx fees beginning above a certain threshold.
I hope that it won’t take a bloating attack to convince others.

Once the blockchain is bloated you can’t shrink it except for a history roll back - that would be horrible for Peercoin…