back to index

Ethereum Basics (Vitalik Buterin) | AI Podcast Clips


Chapters

0:0 Intro
5:0 What is Smart Contracts
6:51 How hard was it to build Ethereum
11:32 Proof of Stake
12:46 Virtual Miner
15:42 Sharding
18:19 Software Engineering
20:24 Timelines
23:53 Future of sharing ideas
26:34 Ethereum composability

Whisper Transcript | Transcript Only Page

00:00:00.000 | So then what is the origin story, maybe the human side, but also the technical side of
00:00:07.720 | Ethereum?
00:00:08.720 | Sure.
00:00:09.720 | So, I joined the Bitcoin community in 2011, and I started by just writing.
00:00:16.680 | I first wrote for this sort of online thing called Bitcoin Weekly, then I started writing
00:00:21.200 | for Bitcoin Magazine.
00:00:23.200 | Sorry to interrupt, you have this funny kind of story, true or not, is that you were disillusioned
00:00:32.720 | by the downsides of centralized control from your experience with WoW, World of Warcraft.
00:00:39.120 | Is this true or you're just being witty?
00:00:41.480 | I mean, the event is true, the fact that that's the reason I do decentralization is witty.
00:00:47.520 | Maybe just a small tangent, have you always had a skepticism of centralized control?
00:00:54.520 | Is that sort of...
00:00:55.520 | To some degree, yeah.
00:00:57.740 | Has that feeling evolved over time or has that just always been a core feeling that
00:01:01.400 | decentralized control is the future of human society?
00:01:06.240 | It's definitely been something that felt very attractive to me ever since I could have learned
00:01:10.240 | that such a thing is possible.
00:01:11.880 | It's possible even technically.
00:01:13.760 | So great, so you joined the Bitcoin community in 2011, you said you began writing.
00:01:19.040 | So what's next?
00:01:21.160 | Started writing, moved from high school to university halfway in between that, spent
00:01:26.560 | a year in university.
00:01:30.480 | Then at the end of that year, I dropped out to do Bitcoin things full time.
00:01:37.120 | And this was a combination of continuing to write Bitcoin Magazine, but also increasingly
00:01:41.740 | work on software projects.
00:01:44.000 | And I traveled around the world for about six months and just going to different Bitcoin
00:01:48.600 | communities.
00:01:49.600 | I went to first in New Hampshire, then Spain, other European places, Israel, then San Francisco.
00:01:56.640 | And along the way, I've met a lot of other people that are working on different Bitcoin
00:02:00.640 | projects.
00:02:01.640 | And when I was in Israel, there were some very smart teams there that were working on
00:02:06.960 | ideas that people were starting to call Bitcoin 2.0.
00:02:11.320 | So one of these was covered coins, which is basically saying that, hey, let's not just
00:02:16.640 | use the blockchain for Bitcoin, but let's also issue other kinds of assets on it.
00:02:21.360 | And then there was a protocol called MasterCoin that supported issuing assets, but also supported
00:02:26.240 | many other things like financial contracts, like domain name registration, a lot of different
00:02:32.400 | things together.
00:02:34.400 | And I spent some time working with these teams, and I quickly kind of realized that this MasterCoin
00:02:44.280 | protocol could be improved by kind of generalizing it more.
00:02:47.760 | So the analogy I use is that the MasterCoin protocol was like the Swiss Army knife.
00:02:51.920 | You have 25 different transaction types for 25 different applications.
00:02:57.280 | But what I realized is that you could replace a bunch of them with things that are more
00:03:02.480 | general purpose.
00:03:03.860 | So one of them was that you could replace like three transaction types for three types
00:03:09.120 | of financial contracts with a generic transaction type for a financial contract that just lets
00:03:14.840 | you specify a mathematical formula for kind of how much money each side gets.
00:03:20.200 | By the way, a small pause.
00:03:21.960 | What's you say financial contract, just the terminology, what is a contract?
00:03:27.000 | What's a financial contract?
00:03:28.580 | So this is just generally an agreement where kind of either one or two parties kind of
00:03:35.360 | put collateral kind of in, and then they, depending on kind of certain conditions, like
00:03:42.600 | this could involve prices of assets, this could involve the actions of the two parties,
00:03:47.160 | it could involve other things.
00:03:49.760 | They kind of get different amounts of assets out that just depend on things that happened.
00:03:55.720 | So a contract is really a financial contract is at the core, it's the core interactive
00:04:02.180 | element of a financial system.
00:04:04.160 | Yeah, there's, there's many different kinds of financial contracts.
00:04:07.680 | Like there's things like options where you kind of give someone the right to buy a thing
00:04:12.060 | that you have for some specific price for some period of time.
00:04:15.000 | There's contracts for difference where you basically are kind of making a bet that says
00:04:22.080 | like, for every dollar this thing goes up, I'll give you $7 or for every dollar that
00:04:26.360 | thing goes down, you give me $7 or something like that.
00:04:30.640 | But the main idea that these contracts have to be enforced and trusted.
00:04:34.440 | Yes, exactly.
00:04:36.120 | You have to trust that they will work out in a system where nobody can be trusted.
00:04:42.040 | This is such a beautiful complicated system.
00:04:44.680 | Okay, so you were seeking to kind of generalize this basic framework of contracts.
00:04:52.680 | So what does that entail?
00:04:55.160 | So what technically are the steps to creating Ethereum?
00:04:59.240 | Sure.
00:05:00.520 | So I guess just to kind of continue a bit with this MasterCoin story.
00:05:04.240 | So started by kind of giving ideas for how to generalize the thing.
00:05:08.760 | And eventually this turned into a much more kind of fully fledged proposal that just says,
00:05:14.280 | "Hey, how about you scrap all your futures and instead you just put in this programming
00:05:18.840 | language?"
00:05:19.840 | And I gave this idea to them and their response was something like, "Hey, this is great, but
00:05:26.080 | this seems complicated and this seems like something that we're not going to be able
00:05:29.240 | to put onto our roadmap for a while."
00:05:31.520 | And my response to this was like, "Wait, do you not realize how revolutionary this
00:05:36.080 | Well, I'll just go do it myself."
00:05:37.080 | And then I...
00:05:38.080 | What was the name of the programming language?
00:05:40.400 | I just called it Ultimate Scripting.
00:05:42.480 | Great.
00:05:43.480 | So then I kind of went through a couple more rounds of iteration and then the idea for
00:05:52.120 | Ethereum itself started to form.
00:05:54.880 | And the idea here is that you just have a blockchain where the core unit of the thing
00:06:02.000 | is what we call contracts.
00:06:03.600 | It's these kind of accounts that can hold assets and they have their own internal memory,
00:06:10.040 | but that are controlled by a piece of code.
00:06:13.220 | And so if I send some Ether to a contract, the only thing that can determine where that
00:06:18.760 | Ether, the currency inside Ethereum, goes after that is the code of that contract itself.
00:06:27.520 | And so basically you're kind of sending assets to computer programs becomes this kind of
00:06:34.720 | paradigm for creating these sort of self-executing agreements.
00:06:39.800 | Self-executing.
00:06:40.800 | It's so cool that code is sort of part of this contract.
00:06:44.740 | So that's what's meant by smart contracts.
00:06:48.060 | So how hard was it to build this kind of thing?
00:06:51.180 | Harder than expected.
00:06:52.180 | I mean, originally I actually thought that this would be a thing that I would kind of
00:06:56.660 | casually work on for a couple of months, publish, and then go back to university.
00:07:02.540 | Then I released it and a bunch of people...
00:07:06.460 | Or I released the white paper.
00:07:07.460 | The white paper.
00:07:08.460 | The idea is there.
00:07:09.460 | I released the white paper.
00:07:10.940 | A whole bunch of people came in offering to help, a huge number of people have expressed
00:07:15.180 | interest.
00:07:16.180 | And this was something I was totally not expecting.
00:07:19.420 | And then I realized that this would be something that's kind of much bigger than I had ever
00:07:26.420 | thought that it would be.
00:07:28.300 | And then we started on this kind of much longer development log of making something that lives
00:07:35.620 | up to this much higher level of expectations.
00:07:38.820 | What are some of the...
00:07:41.020 | Is it fundamentally like software engineering challenges?
00:07:43.980 | It was.
00:07:44.980 | Is there social?
00:07:45.980 | Okay.
00:07:46.980 | And social.
00:07:47.980 | So what are the biggest interesting challenges that you've learned about human civilization
00:07:53.460 | and software engineering through this process?
00:07:57.940 | So I guess one of the challenges for me is that I'm one of the kind of apparently unusual
00:08:04.860 | geeks who was never treated with anything but kindness in school.
00:08:09.660 | And so when I got into crypto, I kind of expected everyone would just kind of be the same kind
00:08:17.540 | of altruistic and nice in that same way.
00:08:20.780 | But the algorithm that I used for finding co-founders for this thing was not very good.
00:08:27.620 | It was literally what computer scientists call the greedy algorithm.
00:08:31.060 | It's the first 15 people who replied back offering to help are the co-founders.
00:08:35.380 | Oh, you mean like literally the people that will form to be the co-founders of the community.
00:08:43.380 | The algorithm.
00:08:44.380 | I like how you call it the algorithm.
00:08:47.020 | And so what happened was that these...
00:08:53.660 | Especially as the project got really big, there started to be a lot of this kind of
00:08:57.100 | infighting.
00:08:58.100 | There were a lot of...
00:08:59.100 | Like I wanted the thing to be a non-profit and some of them wanted to be a for-profit.
00:09:04.740 | And then there started to be people who were just kind of totally unable to work with each
00:09:08.860 | other.
00:09:09.860 | There were people that were kind of trying to get an advantage for themselves in a lot
00:09:15.100 | of different ways.
00:09:17.100 | And this just about six months later led to this big governance crisis.
00:09:22.620 | And then we kind of reshuffled leadership a bit.
00:09:25.500 | And then the project kept on going.
00:09:28.500 | Then nine months later, there was another governance crisis.
00:09:31.220 | And then there was a third governance crisis.
00:09:33.900 | So is there a way to...
00:09:35.500 | If you're looking at the human side of things, is there a way to optimize this aspect of
00:09:41.460 | the cryptocurrency world?
00:09:42.700 | It seems that there is, from my perspective, there's a lot of different characters and
00:09:47.820 | personalities and egos.
00:09:50.060 | And like you said, I don't know if...
00:09:53.780 | I also like to think that most of the people in the world are well-intentioned, but the
00:10:01.020 | way those intentions are realized may perhaps come off as negative.
00:10:10.100 | Is there a hopeful message here about creating a governance structure for cryptocurrency
00:10:15.740 | where everyone gets along?
00:10:17.980 | After about four rounds of reshuffling, I think we've actually come up with something
00:10:22.060 | that seems to be pretty stable and happy.
00:10:25.780 | I think...
00:10:27.940 | I mean, I definitely do think that most people are well-intentioned.
00:10:33.900 | I just think that one of the reasons why I like decentralization is just because there's
00:10:40.340 | this thing about power where power attracts people with egos.
00:10:43.620 | And so that just allows a very small percentage of people to just ruin so many things.
00:10:48.300 | You think ego has a use?
00:10:53.420 | Is ego always bad?
00:10:54.420 | It seems like some of us...
00:10:55.420 | It sometimes does.
00:10:56.420 | Within the Ethereum research team, I feel like we've found also a lot of very good people
00:11:04.020 | that are just primarily just interested in things for the technology.
00:11:10.940 | And things seem to just generally be going quite well.
00:11:17.100 | Yeah, when the focus and the passion is in the tech.
00:11:21.020 | So that's the human side of things.
00:11:22.580 | But the technology side, what have you learned?
00:11:25.700 | What have been the biggest challenges of bringing Ethereum to life on the technology side?
00:11:31.980 | So I think, first of all, just there's the first law of software development, which is
00:11:39.300 | that when someone gives you a timetable, switch the unit of time to the next largest unit
00:11:43.660 | of time and add one.
00:11:45.060 | And we basically fell victim to that.
00:11:50.540 | So instead of taking three months, it ended up taking 20 months to launch the thing.
00:11:57.780 | And that was just, I think, underestimating the sheer technical complexity of the thing.
00:12:04.300 | There are research challenges.
00:12:05.900 | So for example, one of the things that we've been saying from the start that we would do,
00:12:10.820 | one is a switch from a proof of work to a proof of stake.
00:12:14.620 | More proof of stake is this alternative consensus mechanism where instead of having to waste
00:12:20.620 | a lot of computing power on solving these mathematical puzzles that don't mean anything,
00:12:24.780 | you kind of prove that you have access to coins inside of the system.
00:12:29.460 | And this gives you some level of participation in the consensus.
00:12:33.460 | Can you maybe elaborate on that a little bit?
00:12:35.660 | I understand the idea of proof of work.
00:12:38.940 | I know that a lot of people say that the idea of proof of stake is really appealing.
00:12:42.540 | Can you maybe linger on it a little longer, explain what it is?
00:12:46.060 | Sure.
00:12:47.060 | So basically the idea is like, if I kind of lock up a hundred coins, then I turn that
00:12:55.260 | into a kind of quote virtual miner and the system itself kind of automatically and randomly
00:13:02.740 | assigns that in a virtual miner the right to create blocks at particular intervals.
00:13:08.780 | And then if someone else has 200 coins and they lock and lock those 200 coins, then they
00:13:13.780 | get a kind of twice as big virtual miner, they'll be able to create blocks twice as
00:13:17.740 | often.
00:13:18.740 | And so it tries to do similar things to proof of work, except instead of the thing and rate
00:13:26.820 | limiting your participation being your ability to crank out solutions to hash challenges,
00:13:33.900 | the thing that really limits your participation is kind of how much coins you're locking into
00:13:37.580 | this mechanism.
00:13:38.580 | Okay.
00:13:39.580 | So interesting.
00:13:40.580 | So that limited participation doesn't require you to run a lot of compute.
00:13:47.940 | Does that mean that the richer you are?
00:13:52.260 | So rich people are more like their identities more stable, verifiable or whatever the right
00:14:04.340 | terminology is.
00:14:05.580 | Right.
00:14:06.580 | And this is definitely a common critique.
00:14:07.940 | I think my usual answer to this is that proof of work is even more of that kind of system.
00:14:13.660 | Exactly.
00:14:14.660 | I didn't mean it in that statement as a criticism.
00:14:16.660 | I think you're exactly right.
00:14:17.900 | It's equivalent to proof of work is the same kind of thing.
00:14:21.660 | But in the proof of work, you have to also use physical resources.
00:14:26.660 | And burn computers and burn trees and all of that stuff.
00:14:29.900 | Is there a way to mess with the system over the proof of stake?
00:14:35.700 | There is, but you will once again need to have a very large portion of all the coins
00:14:40.060 | that are locked in the system to do anything bad.
00:14:42.500 | Got it.
00:14:43.500 | Yeah.
00:14:44.500 | And just to that, maybe take a small tangent, one of the criticisms of cryptocurrencies,
00:14:48.940 | the fact that I guess for the proof of work mechanism, you have to use so much energy
00:14:53.840 | in the world.
00:14:55.840 | Is one of the motivations of proof of stake is to move away from this?
00:15:00.500 | Definitely.
00:15:01.500 | What's your sense of that?
00:15:03.220 | Maybe I'm just under informed.
00:15:04.860 | Is there like legitimately environmental impact from this?
00:15:08.820 | Yeah.
00:15:09.820 | I mean, I know the latest thing was that Bitcoin consumed as much energy as the country
00:15:14.460 | of Austria or something like that.
00:15:17.180 | And then Ethereum is like right now, maybe only like half an order of magnitude smaller
00:15:21.340 | than Bitcoin.
00:15:22.340 | I've heard you talk about Ethereum 2.0.
00:15:25.340 | So what's the dream of Ethereum 2.0?
00:15:29.020 | What's the status of proof of stake as the mechanism that Ethereum moves towards?
00:15:34.900 | And also, how do you move to a different mechanism of consensus within a cryptocurrency?
00:15:42.300 | So Ethereum 2.0 is a collection of major upgrades that we've wanted to do to Ethereum for quite
00:15:48.460 | some time.
00:15:49.460 | The two big ones, one is a proof of stake and the other is what we call sharding.
00:15:55.180 | Sharding solves another problem with blockchains, which is a scalability.
00:15:59.400 | And what sharding does is it basically says instead of every participant in the network
00:16:04.980 | having to personally download and verify every transaction, every participant in the network
00:16:09.580 | only downloads and verifies a small portion of transactions.
00:16:13.260 | And then you kind of randomly distribute who gets how much work.
00:16:17.680 | And because of how the distribution is random, it still has the property that you need a
00:16:23.060 | large portion of the entire network to corrupt what's going on inside of any shard.
00:16:28.340 | But the system is still very redundant and very secure.
00:16:32.540 | That's brilliant.
00:16:34.100 | How hard is that to implement and how hard is proof of stake to implement?
00:16:39.160 | Like on a technical level, software level?
00:16:42.620 | Proof of stake and sharding are both challenging.
00:16:44.460 | I'd say sharding is a bit more challenging.
00:16:47.780 | The reason is that proof of stake is kind of just a change to how the consensus layer
00:16:52.180 | works.
00:16:53.540 | Sharding does both that, but it's also a change to the networking layer.
00:16:57.760 | The reason is that sharding is kind of pointless if at the networking layer, you still do what
00:17:01.860 | you do today, which is you kind of gossip everything, which means that if someone publishes
00:17:06.420 | something, every other node in the client hears it from on the networking layer.
00:17:11.580 | And so instead, we have to have kind of subnetworks and the ability to quickly switch between subnetworks
00:17:15.940 | and other subnetworks, talk to each other.
00:17:18.300 | And this is all doable, but it's a more complex architecture.
00:17:22.420 | It's definitely the sort of thing that has not yet been done in cryptocurrency.
00:17:25.660 | So most of the networking layer in cryptocurrency is you're shouting, you're like broadcasting
00:17:32.380 | messages and this is more like ad hoc networks.
00:17:35.740 | Like yeah, you're shouting within smaller groups, smaller group, but you have like a
00:17:39.540 | bunch of subnetworks.
00:17:40.540 | Exactly.
00:17:41.540 | And you have to switch between.
00:17:43.020 | Oh man, I'd love to see that.
00:17:45.580 | So it's a beautiful idea from a graph theoretic perspective, but just the software, like who's
00:17:52.860 | responsible?
00:17:53.860 | Like if this was a theorem project, like the people involved, would they be implementing
00:17:58.100 | like what's the actual, you know, this is like legit software engineering.
00:18:04.420 | Who like, how does that work?
00:18:06.260 | How do people collaborate, build that kind of project?
00:18:08.860 | Is this like almost like, is there a software engineering lead?
00:18:14.260 | Is there, is it a legit, almost like large scale open source project?
00:18:19.140 | There is.
00:18:20.140 | So we have someone named Danny Ryan on our team who has just been brilliant and great
00:18:24.940 | all around.
00:18:25.940 | And he is a kind of de facto kind of development coordinator, I guess.
00:18:32.860 | It's like you have to invent job titles for this stuff.
00:18:35.540 | The reason is that like we also have this unique kind of organizational structure where
00:18:40.740 | the Ethereum Foundation itself kind of does research in-house, but then the actual implementation
00:18:45.780 | is done by independent teams that are separate companies and they're located all around the
00:18:50.860 | world and like fun places like Australia.
00:18:54.780 | And so, you know, you kind of just need a bunch of kind of almost nonstop cat herding
00:19:01.860 | to just keep getting these people to kind of talk to each other and kind of implement
00:19:07.460 | the spec, make sure that everyone agrees on kind of what's going on and kind of how to
00:19:11.460 | interpret different things.
00:19:13.600 | So how far into the future are we from these two mechanisms in Ethereum 2.0?
00:19:17.940 | Like what's your sense of the timeline, keeping in mind the previous comment you made about
00:19:24.140 | the sort of general curse of software projects?
00:19:30.060 | So Ethereum 2.0 is split into three phases.
00:19:34.020 | So phase zero just creates a proof of stake network and it's actually separate from kind
00:19:39.060 | of proof of the proof of work network at the beginning, just to kind of give it time to
00:19:43.780 | grow and improve itself.
00:19:45.660 | Do people get to choose, sorry to interrupt, do people get to choose, I guess?
00:19:48.900 | Yes, they get to choose to move over if they want to.
00:19:52.860 | Then phase one adds sharding, but it only adds sharding of data storage and not sharding
00:19:57.900 | of computation.
00:19:59.660 | And then after that, there is kind of the merger phase, which is where the accounts
00:20:06.340 | and smart contracts, like all of the activity on the existing ETH1 system just kind of gets
00:20:12.580 | cut and pasted into ETH2.
00:20:14.560 | And then the proof of work chain gets forgotten and then all the things that were living there
00:20:19.400 | before just kind of continue living inside of the proof of stake system.
00:20:24.040 | So for timelines, phase zero has been kind of almost fully implemented.
00:20:34.440 | Because now it's just a matter of a whole bunch of security auditing and testing.
00:20:40.240 | My own experience is that right now it feels like we're at about a phase comparable to
00:20:47.160 | when we were doing the original Ethereum launch when we were maybe about four months away
00:20:51.880 | from launch.
00:20:52.880 | But that's just a hunch.
00:20:55.160 | That's just a hunch, yeah.
00:20:57.160 | So how, you know, it took like over a decade for people to move from Python 2 to Python
00:21:03.640 | How do you see the move from like this phase zero for different consensus mechanisms?
00:21:11.640 | Do you see there being a drastic phase shift in people just kind of jumping to this better
00:21:18.000 | mechanism?
00:21:19.180 | So in phase zero, I don't expect too many people to do much because in phase zero and
00:21:24.800 | phase one, the new chain, they get it deliberately and it doesn't have too much functionality
00:21:28.800 | turned on.
00:21:29.960 | It's there just like if you want to be a proof of stake validator, you can get things started.
00:21:33.880 | If you want to store data for other blockchain applications, you can get started.
00:21:38.920 | But existing applications will largely keep living on each one.
00:21:43.040 | And then when the merger happens, then the merger is a operation that happens all at
00:21:49.800 | once.
00:21:50.800 | So that's kind of one of the benefits of a consensus system that like on the one hand,
00:21:54.560 | you have to coordinate the upgrade, but on the other hand, the upgrade can be coordinated.
00:21:59.660 | So what's Casper FFG, by the way?
00:22:02.720 | Casper FFG is the consensus algorithm that we are using for the proof of stake.
00:22:08.320 | Is there something interesting, specific about Casper FFG, like some beautiful aspect of
00:22:13.280 | it that's worth mentioning?
00:22:14.280 | There is.
00:22:15.280 | So Casper FFG combines together kind of two different schools of consensus algorithm design.
00:22:23.240 | So the general two different schools of the design are, right?
00:22:27.480 | One is a 50% fault tolerant, but dependent on network synchrony.
00:22:33.760 | So 50% fault tolerant, but it can tolerate up to 50% of faults, but not more.
00:22:39.360 | But it depends on an assumption that all of the nodes can talk to each other within some
00:22:45.040 | limited period of time.
00:22:47.200 | Like if I send the message, you'll receive it within a few seconds.
00:22:51.120 | And the second school is 33% fault tolerant, but safe under asynchrony, which means that
00:22:58.760 | if we agree on something, then that thing is finalized.
00:23:02.400 | And even if the network goes horribly wonky, the second after that thing is finalized,
00:23:06.440 | there's no way to revert that thing.
00:23:08.520 | That's fascinating how you would make that happen.
00:23:13.800 | It's definitely quite clever.
00:23:16.360 | I'd recommend the Casper FFG paper if you just search like archive as in like ARXIV
00:23:21.880 | and Casper FFG.
00:23:23.720 | That's an archive.
00:23:24.720 | The paper is an archive.
00:23:25.720 | Yeah.
00:23:26.720 | Who are the authors?
00:23:27.720 | Myself and Virgil Griffith.
00:23:30.560 | That's awesome.
00:23:31.560 | I'll take a small tangent.
00:23:34.120 | This idea of just putting out white papers and papers and putting them on archive and
00:23:37.720 | just putting them publicly, is that at the core?
00:23:42.560 | Is that a necessary component of cryptocurrencies?
00:23:44.960 | Is that the tradition started with Satoshi Nakamoto?
00:23:47.840 | What do you make of it?
00:23:50.800 | What do you make of the future of that kind of sharing of ideas?
00:23:53.280 | I guess so.
00:23:54.280 | Yeah.
00:23:55.280 | And it's definitely something that's kind of mandatory for crypto because crypto is
00:24:01.760 | all about making systems where you don't have to trust the operators to trust that the thing
00:24:07.680 | works.
00:24:08.680 | And so if anything behind our system works as closed source, then that kind of kills
00:24:14.200 | the point.
00:24:15.200 | And so there is a sense in which the fundamental properties of the category of the thing we're
00:24:22.080 | trying to build just kind of forces openness.
00:24:25.420 | But also openness just has proven to be a really great way to collaborate.
00:24:29.640 | And then there's actually a lot of innovation and academic collaboration that's just kind
00:24:34.080 | of happened ad hoc in the crypto space the last few years.
00:24:38.400 | So for example, we have this forum called ETH Research, that's like E-T-H-R-E-S-E-A-R
00:24:45.120 | and then dot CH.
00:24:47.320 | And there we publish just ideas in a form that's kind of half formal, like it's halfway
00:24:54.580 | in between.
00:24:56.720 | It's a kind of a text write up and you can have math in it, but it's often much shorter
00:25:02.000 | than a paper.
00:25:03.560 | And it turns out that the great majority of new ideas, they're just kind of fairly small
00:25:09.360 | nuggets that you can explain in like five to 10 lines.
00:25:12.000 | And they don't really need the whole formality of a paper.
00:25:15.600 | Exactly.
00:25:16.600 | They don't require the kind of like 10 pages of filler.
00:25:19.040 | And so introduction and conclusion is not needed.
00:25:21.920 | Yeah.
00:25:22.920 | And so instead you just kind of publish the idea and then people can go comment on it.
00:25:27.840 | That's brilliant.
00:25:28.840 | Yeah, this has been great for us.
00:25:30.400 | I think I interrupted you.
00:25:32.360 | Was there something else on Casper FFG?
00:25:34.400 | No, so Casper FFG is just kind of combines together these two schools.
00:25:39.720 | And so basically it creates this system where if you have more than 50% that are honest
00:25:51.440 | and you have a network synchrony, then the thing kind of goes as a chain.
00:25:55.680 | But then if network synchrony fails, then kind of the last few blocks in the chain might
00:25:59.440 | get replaced, but anything that was finalized by this more asynchronous process can't be
00:26:09.160 | reverted.
00:26:10.160 | And so you essentially get a kind of best of both worlds between those two models.
00:26:14.360 | Okay, so I know what I'm doing to them.
00:26:16.560 | I'm going to be reading the Casper FFG paper.
00:26:20.080 | Apologize for the romanticized question, but what to you are some or the most beautiful
00:26:26.720 | idea in the world of Ethereum?
00:26:29.680 | Just something surprising, something beautiful, something powerful.
00:26:33.680 | Yeah, I mean, I think the fact that money can just emerge out of a database if enough
00:26:38.760 | people believe in it, I think is definitely one of those things that's up there.
00:26:44.400 | I think one of the things that I really love about Ethereum is also this concept of composability.
00:26:50.220 | So this is the idea that if I build an application on top of Ethereum, then you can build an
00:26:56.160 | application that talks to my application and you don't even need my permission.
00:27:01.200 | You don't even need to talk to me.
00:27:03.160 | So one really fun example of this is there was this game on Ethereum called CryptoKitties,
00:27:08.760 | the just involvement of breeding digital cats.
00:27:11.520 | And someone else created a game called CryptoDragons, where the way you play CryptoDragons is you
00:27:17.800 | have a dragon and you have to feed it CryptoKitties.
00:27:22.160 | And they just created the whole thing just like as an Ethereum contract that you would
00:27:29.120 | send these tokens that are defined by this other Ethereum contract.
00:27:34.780 | And for the interoperability to happen, like the projects don't really need to, like the
00:27:39.920 | teams don't really need to talk to each other.
00:27:41.720 | You just kind of interface with the existing program.
00:27:45.760 | So it's arbitrarily composable in this kind of way.
00:27:48.200 | So you have different groups that could be working.
00:27:50.960 | So you could see it scaling to just outside of dragons and kitties.
00:27:55.400 | It could be you build like entire ecosystems of software.
00:27:59.080 | Yeah.
00:28:00.080 | And I mean, especially in the decentralized finance space that's been popping up in the
00:28:05.920 | last two years, there has been a huge amount of really interesting things happen as a result
00:28:10.680 | of this.
00:28:11.680 | Is it a particular kind of like financial applications kind of thing?
00:28:15.600 | Yeah.
00:28:16.600 | I mean, there's like stable coins.
00:28:18.300 | So this is a kind of tokens retain value equal to one dollar, but they're kind of backed
00:28:25.240 | by a cryptocurrency.
00:28:26.240 | Then there's decentralized exchanges.
00:28:30.800 | So as far as decentralized exchanges goes, there's this really interesting construction
00:28:38.040 | that has existed for about one and a half years now called Uniswap.
00:28:43.140 | So what Uniswap is, it's a smart contract that holds the balances of two tokens.
00:28:49.440 | We'll call them token A and token B. And it maintains an invariance that the balance of
00:28:53.960 | token A multiplied by the balance of token B has to equal the same value.
00:28:58.240 | And so the way that you trade against the thing is basically like you have this kind
00:29:02.720 | of curve, you know, like X times Y equals K. And before you trade, it's at some points
00:29:08.340 | on the curve.
00:29:09.340 | And then after you trade, you just like pick some different, any other points on the curve.
00:29:12.880 | And then whatever the delta X is, that's the amount of A tokens you provide.
00:29:16.440 | Whatever the delta Y is, that's the amount of B tokens you get or vice versa.
00:29:20.400 | And that's just, and then kind of the slope at the current points on the curve kind of
00:29:25.560 | is the price.
00:29:27.240 | And so that just is the whole thing.
00:29:30.760 | And that just allows you to have this exchange for tokens.
00:29:36.720 | And even if there's very few participants and the whole thing is just like so simple
00:29:42.700 | and it's just very easy to set up, very easy to participate in.
00:29:46.640 | And it just provides so much value to people.
00:29:52.340 | And the fundamental, the distributed application infrastructure allows that somehow.
00:30:00.860 | So this is a smart contract meeting.
00:30:02.860 | This is all a computer program that's just running on Ethereum.
00:30:06.180 | Smart contracts too are just fascinating.
00:30:08.700 | They are.
00:30:09.580 | [BLANK_AUDIO]
00:30:18.300 | [BLANK_AUDIO]