Editor’s note: This year, Switzerland-based bitcoin core developer Mike Hearn is an Andreessen Horowitz’ “developer in residence”, part of an effort to engage open source communities and especially focus on native applications built on top of bitcoin.
One of the more sophisticated examples of such an application — that wouldn’t have been possible without bitcoin and blockchain technology — is Lighthouse, which Hearn developed using the smart contracts features of the bitcoin protocol. By providing assurance contracts through bitcoin, Lighthouse enables all-or-nothing crowdfunding on one’s own desktop and without having to rely on centralized trusted third parties.
Hearn has been working on bitcoin for five years. He also did some open source work on Linux desktop. Before working full-time on bitcoin, Hearn spent almost eight years at Google, where he was a senior software engineer who worked on a variety of products from satellite imagery and maps to Gmail, anti-spam, and account security.
a16z: Okay, so the first thing we want to know is, how did you go from an established company like Google to working on bitcoin? We often say how we’re still in the early phase of bitcoin applications and adoption, but it was even less further along then than it is now.
Mike: I had an interest in digital money for a long time. I had read a book called The Future of Money about 10 years ago — it’s not about digital money, but about creating complementary currencies. It’s all about designing currencies to achieve social ends. It was written by one of the architects of the euro.
I just found the whole concept that you could design money to achieve certain goals to be really interesting. I’d never thought about it that way before! I had always thought of money like air, as a law of nature, because no matter where you go there are always currencies, and they all work in the same way.
a16z: How did you come across bitcoin?
Mike: After reading that book, I went straight to the internet to learn more; I was sure I would find lots of people who have been thinking about this topic there. But there wasn’t much, not until Satoshi Nakamoto’s paper (which I came across in April 2009).
I downloaded that early bitcoin code. It was a bit annoying since I had a Mac and the software was Windows-only. But luckily one of the open source projects I had worked on was Windows emulation for Linux desktop, so I had experience in making Windows apps work on other kinds of computers. After playing with the code a bit, I sent Satoshi a lot of questions and we had a long series of discussions where I asked him all kinds of really basic things. There was nothing else back then: no discussion forum, no exchange rate, no one buying or selling anything for bitcoins.
a16z: Wait, so tell us about the mechanics of that, given that Satoshi Nakamoto is pseudonymous and no one knows who he/she/they are!
Mike: I just emailed him. I just thought I was talking to some guy named Satoshi.
He never admitted it’s a pseudonym, so it took quite a long time for people to realize that no such guy existed.
a16z: That’s really funny. Okay, so you’re emailing him through an alias. What did you want to know?
Mike: “How can I try it out?” So he sent me some bitcoins and then I sent them back … and we just bounced coins back and forth.
I wasn’t a bitcoin developer at that point. I just thought it was cool and played around with it. I actually thought it would never go anywhere because Satoshi didn’t seem very interested in marketing and project management and all the other stuff you need to make open source projects work. There was a mailing list, and that was it.
Plus the internet is littered with open source projects that don’t go anywhere. You think, “Oh, that’s interesting” … and then you never hear about it again. So I just played around with bitcoin for a few days.
a16z: What happened to make you start paying attention to bitcoin again?
Mike: The WikiLeaks blockade happened! I was reading one of these tech news sites (I think it was Slashdot) where someone had commented that if WikiLeaks had used bitcoin, this wouldn’t have happened. And I was like, “Hunh? What? Bitcoin? It’s been a long time since I heard that word.”
So I went online and had a look again, and by this point bitcoin had developed a small community: There was a forum where people were posting, there was even an exchange rate. You could buy socks with bitcoin.
a16z: What ever happened to the bitcoins you’d gotten from Satoshi?
Mike: I had lost them. So I met up with someone at a bar in Zurich to buy some more, but there were no smartphone wallets then, we both had to bring our laptops, connect to wi-fi; it took five or six minutes just to log onto the network. And then it took an hour for us to do the actual trade because the stuff wouldn’t even show up until it was in the blocks, and we had to wait for someone to find a block. It took forever. We had a beer while we waited.
I thought, “This is ridiculous. This needs to be instant.” So I set about working on that, and that was when I started contributing to the project. I started writing my own version of bitcoin because the software Satoshi wrote didn’t fit mobile and needed a totally different approach; smartphones weren’t powerful enough to run it. Satoshi had thought about this problem and described it in his whitepaper, but didn’t have time to write it himself before he vanished. So I worked on it. It was one of the first re-implementations of bitcoin ever done.
a16z: Satoshi had already envisioned the mobile solution?
Mike: Yeah, he designed all of it up front, way before.
I think most people would have been in a hurry to immediately say “Look what I made”. Those people would have just invented a way to send cash over the internet and left it at that. Instead of doing that, Satoshi thought, “What else can I add? Now what else can I add? How can I make this thing more powerful beyond what’s right in front of me?”
My mind was blown away by how big, how far in advance Satoshi was thinking… I kept encountering things in the code that were just there, without any explanation.
a16z: One of those things you encountered was smart contracts — which computer scientist Nick Szabo first wrote about in 1997 — where contractual clauses (including for physical property rights) can be facilitated through computing. How did you come across that for bitcoin?
Mike: As I asked Satoshi more and more questions about what some of the unexplained things in the scripting language were for, he’d respond back and say oh, that’s for “contracts”.
Unfortunately, this was around the time he was starting to step back. He stopped answering my questions and then, he just vanished… By that point we at least had a pretty clear idea of what all these smart contracts features were, even if we didn’t know exactly how he had intended them to be used. There are just a lot of things that can be done on top of bitcoin that people don’t know and many of the uses will surprise us. We won’t know until they’re built.
a16z: You never heard from Satoshi again?
Mike: He continued emailing with me and Gavin [Andresen, Chief Scientist at the Bitcoin Foundation to whom Nakamoto handed over the network alert key] for a few months after he stopped posting publicly. But eventually he disappeared for everyone.
a16z: A strong open source project doesn’t need its creator though — it’s about the benefits, not about the cult of personality. Or is it? How would you contrast bitcoin and Satoshi Nakamoto to, say, Linux, where the chief architect of the kernel (Linus Torvalds) was also the project coordinator? Both bitcoin and Linux also have non-profit foundations behind them to help foster growth and technical collaboration.
Mike: A lot of the software (a lot, not all of it) in the bitcoin space is open source. I think the open source aspects of bitcoin and Linux are pretty similar in many ways: people are sharing source code and working together, volunteering their time and skills, developing ideas over the internet, building on each other’s applications without central organization or traditional top-down management.
As for the Bitcoin Foundation, it was actually created pretty early on. We knew this approach had worked for Linux and other open source projects, and a lot of the people who work on bitcoin (not just me, others too) had gotten their initial open source experience in the Linux communities. So how we do — or don’t — organize ourselves owes a big debt to the Linux project.
a16z: I know you worked on desktop Linux (which was a flashpoint for a lot of heated discussions before!); any lessons learned for bitcoin from that experience?
Mike: People really don’t like it when I compare experiences and say stuff like, “Well, desktop Linux wasn’t successful because of SO-and-SO reason, we need to avoid that for bitcoin.”
But I was profoundly affected by that experience! I put a lot of work into desktop Linux, as did many other people. And in the end it sunk into the sand to the point where most people don’t really think about it anymore. So when I began working on bitcoin, I did a lot of soul searching before ramping up my involvement. The difference was that this time I was in a position to help influence things.
a16z: But what were some of those ‘reasons’? Any lessons can we draw for bitcoin, or open source in general?
Mike: I think the main mistake people can make is losing sight of what’s the point of it all? So the open-source-ness and the free-ness of the software become the end instead of a means to an end.
This leads to ideological decisions that aren’t really based in any kind of engineering or market reality. It leads to building software that doesn’t work as well, but “we’re going to do it anyway because it’s more free or more open source that way”.
That’s why the blocksize topic, which I discussed with Chris [Dixon, on the a16z Podcast] can lead to such vitriolic debates. Forks are not the best way to resolve these disputes, but it may happen anyway because some of the people who have become involved in the years since Satoshi left feel like the decentralization aspect of bitcoin is the end and not a means to an end. Saying “You should use bitcoin because it’s decentralized,” is like saying, “You should use Linux because it’s open source.” That doesn’t mean anything to people. They care about what they can use it for, what can they do with it.
a16z: You mentioned earlier that the internet is littered with open source projects that went nowhere. What made bitcoin different? What can people do with it? Is it really that easy for developers to just get started?
Mike: I think the fact that you can just sit down and start writing programs that work with money is simultaneously the most powerful and the most terrifying thing about bitcoin. So it’s certainly worth doing right. But unlike the banking system — which is more about social engineering, where you have to spend a lot of time talking to people and making the right contacts before you can do anything — with bitcoin, you don’t have to convince anyone of your awesomeness. You can just get started and let the awesomeness show itself. It’s the exact opposite of the way the banking system is set up.
I always read about some really awesome thing that someone has created with bitcoin and that they threw together over a weekend. At DevCore in London I gave a tutorial
where I made a simple Lighthouse-style app for document time-stamping in just 30 minutes. So it doesn’t have to be hard, or time-consuming. That’s such a contrast to my previous experiences, where you didn’t have that kind of flexibility or impact on payment systems even with all these huge resources behind you.
a16z: What would you love to see more developers work on? I’m sure there’s a long list, but what comes quickly top of mind for you?
Mike: Network robustness is a big one. It’s actually shockingly easy to attack the network, and there’s not a whole lot of work going into that.
I’d also like to see a bit more consolidation in the wallet market. Right now we have maybe 30-50 competing wallets, which is great for decentralization, but most of them are pretty basic. Do we really need so many? If we had more like 10 — but they were all 2x or 3x as good — that might be a better tradeoff.
I would love to see more polished user experiences in general; I’d really like usability and consumer adoption to be top priorities.
I’m keen on all the killer apps as well; maybe bitcoin ends up being machine-to-machine payments, who knows?
Some of the native bitcoin apps I like right now include things like:
Streamium, where you can stream your video directly to viewers without having to rely on centralized players. This has applications for online education, consulting, mentoring; online gaming; indie films, reality shows, web series, and podcasts.
BitMesh, where people can share their internet resources in exchange for bitcoin and end up with cheaper, more robust service negotiated through a local marketplace of sorts that doesn’t require third-party escrow.
BitRated, which provides identity, reputation management, and consumer protection by modeling the social graph of trust relationships between bitcoin users. This allows people to vouch for that trust (putting their own reputation on the line) to help create trust with other users, so you trust a friend because I trust them and you trust me and so on.
Apps like these are how we continue to build the case for bitcoin and reach even more mainstream adoption. That’s what we need to focus on right now.