-
r4v3r23[m]
re: inflation bug fud - how would that look in practice? receiving extra XMR when getting a payment/change output? that would be very obvious and not "undetectable inflation". also, would those "new" outputs even be spendable?
-
UkoeHB
meeting 1hr
-
UkoeHB
r4v3r23[m]: in practice it would be semantically invalid transactions that validate at consensus, ie txs that look completely normal but don’t have a proper amount balance
-
UkoeHB
-
UkoeHB
1. greetings
-
UkoeHB
hello
-
Rucknium[m]
Hi
-
rbrunner
Hello
-
dangerousfreedom
Hello
-
kayabanerve[m]
Hello
-
UkoeHB
2. updates, what is everyone working on?
-
jberman[m]
Won’t be 100% available this meeting unfortunately, but update: submitted perfect-daemon’s PR 7760 socket connection fixes with merge conflicts resolved + some style changes more in line with the rest of the repo (see PR 8426), submitted a patch for zmq to publish txs submitted to the daemon (PR 8427), and updated openmonero for the hf
-
Rucknium[m]
Mostly doing OSPEAD work.
-
dangerousfreedom
I'm benchmarking my python code with the c++ code. Thank you for the detailed review on the website UkoeHB !
-
kayabanerve[m]
I published my new address specification, featured addresses
-
kayabanerve[m]
-
kayabanerve[m]
It's more dev, but I wanted to comment on it as it does remove the burning bug under one variant
-
dangerousfreedom
I think I will implement bp in rust too by the end of this month or next one. It will be useful to build my skills and I think it may be useful for kayabanerve too
-
ArticMine[m]
Hi
-
UkoeHB
me: started work on the last big project on my end for seraphis poc -> integrating legacy cryptonote outputs into the main transaction type so they can be spent alongside normal seraphis enotes (instead of two tx types there will be just one, and the cryptonote inputs will be selected from the full range 2014-202x so if/when seraphis goes live there will be ONLY two tx types being created [main tx and coinbase])
-
Rucknium[m]
UkoeHB: But the fact that an input is an old cryptonote output would be apparent to observers of the blockchain, correct? Can't mix two output types in the same ring, right?
-
UkoeHB
correct
-
UkoeHB
there would be seraphis inputs and legacy inputs
-
rbrunner
That will go all the way back to outputs from 2014?
-
UkoeHB
yes, you can use the technique that's currently used with coinbase outputs to spend the cleartext amount outputs
-
UkoeHB
-
rbrunner
Reassuring
-
Rucknium[m]
The MAGIC Monero Fund is considering targeted outreach to external researchers to apply for research grants. If you have any in mind, let us know. We would be targeting people who could make a practical contribution to the protocol.
-
UkoeHB
3. discussion, we can move on from updates :)
-
rbrunner
I was wondering where BP++ stand, not in connection to Monero, but in general as a new cryptographical/mathematical construct. It that "trustworthy" already, or does that need audits / reviews?
-
Rucknium[m]
AFAIK, BP++ is not peer reviewed yet and was written by a single person.
-
rbrunner
Ah, yes, "peer review" was the word I was looking for
-
UkoeHB
Rucknium[m]: the main research areas it would be nice to have are in zk circuits for 5th-gen membership proofs and in formalizing current ad hoc algorithms (and adding security modeling/proofs)
-
Rucknium[m]
-
rbrunner
So I get no mad rush yet to implement them
-
Rucknium[m]
Maybe coming up with a list of Monero's algorithms and dividing them into formalized and not-yet-formalized would be a good first step.
-
Rucknium[m]
So that researchers would have a good idea about where to look for improvements
-
Rucknium[m]
One of the questions in my mind for "zk circuits for 5th-gen membership proofs" is the assumptions that we would like to rely on. For example, Zcash's protocol has newer and less-tested assumptions. Ideally we would want researchers to develop membership proofs with global anonymity sets that rely only on old battle-tested cryptographic assumptions, correct?
-
UkoeHB
Today I want to explain/discuss some of the next steps for seraphis after I am done with my stuff.
-
UkoeHB
My remaining todo: integrate cryptonote inputs (possibly including a new default output scanning workflow for legacy outputs), add coinbase tx type.
-
UkoeHB
Todos after that (not me): investigate/implement the wallet-side features of Jamtis (RIDs, Polyseed, address authentication), build wallets that use the seraphis library interface for building/handling txs and enotes (full wallet, view-only wallet, multisig full wallet, payment validator), integrate seraphis into the daemon/ledger, ... idk what else.
-
Rucknium[m]
I don't want to instigate cutting-edge research that will be "too" cutting-edge for us to use.
-
UkoeHB
Rucknium[m]: yes the more robust the better (no trusted setup is a requirement)
-
UkoeHB
jberman[m]: has said he wants to work on seraphis/jamtis next steps, it would be nice if anyone else interested could start raising their hands (and start looking at the code to get an understanding how it works)
-
Rucknium[m]
How do we get the cryptography in Seraphis to be peer-reviewed?
-
rbrunner
"anyone else interested could start raising their hands" Well, here :) Just not yet sure when, how and how much.
-
UkoeHB
well that is a non-implementation todo of mine -> update the paper more and try to get more cryptographer eyes/contributions on it
-
dangerousfreedom
rbrunner: I'm definitely interested in contributing for real. I'm just not finished yet on building my skills and understanding. In two months I believe I will be able to start contributing.
-
UkoeHB
I guess I didn't make a public statement about my CCS: I won't actually make a wallet proof-of-concept, since designing the API and internal caches isn't really my domain. The remaining time of my CCS will be spent finishing the core library.
-
rbrunner
dangerousfreedom: Sounds good.
-
UkoeHB
I basically way underestimated how much work was necessary to reach the point of 'write a wallet'.
-
rbrunner
I think implementation can start before we have more review / feedback for Seraphis and Jamtis themselves. Only requirement, bascically, that they don't "explode" compeletely
-
rbrunner
I mean turn out to have some un-fixable hole somewhere
-
UkoeHB
if they explode, that implies lelantus spark will probably explode as well
-
Rucknium[m]
Speaking of future plans, after OSPEAD I am thinking about researching churning best practices. From reading old GitHub issues, it seems Surae and knacc both made attempts, but did not complete the research.
-
Rucknium[m]
OSPEAD won't be the final word in research on decoy selection, of course.
-
kayabanerve[m]
UkoeHB: are we using the existing hash_to_curve or elligator2 or...?
-
UkoeHB
kayabanerve[m]: seraphis does not use hash to point except for making generators (which uses the cryptonote hash to point function)
-
kayabanerve[m]
Got it, sorry
-
UkoeHB
are there any questions/comments/other topics to discuss?
-
wernervasquez[m]
Where are the most up to date and complete specifications for jamtis and seraphis?
-
UkoeHB
-
UkoeHB
-
UkoeHB
-
UkoeHB
-
UkoeHB
the monerokon slides are 100% up to date
-
wernervasquez[m]
Thanks. I have some time coming up to put more work in on my library. Want to make sure my footing is sure.
-
jberman[m]
@UkoeHB: thoughts on getting the poc audited and paper reviewed (once both complete), by e.g. veorq? Perhaps we can start opening discussion
-
UkoeHB
no thoughts other than 'good idea'
-
r4v3r23[m]
has polyseed been look at? tevador says its production ready
-
UkoeHB
not by me
-
UkoeHB
there were some concerns raised that 16 words isn't enough entropy
-
hyc
it's only 128 bits yeah? and current seed is 256 bits
-
rbrunner
tobtoht implemented it already in Feather
-
kayabanerve[m]
If it's at least 128 bits...
-
kayabanerve[m]
*128 bits of security, that is.
-
rbrunner
They released a few days ago.
-
rbrunner
Yeah, we go from one possible wallet for each and every atom in the universe to one wallet per molecule or so ...
-
rbrunner
Or maybe grain of sand :)
-
UkoeHB
Ok I think that's the end of the meeting. Thanks for attending everyone
-
dangerousfreedom
Thank you for your work Koe!
-
rbrunner
+1
-
kayabanerve[m]
Bye everyone!
-
r4v3r23[m]
<rbrunner> "Yeah, we go from one possible..." <- how does that compare to bitcoins entropy>
-
rbrunner
Not sure, but I think to remember that Bitcoin also stands at around 128 bits of entropy
-
BusyBoredom[m]
Bitcoin's 12 word seeds are 128 bits, yeah.
-
BusyBoredom[m]
The polyseed readme claims 150 bits of entropy in the seed, which is bottlenecked by the 126 bits of security in ed25519 so it's there's no point in making it any longer as far as I understand.
-
wernervasquez[m]
Bitcoin addresses are hashed, right? Are encoded points like monero addresses more susceptible to an attack based on low entropy?
-
BusyBoredom[m]
Here's where I found the info I just regurgitated:
github.com/tevador/polyseed#secret-seed
-
rbrunner
If "attack" means just "try each possible private key" then it probably takes a bit longer if you have to hash as well before you can compare
-
rbrunner
So 10 times the remaining lifetime of the universe, and not only 5 times ...
-
rbrunner
I am a bit obsessed with all things universe, you know.
-
rbrunner
Anyway, who on Earth hacks something nowadays, even something that is almost trivial to hack. Sell the people NFTs, profit, done.
-
r4v3r23[m]
so polyseed is as secure as bitcoin's seed scheme. is there any criticism of that?
-
rbrunner
It's called "anchoring" in psychology. The current "anker" stands at 256 bits, you go lower, you get questions.
-
r4v3r23[m]
question is if going lower harms security in any tangible way, not just theoreticals. aka is 128 "good enough" for the task, which im assuming it is
-
UkoeHB
a longer seed reduces chance of a collision
-
UkoeHB
assuming ~2^40 user addresses, I believe you'd get a collision with that set in 150 - 40 = 2^110 ops
-
rbrunner
Isn't the whole question moot, like tevador seems to argue on GitHub, that if do operations on the ed25519 curve afterwards with your "entropy" you loose any bits beyond 128 anyway?
-
BusyBoredom[m]
Fun napkin math on time to break any one specific 128-bit key: If we could check keys at the same rate as the bitcoin hashrate of 165EH/s (which we can't), it'd take 2^128/(165x10^18 * 60 * 60 * 24 * 365) = 65 billion years.
-
r4v3r23[m]
BusyBoredom[m]: so polyseed is secure af
-
tevador
the rho attack can break any private key in ~2^125 steps, even if you use a 256-bit seed
-
UkoeHB
yes ~128 is the max, but you can get lower than that
-
UkoeHB
for example, if your private key was in the range [0, 2^128], then your private key only has 64 bits of security
-
r4v3r23[m]
seeds don't have uniform entropy?
-
rbrunner
What do you mean? I only have to check 2^64 values? I am afraid that's too high for me :)
-
UkoeHB
when you are hashing, you only have collision resistance equal to half the bits of the input variance
-
UkoeHB
rbrunner: you need > 90 bits to be secure iirc (or maybe 100)
-
rbrunner
Ah, ok, collision resistance, slightly different problem
-
UkoeHB
no, I am talking about two things
-
UkoeHB
"for example, if your private key was in the range [0, 2^128], then your private key only has 64 bits of security" -> this is 2^64 ops to reveal any private key
-
tevador
if you select your private key uniformly from [1, ℓ-1], you'll get the full ~126-bit strength
-
UkoeHB
"when you are hashing, you only have collision resistance equal to half the bits of the input variance" -> this is 2^{variance bits / 2} ops to find SOME collision
-
UkoeHB
if you have a specific set you want to collide with at least once, it is 2^{variance bits - collision set bits} ops
-
UkoeHB
tevador: yes, selecting uniformly at random means you won't have any DLP weakness. But if your selection variance is too low then collisions can be brute forced.
-
tevador
polyseed uses a 150-bit secret seed, so you'd need to attack ~17 million seeds simultaneously to break at least one key with 2^126 ops
-
r4v3r23[m]
tevadorcan you give a quick ELI5 explainaion for why a normal user should choose polyseed over 25 words?
-
tevador
two biggest reasons are: shorter seed, embedded wallet birthday
-
tevador
there have been many support cases that are basically "I restored my wallet from the seed and my balance is 0. Help."
-
tevador
-> because they entered the wrong restore height
-
r4v3r23[m]
and response to the lower entropy arguement?
-
r4v3r23[m]
shorter seed & restore height are major improvements
-
tevador
"lower entropy argument" is just a misunderstanding of how attacks against EC-based public keys work
-
UkoeHB
tevador: what is your safety factor (in bits)?
-
tevador
against a single seed? if the attacker knows the month when the seed was created, the work factor is 2^150
-
r4v3r23[m]
tevador: from what i (a non technical user) understood, the security between polyseeds 128 vs current seeds 256 is a non issue
-
UkoeHB
tevador: taking into account all plausible attack scenarios
-
BusyBoredom[m]
UkoeHB: I don't follow why you say a 128 bit key has only 64 bits of security. What is weakening it? If you gimme some words to search I can Google my way to understanding.
-
UkoeHB
the lowest safety factor in bits
-
UkoeHB
BusyBoredom[m]: 128 bit keys have 64 bit security according to the giant step baby step algorithm
-
tevador
assuming fewer than 17 million new seeds are generated per month, the best multitargeted attack is at least as hard as Rho (and probably much harder if the KDF is assumed to provide additional ~12 bits)
-
UkoeHB
idk what you are referring to with 'Rho'
-
tevador
Pollard's Rho attack
-
rbrunner
"giant step baby step algorithm" Huh?
-
tevador
the same attack works against hash functions
-
rbrunner
-
tevador
it breaks an N-bit ECDLP in 2^(N/2) steps
-
UkoeHB
"the same attack works against hash functions" this is ambiguous
-
tevador
rbrunner: baby step giant step is another type of attack
-
UkoeHB
hash functions have collision resistance and preimage resistance
-
tevador
UkoeHB: some article references are here in the bottom:
safecurves.cr.yp.to/rho.html
-
tevador
it's currently the fastest known method to break ECDLP
-
UkoeHB
tevador: the date only adds around 7-8 bits, so I guess that means you have 158 bits of variance total
-
UkoeHB
if it is on a per-month basis
-
tevador
yes, ~160 bits total, plus perhaps 10 additional bits from the KDF
-
UkoeHB
how do you get more bits from a KDF?
-
tevador
if you compare EC point addition to PBKDF2 with 10k iterations
-
UkoeHB
oh like a kind of PoW barrier?
-
tevador
something like that, it's the constant factor of the attack (cost per one step)
-
tevador
r4v3r23[m]: the main takeway is that the current 256-bit seed provides only 128 bits security, not 256 bits
-
UkoeHB
Ok assuming a 40-bit upper bound on collision surface, that's around 130 bits of EC-attack-equivalent cost for a collision, which leaves around 20-30 bits of security factor (which is typically what you want).
-
r4v3r23[m]
tevador: so equal to polyseed then?
-
UkoeHB
or in other words, attack cost on par with the DLP
-
tevador
r4v3r23[m]: yes
-
r4v3r23[m]
excellent. no real drawbacks then, if any. thanks for the explaination