If you are able to donate and contribute to the Haven project, please click here. Thank you.
Is Haven Private?
Yes, because Haven is based on the Monero codebase it inherits all of its privacy features. Monero was chosen as it is widely considered to be the leading privacy focused cryptocurrency in the space and has a very active group of developers working on continuous improvement of the protocol.
Overview
• Ring Signatures- are used to hide the identity of the sender of a transaction
• Ring Confidential Transactions (RingCT)- are used to obscure the amount of coins in any transaction
• Stealth Addresses- are used to hide the identity of the person (address) receiving any funds
Haven’s privacy features are by default and are integral to the codebase, therefore it is not possible to accidentally make a transparent transaction.
Deep dive
Everyone has a public address, an example of which looks like this: hvxQ8WB7Dtd6g3g7FbGNdQJwZfEWAfZV1DYWXk3uBgWLPFeAYjNGH4cdGAn7VnbUZU35AqGSFrDDS9BNrfe73TVs3F423vde1D
The funds you own will not be associated with your public address, like they would with Bitcoin. This means if you tell someone your public address, they can’t see how rich you are.
When you send funds to someone’s public address, what happens is that you actually send the funds to a randomly created brand new one-time destination address. This means that the public record does not contain any mention that funds were received to the recipient’s public address.
For the same reason, the funds that you are sending were not associated with your own public address either in the public record. Therefore, when you send these funds, the public record will not show that the funds originated from your public address and will not show that the funds were sent to the recipient’s public address.
In Haven, your public address will never appear in the public record of transactions. Instead, a ‘stealth address’ is recorded in a way that only you, the recipient, can recognise the incoming funds.
When the recipient checks for funds, they need to scan the Haven blockchain (the public record of all transactions) to see if any transactions are destined for them. The recipient has a secret view key which is used to check each transaction to see if it was addressed to them. Because the recipient is the only one that knows the secret view key, only the recipient can see that funds have been sent to them.
This is why, if you launch your Haven wallet, you will see it ‘scanning’ the blockchain. This is done to check if any transactions have occurred that have you as the recipient. Note that you can give your ‘secret view key’ to others so that they can also see what funds you have received. They will only be able to view the transactions and not make any transactions on your behalf.
So far, we’ve discussed the concept of ‘unlinkability’. This means that received transactions are associated with a one-time address that is not linked to your public address. It also means that two transactions sent to your public address cannot be associated as having the same recipient.
We don’t want the sender of a transaction to notice when the recipient of the transaction then spends the funds in a new transaction. Haven solves this problem through the use of ‘ring signatures’.
Ring signatures enable ‘transaction mixing’ to occur. Transaction mixing means that when funds are sent, the sender randomly chooses several other users’ funds to also appear in the transaction as a possible source of the funds being sent. The cryptographical nature of the ring signature means that no one can tell which of the funds were really the source of the transaction – not even the person that gave the funds to the sender in the first place. A system of ‘key images’ associated with each ring signature ensures that although no one can tell the true source of the funds, it can be easily detected if the sender attempts to anonymously send their funds twice.
The number of people that are added to the list of possible senders in a transaction is often referred to as the ‘mixin’ level. Because using a larger mixin level increases the size of the transaction for the Haven network to process, there is a slightly larger fee associated with your transaction if you increase the mixin level. Note that because you may be often included as a possible source of funds every time any transaction is made on the Haven network, no one can tell if you are or are not spending any funds that they sent you. It will look like you’re very busy continuously transacting with people everywhere at all hours of the day and night, even if you’re doing nothing at all!
In addition to providing that no one can tell whom they have received funds from, an extension to the system of ring transactions has been developed known as RingCT. It hides not only the source of funds being sent, but also hides the amounts of the funds being sent from being visible on the blockchain. This is achieved by applying a mathematical function to all funds such that public observers can see that the transactions are legitimate, but only the sender and receiver can know the actual amounts. This prevents theoretical attacks through blockchain analysis that could otherwise be possible if the real amounts of transactions taking place were a matter of public record.