Starting Up with Bitcoin as a Developer
There is a lot of buzz and talk about new era of decentralized digital currencies where Bitcoin still remains king. I have been dismissive about cryptos, so I am coming late to the game. After hearing about Facebook’s Libra and the support crypto is getting from Silicon Valley tycoons like Andreessen Horowitz I thought it might be worthwhile to try and do something with it.
There are obviously a lot of things that people are doing with it, trading, mining, speculating. I am not here promote anything, but I wanted to share my experience and my opinion on it. As a developer I wanted to understand Blockchain better and the first thing I wanted to know was how far Bitcoin has come. The most basic thing you can do would probably be setting up a payment server and a simple project to see how Bitcoin payments work.
“Understanding block-chain makes you go mad, unless you start your own cult”
― Arif Naseem
Learning about Bitcoin can be an interesting journey. Because it is still fairly new I found there is a lot of garbage information out there. You will probably see a lot of information about how to “invest” in Bitcoin. These guys are speculators, who are probably in this to do a few good trades and that is fine if that is your cup of tea. I found BitcoinTalk to be a good forum to ask technical questions, whether it’s about wallet software or blockchain in general.
Rather than implementing anything myself I thought it would be great if I could run something that has already been done, preferably open source. I didn’t want to have my wallet hosted by an exchange like CoinBase or BitPay. Having a third party manage your wallet and essentially your money seems like it defeats the whole purpose of Bitcoin.
I found BTCPayServer to be a pretty good open source software and thanks to Nicolas Dorier’s tutorials it was a pretty painless task to get it up and running. In one weekend I was able to get a Bitcoin node up and running and already ready to accept payments. This product functions similarly to how BitPay does. You can easily create payment buttons which is the easiest way to get started. There are a few minor differences. For example, BitPay hosts your wallet for you whereas with BTCPayServer you would need to find a different way to host your wallet. I used a the very popular software Electrum which you can install on your computer or phone. Since I’m only testing I wasn’t interested in going with anything ultra-secure at this point. I suppose you could call this a “hot” wallet which is the term used for wallets that you use on a day-to-day basis. For those who don’t know, there is also a “cold” wallet used to store larger amounts of crypto assets and it’s probably something you want to have if you are a merchant and plan on leaving larger sums of crypto assets in the wallet. These are typically “offline” because, of course, you don’t want anyone accessing it other than yourself.
People might tell you different things when it comes to acquiring Bitcoin but I find that this to be most cumbersome and it’s probably the main reason why crypto is not getting the mass adoption it deserves. Yes, you can get it in many different online exchanges but in order to do that you need to provide your life’s history of personal information in order to get verified. This makes sense, because exchanges are required to comply with the law; Know-Your-Customer (or KYC for short) process is essential for their business. But then exchange rates and transaction fees vary so much and the very reputable exchanges don’t have the best rates. Do you pay the high fees or do you use a company in another continent somewhere that offers better rates? Do you trust them with your personal information and that they won’t get hacked later? You know how it… you sign up, get verified and that data lives there forever. So to test BTCPay server I went to the local coffee shop with a Bitcoin ATM to exchange $20 for BTC which after transaction fees ended up being $7 worth. I would not do this again, but it was my first Bitcoin transaction ever and I just did not want to open an account and get verified somewhere for an amount that small.
Give me control of a nation’s money and I care not who makes the laws.
— Amschel Rothschild
After running a few transactions it all started to sink in. In couple days I was able to get things up and running. I didn’t need to go to register a business, go to the bank to inquire for a merchant account, sign a bunch of papers, get approved, and provide few pieces of ID. This last one is actually pretty important. I am in charge of my own money, can do business right away, I don’t need anyone’s permission to do it, and transaction fees are determined by the system itself. The most intriguing thing is that I can be completely anonymous.
Anonymity, in my opinion, is one of the greatest strengths but also the greatest weakness of decentralized cryptocurrencies. The market value of Bitcoin as of today is $41 billion. There are many so-called “whales” that are holding large amounts of crypto-assets. We can see it in blockchain but we may never know who they are. Sure, you can triangulate transactions and see where money is going but as long as they don’t exchange crypto assets for fiat money they are virtually invisible. But not just that… with a click of a button they can transfer large sums of digital money to someone on the other side of the globe, and that too can be anonymous.
All of this is sounds pretty amazing in theory, for people at least, but it’s got non-compliance written all over it. If I want to purchase a car, I can trade some of my stock holdings for fiat money and then use that money for the car. These stocks I own are proof that I am part owner of some company. If the local currency goes haywire I have the assurance that I still own some of that company. Yes, the local currency is not the best “investment” and I have no control over it, but its a convenient form of payment. If there is a dispute between me and a merchant I trust that the bank will do the right thing and if they don’t there is a legal system to protect me. Now, Bitcoin is supposed to put me in charge of my money, make things cheaper for me, but I am not so sure it’s delivering what it’s promising right now. It is highly volatile, still has low adoption, not exactly cheap to acquire, and it’s so much easier to get ripped off or scammed — as a consumer I have zero protection with my purchases.
I heard several stories where smaller merchants, not just companies like Expedia, started using Bitcoin because it’s the future and it’s kind of hip. The next thing you know they wanted this off either because either it was highly volatile, has low adoption, or was just making the business harder to run for them. I can’t speak for countries with really corrupt governments who may find this more useful, but anywhere else working with local currency is always easier and a preference.
I am sure the future of blockchain is very bright and that will solve a lot of problems. I am a sceptic about unregulated decentralized cryptocurrencies like Bitcoin though. It is brilliant and it works well technically. At the moment, however, businesses working with it are getting hammered with regulation not to mention the risky nature of it. As much as I’d like to embrace it, it’s just not worth it right now. I’ll be watching…