Skip to content

Instantly share code, notes, and snippets.

View arminsabouri's full-sized avatar
🎯
Focusing

Armin Sabouri arminsabouri

🎯
Focusing
View GitHub Profile
@arminsabouri
arminsabouri / statement.md
Created June 30, 2025 20:27
Wallet fingerprint statement

A core part of Bitcoin’s pseudonymity is making sure on-chain surveillance can’t infer anything about transaction participants beyond what’s already visible on chain. Wallet fingerprints violate this by leaking additional identifying details. Once an observer knows which wallet created a transaction, they can combine that with other heuristics such as, change output patterns or common input ownership to cluster addresses and glean other details. These heuristics weaken the privacy guarantees of Bitcoin and undermine existing privacy protocols.

Researchers have already identified multiple wallet fingerprints in existing wallets (0, 1). But discovering these fingerprints manually is laborious and requires deep familiarity with the wallet’s internal logic.

Our project automates the detection and storage of wallet fingerprints using a Retrieval-Augment

@arminsabouri
arminsabouri / Privacy Preserving Nostr + BIP 77.md
Last active September 7, 2025 15:33
Dev notes: Privacy Preserving Nostr + BIP-77

Privacy preserving Nostr Relays and BIP-77

Nostr is a pub/sub protocol: clients publish signed events (notes) and subscribe to other's events using filters. Relays are lean store-and-forward servers that persist and index events and push them to connected subscribers. When a client connects to a relay, it reveals its IP address, enabling metadata correlation.

How can we:

  1. Prevent a relay from learning a client’s network identity while they interact with Nostr.
  2. Enable interactive protocols to message over Nostr s.t the messages are indistinguishable from ordinary nostr noise.

Nostr Relays as OHTTP Gateways

@arminsabouri
arminsabouri / Oblivous_Nostr_Relays.md
Created October 22, 2025 16:03
Oblivous Nostr Relays

Nostr-Native Oblivious Nostr Relay (ONR)

Introduction

Nostr is a distributed publish-subscribe protocol in which clients publish signed events (“notes”) and subscribe to others’ events using filters. Relays act as lightweight store-and-forward servers that index, persist, and broadcast events to connected subscribers. However, because Nostr connections are typically made directly over WebSocket, clients expose their IP addresses to relays, allowing for potential metadata correlation.

The proposed Oblivious Nostr Relay (ONR) design introduces a privacy-preserving gateway that forwards encrypted client requests to a target relay without revealing the client’s network identity. Functionally, the ONR acts as an application-layer proxy analogous to an Oblivious HTTP (OHTTP) relay, but implemented using Nostr primitives

Protocol

On Async Common Subset -- Dev Notes

Network models

We usually define network models in terms of what the adversary can do.

  • Asynchronous network There is no bound on message delivery time. The adversary can’t destroy messages, but they can delay them for an arbitrary amount of time.