This is the last part of the whitepaper. Sorry for the little delay as I was focusing on code testing in the last few days.
===
The last section of the whitepaper is to show you a concrete examplein SuperCoin’s real network. This is a real test with SuperSend p2p decentralized trustless system, in SuperCoin main network. All the txids and addresses are real, and you can find them in the SuperCoin’s blockchain explorer.
First, in order to use SuperSend you need to enable the Coin Control features. This can be done from menu Setting->Options the click on Display tab. Select “Display Coin Control Features” checkbox.
Now you will see in the “Send Coin” tab, the Coin Control features. You will see now the checkbox “SuperSend (anonymous send)” checkbox, at the bottom of the Coin Control.
You don’t have to use Coin Control to send coins. When you want to send coins using SuperSend, just select the checkbox. It is very simple: it is based on each send.
SuperSend will charge 1% service fee (with 0.5 SUPER minimum). This service fee is to be divided by the 2 service nodes (mixer and guarantor) equally. Also it prevents scams with many small amount transfers. The fee will be added automatically to the required sent amount from Sender’s balance.
Any clients can become service node, if they satisfy some minimum requirements. At this time the requirements are set to the following:
- Having at least 2 addresses in the client (you can create new address in “receive addresses” tab, with “new address” button.
- Having a spendable balance of 500 coins
If your client satisfies the above conditions, it will automatically announce itself as service node. If you don’t want your client to become a service node, the put the following line in the config file:
Even you don’t want to become a service node yourself (note: service nodes will receive fee at each service), you can still use SuperSend provided you have 2 or more service nodes connected.
On the lower right corner of the QT client, there is a newly added indicator for availability of the SuperSend. The SuperSend is enabled when you have connections to at least 2 of the service nodes. At this time the “S” icon displays green color. Put your mouse on top of the green “S” circle you will see how many service nodes you connected to.
If the “S” icon displays red, it indicates that you don’t have enough connections to service nodes, so in consequence the SuperSend feature is not available (but you can still use regular send. The regular send is available all the time).
If the “S” indicator displays yellow, this means a SuperSend job is currently in processing. You will have to wait it finishes before making another SuperSend. Note that the yellow status can be generated because you send something using SuperSend, or it could be that someone else send coins and your node is selected as a service node (Mixer or Guarantor). In case you perform service to others, you don’t need to do anything. The system will automatically perform the tasks. But do not exit the client when the status is in yellow. The yellow indicator will last for maximum 60-80 seconds. So it is just a transition state.
You send coins by selecting SuperSend, and enter the destination.
You will then need to confirm it. Remember, you must have enough fund in the account to use SuperSend. Due to its escrow requirements of SuperSend, the Sender needs to have at least double of the send amount plus the service fee. For example, in order to send 100 coins, the Sender must have at least 2x100 + 1 (1% service fee) = 201 coins in his account. Otherwise he has to use the normal send. The escrow is required so that all parties must follow the rules to complete the transaction.
Some people may ask why Sender needs to put in an escrow, since he will provide the send amount and service fee to the escrow anyway. The answer to that question is in that without the additional escrow, there is no reason or obligation for the Sender to sign off the distribution transaction when everything is completed, in which case there will be no guarantee that Mixer will receive his sent amount plus the service fee.
Once the coins are sent using SuperSend, you can use “getlastanontxinfo” command on the console to check its status. The following 4 pictures showed the progression of this test send example, it goes through different stages of the processing, as show in the “Status of last/current transaction”.
This picture shows that all public key info collected (before creating multisig address).
The following picture shows that multisig 2-of-3 address is created by the system, and deposits to multisig address completed.
The following diagram shows that the deposits are verified and then distribution multisig transaction is created.
The last picture shows the trustless anonymous transaction is completed and all escrow refunded. This is a view from sender’s log.
From Mixer and Guarantor side, you see slightly different logs (customized to them).
In this example, 1.2345678 coins are sent using SuperSend. The Sender will see an amount of 2.96923578 coins sent to the escrow (which is a multisig address dynamically created), 2.96923578 = 1.23456789x2 + 0.5 (service fee). The multisig address is CTfgXTYHQ1Bq725qkYBFgvPRSyPXUMvwze, the transaction there can be seen at blockchain explorer:
http://chainz.cryptoid.info/super/address.dws?CTfgXTYHQ1Bq725qkYBFgvPRSyPXUMvwze.htmSimilarly, Mixer and Garantor will deposit to the escrow. Then each party will verify the deposits. Once confirmed, the multisig 2-of-3 distribution transaction will be created:
010000005134f553030cafb8d931619765b36ee7767165f0ce5dbd616faf92eb438f86286b00a4530c0100000000ffffffff00ea3421c2e665d732f6f19f2898c91a6eb42e0c23f74fd5bfe013fc58ab283c0100000000ffffffff0f2ae1d71455ff3ab175fa6d4cb3112eff6c404e8f86a3a31f453b7b3cbda1fd0100000000ffffffff0315cd5b07000000001976a9146674fb672742529a2b95e494e3dfd080b63fd8d288acc2b03410000000001976a914269771575d9dfdecb6a969e547cf10d68849c8b988acade3d808000000001976a914a744aee8f373a1d9517352a7853a61fa3f8f9f5288ac00000000
Mixer will send the coins to the destination after verifying all the deposits. He will then sign the above multisig distribution transaction. After he signed it, the transaction cannot be posted at the network as it has only one of the two required signature.
010000005134f553030cafb8d931619765b36ee7767165f0ce5dbd616faf92eb438f86286b00a4530c01000000b500483045022100dcd329a3090ea4db4aa676bde531c95b2f6510947293c8304bb7667878dc2f5c022067065c76a8d98f96b27c75f3d08b4384ff550c2ceb59db8f283fcd2828c3361f014c6952210306a712464d0ea33dafc25d3057b593600fc63c03a1f7aa9fc74cd75701044e9d2102987a1c09aedf53fd9dbe464fb2d4a7ff12267227fb19ecea048a07b47bfd4ef0210331dd0f241ace32569d962a53d429d994200de9c8100db1a280280d61b7db588a53aeffffffff00ea3421c2e665d732f6f19f2898c91a6eb42e0c23f74fd5bfe013fc58ab283c01000000b50048304502210096a47d60fe43c10d29566dc98a8ecae9433312149257a9d8754ef3c7b2bc7ff3022063c1b806f5eeeff42ae87ba6108c3a9aec7a05abbd03fcb5e66e66c27c270978014c6952210306a712464d0ea33dafc25d3057b593600fc63c03a1f7aa9fc74cd75701044e9d2102987a1c09aedf53fd9dbe464fb2d4a7ff12267227fb19ecea048a07b47bfd4ef0210331dd0f241ace32569d962a53d429d994200de9c8100db1a280280d61b7db588a53aeffffffff0f2ae1d71455ff3ab175fa6d4cb3112eff6c404e8f86a3a31f453b7b3cbda1fd01000000b400473044022031660221c65a911b9cbce27c97d04cc0c18e2f9f7448666905115961f2eac773022074e034bd3a7ab46d6fb4bb1cd0f0c97ab0295ef7d05d46ce168ba243f2840de4014c6952210306a712464d0ea33dafc25d3057b593600fc63c03a1f7aa9fc74cd75701044e9d2102987a1c09aedf53fd9dbe464fb2d4a7ff12267227fb19ecea048a07b47bfd4ef0210331dd0f241ace32569d962a53d429d994200de9c8100db1a280280d61b7db588a53aeffffffff0315cd5b07000000001976a9146674fb672742529a2b95e494e3dfd080b63fd8d288acc2b03410000000001976a914269771575d9dfdecb6a969e547cf10d68849c8b988acade3d808000000001976a914a744aee8f373a1d9517352a7853a61fa3f8f9f5288ac00000000
Now the Sender will verify that Mixer indeed send the amount to the destination. After he is satisfied with it, he will sign the multisig distribution transaction. Note that he has interests to sign it if everything is fine, as he has a fund in the escrow that he wants back. After he signs the 2-of-3 multisig transaction, now there are 2 signatures with it, and the status of the multisig transaction will become complete.
010000005134f553030cafb8d931619765b36ee7767165f0ce5dbd616faf92eb438f86286b00a4530c01000000fdfe0000483045022100ddb8e23ffcda6bb86a8d3c104e6365a5d15acc192e4ae1c502be524f2436dfe602205704c9515e7000313d4d86a3bc5b693c066a6d641a0c2662854477c2e9c3161701483045022100dcd329a3090ea4db4aa676bde531c95b2f6510947293c8304bb7667878dc2f5c022067065c76a8d98f96b27c75f3d08b4384ff550c2ceb59db8f283fcd2828c3361f014c6952210306a712464d0ea33dafc25d3057b593600fc63c03a1f7aa9fc74cd75701044e9d2102987a1c09aedf53fd9dbe464fb2d4a7ff12267227fb19ecea048a07b47bfd4ef0210331dd0f241ace32569d962a53d429d994200de9c8100db1a280280d61b7db588a53aeffffffff00ea3421c2e665d732f6f19f2898c91a6eb42e0c23f74fd5bfe013fc58ab283c01000000fdfd00004730440220062f5dfccd8a977cde3a9dce370e3fe0bb9cc62e06ab46951ddc7f14a0b21cdc0220312fb04328b66e3561bcf1389f34db6e4172bcd4e90041283fc79fa6284bca480148304502210096a47d60fe43c10d29566dc98a8ecae9433312149257a9d8754ef3c7b2bc7ff3022063c1b806f5eeeff42ae87ba6108c3a9aec7a05abbd03fcb5e66e66c27c270978014c6952210306a712464d0ea33dafc25d3057b593600fc63c03a1f7aa9fc74cd75701044e9d2102987a1c09aedf53fd9dbe464fb2d4a7ff12267227fb19ecea048a07b47bfd4ef0210331dd0f241ace32569d962a53d429d994200de9c8100db1a280280d61b7db588a53aeffffffff0f2ae1d71455ff3ab175fa6d4cb3112eff6c404e8f86a3a31f453b7b3cbda1fd01000000fdfd0000483045022100c40af67a2043b4791288844dbfd6cea5d5a273fd4f2ce9de26160db2c595abb80220760f1b6c0cad3d447d71d1f2e86ed67899f508a1e607428884382e27867710f301473044022031660221c65a911b9cbce27c97d04cc0c18e2f9f7448666905115961f2eac773022074e034bd3a7ab46d6fb4bb1cd0f0c97ab0295ef7d05d46ce168ba243f2840de4014c6952210306a712464d0ea33dafc25d3057b593600fc63c03a1f7aa9fc74cd75701044e9d2102987a1c09aedf53fd9dbe464fb2d4a7ff12267227fb19ecea048a07b47bfd4ef0210331dd0f241ace32569d962a53d429d994200de9c8100db1a280280d61b7db588a53aeffffffff0315cd5b07000000001976a9146674fb672742529a2b95e494e3dfd080b63fd8d288acc2b03410000000001976a914269771575d9dfdecb6a969e547cf10d68849c8b988acade3d808000000001976a914a744aee8f373a1d9517352a7853a61fa3f8f9f5288ac00000000
Anyone can post it to the network and make it official. So Sender will post it after he signs it. The multisig transaction will be executed and all parties get refund, and Mixer/Guarator will also get their service fee.
Now the anonymous p2p decentralized trustless transaction completes. The source of the transaction is not traceable as in/out transactions are done at two different addresses that are not linked.
The multisig escrow system ensures that no party can cheat in the transaction; they have to follow the rules to complete the transaction. This is a complete decentralized, peer-to-peer anonymous system. It demonstrates the power of multisig technologies.
====
This completes the whitepaper, any questions/comments please post on the thread.