The Japanese version of the technical, developer-focused book “Programming Bitcoin”, was released in November 2020. We asked the writer, Jimmy Song, for his thoughts and opinions on its release, on Bitcoin developers, and the future of Bitcoin.
―― Congratulations on the Japanese release of Programming Bitcoin! First, could you introduce yourself for people that don’t know about you yet?
Thanks! It’s very exciting to see my book being translated to other languages. It gives me great satisfaction to know that developers around the world can now benefit from learning this world-changing innovation.
I’m a Bitcoin developer, educator and entrepreneur. I’ve been a professional programmer for the past 22 years, though I’ve been programming for 35. I’ve been working in the Bitcoin industry since 2013, when I started contributing to a Bitcoin open source project. I’m currently doing a bunch of different things in Bitcoin, including as a lecturer, expert witness, advisor, investor and of course, coder.
―― What was the first thing that got you into Bitcoin?
The first thing that really drew me in was the 21 million Bitcoin limit. As soon as I learned about that, my instinct was to get some because of its proven scarcity. I didn’t know how to express that at the time, but there was some instinct inside of me that desired something scarce. Thankfully, I listened to that instinct and it’s been a wild ride since.
―― What kind of work do you do on Bitcoin lately?
I’ve been working on another book to make the Christan case for Bitcoin with some other people. I also have released my own Python library that includes some newer features like PSBT: https://github.com/buidl-bitcoin/buidl-python
―― Why did you decide to write a Bitcoin book specifically for developers?
Back when I started programming Bitcoin-related things in 2013, it was a really frustrating experience. There are so many interdependent things that you have to know to understand what’s going on. It didn’t help that there wasn’t much good documentation at the time. It took me 3 days, for example to figure out how to sign a multisig transaction. I wrote this book so that other developers wouldn’t have the same experience that I did. Thankfully, I have had a lot of experience teaching this material starting in 2015 when I started explaining certain concepts to my coworkers, so the material wasn’t too hard to gather.
―― When people talk about technical books on Bitcoin, Andreas M. Antonopoulos’ Mastering
Bitcoin comes up. What separates Mastering Bitcoin with Programming Bitcoin? What kind of readers are you expecting for Programming Bitcoin?
Mastering Bitcoin is more of a reference-style book that tells you how to do something in particular if you already know what you’re doing. The title, after all, has the word “mastery” in it. There’s some pre-knowledge of Bitcoin that’s assumed and it’s aimed more at people that understand some of the technical aspects already. Mastering Bitcoin is more like a variety of lectures on different technical aspects of Bitcoin.
My book is aimed at developers who want to learn how to program Bitcoin stuff from scratch. The book only assumes programming knowledge and is meant to be more like a class. It’s aimed at helping developers understand everything from the ground up and includes material not included in Mastering Bitcoin, like elliptic curve cryptography. I wrote the book for developers interested in Bitcoin and I’m expecting mostly people who are curious and are exploring career opportunities in this area. There are also lots of exercises for people to really prove that they understand the ins and outs of what’s being taught.
―― Do you have certain views or opinions on Bitcoin developers? Do you have any expectations for new developers coming into Bitcoin?
The main opinion I have is that we need more of them! New developers coming into Bitcoin should come in with a humble attitude as there’s a lot of material. My hope is that the book can bring more of them into the industry.
―― What has been the response from readers? Were there specific parts that people tend to focus on?
The response from readers has been very positive. It’s one of the most gratifying things as an author to hear that your book helped someone in some way and changed their life. The general feedback has been that readers really enjoy the exercises and they like learning in that way.
―― What things related to Bitcoin that excite you lately? Do you have any technology or BIP that you’re focusing on? If so, why?
PSBT (BIP174) and multisig are pretty interesting to me for selfish reasons. I want my Bitcoins to be stored securely and multisig allows the elimination of single points of failure. There’s a large demand from Bitcoin holders to keep their Bitcoin safe and given that it’s a really good savings technology, having a good secure solution for custody is important for the future.
―― For Bitcoin to achieve a wider adoption, what things do you think are necessary?
Time. The only way to prove Bitcoin’s value proposition as a savings technology is for it to survive. It’s done so very well the past 12 years and I suspect that if it hits 20 without any major problems, a lot more people will have adopted.
―― Japan comparatively has more stable laws and regulations governing cryptocurrencies, and perhaps as a result, Bitcoin is viewed more as an investment product or ‘store of value’ here. Do you think there are opportunities to shift from this mindset into a more ‘medium of exchange’ point of view?
This might be controversial, but I don’t really think the medium of exchange/method of payment aspect of Bitcoin is all that important at the moment. Having studied monetary history, people generally don’t like spending an asset that’s monetizing, which is what Bitcoin is currently going through. As central banks around the world continue monetary expansion, Bitcoin is the antidote and I think that’s where the opportunity for the next decade is.
―― We know that key management in Bitcoin is paramount. Do you have any best practice guidelines on handling this issue, particularly for HODLers?
The main advice I give is to avoid single-points-of-failure. Holding your coins on a hardware wallet without a backup, for example, is a very bad idea. Holding your coins on an exchange is a bad idea. Using multiple providers to store backup seeds and backup devices is a part of a good setup. If you can stomach it, store using multisig with different wallet vendors for each key. There are many more subtle things, but these are the big ones.
―― Bitcoin technology moves very rapidly. Do you have any plans on releasing another book or an update to this one? Perhaps with exercises related to Segwit, Taproot, or other new technology?
I have a class on creating a wallet that I’m in the process of developing and that has a lot of topics not covered in the book, like HD wallets, Segwit multisig, PSBT and even Neutrino. I’ll hopefully start teaching that sometime in the next 12 months and if all goes well, a book could be forthcoming in a few years.
―― Do you have any plans on releasing a book or material on the implementation of the Lightning Network?
I have some interesting things on Lightning that I’m looking into. Nothing to announce yet, but I am looking into it.