lorbax / pplns-with-job-declaration

0 stars 2 forks source link

Review #1

Open plebhash opened 1 week ago

plebhash commented 1 week ago

Starting this issue with some reviews and suggestions

plebhash commented 1 week ago

In the beginning of Section 2, the term "mining round" is defined:

Indeed, it is difficult even to compare shares produced between a block and the following (we call this a mining round).

But then, there are multiple references to the term "window".

As a reader, I felt confused by this. What is a "window"? Is it the same idea as a "mining round"?

plebhash commented 1 week ago

The paper is using the term coinbase reward in a way that IMHO could cause confusion to the reader.

My understanding of coinbase reward is: the total sum of satoshis in the outputs of the coinbase.

Those sats are being "minted", in the sense that:

The paper is currently using the term coinbase reward (represented by variable $r$) to refer to what I just called block subsidy, where perhaps a different letter could be used to represent this variable (e.g.: $B$).

I believe the term coinbase reward should be reserved for the more generic idea of the total sum of rewards in the coinbase (which is correctly represented as variable $R$ ).

In other words:

$Coinbase Reward = Block Subsidy + Fees$

or:

$R = B + F$

plebhash commented 1 week ago

In Section 3.1 (Remark)

If I understand correctly, this formula should be:

$\sum_{i=0}^{N} score_d(s_i) = 1$

in other words: index of sum is $i$, not $j$

plebhash commented 1 week ago

While I read SV2 stuff, I like to create visual diagrams to help me understand things better. I did something similar for https://github.com/stratum-mining/sv2-spec/pull/98 and felt it was a very valuable learning experience for me.

While I read this paper, I created some visuals to organize my thoughts.

If the authors feel they are useful, they are free to use and modify them without attribution.

All files were created on the platform draw.io, and are available for further customization as different pages on this link.

PPLNS with Job Declaration-coinbase reward drawio (1)

PPLNS with Job Declaration-slices drawio (1)

PPLNS with Job Declaration-MMEF drawio (2)

plebhash commented 1 week ago

I believe Section 3.2 could be improved

The concept "Fee-based score" could be renamed to "Fee-Difficulty-based score", to make it clear that these two dimensions are taken into consideration.

Also, the notation could be $score_{f,d}(s_i)$ instead of $score_f(s_i)$ (subscript is $f,d$ instead of just $f$)

lorbax commented 1 week ago

As a reader, I felt confused by this. What is a "window"? Is it the same idea as a "mining round"?

* If yes: it would be good to unify all references to this concept under the same name, and avoid implicit synonyms.

* If no: it would be good to avoid confusion by providing a formal definition for the term "window".

Usually in the context of $\text{PPL}N \text{S}$, the window are the $N$ consecutive shares before the one that is a new block. Perhaps I should make it more clear.

$Coinbase Reward = Block Subsidy + Fees$ in this case you'd have that the coinbase reward depends on the blocks fees. Perhaps it is better use the word "coinbase" for something that depends only on coinbase, like the coinbase output. I will review the notation and think about it btw.

If I understand correctly, this formula should be:

∑ i = 0 N s c o r e d ( s i ) = 1

in other words: index of sum is i , not j

correct! thank you!

I believe Section 3.2 could be improved

The concept "Fee-based score" could be renamed to "Fee-Difficulty-based score", to make it clear that these two dimensions are taken into consideration.

Also, the notation could be s c o r e f , d ( s i ) instead of s c o r e f ( s i ) (subscript is f , d instead of just f )

The improvement you are suggesting is to change the name of the section and the subscripts or are you indirectly referring to something more?

While I read SV2 stuff, I like to create visual diagrams to help me understand things better. I did something similar for stratum-mining/sv2-spec#98 and felt it was a very valuable learning experience for me.

While I read this paper, I created some visuals to organize my thoughts.

If the authors feel they are useful, they are free to use and modify them without attribution.

All files were created on the platform draw.io, and are available for further customization as different pages on this link.

PPLNS with Job Declaration-coinbase reward drawio (1)

PPLNS with Job Declaration-slices drawio (1)

PPLNS with Job Declaration-MMEF drawio (2)

I like a lot the second and third diagrams, I will look carefully over the WE and think to add them.

lorbax commented 1 week ago

@plebhash thanks for the review, I will apply it over the WE!

plebhash commented 1 week ago

Usually in the context of PPL𝑁S, the window are the 𝑁 consecutive shares before the one that is a new block. Perhaps I should make it more clear.

So a PPLNS window could contain multiple mining rounds? It would be good to make that clear to the reader.

The improvement you are suggesting is to change the name of the section and the subscripts or are you indirectly referring to something more?

If the reader reads "Fee-based score", they could be induced to misunderstand that this score is uni-dimensional ("only fees matter, difficulty is irrelevant"), which would be incorrect.

In general, I would aim to always use the term "Fee-Difficulty-based score" instead of "Fee-based score".

And the subscripts $f,d$ would also help emphasize that. If the reader sees $score_f(s_i)$ in isolation (without the full formula), they could be induced to the same misunderstanding I mentioned above ("only fees matter, difficulty is irrelevant"). So always using $score_{f,d}(s_i)$ helps avoid this.

I like a lot the second and third diagrams, I will look carefully over the WE and think to add them.

It's great to hear that. Like I said in the previous message, you can further edit the images via the provided link on the draw.io platform. All images are on the same file, divided into different "pages", which you can navigate on the bottom of the draw.io UI.

If you decide to use them in the paper, no attribution is needed.

lorbax commented 1 week ago

So a PPLNS window could contain multiple mining rounds? It would be good to make that clear to the reader.

Yes. With mining round I mean all the shares with the same prevhash, so are the shares produced between a block and the following one. The core idea of PPLNS is that the window of shares that are paid have to cross multiple blocks found by the pool (and therefore multiple mining rounds). In the next commit I make it clear.

lorbax commented 1 week ago

If the reader reads "Fee-based score", they could be induced to misunderstand that this score is uni-dimensional ("only fees matter, difficulty is irrelevant"), which would be incorrect.

I think that this is possible only if you read just the sections' title, because it is mentioned at the end of first paragraph of Section 3 and explicitly written in the first point of the Remark in the same Section:

As remaked earlier, the dependence on difficulty is intentional. Otherwise, if there are two shares with the same fee, the one with lower difficulty is paid the same as the other, while requiring less computational effort to be produced.

I would have to change "fee-based score" with "fee-difficulty-based score" in the whole article, which would make it a bit pedant. I think it is more practical to keep implicit the difficulty dependence, even when discussing it with other people. Nevertheless, I will discuss it with the other author: