A Rust implementation of the DART (Decentralized, Anonymous and Regulation-Friendly Tokenization) protocol for Polymesh's Confidential Assets system.
DART is a privacy-preserving protocol that allows for confidential asset transfers while still maintaining regulatory compliance. This library provides the cryptographic primitives and zero-knowledge proof systems that power the Polymesh confidential asset infrastructure.
For detailed information, please refer to the P-DART paper.
Key features:
- Zero-knowledge proofs for asset transfers
- Confidential asset accumulator with curve tree storage
- Regulatory compliance mechanisms with auditors and mediators
- Fee payment systems for confidential transactions
The complete technical specification for the Bulletproofs-based DART implementation is available:
- 📘 Online HTML Documentation - Interactive docs with rendered LaTeX math
- 📄 PDF Specification - Complete spec as a single PDF
The library is organized around several key components:
- Account management: Public and private keys for accounts and encryption
- Curve Trees: Efficient data structures for storing asset and account state commitments
- Zero-knowledge proofs: For asset transfers, minting, registration, and more
- Settlement system: For handling confidential asset transfers between parties
- Fee payment: Mechanisms for confidential fee payments
The library provides several feature flags:
std- Use Rust standard library (default)backend_bp- Enable Bulletproofs backendserde- Enable serialization/deserialization with serdesqlx- Enable SQL database integrationparallel- Enable parallel computation for improved performanceasync_tree- Enable asynchronous curve tree operations
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.