I've been watching crytocurrencies without taking anything other than a vague academic interest in them for almost a decade now... and I've FINALLY started to play around with some recently.
I first remember seeing Bitcoin while I was still doing my Alevels (oh woe is me for not buying when they were only 7GBP a coin!) on various forums -mostly /biz/... (yes on a forum like that you can see why I didn't buy the hype or take peoples advice on the internet!). The reason I never got on the bandwagon is because I never saw much of a use cryptocurrencies... Yes - I understand they are great when you wish to send funds via the Internet without using a major intermediate authority that may charge fees, and that it is useful for situations where you wish to verify transactions in a group but can't trust and single member of said group... But that fact was no one was using it for any of these purposes with the exception of people buying elicit items on the silkroad. I wasn't so much interested in changing the world as I was in having something useful now.
I watched from afar as the market took off, always thinking it was speculation and financial euphoria soon to go pop. But I was wrong, and this Euphoria has lasted now for over 10 years and, despite a very volatile market of crashes and booms, has consistently risen. The currencies have (mostly) survived hacks, exchange meltdowns, and hard forks.
Most importantly there is a slow, very slow, adoption of usage of crypt currencies for normal activities; which I believe is the only thing that can legitimize the currencies. As long as people keep constructing methods to accept payment in cryptocurrencies, and apps and contracts are being written with them, the price of them will be supported at some none negligible fiat value.
Anyway, ten years later, as a second year PhD student, I noticed Ethereum. I was initially quite taken to it - if only for the name; the Ether/Aether theories, such as luminiferous Ether (what a wonderful name! You've got to respect a theory with a name like that!), the supposed mediums through which the natural forces, such as magnetism, travelled. It's also the name of a fictitious element in many scifi and fantasy worlds. But I thought as this was a new currency that seemed to be drawing quite a name for itself, and its owner Vitalik Buterin, I would sync the block chain to my laptop and have a go to see what the fuss is about a play with some smart contracts.
So what is Ethereum?
Well first lets go into the basics of cryptocurrencies, like bit coin - to which ether is similar, but differs from, in many ways. This itself is also derivative from other coins.
The most lucid articles I've found for explaining blockchain technology are found here and in the video by 3Blue1Brown linked below. There are also some good explainations by Numberphile which cover the same material.
Cryptocurrencies were first imagined before blockchain technology. They were designed such that someone sending an email should generate a coin to send it with (to stop people sending loads of spam). But these coins could also be purchased from someone else if you wanted to still send lots of emails. It's a good idea! Unfortunately spam filters took off instead, and email providers chose to implement them instead thus removing the need for such a coin. Bitcoin is similar. Bitcoin's niche is its role in virtual gold, providing a reliable monetary system unaffected by uncontrolled inflation and political interference. Like gold, Bitcoin as has a max limit of coins - the total number of Bitcoin that can ever be created (unless the code is changed...) is 21 million coins. This limit on bit coin is something I feel will make it important in the future as a version of Gold - it has the first move advantage and a limited supply. Without a limited supply there can be problems - especially if people are using leverage to buy the currency which can be conjured indefinetly (an issue I will discuss in a moment).
Ethereum's angle on the blockchain is to evolve the tech into a universal computer; having a blockchain-based coding language allowing codified contracts and decentralized applications. This was initially pitched as a way to fund startup and other ventures; using Ethereum, you can create a contract that will hold a contributor's money until any given date or goal is reached. Depending on the outcome, the funds will either be released to the project owners or safely returned back to the contributors. All of this is possible without requiring a centralized arbitrator, clearing house or having to trust anyone. You can also use further currencies created using Ethereum to vote after you create a company or contact. You can build a virtual organization where members vote on issues.
Unlike Bitcoin the total annual Ethereum issuance is restricted to 18 million per year but it doesn't have a total cap, so it's inflationary currency. The future value will decrease as the currency is sent to the miner rather than the program
Theres a great write up of how etherium works here.
Now despite having a working block chain since late 2015 I didn't actually obtain any Ethereum until late 2017 as I had got sidetracked by other projects - D'oh! But after noticing Ethereum is still alive and well I decided to purchase some so I ould play with setting up smart contracts and some other ideas
How to buy currencies
In Singapore this is made easy via CoinHako, a basic exchange only dealing with Singaproe dollar, Malaysian ringit, Bitcoin and Ethereum - I would really recommend them if you are based in Singapore. I then sent the coins from there to my private wallet on my laptop (which takes a frustratingly long time to sync if you haven't already done that- luckily I can just leave my laptop in university over night to sync it so at least I'm not paying the power bill). I wouldn't recommend CoinHako if you wish to trade Bitcoin though - it has a minium fee for sending Bitcoin from one wallet to another which quite extortionate for small trades. If you are based in Europe or the US then I recommend Kraken. Kraken is a much more expansive exchange but you can only purchase from SEPA and SWIFT registered countries. However - it does display buy and sell orders (as all good echanges do - so does Coinbase and Bittrex) coming up which is interesting if you wish to evaluate market sentiment, and hosts a range of currencies. As of yet I'm not entirely sure how I feel about other currencies... I haven't done enough research to know the advantages of dogecoin for example. I had originally thought it was some kind of joke...
Exchanges are much more dependable and stable than they used to be (and by this I mean they wont disappear with your money), however I still prefer to keep in a private wallet just in case. There is obviously a risk here - a broken laptop means my coins are gone, but I like to feel that they are in my possession. I'm also concerned that the Singapore government might slap coinhako down at any moment - as they also have a habit of doing with all of my favorite disco venues. I know several of my friends have had bank accounts frozen in Singapore for using them to receive Bitcoin transaction payments so I'm quite wary. The other reason is that it forces me to get a more solid understanding of the tech if I have to host blockchains myself. I believe this is how coins should be used - from a wallet I possess - not just hosted on an exchange like a stock.
From my own wallet I can transfer to kraken to trade onto Litecoin and ARK and again transferred to personal accounts, although I rarely do this.
Before I go any further I would also like to mention my reasons for not buying into crypto currencies until now. If you haven't read "A brief history of Financial Euphoria" then I would recommend it. It's a very short read but goes over the main reasons why such Euphoria occurs, and it is these reasons why I didn't buy until I actually wanted to use the technology.
It should first be stated that main problem, and the one that results in the depression that follows when the whole thing collapses, is the use of leverage. You use something else as collateral, and hope to sell without ever having to put all the cash upfront. When the the house of cards comes falling down, your collateral also disappears. However - leverage and the fush of capital it creates this isn't the primary driver of the manic behavior. The book argues that one of the primary factors is the assumption of intelligence that the early investors have as; that outsiders assume them to be so canny to spot such an undervalued asset, and the that only they understand the complex mechanisms behind function and trading of the asset. The fact is that the growth of stock price is reinforcing in a cycle which attracts new buyers. Combined this with survivor bias from day traders (people never say they lost money) and bubbles inflate rapidly. Until they pop.
This is part of my problem with cryptocurrencies. Most of the people holding them do not use them. They also do not understand how they function and seem to simple assume everyone else does. By this I don't mean to the smallest detail - I would not expect a layman to understand how the SHA-256 hash works, but more vague notions such as how transactions are recorded, what the blocks represent, and what the nodes are, THAT I expect people to know. You hopefully wouldn't buy stock in Ford without having an understanding of what a car is.
My feeling is most people are simply speculating on the price of the coins at exchanges with fiat currencies. They are essentially forex traders riding the wave up.
This in behaviour can in turn lead to positive feedback loops. As more people buy the currency the more confidence you may have that, despite not understanding why they work, you are assured that others do, and the safer the purchase appears (there as some many people investing! You shouldn't wish to speak out and look a fool). This feeling of safety is completely caused by a herd mentality and not in the fundamentals of the technology.
This behavior is better discussed in an essay by George Akerlof named "The Market for selling Lemons" which won him a Nobel prize, demonstrating that a market which suffers from disinformation and a lack of understanding is inevitably crippled by gullible buyers, and snake oil salesmen. The topic is also covered quite well in "The Signal and the Noise" by Nate Silver. This is combined with a twisted version of the efficient market hypothesis stating that the price the of the asset on sale is the correct price (buy which logic any value the asset holds is the correct value - regardless of the fundamentals).
There may come a time when cryptocurrencies are so widespread that the understanding of their function is no longer necessary - such as the technology going into todays ATM machines which the man on the street need not understand... but until then I would be much more comfortable if everyone understood exactly what the who purpose of the cryptocurrencies are and used them for their purposes.
A rebuttal I here about the market jubilance is that these coins should have value as they are new, disruptive, and limited. These are perfectly valid statements, which I totally agree with. But this also applied to tulip bulbs during tuplimania. We will only see the true value of a product when we use it for its intended purpose. You can't even sniff a cryptocurrency.
My opinion remains that this is all one day going to crash unless the technology can become widely used by online vendors and for a wide variety of transactions. My solution to this is simple - start making transactions in cryptocurrencies and using the tech for cool projects!
Yes - I'm not as much a Debbie downer as I used to be! I don't want it to crash and burn. I don't want to pay bank fees. I want transparency currency movement. I want meaningful voting in organizations with stockholders. The tech is behind many of the currencies is good and if it crashes then not only I can I not spend the money as the currency is worthless, but worse it will set back the area significantly a poison the well in research. A similar thing happened in machine learning only a few decades ago and we've only recently retruned to that well of knowledge.
I've also made the commitment that, where possible, I should use bitcoin. If that's buying flights via Expedia, shopping on amazon or topping up my phone via Bitcoin using Bitrefill.
I really believe that people holding the currency should try to do the same as well. Many may be reluctant to because it either seems like to much effort, or because they see the coins as an asset that are rising in value. They should instead view this action of spend coins as PROTECTING THERE INVESTMENT.
If you are thinking of also buying cryptocurriences then I have the following adivice (whether you want to hear it or not):
- Don't leverage. Moreso don't ever speculate with money you can't afford to loose. This is the number 1 rule for gambling or trading stocks.
- Don't purchase simply because you expect the price to go higher. You may even think "ah but I do think its going to crash! I'm smart. Ill just be sure to get out before it does". If the price does go up you will justify that you are a smart person - and then your feelings about whether the stock will continue to rise. One day, when the stock does fall, everyone with your attitude will rush to get their money out. That means prices will drop FAST. This is even worse if they are desperate because they ignored rule 1.
- Get coins that you can use and spend. This will encourage mainstream adoption of the technology in the future and, importantly, if you aren't using them for this then you are breaking rule 2.
Other coins: ARK and LITECOIN.
Litecoin is of interest as it uses a faster algorithm for transactions (scrypt instead of SHA-256) meaning it can be mined on computers which are less powerful and that it will take less energy. This is a perfectly valid difference, which as a cryptographer I find interesting. Considering that mining operations around the world take up massive amounts of electricity and there is already a shortage of powerful graphics cards needed for mining rigs, this could prove to be a major advantage for Litecoin miners going forward. It likes to sell its self as crypto silver, whereas Bitcoin is gold. However - it does concern me that perhaps later Bitcoin may be changed to improve itself in the same manner, leaving the coin irrelevant. I'm sure there are reasons why isn't the case - hopefully a litecoin fanatic can shoot me and email and let me know. This could also lead to a dilution of coin though in the itemerdiate time before all litecoins are mined. First, Litecoin has a lifetime cap of 84 million coins, which is four times higher than the total number of Bitcoins that can be mined.
ARK is a coin to preform smart bridging which allows cryptocurrency conversion without the use of exchanges (although many coins are also working on this). This is to allow changing between coins. It also carries much of the utility of Ethereum, regarding allowing coding on the blockchain, but it also seems to have other projects in the works which can be view here - https://ark.io/roadmap/. I will update this page after I've played with it a little more.
The main reason I've taken some interest in ARK is because it appears to function in a similar manner to Ethereum and is a hell of a lot easier to set up. To get Ethereum working you have to sync the entire blockchain - something which I had to do 6 times before I could get it working correctly (if a Eth-dev is reading this - please look at how to sync eth to a mac, it certainly doesn't work consistently). But why now?
One may also wonder why I'm excited by all this classical crypto stuff if I work with quantum information - whose bold claim is that it will ruin many classical encryption codes. Surely quantum will break it all?
There are two reasons I'm not concerned. First it that not all crypto is going to be broken by a quantum computer (there are areas, such as lattice based crypto which quantum computers don't yet claim to have an advantage in breaking over classical computers - although a paper briefly appeared by Peter Shor earlier this year claiming that, but an error was quickly found). However the primary reason for not being worried is I also think much of the quantum information area is caught by state of financial euphoria. Quantum computation is technology that very few people understand (because it is, I admit very hard to understand - but also because it is also kept that way by the nature in which scientists act, and the ways in which science publication is used as the medium for exchanging ideas). There are many problems with the area and a great deal of fundamental issues with the supposed speed ups (see my other recent article HERE), even at a theoretical level, that I worry for its future. And I've almost completed my doctorate in the area...
Fundamentals for block chain.
The first thing nessacary for building other crypto protocols onto block chain is to first get the basics in place. The first, and I believe the most import is key distribution which can be verified like transactions.
At the moment this is easily achieve by a scheme such as RSA, which allows people to create a private key between two parties over a public channel. If this is possible do write into the blockchain, such that the key you exchanged is then tied to a wallet address, then this will allow some interesting things.
The first would me private messaging via the blockchain (this is an example - I'm not suggesting we turn Ethereum into whatsapp). The second would be One time programs.
Classical one time programs are incredibly useful - they are programs that can not be copied and are only useful for a single evaluation. I wont discuss these much here as they are currently impossible tom implement - however, there is a lot of work going on in this area (including in my research area) and it is something that would be very desirable for smart contracts. Imagine if I can sell a program which you may evaluate only once - and that transaction is also guaranteed, in the same way current smart contracts function.
I will write an article about this when my next piece of research is published - so hopefully soon!
The next idea would be a Homomorphic coin.
I tried to think of a better name but obviously homocoin might not be great, and encryptcoin isn't very clear when the coin is already a crypto currency.
The idea is as follows: What if every time a person visted your website they run a single instance of the hash. You could essentially use the people visiting the website to do work, removing the need for adverts! That would be wonderful.
The problem is - currently if someone found a coin using this method then they would have no incentive to give it back.
What you want to do is somehow make them do work, but not know if they get a coin of not - you wish to hide the input and output. This is exactly the problem of homomorphic computing - a topic which I have been working on for my PhD.
But the principle idea I want to express is that this is possible!
There are methods for preforming homomorphic computation, described here - and also some people have also made some useful code on git hub here, here, here, and here. However, from what I can tell the code is limited to basic addition and mulitplication to would need to be built up significantly to to SHA256 (which is mnostly bitwose XOR opeations and table rotations). here. The overhead in terms of computation would be a pain, but you could argue it essentially doesn't matter if someone else is doing the work - who cares if its less efficient as long as they are doing the work for you.
So it would work as follows:
- You, Alice, have a website which you have to pay some fees to host. Bob visits your website - and you want Bob to pay for the use of it. Specically you want Bob to pay for the use of the site by solving hash functions to generate some cryptocurrency coin which has value to you.
- First - you generate an input to the hash that you haven't tried yet. You encrypt this with a private key and generate an encoded input.
- When Bob opens your site it you send this encoded input to him. He then runs a program stating whether or not the hash of this value generates the output you want. This is a yes or no output to the program. However - this output (yes or no) is also encrypted. It is encrypted in the same way that the input was.
- Bob doesn't know what this input was. He also doesn't know what this output it. All he knows it that he got some input, did some work, and got an output.
- Bob send the output back to you, Alice. You then decode it with your private key to see if it says yes on no.
- If the output is yes - this is an input value which solves the hash problem and you now have some new coins. If no, then you sedn a different input to the next website viewer. If the answer is garbage then Bob has been cheating and not really done any work - so you block his IP.
- The questions that occur to me as immediately import are: whats the overhead like? If its huge then its going to take to long to mine coins - and dedicated miners who aren't running this protocol would beat you to it. The second it how much work are the encryption and decryption and decrytions steps compared to an instance of the hash in its normal form? If the different is neglidgable then this might also mean the server isn't really saving any work over generating coins itself.
If you have any comments please contact me - I'm happy to encorporate new information and update this page. It would be nice to have a comment - mostly I just write these articles for my own benefit!