CoinJoin with Multi-signature verification

Our Scenario

You want to send 100 $ONIONs to CARL (DeepOnion address) for services rendered

You don't want this to be directly linked to YOU (DeepOnion Address) on the BlockChain

{ }

​





2-of-3 Multi-Signature Transaction and Address



The Multi-Signature Address is not an address that exists on the public BlockChain, but it is something that is used to perform the Multi-Signature Transaction.



A 2-of-3 Multi-Signature Transaction (which is the case in our example) works on the principle that you have three different (and unique) keys with which you can sign a transaction. BUT in order to approve a transaction, you'll need to use 2 of the 3 keys to perform it. That is why it is called 2-of-3 Multi-Signature Transaction. For a nice video explaining this concept, check out:



How does this apply in our case?! It is in fact very simple, we have three parties; Sender, Mixer and Guarantor so each get's a unique "KEY" with which to sign off on the transactions. 2-of-3 parties will have to agree on what has taken place for the transactions to go through. Otherwise, money will be refunded and the transaction will fail.



The 2-of-3 Multi-Signature Address works through all this as a 'temporary address' where the Multi-Signature Transactions are registered for the participants, before being transmitted to the BlockChain.



Who paid to whom?!

What is really cool about a Multi-Signature Transaction is that more than one transaction can take place at the same time and it won't be possible to see who paid what to whom (on the BlockChain). The only thing an outside observer can see is that Sender, Mixer and Guarantor took part in transactions but not who gave whom what.



Step-by-Step Walkthrough of the transaction



This is a Step-by-Step walkthrough of what happens in the transaction after the parties have agreed to participate. It is important to note that YOU will have to have twice the send amount (100 $ONIONs) + Service fee in order to perform the transaction.​ In order to understand what happens next, you must first understand what a Multi-Signature Transaction and a Multi-Signature Address is.The Multi-Signature Address is not an address that exists on the public BlockChain, but it is something that is used to perform the Multi-Signature Transaction.A 2-of-3 Multi-Signature Transaction (which is the case in our example) works on the principle that you have three different (and unique) keys with which you can sign a transaction. BUT in order to approve a transaction, you'll need to useto perform it. That is why it is called 2-of-3 Multi-Signature Transaction. For a nice video explaining this concept, check out: What is Multi-Sig Technology? How does this apply in our case?! It is in fact very simple, we have three parties; Sender, Mixer and Guarantor so each get's a unique "KEY" with which to sign off on the transactions. 2-of-3 parties will have to agree on what has taken place for the transactions to go through. Otherwise, money will be refunded and the transaction will fail.The 2-of-3 Multi-Signature Address works through all this as a 'temporary address' where the Multi-Signature Transactions are registered for the participants, before being transmitted to the BlockChain.What is really cool about a Multi-Signature Transaction is that more than one transaction can take place at the same time and it won't be possible to see who paid what to whom (on the BlockChain). The only thing an outside observer can see is that Sender, Mixer and Guarantor took part in transactions but not who gave whom what.This is a Step-by-Step walkthrough of what happens in the transaction after the parties have agreed to participate. It is important to note that YOU will have to havethe send amount (100 $ONIONs) + Service fee in order to perform the transaction.​







{ }

​

Based on the public keys of the three parties a "Multi-Sig Address" is created​ YOU send 2x100 $ONIONs + the Service fee (undetermined as of yet) to "Multi-Sig Address" (Double Send amount has to be sent, one for escrow and one for payment)​ JOHN and JULIA deposits the intended send amount (100 $ONIONs) into "Multi-Sig Address"​ JULIA creates a "Multi-Sig Transaction" which will repay the 100 $ONION 'escrow' each to herself, YOU and JOHN. Split the Service fee between herself and JOHN and also give the send amount (100 $ONIONs) to JOHN who is Mixer.​ The "Multi-Sig Transaction" is verified by YOU and JOHN that it contains the correct information​ JOHN sends the send amount of 100 $ONIONs to CARL. JOHN then shares the TX-ID of the transaction with YOU and JULIA for verification​ YOU check the TX-ID sent from JOHN to see that he has sent to the right address and with the right amount. If agreed then you sign the "Multi-Sig transaction" and ask JULIA to do the same.​ After YOU and JULIA have signed the "Multi-Sig transaction" the transactions take place and add to the BlockChain.​

There can be a situation where YOU don't agree with the TX-ID information sent by JOHN. In those cases, then JULIA will act as a mediator and either confirm or cancel the "Multi-Sig Transaction". In case of a cancellation, YOU get a full refund (Escrow + Send amount + Service fee) and escrows are paid back to JOHN and JULIA.



After a successful transaction, what will be visible on the BlockChain afterwards is:​

YOU sent +200 $ONIONs (200 + Service Fee) and received 100 $ONIONs in a multi-signature transaction, where JOHN sent 100 $ONIONs and received 200 $ONIONs + half of the Service fee, JULIA sent 100 $ONIONs and received 100 $ONIONs + other half of Service fee​

JOHN sent 100 $ONIONs to CARL​

Still worried?!

Now, this might seem like it could be traceable to you from an outside observer. BUT consider that:​

The 100 $ONIONs can be divided into 'standard' amounts of $1, 2, 4 ONIONs each​ This is not the only transactions on the BlockChain. YOU, JULIA, JOHN and CARL might at the same time be acting as Mixer/Guarantor in other transactions at the same time to other people.​

If you combine this with "Stealth Addresses" (in regards to where escrow should be paid back to and the receiving address of CARL) then I see no way of being able to trace the transaction made between CARL and YOU.

I hope this gave you a bit better understanding of what CoinJoin and Multi-Signature Transactions are and how they are planned to be used by DeepOnion.



DeepOnion:s DeepSend will guarantee the untraceability and anonymity of a Sender when performing a transaction. DeepProtocol (Stealth Addresses) will ensure the anonymity of any Receiver of such a transaction. These two features combined will become the fundamentals on which the DeepOnion platform ensures the security and anonymity of its users.​