JoinStr: Decentralized CoinJoin Implementation Using Nostr

“Joinstr sets itself apart from other CoinJoin implementations through several key features:

No Centralized Coordinator: Unlike some CoinJoin implementations that rely on a central coordinator, Joinstr operates in a decentralized manner, enhancing user privacy.
Better UI/UX: Joinstr prioritizes user experience, ensuring a smoother and more intuitive interface for participants.
Simple Implementation: The implementation of Joinstr is straightforward, making it accessible to a wide range of users.
No Fidelity Bonds: Joinstr does not require participants to lock up fidelity bonds, offering more flexibility.
Anonymous Founder: The project maintains a commitment to anonymity, aligning with its privacy-centric goals.””JoinStr operates by creating a CoinJoin transaction with the coordination of the Nostr protocol, following these steps:

1. Register Output: Participants register their desired output using the Nostr protocol.
2. Create PSBT with User’s Input: JoinStr collects all registered outputs and creates a Partially Signed Bitcoin Transaction (PSBT) with the user’s input. This PSBT is signed with the Sighash All | AnyoneCanPay flag.
3. Combine PSBTs: JoinStr combines the signed PSBTs from all participants in the CoinJoin round.
4. Broadcast CoinJoin Transaction: Once a sufficient number of signed PSBTs are received (typically from five participants), JoinStr finalizes the CoinJoin transaction by combining the PSBTs. This combined transaction is then broadcast to the Bitcoin blockchain.”

Joinstr Electrum Plugin

“Joinstr also integrates seamlessly with the Electrum wallet, providing a user-friendly way to access CoinJoin functionality. An example transaction using Joinstr in Electrum can be found here.”

What’s next

“Joinstr continues to evolve, and the development team has an exciting roadmap ahead. Some items on their to-do list include:

Implementing new Tor circuits for each request to enhance privacy.Utilizing NIP 38/48 for encrypted channels.Allowing custom denominations for CoinJoin pools.Restricting the registration of different types of inputs for a round.Implementing NIP 9 to delete events after a round is completed.”

For more advanced users interested in multisig and Miniscript policies in CoinJoin, Joinstr offers two related projects:

munstr: munstr on GitHubcoinstr: coinstr on GitHub

Full Post / Archive
GitLab Repo
GitLab Repo (Electrum Plugin)
Telegram Group

Leave a Reply

Your email address will not be published. Required fields are marked *