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.
What functionality does Cryptomoney need to have?
Based on my observations, Cryptomoney has the following functionality (cf. also properties of “normal” money):
- Creating Money
- Money needs to be created in order to use it
- It is difficult to create fake money
- Money has value
- Everybody can create money – there is no monopoly for create money (a counter example is the European Central Bank (ECB), which has the monopoly for generating Euros)
- Cryptomoney can be used for transactions, such as selling or buying goods
- Transactions can be done via a central third party (e.g. bank) or decentral (e.g. direct transaction between two people)
- Verification of correctness of transaction can be done by everyone (a counter example is the Society for Worldwide Interbank Financial Telecommunication (SWIFT), where only selected banks can participate)
- It is clear who owns money
- Users can store themselves money in their wallet or ask other providers to store money for them (e.g. banks)
- Cryptomoney is always stored virtually.
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.
Transactions using Cryptomoney
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.
Advcanced Cryptomoney Developments
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.
Cryptocurrency Payment Processors
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.
Derivates on Cryptocurrencies
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.
Wallet & Maintaining Transaction History
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.
Stores accepting Bitcoins
Advices for your business
Here some advices for your business:
- Trust your government and “normal” currencies
- Without this – even a Cryptocurrency is nothing worth
- Cryptocurrencies do not help you with legal disputes. In fact, it is not foreseen in current Cryptocurrencies to revoke a transaction – it is very difficult to get your money back
- Use Cryptomoney at your own risk
- Have a deep understanding of financials (currency conversion, taxation and derivatives)
- Have an understanding of the technology, particularly about possible attacks to Cryptomoney
- Understand your public/private key infrastructure and how to secure it
- Observe the ecosystem of your Cryptocurrencies
- Understand the players, such as money-creators, transaction verifier and other users using it.
- You don’t want to use Cryptomoney that is used for crime and corruption
- A general currently known rule is that if 51% of the ecosystem is owned by dishonest (collaborating) players then it is possible to fake money.
- Use Cryptocurrencies that are well-researched (check on Arxiv or Google Scholar)
- Use advanced analytics to analyze the distributed transaction history to understand the stakeholder system
- Use it currently only for a small proportion of your transactions
- Have several Cryptocurrencies to spread risk
- Use it as a cool distinguishing feature for your shop if it fits to your customers
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.