Programmers Nick Johnson and Martin Swende On Growing Ethereum

The interests and pasts of two superior programmers; the future of mass adoption; and the unsung fuzzy hero of the Byzantium hard fork. ETHNews sat down with two members of the Ethereum Foundation to discuss why Ethereum should be more like ordering coffee on two different continents.

Ethereum is currently in a unique stage of its evolution.

Many of the initial technical milestones needed to reach and surpass Frontier, Homestead, and The DAO have now been realized, although some of the biggest challenges still remain. As noted recently by Vitalik Buterin, “there’s generally three major categories of problems” that remain to be overcome on the road to Serenity, Ethereum’s final iteration: privacy, safety, and scalability. Two of the Ethereum Foundation’s stalwarts sat down with ETHNews to talk about their day to day efforts keeping Ethereum safe, user friendly, and growing.

Nick Johnson is the chief software architect behind the Ethereum Name Service (ENS), a massively important project that removes some of the technical friction for Ethereum users by mimicking the Domain Name System (DNS) of the current internet.

Essentially, Johnson is building a bridge between the human readability of cryptographic addresses and machine readability. As one ETHNews writer put it, this is a critical step “to increasing widespread adoption of Ethereum and blockchain technology.”

Martin Swende is Ethereum’s security lead. As such, it is his responsibility to safeguard Ethereum against would-be cyber attackers. Swende is proactive in ensuring Ethereum’s systems are designed and secured properly. It is his responsibility to improve Ethereum’s overall security stance so that there are fewer network vulnerabilities.

Many Ethereum Improvement Proposals (EIPs) fall into one of these three categories, representing the razor’s edge of blockchain architecture research. (EIPs describe standards for the Ethereum platform, including core protocol specifications, clientAPIs, and contract standards.) The magnitude of difficultyin overcoming these technical challenges of privacy, safety, and scalability is one of the reasons why Ethereum’s most recent hard fork, Metropolis, was split into two separate forks – known affectionately as Byzantium and Constantinople.

The Byzantium half of Metropolis, the advent of which just passed smoothly into history, introduced support for new types of cryptographic algorithms that Buterin believes could provide “powerful tools on top of which we can start building solutions.”

Constantinople, yet to come, is where Ethereum’s protocol will be dramatically changed. Until solutions for private, safe and scalable growth can be implemented via the next hard fork, there remains plenty of work to be done.

ETHNews: How did you get into Ethereum?

Nick Johnson: About eighteen months ago I was working at Google and I got approached by a recruiter for large financial company saying, “Would you like to work in our innovation division on Ethereum?”

I said, “No, that doesn’t really sound that appealing, but what is this Ethereum thing?” I can swear I saw it during the crowdsale but had bookmarked it to look at later. I took a serious look for the first time then – this was just after Homestead – I started playing around with it, and wrote some code starting with some Solidity, some other bits and pieces.

The next thing I know I’m getting called up from Jeff in the Go team … I feel more excited about this than almost anything else I’ve ever worked on, because I feel like I’m helping to build some legitimately new stuff.

So it wasn’t long after that that I accepted a job with the Foundation, left Google, and started working on Ethereum full time. I legitimately liked Google. I have lots of friends there and I think it’s a company that legitimately tries to do good. I worked there for two stints totaling about 6 and a half years. It wasn’t the same company when I left as when I’d joined. I’m definitely having more fun than I was there.

Martin Swende: I’m from Sweden, from Stockholm. For me it started when I read Vitalik’s blog posts about Ethereum while it was still being sketched out, how it was going to work. I kept an eye on it during development. Then … they announced that they were going to have a bug bounty for consensus issues, and that’s when I really started looking into the virtual machines, CPP, Python, and Go Ethereum.

I hand-crafted bitcode, which I fed into the EVMs. I became kind of obsessed. I remember printing out source code to bring when we went out to the country house, so I could catch a reading in the evening.

It took a while because it was a big threshold, but then I started to actually get bounties. I was there for Devcon1, met the guys in person, and actually found a consensus issue during the conference.

For a couple of years it was like my primary hobby. I was at the time working as a security consultant doing web applications and security hacking.

In 2016 summer, they asked around if someone wanted to be the security lead for the foundation. I jumped at that and became the security lead, just before Shanghai.

ETHNews: So you’ve both been making a living in software for some time. What about the Ethereum ecosystem keeps you interested and motivated inside your hearts?

NJ: I’m fascinated about the consequences of new technologies, and what people are doing with new things, and what they will be able to do with them in the future.

My own focus is fairly concentrated on building the infrastructure that lets that stuff be done, or even just lets us do existing things better and faster and nicer in new ways. I’m here for the technology. That’s what really engages me.

Technology is a means to an end, yes. But I’m not doing it because I want to revolutionize the world. I’m doing it because I think that doing it provides better tools for everyone, to build whatever they want to build.

MS: I like the idea of challenging certain power structures that become embedded into society. The power that the Facebooks and Apples [of the world] have, also the banks and everyone controlling both money and content; how … the internet has moved away from being free into these walled gardens: it’s not what it was supposed to be.

The problem of governance is a problem for all nation-states, for hundreds and thousands of years, to evolve. “How do we perform governance of our nation?” Has anyone come upon the ideal solution? I don’t know, I think it will be an eternal problem.

ETHNews: Do you have any thoughts on the future of mass adoption?

NJ: I think that the difficulty of getting into crypto is what hinders mass adoption more than anything else. The immaturity of the solutions doesn’t help either, but we can build all the mature solutions we want; if we don’t get usability right, only a small portion of people who are technically adept enough to navigate all this will get there.

That goes for everything. That’s having to use the long machine-readable addresses, but it’s also all the hoops you have to jump through to buy your first Ether in order to get started. Efforts on these fronts are going to be the ones that bear the most fruit, in terms of adoption.

MS: In order to be able to sustain the next level, there are scalability issues that need to be solved.

I have an analogy that I like to use for this situation. What if every transactionin the world, where you are buying a cup of coffee, you need to stand in the same queue as everyone else in the rest of the world, leading up to the coffee cashier. Or if I buy [it] in Sweden, I get it before you, here, and you are behind me. That’s what happens right now [in Ethereum].

That has been resolved in the physical world, because we have locality, and I stand in a queue in Sweden and you stand in a queue somewhere else. Obviously we need something like that. We call it sharding. It’s one of the prerequisites, in my mind, for Ethereum to make it to the next level.

ETHNews: I read about the security testing for the Byzantium hard fork. What can you tell me about fuzzing?

NJ: A programmer walks into a bar and orders a beer. Orders two beers. Orders 3.5 beers. Orders negative one beers. Orders a kitten. This is fuzzing.

Basically, taking some procedure, and throwing random data at it [to] see how it behaves. I think people should pay more attention to what was done with fuzzing.

There were a bunch of people working on it; I think the tech itself is really cool. I think the results it had are really cool. It’s doing differential fuzzing. It’s taking two or more implementations and running them side by side with random inputs, and its seeing if their behavior differs, or if they both react the same way.

Then it uses the information it gathered on what code ran, and it sort of mutates it a little bit, and tries again and again, until it finds a place where they differ. I think the fuzzer is the unsung hero of the Byzantium hard fork.

MS: In fuzzing, what you generally do is you have a black box of code. You send in something, and you get something out. You just randomly send in stuff and see what comes out.

If you want to do differential fuzzing, you have two black boxes: one could be the GethEVM, and one could be the Parity EVM. In my example, the black boxes are the virtual machines, Geth and Parity themselves.

I thought from the beginning – I mean, Ethereum wasn’t perfect from the beginning – there’s a lot of things which have changed. But one thing that I really thought, and still think, was genius, was that they launched with several implementations based on specifications.

ETHNews: Can either of you tell me why the Foundation named Metropolis’s two hard forks after Byzantium and Constantinople? Was this related to implementing Byzantine fault tolerance and the Byzantine Generals Problem?

NJ: Originally, there was only going to be one hard fork called Metropolis. Then it became apparent that we weren’t going to fix all the stuff in Metropolis that we wanted, and still release it at a reasonable time. Vitalik suggested, half-jokingly, that the first hard fork should be called Byzantium, presumably because Byzantium was one of the first metropolises. I said, “Well obviously, the next one has to be called Constantinople, because that’s what replaced Byzantium.”

Johnson and Swende each bring their own unique experiences and styles to the Ethereum ecosystem, where their specific niches put them on the front lines of privacy, safety and scalability. As Ethereum’s user base continues to grow, and the public chain continues to scale, the ecosystem will benefit from their experience and insight as much as the work they do on our behalf.

Martin and Nick, your time was much appreciated! Keep up the good work; and thank you; and the Ethereum Foundation; for all you do to help build a new decentralized internet.