Introducing Nostringer - unlinkable ring signatures (SAG) for Nostr pubkeys. Instead of doing some Ghibli stuff I implemented a prototype of unlinkable ring signatures for Nostr. It's using Monero style Spontaneous Anonymous Group signatures (SAG). What does it enable ? Ring signatures allow multiple members of a group to sign a message without revealing which member actually signed it. I explored this after chatting with @Leo Wandersleb who wants to use this concept for WalletScrutiny. Basically his idea would be to let users write reviews as accredited wallet developers. Because of the competition between wallets it's better to not disclose who posted a review. It would be sufficient to know that it was posted from someone belonging to a group of accredited developers. Checkout the demo and repo in the links below. Live demo: Repo:

Replies (39)

The nerdsniping worked!
A₿del fgu's avatar A₿del fgu
Introducing Nostringer - unlinkable ring signatures (SAG) for Nostr pubkeys. Instead of doing some Ghibli stuff I implemented a prototype of unlinkable ring signatures for Nostr. It's using Monero style Spontaneous Anonymous Group signatures (SAG). What does it enable ? Ring signatures allow multiple members of a group to sign a message without revealing which member actually signed it. I explored this after chatting with @Leo Wandersleb who wants to use this concept for WalletScrutiny. Basically his idea would be to let users write reviews as accredited wallet developers. Because of the competition between wallets it's better to not disclose who posted a review. It would be sufficient to know that it was posted from someone belonging to a group of accredited developers. Checkout the demo and repo in the links below. Live demo: Repo:
View quoted note →
👀
A₿del fgu's avatar A₿del fgu
Introducing Nostringer - unlinkable ring signatures (SAG) for Nostr pubkeys. Instead of doing some Ghibli stuff I implemented a prototype of unlinkable ring signatures for Nostr. It's using Monero style Spontaneous Anonymous Group signatures (SAG). What does it enable ? Ring signatures allow multiple members of a group to sign a message without revealing which member actually signed it. I explored this after chatting with @Leo Wandersleb who wants to use this concept for WalletScrutiny. Basically his idea would be to let users write reviews as accredited wallet developers. Because of the competition between wallets it's better to not disclose who posted a review. It would be sufficient to know that it was posted from someone belonging to a group of accredited developers. Checkout the demo and repo in the links below. Live demo: Repo:
View quoted note →
Super Testnet's avatar
Super Testnet 9 months ago
Will you consider adding support for "linkable" ring signatures? They are required for my Emessbee protocol, and it would be a cool hackathon project to port Emessbee so that its ring signatures work on bitcoin's elliptic curve instead of Ed25519
Hey. I don’t know if/when I will have time to do it myself but if someone wants to work on that and submit a PR that would be cool. It would enable interesting use cases.
It’s basically equivalent to the size of the ring. Its ring size multiplied by 32, and add 32 bytes. So if ring size is 10 it’s 342 bytes. If ring size is 100 it’s 3232 bytes.
Nostringer in Typescript was fun, but did it again in a serious language this time: nostringer-rs is born, a blazing fast unlinkable ring signature scheme, written in Rust 🦀 Try it with the cli: cargo install nostringer_cli && nostringer_cli demo View quoted note → image
zorbaR's avatar
zorbaR 9 months ago
A₿del fgu's avatar A₿del fgu
Introducing Nostringer - unlinkable ring signatures (SAG) for Nostr pubkeys. Instead of doing some Ghibli stuff I implemented a prototype of unlinkable ring signatures for Nostr. It's using Monero style Spontaneous Anonymous Group signatures (SAG). What does it enable ? Ring signatures allow multiple members of a group to sign a message without revealing which member actually signed it. I explored this after chatting with @Leo Wandersleb who wants to use this concept for WalletScrutiny. Basically his idea would be to let users write reviews as accredited wallet developers. Because of the competition between wallets it's better to not disclose who posted a review. It would be sufficient to know that it was posted from someone belonging to a group of accredited developers. Checkout the demo and repo in the links below. Live demo: Repo:
View quoted note →
waxwing's avatar
waxwing 9 months ago
Thanks, this is a cool project! I left an Issue on the repo, but it's a technical point so leaving that aside for now - btw you write "suitable for anonymous voting" under SAG but that application requires linkability (otherwise repeated votes etc.). On the other hand, a distinction that I think *is* very interesting but won't occur to people immediately is, the difference between plain vanilla LSAG and Back-LSAG: with the latter, the key image is fixed for ever, for a given pubkey, which means if there is a "only use once" rule applied for say 10 different signing contexts (maybe, 10 different votes), the vote between each of the 10 use cases can be linked. Obviously that's not what you usually want. But for a cryptocurrency usage, it's exactly what you want: only one key image across every ring you'd ever use this key in (to prevent *global* double spend). The non-Back LSAG is the other way: the key image depends on my key, but also on the entire keyset, so it's different every time I ring-sign over a different keyset.
============================================ #10 🎁 Developer Tools, updates and Guides ============================================ 1. Bifrost - Threshold Signing & Secure Messaging for Nostr - New Developer tool Bifrost is a core library and SDK for implementing the FROSTR protocol, a threshold signing and secure messaging system for nostr. It provides a BifrostNode that communicates over nostr, enabling nodes to collaborate in signing messages and exchanging ECDH secrets. Bifrost supports standalone deployment or integration into existing nostr clients, offering methods for creating, distributing, and managing FROST based threshold signing shares. This enhances security and decentralization by ensuring no single party controls the signing process. Developed by: @cmd Source: https://github.com/FROSTR-ORG/bifrosthttps://github.com/DocNR/POWR 2. Nostringer – Unlinkable Ring Signatures for Nostr - New Developer tool Nostringer is an easy-to-use Javascript/Typescript library providing unlinkable ring signatures (SAG) for Nostr pubkeys. It allows a signer to prove membership in a group of Nostr accounts without revealing which specific account produced the signature. Developed by: @A₿del fgu Source: View quoted note → 3. Alienos – A Self-Hosted Nostr Stack - New Developer Tool Alienos is a plugin-able and manageable Nostr stack designed for self-hosting, integrating a relay, Blossom media server and NIP-05 server. Built on Khatru, Event Store, Blob Store and Go Nostr, it supports NIP-86 for access control and offers a reliable solution for hosting and backups. Developed by: @Keyhan Alizadeh Source: 4. Frost2x - v0.1.1-alpha Frost2x is a nostr signer extension powered by FROST, enabling secure and efficient multi-party signing. This Pre-release brings key improvements, including default relays for better connectivity and a package script to easily create zip and crx files for installation. A changelog has also been added for better tracking of updates. Additionally, issues with prompt window sizing and scrolling have been fixed, improving the user experience. Developed by: @cmd Source: #dev-tools_nostr_recap
A₿del fgu's avatar A₿del fgu
What can you do with Monero style ring signatures for Nostr ? You can build an Anonymous Voting platform using Nostr identities to vote. Thanks to the Back's Linkable Spontaneous Anonymous Group, you can detect double voting without leaking identities. Check Ringable demo 👇 A client-side anonymous voting platform using Nostr-compatible ring signatures. Ringable allows users to create proposals and vote anonymously as part of a predefined group (a "ring" of public keys). It leverages the cryptographic power of bLSAG ring signatures to ensure that while votes are verified as coming from a valid member of the ring, the specific voter's identity remains hidden. The cryptographic functions are powered by the Nostringer Rust library, compiled to WebAssembly (WASM) for use in the browser. Live demo: https://ringable.starknetonbitcoin.com Ringable rep: https://github.com/AbdelStark/ringable Nostringer:
View quoted note →
Ok, I can get it to work if I use VPN but not if I don’t — which is weird bc I’m in the US. Even if I VPN into the US, it works. But not without VPN! I cannot explain it 😂