SatsAndSports's avatar
SatsAndSports
npub1zthq...xm56
Into bitcoin. Background in maths and software, so hoping to contribute to something open source in this space When I'm not working in the fiat mines, I'm into cycling and camping I'm trying to use White Noise (different npub), but don't have many contacts yet!
SatsAndSports's avatar
SatsAndSports 3 weeks ago
Streaming video, paid via Cashu micropayments Like Lightning, many payments can be made per second. Tiny payments - e.g. 1sat per kilobyte - can be made and verified just between the video player and video server, only contacting the Cashu mint when closing the channel The client-side logic could be put into a browser extension or any Nostr client, allowing the user a single system to manage (micro-)payment channels to Nostr relays and Blossom media servers and (@TollGate ) Wifi routers I'll post a lot more about all this in coming weeks The Rust code is exposed via WASM to the browser-based video player, and also to the Python server via PyO3, which should help the server to verify very high volumes of payments This video system uses HLS, which is smart about bandwidth management and I think it's compatible with Blossom, so I hope that makes it easy to integrate this system - with payments of course - into Blossom Current draft protocol, very much subject to change:
SatsAndSports's avatar
SatsAndSports 1 month ago
How do I reset the settings for the 'Nostr Connect' signer on Firefox? I told it to never sign for primal.net, and now I want to enable signing for it again. I thought I would be able to see a list of sites and per-site permissions in the extension's config Or maybe there is a different signer I should use? I normally use Firefox on Debian image
SatsAndSports's avatar
SatsAndSports 1 month ago
I'd like your feedback on a cryptographic idea I have for Cashu. The idea is to allow Alice to blind a message, but where she cannot unblind it. Only the final recipient of the token, Carol, can unblind. Using the Cashu protocol, where Alice is working with the mint (Bob), to prepare a token (x,C) which she will send to Carol. Let's define Carol's private key as 'f', with her public key as 'F=fG' In the standard protocol, 'r' is a random integer selected by Alice. I propose instead that Alice selects a random integer r_. Instead of adding 'r*G' to Y in the third step (see the 'blinding' step in screenshot below), I propose that she instead adds 'r_ * F', to get 'B_ = Y + r_ * F' This is equivalent to 'B_ = Y + r * G', where 'r = r_ * f'. Therefore, Alice has managed to blind it with 'r', but Alice doesn't know what 'r' is. Only Carol knows 'r', as only Carol knows 'f'. Carol is the only person that can compute 'r = r_ * f' In the standard protocol, Alice unblinds and sends (x,C) to Carol. But here, Alice cannot unblind. Alice sends r_ and C_ to Carol instead. i.e. she sends (x, r_, C_) to Carol. Carol can then reconstruct C, the 'unblinding' in the screenshot below, as 'C = C_ - r * K' , where 'r = r_ * f'. image Thoughts? While I have a background in maths, I'm very new to elliptic curves, so I'm assuming there's an attack surface that I'm missing. Motivation: The original motivation is for 'deterministic outputs' in the Spilman channel that I'm working on with the Cashu folks (@calle), but this idea might also be useful in normal Cashu usage where the receiver (Carol) is offline. An offline receiver could publish their public key and the online sender can prepare a suitable 'BlindSignature' from the mint. Carol (and only Carol) is able to unblind and Carol can validate the DLEQ proof (NUT-12) offline
SatsAndSports's avatar
SatsAndSports 1 month ago
Things that have helped me be more productive (and happy!) this last week or so: - cold shower every morning 🥶 - more Nostr, less X - first food each day is either fruit or muesli 🍏 - sport every day, usually a short swim and a little yoga
SatsAndSports's avatar
SatsAndSports 1 month ago
Had a productive couple of days rewriting the Cashu Spilman Channel code, and the corresponding NUT The proposed protocol was updated a week ago, and I've updated the code. Main coding challenge was to get the fee-handling exactly right. Code still kinda messy, but all the functionality is right. And I've been gradually adding more automated tests and tidying it up. I'll update properly another time, with more links and maybe a proper demo video, but I'm just sharing this because I should post on Nostr more often 😀 image