Multisig usage tutorial for TOM, original version can be found here: http://tom3j5jkjl7327oc.onion/docs/multisig.html
Unfortunately there are many sellers and buyers that lost money because of markets being hacked or turned out to be scam.
MultiSig Escrow will protect you against this.
Normally the escrow is deposited on the escrow account of the market, with MultiSig Escrow the escrow is deposited on the generated MultiSig Address.
The bitcoin network enforces that the money on this address can only be redeemed with 2 signatures. The buyer, the seller and the market can sign.
So the market, the buyer nor the seller can redeem the money without any other signature. So no party including the market can steal the funds.
Multisig escrow on TOM
This is how it is done on TOM.
Step 1, Buyer does a purchase
First, like normal the buyer selects an item. Then the buyer selects ‘Multisig’ as escrow type.
The buyer also needs to provide the quantity, shipment instructions(preferable encrypted!), shipment method and a public key.
There are many ways to generate a public and private key combination. For instance www.brainwallet.org. Use uncompressed keys.
Warning Do save your private key, you need it later.
Warning Never reveal your private key before the purchase is complete.
Warning Always generate a fresh private key and don’t reuse it..
TIP Generate your keys on a system that has no internet-connection. Read here how: http://tom3j5jkjl7327oc.onion/docs/generate-keys-offline.html
When the form is filled in, the buyer clicks Purchase, the system indicates that it was successful.
Step 2, Seller accepts the order
Now the seller has to accept or reject the order within 72 hours.
The order to accept/reject is highlighted on the orders page, it has status ‘Order waiting for acceptance by seller’.
By clicking on the order # the seller can view the details of the order. On this screen the ‘Order actions’ panel is visible.
If the seller decides to reject the order then the seller can just click reject and it all ends here :-(.
If the seller decides to accepts the order then the following information needs to be provided:
- Public key (see instructions step 1)
- A bitcoin address for profits.
The order will be marked accepted after the seller clicks “Accept”. TIP The system now automatically sends a message with the Redeemscript and the multisig address, save this information, it is needed to redeem escrow funds in case of emergency.
TIP Save the contact information (a safe email address, a username of a forum etc.) of the other party to be able to contact eachother in case of emergency.
Step 3, Buyer deposits the funds
If the order is accepted the buyer has now 48 hours to send funds to the multisig-escrow address. The address and amount are mentioned in the message that the system sends.
The seller just deposits the funds to the multisig-escrow-address.
When the system detects that the funds are on the multisig-escrow-address it will change the status of the order to ‘Waiting to be sent’.
Warning Not all bitcoin-wallets are capable of sending to a multisig-address.
Step 4, Normal order flow
From now on there are 2 possibilities:
- Everything goes according plan!, the order is marked ‘Sent’ by the seller, and the item is marked received by the buyer. See step 5a.
- Something bad happens, the seller doesn’t mark the item to be sent within 48 hours or the item is not marked received by the buyer within 17 days, See step 5b.
Step 5a, Happy flow
When everything goes according plan then the buyer receives the item and marks the purchase as ‘Received’ using the purchase-actions panel.
To mark the purchase as received the buyer needs to provide his private key (WIF format). We will make a transaction that pays 97 % of the funds on the multisig-escrow-address to the seller, and 3%(-network-fee) to the market (fee) and sign it with the buyers private key and the market private key.
Step 5b, Unhappy flow
A few things can go wrong, for instance when:
- The seller did not mark the item as ‘sent’ in time.
- The buyer did not mark the item as ‘received’ in time.
- The order is too late and one of the parties starts a confilt.
If this happens, the system will ask the buyer and the seller for their private key and support will offer a solution.
Retrieve the money without the market.
In case there is any problem with the market, you can redeem the money from the MultiSig address without the market. You can redeem the escrow using the below steps.
- Determine what the unspent outputs are on the address using for instance blockchain.info or btc.blockr.io.
- Deicide on what address you want the funds to be sent.
- Install and start bitcoin-qt and open the prompt.
- Use the createrawtransaction command to create a transaction, use the unspents as inputs and the your choosen address as output.
- Use the signrawtransaction to sign the transaction with the private key of the buyer and seller.
- Broadcast the transaction with sendrawtransaction