What is CoinJoin?
CoinJoin is a privacy-enhancing technique used in cryptocurrencies, primarily Bitcoin, to improve anonymity. It accomplishes this by combining multiple transactions into a single transaction, making it more challenging to trace the origin and destination of the funds involved.
Difference between Joinstr and Other CoinJoin Implementations
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.
How Does It Work?
Joinstr operates by creating a post-mix transaction with an event ID. Here's a simplified overview of how it works:
-
Calculate the
postmix_val
using the formula:(input_sum - fee) / 5
. -
Generate an event ID for the CoinJoin round.
-
Participants provide their UTXOs as inputs, specifying the amount and type.
-
The CoinJoin transaction is created using these inputs and the event ID.
-
The resulting transaction is broadcast to the blockchain.
Code and Implementation Details
Joinstr is available through various interfaces:
-
__cli
: Command-line interface for advanced users. -
__web
: Web interface for a user-friendly experience. -
__mobile app
: A mobile application for on-the-go CoinJoin transactions. -
__electrum plugin
: Integration with the Electrum wallet for added convenience.
The Joinstr codebase and implementation details can be found in its repository: Joinstr on GitLab.
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.Watch a Joinstr demonstration in this video:
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.
Using Multisig and Miniscript Policies in CoinJoin
For more advanced users interested in multisig and Miniscript policies in CoinJoin, Joinstr offers two related projects:
-
munstr: munstr on GitHub
-
coinstr: coinstr on GitHub
Example transactions for these projects can be found here.
Coinjoin Using ALL|ANYONECANPAY Sighash Flag
Explore a proof-of-concept (PoC) for Coinjoin using the ALL|ANYONECANPAY Sighash flag here.
Acknowledgments
We extend our gratitude to the following individuals and organizations for their support and contributions until now:
Stay updated on Joinstr's progress through Nostr or by using the following address:
npub1v6qjdzkwgaydgxjvlnq7vsqxlwf4h0p4j7pt8ktprajd28r82tvs54nzyr
.Joinstr represents an important step in enhancing cryptocurrency privacy, and its commitment to user-friendly design and decentralization makes it a noteworthy addition to the world of CoinJoin implementations.
Original article posted on BOLT🔩FUN
🙏
NOTE:
correction on the aboveelectrum/electrum/plugins
and copy the files in it