VolleyCash. Instant crypto payments

VolleyCash system is a solution to the problem of real-time (instant) transfer of cryptocurrency funds. VolleyCash system is backed by IOTA cryptocurrency, and everything below is mostly related to IOTA.

A little bit of theory

Multisignatures technique generally needs several parties to participate in spending funds. A multisignature “2-of-2” requires a transaction to be signed by two parties. For example, to spend funds from an address, Alice must sign the transaction with her half-key, and then send the result to Bob. Now, Bob must sign Alice’s data with his half-key, and send the result to IOTA network, so that it gets eventually confirmed, and funds reach the destination (say, Charlie).

Alice’s half-key alone is not enough to transfer the funds. The same is applied on Bob’s half-key.

Addresses may be multisignature ones or not. If an address is a multisignature one, then two parties are involved in spending funds from it. In a transaction, there is a source address and a destination address. All the source addresses described below are multisignature ones. All the destination addresses can be of any nature.

If an IOTA transaction conforms a set of rules, then with a 100% guarantee the network will eventually confirm it. Particularly, it is essential if the balance of the source address has enough funds to satisfy the spend. Also, IOTA is a fee-less cryptocurrency. Therefore, in order to be confirmed, IOTA transactions don’t need miners’ fee attached.

New way to use multisignatures

The innovative idea of VolleyCash is to use multisignatures in a new way. Particularly, to split multisignature keys between the server and the wallet (not between two wallets). In this way, the server cannot spend user’s funds alone. And, even the user cannot spend his funds alone (it is an important requirement, see below).

The server has half-keys for all multisignature addresses (source addresses), that are generated in cooperation with wallets. Also, the server keeps track of their balances in real-time. In most cases the server doesn’t need to look up the Tangle for the balances, because a spend is not possible without server’s signature. So, the knowledge of the balances allows the server to say if an address has enough funds to satisfy a spend request.

In order to make a spend, the wallet will initiate a new transaction and sign it with its half-key. After that, the wallet will send this semi-baked transaction to the server. The server will reject it if the source address has not enough funds for that spend. Otherwise, the server will accept it. This whole process takes 3 seconds only, because the server has all the information at hand. The decision does not involve the Tangle, IOTA network, or any sort of consensus.

arrows represent transaction body flow via network, not funds flow

But why is it so important to determine quickly if the spend is valid or not? Because in the case of a valid spend, there is a 100% guarantee that the transaction will eventually settle on the Tangle, according to “rules” (see theory section in the beginning). So, with that guarantee, the server marks funds as “transferred” right away. And both — source wallet and destination wallet — get informed about that. In short, it’s not funds that are transferred instantly. But it’s the guarantee that is transferred instantly from the server to the destination wallet. Eventually, the funds will be transferred through the network in a non-blocking manner.

The store (destination wallet) needs that guarantee to release the product. The payer (source wallet) needs that guarantee to claim the product.

VolleyCash retail use case

arrows represent transaction body flow via network, not funds flow

Malicious scenario, that VolleyCash is protected from

It is when a payer makes a spend towards the store, and then makes an additional spend (with his second wallet as the destination) from the same address. Both spends hit the network directly (they are ordinary single-signature transactions, when VolleyCash is not involved). And the network picks only one spend (the “winner”) to prevent overspend from the address. And chances that it picks a wrong spend (the one towards payer’s second wallet, not towards the store). In this case, the store has to wait until the network decides the winner before releasing the product to the payer. This “side spending” scenario causes slowness because it involves the Tangle, IOTA network, and consensus to decide the winner. VolleyCash-based payments are fast because they are checked instantly by VolleyCash server.

No long-term state, always on-chain

High security of funds

No registration. No tracking

Implementation

Temporary limitations

Feel free to give it a try at https://volleycash.com!

VolleyCash Team