/utxo

Solidity UTXO implementation

Primary LanguageSolidityMIT LicenseMIT

UTXO EVM

License: MIT

UTXO Pedersen Commitment (ETH)

Solidity implementation of the Bitcoin Confidential Assets for anonymous ETH transfers. The ./contracts/pedersen package provides the implementation of UTXO with Pedersen commitment along with Back-Maxwell range proofs and Schnorr signatures under bn128 elliptic curve.

Explore back-maxwell-rangeproof on Go with descriptions, Proof and Signature generation examples.

UTXO ECDSA (ERC20)

The ./contracts/ecdsa contains Solidity implementation of UTXO for ERC20 transfers managed with ECDSA secp256k1 signature.

Common

Tool instatalion and setup

npm install -D hardhat-deploy
npx hardhat
npm install @nomiclabs/hardhat-ethers ethers @nomiclabs/hardhat-waffle ethereum-waffle chai @openzeppelin/contracts

Deploy

npx hardhat compile
npx hardhat run scripts/deploy.js --network sepolia

Vefify

npx hardhat verify --network sepolia <contract addr>

Running tests

npx hardhat test