Are there any plans for the transaction fee?

In the last few weeks the price of Peercoin has doubled relative to Bitcoin. Relative to US dollars, it has nearly tripled over the last few months. I’ve always been concerned with the design of the flat 0.01PPC transaction fee, and this recent, rapid, price movement has resurfaced these concerns.

Are there any ideas about making the transaction fee more dynamic? Personally, I’ve always wondered why the protocol doesn’t deduct a percentage of the transaction (say 0.5%) rather than a fixed amount of 0.01PPC.

If Peercoin continues to rise in value, which I think is something we all want to encourage, the 0.01PPC flat transaction fee is going to work against any growth over about $100USD:1PPC equivalent. Given that the world has already shown no problem with valuing cryptocurrencies into the 10’s of thousands of US dollars, this strikes me as a problem that really needs to be addressed if Peercoin ever hopes to be valued near that level.

1 Like

Here is a recent article that was written on the transaction fee…

A Smarter Fee. Cryptocurrency has its roots firmly in… | by Peercoin Pulse | Peercoin | Mar, 2021 | Medium

1 Like

Thanks for sharing that.

Admittedly, I wasn’t able to completely understand the article, but it didn’t seem to make any useful conclusions. Technical justifications aside, the fact remains that if Peercoin was valued at current Bitcoin prices (something I think we’d all like to see) then every transaction on the Peercoin network would cost the equivalent of $600 USD. There’s no business or individual that would pay that. Therefore, it will be technically impossible for Peercoin to ever get bid up to that level.

Bitcoin has risen to this level (and it will probably go higher) because those that are attempting to value Bitcoin are viewing it as a “digital gold” and, therefore, a safe haven for fiat currency inflation. The rationale in many circles seems to be that with roughly 2.1 trillion US dollars in circulation and a max Bitcoin supply of 21 million BTC, the natural value of 1 Bitcoin being used as an inflation hedge is $100,000 USD. This, and this alone, is what is driving the current mainstream demand for it.

Peercoin, on the other hand, will have it’s valuation hamstrung by the fixed transaction fee forever. It seems to me that the valuation of Peercoin will never rise above what the consensus becomes for an acceptable transaction fee. So if that number is $1 USD equivalent, then 1 PPC will never be worth more than $100 USD, or will always naturally revert to that level.

The extra effect is that Peercoin, in this current design, could never be used as an inflation hedge. So it seems to me that for any technical argument that can be made for the current 0.01PPC fixed transaction fee, a better economics argument could be made against it.

I think a better solution would be to start with an estimate of an “acceptable” transaction fee. We should start with our estimate in USD. Let’s suggest that for a backbone asset that will be minimally traded, we’re willing to accept a transaction fee of $1 USD and use that as our baseline for determining a relative transaction fee for Peercoin.

We can then determine the total number of transaction fees in circulation to get an acceptable ratio. In the case of USD, the math is easy: 2.1 trillion supply / 1 USD acceptable fee = 2.1 trillion. Using 2.1T as our acceptable ratio, we can then divide the current supply of PPC, which is roughly 27 million, by 2.1T to get a similarly acceptable transaction fee of 0.0000129PPC. This is a formula that could be set programmatically into the protocol such that the transaction fee would automatically increase relative to the total supply of Peercoin increasing. So in effect, the transaction fee becomes the formula of total supply divided by the static constant of 2.1 trillion.

I would also propose that transaction fees be awarded to minters (a 1-3% general supply inflation is economically ideal) but that’s a different discussion.

are you aware of the Proof of Stake blockreward? minters already get 1-3% annually for minting
burning the reward is just to counter the inflation a little bit

how is it possible to determine an acceptable transaction fee when the blockchain is not aware of the price? i dont think it is possible, not automated through some math at least

I don’t want to get hung up on the transaction fee getting destroyed because that’s off topic to what I’m asking here, but yes I’m aware that PoS inflates supply by 1-3% and the transaction fee is meant to offset some of that. My point was precisely that it doesn’t need to because 1-3% inflation is considered optimal by a consensus of economists anyways.

Back on topic, I think it’s possible to determine an optimal transaction fee by performing a valuation on Peercoin being used as a “digital gold”, like I’ve done above.

The financial community has, I think rightly, determined that the best use for cryptocurrency is as a digital gold; ie. a fiat currency inflation hedge or a mechanism for backing a fiat currency’s value. To establish a valuation based on that criteria, you would take the current world reserve currency, which is the US dollar, and estimate it’s supply. This is currently estimated at 2.1 trillion. You would then estimate an acceptable transaction fee in USD for the type of transactions you want to encourage on a network meant to act as a store of value. In my example, I used $1 USD for this.

This results in a estimated 2.1 trillion to 1 ratio for the optimal transaction fee. To apply this to Peercoin you would then programmatically divide the total supply of Peercoin by 2.1 trillion to get the optimal transaction fee.

The result would be a transaction fee that scales upwards relative to the available supply of Peercoin, but always remains less than or equal to what $1 USD would buy today. Furthermore, it should anchor Peercoin’s valuation to that of a proper valuation for a “digital gold”, or at the very least ensure that the transaction fee isn’t so oppressively high as to discourage a proper valuation as a digital gold, like the 0.01PPC transaction fee does right now.

1 Like

I am very against programmatically installing something that is sensitive to either the value of the US dollar or the supply of the US dollar. It is simply irrelevant. An arbitrary constant like 21 trillion will similarly not stand the test of time. The conclusion the article comes to is that the proper solution is either to allow minters to vote on the fee, or to find a self-consistent fee. By pursuing the self-consistent approach, we result in the fee ‘0.0001 ppc/kb’. You will note that this is about 8x higher than your estimate (though this is also just an estimate), but that it in principal contains really only one variable: the blocksize. No numbers external to the protocol are needed to arrive at this conclusion, and I much prefer it to anything referencing USD supply or price.

I can understand that. I don’t particularly like the idea of using estimates and constants either, but, to be fair, a 1 or 32mb block size is also a constant, and an arbitrary one. The block reward amounts are arbitrary constants, the effective max supply generated through proof of work is an arbitrary constant, and picking a 32mb block size based on a current 4PPC average block reward is also somewhat arbitrary and may not hold the test of time. So it’s not completely unprecedented within the protocol to just pick a value and use it.

Perhaps you’re correct though, in that using the block size is a more technically clean way to derive the fee. As you’ve shown, using a 32mb block size gets you almost to what I’ve estimated as the ideal transaction fee based on a “digital gold” valuation.

One issue might be that this does not scale with Peercoin’s supply inflation, like my suggestion would, but the effect would be to make the fee slightly less expensive, not more, as Peercoin’s supply inflates, so that might not really be an issue.

There’s one final concern I have though: would changing the block size cause a more disruptive fork than simply changing the fee calculation?

In my mind, moving the fee to use my suggested formula would result in a sort of “soft fork”. The new clients would be configured to demand “PPC total supply divided by 2.1 trillion” as a minimum fee. For those that want to continue paying 0.01ppc by not updating their client, they are free to do so and the network will gladly accept it.

Conversely, wouldn’t adjusting the blocksize demand immediate widespread adoption via a hard fork?

I appreciate your ideas on this matter, and however we calculate the number at the end of the day we seem to have a similar understanding of at least the target order of magnitude. Still, I think you will find much more support in this community for increasing blocksize than for decreasing fee, simply because of the brand of blockchain politics espoused here. The blocksize is calculated using hardware requirements and bandwidths, so it hypothetically changes as technology gets better. The calculation also takes into account supply, which since v0.9 is a network parameter that we can hypothetically use. However, it is also desirable to have a stable, well-understood fee schedule. These are some of the benefits of a constant fee size, rather than an algorithmic one.

As far as people voluntarily paying more fees, I don’t know why that would happen. Allowing smaller fees is a hard fork without a doubt, and the client is coded off that fee. The best thing from a user perspective is a client behavior that picks just enough fee to get the txn included, so it will target that given a free software market (which of course we don’t have, but we should try to approximate it).

Given the choice to have a network fee instead of a fee market, we are trying to pick the number where the fee prohibits block chain spam/congestion while still allowing for legitimate use cases. This is to some degree a fundamentally subjective thing, though it helps to frame it in different ways (practical economics vrs the redundant cost of blockchain data, for example). One way to handle something subjective like this is to institute on-chain voting, which can come in many shapes and forms, including simply hard forking to a new fee once every 5 years.

Personally, I vote for hardfork to 0.0001 ppc/kb with 32MB block size and leave it alone for 100 years.

Thanks again for the response. There might be some confusion here (and it easily could be mine) but what I was asking is if using my method would result in a softer fork or not.

What I was suggesting/asking is if adjusting the fee programmatically, instead of changing the blocksize, would result in more of a “soft fork”? If so, that might be one strong argument in favour of that approach.

The last time I looked at the source code, the 0.01PPC fee was hard-coded in. If a new client were released it could be configured to adjust that static fee to a formula that would result in a lower fee, such as my “total supply divided by 2.1 trillion” suggestion. The validation routine would then use that value as a minimum fee requirement, such that no transactions would be rejected for anyone who is still trying to send with the 0.01PPC fee because they did not update their client.

On the other hand, if we adjust blocksize, this would be a “harder” fork that would require larger immediate adoption (via client upgrades) or we could actually risk the blockchain splitting into independent 1mb and 32mb blocksize variants, the former belonging to people who do not upgrade their client in a timely fashion and who engage in and verify transactions with one another.

It’s a hardfork either way, as anyone that wants to parse blocks has to use the updated code. If they don’t update, they will see valid blocks as invalid because the fee in the txns is too low and they will split the chain. If you aren’t reading blocks, just submitting txns, then you don’t care about blocksize either. They are the same level of hardfork.

i don’t get it. it’s 0.01 per kb, most of the transactions don’t use that much. minimum is 0.001ppc if you can get signed txn to 100 bytes

Transaction fees, in their current design, don’t scale with the value of the coin. That potentially makes Peercoin incompatible as a reserve currency or digital gold.