The issue was about limiting the guesser reward to a specific value, say 120, or some other reasonable value. This would allow the Composer to incentivize packaging more messages and creating proposals with larger values. Otherwise, with a proposal at 128, the Composer has absolutely no incentive to package the message. The core problem with a proposal with a guesser reward of 128 is that the Composer has no incentive to repackage the message. Another possibility is that by packaging more messages, say 10 messages for 0.2 gas, the total reward for the proposal could reach 128.02. The Composer could price it at 0.01, and the guesser could receive 128.01. Such a proposal would be attractive, but the probability of this happening is extremely low.
afaik, this is what’s already happening. For example, here’s a block with a fee of 128.00200000.
Perhaps that meets your proposal/suggestion?
This isn’t the situation I described. The Composer’s guesser reward is still set to 128, but it’s bundled with an additional 0.02 TX fee.
My core point is that Composer needs to be given some profit margin, and this needs to be modified at the consensus level. Otherwise, it’s truly impossible to handle situations where malicious guesser rewards of 128 are issued.
Let’s describe this problem chronologically. Block A is generated on the chain at 18:00. 150 seconds later, someone creates a malicious proposal with a guesser reward of 128. Transactions generated within 0-150 seconds might be included in this proposal, while transactions generated between 150 and 600 seconds are unlikely to be included. This is unless the person who created the malicious proposal creates a new one. You’ll find that there’s no profit margin for the composer throughout the entire block cycle.
After careful consideration, the only profit margin is if there are enough transactions on the chain, and the total gas cost is A, say 0.002. Then, they could set the guesser reward to 127.999, and the total proposal fee to 128.002, giving them a profit of 0.001. This assumes the malicious composer doesn’t create any more proposals. Currently, there are very few transactions on the chain, so the probability of this happening is extremely low.
disclaimer: these are my own views. I do not speak for project or the founders.
You use the term “malicious guesser rewards” referring to a situation where the guesser received all the block reward and the composer receives none.
I, on the other hand, see that as the ideal situation for the network overall and for the guesser(s). Thus I reject the “malicious guesser rewards” terminology.
The reason is that guessing is a decentralized activity and proposing is a centralized activity. Truly only one network participant is needed to generate a proof for each block. So if a composer is willing to do that hard work for no fee at all, amazing. good for everybody.
I honestly feel that people have gotten a mistaken idea of composing, and are under the illusion that it is a “many winners” system, like guessing. It is not. It is inherently a brutal system that will tend to favor a single winner, and for that reason, the single winner should receive as little of the mining rewards as is possible, only just enough to incentivize them to keep performing the work.
And if they should stop, then that opens the door for someone else to take over and eek out a meager profit.
The entire incentive system of composing drives the guesser fraction towards 100% and the composing fraction towards 0%. I consider that to be by design, not a mistake.
The market exists to find the equilibrium point at which one or more composer(s) are incentivized enough to do the work. I have always figured it would approach zero. And that there are rational-self-interest reasons why even zero could be attained at times, though perhaps not sustainably.
and btw, there is always still incentive to become the fastest composer. If you can be fastest, then you can set your guesser fraction to 50% or whatever you want and possibly earn a big chunk of block reward. Guessers should be incentivized to guess on your proposal during the window of time until a more favorable proposal comes along, eg the 100% guesser-fraction proposal. Because if they do not, they run the risk of somebody else finding the block during that time.
To be competitive at composing, one must have one of the fastest machines on the network. For a worldwide network, that means a very fast machine indeed. As the network grows, doubtless people will start building supercomputers optimized for this purpose.
So let’s say the top 5 fastest machines on the network are composing. The operator of the very fastest machine might choose a fee of 60% rewards going to the guesser. The next fastest might choose 70% to the guesser, and so on. The slowest machines are thus forced to either offer a fee of 99% to the guesser, or else simply not compete. And the closer together these machines are in terms of performance, the smaller the window for the top dog. Then we have regular block-time variance, so some blocks will simply take longer to find than others, which means more time for the slowest composer to publish their proposal and guessers to switch to it.
Now, if the top-dog composer sees that people are switching to the 80% proposal within seconds of his own, then top-dog may decide to change from 60% to 80%, to prevent that from happening. Operators constantly adjust. And could also write code to automatically adjust. The point being that there are incentives that drive the guesser fraction up. And the highest up is 100%.
I agree with your design of the competition before the 128 proposals are published. But do you think any composer would still work on the 128 proposals after they’ve been published? What would motivate them, and where would they profit from composing again?
So, if a composer is willing to do that hard work for no fee at all, amazing. Good for everyone.
【I think that’s impossible】.
Well that’s a novel question for me because I haven’t considered that to be a goal.
So the short answer is no. No composer would rationally still work on proposals after a 128 (to guesser) proposal has been published/received.
A technical caveat is that I believe presently in neptune-core composing just occurs in a loop at the rate specified by –guesser-fraction. (unless changed in a recent version.) I consider that to be sub-optimal code that is ripe for optimization. ie, the composing node should be smart enough to avoid doing any useless work, and also to choose an optimal rate based on proposals already received.
More interesting though is to consider why you are asking the question, and why it might be useful for the network to have block proposals published after a 128-to-guesser proposal is available to guess on. The main reasons I can think of are:
- to include more transactions from mempool that have recently arrived, thus benefitting overall tx throughput.
- in order to facilitate a system like work-shares (as implemented in Quai Network and proposed for monero).
I think that for neptune two-stage mining as originally designed, and as presently operating, there is no real need for additional proposals. If it were indeed determined to be a requirement for some purpose (such as work-shares) we would need to give careful thought to that.
Yes, that’s my goal. When we perform a transaction, generating proofs takes a very long time, potentially far exceeding the time it takes to compose, but it’s still within the block’s timeframe. I want a mechanism that allows the composer to package as many transactions as possible. To achieve this, the composer needs a certain profit margin, even if it’s only 0.5, so the whole process enters a positive feedback loop.
Let’s say for sake of discussion that a consensus rule somehow capped the guesser fee at an arbitrary 99.5%, so there is always at least 0.5% available to the composer.
Well, once that 99.5% number is hit, I don’t see that guessers have any incentive to switch to a newer proposal. Other than an altruistic “help the network” if the newer proposal has more utxos.
So even with an artificial cap in place, it is not at all clear to me that it would have the effect you want.
that said: I agree it is interesting to think about ways that greater tx throughput could be incentivized/achieved.