-
UkoeHB
Meeting 2hr
-
UkoeHB
meeting time
-
UkoeHB
-
UkoeHB
1. greetings
-
UkoeHB
hello
-
Rucknium[m]
Hi
-
rbrunner
Hello
-
ofrnxmr[m]
Hello
-
vtnerd
hi
-
UkoeHB
2. updates, what's everyone working on?
-
Rucknium[m]
Collecting mempool and found block broadcast time for analysis of mining pools' block template update policies. Some analysis of p2pool payout outputs.
-
vtnerd
no real tangible updates since last week unfortunately - working on (other stuff) and bp++
-
tevador
Hi. Jamtis checksum + updating the specs.
-
isthmus
I read the OSPEAD doc again and started drafting up thoughts / questions. Converting from my own shorthand into comments shortly.
-
Rucknium[m]
Thanks, isthmus.
-
jberman[m]
Submitted a PR to rbrunner 's PR to optimize pool processing (
rbrunner7/monero #4) + been going through balance recovery in the Seraphis lib
-
UkoeHB
me: continued cleanup of the seraphis library. I decided to move all member functions out of C-style structs for a more clean/consistent environment (and to discourage adding member functions in the future).
-
rbrunner
Yeah, things get so complex that now PR's need PR's :) Thanks jberman[m]
-
UkoeHB
3. discussion
-
UkoeHB
This seraphis design overview basically got no attention - everyone should read it though because this is what monero will get if nothing changes.
gist.github.com/UkoeHB/f508a6ad973fbf85195403057e87449e
-
rbrunner
Not sure there was a lack of attention, I just think that it's not that controversial now
-
Rucknium[m]
I read it and gave comments/questions :P
-
rbrunner
I read it and was impressed how much will really change, it only becomes clear if you heap it all in one place.
-
rbrunner
And not merely change of course, but improve
-
rbrunner
By the way, is there already support in the library for transaction chaining? I guess so, given how modular it is
-
UkoeHB
Rucknium[m]: yes I'm grateful :)
-
Rucknium[m]
Another question in my mind is how much of the structure would have to change if many years from now we eliminate ring signatures and have an "accumulator model". In other words, how future-proof is the modular Seraphis structure?
-
UkoeHB
rbrunner: more or less, I didn't put a lot of effort into the mock offchain scanning stuff so it may or may not work
-
UkoeHB
the offchain mockups may or may not work *
-
rbrunner
Ok, it will be hard work to support it "higher up" in wallets anyway, probably not the first thing to implement
-
UkoeHB
Rucknium[m]: it depends on the accumulator model. If they are plug-and-play, doing the same thing as grootle proofs, then it should be easy enough
-
isthmus
Amazing work @UkoeHB
-
isthmus
/me is very happy about the transaction uniformity improvements
-
UkoeHB
thanks isthmus
-
UkoeHB
hmm are there any other topics to discuss today?
-
UkoeHB
In the seraphis migration workgroup meeting on monday it was basically decided that no additional changes to the jamtis spec are needed to support accounts. Does anyone feel like weighing in today?
-
vtnerd
its still handled by the blowfish technique .. ?
-
tevador
twofish
-
vtnerd
I guess I could just read, but my last reading of the spec looked like it was a bit rough because it involved a block cipher in the design too, but it solved lots of existing problems
-
tevador
yes, it uses a block cipher
-
vtnerd
ah right the upgrade sorry, but I think it was probably worth the change
-
tevador
I'm in the process of updating the specs to match UkoeHB's library
-
vtnerd
it makes accounts more seamless
-
UkoeHB
vtnerd: the 'mac' thing was renamed to 'address tag hint' and uses blake2b now
-
UkoeHB
the address index is still ciphered with twofish
-
vtnerd
ok will scan the comment and proposed changes again
-
Rucknium[m]
Some preliminary numbers on p2pool payout outputs: They account for about 15% of all outputs on the chain if my calculations are correct. Implications: larger storage needs (but coinbase outputs are lighter than most tx outputs); and some potential privacy issues with decoy selection since each ring will have two p2pool outputs on average.
-
Rucknium[m]
The Monero Meet discussion encouraged me to run the numbers
-
Rucknium[m]
This is with p2pool finding about 7% of all blocks
-
rbrunner
That's a bit surprising, given that not yet too many people mine there
-
tevador
on the other hand, it makes all transfers plausibly use freshly minted coins
-
Rucknium[m]
It's more "possible" than "plausible" IMHO
-
Rucknium[m]
p2pool payout consolidations would probably be distinct on the chain.
-
tevador
yes, possibly*
-
Rucknium[m]
And then the addresses being mined to are transparent, which can lead to deeper analysis of what txs may be p2pool payout consolidations
-
rbrunner
What do you mean with "consolidation"? E.g. payout only after I participated on x blocks, x>1?
-
UkoeHB
wow 15%
-
Rucknium[m]
The average number of p2pool payout outputs per found block is about 150. the mini chain tends to have higher numbers of outputs.
-
Rucknium[m]
Consolidation: If I am a p2pool miner, I would want to consolidate the very small payouts. I doubt that an individual p2pool output would be enough to pay for a good or service or be something to send to an exchange, etc.
-
isthmus
High frequency of miner outputs in rings has benefits
-
isthmus
-
isthmus
Nice if most or all rings have Y_{hops}(t) = 0
-
isthmus
Sorry this is a very old doc
-
Rucknium[m]
-
UkoeHB
only nice if the hops can't be ignored due to identifiable consolidations
-
isthmus
-
rbrunner
At least those transactions are still small
-
rbrunner
Almost Bitcoin like :)
-
Rucknium[m]
Also, if I'm an adversary receiving a user's payment (or I have cleartext view into that payment), the amount could easily exceed the possible amount of the sum of the cleartext p2pool payouts in the corresponding history.
-
isthmus
🤔
-
Rucknium[m]
Let's analyze single-hop: If sum(max(p2pool outputs in each ring)) > value_of_surveilled_tx_output, then you can rule out the p2pool outputs, (used as inputs) as a whole.
-
Rucknium[m]
Or should I say enotes
-
Rucknium[m]
If the target tx has a single input, then in this scenario the p2pool ring members could be ruled out completely.
-
isthmus
Gotta run, catch y'all later
-
UkoeHB
seems like we are at the end of the meeting, so let's wrap it up here; thanks for attending everyone
-
sech1
p2pool payout consolidations are very easy to spot if you track payout addresses: all or most of the inputs will have the same address as one of decoys.
-
tevador
there should be a smarter way of picking decoys for such consolidations, e.g. same 16 payout addresses for each input
-
sech1
the problem is you need to have external data to know which output is for which address so you can't pick decoys like this
-
sech1
external observer can run p2pool node and collect all this data, but it's not on Monero blockchain
-
tevador
p2pool could provide a function to select the decoys, which could then be used to make a tx if the RPC supported manually selected decoys
-
tevador
all miners on p2pool are running a p2pool node, so they have the data
-
Lyza
what would be the consequences of not using ring sigs when spending coinbase enotes? and likewise excluding them from constructed ring sigs
-
moneromoooo
We are not sure. IIRC sarang thought it would just push the problem one step up. It'd need Careful Study by People With a Clue to have a good grip on the consequences.
-
merope
Could there be a way for p2pool miners to tell p2poll to "withold" the payouts until they reach a certain threshold?
-
merope
Something like: "pay me only if I have accumulated 0.01 xmr with all my shares, or if I haven't found a share in the last 1000 p2pool blocks"
-
moneromoooo
You'd need a way to tell other miners that you accept this. I guess it could be an on-chain signed message with the mining address, but you'd need to have a way to propagate these to other miners.
-
moneromoooo
This would probably also require a longer chain, since you risk your shares lapsing otherwise.
-
moneromoooo
A simpler way might be to have different p2pool chains configured differently. Pick the one you like.
-
moneromoooo
ie, one very long chain, where miners add an output only for people with >= N shares.
-
merope
Another issue would be how to handle p2pool blocks that find mainchain blocks: if you found a share but you're still below your threshold, where do those xmr go? They must go somewhere...
-
moneromoooo
The rule could also say ">=N shares, or a share in the block about to lapse". That'd fix the lapsing issue...
-
moneromoooo
They go... to whoever got outputs on that miner tx, same as now.
-
merope
Right... finding two shares at half the difficulty should (?) have lower variance than one share at higher difficulty
-
moneromoooo
Actually, ">=N shares, or a share in the block about to lapse" might be a good change for the default chain too. It'd cut down on miner tx size without drawback to small hash rate miners.
-
moneromoooo
High hash rate miners would just stop spamming so much.
-
moneromoooo
sech1: do you see a drawback here (beyond whiners wanting to be paid in 30 minutes rather than two days) ?
-
sech1
I tested different payout schemes when I started working on p2pool. All variations of "withhold payout until limit" were underpaying low hashrate miners.
-
sech1
they only worked if I kept _all_ p2pool blocks which is not feasible
-
sech1
as soon as you start pruning old blocks, some low hashrate miners get their shares lost
-
sech1
I tried to compensate it by "moving" their accumulated hashes into a newly found share, but it also skewed payouts in favor of high hashrate miners
-
sech1
I tried 4-5 variants, in the end only plain PPLNS window worked fine and didn't discriminate any miner in the long run
-
Rucknium[m]
Lyza: When Sarang looked at it, p2pool didn't exist yet. If we separated coinbase outputs from normal outputs like that, I think p2pool miners would need to churn at least once after a consolidation transaction for good privacy.
-
sech1
cheap consolidation of p2pool payouts would be nice
-
sech1
why would they need to churn? They already get a single "regular" output after consolidation
-
sech1
EAE attack is not applicable because there's no first "E" for miner payout
-
sech1
hmm, but on the other hand, repeated consolidation -> single output -> direct send to exchange can be the same as EAE attack because p2pool data can provide the payout address
-
Rucknium[m]
You're right. I should have said that they need to do a consolidation transaction (which is like a churn) rather than a direct payment from the coinbases to another entity.
-
sech1
even after a consolidation transaction, this output is still traceable to the original p2pool payouts, if it's a repeated send to an exchange
-
sech1
like a miner sending to exchange every month
-
Rucknium[m]
Researching this issue may become a high priority if ring size stays the same and either (1) tx volume falls a lot or (2) p2pool hashpower share rises a lot.
-
sech1
the consolidated input should be churned 2-3 times to break this link
-
sech1
if the miner cares, of course
-
sech1
also, cheap consolidation can become important if p2pool gets significant % of hashrate
-
sech1
each individual payout in each block is 39 bytes and then ~520 bytes more when it gets consolidated
-
sech1
right now it's ~8000 payouts/day, so 4-4.5 MB of eventual blockchain growth for each day of p2pool operation
-
sech1
if p2pool gets 10 times bigger, it will be 40-50 MB/day from p2pool only
-
monerobull[m]1
So 60% of the hash rate?
-
monerobull[m]1
So like 20 GB a year? To have the chain be way, way more resistant to 51% attacks? Sounds like a decent trade-off
-
sech1
another aspect is network fees to consolidate miner payouts
-
sech1
it can reach 3-4% for low hashrate miners who only get smallest payouts
-
Rucknium[m]
sech1: How does that compare to the "unfairness" of the alternative payout schemes you analyzed?
-
sech1
alternative payout schemes sometimes underpaid 50% to small miners
-
Rucknium[m]
Ouch
-
sech1
some of my attempts resulted in small miners not even getting anything :D
-
sech1
the key problem here is that you get block reward of 0.6+ XMR and you _must_ distribute the entirety of it between eligible miners
-
sech1
if you introduce some form of min. payout and accumulation into the system, there will always be some time fraction of block reward left which must go somewhere
-
sech1
it results of some miners getting more and some miners getting less
-
sech1
*results in
-
sech1
and usually big miners get more because they get payouts in every block
-
sech1
for example, if you have 3 miners eligible for 0.02, 0.07 and 0.5 XMR payouts, it's 0.59 XMR and block reward is 0.6 XMR
-
sech1
you have to give 0.01 XMR to someone but all other miners have less than 0.01 XMR pending
-
sech1
either one of the 3 gets more, or one of other miners get more than they've accumulated
-
sech1
it can all be solved if the entire p2pool chain history is kept, but it's impossible
-
sech1
p2pool main is already approaching 4,000,000 blocks
-
ghostway[m]
sech1: Give it to starving developers! :P
-
gingeropolous
does it all need to be kept everywhere? or just the miner tryin to prove their share?
-
gingeropolous
hrm nah.
-
moneromoooo
I do not understand why miners would be (dis)advantaged based on hash rate since the only change is delaying something, final balances are identical.
-
moneromoooo
I think you skipped over the "or a share in the block about to lapse" part. This ensures you do not lose shares.
-
moneromoooo
I may have been unclear. Here, "the block about to lapse" is the oldest block in the p2pool chain. The one which, after p2pool finds a new block, will be dropped from the chain, and thus the miner would found it would lose their share if it was not paid right now (if it was not paid out already).
-
moneromoooo
It's the "safety" that means low hash rate miners do not get to lose their shares before they get to the payout threshold.
-
moneromoooo
And with it, payout thresholds can even be infinity.
-
sech1
if you move these old blocks to remember what they mined, it results in low hashrate miners underpaid
-
moneromoooo
Low hash rate miners would still be paid per share (just 3 days after they find their share).
-
sech1
partly because of the problem I described above
-
sech1
partly because it increases the total weight of PPLNS window and it favors bigger miners
-
sech1
I ran the simulations and I though it would work (accumulating old blocks), but it doesn't
-
sech1
it seems intuitive to do what you describe and I actually wanted to go with it at first
-
sech1
but couldn't find the solution
-
moneromoooo
Are you saying that just delaying a payout in case it can be merged with another causes different payout overall ?
-
moneromoooo
The "fraction of block reward left which must go somewhere" above ?
-
sech1
yes
-
sech1
if you delay payout to some miners, it basically means you're overpaying some other miners
-
moneromoooo
Oh, I just nuderstood it now.
-
moneromoooo
You can't pay from past blocks anymore.
-
sech1
and they can even game this system by changing their wallet address as soon as they're overpaid enough
-
moneromoooo
Thanks.