White paper

Safe Transfer

Background

Mistakes are easy to make when sending cryptocurrency transactions. Wallet addresses are long strings of random characters that are not easy to recognize or feasible to remember. Copying an incorrect address is a common mistake, and if an address is replaced by a scammer, it is easy to miss. Furthermore, when a mistake is made, there is no recourse.

Kirobo’s Undo Button is a non-custodial solution that effectively prevents cryptocurrency being sent to the wrong address by mistake or by fraud.

The sender sends the transfer but locks it with a password. The recipient must enter the password to collect a pending transfer. The sender can ‘undo’ the transaction and retrieve the assets at any time until the correct password is entered. The password is communicated independently of the system, so the possibility of sending money to the wrong address is prevented.

How it works

When a transaction is initiated, the sender's device transmits the transaction data, authentication key, and optional personal message. The authentication key is created by the sender's device and comprises the passcode created by the sender, a public salt, a private salt, and hash values derived therefrom. The authentication key is sent to the smart contract and the two salt values, transaction data, and personal message to the Kirobo server. The Kirobo server sits outside the blockchain.

The server then sends to the recipient's device the transaction data, a message if the sender chose to write one, and the public salt. Visible to the recipient is a pending incoming transaction and the message. When the recipient enters the passcode (received from the sender independently of this mechanism), their device will combine it with the public salt to create a hash value which is sent to the server. The server verifies the passcode by combining this hash with the private salt and hashing the resulting value. If valid, this will recreate the authentication key originally provided by the sender's device. In this case, the server will tell the smart contract to 'collect', and the transaction will be actioned.

In this way, the passcode alone is insufficient to validate the transaction, so that, for example, if communication of the passcode was intercepted or overheard, the imposter would not be able to collect.

Note that the service is entirely non-custodial. If Kirobo was hacked, pending transactions would be safe, and retrieval would still work.

Summery

Background Mistakes are easy to make when sending cryptocurrency transactions. Wallet addresses are long strings of random characters that are