Avatar
Bugtus
86448dded57eed414e608669215772355ec80855a09c09a7ce2180c689eb3ba6

I don't think *this* is a problem. If Alice and the Mint collude they can always unblind C_, so this isn't really a downgrade from standard cashu.

However, there is an attack where Alice just lets the Mint sign Y twice. Once with Carol's public key B_ = Y + r * F and once the standard way with B_' = Y + rG.

Now, (x, r_, C_, DLEQ) looks like a valid token to Carol even when offline. However if Alice spends her token before Carol, Carol's token will get denied because the secret x is already in the Mint's spent set.

An idea to fix this:

1. Carol generates a bunch of secrets x, blinds them (B=Y+rG), and publishes these "Blank Checks" (B_'s) somewhere. She can then go offline.

2. Alice grabs a B_, pays the Mint to sign it (C_), and sends it to Carol. Alice cannot have Y signed twice (like in the prior attack) because she doesn't know x.

3. Carol receives C_ and the DLEQ proof. She verifies the proof against her original blank checks and the Mint's public key. If one of them passes, she has cryptographic proof that C_ is the valid signature for her specific B_. Since only she holds the secret x, she knows the token is safe and unspent. She can unblind it later when she is back online.

Not sure if I'm making any mistakes or the first step defies the purpose you want to use this for. I'm pretty new to all of this myself. Would love to hear what you think!

Replying to Avatar Bugtus

nostr:npub16vzjeglr653mrmyqvu0trwaq29az753wr9th3hyrm5p63kz2zu8qzumhgd Hey, can you let me know what I did wrong? I just spent half my day writing a reply to you, so I hoped you will read it. It just took me a bit of time because I wanted to be equally respectful in my reply as you were to me. I'm sorry it took a bit longer and if that came off as rude!

nostr:npub16vzjeglr653mrmyqvu0trwaq29az753wr9th3hyrm5p63kz2zu8qzumhgd I'm just baffled at what I did wrong to get blocked after we had a pleasent exchange. Whatever it is, can you please let me know? I promise I won't bother you anymore afterwards.

Clearly I'm doing something wrong, since you and calle both ghost me, but without knowing what the issue is I can't fix it. At this point, I don't feel comfortable contacting anyone else for feedback on my draft, which is impacting my thesis and thus my entire degree.

I hope you respond. Merry Christmas to you and your family.

nostr:npub16vzjeglr653mrmyqvu0trwaq29az753wr9th3hyrm5p63kz2zu8qzumhgd Hey, can you let me know what I did wrong? I just spent half my day writing a reply to you, so I hoped you will read it. It just took me a bit of time because I wanted to be equally respectful in my reply as you were to me. I'm sorry it took a bit longer and if that came off as rude!

Although Bob is the mint

Jesus the comments on there are depressing... I guess that's what happens when you cater to the anti AI crowd. A lot of the comments sure sound bott-y though.

Hope the vibe will shift eventually, genuinly would love to see the app succeed!

Cashu tokens backed by a time lock of sats, not actual sats.

Maybe a useful spam deterrent πŸ€”

Replying to Avatar vnprc

Better beer money 🀣

Thanks nostr:npub1sezgmhk40mk5znnqse5jz4mjx40vszz45zwqnf7wyxqvdz0t8wnq9mnhp3! ❀️ You made me laugh out loud. I will spend it more wisely than the last beer money. πŸ€“

Glad it made you laugh πŸ€“ Thanks for your work on Hashpool, looks really cool!

Yeah that does in fact sound like a mistake πŸ˜‚Canned 'Krombacher' from Aldi will always remind me of my days at university so it has a special place in my heart but there sure are much better beers out there

Tell me about it... Writing my master thesis at the applied cryptography lab just because I really enjoy btc/LN/cashu might not be the way to go πŸ˜…

Hope you don't mind me asking but shouldn't NUT-12 be mandatory, because without the DLEQ proofs a mint could theoretically tag every minted token with its own private key? As far as I understand it, this could then be used to recognise the tokens once they eventually get redeemed?

I could definitely be off, just trying to understand it better. Thanks for all the great work you do, very inspiring!

Replying to Avatar calle

Hashpool is interesting for different reasons but what's incredibly cool is the ability to audit the pool's liabilities – unlike with any other Bitcoin mining pool.

Assets are easy to verify: the block reward. But how to check if the pool isn't skimming some sats off the top?

This problem is called proof of liabilities (POL). Since Hashpool issues mining rewards (or hash rate futures) as ecash, we can use Cashu's POL to verify that the pool operates honestly.

The challenge with POLs is that they work best if almost every user does the check. With normal wallets it's not that easy: users often don't open their wallets for long periods of time. Some just disappear forever etc.

With Hashpool, you can pretty much guarantee that most users will be perpetually online and this will run the POL verification automatically.

Cashu's POL relies on the idea of keyset epochs, essentially simulated bank runs that force the mint to show their hand. In a wallet system, epochs are maybe rotated every month or less.

With Hashpool, you could rotate much more frequently, maybe even for every block. This makes detecting fraudulent behaviour of the mint much more likely.

Users would be able to catch a cheating pool and prove it, allowing others to make informed decisions (to shame the operator and) to look for another pool to point their hash rate to.

Very excited to see how ecash can help improve Bitcoin β€” usually it's the other way round.

Ecash is also used in Wabisabi coinjoins due to its privacy properties which we haven't even touched on here (also improves Hashpool).

I'm sure there's more to discover along the way!

Wait, I missed that the PoL actually got implemented?? Just read through the github gist recently when I stumbled upon the StarkNut idea.