-
sarang
Hello all
-
sarang
Now that I have permission to post an updated version of CLSAG to IACR, I'll be doing so after a final proofreading with minor edits
-
sarang
If anyone knows how to contact the folks involved with Trezor/Ledger integration, please do in order to help coordinate CLSAG integration; this would be helpful prior to any reviews/audits that may happen
-
sarang
Heh, next research meeting is on April Fools' Day
-
Inge-
Fitting.
-
» Inge- ducks
-
sarang
moneromooo: I've reached out to trezor and ledger folks about CLSAG support
-
sarang
It's been recommended to get the device_defaut CLSAG-specific functions offloaded, which I'll do presently
-
Inge-
So me pinging cslashm right now was probably redundant.
-
sarang
I've just finished chatting with cslashm now, and emailed ph4r05
-
sarang
but thanks for reaching out as well!
-
sarang
Having uninterrupted trezor/ledger support during the next upgrade would be a huge benefit to users
-
atoc
Hi sarang
-
sarang
hello
-
atoc
What are some current projects?
-
sarang
CLSAG hardware support, CLSAG preprint, CLSAG code, suraeNoether's matching project, etc.
-
sarang
Triptych1/2 multisig support and join-type operation research
-
atoc
cool, is there still interest in the atomic swap project? I was working on it, but I ended up getting quite busy the last couple months
-
sarang
I think it's absolutely worth continuing research
-
atoc
Ok cool. I will get back to it. I still have some Python code
-
atoc
but I will probably using Rust
-
atoc
as it was something we had talked about previously.
-
atoc
How is CLSAG btw? hardware support sounds cool too
-
sarang
It's finishing up nicely
-
sarang
Getting ledger/trezor support from the start will be important
-
atoc
is XMR supported on Trezor one?
-
atoc
yet
-
dEBRUYNE
No, only the model T currently
-
zkao
-
atoc
Oh nice. I didn't realize he had a Rust lib.
-
atoc
-
zkao
i think its a good starting point forking that library
-
atoc
dEBRYUNE what will it take to get Trezor one support? Will the Trezor team need to allow support?
-
atoc
yes definitely @zkao
-
zkao
atoc: if u would be happy at hacking bullletproofs for proving that the preimage in bitcoin and monero are the same, that would be amazing
-
selsta
Trezor has to write firmware for it.
-
sarang
zkao: a hash preimage proof was used for data in the original bulletproofs paper
-
andytoshi
that hash preimage isn't really usable in general
-
andytoshi
as in, the code was really shitty and i don't remember how to use it, and the specific preimage was hardcoded by pieter and i never quite figured out how to verify it
-
sarang
I definitely wasn't suggesting directly implementing it!
-
andytoshi
but in any case there is a simpler way to prove "equivanent discrete logs" across curves like what you need for an adaptor-signature based atomic swap
-
sarang
Yeah, I was contacted about the adaptor approach using the DL equivalence method
-
andytoshi
where you do like, a bit decomposition of the value then simultaneously rangeproof in the two curves
-
sarang
Right, I wrote up a version of that
-
andytoshi
ok awesome
-
andytoshi
i knew it was floating around somewhere but idk if there is a reasonable writeup
-
sarang
-
sarang
(I had previously asked you for permission to post this)
-
sarang
I had found an early post that had some errors, and wanted another write-up
-
andytoshi
lol wow, my memory is terrible
-
andytoshi
but awesome
-
atoc
nice sarang
-
sarang
No the idea was all andytoshi
-
sarang
I just wrote it down to help me understand the notation better
-
atoc
Oh I see.
-
atoc
This looks cool.
-
atoc
The plan is still to write a Rust implementation of this:
github.com/h4sh3d/xmr-btc-atomic-swap
-
atoc
corrent?
-
sarang
It's one approach, but as andytoshi said there have been ideas for using adaptor signatures that I haven't investigated yet
-
sarang
to avoid the need for hash preimage stuff
-
atoc
I see
-
atoc
Yeah for now, I think an implementation will be good.
-
atoc
If we want to look into adaptor signatures we can discuss that too anytoshi
-
atoc
andytoshi *
-
andytoshi
yeah i'm around
-
andytoshi
i'm not familiar with the approach in that github link
-
atoc
Cool thanks. I will need to go through your ideas more in depth
-
andytoshi
oh i see, the github link involves general zkps of hash preimages etc
-
atoc
Ah I see. Yeah sarang introduced me to h4sh3d's work
-
andytoshi
if you can find these off-the-shelf then maybe you could do this
-
andytoshi
but if yuo have to implement the raw crypto then the adaptor signature approach is way simpler .... except that bitcoin uses ECDSA
-
atoc
yeah we still need an idea of the zkp portion
-
andytoshi
which makes everything harder
-
atoc
what is ECDSA?
-
andytoshi
it's still possible to do using a schnorr multisig on the monero side, and OP_CHECKMULTISIG on the bitcoin side
-
andytoshi
but it's a bit ugly and i haven't written it out anywhere
-
sarang
elliptic curve DSA sigs
-
zkao
andytoshi: can u elaborate a bit on the "bit decomposition of the value then simultaneously rangeproof in the two curves" or is this on sarang's writeup?
-
sarang
It's a way to prove knowledge of an equivalent discrete log across two groups with different generators
-
sarang
where you don't have a meaningful map between the groups
-
atoc
sarang we probably should discuss ways of implementing the zkp portion. I actually have this in my notes that it was something we needed to figure out
-
sarang
atoc: I have an example of the DL proof in Python
-
atoc
ooh nice
-
atoc
is that linked in your writeup/
-
sarang
-
sarang
^ research only; don't use in production
-
atoc
ty
-
sarang
that example uses the prime-order subgroups of ed25519 and ed448
-
atoc
this will be really useful
-
atoc
we still have research meetings Wednesdays?
-
sarang
Wednesdays at 17:00 UTC (see channel topic)
-
sarang
You can always add comments to the agenda issues on github if you want to provide information in advance
-
sarang
or just show up and present research
-
atoc
cool
-
atoc
thanks zkao sarang and andytoshi
-
atoc
I'll be around
-
h4sh3d[m]
hi there
-
h4sh3d[m]
sarang: can you prove for secp256k1 and ed25519 that a scala `a` result into `S` (on secp) and and `E` (on ed)?
-
h4sh3d[m]
`a` must be valid for secp and ed
-
sarang
You mean prove the DL equality in zero knowledge?
-
sarang
If so, yes
-
sarang
Assuming suitable hash functions are available
-
sarang
The example I linked used edwards groups for convenience (since I had a Python library)
-
h4sh3d[m]
Reading your python, yes. So `S = aG` and `E = aH` on respective curves and generators.
-
sarang
but you can replace your favorite groups
-
sarang
Right. Given group elements `S` and `E`, you can prove that the prover knows `a` such that (for fixed generators) `aG = S` and `aH = E`
-
sarang
Where `G` generates the `S`-group and `H` generates the `E`-group
-
h4sh3d[m]
Ok, then I think we can use this for the swap
-
sarang
This also assumes a proper restriction on the limit of `a` (since the groups are not assumed to have equal order)
-
sarang
So you need `a < min(|<G>|,|<H>|)`
-
h4sh3d[m]
In the swap protocol I use hash preimage to "sell" half of a private key (on ed25519), with your DL proof we can link the bitcoin address and the monero one, so the preimage is "prooved" because if one cheats the bitcoin are lost too.
-
h4sh3d[m]
(don't know if it's clear)
-
zkao
h4sh3d: yep, thats how they do it in grin as well, but there the btc and grin use the same curve secp256k1
-
zkao
so they dont need the DL equality
-
h4sh3d[m]
In the protocol we have (for each participant) a secret `k^s` (monero private spend half key) and a distinct `b` (bitcoin private key), if they are linked, with your DL proof, there is no more need for the general zkp
-
sarang
nice
-
sarang
!
-
atoc
yeah that's pretty cool
-
sarang
Do you plan to update your writeup, so it can be examined in more detail?
-
h4sh3d[m]
Will do it right now!!!
-
sarang
excellent
-
sarang
please link here when complete
-
atoc
I look forward to reading it h4sh3d
-
sarang
-
sarang
^ moneromooo
-
moneromooo
Thanks, will merge.
-
moneromooo
Doesn't compile. Missing an override for clsag_prepare, as the base class signature is pure.
-
sarang
hmm compiles for me
-
moneromooo
Ah, right, this leaves the ledger part off, fair enough. I guess cslashm will add the ledger part, and I'll merge then.
-
sarang
Yeah this just takes care of device_default
-
sarang
to get the functionality offloaded from rctSigs.cpp
-
moneromooo
OK.
-
sarang
Ah crap, this also doesn't include the prehash offloading
-
sarang
Hmm, although that can use the existing MLSAG routine
-
sarang
Nvm about that
-
sarang
Anyway, I think that commit should be sufficient to indicate what CLSAG functionality needs to be implemented for trezor/ledger integration
-
sarang
moneromooo: I assume not worth it to rename mlsag_prehash, even though it's common to CLSAG as well?
-
sarang
(this would require adjusting in ledger/trezor device files too, and perhaps somewhere in firmware...)
-
moneromooo
Rename what ?
-
moneromooo
Oh, that's the name.. Feel free to.
-
sarang
-
sarang
On one hand, renaming is good for clarity. On the other hand, needs to be changed for all devices
-
sarang
Alternative is to create an identical clsag_prehash that's used for the clsag routines
-
sarang
Unrelated... it isn't clear if this version of mlsag_prepare is actually used anywhere:
github.com/SarangNoether/monero/blo…g-device/src/device/device.hpp#L227
-
sarang
But I don't want to leave off functionality that's needed, if there's something that I am missing
-
moneromooo
Does not look used to me either.
-
h4sh3d[m]
Damn! It would work with this
eprint.iacr.org/2016/1184.pdf
-
h4sh3d[m]
But without the ability to force a key leakage in a bitcoin tx (as explain in the paper), the DL proof does not resolve everything.
-
h4sh3d[m]
It would work between ether and monero... but that's not as sexy as btc/xmr
-
atoc
h4sh3d[m] hmm interesting. Any ideas on a general zkp then?
-
h4sh3d[m]
No, not yet
-
atoc
ok, I will be thinking on this too
-
zkao
h4sh3d: what about 2 secrets, one controlled by bob the other by alice, that gets commited to in btc using hashes and in monero using adaptor signatures. so in monero two different txs (consuming the same output) one going to alice and valid if she learns secret s from bob, and one going to bob and valid if he learns secret s' from alice. depeding on the secret that is forced to be leaked in bitcoin, only one of txs
-
zkao
will become valid in monero
-
zkao
sorry errrr, tripping, that doesnt work
-
sarang
It would be so nice to get a solution that didn't require a hash-preimage-and-discrete-log proof
-
sarang
Avoiding the complexity of a SHA-256 circuit would be great
-
sarang
and especially given the relative simplicity of the cross-group discrete log equivalence proof
-
derpy_bridge
[keybase] <seddd>: Poly1305 circuit? :)
-
sarang
Avoiding circuit proofs altogether perhaps!
-
derpy_bridge
[keybase] <seddd>: Impossibru!!
-
derpy_bridge
[keybase] <seddd>: Could try sth w bulletproofs or rsa commitments if pq desired
-
sarang
Right, bulletproofs are an obvious candidate for a trustless circuit proof (up to some complexity barrier), but even so
-
sarang
As andytoshi had said, verifying the circuit would be quite the task
-
derpy_bridge
[keybase] <seddd>: Ye
-
sarang
Whereas DL equivalence is a single straightforward Schnorr-type proof
-
derpy_bridge
[keybase] <seddd>: ok, what efficient schnorr zkp are available?
-
sarang
There are many things you can do with Schnorr-type proofs
-
sarang
Depends what the goal is
-
sarang
For stuff involving hash preimages with SHA-256, seems you'd need a general circuit satisfiability proving system (which we do), as well as the circuit (which we don't)
-
derpy_bridge
[keybase] <seddd>: Efficient circuit verifiable on secp + Ed25519 is goal right?
-
sarang
The goal is a protocol that could enable safe swaps
-
sarang
The current version that's been proposed requires a proof of equality of a SHA-256 preimage and an ed22519 DL preimage
-
sarang
It does not provide such a proof
-
sarang
you must supply your own
-
sarang
If it's possible to develop such a protocol to avoid hash preimages, it's probably safer in terms of demonstrating proof correctness
-
derpy_bridge
[keybase] <seddd>: Do you recommended reading for relevant circuit design? Maybe we could start a reading list / current research state if one doesn't exist
-
sarang
TBH I don't know of any particular good resources on circuit design (versus circuit satisfiability proving system design), but would be interested to see any
-
derpy_bridge
[keybase] <seddd>: for sure, will post helpful articles/reading when I come across any
-
sarang
Please do!
-
sarang
I follow research on proving systems as much as possible, but know relatively very little about the state of the art on the particulars of circuit design
-
derpy_bridge
[keybase] <seddd>: Yeh it's above my knowledge level, y I asked for learning resources 😂 happy to go on this journey together
-
» sarang going afk for the day; see everyone tomorrow
-
zkao
can we do 3 out of 4 multisig in monero?
-
UkoeHB_
yes
-
UkoeHB_
it requires several rounds of communication though, user be warned
-
UkoeHB_
Hi, ZtM2 proofreading is extended to April 1st (this coming wednesday) since this week I reworked chapter 3 to have a less daunting concept progression. Latest draft:
pdf-archive.com/2020/03/27/zerotomo…1-1-4/zerotomoneromaster-v1-1-4.pdf