Native Transactions
Last updated
Last updated
The core set of transaction capabilities within the dark pool. Ability to deposit/withdraw from the pool, split and join separate notes together and apart, and transfer ownership of them between one another.
When a user deposits assets into the Singularity, they first generate a zero-knowledge SNARK proof that forms a non-duplicatable link between a newly created, privately kept 'note' and a claim to the assets in the pool.
Traders can send anonymous and hidden transfers to each other by submitting a zero-knowledge proof to the singularity that:
invalidates an existing note owned by the trader,
creates multiple new notes with (potentially) new owners, and
proves that the sum of the new notes is equal to the original note (less fees).
After the receiver communicates their note footer and/or Note (generated from footer, with inclusion of qty + asset details), the sender signs a message with the details below and forms a proof with it that gets submitted to the smart contract allowing funds to be spent.
A typical transfer may also encompass an “internal” transfer performed by one trader. They may perform an internal transfer in order to create a degree of separation between the originating and receiving address that they control.
Because we want to divulge as little information about transactions made within the singularity as possible, the system is designed so that notes may only either be created or spent, and never amended. However, this restriction becomes cumbersome, especially when we want to deal with smaller fractions of our balances. E.g. Deposit $10 —> Send $5 privately to Bob.
To get around this restriction, we have a set of internal operations that join (combine) and split notes. That way, “spare change” notes can be formed and for instance ownership can be re-assigned to yourself.
Two traders can use the singularity to swap notes in order to settle trades that have been discovered. In the early versions of The Singularity, this will take on the form of a trustless OTC trading feature similar to Airswap where traders privately settle agreements to trade assets directly without any outside observers’ knowledge.
After finding a counter-party and negotiating the details of the swap, traders will mutually sign a message indicating that they agree to the terms of the trade:
Then either trader can use these signatures to construct a zero-knowledge proof that changes ownership of the notes. Both traders do not need to be online for this step.
Swaps are atomic, meaning that in either case where the swap happens, or not; both traders are always left whole.
The Singularity is currently exploring privately matching trades via cryptographic means.