-
sarang
Commitment was recommended but never integrated AFAIK due to compatibility and communication complexity AFAIK suraeNoether
-
koe
well my notes say a message is signed with the key, which is good news, though idk where in the code that is done
-
koe
-
koe
"Now exchange addresses and compare, they must be the same."
-
koe
ok that quote isn't relevent, but nevertheless I dont see evidence of signing
-
sarang
I would still like to see a commitment phase as indicated in our preprint :D
-
koe
the whole thing might deserve an audit
-
sarang
It needs to be updated to reflect the paper, or acknowledged as not being what the paper represents
-
sarang
This isn't anything new
-
sarang
It required another round , and IIRC there was not interest for introducing this at the time
-
sarang
(again, I disagree)
-
smooth
-
koe
it seems like key cancellation isn't a problem for sub-N threshold aggregation
-
koe
though maybe some edge cases..
-
koe
I think round robin can be reasonably avoided with 4 rounds of communication (assuming secure communication channel). Round 1: signing initiator sends the message to be signed to all possible participants (or a subset no smaller than threshold). Round 2: each participant who wishes to sign signals their intent by sending their opening components to
-
koe
the signature to either the initiator or to all other participants. Round 3: once the initiator has collected enough intent-to-sign signals, he broadcasts a list of signers who are expected to participate (may be >= to threshold). Round 4: each participant makes sure they have all the opening components from list of planned signers (perhaps in
-
koe
Round 3 the initiator sent out all the signer information along with the list, to each prospective signer), and completes their signature response, sending it to either the initiator or any number of other active signers. Once any signer (or observer, of any kind) collects a full valid signature, they may publish it. Each signer must make sure that
-
koe
they only provide one response for a given opening component. If something goes wrong, repeat from Round 2.
-
koe
in Round 4, the participant bases their response on the intersect of a sorted list of all participants, and the list of real participants, and assumes the lowest-index signer with a given key will use it to sign
-
koe
although that implies broadcasting to >= threshold will result in some non-participating signers
-
koe
> not >=
-
sarang
Have you read the description in the preprint?
-
koe
not yet
-
sarang
Please do
-
koe
ok starting now lol, got through all the other documents
-
koe
you say preprint, was it submitted for peer review?
-
sarang
I believe suraeNoether had submitted for SBC
-
sarang
But that has a low acceptance rate
-
koe
i think im misdefining a round..
-
koe
a round is more like.. 'everything you can send without doing computations'
-
koe
or maybe 'the next round may not begin, until this one is over'
-
koe
it seems to boil down to giving an adversary some level of control over the challenge value; the attacker can, after collaborating with the signer on a number of signatures (or maliciously aborted signatures), use Wagner's algorithm to produce a forgery
-
koe
interesting
-
koe
since the response is only secure when both opener and challenge are randomly distributed
-
moneromooo
So no CLSAG for this fork either, apparently ?
-
sarang
suraeNoether had requested that I put it aside temporarily while he considered additional aspects of the LRS definitions
-
sarang
So you'd have to ask him
-
sarang
FWIW the security model is better than that of MLSAG, and we had agreed that no LRS model we've seen is ideal
-
moneromooo
By "put it aside", you don't mean the searching for reviewers right ? That goes on in parallel.
-
sarang
Correct
-
moneromooo
And that is the main obstacle AIUI.
-
sarang
Availability, yes
-
sarang
What's planned for the upcoming fork so far?
-
sarang
Any intent to delay, either this one or for a generally longer period (9 months or a year between them)?
-
moneromooo
CLSAG only :)
-
moneromooo
I don't know about 9 months vs 6.
-
moneromooo
If no CLSAG, then delaying seems very likely.
-
sarang
Well I will wait until suraeNoether approaches, to get his thoughts on any further changes he wishes for the security model
-
moneromooo
But good point about delaying. We don't need to have that oncoming wall for any review to meet.
-
sarang
Otherwise the draft preprint is sitting in overleaf, being lonely
-
sgp_
I think that it makes sense to delay the hardfork if no clsag. Just have a major release instead without consensus changes
-
gingeropolous
then people aren't going to upgrade.
-
sarang
Isn't that basically the same situation as minor upgrades?
-
sgp_
gingeropolous: flash a fancy feature in their face I guess. Otherwise I guess it doesn't matter if they don't since it doesn't impact consensus
-
sarang
Now in rose gold!
-
sarang
Comes with a coupon for a free beer!
-
gingeropolous
the point of the rolling hardforks was to establish and maintain a network participant behavior to ensure a healthy network
-
gingeropolous
lets just enjoy a nice, non PoW related hardfork like the good ol days
-
sgp_
this is maybe getting a little off-topic for this channel
-
gingeropolous
nah, we can sprinkle some math on this
-
sarang
How about that scalar multiplication
-
sarang
Crazy, amirite
-
sarang
moneromooo: I'll have a 10-line change to the CLSAG code, FWIW... it removes some unnecessary 0-entries from a hash input
-
sarang
It's not related to security, but currently wasted cycles
-
moneromooo
OK
-
sarang
The entries were going to be used for some index stuff that we ended up not needing, and I never removed the 0-allocation
-
sarang
Think of the savings!
-
sarang
Fractions of a microsecond!
-
gingeropolous
adds up
-
moneromooo
We could... pre divide key images by 8...
-
moneromooo
Fractions of a millisecond!
-
sarang
lol
-
sarang
I'm getting some new timing code up and running for CLSAG-with-timelocks today
-
sarang
See what that effect would be
-
sarang
We do pre-divide auxiliary images in CLSAG currently (currently = the test code)
-
sarang
but not the linking key image
-
sarang
moneromooo: small updates for CLSAG
-
sarang
-
moneromooo
Something's out of sync already. I do have that FIELD(D) in my version.
-
sarang
OK, then you must have added that
-
sarang
I can run a diff on the sign/verify if you like
-
moneromooo
The rest applies fine.
-
moneromooo
You never had it ?
-
moneromooo
Actualy... Did you write the C++ code ?
-
moneromooo
Oh, I'm confusing with bulletproofs. nvm.
-
sarang
I wrote the C++ code, but didn't include the serialization change since I was only writing for performance testing
-
sarang
I included it now because I noticed it
-
sarang
Anyway, that means the only change is to those unused hash inputs
-
moneromooo
OK, so I must have added it myself then.
-
sarang
There's no effect on overall timing since it's so minor
-
atoc
suraeNoether you here by any chance?
-
suraeNoether
what's up
-
atoc
Have you gotten a chance to look at my response to the ccs submitted? If not yet, it's fine. I wanted to discuss it with you
-
suraeNoether
ah hey
-
suraeNoether
i haven't seen your response yet, sorry, let me take a gander
-
atoc
No worries
-
suraeNoether
i hope you aren't discouraged!
-
atoc
Not at all, I wanted to make sure you saw my apology. I did not mean to put your name without your approval
-
atoc
I was meaning to run it by you, and I feel bad about it now. I have amended it so far by removing your name
-
sarang
Everyone was new here at one point; no worries
-
sarang
That's part of the GitLab process for this; getting feedback and making edits as needed
-
suraeNoether
*nod*
-
suraeNoether
sarang and i have been talking about a list of possible problems that could use tackling, he recommended a huge list of possible projects
-
atoc
Cool yeah this was my first time submitting and I was making sure I got all the steps right, one of the most important things slipped my mind lol..
-
sarang
Yeah, my list of interesting-sounding project is usually pretty long
-
atoc
Hmm cool
-
atoc
I'd like to take a look
-
sarang
I can list a few here; it's not a public list
-
suraeNoether
go for it
-
atoc
Okay yes, excited to hear
-
sarang
The DLSAG preprint mentioned the possibility of CLSAG-style key aggregation, but this was not included in the paper itself due to space and time limitations
-
sarang
and the security model for DLSAG needs updating for a future submission
-
sarang
Zero to Monero (by koe) has recent additions for which they'd like review
-
sarang
BLAKE3 was just released, and I thought it could be fun to write up a Python version for test library compatibility, just for the helluvit
-
sarang
This PR needs review, from vtnerd:
monero-project/supercop #3
-
sarang
Multi-input Triptych has soundness/proof-relation questions to be answered still
-
sarang
I'd like to see an implementation of a bulletproofs circuit proving knowledge of equality between a SHA-256 hash preimage and a DL preimage (on ed25519)
-
sarang
It would be nice to analyze the ability to include arbitrary field elements in bulletproofs using a randomness-unrolling method (there's a term for this that I'm blanking on), as well as determining applicability to Triptych, RCT3, and Omniring
-
atoc
Hmm okay this is good. Just looking at this so far. I can review ZtM and the BLAKE3 project sounds interesting.
-
suraeNoether
^ that BP circuit one would have implications for swaps between monero and bitcoin
-
sarang
I'd like to see a test implementation of Omniring, to determine if there are any algebra issues (I have found a few that are questionable)
-
sarang
etc.
-
sarang
(the list continues...)
-
suraeNoether
blake may be appealing for a few reasons, including it's tree-like structure
-
sarang
Note that I don't have a particular application in mind for BLAKE3, but it's a really cool design
-
suraeNoether
my understanding is that it allows partial verification of hashes, but that paper is not high on my priority list rn
-
sarang
that was a low-priority one, but it's so new that I haven't found many implementations
-
atoc
Tell me more about BP circuit one, that could be interesting too
-
sarang
The BP paper did some timing estimates for a SHA-256 preimage circuit
-
sarang
and someone did a writeup describing an idea for XMR-BTC swaps that requires such a zk proof
-
sarang
I'd like to see a proof-of-concept implementation of this
-
atoc
Is this higher priority than the BLAKE3 project?
-
sarang
-
sarang
It's likely more applicable
-
suraeNoether
atoc higher likelihood of seeing app... damn sarang
-
suraeNoether
type slower
-
sarang
at least more _directly_ applicable for sure
-
atoc
oh this looks cool
-
atoc
So does an initial implementation of this exist yet?
-
sarang
I looked it over a long time ago, but haven't done anything formal with it
-
atoc
or is that what you would like to see?
-
sarang
Not that I know of
-
atoc
Interesting. I think I will like this project
-
sarang
(Note: I didn't write this, obviously!)
-
sarang
So I can't speak to the safety or correctness of the writeup's proposed protocol
-
sarang
However, the preimage proof is a building block requirement
-
atoc
Ok that's fine. Yes but it would be something interesting to discuss
-
sarang
We have a bulletproofs implementation, but it's only for range proofs (not for arbitrary circuits)
-
sarang
the dalek project has a more general one in Rust that's faster and very well written
-
atoc
So a Python implementation of this is something good?
-
atoc
Oh yes I have heard of Rust
-
sarang
Well, if the protocol turns out to be feasible/safe/practical enough to warrant it
-
sarang
Doing a general circuit BP implementation in Python would be personally interesting to me, but a lot of work
-
atoc
btw - not necessarily super relevant, but are most of your research projects done in python?
-
atoc
mm I see
-
sarang
If you use the dalek libraries in Rust, you've already got a BP circuit framework done
-
sarang
I like Python for fast proof-of-concept iteration, but it's not claimed to be secure code
-
atoc
yes indeed
-
sarang
Rust provides nice guarantees, but I am not proficient enough to iterate quickly with it
-
sarang
(so don't use my Python curve library for anything except proof-of-concept stuff that's assumed to be insecure)
-
atoc
but it is great to start initial implementation as you mention, if there are libraries for a BP circuit then this is more attractive to start with
-
atoc
Does the dev team use Rust for final implementations? I assumed it was mostly Python
-
sarang
The Monero codebase is mainly in C++
-
atoc
Ah I see - makes sense
-
sarang
-
sarang
There may be other good BP libraries in other languages too
-
sarang
Oh, Benedikt Bunz had a Java library
-
sarang
Can't believe I forgot about that
-
sarang
Not sure what your language of choice is
-
atoc
This looks good - hmm I'd be interested to see that.
-
atoc
So I don't necessarily have a preference but most of my work is in C, Java, or Python
-
atoc
Rust sounds attractive because I have heard it used for other projects
-
atoc
I will look at both and see which one seems quicker just so that we can start experimenting
-
atoc
Do you use Java / Rust?
-
suraeNoether
atoc: just to clarify, if you *want* to tackle the matching code, feel free. it's still an interesting project, and the code is in a good state for someone new to mess around with. but the project overall is nearing completion, and this is why i sort of waved you away from it.
-
sarang
I have some Python curve library stuff (and BP range proof code) in my repo
-
sarang
I used Java in the past, but don't really like it
-
sarang
I'm starting to tinker more in Rust
-
atoc
I'd like to use a language that the you guys are also familiar with (incase I need you to review code)
-
atoc
suraeNoether yes I noticed that. I think what might be best is if I take on a larger project and also help where I an to complete it
-
atoc
but as you say it's near completion
-
atoc
sarang then Rust is good with me
-
atoc
I will take a look at the dalek library more
-
sarang
If you're interested, you might find this useful:
github.com/crate-crypto
-
sarang
Another contributor worked up CLSAG and MLSAG in Rust
-
sarang
using the Dalek libraries
-
atoc
Ah very cool
-
atoc
Well this is really very great. The paper already looks very interesting.
-
koe
suraeNoether in the Thring paper you use several `hash' functions, e.g. H_sign(), H_com(); these are equivalent to H_com(x) == H_n(000, x), H_sign(x) == H_n(010, x). How important is it for implementations to use those prefix tags?
-
suraeNoether
The proofs of security assume that all of them are distinct functions. I would have to examine the proofs very carefully again in order to determine how dangerous it would be to exclude the tags, but there's almost no cost to including those prefix tags, and the scheme is proven secure with them.
-
suraeNoether
if you held a gun to my head, I would say that it's probably safe to get rid of the prefixes, but that's not how we want to think about secure software development
-
koe
ok thanks I'll put that in my chapter; code base needs an upgrade too, I think (on several fronts); not sure how easy it would be to migrate older multisig wallets moneromooo
-
moneromooo
If you want to change the way keys are computed ? And define migrate.