-
m-relay
<j0j0xmr:monero.social> What kind of protocols? You mean because something like Serai needs it? We shouldn't sacrifice fungibility just to not inconvenience some projects.
-
m-relay
<j0j0xmr:monero.social> And if we remove it completely and people find another way, then even better - we can patch that too.
-
m-relay
<321bob321:monero.social> I think someone floated the idea of specific fields
-
m-relay
<jeffro256:monero.social> That's the thing: we really can't from an information theory perspective. There's no way to prove that a public key isn't encoding other information besides its public key. Theres also scalars chosen in some proofs that we can't realistically enforce the value of
-
m-relay
<j0j0xmr:monero.social> But we can easily remove tx_extra right? That's an easy win.
-
m-relay
-
m-relay
<sparrov:monero.social> hey. am I correct to assume the secret tx key (that the sender generates and has in cache) and the tx public key (that is inscribed onchain and can be viewed for example with xmrchain given a tx id). are these two a pair? a standard EdDSA keypair? can I generate the tx public key using only secret tx key? with openssl or something?
-
DataHoarder
It's Ed25519 keypair
-
DataHoarder
so yeah, probably any cryptography library doing basic Curve25519 ops will work
-
DataHoarder
tx public key = ScalarBaseMult(tx private key scalar)
-
m-relay
<sparrov:monero.social> aha, curve25519. so I was thinking. could I use this to gatekeep a tor service using tor's client authorization, which is x25519. for example ask some people to send monero. then i scrape my incoming txns, authorize the tx public keys. then users could access the service using their secret tx key. or am i wilding here
-
DataHoarder
you can prove someone sent you something in a different way
-
DataHoarder
-
DataHoarder
x25519 has different semantics
-
DataHoarder
and monero uses raw curve25519 in many cases
-
m-relay
<sparrov:monero.social> that requires a communication channel to send the proof tho. couldn't you just use the keypair? are they not suppose to be bidirectional or something like that
-
DataHoarder
making transactions with custom private keys is also pain, I haven't checked if monero cli allows it
-
DataHoarder
I guess instead users could extract the private tx key from what they sent
-
m-relay
<sparrov:monero.social> right i was thinking the one-time key. not using any custom
-
DataHoarder
you can verify this yourself, anyhow
-
DataHoarder
-
DataHoarder
see "Coinbase Private Key" and linked Coinbase Transaction
-
DataHoarder
tx pubkey being 2f5416678026733e54b9c207a021efee8df4fb34ceeed5eedb975207312efa73
-
DataHoarder
tx privkey being d22bbd93e1ca55d5bd5ba91770ce4ce606b6d5ef0fac5d87a0a2d0012623d908
-
DataHoarder
see if it would pass the conversion on Tor
-
DataHoarder
-
DataHoarder
technically people could reuse their private keys right?
-
m-relay
<sparrov:monero.social> right, reuse possible but not an issue for what i have in mind. and so the conversion should theoretically work then unless some translation is needed because of different semantics for x25519. unless semantics means incompatible
-
DataHoarder
I'll give it a quick try using golang X25519 package ScalarBaseMult
pkg.go.dev/golang.org/x/crypto/curve25519#ScalarBaseMult
-
DataHoarder
both ScalarBaseMult and X25519 with Point set as Basepoint give different results
-
DataHoarder
d22bbd93e1ca55d5bd5ba91770ce4ce606b6d5ef0fac5d87a0a2d0012623d908 => 45e2f997f2fa8b2bcfdeb0d30f897779f53488992c8ea023984e761795e3e417
-
DataHoarder
-
DataHoarder
private keys are basically scalars but everything else differs ofc
-
sech1
moneromooo
github.com/monero-project/monero/bl…yptonote_basic/tx_extra.h#L111-L156 is incosistent with add_mm_merkle_root_to_tx_extra - it misses the length field before depth
-
DataHoarder
^ I was going crazy seeing difference on p2pool new merge mining code vs that old decoder/encoder
-
moneromooo
Looking at the code, it seems the length is not technically needed. It's a shame the length isn't handled by the calling code like, say, PNG.
-
DataHoarder
that was also mentioned, yep. so far it writes the length and ... checks the data was the correct length
-
sech1
IIRC Length is needed somewhere else, so a parser could skip the tag entirely
-
DataHoarder
afaik length can be a max of 32 + 9 bytes right?
-
DataHoarder
root hash + max varint size
-
DataHoarder
code indeed only reserves one byte for this