2013-05-26 --- Jörn Franke
I will talk in this blog entry about Cryptomoney with special emphasis on how you can offer payment with Cryptomoney in your business and what you might need to consider when doing this.
Cryptomoney is produced by individuals and used for transactions involving real as well as virtual goods. It does not require a central authority for managing the creation, distribution and transactions using Cryptomoney. Particularly, it does not require a government in charge of this.
Virtual money, such as Amazon Coin, Facebook Credit or Microsoft Points, needs to be distinguished from Cryptomoney. Virtual money is under control of one company and you can only use it to buy goods from this company or companies that are certified by the company issuing the virtual money. Hence, their distribution is limited.
A Cryptocurrency is a similar to a “normal” currency, i.e. it is a “flavour” of Cryptomoney. In the following paragraphs, we will investigate the ecosystem of Cryptocurrencies including exchanges for converting Crytocurrencies into normal currencies. Afterwards, I will discuss potential business implications.
Based on my observations, Cryptomoney has the following functionality (cf. also properties of “normal” money):
I wrote three different points on purpose, because all three concepts are technically not dependent on each other. In deployment, the whole package consists only of selected technologies, so that different currencies cannot be combined. Nevertheless, it is up to you to use them in parallel.
Please note that “normal” money requires as well cryptographic mechanisms for proper transactions. Hence, I added the Cryptomoney-specific points, which do not apply to “normal” money.
In the following, I will briefly describe how these properties can be achieved using Cryptomoney.
The aforementioned property for creating Cryptomoney seems to be antimonial: If everybody should be able to create money then it is somehow strange that it should be difficult to fake money. The goal of making it difficult is to have a steady supply of new Cryptomoney in the system, where it is rather impossible that one single party can have an advantage over the other parties to create comparably more Cryptomoney than the others.
Approaches for Cryptomoney address this problem by requiring for each unit of Cryptomoney a proof-of-work/proof-of-stake, i.e. a solution to a computationally complex problem. Examples for these kinds of problems are calculating the SHA-2 hash function or the Scrypt system. Both are also used in other contexts, such as ensuring data integrity or preventing attacks to computer systems.
I assume now that Cryptomoney has been created as described before. The questions are (1) how can I use the money to buy something (2) how can I receive money and (3) how can I claim ownership of Cryptomoney.
Basically, you will need a transaction history to be able to check who has given somebody money. SWIFT is used internationally for doing this when you are acting with “normal” money, such as Euro or US-Dollar.
In the Cryptomoney world, the transaction history can be kept and shared by everyone in a peer-to-peer fashion. Once a unit of Cryptomoney is created, the author can sign it and insert it into the transaction history by referring to the latest transaction in this transaction history. Hence, the transactions build a chain. Everybody can now verify that the author is owner of this unit of Cryptomoney.
Cryptomoney can be transferred by the originator to another party by creating a new transaction from the originator to the other party. This transaction includes a reference to the transaction history (to be more precise to the longest “known” transaction history), the identification of the other party (usually the public key of the other party – see below) and the signature of the originator.
By linking transaction in the history, it is very difficult to modify single transactions within the history, because this can be easily detected using hashing algorithms. It is also not possible to spend more Cryptomoney than you have, because this can as well be easily verified by analysing the transaction history. One can also introduce more requirements, such as a transaction is valid only if at least 20 other parties have verified the correctness of the transaction.
Transactions may involve a small transaction fee to reward people creating Cryptomoney, verifying transactions or maintaining the transaction history.
Excursus: public/private cryptography schemes (also known as asymmetric cryptography). Without going much into detail, basically you keep your private key secret and your public key can be known by everyone. If someone wants to send you, for instance, an encrypted text, it uses your public key to encrypt it. You can only decrypt this text using your private key only known by you. You can also use your private key for signing a text that you have written. The public key can be used by everyone to verify that only you signed it, since only you know the private key belonging to the public key.
As mentioned before, the transaction history is kept and shared by everyone. Hence, there is no need for an individual to store transactions or even units of Cryptomoney locally. The ownership of Cryptomoney can be verified from the transaction history, which is publically available.
However, a user still needs software for storing at least one public/private key pair that is used for transactions to and from the user (see above). If this key pair gets stolen then all the Cryptomoney owned by the user is stolen as well. Hence, you need to take serious care of your wallet. A user can have also several wallets, i.e. several public/private key pairs, to reduce the risks of money getting stolen.
As explained before, it is very difficult for individual users to create Cryptomoney and they may need more Cryptomoney than they are able to generate in time. Hence, Cryptocurrency exchanges exist. There, one can buy Cryptomoney using “normal” money, such as Euro or US-Dollar. However, you need to trust these exchanges and they have been subject to serious attacks.
Examples for these exchanges are BTC (Bitcoins, Litecoins, PPCoins and many more), Virvcurex (Bitcoins, PPCoins, Litecoins and many more), Bitstamp (for Bitcoins) or MtGox (for Bitcoins)
If you have a business then you probably have a payment processor. This could be an internal one or you may want to outsource services, such as transaction or currency management. In the context of Cryptocurrencies, you may want to have a payment processor who converts after each transaction the Cryptomoney into “normal” money to avoid speculation with Cryptomoney.
Example for a Cryptocurreny payment processor are Bitpay or Bitinstant.
Cryptocurrencies are currently subject to speculation and have a high volatility in value in terms of “normal” money. Also “normal” currencies can be subject to high volatility – a recent example is the Japanese Yen. Usually you can buy derivatives to insure against volatility – if you do it right. These derivatives exist now also for Cryptocurrenceies.
If you want to get involved you can try it yourself! Most of the existing software is open source. The advantage is that you can check yourself that it is correct and does what it promises to do. In the following, I will present some software for Bitcoin related to the aforementioned aspects. Currently, Bitcoin is one of the most popular Cryptocurrencies and exists roughly since 4 ½ years.
Alternatively, there are also some other Cryptocurrencies, such as Litecoins or PPCoins. They roughly follow the principles described here, but they are differences in the details how they are implemented, the money available for transactions, stakeholders in the ecosystem, such as money-creators, transaction history maintainer/verifier or users.
Bitcoin-mining software can be used to generate Bitcoins. Since it is very difficult to create Bitcoins (see above), you may want to buy specialized hardware as well. Usually, you will spend more money on energy and hardware then you will be able to generate from Bitcoins and transaction fees. Other Cryptocurrencies may reduce the costs for hardware and/or energy. There is no need to create Bitcoins to be able to use them for transactions – you can buy them on the aforementioned exchanges.
Many clients are available for maintaining the transaction history and sharing them with others. These clients can also generate a public/private key pair, so that you can do your own transaction using Bitcoins. Hence, these clients are also called Wallets. Furthermore, they verify the correctness of the Bitcoin transaction block chain (transaction history).
I tried Multibit, which offers you the possibility to have several Wallets, which reduces the risks of getting Bitcoins stolen, if you use it properly.
You can use now some Bitcoin exchanges to transfer some money to your Wallet. You do not have to buy a full Bitcoin, but you can also by parts of a Bitcoin.
You can even use Bitcoins on your mobile and transfer Bitcoins from one mobile to the other by using NFC or QR-Codes. There is no need for a bank in-between. You can use your smartphone as a payment terminal for offering Bitcoin payment in your offline store.
There are some stores accepting Bitcoins. In Germany, we find Miro’s coffeeshop (an off-line coffee bar) or Bitmip (an online auction house).
Here some advices for your business:
Cryptocurrencies seem to be for now an obscurity or used for marketing. However, they potentially can be used in the future as any other “normal” currency. They share common characteristics. However, you need to understand them even more than “normal” money. They are not without any flaws. Cryptocurrencies may not be environmental friendly, because a lot of energy is needed for generating and maintaining Cryptomoney. However, this may hold to some extent also for normal currencies. Finally, it seems that they are currently not much cheaper than centralized systems, such as EC cash. Use them with great care, deep knowledge about them and at your own risk.