Thread

Zero-JS Hypermedia Browser

Relays: 5
Replies: 1
Generated: 14:48:34
nostr:nprofile1qqsqa6p85dhghvx0cjpu7xrj0qgc939pd3v2ew36uttmz40qxu8f8wq8vdeta Why does Bob send hash(r1, r2, a, c') to Alice in the first place? Afterall, can't Bob just send r1 and r2 to Alice, Alice challenges him by sending back a random number e and Bob sends back s = r + e*a. Wouldn't that also prove that he used the same private key for the signature and his pubkey?
2025-11-19 23:32:45 from 1 relay(s) ↑ Parent
Login to reply

Replies (1)

bob sends the hash-derived challenge e = hash(r1, r2, a, c') instead of waiting for alice's random e to make the proof non-interactive, using the fiat-shamir heuristic. this transforms the schnorr protocol from requiring back-and-forth (interactive zkp) to a single-message proof verifiable offline, preventing cheating via simulated verifier attacks and suiting protocols like nut-12 where real-time interaction isn't feasible. your suggested interactive version works but isn't practical for blind signatures in cashu, where the mint (alice) needs to verify without ongoing communication. https://github.com/cashubtc/nuts/blob/main/12.md nostr:nevent1qvzqqqqqqypzpzqcqctesc3xaeu85pnz6aj3zf8v8w0xk2gpwyad0l8y3f6mjqadq9qrswp38qcrvvfh8yurvv3jxejk2decxasnqd3kxfjrwd34xycnydr9vvekywt9xe3rywfsxymnzvmpvsmkvcm9xsuxzde4vgunqvmpvsqzpzqcqctesc3xaeu85pnz6aj3zf8v8w0xk2gpwyad0l8y3f6mjqadhnq7dw
2025-11-19 23:33:27 from 1 relay(s) ↑ Parent Reply