-
Isthmus
-
Isthmus
@needmonero90 is this the plot you asked for yesterday?
-
Isthmus
Block propagation time as a function of time (colored by block size, yellow indicating 50+ kB)
-
Isthmus
Also, this is ... interesting
-
Isthmus
-
needmonero90
I wanted your chart, the distribution, to be timeseriesed over 1 month chunks or so
-
needmonero90
Also
-
needmonero90
I'm playing antichamber in Discord atm, Justin is watching, if you want to come :D
-
Isthmus
@n3ptune helped me figure out how to extract some more data around the miner transactions : )
-
Isthmus
Cool, I might hop on discord in a sec. Might keep you muted, nothing personal.
-
» Isthmus notes that the second plot is the length of the tx_extra field within each block's coinbase transaction
-
koe
Im guessing the lowest one is solo miners.. maybe jtgrassie can shed some light on which line corresponds to which mining software
-
jtgrassie
lowest lines will be solo miners (just tx pub key in extra, 32 bytes)
-
jtgrassie
nodejs-pool and monero-pool use an extra 17 bytes, so 49 bytes.
-
jtgrassie
of course, anyone could add other stuff in but that should be the usual.
-
jtgrassie
(thats all for the later block heights anyway)
-
jtgrassie
(of and of course those numbers I just gave are without the tag bytes)
-
jtgrassie
so minimum will be 33 bytes (solo miner) and typical pool 51
-
suraeNoether
atoc is the guy who was interested in matching, right? and he's not on right now. :\
-
suraeNoether
needmonero90: i've never enjoyed antichamber, it reminds me too much of a nightmare
-
koe
would it be 52 bytes? to account for the extra nonce length
-
koe
The bottom line looks like it is below 33 bytes.. is someone burning coins, or maybe using a custom software to sign transactions without the transaction pub key?
-
suraeNoether
almost certainly the latter, not the former, if those are the only two options
-
koe
they have been mining blocks since the very beginning
-
koe
there seem to be 2 main groups with sub-33 extra sizes
-
atoc
Hi suraeNoether , I am here now. I typically see the log on mattermost.
-
atoc
I hope you're feeling better. I saw that you were sick.
-
suraeNoether
Yep. Good to catch you
-
suraeNoether
-
atoc
Are these the updated changes?
-
suraeNoether
So right now, testingSimulator.py appears to be passing all but one test. unfortunately that test is testing a function that is a composite function, and both of the functions it calls seem to be passing unit tests
-
suraeNoether
Yeah
-
atoc
I see. Thanks
-
atoc
Hmm okay
-
suraeNoether
Which means that my unit tests for either the make_coinbase function or make_txns function in Simulator is failing to catch an edge case
-
atoc
Do you have an idea of what that failing edge case may be?
-
suraeNoether
Make_coinbase seems fine. Since make_txns just calls make_txn a bunch and make_coinbase seems fine, I think it's make_txn
-
suraeNoether
I suspect that I am not computing my predictions for the tests correctly. namely, it appears as if the number of red edges being added isn't what I expect them to be based on the state of the system before they are added
-
suraeNoether
Which also points to make_txn
-
suraeNoether
As the problem child
-
suraeNoether
At any rate, I am working on that today. As soon as that problem is fixed, I have some ready to go code to push that will play the tracing game and output the results to a human readable file
-
atoc
I see. Also, do you work out of matching-mojo?
-
suraeNoether
That's my most up-to-date presently
-
atoc
There are many branches and I'm not sure what each are for.
-
atoc
yes I noticed that
-
suraeNoether
I may do another branch before I pull it back onto my main branch. But right now matching-mojojo is what I am working on
-
atoc
Ok cool. I will also see if I can run those tests
-
atoc
and see what you're seeing
-
atoc
probably a little later though, but i will keep you updated on it
-
suraeNoether
what's exciting about this is that we will be able to upload a couple of simulated ledgers to GitHub with some ground truths, and then if anybody else comes along with new matching methods, they can test their method against these ledgers and generate an accurate confusion table. Sort of like unit tests
-
suraeNoether
No problem... A brief warning though
-
atoc
Ah yes that would be cool
-
suraeNoether
The way that I wrote my tests was that I have at least one basic test touching each function. Most functions have exactly four tests... One starting from a totally empty ledger, one starting from a simulated ledger, and one of each of the above that runs sample sizes and does repeated tests of the first two. I recommend uncommenting my unit test skip decorators for the test functions that you aren't
-
suraeNoether
investigating immediately... This will save an enormous amount of time every time you execute testingSimulator
-
suraeNoether
And I also recommend just uncommenting the skip decorators for all of the repetition tests
-
atoc
ok will do
-
suraeNoether
this is also an open invitation to anyone who knows python: this final bug is ... bugging me. *sunglasses*
-
koe
looks like people mining with the gui have 33 bytes in the tx extra, at least currently based on this guy
reddit.com/r/Monero/comments/eq8h2s…_block_using_the_gui_thanks_randomx
-
Isthmus
Here's a zoomed in copy
-
Isthmus
-
Isthmus
Confirming - the bottom row of dots is 33 kB
-
Isthmus
Oh, let's get the hashrate of solo miners
-
Isthmus
Since we activated RandomX, six blocks have been produced by solo miners using the Core software
-
Isthmus
(or, technically, by software that mimics the Core software)
-
Isthmus
6/(2015615-1978433)*1000000000
-
Isthmus
161 kH/s by solo miners
-
moneromooo
That will have *huge* error bars and a left wall.
-
suraeNoether
yep, that's an estimate from censored data
-
Isthmus
Yea, 6 is a hilariously small sample size
-
suraeNoether
if we are curious, i can formulate a BLUE
-
suraeNoether
but with 6
-
suraeNoether
we may as well go blue ourselves
-
Isthmus
'censored'?
-
koe
emailed u Isthmus
-
koe
seems to imply nearly all blocks are pool mined
-
koe
at least 6 implementations too
-
Isthmus
6 implementations with significant hashrate, 4 implementations with a little bit of hashrate, and a few solo mined blocks
-
koe
are there any outliers flying high above those?
-
» Isthmus checks
-
Isthmus
No outliers, here's the big picture:
-
Isthmus
-
koe
didnt you mention something about 60kB tx extras?
-
Isthmus
-
koe
oh 60 bytes of padding lol
-
Isthmus
-
koe
it's an extra nonce with 64 bytes, where only 8 bytes are used
-
moneromooo
60 bytes is quite alright. Was the kB a repeated typo ?
-
Isthmus
Yea, I was task switching between block propagation (kB scale) and tx_extra (B scale)
-
koe
that one is also 56 bytes of padding
-
Isthmus
Although there have been kB scale tx_extras for transactions IIRC
-
moneromooo
FWIW, a pool could just regenerate the coinbase output to differentiate between miners.
-
koe
did you mean a different tx with 99?
-
moneromooo
Gets rid of the extra mangling.
-
koe
use subaddress maybe? lol
-
moneromooo
IIRC mining to subaddresses required lots of changes to monerod so wasn't merged.
-
koe
or yeah could just do different transaction pub keys for each miner
-
Isthmus
Could you just assign a different stating point in the nonce range for each miner?
-
moneromooo
I don't think it's needed though, pools already keep track of template to user.
-
koe
Isthmus doesnt work for >1000 miners
-
moneromooo
Yes, you'd have to double check the reply's in the range though.
-
moneromooo
Otherwise I can connect to you 1000 times, and every time I find a block, ever miner of mine claims they found the same :)
-
moneromooo
Damn, I love git bisect. It turns a slow aggravating slog into a slow ok slog.
-
Isthmus
The nonce range is waayyyy bigger than that
-
koe
the nonce itself is 4 bytes
-
koe
thats why pools use extra nonce to differentiate workers
-
» Isthmus looks around for the back of an envelope
-
Isthmus
Ah yep, it is a bit tight
-
Isthmus
A fast RandomX miner with 5,000 H/s searching for a block for *20 minutes* could cover almost 2^23 nonces
-
Isthmus
So you could comfortably accommodate about 2^(32-23) ~ 512 miners
-
Isthmus
Too small for big pool
-
Isthmus
Although if this is the main reason that pools are doing all kinds of weird and trivially fingerprint-able stuff, let's just make the nonce range 8 bytes.
-
Isthmus
2^(64-23) would accommodate an astronomically large number of miners
-
Isthmus
> 1,000,000,000,000
-
moneromooo
I think the main reason is that it was coded that way at first and everyone just reused the same thing.
-
moneromooo
So all it takes is someone to write patches and PR them to whoever maintains the code now.
-
moneromooo
And then maybe a bit of arse kicking or public mocking to get pools ops to pull.
-
Isthmus
Once we extend the nonce range to 8-bytes, to accommodate 1000000000 workers per pool, is there any valid use case for unvalidated tx_extra in the miner transaction?
-
Isthmus
Since the value of the nonce itself proves to the pool who mined the block (if that matters)
-
Isthmus
Also, pool-mined blocks would then be indistinguishable from solo-mined blocks
-
koe
I think it was hyc who pointed out it's always good to have a little wiggle room. That's why tx extra hasn't had hard scrutiny sofar
-
koe
if the nonce was bigger it would still be fingerprintable, since each implementation would divide the nonce into different sizes for their workers
-
moneromooo
If the intent of extra is allowing unexpected uses, asking whether there's a valid use case for it is... not helpful.
-
koe
I feel like the best route is to enforce TLV in the extra field, enforce type sorting, and roll out that update with best practice guidelines. That way when pools update their software, they can at the same time harmonize with other implementations.
-
Isthmus
Nonce range should never be divided up deterministically. Pick random starting points for the miners (and reassign any obvious collisions)
-
koe
good point
-
Isthmus
(best privacy practice for both pool and solo miners)
-
moneromooo
jtgrassie: do you feel like patching existing pool code (I think there are 3) to avoid the extra nonce thing ? :)
-
koe
could just pick a random starting point, then deterministically increment for each worker
-
Isthmus
Ah yea, I wrote it up in an old articlle
-
Isthmus
If you are a miner that is using custom/obscure software that mines with an unusual nonce space search pattern (e.g. down from the maximum, or up from the midway point), then you should switch to random sampling so that your blocks blend into your transaction trees and the overall blockchain. Note that for each new block, you only need to call random() once for the first nonce, then you can iterate
-
Isthmus
sequentially in either direction — this will entirely remove statistical links between your blocks’ nonces.
-
Isthmus
I like the Zcash idea of having a consensus-enforced fixed-size encrypted memo field is great to allow users to safely innovate applications without damaging privacy on the base layer
-
cohcho
koe: explain details how will you split N bytes of nonce in non deterministic way between pool workers?
-
Isthmus
Unvalidated plaintext memo field is antithetical to fungibility
-
koe
cohcho it can be deterministic. Randomly select the first miner's starting point, then for each other miner increment the starting point by 10mill or something
-
koe
only works if nonce rises to 8 bytes
-
koe
a typical miner will only do 1mill or less hashes per block
-
cohcho
you will have lines with 10mill width at block_nonce/height chart
-
koe
nope, since for each block the offset is random
-
koe
there would be lines if each miner is always mining from the same starting point, but if the entire pool starts at a random point for each block then nonces will be randomly distributed
-
cohcho
8_bytes_nonce % (2^32) will have 10mill width *
-
cohcho
this way current nonce distribution will be transformed into 4 LSB
-
cohcho
and tx_extra will be represented by 4 MSB
-
cohcho
You can concatenate tx_extra to current nonce and plot it
-
koe
I think that makes sense to me. Easy change without updating header format
-
cohcho
It should be randomly distributed
-
Isthmus
Yeah, let's just randomly distribute across the whole range though. Not 4B + 4B or else I'll have two fields to fingerprint on (individual worker search algorithm based on nonce side, pool assignment algorithm based on the extra side)
-
koe
does this sound right: in other words, random select a pool starting nonce, then for each miner increment that nonce by 10mill. For each miner, take the 4MSB of their starting nonce and put in tx_extra, and the 4LSB to put in their header nonce.
-
koe
pool starting nonce: 8bytes
-
cohcho
Currently 4 bytes of nonce is miner's space to iterate and whole tx_extra is for pool only
-
cohcho
It's already 8 bytes (at least in monero-pool) plus 8 bytes reserved for special need
-
cohcho
some pools write their domain name into tx_etxtra
-
koe
^ Isthmus see if you can fingerprint the different extra length by running ASCII on some fields
-
moneromooo
ew. Marketers :S
-
Isthmus
@koe I think I get what you're describing, but I don't quite understand the benefit of splitting it into two fields.
-
Isthmus
"...see if you can fingerprint the different extra length by running ASCII on some fields" uh oh, I'll check that out
-
koe
the benefit of splitting is no need to update the block header format
-
koe
it's still version 1 for all I know
-
cohcho
the final aim is to have completely random tx_extra represented as TLV and force (or ask somehow) pool workers to choose starting point randomly
-
koe
aren't workers given a blob, which has the miner tx extra field smushed inside it?
-
koe
so workers arent constructing the blog
-
Isthmus
Oh, I meant theoretical reason. I don't mind updates for improvements
-
koe
blob
-
cohcho
yes, it's hidden behind tree_root_hash, they can only change nonce
-
cohcho
But they can iterate nonce in defferent ways
-
koe
ah do pool workers run different software?
-
koe
theoretical not that I can see
-
Isthmus
Might be easier to force pools to standardize by updating the block format. We see 12 implementations in use today, not sure how many will update if we soft standardize
-
cohcho
(no one in case of soft)
-
Isthmus
hehe exactly
-
Isthmus
pools haven't even updated to random nonces, and we've known about that for over a year
-
cohcho
I agree to update at least my own
-
cohcho
But don't understand yet how to blend in the crowd in the best way
-
Isthmus
:- )
-
cohcho
-
cohcho
monero-pool has tuple with 4 values: the last are rarely used and for special need to support proxy that will distribute work further
-
cohcho
Should it be seet to zero or removed when not need (reduce tx_extra to 8 bytes) ?
-
cohcho
be set*
-
cohcho
the last 2 *
-
koe
pools should store information about workers on their own servers, not on the blockchain
-
cohcho
more memory (or starage in this case) allows programmer to think less about efficiency during memory allocation
-
cohcho
also second element in tuple is being iterated one by one from zero
-
cohcho
Is it better to generate it randomly?
-
Isthmus
Ah @koe that's the succinct heart of the matter!
-
koe
Lets say pools get 4 bytes in the extra nonce to prevent worker overlap. To start a new block, randomly generate an extra nonce and assign to worker 1 (server side assignment). Increment by one bit for each additional worker. When sending out a job, either randomly assign the worker a header nonce to start mining from, or have the worker randomly
-
koe
select their own starting nonce.
-
Isthmus
-
Isthmus
This is making my brain melt
-
» Isthmus scrolls through pages and pages of dream text
-
Isthmus
I might be hallucinating, but I think a few patterns show up very often
-
koe
That should be sufficient to make everything appear random, while limiting pools to just 4 bytes per block instead of using the extra field to store info related to their business.
-
cohcho
Should pool check explicitely that 4 bytes random tx_extra are uniq or rely or random generator?
-
koe
you're hallucinating lol
-
cohcho
because in case of overlap two workers will do the same work
-
cohcho
Are there any mapping functions with 4 bytes output that guarantee uniq output for each uniq input?
-
koe
only do one random number for tx_extra, then increment it for each additonal worker. Worker 1 = 3145, worker 2 = 3146, etc. New job: worker 1 = 889281 worker2 = 889282. That's in the extra field
-
moneromooo
identity
-
cohcho
except identitiy :)
-
» moneromooo smartass
-
koe
Header nonce can be random without worry of overlap since the extra nonce is different for each worker
-
cohcho
starting point should be generated after each new block only once at pool start?
-
koe
yes
-
cohcho
yes 1st or yes 2nd?
-
koe
each new block
-
cohcho
ok, that's easy
-
cohcho
What's about workers?
-
cohcho
They receive start_x, end_x in my case
-
koe
workers receive blob which contains the extra nonce computed by pool and assigned to them; they EITHER: receive random header nonce to start mining from , OR generate their own random nonce to start from (up to implementer)
-
cohcho
there is xmrig-proxy that do the following:
-
cohcho
receive only block template with 4 bytes nonce and split it into 256 ranges ( 3 bytes each) between at most 256 workers
-
cohcho
How workers of this software should start iterating?
-
Isthmus
hold up y'all
-
Isthmus
2004429
-
Isthmus
not hallucinating
-
Isthmus
tx_extra reads:
-
Isthmus
�PeL�F�`L`,4R��/?�SD���minexmr.com
-
cohcho
Yes, I was meaning minexmr
-
Isthmus
You were right :)
-
cohcho
there were 10 blocks in row today by this pool
-
koe
whats the length?
-
cohcho
let me find height
-
cohcho
92 or 96 probably
-
cohcho
62 *
-
cohcho
it varies probably
-
Isthmus
62
-
Isthmus
But now that I'm looking at the decoded data they're only responsible for about 2/3 of those len(tx_extra)==62 blocks
-
koe
cocho each miner random selects a starting point RAND(3 bytes). If they roll over, just start at 0 (within the 3 byte range they are allowed)
-
cohcho
until the first repeat of nonce ?
-
cohcho
and then go to sleep until next job or request new one (that's not supported yet)
-
koe
should be no repeat since the 4th byte differentiates each worker
-
koe
and 3 bytes is 16mill so IDK what super powered worker you have
-
cohcho
I mean 3 bytes can iterated within few hours
-
cohcho
by slow worker
-
cohcho
in worst case
-
cohcho
in practise it will not be
-
cohcho
I just need correct general solution to cover all cases
-
koe
I guess go to sleep, if acting within the limits of that implementation
-
koe
what do they do right now? same thing
-
cohcho
IN my case sleep, don't know about other software
-
cohcho
probably repeat again
-
moneromooo
So why not the new output thing ? It saves memory, removes potential patterns in favour of encrypted info, so seems better, no ? What is the catch >
-
koe
new output thing?
-
cohcho
new output to pool's wallet with 0 length nonce in tx_extra vs the same output with different >0 length nonce?
-
moneromooo
Send every a template with a different output.
-
cohcho
computation overhead is low?
-
moneromooo
every miner.
-
moneromooo
I'm not sure.
-
cohcho
lower than set 16 bytes and rerun tree_root_hash?
-
moneromooo
Probably not. Is this a bottleneck somehow ?
-
koe
might be more intense for pools to generate so many curve points
-
moneromooo
Or is this "if I get one extra cent profit, I'll cause somene else millions in losses because I'm a human" situation ?
-
cohcho
if someone prefers the best efficiency with anonimity tradeoff they will care
-
cohcho
What thing guarantee that every new output will not repeat previously generated?
-
cohcho
What's the length of random data in new output?
-
koe
it's an ECC curve point, so 32 bytes
-
koe
random
-
koe
bit less than 255 bits technically
-
cohcho
Is it safe to generate 1st one randomly and the next by iterating one by one?
-
cohcho
I suppose no :)
-
koe
i think..
-
cohcho
yes?
-
koe
um
-
koe
no probably not a great idea, since it can reveal the pool's address
-
cohcho
And each new output will consume 32 bytes of precious OS entropy, right?
-
cohcho
It's too expensive probably
-
koe
ok the random space of a curve point is between 2^253 and 2^252
-
koe
err random size, this isn't important. What's important is that it costs a couple curve operations to generate a one time output address.
-
cohcho
also in that 4 elements tuple: 1st element 4 bytes generated once at pool start and will be constant until restart/crash
-
cohcho
Is it better to replace them with random?
-
cohcho
It's called "instance id" in code
-
koe
probably better to be random, since if certain workers are better than others their instance ID will appear more often
-
cohcho
1st element will be constant for all tx_extra generated by pool instance*
-
koe
can probably just roll a random offset for each block, and add the real instance ID to that offset for sending out a job. That way you only have to store the random offset temporarily while the job is alive
-
koe
can add the same offset to all chunks of 256 workers
-
koe
or 255 workers I guess
-
koe
256 get real koe
-
cohcho
256 workers is different software; Chain of workers is pool (e.g. monero-pool with 4 elements tuple ( 4 bytes instance id, 4 bytes worker specific nonce, 4 bytes reserved, 4 bytes reserved) -> xmrig-proxy ( represent nonce as 2 elements tuple ( 1 byte worker specific offset, 3 bytes nonce for worker) -> worker that iterates within 3 bytes
-
cohcho
(and monerod at the beginning)
-
cohcho
It's 256 since there are 256 uniq offsets (0 including)
-
jtgrassie
moneromooo: thing is with extra nonce, it's not just different miners. proxies also use the extra nonce. so whilst a pool could give each miner a separate coinbase output, it doesn't solve for pool proxies, or multiple workers.
-
cohcho
If the last level in chain generate completely random tx and all previous propagates only the first level address Then it will work
-
jtgrassie
but up the chain the pool needs to be able to recreate and validate
-
cohcho
it will have overhead to generate tx and the last level should back propogate actually generated block template
-
jtgrassie
and nothing down-chain should be able to set the output
-
jtgrassie
which is why what you are suggesting is flawed
-
moneromooo
OK, I can guess what a proxy does based on that statement. Fair enough.
-
jtgrassie
I'm also not quite clear on the goal - to stop using tx extra for miner txs?
-
jtgrassie
why is this important?
-
koe
mostly the goal is to make miners more uniform
-
koe
since there are clearly 6+ separate groups of miners
-
jtgrassie
but why?
-
koe
same reason anything in Monero - indistinguishability, fungibility, reduced fingerprinting, and so on
-
jtgrassie
but the very nature of tx extra is anyone can use it already. so unless you are talking about restricting tx extra wholesale, it seems a mistake to focus on just miner txs
-
moneromooo
That sounds a lot like a fallacy.
-
koe
I think the point is to improve on the current situation
-
koe
which has developed due to lack of common guidelines about how to implement the tx extra field. Everyone just does what feels right to them
-
jtgrassie
moneromooo: but tx extra is freeform and anyone can put what they want in it.
-
koe
miners are the focus since they have specific needs
-
koe
but standard tx are also part of the story
-
jtgrassie
IIRC there were arguments against validating tx extra.
-
koe
hyc suggesting enforcing TLV format, which retains the open endedness while encouraging uniformity
-
jtgrassie
perhaps moneromoo can recall the reason why we didn't want to do tx extra validation?
-
jtgrassie
I seem to recall the conversation coming up when discussing payment ids.
-
moneromooo
Depends who. Me, because it's meant to be arbitrary.
-
moneromooo
Some others want it gone.
-
moneromooo
Some want it parsed (a bit).
-
moneromooo
I don't think parsing just a bit is good.
-
jtgrassie
me neither
-
jtgrassie
its either arbitrary or not
-
moneromooo
Though some kind of generic parsing so that unknown stuff may be skipped seems like a good idea.
-
moneromooo
Just structural though.
-
moneromooo
We'd have to do away with the 255 limit. Make it a varint.
-
jtgrassie
I don't think there is a 255 limit from a consensus pov ?
-
moneromooo
There isn't.
-
jtgrassie
it is howver used for a number of different puposes already. Trying to restrict it just from a miners pov seems misguided.
-
moneromooo
You're confusing things.
-
moneromooo
There is changing how pools do things and restricting the use of extra.
-
moneromooo
The above was about the first one. The second may or may not happen, independently.
-
jtgrassie
the two are related
-
koe
I think it's ok for the tx_extra field to permit opt-out privacy, but it would be better if it encouraged remaining private by default (in terms of implementation). Currently there are no restrictions, no guidelines, and so even implementers who DONT want opt-out privacy, are stuck with no reasonable path.
-
moneromooo
I hope you're not claiming that relatedness implies implication, right ?
-
jtgrassie
no
-
moneromooo
I'll assume not. So yes, they're related.
-
koe
which totally contradicts the Monero reason d'etre
-
jtgrassie
as it is, tx extra is used for tx pub key, multisig, subaddresses, pools, merged mining implementations...
-
koe
from my point of view, I agree with hyc that enforced (sorted) TLV would go a long way to privacy by default, without any real restraint on opt-out privacy
-
koe
and along with sorted TLV should be explicit guidelines on how to implement the extra field to be the same/similar as other implementations
-
moneromooo
TLV is some sort of chunk based structure, right ? Like PNG ?
-
koe
type-length-value, it's similar to how the field is already parsed
-
koe
it's just, if you want to add something random you must prefix it with a type and length
-
koe
and by sorted, I mean each type is sorted by value. Currently some implementations dont sort, but the main wallet does.. ??
-
koe
sorry just sort the types, not the values..
-
koe
the implementation guidelines would include a list of common/standard types. Public keys, for example
-
koe
to verify the field, read it following TLV expectations (byte 0 is a type, byte 1 is a length, bytes 2-8 are a value, byte 9 is a type,...). If the last byte isn;t the last byte of a value, reject the field.
-
koe
or, if the type's arent sorted in ascending order, reject the field
-
moneromooo
IIRC I sort based on likelihood of usefuless. So probaby txkey first :)
-
koe
yeah
-
moneromooo
Though the wallet probably has to parse it all anyway, due to some stupid old bug.
-
koe
and maybe reserve some types for core updates (idk if that's a good idea)
-
koe
types can easily be larger than 1 byte, tag=255 then interpret next byte as an extension of the tag (by addition)
-
koe
jtgrassie what's your perspective on sorted TLV?
-
cohcho
"which is why what you are suggesting is flawed" <- Anyone with (sec_view, pub_spend) can verify distination of coinbase tx and create it. So if pool shares it then all the next levels will be able to create/verify uniq tx locally.
-
cohcho
jtgrassie: Can you help me understand what is flawed exactly here or privately?
-
cohcho
moneromooo: if pool doesn't support proxies then with each new block you will need 1 uniq tx per connected worker (e.g. 60e+3 connected to minexmr.com now , so 60e+3 per 120 seconds of uniq txs)
-
moneromooo
60k ??
-
moneromooo
Damn, decentralization is coming ? :D
-
cohcho
yes, 60k workers ~10k miners
-
cohcho
60k workers of ~10k miners
-
cohcho
It's the worst case now probably for single real world pool
-
koe
average miner has 6 workers?
-
koe
moneromooo it's at least better than ASICs, since if a pool misbehaves then miners can jump to other pools. Each miner has individual decision making power
-
cohcho
"and nothing down-chain should be able to set the output" <- This is required due to lack of ability to verify destination of tx submitted at intermediate level. But with (sec_view, pub_send) this ability will be added
-
cohcho
(sec_view, pub_send) is called tracking key in cryptonote whitepaper and allows to track destination. It isn't obsolete info at the moment, right?
-
koe
no that's accurate
-
jtgrassie
koe: I have nothing against TLV, its not much different to how it is currently.
-
jtgrassie
cohcho: a proxy does not have the pools secret keys
-
cohcho
(sec_view, pub_send) != (sec_view, sec_send), (sec_view, pub_send) can be sent to proxy instead of address
-
cohcho
Do you use see any security problems in it?
-
cohcho
you see*
-
jtgrassie
a pool may not wish to disclose their private view key
-
cohcho
At least one shared
-
cohcho
It's required only for those who supports proxies
-
cohcho
Others can't keep it private
-
cohcho
And proxies don't help in decetralization
-
jtgrassie
thats a naive statement
-
jtgrassie
they neither help nor hinder
-
cohcho
With an assumption that pool will share that pair of keys There is no problem, right?
-
jtgrassie
forcing pools to disclose private key is going to be a non-starter, IMO
-
jtgrassie
and tx extra moved to a strict TLV scheme, why not simply allow a 4 byte type field pools can use?
-
jtgrassie
^and if tx
-
cohcho
I just wanted to know that there are no security problems in that approach with uniq tx without tx_extra
-
cohcho
I don't know percent of pool users that uses xmr-node-proxy instead of xmrig-proxy
-
cohcho
If it's almost zero then it's not a problem
-
jtgrassie
both of those proxies have plenty of users
-
jtgrassie
pools encourage using a proxy for miners with lots of machines as it takes load off the pool server.
-
cohcho
256 reduction factor from xmrig-proxy is acceptable too
-
jtgrassie
the "security problems" is a design which forces disclosure of a secret key
-
cohcho
jtgrassie: are you specifically not adding "view" or it's assumed by default?
-
jtgrassie
the fact its a view has no bearing. Its a private key that enables disclosure of private data.
-
cohcho
I would be happy if pool shared it's tracking key so that I can recheck all found blocks
-
cohcho
It's ok for public pool but not for private
-
jtgrassie
whilst arguably a pool has nothing to hide, it feels like a flawed assumption
-
koe
is there any reason for a pool to make anything public at all? miners can verify their payout based on hashrate vs global hashrate
-
jtgrassie
and if tx extra is going to remain free to use (even if using TLV), there is no need for a change.
-
cohcho
with view_key it will precise check not probability based
-
koe
the question is if any miners care
-
koe
since miners already mine, despite no view key
-
jtgrassie
seeing what payments a pool recieves does not enable one to determine they have been paid correctly for thier work.
-
koe
true^
-
jtgrassie
to know that you need to know every other miners work submitted.
-
cohcho
nothing shared < pool's blocks can be tracked < pool's submitted shares can be tracked < ...
-
cohcho
It's getting closer to ideal with amount of shared info
-
jtgrassie
so you are advocating banning of using tx extra for anything non-standard?
-
cohcho
Without huge proxies and tx_extra used for nonce I'll be less distinguishable among other miners.
-
jtgrassie
which then prevents people using it for things like merge-mining or HTLC or anything else?
-
cohcho
If there are other ways to reach the goal Let's discuss it
-
jtgrassie
what I'm saying is, you are trying to suggest a forced ban of pools using tx extra, which means you are saying nobody can use tx extra for anything other than monero defined uses.
-
cohcho
This argument looks solid, previous one about problem with sharing sec_view wasn't.
-
cohcho
I agree to not implement that approach with uniq tx unless the last problem exists.
-
jtgrassie
forcing pools to disclose private view key is a non-starter IMO. That's an unfair enforced policy.
-
jtgrassie
and if the goal is reduced information disclosure, you've achieved the exact opposite.
-
cohcho
All pools (except only one) pastes height of their blocks, so fingerprint their coinbase tx via side channel
-
cohcho
With published sec_view_key it will be fingerprinted but explicitely on blockchain
-
cohcho
I don't know what is worse