Skip to content

Releases: citadel-tech/coinswap

v0.2.0

04 Jan 14:31
b852046

Choose a tag to compare

Coinswap v0.2.0 Release Notes

This release introduces major improvements to the protocol's efficiency, security, and usability.

📋 Changelog Summary (v0.1.3 → v0.2.0)

Highlights of V0.2.0

The major highlights of this release are as follows:

  • New Taproot + Musig2 Swap Protocol. This protocol allows faster swap rounds, unified funding and contract transactions, cheaper fees for swap recovery, and better anonymity set for increased privacy.
  • Coinswap-FFI suits with language bindings into JS, Kotlin, Python, Swift, and Ruby. Allowing downstream wallets to easily integrate Coinswap in their stack.
  • Coinswap-Docker with customizable Docker Compose configuration to quickly deploy the maker server backend stack, including bitcoind (Mutinynet), Tor, and preconfigured makerd/maker-cli. This enables swap server deployment in any environment with minimal configuration.
  • Taker-App. A NodeJS Coinswap Client desktop app built with the coinswap-ffi/coinswap-js. Providing a working prototype and example of a real-life coinswap client.
  • Public Marketplace is Now Live in Mutinynet Inquisition Signet, seeded with initial community run makers.

Major Improvements in v0.2.0

Type Improvement PR(s) Contributor
Protocol Add watcher integration (deprecate tracker) and add hashlock-based recovery for swaps. #621 Wukong247
Protocol Implement private-key handover flow for Taproot swaps, enabling secure privkey transfer. #631 stark-3k
Protocol Small watcher improvements and fixes to watch_tower and related modules. #636 Wukong247
Protocol Add hashlock- and timelock-based recovery paths so Taproot swaps can be recovered via preimage or timeout. #637 stark-3k
Protocol Update watcher and offerbook logic to improve offer handling and market behavior. #679 Wukong247
Protocol Use swap ID as the connection identifier to reliably associate peers with swaps. #663 stark-3k
Protocol Optimize watcher performance and market logic (offerbook integration and faster processing). #666 Wukong247
Refactors Refactor OngoingSwap and Connection state to persist swapcoins in state storage. #627 0xEgao
Refactors Fix bug in handle_private_key_handover (formatting/docs and functional fix). #629 Godzilla-oss
Refactors Misc demo and code cleanup changes (clippy/fmt and small fixes). #643 stark-3k
Refactors Add several Taproot integration tests covering multi-maker/taker flows and aborts. #649 0xEgao
Refactors Simplify and streamline the sync API used for wallet/rpc synchronization. #665 Godzilla-oss
Test Improve test framework assertions for funding and verification to reduce flakiness. #610 NeoZ666
Test Add unit tests for watch_tower utility functions. #648 Godzilla-oss
Test Move balance verification into individual test cases to avoid shared-state flakiness. #672 0xEgao
Test Add nextest test runner and pin stable clippy in CI. #612 Godzilla-oss
Apps UI improvement: show total value of manually selected UTXOs in the virtual render. #623 NeoZ666
Apps FFI: add new methods and change interfaces from private->public where applicable. #630 NeoZ666
Apps Add an experimental --taproot flag to CLI apps to enable Taproot flows. #634 stark-3k
Apps Minor FFI updates to support the GUI application integration. #639 NeoZ666
Docs Add V2 demo documentation describing the Taproot+Musig2 protocol flow. #645 mojoX911
Infrastructure Add initial Docker image to run coinswap services for demos and testing. #600 hulxv
Infrastructure Improve Docker setup for bitcoind configuration (ports, wallet names, defaults). #640 hulxv
Infrastructure Prevent Tor auth password from being overwritten by default during setup. #641 stark-3k
Infrastructure Refactor docker-compose to use profiles, add makerd-internal, healthchecks, and env configurability. #659 hulxv

Full Changelog: v0.1.3...v0.2.0

Contributions

The project is under active beta development and open for contributions and beta testing. The Coinswap marketplace is live in Mutinynet SIgnet. Detailed instructions for connecting to Mutiny Signet can be found here. Bug fixes and feature requests are very much welcome.

Major References

v0.1.3

30 Sep 10:56
c87b3ad

Choose a tag to compare

Coinswap v0.1.3 Release Notes

This release introduces major improvements to the protocol's efficiency, security, and usability.

📋 Changelog Summary (v0.1.2 → v0.1.3)

Major Improvements in v0.1.3

Type Improvement PR(s) Contributor
Privacy Regular and Swap coin utxos and internally separated inside the wallet. Such that no transaction can be created by mixing both types of coin. Which leads to privacy leak #574 keraliss
Privacy Address grouping behavior is enforced. If the wallet detects and utxos with identical address it will always try to spend them first and together to reduce address reuse cases. This enhances swap privacy. #530 keraliss
Protocol The first sketch of Taproot Swaps are added. Showing the new protocol messages and communication flow. This marks the first step to moving towards taproot swap. This is not exposed in production yet. The full suit of taproot swap will be available at next release. #571 Stark
Protocol A new watch tower mechanism is added for taker and maker to watch for transaction spending the contract utxo. This is needed to find hash preimage from the blockchain in case of a malicious party not sharing the hash preimage in time. #568 Wukong
Protocol Sweep the incoming swaps after successful round. This allows all parties to quickly get out of the contract when a swap successfully completes. Reduces timelock related attack vectors. #531 0xEgao
Protocol Enable hashlock based spending. This is crucial for edge cases where the swap didn't complete but hash-preimage can be known from the blockchain. Allowing parties to unilaterally sweep the incoming funds via hashlock path. #515 0xEgao
Security A backup and restore mechanism is created for the wallet. The backup is encrypted and can be stored separately to recover the wallet in case of any loss. #570 bicodrex
Refactors Various system level redundant parameters have been removed and the public API for Maker and Taker is streamlined. This makes the APIs simpler for downstream users #590, #589, #587, #586 keraliss 0xEgao
Apps Added a detailed end swap report, showing various key swap parameters after the swap. This increases understanding for the user how the swap went through. #596 Neo
Apps New feature for manually selecting the UTXOs for swap and regular spend is added. This allows more control for user to choose utxos for spend/swap manually. #581 Neo
Apps A feature for interactively selecting manual UTXOs are added for the Taker app. #576 Neo
Docs More Tutorials are added demonstrating various swap behavior, parameters and edge cases #598 Godzilla
Docs Update Maker and Taker documentation to reflect the latest improvements in the APPs #588 #579 ...
Read more

v0.1.2

30 Jun 13:16
dd6a800

Choose a tag to compare

Coinswap v0.1.2 Release Notes

This release introduces major improvements to the protocol's efficiency, security, and usability.

📋 Changelog Summary (v0.1.1 → v0.1.2)

Major Improvements in v0.1.2

Type Improvements PR(s) Contributor
Decentralized DNS The first stage of decentralizing the marketplace DNS. A new Tracker system is designed to mitigate the SPOF on the DNS Server. This will be fully integrated in the following release cycle. #520 Wukong
Improved Amount Privacy A transaction building algorithm is developed to reduce amount correlation between receiver's and change UTXOs. In this new behavior, transactions are crafted with closely resembling values of the receiver's UTXOs and change UTXOs, making it harder to determine fund flows. #518 NeoZ
Wallet Encryption The wallet now has strong encryption protection at creation, allowing better security of the private materials on the disk. #507 bicodrex
Fee Estimation A fee estimation module is added that can estimate live fee rate, fetched from multiple independent sources. #498 Theives
Efficient Offer Downloads Takers are now smarter about downloading offers. Offer download is triggered for makers whose offers haven't been fetched recently. #493 NeoZ
Live Market A live market display mechanism is added, allowing anyone to check the current status of the Coinswap market without running any app. This display is also publicly hosted. Link in the readme. #521 Stark
Integrated Spend API A uniform spend API has been developed and used for all forms of spending. This streamlines the code complexity of transaction building and removes redundant code. #456 NeoZ
Using Fee Rate All hardcoded total fees are removed from the codebase, and proper fee rate handling is added. #519 keraliss
Address Grouping The coin selection algorithm is improved to group all address reuses together. Address reuse can happen accidentally, and the new algorithm will ensure they are always spent together. #514 keraliss
Custom Signet The Coinswap default network is changed from testnet4 to custom signet. This makes usage and demo of the software smoother and more efficient. The custom signet uses a 2-minute block interval. #474 Stark

Contributions

The project is under active beta development and open for contributions and beta testing. The Coinswap marketplace is live in Custom Signet. Detailed instructions for connecting to our custom signet can be found here. Bug fixes and feature requests are very much welcome.

Major References

v0.1.1

05 Apr 17:33
9c2ee0b

Choose a tag to compare

Coinswap v0.1.1 Release Notes

This release introduces major improvements to the protocol's efficiency, security, and usability.

📋 Changelog Summary (v0.1.0 → v0.1.1)

Major Improvements in v0.1.1

Core Protocol & Performance Improvements

Type Improvements PR(s) Contributor
UTXO Management A major source of latency due to frequent Core RPC calls have been removed by having custom in-memory UTXO indexes. These maps are also persisted in the disk, reducing wallet sync time. #417 ab-oggm
Coin Selection State of art coin-selection algorithms, similar to Bitcoin Core, is integrated, making various kind of tx creation more efficient. #426 NeoZ
Fidelity Management Fidelity bond management tasks, like bond expiry checks, redemtion, recreation, is now automated in the maker servers. Reducing user responsibilities of managing Fidelity Bonds. #424, #448 KnowWhoami
Taker Liveness A new message WaitingFundingConfirmation have been introduced to mainatin swap connections between Takers and Makers to handle variable block confirmation delay #380 MojoX911

User Experience & Compatibility

Type Improvements PR(s) Contributor
Compatibility The crate and the apps are now fully compatible with Mac! #400 Wukong
Tor Tor operation is streamlined providing faster and more resilient tor connections. Tor addresses are now deterministically linked with the wallet seed, ensuring constant onion address across system reboots. #400, #453 Wukong
UI/UX Improved display of various user facing structures like, balances, utxos, offer data, fidelity bonds and overall improvements in system logs. Making the apps more fun to play with. The coinswap logs now more clearly shows the swap process as it happens. #387, #389, #366, #385, #463 Levi0804, KnowWhoami, MojoX911
API Design Streamlined various transaction creation routines to use a single common API. Reducing technical debts and removing redundant code. #418 Vanshul
Protocol Spec Documentation Details how CoinSwap breaks the transaction graph and improves privacy through routed swaps and amount splitting. Includes diagrams for clarity. #17 Rishkwal

Contributions

The Project is under active beta development and open for contributions and beta testing. The Coinswap market place is live in testnet4. Bug fixes and feature requests are very much welcome.

Major References

v0.1.0

09 Jan 14:11
84862cf

Choose a tag to compare

🎉 Coinswap v0.1.0 - First Public Beta Release! 🎉

We’re thrilled to announce the first public beta release of Coinswap: a decentralized, Sybil-resistant protocol for trustless Bitcoin UTXO swaps.

With v0.1.0, Coinswap is now live on Testnet4.

This release marks a significant milestone, introducing a fully functional implementation of the protocol along with essential tools and documentation for developers, testers, and early adopters.


🌟 Highlights of v0.1.0

1. Complete Protocol Specification

  • The full Coinswap protocol has been formalized and documented in detail.
  • Explore the Coinswap Protocol Specification to understand how it ensures decentralized, private, and censorship-resistant swaps.

2. Functional Test Coverage

  • A robust set of functional tests has been introduced to simulate swap scenarios and ensure protocol correctness.
  • Dive into the tests and explore various swap situations: Functional Tests.

3. Modular Protocol Design

  • All protocol components have been modularized for flexibility, extensibility, and easier integration into other Bitcoin applications. Check the src.

4. Command-Line Applications