-
sarang
Looks like test CI breaks on current master?
-
selsta
sarang: 6637
-
philogy
why aren't transaction keys created deterministically so that they can be restored/recreated if you have the seed?
-
fluffypony
it's been discussed in the past, I suggested the same many many moons ago
-
fluffypony
I can't recall what the blockers are to it, or if it opens up an attack
-
moneromooo
IIRC the objection I recall was that it was volontary, so someone would not have to follow this system.
-
moneromooo
There might have been more objections I do not recall.
-
fluffypony
yeah but having a deterministic view and spend key is also voluntary
-
dEBRUYNE
We could make it the default and allow for opt-out?
-
dEBRUYNE
I have similar thoughts wrt adding another word to encode the restore height
-
dEBRUYNE
^ fluffypony, do you remember what arguments were raised in opposition of that?
-
philogy
Would it make sense to open a research-lab issue for the topic?
-
fluffypony
I agree on teh restore height thing
-
fluffypony
my suggestion was to chunk it into months, so each word is the offset from month 0
-
philogy
Yeah I hate having to set a relatively old restore height just to be sure I haven't missed any transactions when restoring a wallet xD
-
fluffypony
of course, this will stop working after 135 years
-
philogy
I think in 135 years we won't have to worry about having to remember restoration height
-
dEBRUYNE
fluffypony: I will open an issue for it, should it be on -dev or -lab?
-
gingeropolous
i think the concern was that the restore height thing would leak information
-
fluffypony
I think they're both dev issues, dEBRUYNE
-
fluffypony
gingeropolous: if someone gets your seed I think you have bigger problems
-
gingeropolous
indeed.
-
dEBRUYNE
fluffypony: Oki
-
fluffypony
these are both meaningful UX improvements that we've been bouncing around for a few years, so it's a good time to get them going in earnest
-
dEBRUYNE
+1
-
dEBRUYNE
philogy: Do you want to open the issue for the deterministic private transaction key?
-
philogy
Sure why not, where should I open it? monero-project/monero or monero-project/research-lab?
-
dEBRUYNE
monero-project/monero
-
philogy
-
UkoeHB_
Hmm.. if someone's keys are compromised then all their recipients are compromised as well (the outputs they receive anyway).
-
fluffypony
UkoeHB_: if someone's keys are compromised that's a pretty big metadata leak regardless, imho
-
fluffypony
(big for anyone they've interacted with)
-
selsta
Do we have any bugfixes for v0.16.0.1 apart from Ledger fix?
-
moneromooo
Yes.
-
moneromooo
I can make a list if you're rounding them up.
-
selsta
ty, list would be helpful
-
moneromooo
6584 6587 6588 6597 6599 6611 6627 6629
-
moneromooo
All are small fixes.
-
moneromooo
Let me know when I should go make release branch versions of mine.
-
UkoeHB_
philogy: leaking keys just shows which outputs the key owner created, which is significantly less information than who the recipients were and what amounts were transferred (although amounts can be inferred from change outs, especially for 2-out tx).
-
selsta
moneromooo: you can open them in the next days or whenever you have time
-
moneromooo
ok
-
philogy
UkoeHB_: oh yeah I didn't think of that, maybe that feature could be optional. While there's a risk for recipients some people may really need this feature especially if they regularly have to comply with audits. A transaction key created deterministically from wallet parameters on a hardware wallet for example is much more secure than storing and backing up the restoration keys on a computer or server.
-
UkoeHB_
If the concern is audits, then knowing just the tx private key isn't enough. You also need to know recipient addresses. Since you need to store information regardless, I view deterministic tx private keys as not a great advantage in that case.
-
UkoeHB_
Also "A transaction key created deterministically from wallet parameters on a hardware wallet for example is much more secure than storing and backing up the restoration keys on a computer or server." -> Just encrypt the tx private keys with the hardware wallet keys.
-
UkoeHB_
Afaik, the core wallet already encrypts everything with the private keys
-
philogy
UkoeHB_: You make a good point
-
philogy
Aren't wallets encrypted using the entered password?
-
moneromooo
You'd think so, wouldn't you.
-
moneromooo
(and you'd be right)
-
moneromooo
Well, the passeword encrypts the keys file, and IIRC the keys encrypt the cache file.
-
moneromooo
Tx keys are in the cache file.
-
philogy
I mean for hardware wallets it would make sense if the actual keys stored on the device would be used for encryption in combination with the password
-
philogy
That would be a really nice feature: for hardware wallets everything is encrypted on the hardware wallet using the private view key, no password required: plug in your device, enter your pin, open the monero gui and you're in.
-
fluffypony
I think as long as deterministic tx key optionality remains it's not an issue
-
fluffypony
there's a larger question about what should be the default, but otherwise it could just form part of the inputs when creating a wallet
-
UkoeHB_
How would the wallet differentiate between sent outputs with deterministic tx private keys, and random ones?
-
fluffypony
I don't think it's a per-tx setting
-
fluffypony
it's a per-wallet setting
-
fluffypony
but if you tried to break it by having it on for a wallet and then you fudged a tx, the wallet could just go "well the txkey I've generated doesn't match this tx, move on to the next one"
-
fluffypony
and the next one should match, if it doesn't move on
-
dEBRUYNE
-
fluffypony
tks
-
UkoeHB_
'matching' is the problem, since with subaddress recipients you must know the recipient spend key to test tx private keys against published tx pub keys. R = r*Ks for subaddresses, not r*G
-
fluffypony
ahhhh subaddresses
-
fluffypony
good point
-
sarang
Yeah, it's not really clear to me exactly what the goal is here
-
fluffypony
sarang: being able to totally recreate a wallet from a single seed
-
sarang
One benefit is that it could be a buffer against bad RNG
-
fluffypony
including tx history
-
sarang
fluffypony: sure, but without destinations stored already, you don't really get a "full restore" in that way
-
fluffypony
yeah
-
sarang
Now, those could be stored as well
-
sarang
for use by the sender in such a case
-
dEBRUYNE
fluffypony: Your suggestion basically means that the 26th seed would be non-random right?
-
fluffypony
dEBRUYNE: I'd suggest we make it the 25th word, and then the 26th becomes a checksum for the whole thing
-
fluffypony
we'd have to rethink the checksum algo
-
dEBRUYNE
What would the issue be of simply adding it as the 26th word?
-
sarang
Hash the 25 words, take it mod whatever the length of the word list is?
-
dEBRUYNE
The wallet could use the first 25 words to do the normal check for validity of the seed
-
dEBRUYNE
Then use the 26th word for the restore height 'question'
-
moneromooo
If you change that, make the checksum false positive 1/1626, not 1/25.
-
moneromooo
And possibly add a first word to mark the seed version (not from the 1626 word list) :)
-
sarang
hence the hash approach
-
sarang
run against the length of the word list
-
fluffypony
I like the hash approach
-
fluffypony
but you'd hash the first 3 letters of each word (for the English word list)
-
sarang
It's fast and the primitives exist in code already
-
sarang
Except for arbitrary modular reduction...
-
sarang
unless the SSL libraries are still bundled, which had also been used earlier for certain inversions that are now done natively
-
fluffypony
moneromooo: I don't think we necessarily need to add a seed version at this juncture, as the extra word implies it's a v2 seed
-
fluffypony
if there is a future version then it could get an extra word for sure
-
sarang
I like the idea that versions are named after a fixed prefix word
-
sarang
oh, you have a potato-seed
-
sarang
sorry, we only support lawnmower-seeds
-
moneromooo
I'm not getting the hash thing. Is this because CRC-32 is too shit ?
-
moneromooo
AFAICT we don't really need collision resistance etc.
-
moneromooo
(I mean to the level ciphers need)
-
sarang
CRC would probably be fine too
-
sarang
I was just spitballing an approach generally resistant to collision
-
sarang
e.g. there aren't any "correlated changes" that would result in an easy collision that way
-
sarang
but if that's not really a concern, then it isn't that important
-
moneromooo
OK. I don't really mind which one gets used, but the addition of modular stuff on hashes triggered my overengineering alert :)
-
moneromooo
(beyond C's %)
-
sarang
Yeah, the more I think about it, the less I like it in practice
-
sarang
In theory I love it!
-
sarang
Or just use the last N bits of the hash and use a restricted word list
-
moneromooo
About the "count one more work" thing:
monero-project/monero #6581
-
rbrunner
+1 vote for a new first word giving seed version. Anything new with seeds will be a larger change, and if we go through it, why not do it RIGHT.
-
sarang
Why a word and not a number?
-
rbrunner
With a first version that is reliably recognizable as a version you can also guard about people entering only the first 25 words of a new seed and then stop, because "these were always 25 words"
-
sarang
If you checksum well, it would be easier for users to differentiate anyway
-
rbrunner
*With a first word
-
sarang
Is there an advantage to having the version be a word?
-
moneromooo
Less confusing to people who might omit it since they're about to copy a word list.
-
rbrunner
I think so, yes. Gets recognized for sure as belonging to the seed
-
sarang
What about using separate words that aren't from the list?
-
sarang
Then a bad parser can't accidentially do the wrong thing
-
moneromooo
I'd set the version word to a word that's not otherwise in the words list too, for sync purposes.
-
rbrunner
Yes, definitely. To recognize it
-
sarang
(unless it's a really bad parser)
-
rbrunner
See my "I only entered 25 words, I thought those other words at the end are too much" example: You would recognize that immediately
-
rbrunner
Or you have dumb / not yet updated forms on web apps that do not yet allow new seeds
-
rbrunner
and only allow 25 words. A new seed would fail there, which is good
-
rbrunner
(the first 25 words of it, that is)
-
rbrunner
Just see our subreddit: Even with exactly ONE type of seed as of now there are regularly people who run into some kind of trouble. We have to be VERY careful changing anything here, and make it as robust as possible
-
sarang
Yeah, it should fail loudly
-
rbrunner
And I like potato seeds :)
-
sarang
It'd be funny to go in ascending alphabetical order, using words that are plants with seeds
-
moneromooo
The funny thing about having a common word for all is that you'll get some muppet going around claiming monero seeds are insecure because all seeds have this same word...
-
rbrunner
True that
-
sarang
You could always turn the tables and brute force a word such that to get the restore height, you hash it and interpret the hash result as a height
-
» sarang is not really serious...
-
rbrunner
Well, we could fake it with random version words with only the first 2 letters relevant, not recognizable as "always the same" ...
-
sarang
That looks even worse
-
sarang
"Oh no, security by obscurity!!"
-
rbrunner
Hrmpf ... only devs will ever know, honest
-
sarang
famous last words
-
rbrunner
No, it's just an idea to guard against the "muppets" that moneromooo mentioned. But maybe not too big a problem, after all.
-
rbrunner
On the other hand, every seed (possibly for years) starting with exactly the same word does look and feel a little strange
-
moneromooo
Oh, I see no need to guard against that. You can't really guard against dumb, they'll always find something dumber than you expected.
-
sarang
It's an easy enough explanation that security doesn't depend on it
-
moneromooo
I guess you can make the word "one". Then "two". etc.
-
sarang
what about "version1" "version2" etc...
-
moneromooo
Still a word, but becomes more obvious it's special.
-
sarang
Then you still have "words" that people need to paste in
-
UkoeHB_
'version1' people might think they can ignore that when copy pasting
-
rbrunner
I have a gut feeling maybe better to really go the other way, to not make it obvious for people that it's special, so they treat it with the same care as all the other words
-
rbrunner
And do not dare to drop it
-
moneromooo
Yeah, that's the dumb thing about people. "I assumed it was fine not copying that and going aginst the instructions".
-
luigi1111w
there should be some clever options
-
luigi1111w
if we think hard and long enough
-
rbrunner
So maybe 1 version word + 24 words with bits for the key + 1 restore height word + 1 checksum word = 27 words. Maybe make 2 restore height words and 2 checksum words to bump it up to 29, to make the "new" seed more obviously new and different
-
luigi1111w
I prefer to stay as short as possible
-
rbrunner
Yeah, ok, if we have the means to reliably detect and reject, after the version word introduction
-
luigi1111w
unfortunately the obvious clean solutions involve a new worldlist
-
luigi1111w
word too
-
moneromooo
Oh, one relevant observation: most metal seed backup systems can only do 24 IIRC.
-
moneromooo
So I guess you get 2 and we can play with 48 :)
-
rbrunner
Maybe introduce a function "Display metal seed backup seed"? With then only 24 words, but working
-
luigi1111w
already exists as electrum seeds I think
-
luigi1111w
deprecated
-
rbrunner
But not as extra function in our wallets I guess?
-
rbrunner
I think they continue to accept 24 word seeds however
-
luigi1111w
no but trivial
-
rbrunner
Anyway, I think we will have to support the "old" seeds forever, so no problem to offer a well-labelled function to give out the seed in "old" format for whoever may need that
-
luigi1111w
you can also generate seeds on devices that have no idea what the height is
-
luigi1111w
though you could estimate it if their clocks are accurate
-
rbrunner
Hmm, yes, this probably needs something that codes "no height"
-
rbrunner
Different from 0, so you can ask for the height for example if somebody enters such a seed
-
luigi1111w
just give them an old seed?
-
moneromooo
You can use 0, since nobody will be generating a new style seed when the chain is new. Since it's already not new.
-
rbrunner
Sorry, I don't understand. I was thinking about websites that can generate a random seed for you in any way, which no height in sight. Would be nice to be able to generate "new" seeds there
-
rbrunner
Recognizable by wallets as containing no height (and not height 0)
-
luigi1111w
if there's no height then new seeds are negative value
-
luigi1111w
extra words for nothing
-
moneromooo
Why would you need to distinguish 0 from unknown ?
-
rbrunner
I see what you mean, but wouldn't you want to push "old" seeds into obscurity as fast as you can, everywhere, to limit any possibility of confusion=
-
rbrunner
Well, on second thought, 0 is possible not a valid / not a needed restore height, so you could use that alright
-
luigi1111w
I think there should be a solution that involves only 1 extra character
-
sarang
To the Unicode standard!
-
moneromooo
:/
-
luigi1111w
sorry word
-
luigi1111w
haha
-
moneromooo
Let's ship /usr/share/words/dict
-
rbrunner
Did you already the Tari emoji seeds? Wow, that's cool and modern.
-
luigi1111w
and seemingly buggy
-
rbrunner
I am genuinely curious whether they will keep that. Somehow I doubt. Nice try, but will run into problems
-
moneromooo
It's very nice as a visual checksum thing, but I don't like it as a primary thing, it relies on assumptions.
-
rbrunner
Buggy?
-
moneromooo
Like, I need a font with thousands of shite".
-
rbrunner
You already have those on smartphones, too late
-
sarang
Are the emoji distinct enough to be able to copy down to paper?
-
sarang
And are they common enough to avoid the old "this is just an empty square on my screen" problem?
-
moneromooo
AFAIK they look different on different fonts. and since unicode has been adding any random useless shite they can think of, there's bound to be confusion.
-
rbrunner
Those are also my doubt. Together with pretty down-to-earth problems of entering them "by hand" if not available for copy and paste
-
sarang
Yeah
-
moneromooo
They'll add animated ones soon when they run out of ideas.
-
sarang
Say what you will about word-based seeds, but there's no confusion about portability between paper and typing etc.
-
moneromooo
Then *gasps* ones with sounds
-
rbrunner
But we are not really tempted to copy that, are we?
-
sarang
I hope not
-
moneromooo
Maybe scriptable ones.
-
luigi1111w
I might have some confusion with other languages :P
-
luigi1111w
non Latin anyway
-
fluffypony
rbrunner: it's a very narrow emoji list
-
fluffypony
precisely because of support issues, especially on older devices
-
fluffypony
256 emojis in total
-
rbrunner
Ah, I don't doubt that much thought and care went into this. Still I think it's easy to underestimate the sheer inertness and variability of the worldwide IT device universe. Plus if a seed goes wrong, people will be royally pissed and very vocal.
-
sarang
fluffypony: is a goal of the emoji system to be able to copy them down by hand in a way that's not ambiguous?
-
sarang
like "zebra heart smiley..." etc.
-
fluffypony
rbrunner: it's a pubkey, not a seed - it's an alternative to your address
-
fluffypony
sarang: it's too long for that to be practical, so it's more for a visual check of the address
-
sarang
Oh, I assumed this was a seed
-
sarang
Nevermind then!
-
rbrunner
Alright, my bad, now that you say I remember indeed those are addresses, and not seeds. Still interesting to see whether they will stand.
-
sarang
I do wonder about portability
-
sarang
Weekly meeting in #monero-research-lab begins at 17:00 UTC (about 15 minutes from now)
-
fluffypony
sarang: portability has been tested across tons of devices, and we've had to refine the emoji set because of issues - the current set is pretty solid
-
fluffypony
but also testnet is precisely to uncover issues with stuff like this
-
sarang
neat