Only one out of every ten tokens is actually used after an ICO. Most of them are only good for trading, which increases the risk of speculation with them. It can be difficult for ICO participants to evaluate the caliber and future potential of tokens because only 5% of campaigns involve projects that are already up and running. Distrust among participants in the ostensible benefits of tokens will cause their value to drop—40 to 50% of tokens are currently being traded below their the initial offering price (according to data from Bitcoin Expo).
The only way to prove a token’s utility is to not only inform its owners about the course of the development of the project in which they have invested, but also to allow them to use the token outside of exchanges as soon as possible. This is why, just a few months after its ICO, Playkey is planning to implement payment for cloud-based video game service subscriptions using tokens. Here’s how we’re doing it.
Preparing for Implementation
The main problem that has to be solved when implementing payment for any service using tokens is the anonymity of cryptocurrency. In other words, we need to find a way to identify transactions and tell one user’s transaction from another’s. There are a few different ways this can be done. We looked into two main methods:
- Identification by sender: link every Playkey account to the address of the sender—that is, the player
- Identification by recipient: make an individual address for the recipient (the service) for every transaction (there are two ways to do this: through individual addresses or via smart contract)
Which method is best?
Option 1: Identification by Sender
To use this method, the player has to perform several actions. This is what the algorithm looks like:
- The user enters their cryptowallet address in their account.
- They send a payment from the wallet to Playkey’s universal address.
- The service identifies the transaction and links a paid subscription plan.
This scenario seems simple, but when we started studying it we identified weak points whose existence could make it possible to dupe the system. The main problem is that, theoretically, any cryptowallet address can be entered in a user’s account, including addresses that don’t belong to that user. So if a hacker were to learn a user’s address before that user completes a transaction, the hacker could enter that address in their own account, and the paid subscription would go to the hacker.
It’s possible to prove that a wallet belongs to a specific user via a small test transaction. But this currently requires additional fees, which is bad for Playkey. For example: in March 2018 the fee for one transaction in bitcoin was between $1 and $2.30; and the fee for an Ethereum transaction, between $0.20 and $0.70.
A problem also arises with subscription payments through e-wallets on exchanges. One out of four people prefers to buy cryptocurrency at exchanges, and a significant portion of them probably keep their tokens in internal wallets. If they try, however, to pay for a service using one of these wallets, they won’t be able to indicate their unique address—the exchange will either send the tokens from unknown wallets or from one address for all users.
This obstacle can be overcome by withdrawing cryptocurrency to a third-party e-wallet and following the algorithm from then on, but this would require another fee. That’s why, to save the user time and money and guarantee the reliability of their payment, Playkey has rejected this option.
Option 2: Identification by Recipient
With this method, the user doesn’t need to perform any additional actions before the transaction, since all responsibility for identification rests on the service. It can be implemented using either a transitional wallet or a smart contract.
This is a temporary e-wallet to which the user must send tokens so that Playkey can collect them and store them in its cold wallet (the most reliable place to store cryptocurrency). For example, this is how transactions are made on the HitBTC exchange. The algorithm looks like this:
- The user is given a separate transitional wallet.
- The user sends tokens to this wallet, and the presence of tokens in the wallet indicates that a subscription can be distributed to the user.
- To collect the tokens from the wallet, Playkey sends Ethereum to this wallet. Here’s an example of a real transaction.
- Playkey sends the tokens from the transitional wallet to the cold wallet.
This transaction costs between $0.03 and $0.05 for the transfer and $0.02 for the fee (these costs are current for March, 2018).
This system has a drawback: the time it takes for the tokens to be delivered increases because of the extra link in the chain—the transitional wallet and the additional transfers. And this option is less secure because Playkey needs to store the private keys to all transitional wallets, which could theoretically represent a vulnerability.
This solution, which is used by Lykke (one of the most reliable exchanges), turned out to be the most beneficial and secure. It costs more than the previous options, but it guarantees the security of transactions and saves time. Here’s how a transaction works:
- Playkey generates a smart contract, gets its address, and sends it to a specific user. Here’s an example of a contract.
- The player sends tokens to the smart contract’s address.
- Under the terms of the smart contract, the tokens are sent to Playkey’s cold wallet.
- The service checks for the existence of a transaction at this address and provides a service subscription.
This transaction costs about $0.10—to determine its cost, you need to divide the price of gas (the unit of payment on the Ethereum network) by the amount of gas spent to send the tokens.
When the contract was generated, the total gas price for its creation was $14.92 (80 Gwei). But the cost of the transaction can be reduced if you reduce the gas price. Instead of 80 Gwei, it can be reduced by a factor of 40 down to 2 Gwei, and it won’t take more than half an hour to confirm the transaction (this needs to be done when the network is not under load—this is when a low gas price can be combined with a quick transaction confirmation).
In this contract, 220,267 gas was used. But the contract can be optimized, reducing the expense by a factor of four, since no more than 53,000 gas is required to send the tokens.
The Near Future
Playkey is thus leaning toward identifying transactions via smart contract and is planning to introduce the option to pay for subscriptions with tokens as soon as this spring. This means that resources that were previously being spent to process payments can now be spent on the project’s more pressing needs.
So, if players currently have to pay a fee of about 3%–7% on every credit or debit card payment ($2.00–$4.90 depending on the selected plan and the acquiring requirements), then using tokens, the fee will be 20 to 50 times less—just $0.10.
Moreover, the fee when performing a transaction in cryptocurrency will be reduced with each new step in the evolution of the market, which means that soon the switch to paying for services with tokens will be even more beneficial to both the players and the service.