Dynamic voting for TX fees. Vote weight according to stake

I was directed from Peercoin’s facebook page to here so that my idea would be heard:

HERE’S AN IDEA: peercoin has PoS. why not let the nodes vote for the transaction fee according to the stake they have? This way tx fee can be made dynamic and still decentralized.

Interesting proposal. Can you expand on how you would envision that process would work? I’ve seen a similar option offered during some of the conversations, but you may be discussing something separate.

Maybe each Stake block would have a proposed new transaction fee included in. The network would take last 10 (or whatever number) PoS blocks and median combine the proposed fees to get the new tx fee. I would use median combining rather than averaging to eliminate extremes. However, this was just to get the ball rolling. I’m sure there are people who are more expert on the Peercoin’s protocol and its technical side.

From the end user’s point of view, I’d like to see some GUI/API functionality to set the tx fee that you’re node tries to vote for.

Would not the Bitcoin system (every miner / PoS minter decides which transactions to include and so which fee is enforced) achieve the same goal?

How would ensure stability? Seems like an opportunity for manipulation, how could this be fair for all?

Fair? Depends what’s your understanding of fairness. Is it fair that some people have more money and some have less? Stake based voting is much more fair than proof of work based voting because much more people can have stake but not so many can have massive computing power for PoW.

I’m not 100% sure how stake minting is done in the core of Peercoin’s protocol but if nodes get the chance to confirm blocks according to the stake they own then larger stake means more blocks to be confirmed which in turn means that nodes with more stake can influence the TX fee more.

Similarly to mining pools of the PoW system, users of peercoin can form groups of interest for the next TX fee outside of peercoin’s network. For example in this forum. If you think tx fee should be lower, convince me and I’ll give my vote for lowering tx fee. This is pretty much how lobbying and politics work anyway.

I'm not 100% sure how stake minting is done in the core of Peercoin's protocol but if nodes get the chance to confirm blocks according to the stake they own then larger stake means more blocks to be confirmed which in turn means that nodes with more stake can influence the TX fee more.

The way I understand it is that the quantity of coins put up for stake (and their cumulative coinage, to a fixed age, 60 days later) influences the effective “difficulty” of solving a proof of stake block, not the quantity of blocks.

A larger stake with max coinage results in a larger proof-of-stake block reward, but a smaller stake that also has it’s max coinage is just as likely to solve the block (with a smaller reward).

I hope I got that right.

[quote=“Hyena, post:1, topic:1117”]I was directed from Peercoin’s facebook page to here so that my idea would be heard:

HERE’S AN IDEA: peercoin has PoS. why not let the nodes vote for the transaction fee according to the stake they have? This way tx fee can be made dynamic and still decentralized.[/quote]
This is an interesiting Idea, I had an Idear with that, so that we could create a similarity to the central banks leading interest rate…
You could change peercoin to real fiatmoney like, if you make that TX rate in two ways,

  1. the hight of the rate
  2. the percentage a stakeholder can keep
  3. how about Minting pools?

There’s always a possibility to add one void address to the protocol that would serve the purpose of determining the tx fee. Then when sending money to that address it would somehow represent your vote for the next tx fee.

Hi, I’ve mentioned it elsewhere but here is appropriate place too

weight = stakeMinted * SOME_CONST / moneysupply; feeFlag = POSmintingAddress & 0x03; nMinTxFee += nMinTxFee * ( feeFlag == 0 ? -1 : feeFlag == 1 ? 1 : 0) * weight; inflationFlag = ( POSmintingAddress & 0x0C ) >> 2; posInflation += posInflation * ( inflationFlag == 0 ? -1 : inflationFlag == 1 ? 1 : 0) * weight;
In two words - stake minting address is voting, client takes address from POS block and looks for specific bits/flags in it(if bit 1 is ON - no fee changes, 0 is OFF - fee decrease, 0 is ON - increment). Vote weight is proportional to minted stake. When user see fee low enough he just generate new address with appropriate bits set, send his coins there and mint/vote with this new address. Random votes from users who don’t want to vote should give NO CHANGES vote on average.
Peercoin address structure may change so flags should be taken generally from output script.
This solution requires no changes in block/tx structure(but stored blocks would have to store two more variables[am I right?]).
It also brings new problems - we know that TOP 100 addresses got more than 60% of whole supply, they could manipulate heavily eg by creating lowFees-highInflation momentum, scare users, hoard more, reverse direction, repeat.

First you need to know what you want to accomplish.

One problem with the current transaction fee model is that it is regressive; the end users pay the most, while hoarders don’t just pay less but also get more interest. While large stakeholders also have an incentive to maintain the utility of the coin (hence setting lower fees), they may also try to maintain relative stake by forcing others to pay higher fees, when the coin is mature. Either way, though, early on at this stage, it’s likely voting will result in low or nil fees for the time being.

Moreover, if you really want to go about voting, I don’t see why we couldn’t have just used the Bitcoin model, that is to let miners decide whether to require a fee, and let users decide whether to pay.

As a voting I understand small % change so eg. 100% of stake can make ±5%/month fee change. Tying it to minting address would reduce volatility, slow move will show current/potential users the direction in which network is going.

What would be the incentive for people to vote for higher tx fees? Or for lower fees? How would this lead to an optimal fee? I see no advantages whatsoever, but ample possibility for manipulation… Am I missing something?

Yes, you’re missing the fact that tx fees have been adjusted as a hard fork so far.

I didnt miss that actually.

But the counterproposal in this topic doesn’t solve anything at all.

[quote=“Jazzer, post:15, topic:1117”]I didnt miss that actually.

But the counterproposal in this topic doesn’t solve anything at all.[/quote]

No buts please. Be either constructive with your counter counterproposals or be silent. This is advanced PPCoin topic for serious business only.

Just to emphasize: hard forks suck, Dynamic user defined TX fees solve that problem.

Well I seem to have touched a sensitive spot. Sorry about that, no need to get agitated.

So far what I read is that user defined tx fees solve that the fees are currently hardcoded. That is not sufficient in and of itself to implement this, as there’s no saying what voted tx fees end up doing. There needs to be a proper strategy behind it, with incentives for voting that end up achieving the goals set in the strategy. Just going democracy on the fees is reckless without proper consideration of the mechanisms that would drive it. You mentioned nothing about that, but maybe you’d like to elaborate at this time.

I’ll be discussing it on the same level as you are so that you would see what you’re doing wrong.

Yes it is sufficient as the users define what tx fees end up doing.

[quote=“Hyena, post:16, topic:1117”][quote=“Jazzer, post:15, topic:1117”]I didnt miss that actually.

But the counterproposal in this topic doesn’t solve anything at all.[/quote]

No buts please. Be either constructive with your counter counterproposals or be silent. This is advanced PPCoin topic for serious business only.

Just to emphasize: hard forks suck, Dynamic user defined TX fees solve that problem.[/quote]

Everyone’s voice here is equally appreciated here. As long as someone isn’t intentionally trying to derail a conversation, all voices are encouraged.

For a moment it seemed as if Jazzer was trolling as he pretty much just said “your idea sucks because it sucks”. I have no interest in answering to such criticism. I even didn’t intend to become the only defender of my idea, it’s just an idea and dudes with brains should immediately either see it good or bad. I’m not part of Peercoin’s dev team so the least I can do is just throw things out. The fact is that hard forks are lame and 50 euro transaction fees are even worse so something must be done.