The Changelog: Software Development, Open Source - Ethereum and Cryptocurrency (Interview)
Episode Date: September 30, 2016Gavin Wood joined the show to talk about Ethereum, Cryptocurrency, The DAO, Ethereum Virtual Machine (EVM), what could you build with Ethereum, and the future of digital currency. Gavin Wood is Founde...r of Ethereum, creator of the Solidity contract language, and Founder of Ethcore — the company that created Parity, an open source Ethereum client.
Transcript
Discussion (0)
I'm Gavin Wood, and you're listening to The Change Log.
Welcome back, everyone. This is The Change Log, and I'm your host, Adams Dekowiak. This
is episode 222, and today Jared and I are talking to Gavin Wood about cryptocurrency,
Ethereum, and this big world of unregulated digital currency.
Gavin is the founder of Ethereum, the creator of the Solidity Contract Language, and the
founder of ETHCORE, a company that created Parity, an open source Ethereum client.
We've got two sponsors today, CodeSchool and Rollbar.
Our first sponsor of the show is our friends at CodeSchool, and if you want to learn something
new, a proven method is to learn by doing, and that's exactly the way CodeSchool, and if you want to learn something new, a proven method is to learn
by doing, and that's exactly the way CodeSchool works. You learn to program by doing with hands-on
courses. CodeSchool's courses are organized into paths based on technologies like HTML and CSS,
JavaScript, hot topics like React and Angular, Ruby, Python,.NET, iOS, Git, databases, and even electives that take you off the beaten
path.
Let's see you want to learn React.
You can start level one of CodeSchool's React course, which begins with a quick video lesson
on React components.
After the video, you get hands-on practice building with components using in-browser
coding challenges.
There's no hassle, no setup, just learning.
And when you sign up for
CodeSchool, use our special URL, codeschool.com slash changelog. That'll save you $10 per month,
normally $29 a month. Now it's just $19. Enjoy that. Once again, codeschool.com slash changelog.
And now on a fun show. Gavin Wood joining us today from,
was it ETHCOR? Is that right? ETHCOR, that's right. ETHCOR. And we've never had a conversation
about cryptocurrency on this show yet, Jared. So like, this is a deep subject. Where do we begin?
Well, I think we should begin
learning a little bit about Gavin.
Gavin, first of all, thanks for joining us.
And Gavin, give us a little bit of your backstory.
Tell us about who you are, where you're coming from,
and then we'll probably get some term definitions
going first, just so we have a common vocabulary.
But first of all, welcome to the show
and tell us a little bit about yourself.
Well, thanks for having me.
So I've been coding since probably around the age of seven or eight.
I can't remember exactly when.
On an old 8-bit, barely supported computer with no games, which kind of led me to the necessity for actually coding.
I did school. I actually made a few games then, and I actually ended up publishing one of them
in a magazine at the time, which was kind of nice.
University I got to, and I did a master's in computing
and eventually a PhD,
which was specialized in music visualization,
an interesting subject in and of itself.
I spent a short stint in the games industry, working with a company called Frontier Development,
who some of the older listeners probably remember as Elite, the original 8-bit space trading
game, which was pretty enjoyable.
I left there to go and do some consulting work on and off.
So I worked for Microsoft Research for a while,
doing some of their more advanced kind of API-driven projects,
working on things like video synthesis and embedded domain-specific languages.
And after a couple of startups, I ended up getting to Ethereum.
I met up with Vitalik back in late 2013 and as being the first working implementation
in that it's the first one that could actually send transactions
between machines and allow you to run programs
on the Ethereum virtual machine.
You mentioned a name there, Vitalik.
He's the inventor and co-creator of Ethereum, right?
That's exactly right, yeah.
Okay. And so you met him where?
We actually
first met in Miami
back for the
Bitcoin conference
then. We chatted a little in the
previous December in
2013 and then finally met
in Miami. Are you guys
proximity-wise close together, like in terms
of geographics?
We both moved around a lot during that time.
So we did spend a few months quite close to each other, sort of touring America.
But by and large, we kind of both moving around generally different places,
occasionally bumping into each other.
Gavin, on your website, you say that you're a free trust technologist.
Can you give us a little bit of what that means?
Yeah, I'll try my best.
I've been asked this question numerous times, and I think I generally give different answers each one,
and I'm not sure any of them are particularly good. So when we say free trust, really what we're talking about is
this notion that there are machines and organizations and individuals with an elevated
trust rating in the world, let's say. So when we interact with a bank or with a government,
we sort of innately trust them. In the case of a government, we more or less have to trust them
because we're not given any choice.
And the same is sort of true for many of the institutions.
And these guys form kind of nexuses. They form kind of very particular points in the fabric of society in that we can go
to them for our fees services.
We can't go to anybody else.
It's not like i can do
my banking with um with my best friend who i actually do trust so when we're talking about
trying to architect systems like financial systems to take a poignant example um we could
architect these in the way that they've always been architected sort of server client where the
server is trusted and the client isn't.
And that's what we've done so far.
Or we can architect them in what I would call
a trust-free fashion,
where there isn't really a trusted server.
There isn't really a sort of trusted organization.
There's just peers.
And peers verify what each other says
by virtue of sort of knowing enough information that they actually can.
So if you look at Bitcoin, the only reason Bitcoin really works is that all of the nodes on the network don't have to trust the other nodes.
They only need to trust themselves.
If they had to trust some other nodes, then it wouldn't really be trust free.
I think that's a pretty good explanation. So speaking of nodes on the network and financial systems, let's dig a little bit into Ethereum just at a top level, maybe explain some jargon.
But I think what might be useful for your sake, Gavin, is to get a little bit of Adam and Mai's
background with regard to cryptocurrencies, Bitcoin, Ethereum, just so you know where we
stand in terms of understanding. And I'll just let you know that our at a high level.
Give us Ethereum, the elevator pitch in light of that level of background, and then we'll
go into help and clarify a few of the terms here next.
So Ethereum is programmable money.
So Bitcoin is money, more or less, on the internet.
Magic internet money, as it's sometimes called.
Right. Well, Ethereum is programmable money. more or less on the internet, magic internet money as it's sometimes called.
Well, Ethereum is programmable money. So it's doing the same thing. It's still magic internet money, but this money can have particular software attached to it, particular conditions
or particular logic. It can even have storage attached to it. So money can remember some sort
of history, can remember what's happened to itself, and it can do different things dependent on that memory. So that's really what we're talking about with Ethereum.
Now, it could also be described as a decentralized application platform. It could be described as a
smart contract platform. But at the end of the day, probably the thing that makes the most sense
to people is the notion that it's money that can have program software install actually in it.
So to lay out a few pieces of the puzzle here, we have Ethereum, the platform,
which is a application platform. You have Ether, which, and you can just correct me any point
that I misstep here. Ether is the currency, the store of value.
And then you have Solidity,
which I believe is
the programming languages
that you use to develop
this programmable money.
And then we have one aspect
of the Ethereum atmosphere
ecosystem called the DAO
or the DAO,
which is often brought up,
but not necessarily the same thing. So can you
help me with those pieces and maybe explain them better than I can? Sure. So Ethereum is the whole
deal. Ethereum is often used to mean the ecosystem or the network or the technology. And in some
sense, it's all three. Ether is very specifically the currency.
So it's this notion of this token that exists on a decentralized peer-based network that people can
own and pass between each other. The Ether is a kind of special currency or a special token in
that it can be used to pay for computation services on the Ethereum network. The Solidity is indeed one of several languages
that can be used to encode contracts, the program contracts. And these contracts,
when we say contracts, what we're actually meaning is the software that is attached to Ether,
that is attached to the money, to the currency. Now, when we've got,
I should also introduce another term called the EVM.
So the EVM is the Ethereum virtual machine.
And this is very similar way
to the Java virtual machine.
And Java, this relates to solidity
in that it's the ultimate
sort of backend architecture
that the language gets compiled to.
Finally, the DAO. So the DAO is a very particular
bit of software that was placed on Ethereum. So it's a contract. In fact, it's a set of contracts.
And it's notably had a bug in it, which cost quite a lot of people quite a lot of stress.
Yes. Very good. Well, that's helping clarify things for me, at least. Let's talk
about it in light of Bitcoin. So you said Bitcoin is this magical internet money and Ethereum is
this magical and programmable internet money. Why the need for Ethereum when Bitcoin existed?
Could we not make Bitcoin programmable or could we not layer on top of Bitcoin?
Yeah. I mean, other systems have attempted this. So if you look at, for example, Omni,
named MasterCoin or Counterparty, they've attempted to actually layer on top of Bitcoin. And it's difficult.
Bitcoin really wasn't designed to be a base layer
of ultimately multiple protocols.
And so it's sort of trying to,
I think Vitalik actually coined the phrase,
it's like trying to implement HTTP over SNTP.
It doesn't quite work.
The alternative, which is to sort of try and build Bitcoin out into something much more like Ethereum, I think is possible. But then you've
got the issue of governance. Who decides how the Bitcoin protocol should evolve over time?
And being an entirely decentralized sort of peer-to-peer system. There is really no governance system in place to make that decision.
And as such, what we've seen over the months and years is that Bitcoin actually is relatively stable,
some might say, or stagnant, others might say.
Either way, significant changes are very difficult to make to Bitcoin,
basically because you require
everybody's acceptance before they can go in.
Right.
So the reason why I first got interested in Ethereum, it was thanks to Fred, I think Air
Sam is how you say his last name, the CEO of Coinbase.
Last spring, he wrote a post, which we'll link up in the show notes, called Ethereum
is the Forefront of Digital Currency. And in that article, he lays out that basically Bitcoin is hard to program and Ethereum
is built to be programmed. And that's the major difference. It's kind of like tacking something
on later or using it as one of your founding principles of design. You're always going to
be able to do it better when
you start from the very beginning.
You think, is that a fair characterization?
Yes, I would say so.
And that's not to say that Ethereum is sort of amazing in every respect, but rather that
for this one particular feature, Ethereum did very much have that built into the design.
And so because of that, the languages, the solidity and these other ways that you go
about writing programs on Ethereum or for Ethereum are more like higher level languages,
scripting languages, as opposed to perhaps, you know, lower level C or assembly.
I don't know what you write Bitcoin applications in.
And is that a good way of
thinking about it? We have kind of the scripting level of Ethereum, whereas Bitcoin is kind of
like a lower level language? This is a little more sort of interesting. Both Bitcoin and Ethereum
have the notion of scripting language. In fact, before, in the very early editions of the Ethereum white paper,
what we now call the EVM or the EVM opcodes were called Etherscript ES.
Now, I actually made the alteration to EVM because I felt it very much recognized the fact that we were actually creating a virtual machine rather than actually attempting to create a scripted language.
And as such, I did not believe at the time that we were going to end up programming scripts,
as it were, using these opcodes or these scripting atoms, but rather that we were going to be
creating higher level languages that should compile down to these opcodes.
And so the EVM sort of opcode notions and terminology made a lot more sense
than the EtherScript ones.
Now that's how it did play out, surprisingly.
But I think it's unfair to characterize
that the languages are necessarily kind of high level
as opposed to Bitcoin.
I think in principle,
you could create a high level language
and have it compiled down to the Bitcoin opcodes. Of course, it wouldn't be a great language because
Bitcoin doesn't support things like looping. But in principle, there could be some higher level
language applied to it. Similarly with Ethereum, the first language I created for programming contracts was LLL, the low-level language or the Lisp-like language, which was indeed very low-level.
You tended to code with opcodes themselves, but it allowed you to do so in a way that was a little more convenient.
Right, Right. So you said you said contracts there and you mentioned smart contracts previously.
And perhaps that's a term that we haven't quite explicitly stated how that fits into
the equation.
And it sounds like smart contracts are kind of the end result of the programming that
you do.
Can you explain smart contracts and what that means?
Yeah.
So the smart contracts are something that Nick Szabo wrote
something somewhat about in the early 90s.
And it's basically the idea that you can have contracts
which are written in English or whatever the language of the country is
sort of executed in terms of a court ultimately and lawyers and judges. Or you can have the same sort of concept,
the same sort of agreements, but codified in a machine-readable fashion, and ultimately
executed by computers. What Ethereum does is it provides a platform for these smart contracts. So it provides a means of
codifying what we would normally see in sort of proper legal context and placing it into a
computer program. Now, really, when we talk about contracts on the Ethereum platform, we're actually
just talking about very basic software, right? And any programmer would come to it and they would
recognize it as being software.
So it's not that they actually look like contracts,
but rather it's more about the intent.
These things are intended to govern the use of,
or to govern the meaning of money and cash flows.
And so in that sense,
they're contractual agreements between parties.
So they're basically meant to be computer programs that govern the dynamics of value.
Computer programs that govern the dynamics of value.
And as we'll find as we get deeper in this conversation, there seems to be a divide in the Ethereum community and in the cryptocurrency community over the idealist side of that, which is that the program is the
final say, because that's what the agreement is versus what you might call the pragmatic
look at it, which is that the program is supposed to represent the agreement,
but programs have defects and bugs as we found out. And so it's less black and white.
But before that, let's tee this up and then we'll take our first break.
So we have smart contracts.
We can program them with this Solidity programming language
or set of languages
and run these things on the Ethereum virtual machine.
But the question that comes to my mind,
I think the one that's interesting to our audience so much
as developers is like,
that sounds great and all, but like, what can I build?
Like, what does this open up? What are some applications that now I can create using this
that I couldn't create previously? So don't answer that Gavin, we'll take a break and you
can answer it on the other side. We'll be right back. Hey everyone, Adam Stachowiak here,
editor-in-chiefief of Changelog.
And I'm talking to a Rollbar customer.
Rollbar puts errors in their place.
Rollbar.com slash Changelog.
Check them out.
Get 90 days of the bootstrap plan totally for free.
I had a conversation with Paul Bigger, founder of CircleCI.
And he talked deeply about how they use Rollbar and how important
that tool is to their developers. Take a listen. One of the key parts about doing continuous
delivery, you don't just have to test your software, but you have to constantly keep track
of it. You're going to be doing deploys 10 times a day or 20 times a day, and you have to know that
each deploy works. And the way to do that is to have really good monitoring and roll bar is is literally the thing that you need to do that monitoring you need to make sure
that every time you deploy you're going to get an alert if something goes wrong and that's exactly
what roll bar does for for circle ci so obviously circle ci is important to your customers you
shouldn't have errors you shouldn't have bugs,
and the purpose of a CI is continuous delivery obviously, but getting your customers code to production in a fast manner that's tested and all the necessary things a CI provides. Tell me how
important Rollbar is to your team and your organization. We operate at serious scale and
literally the first thing we do
when we create a new service
is we install RoboRenit.
We need to have that visibility.
And without that visibility,
it would be impossible to run at the scale we do.
And certainly with the number of people that we have.
We're a relatively small team operating a major service.
And without the visibility that RoboRlox gives us into our exceptions,
it just wouldn't be possible.
Oh, that's awesome.
Thanks, Paul.
I appreciate your time.
So listeners, we have a special offer for you.
Go to roblox.com slash changelog.
Sign up.
Get the bootstrap plan for free for 90 days.
That's 300,000 errors tracked totally for free.
Give Roblox a try today. Head over over to rollbar.com slash changelog.
All right. We are back with Gavin Wood talking about cryptocurrencies in general and Ethereum in particular.
Gavin, I teed up before the break that I'm interested in what are the kind of things that can be built on this platform?
And maybe perhaps just as interesting things that have been built or are being built.
What are some use cases?
Where does this really fit in where we can take advantage of it as developers?
Yeah, it's an interesting question.
The funny thing is that we're not creating a new language, as it were.
We're creating a new kind of computer.
So up until now, computers have been very much physically localized,
which means that anybody who's sat near to that particular physical local space
has in some sense an advantage over what the computer's going to do.
Now, we call this basically administration or sysadmin or DevOps or whatever.
And it seems like an obvious thing.
It's like, well, of course, there's a computer.
And of course, there's going to be someone who administers it.
And of course, there's going to be someone who can ultimately pull the plug if they want to turn the computer off.
But really with Ethereum, what we've done is we've built a computer.
That role doesn't exist.
The computer cannot, at least in principle, be turned off.
And there isn't anyone who is sat by it who can sort of log in as administrator and start altering
the database. In effect, we've built a computer that everybody can share in almost as though
there's sort of a JavaScript environment that everybody is allowed to log into and step on
each other's toes, except we've done so building with safeguards to prevent people stepping on each other's toes
so that the objects in this object environment are only allowed to sort of call each other
in very particular manners and with very particular safeguards attached.
So when we think about applications, well, then we get to the thing of, well,
actually, what could i do if there were
um this javascript environment or whatever that that anybody could log into and could do so
securely with an authenticated um sort of user identity that we could count on and then we can
start thinking about right well um what does servers currently offer that the Ethereum machine, the Ethereum computer, could
in principle do?
And one of them is obviously currencies.
Central banks and probably most consumer banks will have a computer that retains the account
balances of each identity that banks with them, each person or each organization.
And in principle, we can place this software on this world computer, but because it's a world
computer and it's shared, it means that we can not just be fairly guaranteed it's going
to work okay because we can audit it, but also that we can use these balances, this
logic in other applications.
No longer do we need to start integrating with banks or
central banks or payment systems, but we can use the currency directly because it turns out that
the object, literally the software object, the instance that is listing everybody's account
balances is in the same environment, like literally almost like in the same computer program as the the software
that's actually wanting to make a payment and when when you start considering well actually
there's no limit to this the environment can be added to as required and anybody can push logic
and code to the environment and be sure that the logic and code that they see is going to continue
working exactly as they expect um or at least as the code states, then we can start really thinking about how we can rewire society so that many
of our systems that we currently have to have behind walled gardens, looked after by very
influential, powerful organizations and people, or we can start bringing this logic that runs society because it really does
run society actually into a shared space and sort of redemocratize it.
If you like.
I have a question here on the building side of things,
Jared is,
is just using Coinbase.
Since we mentioned them as the example,
when you say,
how do you get ether?
How do you buy ether?
You know,
their steps are pretty easy.
It's one, two, three.
You sign up for Coinbase.
We're not advertising for them, but this is just theirs.
But this is how you get Ether in this case, unless you mine it.
So you sign up for Coinbase.
You connect your bank account and you buy some,
essentially exchange some currency that you have,
which could be US, it could be pounds,
it could be something else.
And then you buy and then you sell Ether.
At what point does
a developer or someone as jared has said care to build something on this at what point do they get
to program ether so what the coinbase and other exchanges are actually a few of them um what they
do is essentially perform a bridge between the the the current kind of legacy world of value of money and the sort of new crypto
world of value. So they allow you to buy and trade Ether for fiat currency. And they have a foot in
both domains, as it were. Now, the developer, once the developer sort of figures out what they want
to do with this sort of shared computer, the developer will probably take some Ether, because
you need Ether to pay for computation on the shared computer, and start coding up what will
effectively be the backend. So what we normally think of as being, you know, something that sits on a server that
has maybe a database attached that provides services to multiple clients, that's basically
the logic that's going to be moved onto the Ethereum computer, the Ethereum blockchain.
And so that kind of will start coding up a contract, which is just a piece of software.
It's almost like an object, right? It's like, if you're talking C++ program, it'll be like a class.
If you're talking, I don't know, a Rust program, it'll be a struct. But yeah, it's basically an
object with some functions that can do some stuff. And that will be uploaded to the Ethereum network
with a small payment of Ether just to sort of pay off the maintainers of the network, the miners.
And then it will sit there.
And it'll sit there until someone wants to interact with it.
And then it's up to the developer to write the front end,
which would normally, you know,
this is basically the same sort of technologies,
Java, CSS, HTML.
It's just that the Java, sorry, the JavaScript.
It's just that the JavaScript, yeah.
The JavaScript can... Happens to the best of us.
I had to laugh out loud on that one, sorry.
The JavaScript's actually able to call into this contract
or this instance that's sitting on the Ethereum network.
It's able to call methods that sort of alter its state,
and it's also able to check what,
to inspect the various properties that are public.
So is it safe to think of it in terms of like
any sort of agreement that you would previously make
in the real world or what you call the legacy world,
you could now move that to an application
on the Ethereum network.
So perhaps a mortgage or an agreement to buy something or a prenuptial agreement or anything
that you could possibly think that would be an agreement between two parties, you could
we could now move this into the virtual space safely.
That's in principle correct.
Yes.
Now, there are a few.
There's one thing to point out, which is that doesn't just need to be between two parties, but can be between any number of parties.
Right.
Now, the other thing is to say the concepts that the blockchain can currently encode, which is to say the language that we have to play with in terms of what aspects of reality
we want to place on the blockchain.
So for example, if we're talking about a marriage contract, we may want to talk about things
like there being a lawyer in the case of divorce, a judge in the case of divorce to determine
whose fault it was that they're getting divorced in order to make sure that there's proper payment between the two. Now, the notion of judge is not really, it's pretty easy to write
that into a legal contract because we have centuries of case law about what it is to be
in such a role. That's not the case with Ethereum. We're still in the very early days.
And so
we have relatively little concept. Our language is not very rich. But the richness is something
that in the same way that with programming, you end up having, you know, increasing your
sort of the level at which you code over time as more and more libraries, system libraries
are written and integrated into the system. You end up being able to code in much richer
concepts and that's going to be the same with Ethereum. So at the system, you end up being able to code in much richer concepts.
That's going to be the same with Ethereum.
At the moment, the concepts we are able to draw on are relatively whatever poor, poor.
But over time, we're going to be building these kind of whatever system libraries, as
you might say, or case precedent law in the case of legal,
to take the legal parallel, this is going to build up the language into something much richer.
I think it might be useful to specify a specific set of contracts that we could talk about in real
terms. And that will help us understand kind of the ins and the outs. I think that's kind of what
Adam was getting at with like, how does the ether fit in and how do you get money in and out?
And the DAO is no doubt your most popular set of contracts and perhaps a little bit
notorious now because of the hack.
Give us the DAO, the lay of the land and the recent history there and help us understand
Ethereum in light of it.
Sure.
So the DAO, if we're not aware, stands for Decentralized Autonomous Organization.
Essentially, it's a means of bringing various people together into some form of bound contract or some bound set of interests.
So the idea behind the DAO is more or less like a fund.
So it can VC fund, it can back particular
endeavors. And the idea is that the endeavors will ultimately make money or create value and
push the value back into the DAO so that all of the members of the DAO get in some sense richer.
Now you can buy into the DAO, that was the idea, by depositing Ether under the control of this DAO contract.
Now, it's a bit of an odd thing to say, well, putting money under control of a contract,
how does that work? But that's exactly how it works, right? You write some software,
and the software states the logic of this agreement, of this multilateral agreement,
and part of the logic is saying,
what happens or under what circumstances money should be transferred. And in much the same way that you might have a joint bank account where you need both signatures before the money is
transferred. Well, so it was the case with the Dow. Under the Dow, it all happened with
4,000 or 5,000 or whatever signatories signatories and you needed there was some much more complex thing about how many of them had to agree to it before
funds were transferred but nonetheless basically it's that kind of thing it's a shared bank account
with um very particular logic for um who gets what money and for um for hopefully integrating the eventual ventures back into the DAO so the DAO itself can reward those who sort of backed the right venture.
So who wrote the smart contract for the DAO and then who all got involved and how much money was jointly shared in that contract? Yeah, there were several contributors to the DAO contract.
But I think it's probably fair to say
that the main contributor was a guy
called Christoph Jentsch.
And is he a notable member of the Ethereum community
or is he a part of, was it just in his free time?
Like, give us kind of the, I don't know,
the geopolitical landscape of this
so we can understand it better.
Sure. So there was a uh
a company called slocket which still exists and they're doing uh as far as i hear reasonably well
um and um for whatever reason slocket wanted to sort of pursue this idea of a
of a universal sharing network so this is is the idea of basically take something like
Airbnb and take Uber and maybe a few other sort of apps that allow people to share their resources
or do decentralized service industry work. And that's kind of what this was about. This was
basically trying to take a resource that you own
and be able to allow someone else to use it
for a period of time in return for a payment.
So the idea behind Slockit was basically to say,
right, well, one of the critical sort of elements
to make this work is going to be a lock
that's controlled by a blockchain.
So they went away and they made a lock that was controlled by a blockchain.
Over on that subject, I don't mind if maybe we can just establish one more,
as you said earlier, Jared, just kind of like some terminology.
And for those that are new to it, it may be completely obvious
for those who are deep into this, but for those who want,
what exactly is a blockchain?
So the blockchain is the underlying data structure that allows Ethereum to be both secure and decentralized.
So normally, if you've got a decentralized system, there's no real way of.
Well, because you don't trust anybody on it because it's decentralized and anybody could be on it um it's kind of hard to to to get a sort
of footing to understand what what is what's the noise and what's the signal so what the blockchain
is is a decentralized data structure that allows us to to create a signal that everyone agrees on
despite uh the noise of malevolent actors or just broken machines. So critically, it's basically what I would call a
sort of decentralized state transition system. So if we imagine that there's some shared states,
and the state could be as simple as, when we imagine a state, we might imagine the memory
of a computer at one particular point in time. And this state is going to iterate as transactions or operations are executed on the
computer in the same way that, you know, as you type something into a text editor, the memory of
the text editor changes. And what we've done basically with the blockchain is create a
decentralized version of that. So we can place programs on and the programs have some state
and they will the program the ongoing operation of the program will be managed by the network as
a whole rather than by any one computer individually so back to the to the history
of the dow you mentioned uh slotkit and the setup and the DAO. Give us a time period on
this in terms of when it started. And then we know it became very popular and a lot of
people joined and a lot of money went into it, perhaps more than anybody was necessarily
expecting at the time. Can you continue down that path for us?
Yeah. So the DAO was deployed by person or persons unknown. And two companies were
particularly sort of enthusiastic about it. I forget one of them, I think it was a robotics
firm and the other one was SlotKit. Now, indeed, a substantial amount of funds went into it. I think
it was sort of 150 million was the figure banded about,
but I think it actually went even higher than that at one point
because Ether itself started to creep up in value.
And so it was really quite a lot of funds,
and I think it was probably more than anyone had expected,
including some of the authors of the contract itself.
And then, yes, indeed, there was a bug in the contract,
which was probably a bug that would be recognizable
to a low-level device driver programmer.
And in a way, the contracts that were writing these programs
are more or less at that level because they're
dealing so closely with the ethereum virtual machine so essentially it was a re-entry bug
the a particular function call was was being called actually within itself by the malicious
by the malicious transaction and so before it actually finished its operation, it was being called a game.
And because of the order of the points in the function,
it was doing the sort of the bad thing
before it was doing the good thing.
And so the bad things started to multiply up.
And eventually the good things couldn't actually,
they were asymmetric and the good things
couldn't make it back down to normal again um and that's essentially what what went wrong so basically someone was
draining money out the bad thing um and the money there was no way of compensating that
the good thing because so much money had been drained out um now re-entry books are pretty um
when i think of a re-entry book i think of interrupt programming and it was only after
this book that i thought actually what we're doing with the with the contract is is in some sense
more similar to interrupts rather than function calls when we think about function calls we don't
really think about re-entry books so much at least not malicious re-entry books um with interrupt
programming it's a little different and you're much more careful about your state because you do actually fear that the same interrupt may be called while the current one is executing.
So money began to be drained. Where is it drained to? Where does it go? To this other person's Ether wallet or some sort of bank account? Where does it go when it gets sort of getting drained out?
So there were numerous safeguards written into the logic of the DAO,
which prevented the money from going anywhere anytime soon.
I think within about 30 or 40 days,
it would have taken to actually get the money out into a wallet. And then it turned out that a group of concerned parties
called the Robin Hood Group or the White Hat group actually hacked
the DAO themselves using a similar attack and then a selection of similar attacks actually,
in order to safeguard as much of the funds as possible and to prevent the attacker from
actually taking any and drawing any of the funds out themselves.
And so effectively, it turned into a stalemate where they were using the attack against each other and the funds were just locked.
Sounds very much like the wild, wild west that we've heard all about.
And do you think that's kind of a fair way to think about it?
Because it is completely decentralized.
It's virtual. It crosses international datelines and borders. There's no law in this. There's different laws in different countries. But then you also have the smart contract kind of is the contract. money they have on the whole um some might have just been amused but who's to say what happens and where it goes from here is it very much just like whoever executes on technical abilities or
give us give us insight into that because it's so fascinating and yet it just seems like
who knows what's going to happen um so i think the wild wild west west comment is quite true. It is a lawless sort of area if you don't count
the law of the program, the law of the software. Now, ultimately, the software is based upon
a social system, which is that assuming that everybody is self-interested, then
the economics of the blockchain will mean that no individual can
actually alter the outcome of anything. Everyone is sort of almost pulling in a different direction,
which averages out at zero. That's the kind of thing the blockchain is trying to
engender. And that's the economic game that sort of acts as the foundation to why the blockchain is fair and democratic.
Now, with the DAO, of course, so much of the value was sort of compromised that that assertion was not wholly true
in that the parties that were maintaining Ethereum,
the community in fact, had an awful lot to lose.
And so in some sense, what happened was that they formed almost like a special interest group within the Ethereum community,
which wanted a reset of this particular sort of bug or a particular exploit of the bug.
And so here we have the decision of what to do about it.
This is to get some context,
June-ish,
July-ish 2016.
That's probably enough timeframe,
although not probably completely accurate,
but then you have conversations going out and you know,
where is the,
where does the community meet
from my perspective as more of a community watcher it's like they're on twitter they're on reddit i'm
sure there's forums on different ethereum uh websites and probably there's some conversation
behind closed doors but from your perspective where is the community conversation going around
about what do we do about this circumstance?
It's everything that you've mentioned, basically.
It's, you know, social media.
I mean, there was even stuff going on on GitHub, like some of the issues that were perhaps a little more contentious of things that were coding up potential solutions or potential mitigations were attracting quite heated arguments about what the code was doing and whether it was even right to start programming, whether it was right to put forward potential tool requests.
So, I mean, it was going on all over the place, which is unsurprising given that there wasn't a single point of governance for this community.
So it's going to just come out everywhere.
Now, I'd point out that one of the more interesting sort of places was this voting system. I don't remember who wrote it, but some concerned party within the community
wrote basically a voting application
that allowed you to back your vote with ether.
So you're essentially able to tie a particular vote
to a particular account
that presumably was holding your ether.
And what it allowed you to do
was get a weighted set of results about what
the, uh, the general desire of the community was. Hmm. So, uh, the decision was made for the reset,
correct? So there was a hard fork in the road at which, uh, we can talk about the implications of
that, but was that decision made using this tool where everybody voted and it was
kind of a majority win or was there, how does the actual consensus come together?
Was it, was it the tool?
Um, well, this is the, this is also the funny thing.
There really wasn't any particular decision made, at least no, no big one.
The, um, the, the, the, the network, um, consensus essentially came from people running their client, their Ethereum client, with one option or another option.
So we're literally just talking about a command line flag here.
And it was basically, if you run your client with one flag and you mine your mining blocks, we assume, then it will mine on one chain, which will not rescue the DAO.
And if you mine with some other flag, then it will mine on the other chain, which will rescue the DAO.
So nobody made a specific decision other than the miners themselves.
And some of the miners just decided one way or another.
Other of the miners, particularly the pools, actually put it out to a vote.
So they said to their members, you know, which way would you like us to mine?
Which flag would you like us to set?
And the pool members would have voted one way or the other.
And I think one of the pools actually voted against the fork.
So they voted to sort of keep the exploit in place.
But I think ultimately, actually,
the pool decided to override them
then anyway when it was clear that everybody else was um was was going with the other does that mean
that from that point forward once you had people running you know with both flags you basically
have two blockchains or two histories that are running in parallel is that how that works yeah
it's basically like imagine if you if you had a computer program running
and then sort of you did a hotfix for it.
Then what would happen if, you know,
Schrodinger's cat,
if there was an exactly 50% chance
that you did the hotfix and deployed it
and 50% chance that you didn't,
then you would end up with this kind of quantum
entangled computer program that may or may
not have the fix. And that's effectively
what happened with Ethereum.
So it may or may not have happened.
So it may or may not have happened.
And it depends on which Ethereum you look at.
So as soon as you choose
an Ethereum, then it will snap
into one state or the other.
But until then,
it may or may not happen.
Wow. That's funny.
One thing I think about as we
have this conversation, Jared's
deeper into this. He's done a lot of the research on this,
and I'm sort of playing outfielder,
so to speak. He's pitching.
But I'm thinking about things like trust,
right? Like you've got the DAO, which
is a contract written, a lot of money pulled into it.
And when you think about the trust of or the mainstream public eventually making cryptocurrency become more and more mainstream, you think about this level of trust.
And so what happened with the DAO? is this simply a a contract issue the way that somebody wrote a contract or is it something that
is underlying the actual technology that as we just mentioned was forked with one ethereum or
the other it's not so much how which program was better it was more or less which blockchain was
chosen right like how do people deal with trust when you look at this this problem y'all faced
and this fork and this hacker, so to speak,
and then the white hat hackers hacking the hacker and all this stuff.
How do people come into this as not insiders and operate with a level of trust?
So I think some parallels can be drawn to the early internet where, you know, there was sort of slightly scary to send payment information over the internet.
So I remember back in 98 and it was still relatively commonplace.
I was still being asked to pass my credit card information via email.
It's like, well, I don't really want to do that.
That's incredibly insecure
um ssl was still kind of a fairly new thing and to the point that the e-commerce sites often didn't
have it implemented um and you know we're kind of we're gonna have to go through the same phase
of the theory so there's gonna be an early teething stage where things don't operate quite as you expect. Either the Ethereum technology itself doesn't, luckily,
we haven't had any of those bugs yet. But in principle, it could happen. It is a nascent
technology. It happened with Bitcoin. So I wouldn't rule it out, though we have taken
very particular steps to avoid that, in particular multiple implementations and a formal specification.
And the second thing that could happen is just the economic foundation behind the smooth
running of the Ethereum network gets a little frayed, and that's pretty much what happened
with the DAO.
The fact it forked owed to the fact that there was such a large contingent of value that people wanted to save that were also people who maintained the Ethereum network.
And I think as the network matures, that's going to be much less likely to happen, quite simply because the value of Ethereum is going to disperse as more and more people get involved. I guess the other question is, on the front of that, as you mentioned before, Jared, $150-160
million in the Dow, and Gavin, with you saying this is still sort of like compared to the
Wild Wild West, as Jared mentioned earlier, and then what you just said there, it seems
like it's kind of like even in guinea pig stage almost. Not so much like that it doesn't work, because it does, but there's some kinks in the rope, so to speak, that need to be ironed out.
And only maturity and only time will allow that to happen.
Is it possible that someone with lots of money in Ether could potentially lose big as part of the maturity? I wouldn't rule it out.
Though, as someone with a substantial portion of their net worth in Ether,
I also wouldn't say it's such a terrible bet either.
Let's pause there on that note since you said that because I have to ask.
So you said a substantial amount of your net worth is in Ether, is that right?
That's correct.
So percentage, just percentage, not so much a number.
Just curious.
70%, 60%, 30?
Yeah, like at least 50.
50, okay.
So you're half in, half out, so to speak.
Something like that.
Okay.
It's probably also worth just clarifying, just for transparency reasons.
We'll have people, especially some of our listeners are, you know, I talked about the
ones who were against the fork and the ones that are for the fork.
I looked at it very much like the idealistic point of view is like, this is the way the
contract was signed.
So it must exist that way and the
others are more pragmatic like nobody wanted this to be able to happen and all this money be drained
out and of course where you fall on that line if you're not just an observer um if you're involved
is very much tight-ended if you have money that you'll be losing so you have you know a lot of
your your personal wealth in ether i
assumed you also had part in the dow is that true um i had i made a uh a small investment in the
dow okay cool yeah i mean nothing against that just it helps give a little color to the your
your pro i'm sure you're a pro fork correct um well i had a fairly nuanced and still continuous of a fairly nuanced view i think the um
oh let's hear it the sad thing was that both options neither were especially great options
the the situation was was sort of pretty bad that the hand that was dealt was was really quite um
quite unfortunate.
Well, on one side, money is saved, right? And then on the other
side, it's like trust is reduced.
Is that basically what happened?
So it's not clear whether money was really saved
in that
the substantial
portion of Ether's value
was reduced
around the time of the time the die
around the time of the dow hack so i mean it went it was around 21 i think around the dow
hack and then it sort of pushed down to maybe nine eight or nine i think when it went through
so um it's not really clear whether fixing it really saved money.
For any holders of the DAO tokens that had less than, I guess,
around 15% of their Ether in the DAO token,
then they wouldn't have lost money.
It was only for the people who put in more than 15%,
since it was 15% that ultimately maybe may have been locked forever
through the stalemate position. So in reality, I'm not sure whether it really was saving money,
but then that said, you know, if you have the option of trying to write what is pretty obviously
a wrong, should you do
something or should you not do something so for me it was more like um it was less of a practical
concern and more of just like well maybe you know if i see someone being robbed in the street i
would like to actually be the guy that goes up and like stops the robber and returns the hand
right and so it was that kind of notion uh going alongside it but that said
there's also an awfully strong um principle here which is that the blockchain is meant to be
immutable and the code that's on it is meant to actually be the code that governs how the value is
um you know how that logic works and so it's really quite difficult to weigh one up against the other.
And that was the problem.
That was the situation that we found ourselves in.
So if there was a vote, since it is a one or a zero in this case,
like you either voted for, you voted against it,
which there was no true vote, but it's, as you said,
your answer is nuanced and you explain that to us in the end,
if it had to come down to a vote of four or against,
which would have it been
um i've never answered that question to myself and i don't plan on doing so
okay fair enough well let's let's take our next break we have more to talk about so many
interesting things here this is just fascinating stuff to me and to give a little bit of a
background we we had this show teed up. Like I said, I read
that post on the Coinbase blog back in April. And I think I probably emailed you immediately
following Gavin. We got you on the show in June of 2016. And due to some technical issues,
we actually didn't record that day. And that was like right when you're in the middle of all this
DAO stuff. And in fact, I think we joked that, you know, maybe we better do the show a little bit later because this will have passed.
And Adam and I said, well, maybe, you know, cryptocurrencies and these altcoins and everything comes and goes so fast.
Maybe there won't be an Ethereum by the time I think we had an August schedule and then a September schedule.
And so here we are talking about it. So it seems like you weathered the storm, but I want to kind of talk about the fallout and the
repercussions of the hard fork and where things are now and give people some look into the present
and the future and how we can fit in as software developers. So tee that all up and we'll be right Every Saturday morning we ship an email called ChangeLog Weekly.
It's our editorialized take on what happened this week in open source and software development.
It's not generated by a machine. There's no algorithms involved.
It's me, it's Jared, hand curating this email, keeping up to date with the latest headlines, links, videos, projects, and repos. And to get this awesome email in your inbox every single week, head to
changelog.com slash weekly and subscribe. All right, we are back with Gavin Wood and we have
done it. We've survived the Dow hack. We are on the other side now looking back this is uh
late september early october 2016 the ethereum community still lives it's a little bit different
now we actually have two histories two currencies and there's now ethereum and ethereum classic
gavin give us the lay of the land now after you guys have survived and kind of moved forward
from the unfortunate summer you had.
Well, it's more or less, as you said, indeed, Ethereum split up basically between the people
that ran the, with a flag that said, help the DAO, help rescue the DAO.
And on the other hand, the people who didn't run with that flag.
And so we have what Ethereum, the immutable Ethereum, as it were, the Ethereum that was
where the code truly did rule, the broken code ruled, and then the Ethereum where it was sort of
hard coded to fix that application issue. And that's more or less where it stands. So by and large,
the aftermath has died down. People are getting on. So I think at the moment, the DEVCON,
the Ethereum conference is happening in Shanghai. And I don't think there's all that much talk about
Ethereum Classic, although I can't say for sure. But from what I've seen of the talks,
people are sort of focusing much more on the sort of forward-looking stuff
rather than the DAO.
And the Ethereum Classic community seems to be sort of continuing.
I haven't seen any sort of major technical improvements on it recently,
but nonetheless, there's a change in their logo,
and it is continuing.
The price is dropping somewhat, but yeah, it seems to be still here.
Still here.
So let's talk in terms of market value.
I'm not sure what Ethereum maxed out at pre-DAO hack,
but it looks like it's trading against the US dollar at about $14.
Yeah, it was about $21 before the DAO hack.
And is that the max that it's reached in its lifetime?
Yes.
Okay.
Well, it sounds like not too bad.
I mean, it's not like it's a penny stock nowadays.
No, I mean, it hit, I think, $8 or $9.
I don't remember precisely how far down it went, but around that.
And so it's back up to, I mean, the 21 looked fairly bubble-like.
It was really riding on the back of all this investment in the DAO. I think there was a lot of maybe people coming into Ethereum from outside of the ecosystem
rather than just Ether holders themselves putting their Ether into the DAO.
I think that's probably what was pushing the price up a little.
So I'd say it's doing pretty well.
It's certainly reached my expectations.
Right.
Well, this isn't an investment show.
It's definitely a show about software.
And so I'll stop down that route.
But let me just say that we've been watching this
and watched loosely some
of the alternative coins or the things that are like changes to bitcoin or you know inspired by
bitcoin and like i said before the break there's lots of things that come and go and i was even
mining some court coin for a few months and you know just for fun and that's i think we're zero
point zero zero at this point and perhaps it's completely
not you know just a footnote in history and one thing that we look for as we you know invest our
time and our skills and perhaps even our money into communities and software projects because
this is a very large software and open source software project uh there's over 80 projects
that you guys have the the Ethereum organization has on
GitHub. We look for sustainability and long-lasting things. And one of the constant themes in our
shows and in our community of developers is the JavaScript fatigue and the constant churn of new
frameworks and new ways of doing things. And some people see it as a renaissance. Other people see it as ridiculous. And I personally don't buy into new JavaScript frameworks very often because I'm
just waiting for the next one. And it seems like with cryptocurrencies, there's very much that
possibility. Aside from Bitcoin, many other ones have come and gone. And of course, Bitcoin itself
hasn't been around for all that long in the grand history.
So that's one of the questions I have about Ethereum, especially as we look at it as an app platform.
And we'll get back to that.
Looking forward, you've survived this, you know, what would be considered a PR disaster
and really a crisis in your community over the summer.
And looking forward, like what is it aboutereum that you believe makes it have lasting power that we can
have trust not just in the currency but in the platform as something that we can invest in
so i'd hope that um i mean the point of ethereum um is is that you don't need to trust it and so
if you want you can you can open it up and look up and see what's inside and convince yourself that it's actually worth going with.
I mean, in that sense, I kind of liken it more to sort of simple tools that you, you know, when you want to buy a garden spade at your local gardening equipment store. You don't necessarily look at the brand
to see if it's a brand you trust,
but rather you actually take the spade
and you start like kicking it
to see whether it's actually, you know,
likely to break or not in usage.
You're actually evaluating it yourself
rather than going over to the brand and using trust.
I think that's really what people did in the much earlier, sort of olden days before the
real surgence of brands and of the need to trust.
So I think that the idea of trusting and of brands themselves are a relatively modern
notion.
And I think it's also kind of not a bad thing necessarily to go back to the ideas of evaluating something based upon its practical material attributes rather than its label.
So not to say that there isn't a place for trust in the world, but rather that, um, you know, maybe the, you know, in the continuum between sort of, um, trusted reality, we should
be moving the point of the needle a little bit back towards where it came.
So let's get back to, uh, those who are willing to give it a shot and test it out ourselves
and, and do the things that you're promoting here with regard to the platform.
Um,
we talked about how you can build systems that are used or are built around
agreements between two or more parties,
um,
in a decentralized fashion.
And I said,
well,
is it like anything that can have an agreement?
And there's,
it's, that's a, it's a? And you had a soft yes to that.
There are some specific things that are outside the bounds of what you can do with regards to verifying contracts.
But give us some concrete examples of early Ethereum systems.
You mentioned one during the DAO fork, the DAO hack, which was the voting tool.
What are some other things to help give our listeners like that muse, that inspiration of,
oh, I could build my, I wanted to build a crowdfunding site. I can use this, or for instance,
give us some more of those so we can whet our appetites.
Okay. So yeah, you've got crowdfunding. So the DAO was like a VC fund that anyone can contribute to.
So you can obviously pare that down and just say, right, well, actually, rather than being able to choose any project, it's for one particular project, and you can crowdfund that.
So you can basically state, I plan on spending the money on X, Y, Z, and there'll be some potential for maybe you to make money from this XYZ in this way,
and I want money from you to do this.
And you can create a contract that will allow you to accept people's money
and spend it over some particular period of time on some particular things
with perhaps some particular set of judges that will say,
actually, they're not getting these milestones
completed in time.
We're going to, um, we're going to stop the funding and return the money what's left at
least to, to, to the, um, to the funders.
So that's, that's one thing that you can, that's one example of something that you can
program on this.
Um, but just thinking slightly more sort of crazily pushing it out there a bit, what about
a game of chess so a game of chess except
when you take a piece um you actually lose money or gain money so you're essentially placing money
into onto the chessboard you're saying right well every um every piece on the board is actually
worth something and um the winner is the one you know inevitably that sort of takes the pieces that
are most valuable.
So that's something that you just couldn't do.
I mean, certainly not easily.
You have to sort of create a business and register it with PayPal because PayPal needs to trust that you're not whatever.
You know, it has to do KYC and AML.
And that's, know your customer and anti-money laundering to those who aren't familiar with
these financial terms.
So it has to do all sorts of processes, business processes, meat space processes,
before you can work with money,
before you can work with value.
Even though it's all just software,
but we still have these processes
that you have to go through
to set up these kind of trust roots.
And with a system like Ethereum,
it's literally just software.
You don't have to do that anymore.
So you can actually,
value is a fundamental primitive of the language that you're coding this stuff in.
So it's actually trivial.
It's completely trivial.
It's as trivial as incrementing an integer to send money in Ethereum.
It's super, super easy.
Imagine a game of chess, yeah, where you can make money off your opponent across the internet by being a good chess player.
That's fine.
So maybe something like Mechanical Turk or one of the other sort of matchmaking services that allows you to find someone who does work.
And you can say, right, well, we're going to have this third party who will decide whether you've done the work.
So I want some design work, say, or I want some copywriting work. And we'll have a third party, a nominated party, that you can both agree on.
That basically says whether the copywriting or the design is of sufficient quality to be paid.
And then you can place the payment in escrow.
So you can have an escrow system on this.
And then the payment gets made, if and only if the work is done.
So that's something that can be done, again, very easily.
There's no need to integrate it into any payment services.
There's no need to register a company or do anything like that.
It all happens in software, no meat space complications.
Okay, another example.
Let's think about asset tracking.
So let's think about the way the world works,
the way that supply chains work.
I buy a pair of trainers in a shop.
How do I know where the trainers came from?
I mean, I can look at the label and maybe it says like, I don't know, made in China or something.
But it's very difficult to know which bits came together from which places, where it went on its way, what the intermediate owners were, where the raw materials themselves came from.
This information just gets lost.
And why does it get lost?
It's not necessarily lost because the people who are handling it want it to be lost.
It's just really, really hard to put it somewhere that's at once sort of secure,
that isn't sort of mutable by some administrator, and that is ubiquitous, is global enough such
that all of the various different people along the line can place their records in the database.
Effectively, what it needs is a really strong, secure, shared internet-based database.
And that database hasn't been around.
I mean, if it had have been around,
then we wouldn't need things like Fairtrade or the Soil Association. We would just have it all
online. These kinds of asset shadowing is what I call them because it's sort of like taking an
asset and placing it in some sort of shadow, like a pairing on the internet, on the blockchain.
These kinds of asset shadowing things don't really exist yet.
But that's exactly the sort of thing that the blockchain would really excel at doing
because it is this database with very strong logic guarantees,
with very strong security.
So you can be certain that authenticated users really are authenticated.
That's ubiquitous.
It's everywhere that the internet is.
And it's open and free.
And that's really great for allowing third parties to create custom solutions and make their own dime off the back of this technology.
So, yeah, I don't know if that's helped give you a bit of an idea about where this stuff could go.
Yeah, absolutely.
It does.
And I was even beginning to brainstorm a distributed escrow as you began to explain it.
So you're starting to get me at least thinking along these lines.
And I think that's powerful when you have a lot of people
who are smart and able and can program
and can think of these new things that previously couldn't exist.
And let's see what we can do with it.
One question we have with regard to the future,
I know Adam has voiced this as well,
is if and how can
something like Ethereum go mainstream? And it seems like it's the kind of thing, just like the
web was, where it wasn't mainstream until everybody was using it without having to understand it.
And so right now we have blog posts and Wikipedia articles and podcasts explaining
Ethereum to people who are interested, very fringe listeners like ours. But how far do you
think we are from mainstream people are using some sort of service or application online that uses
the Ethereum platform in the background and they don't even have to know
that it exists. And yet, there it is. I think that's when we know that cryptocurrencies in
general, and perhaps Ethereum in particular, have arrived. How far are we from that future?
And how do we get there? If you'd have asked me that question about 12 months ago,
I would have said probably about six months.
I'm not sure I can give a great answer this time.
Instead of saying how far out, maybe what would it take?
What has to move, as you used the chessboard analogy earlier, what would have to move on the chessboard to make this mainstream?
So the critical thing,
so I'd probably say two things.
Firstly, the tools.
We need better tools for developers in order that developers,
it's just a no-brainer to be able to pick something up
and actually run with it,
actually make an application
that's going to change the world.
The second thing that we need
is better user interfaces for all of this stuff.
So on the other hand, the end users are not really provided with an especially good means
of interacting with Ethereum or probably more importantly, its applications. So we're going
to need much better integrations into things like web browsers, and that's something that we're going to need much better integrations into things like, you know, web browsers. And that's something that we're working on at Ethcore.
And we're going to need a better tooling.
So developers can, you know, can create that experience really easily.
You mentioned Ethcore.
It's probably a good opportunity as we get near the close of the show to give
a little bit more around yourself.
And we mentioned you have a lot of your net worth in ether,
um,
that you're working with the foundation.
Remind me again,
the foundation that's involved here,
uh,
the Ethereum foundation.
Okay.
Easy enough.
I was thinking it had to be harder than that,
but,
uh,
I didn't want to guess wrong.
So yeah,
the Ethereum foundation,
and then you have F core,
which is a, I assume a for-profit company that you're a part of so give us that uh understanding
and then what are you guys doing at ethcore that is launching off of the theory we're trying to
yeah so i mean um i was one of the people who sort of helped found the ethereum foundation
um which is continuing it's a non-profit based in Switzerland that's doing fairly important stuff within the community
like organizing conferences
and ensuring that at least one client of the Ethereum network
is well-maintained.
And this client of what it's worth is called Geth.
Now, the F-Core is a company set up by me. It's a few of the people that were originally members
of the foundation, employees of the foundation also sort of came along with me and helped me set
up F-Core. And what we're doing is firstly injecting a bit of choice into the ecosystem.
So we have an alternative implementation of the Ethereum protocol called Parity.
And we're also trying to push forward on this UI and trying to make Ethereum that much easier
for people to interact with.
And in part, also make a developer tool set, a developer API that's better than the current one,
that really sort of helps developers get their head around what needs to be done
and helps them actually create applications much faster.
Parity is open source. You mentioned a browser.
Is that the Mist browser that we found, or is that a separate browser?
So that's a separate browser. That's being done currently by the foundation.
Parity itself
is a browser as well as a
client. So we're taking a different
tack at the moment. There's
basically the Mist browser, which is a
separate executable. It's a separate browser.
It's a separate
program. It's very much designed around
browsing Ethereum dApps.
And that was that was
something that i was sort of involved with in the in the early stages of it and then what we're
doing at ethcore is sort of doing it different way around we're saying actually let's you let's
allow the user to use their own browser to use chrome or firefox or whatever um and then chrome
and firefox will just be able to display dApps so the dApps will appear these decentralized
applications bit of an odd word dApp but anyway um these dApps will appear, these decentralized applications, bit of an odd
word, dApp, but anyway, these dApps will appear within the user's browser itself and parity,
the sort of everything to do with Ethereum, will be running in the background. The user doesn't
really need to know or understand how that works. It will just appear to them like any other website.
So this is like to enable Ethereum powered applications inside your
browsers to make payments
or to assign contracts
as part of the browser, is that right?
Yeah, to interact. So we
can imagine with the game
of chess where you get money for taking
the other players' pieces.
I can imagine
that as kind of a 3D chess board
actually in the browser,
and then it sort of tells you how much money you've got so far,
which pieces you've captured.
Gotcha.
So as we close out, it was definitely a blast having you, Gavin.
I mean, like I said, I played outfitter a lot in this conversation.
Jared's far more of a pitcher than I am in this case,
but it's been a blast kind of hearing the process of what it takes to have a trust-free marketplace down to all these things around Ethereum,
ETH Core, the open source being built around it, the community being built around it,
the hacks, the Robin Hood white hats attacking those guys back.
And it's just, you know, such an adventure I can see here.
But one thing we like to do for our listeners whenever they listen to the show is give them some takeaways.
So this is a chance for you to share back with those listening, hackers, people involved in open source, software developers of all kinds, whether they're beginners or experts, is a way to step in and get involved. So from your perspective, what are the ways in which,
we talked before about how can we take this mainstream,
what needs to move on the chessboard, so to speak,
and maybe not so much a rehash of that,
but what are ways in which the open source community can step in,
start helping out?
Where are the most low-hanging fruit now that can move this mission forward?
How can they step in?
So it kind of depends on the community members themselves.
I mean, if you're someone who's really into kind of low-level programming,
working out the nuts and bolts of how things really work,
then come over to the parity site, have a look at the code base.
I mean, it's written in Rust, so if Rust's your thing
or if you want Rust to be your thing, then yeah, get involved.
There's plenty of like sort of small, low-hanging fruit issues that can be done.
Now, if it's more of like, what's the new frontier?
What do these contracts look like?
What does the environment that I would be coding in look like?
Then get, find Solidity.
There's online documentation for Solidity.
Get yourself a client of Ethereum, Parity or Geth or whatever, and start, code a little contract.
There's plenty of tutorials online that give you very simple contracts that allow you to sort of get the idea of how to create your own currency and deploy it.
And you can do this in about 15 minutes.
It's really simple and when you start
understanding you know how trivial it is to make a currency and deploy it then you start
really getting to grips with actually hold on this is a very powerful system because
you know i've now got some coins that i can i can literally program i can program to do whatever i
want and the same way that i could i could program it if this was a C language or C++ or whatever it is that I normally code in.
If programming is not your thing, if you're more just sort of into explaining and documenting
and writing, then obviously there's plenty of documentation work to be done.
There always is.
But even tutorials, writing additional tutorials, always great.
Helping write the manuals, helping users understand, get to grips with things
that much faster, always good.
So lots of stuff to be done.
So you mentioned Parity, that's the
open source client from ETHCore
available on Ubuntu, OS X
through Homebrew or even Docker
and also on Windows, so you have the full
gamut there covered so anybody
out there on any of those platforms can easily
pull down Parity
and start playing with that in that respect.
And what exactly,
I think we might've covered this earlier,
but is Parity, is a client,
what does a client do?
So the client's the thing that connects
to all of the other peers on the network,
or maybe not all of them,
but a selection of them,
and transports transactions and blocks
and builds up the chain of blocks that have gone so far.
So basically accumulates a concatenation of all of the transactions that have happened
in order to understand what the present state is, what the present state of the system is.
So the client looks after all of that.
And in case of parity, it also is the thing that provides the user interface
so that the user can use their browser in order to inspect the chain and to potentially run applications that rely upon knowledge on the chain.
Super quick, is parity one of many or are there other interfaces into Ethereum?
Well, there are many other clients.
There aren't that many other interfaces, but there are, I think, seven implementations of Ethereum.
Okay.
Well, for the listeners, we're going to link a parody in the show notes.
We'll talk to Gavin after the show and get that list of other stuff.
We'll try to put those in the show notes as well.
That way we get the full gamut there.
But Gavin, this is a chance for you also to close the show.
Is there anything we didn't ask you that you were like, man, I really want to talk about that on the show?
You've got a couple of minutes.
Anything else you'd like to cover around cryptocurrency, going mainstream,
Ethereum,
blockchain technologies, whatever. Is there anything else
that we may have just glossed over
that you want to make sure we cover?
I would only
talk about the future.
At the moment,
we've got Ethereum,
one of the two sort of critical things that people really would like to be addressed
are privacy and scalability.
So the only thing I'd mention is,
you know,
if you're someone who's like really interested
in theorizing out this kind of stuff,
creating new protocols,
working out new systems,
then this is a great thing to think about
and how we can
make blockchains scalable and manage privacy. Also, one of the things we'd like to ask too is
whenever anybody, that advice back you gave, how they can get involved, how the community can get
involved, where can someone go if they have questions? Not so much like, hey, how do I do
this? Obviously, there's Stack Overflow or forms for that. But if they're like, I'm interested in this,
and you covered a couple of these things, Gavin,
in this podcast called The Change Log,
but I've got more questions where I can apply my ideas.
I've got a couple ideas.
Where does someone like that go?
Do they come to you?
Do they go to a forum?
Where are places they can go and reach out
to other community members of Ethereum?
So we have a fairly active Gitter room for parity,
but there are also other Gitter rooms
for various other Ethereum projects.
There are, I think there's still quite an active Skype room
and IRC channels for Ethereum.
Okay.
Generally just like hash Ethereum on IR irc i think on on free node
um so there are fairly large open forums but as it's such a growing uh community now it's um
you know it can be kind of hard to find any single place where you're going to find
um everybody it's uh you really have to sort of work out uh where you want to go based upon what it is
that you want to get feedback on so um but yeah i would explore gitter that seems to be a very
very good place to be at the moment well i see the parody gitter uh room linked up on the
parody page too so we'll link both of those up in the show notes so that'll at least give the
listeners a starting place for uh hopping in and asking some questions back to the community and stepping in and finding ways to
give some support here. But Gavin, that is it for this show. And Jared, great job on
teeing this show up. I mean, I had a blast just kind of listening to a lot of this fascinating
talk. It seems like, you know, we always have these catch-up shows and I'm really hoping that
like a year to a year and a half from now, we can have Gavin back on and seeing the praise of how the Dow has, you know, worked itself out and all this trust has come back in and it's worth twice as much or whatever.
Just, you know, in other ways also that Ethereum is being used to provide marketplaces with, you know, new ways to move money around and stuff like that.
So hopefully that is the future for all of this. But that's it for this show. So take a bow. Thanks, Gavin. That was a blast.
Cool. Thanks a lot, guys. It was a good time. Outro Music