Is the anonymous feature a mixer? Something like coinjoin?
MammothCoin license the great SuperSend technologyWhat is anonymous features?Anonymous features hide the traces of the transaction. So basically when you want to send from A to B, instead of showing in the blockchain explicitly a transaction showing A-B, it may show A->X, then Y->B, where X, Y are some random addresses (at least from a large address pool). Of course the transaction can be further obfuscated, such as you can split the sending amount to several parts, and apply the above for each part. This way, it is virtually impossible to trace the real transaction. So it protects your privacy.
Some people asked for details of our plan and implementations, here are some information on it. I'll use question/answer format to give details. Please post more questions if you have, the dev team will do our best to answer them.
Q: What is the overall plan for Mammothcoin to support anonymous features?A: Our ultimate goal is to create a peer-to-peer and completely de-centralized anonymous system. This is shown in the following diagram. Any node can become an intermediate "mixing" node, if some minimum requirements are satisfied. There is no central control parts. Everything is peer-to-peer and de-centralized.[/center]
Remember that this is a trustless system, any node may cheat if it can.
In order to achieve these goals, we divide our work into two steps:
Phase-1: To achieve anonymous wallet with a simplified, and easy to implement system.
Phase-2: To implement a fully decentralized peer-to-peer anonymous system.
What is an anonymous system? Simply put, it is a system that people can not trace clearly the transactions from the blockchain, and see where the transaction really originated and where it is terminated. This protects people's privacy.
So why we don't go directly to our end-goal? This is because from our surveys and investigations, it is very complex and difficult to achieve a completely decentralized anonymous system. The key here is the "trust". When you do A->X->B, where X is some sort of the middle "mixer" node, the send or sign or commit of A->X and X->B (or its equivalent, such as a double-signed address, mini-escrow, etc), can not completely happen simultaneously, the one side (sender or Mixer-node) that has the last act can always cheat, though sometimes the cheat does not give the cheater benefits, but it can cause damage to the other party. Therefore, a complete trustless system is more difficult to be implemented (though it is possible - we'll discuss some more below).
For this reason, in phase-1 we decided to develop a system that will depend on some sort of the trust, it is much easier to implement, and will give people the anonymous feature. This trust will be done through the dev team, or a credible mining pool.
Q: What is your Phase-1 solution?
A: Our initial anonymous solution will involve some middle trusted mixing pools. This is shown in the following diagram below:
The mixing pools will be hosted initially by dev team, and can also be hosted by credible mining pools. The anon send will be directed to these mixing pools by wallet and mixed and then send to its destination.
Basically it is done like this:
A (source) -> {Xi} (i = 1, ..., m), then {Yi} (i = 1, ..., n)->B (destination)
where {Xi} and {Yi} are randomly chosen addresses from a large pool of addresses (belonging to a mixing pool,
and these addresses are periodically refreshed, phased out, and created).
The source amount from A is split randomly into m parts (for now we choose m = 2,3 or 4 randomly in the anon version we will release for testing, but it will be a configurable parameters later), they are sent to m random addresses in randomly chosen mixing pool. The pool, on confirming the amounts received, will send the same amount in n parts to the destination (for our testnet we choose n=1, again this can be changed and configured).
The result transaction is not traceable (at least extremely difficult to trace, given the large number of addresses in the mixing pool and dynamism of the addresses).
The main part of our phase-1 solution is implemented, and we will release a version for testnet shortly.
Q: Sounds good, is mixing pool software and coin wallet client two different softwares?
A: Absolutely not. They are exactly the same. It is the MAMMOTHcoin wallet. Eventually this will be used for peer-to-peer system (in phase-2), so no reason to be different. Now we configure only a few special nodes as trusted nodes. Once we implement the trustless system in phase-2, no special config is needed.
Q: What is a trust system, and what is a trustless system?
A: A trust system will have at least one node that everyone trusts. This node will never cheat. Other nodes may or may not cheat.
A trustless system is that any nodes will cheat if they can. So to implement a trustless system it is more difficult as you have to implement mechanisms to prevent or discourage a node to cheat. If a node cheats, it will lose much more than it gains.
Q: Can you give some details on the mixing pool?
A: OK, it is basically a wallet client, with a pool feature configured as shown below.
An array of the incoming/outgoing addresses are created and refreshed dynamically, and randomly chosen for each transaction. Incoming and outgoing addresses balance their coins with predefined algorithms.