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

We’ve just had a great discussion about what should be done with the transaction fee here:

I would like to move from discussion to plotting a plan of action. First, we need to get an understanding of what the community consensus is, if any.

There wasn’t enough space available to mention this is in description of first option (targeting a rising transaction volume), but this option would require making an additional alteration to Peercoin. Currently PPC could handle something like 2.500 transactions every ten minutes. As the target moved near that, we would need to increase the total transaction capacity. This could be done in two ways: (1) increase the block size limit from 1 MB or (2) increase the frequency of blocks.

As most of you know, this option requires a hard fork.

I think we shouldn’t rush into anything and wait until Sunny is finished working on version 0.4 first. Once he’s finished with that, maybe he’ll have time to jump into this discussion. I want his opinion on all this before any kind of decision or change is made. He is the architect after all and knows why he did certain things. There could be something we’re all overlooking that only Sunny knows about. There’s no hurt in continuing to discuss this though.

As a newcomer, I probably cannot vote in this poll, but I am watching this discussion very closely, since the transaction fee is definitely most troubling feature of the Peercoin now. The first option makes most sense to me, since in my eyes there is no other really important purpose of the transaction fee than to protect the network from reaching the technological limitations too soon (mostly the blockchain bloating). I just wanted to write that there really should be some mechanism to prioritize more important transaction.

For example:

  1. People indicate transaction fee they are willing to pay together with the transaction.
  2. If there is less transactions than allowed in the block, no or only a symbolic fee is charged from all transactions and all are included into the block.
  3. If there is more transactions than allowed, include those that offered largest fee to the block and charge the fee.
  4. Transactions that didn’t make it to the current block wait “in the line” for N another blocks. If they do not go through 3), they are cancelled.

(Also, the transaction fee should be predictable, it shouldn’t happen that the prohibitive fee for “too many transactions” is charged without notice. The system above is OK in this aspect -maximally the fee given with the transaction is charged.) I am sure there is also lot of similar solutions that have these properties.

Though there would be some benefit to this, it may also be more trouble than its worth to implement. Or not. I’m still undecided. If we make sure there is always plenty of block space then the network could easily handle a volume of transactions well in excess of the target. For instance, I am suggesting an initial target of around 300 per block but a block will fit at least 2.000 transactions. A surge well beyond the target could be processed without delay. The issue is that if the target is consistently surpassed then the blockchain will be too large. If we make the fee high enough when the target is grossly exceeded this won’t happen though.

Still, what if the block did fill up consistently despite the high fee it would require? Maybe its enough to have it be a really high fee in the case that blocks are filling, like 0.1 PPC to ensure that they stop filling.

Priority routing is a double-edge sword. During periods of very high rates of transactions on the Bitcoin network, I’ve had transactions take upwards of 29 hours to reach confirmation (obviously lots of people were adding extra to the transaction).

Personally, I’d rather have the consistency of a network with no priority queuing that provides predictable timeframes for confirmation, than one where it’s impossible to know.

I can’t say I really understand the benefits or issues with the variable transaction goal method, but regarding the leave it until it becomes an issue method.

I think that even if we decide to follow the leave it alone until it becomes an issue method, there should be an agreed upon value at which steps should be taken, and a concrete decision into what steps these are. Although we wouldn’t need to resolve the problem until it reaches said point, the very existence of a decideded upon solution, and a set course of action in the case of such issues would greatly improve the credibility of Peercoin, and remove one of its greatest criticisms, while allowing us to currently benefit from the fees upsides(such as little block chain chaff).

TLDR: Although implementation may be postponed- a solution, and course of action should be decided upon an announced

I agree. I don’t think it is a problem at all to have a working group dedicated to modeling all sorts of different options and helping to set the course.

Just because it is being discussed, doesn’t mean that it will undermine the current plan of action.

In case you didn’t see this already, Sunny King acknowledged the transaction fee discussion in his new weekly update…

Weekly Update #68

[ul][li]Jordan has made some good progress with Peershare project.[/li]
[li]John and I have completed an interview with CNBC Asia.[/li]
[li]There have been some discussions regarding transaction fees in PPC/XPM. I have recently explained my philosophy on the issue of transaction fees. But I am happy to see many of our users are interested in debating such subject extensively on the forum. This is part of the open source culture, that anyone interested can offer opinions and insights. As a lead developer I think it is also healthy for me to listen to inputs from community.[/li]
[li]So I would like to give some summary of my thoughts on this matter. The goal of PPC/XPM projects are not to try dominate both store of value and medium of exchange in cryptocurrency. I have mentioned the concept of backbone currency. I feel the attempt to dominate every aspect of money is what drives the adjustment of bitcoin transaction fees, which has seen reduction from 0.01, to 0.0005, and now 0.0001. However in my opinion blockchain data structure has some inherent scalability limitations, so such a goal is probably not wise for a single cryptocurrency. Note currently PPC/XPM still has a lower fee than bitcoin in terms of the real fee value. So there is no need to rush this topic. In fact the minimum fee is enforced in protocol to require a hardfork when changing minimum fee, exactly to encourage long term thinking and careful decision making regarding transaction fees. We should have plenty of time to observe bitcoin’s struggle with block chain capacity (in terms of both total blockchain size and throughput/block size), the delicate balance between transaction fee, block chain capacity and user experience. In contrast to bitcoin dev I value decentralization and usability over a lower transaction fee.[/li]
[li]Transaction fee is also an important regulator on the transaction spamming attack, which could potentially significantly reduce network service quality (prolonging confirmation time). So this should also play an important role in the decision making of transaction fees.[/li]
[li]Meanwhile I have never said transaction fees are fixed at 0.01 forever. There are many factors at play, the general hardware performance including network bandwidth, the advances in blockchain data structure etc. These factors should also play important future roles in determine a good minimum fee value.[/li][/ul]

Have fun!

To date a majority prefer to “Do nothing for now and reconsider the problem when it becomes more acute.” This makes me wonder if people understand how long it will take to make the change. First, we as a community have to agree on a set of specs. Then they must be coded. Then it must be tested extensively. Then it must be merged into the main branch and tested again. Then we have to prepare people for a hard fork and distribute the new software widely. Finally, it is adopted. We will be very fortunate if we can accomplish all of this in six months, but it will probably take longer.

A close second is the option to target a certain number of transactions and make fees high if the target is exceeded and make fees low when the transaction levels are below the target. So among those who want a change, this is the most popular. We who want a change should be pushing this forward so that when others realize a change is needed we can implement it relatively quickly.

I agree with Sunny King that this problem can be tackled later on when it becomes more acute.

But I also am interested in the first concept proposed in the poll.
Can someone elaborate on that concept?
I also have this thought about the possible vulnerability of transaction spamming. One may attack Peercoin by using up all the low-fee transaction slots all the time.

Hi,
Seeing a pressure on changes I can ease my position and support hardfork with function like that:

nMinTxFee  += ( isEven( POSmintingAddress ) ? 1 : -1 ) * stakeMinted * SOME_CONST / moneysupply;

So- give stake a vote, adjust after each POS block found, let curve be smooth and slow.
P.
—edit— it should be % change but it’s just a sketch —!edit—
—edit2—
Nah, even more

weight = stakeMinted * SOME_CONST / moneysupply; feeFlag = POSmintingAddress & 0x03; nMinTxFee += nMinTxFee * ( feeFlag == 0 ? 0 : feeFlag == 1 ? 1 : -1) * weight; inflationFlag = ( POSmintingAddress & 0x0C ) >> 2; posInflation += posInflation * ( inflationFlag == 0 ? 0 : inflationFlag == 1 ? 1 : -1) * weight;—!edit2—

[quote=“Jordan Lee, post:10, topic:1103”]To date a majority prefer to “Do nothing for now and reconsider the problem when it becomes more acute.” This makes me wonder if people understand how long it will take to make the change. First, we as a community have to agree on a set of specs. Then they must be coded. Then it must be tested extensively. Then it must be merged into the main branch and tested again. Then we have to prepare people for a hard fork and distribute the new software widely. Finally, it is adopted. We will be very fortunate if we can accomplish all of this in six months, but it will probably take longer.

A close second is the option to target a certain number of transactions and make fees high if the target is exceeded and make fees low when the transaction levels are below the target. So among those who want a change, this is the most popular. We who want a change should be pushing this forward so that when others realize a change is needed we can implement it relatively quickly.[/quote]

When 0.4 is released, I propose we dedicate a set of people in the Community with modeling growth scenarios, so we’ve got hard numbers for people to look at and evaluate. I agree with you that while a “wait and see” attitude is the prevailing trend, I also know how long it takes to develop a piece of software. Beyond that, Peercoin isn’t just a social app that we’re playing with in our spare time, but a functional, living economic framework, so getting it “right” (or as close to it as we can, with the information we’ve got at the time) is critical.

Should the value of a single PPC explode, like BTC and LTC have done in the past, the pressure will be on, and I don’t want us to misstep because people feel like they all the sudden need to rush.

Hey,

I voted for “None the above (please post details about your alternative suggestion)” because all other options seemed to be not right to me. I see the need for the fee and I see the economical problems this may cause. And I don’t think we can wait until the problem becomes acute, because it might be too late to provide a fix if it has not been thought of and developed before.
What I’d really like is to understand the “Peershare” idea better and it would be the option to vote for if it were here and I already understood Peershare completely.

What I think to have understood about Peershare is (in my words) that you create a kind of branches which are backed/escrowed/lodged by Peercoin. So you can utilize Peercoin as store of value without the need of frequent transactions in the Peercoin blockchain. You aggregate transactions in the Peershare branch and execute them from time to time in Peercoin (basically like in the time when fiat was backed by gold with Peercoin being the “gold” for Peershare branches).

If this is at least close to what Peershare is intended to be, then I’d like to vote for
“Keep a fixed transaction fee of 0.01 PPC/kB for Peercoin. Make Peershare the way to reduce the price per transaction and raise the maximum number of transactions if necessary (allowing even for micro payments!).”

[quote=“masterOfDisaster, post:14, topic:1103”]What I’d really like is to understand the “Peershare” idea better and it would be the option to vote for if it were here and I already understood Peershare completely.

What I think to have understood about Peershare is (in my words) that you create a kind of branches which are backed/escrowed/lodged by Peercoin. So you can utilize Peercoin as store of value without the need of frequent transactions in the Peercoin blockchain. You aggregate transactions in the Peershare branch and execute them from time to time in Peercoin (basically like in the time when fiat was backed by gold with Peercoin being the “gold” for Peershare branches).[/quote]

Peershare allows a company to issue shares which can be exchanged in a decentralized fashion via a PoS blockchain dedicated to that purpose. The system makes it easy to disburse dividends in Peercoins. It will increase the number of transactions on the Peercoin blockchain and presumably the price of Peercoins with it.

But couldn’t you - relatively stable price for Peercoins as prerequisite - gather transactions within the Peershare system and execute “bundled” transactions in Peercoin only seldom?
You could use Peershare systems for bundling transactions, couldn’t you?

Scenario 1:
a company wants to raise funds and gathers 1000 times 1 USD for emitting 1000 Peershares each worth 1 USD.
The share holders receive for each Dollar 1 Peershare of that company.
When a share holder wants to sell a Peershare (for Peercoins or maybe fiat money), he needs a kind of exchange that handles that (or should this business only possible with the company that issued the Peershares? From my understanding: no…).
If it is done on an exchange it is completely possible to transfer fiat money or any other commodity without putting a transaction to the Peercoin network by just selling the Peershare for anything except Peercoin.
And both the exchange and the company that issued the Peershares can place bundled transactions when there is need to trade Peershares for Peercoins evading relatively huge transaction fees for small (in value) transactions.
That would be achieved by increasing the PPC volume for a single transaction (through “bundeling”) and reduction of the number of transactions in the Peercoin network.
And that would decrease the price in Peercoin for a single Peershare transaction (by decoupling the Peershare transactions from Peercoin transactions).

Scenario 2:
Peershares are used for paying dividends. This can be done by issuing a second “dividend Peershare system” different from the “company share Peershare system”. You receive tradable Peershare dividends which will only be in connection with the Peercoin blockchain once you decide to trade them for Peercoins.

But maybe I still understand the Peershare concept horribly wrong, although I’ve read it more than once…
And sorry if this sounds confusing but I’m a bit confused^^
Please be patient with me, I’m still learning :wink:

I wish I could change my vote. I voted do nothing. I’m for the first option now.

[quote=“masterOfDisaster, post:16, topic:1103”]But couldn’t you - relatively stable price for Peercoins as prerequisite - gather transactions within the Peershare system and execute “bundled” transactions in Peercoin only seldom?
You could use Peershare systems for bundling transactions, couldn’t you?[/quote]

To reduce transaction fees incurred for Peercoin transactions an issuer could choose a less frequent interval for dividend distribution, such as quarterly instead of weekly. Is this what you mean by bundling transactions?

[quote=“masterOfDisaster, post:16, topic:1103”]Scenario 1:
a company wants to raise funds and gathers 1000 times 1 USD for emitting 1000 Peershares each worth 1 USD.
The share holders receive for each Dollar 1 Peershare of that company.
When a share holder wants to sell a Peershare (for Peercoins or maybe fiat money), he needs a kind of exchange that handles that (or should this business only possible with the company that issued the Peershares? From my understanding: no…).
If it is done on an exchange it is completely possible to transfer fiat money or any other commodity without putting a transaction to the Peercoin network by just selling the Peershare for anything except Peercoin.
And both the exchange and the company that issued the Peershares can place bundled transactions when there is need to trade Peershares for Peercoins evading relatively huge transaction fees for small (in value) transactions.
That would be achieved by increasing the PPC volume for a single transaction (through “bundeling”) and reduction of the number of transactions in the Peercoin network.
And that would decrease the price in Peercoin for a single Peershare transaction (by decoupling the Peershare transactions from Peercoin transactions).[/quote]

You are right that the exchange of a specific type of Peershare for Peercoins would typically occur on an exchange and would therefore be an off blockchain transaction. Still, to get Peercoins into the exchange requires a blockchain transaction.

[quote=“masterOfDisaster, post:16, topic:1103”]Scenario 2:
Peershares are used for paying dividends. This can be done by issuing a second “dividend Peershare system” different from the “company share Peershare system”. You receive tradable Peershare dividends which will only be in connection with the Peercoin blockchain once you decide to trade them for Peercoins.[/quote]

If I understand you correctly you are proposing a new PoS currency to be used for Peershare dividend distribution to reduce the load on the Peercoin blockchain. Dividends can be paid in any cryptocurrency the issuer chooses including any PoS coin (with modest modifications to Peershare), but Peercoin has the advantage of having the most liquidity of any PoS coin.

Although this gets a little bit bulky, I prefer quoting the whole post to give an in-line answer…

[quote=“Jordan Lee, post:18, topic:1103”][quote=“masterOfDisaster, post:16, topic:1103”]But couldn’t you - relatively stable price for Peercoins as prerequisite - gather transactions within the Peershare system and execute “bundled” transactions in Peercoin only seldom?
You could use Peershare systems for bundling transactions, couldn’t you?[/quote]

To reduce transaction fees incurred for Peercoin transactions an issuer could choose a less frequent interval for dividend distribution, such as quarterly instead of weekly. Is this what you mean by bundling transactions?[/quote]

Basically: yes.
But I understand the Peershare more like tradable items, that are not necessarily part of the Peercoin blockchain…

[quote=“Jordan Lee, post:18, topic:1103”][quote=“masterOfDisaster, post:16, topic:1103”]Scenario 1:
a company wants to raise funds and gathers 1000 times 1 USD for emitting 1000 Peershares each worth 1 USD.
The share holders receive for each Dollar 1 Peershare of that company.
When a share holder wants to sell a Peershare (for Peercoins or maybe fiat money), he needs a kind of exchange that handles that (or should this business only possible with the company that issued the Peershares? From my understanding: no…).
If it is done on an exchange it is completely possible to transfer fiat money or any other commodity without putting a transaction to the Peercoin network by just selling the Peershare for anything except Peercoin.
And both the exchange and the company that issued the Peershares can place bundled transactions when there is need to trade Peershares for Peercoins evading relatively huge transaction fees for small (in value) transactions.
That would be achieved by increasing the PPC volume for a single transaction (through “bundeling”) and reduction of the number of transactions in the Peercoin network.
And that would decrease the price in Peercoin for a single Peershare transaction (by decoupling the Peershare transactions from Peercoin transactions).[/quote]

You are right that the exchange of a specific type of Peershare for Peercoins would typically occur on an exchange and would therefore be an off blockchain transaction. Still, to get Peercoins into the exchange requires a blockchain transaction.[/quote]

If you talk about Peercoins that are not yet in an exchange wallet, then yes. But if there are already PPC in an exchange wallet of some guy, you could trade the Peershares without Peercoin blockchain interaction. Only to get PPC to or from the exchange requires a transaction.
Lots of trades on exchanges are done with coins being already at the exchanges and to coins that stay at exchanges for future trades.
I don’t know about a ratio between “in-exchange-transactions” and “from/to-exchange-transactions”. I assume the coins are more often transferred between exchange accounts than from or to external wallets. But i don’t know…
Still I hope this approach would be able to decrease the number of Peercoin blockchain transations while keeeping the Peershare/PPC traing pair the preferred one (but for sure not the only possible!)

[quote=“Jordan Lee, post:18, topic:1103”][quote=“masterOfDisaster, post:16, topic:1103”]Scenario 2:
Peershares are used for paying dividends. This can be done by issuing a second “dividend Peershare system” different from the “company share Peershare system”. You receive tradable Peershare dividends which will only be in connection with the Peercoin blockchain once you decide to trade them for Peercoins.[/quote]

If I understand you correctly you are proposing a new PoS currency to be used for Peershare dividend distribution to reduce the load on the Peercoin blockchain. Dividends can be paid in any cryptocurrency the issuer chooses including any PoS coin (with modest modifications to Peershare), but Peercoin has the advantage of having the most liquidity of any PoS coin.[/quote]

That’s what I tried to make out of it - a kind of PoS only currency that can be traded for PPC.
As stated before: I think I don’t understand Peershare yet. But maybe those misunderstandings lead to new or old ideas^^
And as Peercoin can be sustained very energy efficiently, I find it the agent of choice for that Peershare concept.
…but one may be interesting in trading ot for fiat money instead.

+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: