Disclaimer: this project is still under development and not safe to use!
XCLAIM is a framework for achieving trustless and efficient cross-chain exchanges using cryptocurrency-backed assets (CbAs). XCLAIM allows to create assets which are 1:1 backed by existing cryptocurrencies, without requiring trust in a central operator. While this approach is applicable to a wide range of cryptocurrencies, we currently focus on implementing Bitcoin-backed tokens on Ethereum, i.e. XCLAIM(BTC,ETH).
XCLAIM introduces three main protocols to achieve decentralized, transparent, consistent, atomic, and censorship resistant blockchain interoperability for cryptocurrencies:
- Issue: Create Bitcoin-backed tokens on Ethereum.
- Swap: Swap Bitcoin-backed tokens on Ethereum with Ether.
- Redeem: Burn Bitcoin-backed tokens on Ethereum and receive Bitcoins in return,
The current XCLAIM prototype is compliant with the ERC20 standard. An overview of the protocols is presented below:
XCLAIM guarantees that Bitcoin-backed tokens can be redeemed for the corresponding amount of Bitcoin, or the equivalent economic value in Ethereum. Thereby, XCLAIM overcomes the limitations of centralized approaches through three primary techniques:
- Secure audit logs: Logs are constructed to record actions of all users both on Bitcoin and Ethereum.
- Transaction inclusion proofs: Chain relays are used to prove correct behavior on Bitcoin to the smart contract on Ethereum.
- Over-collateralization: Incentivize honest behavior following a proof-or-punishment approach. All involved parties must actively prove correct behaviour to the smart contract, e.g. by providing inclusion proofs for Bitcoin transactions.
Read more about XCLAIM in our paper (currently under submission).
A concise overview is coming soon. For now, please refer to the paper.
Coming soon. For now, please refer to the paper.
Make sure ganache-cli and truffle are installed as global packages. Then, install the required packages with:
npm install
Start ganache:
ganache-cli
Migrate contracts:
truffle migrate
Run tests:
truffle test
This will also re-run migration scripts.