What is it good for?The idea behind MillenniumCoin DAAE can be best understood by an imaginary example.
So let's say that Alice is surfing the web and comes to a very intriguing site...
All her life, Alice has been secretly dreaming of possessing a pair of delightfully kinky underwear... but she is deadly afraid that someone might know about her affectation. So she's scared of placing an order.
One day, a new hope dawns as Alice learns about Bitcoin and cryptocurrency,
but soon finds out that all the world can see her transactions in the blockchain!
She reads about the TOR network, but she still has some misgivings.
Being a person of common sense, Alice thinks to herself
Enter
MillenniumCoin
Decentralized Automatic Anonymous Escrow
Let's take that apart one word at a time...
A is for AnonymousMillenniumCoin makes it possible for any user to act as a delegate – a proxy or a middleman to process other user's transactions.
Transactions by delegate hide the connection between sender and recipient, and increasingly so,
when there are lot of users who act as delegates.
Anonymity likes company – Roger Dingledine, TOR Project Lead Engineer
A is also for AutomaticDelegate transactions are easy. To become a delegate you just announce to the network your willingness to use a part of your balance for delegate transactions. To send MIL by delegate you just push a button. The wallet software takes care of the rest.
E stands for EscrowWhether you are a delegate or send by delegate, your MIL is placed on escrow. That way, if for some reason either the delegate or the sender goes suddenly offline before transactions are finalized, you will always get your coins back. Automatically, without trust.
D means DecentralizedThere are no centralized processing of anonymous transactions. No bunch of devs that run the show behind the curtain of code. Everything is done by the user community. Anyone can become delegate and provide anonymity to their fellow users.
Since MillenniumCoin DAAE runs on top of TOR network, it is very very hard to know what wallet is on what machine.
Since MillenniumCoin DAAE supports delegate transactions, it is very very hard to know who is sending coins to whom.
Lastly but not least, delegates profit from providing the service to other users. With every anonymous transaction, the delegate gets a fee (currently 0.3 % of the amount transferred)
How do you use it?First off, let's see how you become a delegate. Select
Options in the wallet overview and you will see the
advertised balance settings on the main tab.
Enter the percentage of your balance that you are willing to put into service.
For example: If you have 1000 MIL, and select 30% advertised balance, then you can act as a delegate for amounts under 300 MIL. If you put another 1000 MIL into your account, and do not change your advertised balance settings, you will be able to handle transactions up to 600 MIL.
That's all that the delegate needs to do. Now let's see how to send by delegate. In the upper portion of the wallet user interface, you have "
Send by delegate" tab:
Click that and send MIL exactly like you were making ordinary transfer.
Sender can see his transaction as “Sent by delegate” with different color in the transaction list.
Likewise, the delegate see a transaction where he is a delegate as “Sent as delegate”.
As soon as the delegate transactions are finalized - that is, delegate wallet has sent MIL to the recipient, and sender wallet has sent an equal amount + fee to delegate, these transactions lose their special colors and look just like ordinary sends.
Now if something goes wrong, like delegate or sender goes offline before the transactions are finalized, sender/delegate can retrieve their coins.
If five blocks have passed and the transaction still shows up in the list as “sent by/as delegate”, doubleclick the transaction in the list. It will bring up the transaction details window with a retrieve button.
By clicking retrieve button, The MIL bound up with the unfinalized transaction has been recovered.
The retrieval process is the same for both the sender and delegate.
How does it work?Here's a short sketch about what goes under the hood. When the user sends by delegate, her wallet selects one of the delegates with sufficient advertised balance from its list of delegates that it has seen.
The wallet sends to the delegate wallet a request for transfer, which contains information about the amount transferred and recipients MIL address. The wallets exchange some magic numbers that help them to identify this delegate transaction from all the other possible transactions that may be going on at the same time.
The wallets prepare two special
escrow transactions, one returns to the sender his coins and is signed by delegate. Its purpose is to return the sender's coins to a recovery address in case the delegate does not transfer the amount to the recipient. The other escrow transaction returns coins to the delegate in case the sender does not recompense him.
So the two escrow transactions are like written contracts that are signed by the other party. The amount of MIL being transferred is bound up into these transactions.
The wallets keep scanning every new block until they see that the escrow transactions have been included into the blockchain. When delegate's wallet sees that his MIL is in the escrow, he transfers the MIL to the recipient. The delegate's wallet sends the payment transaction id to the senders wallet.
The sender's wallet scans the blockchain and when it sees that the payment transaction has been included in the blockchain, it finalizes the delegate process by sending the amount plus the delegate
fee to the delegate.
In case of retrieval, the wallet sends a retrieval transaction that satisfies the conditions in the escrow transaction and the coins are returned to the recovery address.
FAQ
Can I spend the coins that are in my advertised balance?Yes. They are simply a percentage of your total available balance at any time. They are also eligible to stake. If you have some coins in reserve (so they do not stake), they will not be included in the advertised balance.
How can I know if there are any delegates online?Use console command
listadvertisedbalancesHow does the wallet decide what delegate to use? The only criteria is that the coins in delegate's advertised balance exceed the amount being transferred. If there are more than one delegate with sufficient advertised balance, the wallet selects one of them randomly.
Can I decide what my delegate fee is?Not at the moment, no. In future releases it might be possible to set competitive fees, but now it is for all delegates 0.3% of the amount transferred.
I still don't understand how all this is supposed to work.We'll put out a whitepaper soon. Watch this space for a link.
Anything else I should be aware of before I start?This software is in early beta, so don't transfer large amounts. Backup your wallet regularly.