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)
- 🔧 34 Issues Closed: View on GitHub
- ✅ 40 Merged PRs: View on GitHub
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 | Keraliss |
Docs | Added API examples for the Taker and Wallet. This shows demos for downstream users how to integrate the library in their apps | #582 | Keraliss |
Infrastructure | A New tracker service is added for market discovery. The makers broadcast their tor address inside the fidelity bond, which is then tracked by the tracker server. This allows the market place to be more resilient of SPOF and DOS attacks. Even if a tracker server is attacked, and new one can be quickly spawned without loss of market data. | https://github.com/citadel-tech/tracker | Wukong |
Infrastructure | A new event-loop library is created that handle efficient multi threaded io. This intends to be an in-house replacement of tokio, and can speed the maker multi-threaded process considerably. This will be integrated in the next release. | https://github.com/citadel-tech/Event-Loop | Wukong hulxv |
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
- Project overview, contribution and community: Readme
- Manuals and Demo Docs: Doc Folder
- Protocol Specifications: Spec Repo