
Blockchain with Noah Hein
Noah Hein explains blockchain fundamentals, cryptocurrency use cases, and how web developers can transition into building decentralized applications.
Episode Description
Noah Hein explains blockchain fundamentals, cryptocurrency use cases, and how web developers can transition into building decentralized applications.
Episode Summary
In this episode, Noah Hein joins Anthony Campolo and Christopher Burns to break down blockchain technology from the ground up, starting with his own journey from traditional web development into the blockchain space. Noah defines blockchain as a cryptographically hashed linked list distributed across many nodes, then walks through how cryptocurrency tokens fit within that structure. A lively debate emerges when Christopher questions the practical need for crypto given existing banking systems, prompting Noah to share a real-world example of a nine-day international wire transfer versus a nine-minute crypto payment, illustrating the permissionless nature of blockchain. The conversation distinguishes Bitcoin as primarily a store of value from Ethereum as a Turing-complete platform capable of running smart contracts, and Noah uses a childhood toy-lending analogy to explain blockchain's core value proposition: verifiable ownership. The episode then shifts into developer territory, covering how to build a basic blockchain in Go, the role of test networks, gas fees for write access, and why blockchains are inherently resistant to DDoS attacks. Noah closes with practical advice for web developers looking to enter the space, recommending resources like DApp University and the Solidity programming language as starting points.
Chapters
00:00:00 - Introductions and Noah's Background
Anthony welcomes Noah Hein to the show and the two reflect on how they connected through the web development community on Twitter. Noah shares his path into tech, explaining that he started with a traditional computer science program in college but quickly realized the curriculum wasn't aligned with what employers were actually looking for in job descriptions. He dropped out and began teaching himself through YouTube, Google, and the broader online developer community, eventually finding Twitter as the central hub for web development conversations.
Noah describes how his self-directed learning led him to start writing about what he was studying, which became a key part of his strategy. He noticed the blockchain space was severely underserved in terms of accessible educational content, and he saw an opportunity to stand out by writing tutorials that bridged the gap between dense academic white papers and practical developer knowledge.
00:04:27 - Defining Blockchain and Core Concepts
Noah tackles the challenge of defining blockchain in accessible terms, describing it as a cryptographically hashed linked list distributed across many nodes. He explains why the linked list structure matters for security — changing any block in the middle requires recomputing the entire chain, making tampering computationally prohibitive. The conversation then moves to cryptocurrency, with Noah clarifying that tokens are stored within individual blocks as transactions native to their respective blockchains.
Christopher admits he struggles to see the practical purpose of cryptocurrency when traditional currencies already work, which sparks a broader discussion. Noah draws an analogy to the early internet era, when people questioned the point of web pages since they already had newspapers. He argues that blockchain is in a similar transitional phase where one-to-one comparisons to existing systems miss the emerging potential that will only become clear as the technology matures.
00:09:03 - The Case for Permissionless Finance
Noah shares a personal story about receiving an international wire transfer from a Canadian client that took nine days due to banking bureaucracy, compared to a crypto payment that arrived in roughly nine minutes with no intermediary approval needed. Christopher pushes back, noting that UK banking already handles fast transfers, which leads to a nuanced discussion about global inequality in financial infrastructure. Noah argues that blockchain's real power is inclusivity — anyone with an internet connection and a mobile phone can generate a wallet and transact regardless of their country's banking quality.
The conversation touches on how blockchain removes reliance on middlemen and standardizes financial access worldwide. Noah emphasizes that the technology isn't just about speed or convenience for people in developed nations; it's about providing equal access to those in countries with unstable currencies or underdeveloped banking systems, making it a fundamentally democratizing tool.
00:13:41 - Bitcoin vs. Ethereum and the Value Question
The hosts and Noah explore the differences between Bitcoin and Ethereum, with Noah noting that Bitcoin holds its top position largely due to first-mover advantage but isn't particularly well-suited for everyday transactions. He frames Bitcoin as more of a store of value or digital gold, while acknowledging that the threshold at which any cryptocurrency becomes useful as money varies from person to person and depends on adoption levels.
Noah then highlights a key distinction: Ethereum has an identifiable community and foundation guiding its development, whereas Bitcoin's creator remains anonymous. More importantly, Ethereum is Turing complete, meaning developers can write smart contracts — executable code that lives on the blockchain and enables a wide range of applications beyond simple value transfer. This programmability is what makes Ethereum a platform rather than just a currency, opening the door to decentralized applications and novel use cases.
00:19:03 - Blockchain's Core Use Case and Smart Contracts Explained
When Christopher asks Noah to explain blockchain's perfect use case to a five-year-old, Noah uses a childhood analogy about lending a toy fire truck to a neighbor, describing how a blockchain could serve as an indisputable digital deed of ownership. Anthony distills this down to the idea that blockchain is fundamentally about ownership, and Noah agrees while noting the technology's broader potential for distributing value of any kind.
The discussion transitions into the developer perspective as Noah explains smart contracts as essentially APIs that live on the blockchain. He walks through a simple example of a contract that takes Ethereum, performs a computation, and returns a result, drawing a direct parallel to functions in traditional programming. This framing helps connect blockchain development to familiar web development concepts, making the on-ramp clearer for developers considering the transition.
00:24:38 - Building a Blockchain from Scratch
Noah breaks down the difference between building a blockchain itself versus building an application on top of one, comparing it to the distinction between infrastructure and application development in traditional web work. He explains that his tutorial series uses Go to construct a basic blockchain from scratch, though he notes it could theoretically be done in many languages — Go, Rust, and C++ are preferred for their performance characteristics suited to infrastructure-level work.
He walks through the fundamental structure: each block contains data, a hash that serves as its identifier, and a pointer to the previous block's hash. By bundling the current data with the previous block's hash to create each new block ID, the chain gains its security properties. Noah emphasizes that this hands-on building process is humbling, as the concepts that seem straightforward in discussion become challenging to implement, requiring a different mental model than typical application development.
00:29:19 - Nodes, Test Networks, and Gas Fees
The conversation shifts to the practical realities of blockchain infrastructure. Noah explains that developers don't need to run their own nodes to deploy smart contracts, but test networks allow them to develop locally without spending real Ethereum. He clarifies the economic model: reading from the blockchain is free, but writing requires paying gas fees in Ethereum, which compensates the miners running the distributed network.
Christopher raises the question of companies abstracting blockchain complexity, and Noah explains how using Ethereum as infrastructure eliminates the need for traditional server costs. Anthony asks whether read-heavy traffic could DDoS a blockchain, and Noah explains that the distributed nature of nodes provides inherent load balancing, making such attacks impractical. The discussion also covers why smart contracts are essentially immutable once deployed, which is both a security feature and a development challenge.
00:38:46 - Exploring the Blockchain and Getting Started as a Developer
Christopher asks what the raw Ethereum blockchain actually looks like, and Noah describes it as a browsable history of transactions showing addresses sending funds to other addresses or contracts, with every block traceable back to the genesis block. He emphasizes that this full transparency is what makes the system trustless and verifiable — anyone can fact-check any claim about any transaction at any time.
Anthony wraps up by asking where developers should go to get started. Noah recommends his own tutorial series for blockchain fundamentals, DApp University on YouTube for building decentralized applications, and learning Solidity as the key programming language for writing smart contracts on Ethereum. Anthony also mentions that the Redwood framework already has an Ethereum integration built by a community member, offering an immediate on-ramp for Redwood developers interested in blockchain.
Transcript
00:00:00 - Noah Hein
Am I being heard right now?
00:00:12 - Anthony Campolo
Welcome to the show.
00:00:14 - Noah Hein
Hey. Glad to be here.
00:00:16 - Anthony Campolo
You are the host of the Block Party podcast. You're also a writer yourself. That's kind of how you and I got to know each other. I think we were both tweeting and doing general dev content, and we both saw that we had similar goals in terms of the types of jobs we were looking for and the types of career transition we were doing.
So it's been really great to get to know you and get to chat with you. We haven't really talked about blockchain at all on this show, and that'll be really fun. But before we get into any of that, I'd love to get your background, how you got into coding, and what your first experiences with coding were like.
00:00:56 - Noah Hein
Yeah, sure. Glad to be on here talking about the blockchain and really fortunate to have met you through this wonderful community. I got into this community through coding, and my path was a little more traditional than some but less traditional than others.
After graduating high school, I took a little bit of time for myself and then went back to college for computer science. Through that journey, about two years of it, I quickly learned that the job market was not lining up with what I was learning. The skills that I was going to be putting on my resume were not the bullet points in the job descriptions.
At that point, I dropped out and started teaching myself full time, doing YouTube, Google, the whole nine yards. That's kind of where I met you, in my learning journey. I was like, okay, I don't know about this whole Twitter thing, but it seems that web development has kind of chosen Twitter as the platform.
[00:01:52] So I guess I'm on Twitter now, and that's been my journey thus far, seeing everyone in this space and using Twitter as kind of the resource to meet all these crazy people.
00:02:02 - Anthony Campolo
That's awesome. You said you started doing web stuff, but now you're more in the blockchain area. I'd be curious how that transition happened, how far you got into web dev, if you see them as being compatible, or if you felt you've done a pivot. How do you think about that?
00:02:19 - Noah Hein
When I was doing my traditional web development, you mentioned we kind of have writing in common. So I was doing the whole learning in public, writing about all of the things that I was doing.
I saw that if I was going to write a React post, there were going to be like 50 other ones. I had an inkling in the back of my head that blockchains were interesting and cryptocurrencies were a little interesting. So I started doing more research into that and quickly realized that there was really nothing out there that was going to be useful to me.
There were plenty of white papers and all of the math behind it. If you have a PhD and care to dig through the actual documents for all of the researchers' papers that are being printed out, you can do that, but there was nothing really accessible to me. I quickly realized that could kind of be a way to expose myself to a lot more people, because a lot more people would be interested if I had something to say, if I was the only person talking about that subject.
[00:03:14] That's kind of how I realized this was a spotlight. I can get more people and employers looking at this content that I'm writing, and I will feel better whenever I'm providing value to more of those people.
A lot of my web development skills have transferred over, at least in my opinion. If you were a traditional web developer, the steps to becoming a DApp, a decentralized app developer, are really only substituting out a few key points here and there. I think most skills transfer, and I'm glad to have had the web fundamentals going into this space.
00:03:48 - Anthony Campolo
I totally agree with you. I went down the rabbit hole of crypto long before I even got into web dev myself, and it was very hard to grok and to get into because, like you say, there are tons of white papers and very dense mathematical content around it, but there are not many simple tutorials that you can just follow along with, which is a lot of what you've been writing, which is really cool. We'll get into that, but first, let's set some context since we haven't really talked much about blockchain.
Why don't you define some terms? You've already said DApp, decentralized apps. What is that? We should probably also define blockchain in general as well.
00:04:27 - Noah Hein
This is something that I struggle with quite heavily because of all of the things that are going around currently about what it is and what it isn't, the technical definitions versus something that someone else is going to understand.
If you have a traditional web development background, you probably understand a little bit about data structures. Maybe not too much. I know that's also a hot topic on whether or not you should know those things, but I would say most people know what a linked list is. If I say linked list, you have a kind of representation of your head, and I think of a blockchain as being a cryptographically hashed linked list that is distributed across many different nodes.
All of these nodes are run on a person's computer or multiple computers or servers as kind of a distributed computer.
00:05:11 - Anthony Campolo
It's a very clean definition. Why does it need to be a linked list?
00:05:14 - Noah Hein
Linked lists have certain properties, and blockchains use those properties rather effectively. I like that definition I just gave because blockchains aren't anything new at all. It's all technologies that we have had for a while, just stitched together in a way that provides certain properties.
For the linked lists, it allows us to have a continuous chain of all this data that is immutable, because if someone wanted to have a new blockchain and they wanted to change out some data that was in the middle, we have chain one, two, three, and they want to change block two, they're going to have to go through the entire process. That's where the cryptography comes in, all of the computing process that it took to get from one all the way up to three if they want to change anything in between.
So having that linked list where everything is connected to the thing that came before it is a really nice security property to have in the blockchain.
00:06:11 - Anthony Campolo
Most people who have heard about all this stuff will say, okay, I've heard of Bitcoin and how Bitcoin has to do with blockchain, and Bitcoin is a cryptocurrency. So where does cryptocurrency come into the story?
00:06:22 - Noah Hein
Cryptocurrencies are interesting in the sense that they're tokens that we are able to store within each individual block. That's a chain of blocks as a blockchain. Each individual block will have transactions in it, and these transactions can have tokens.
These tokens are what you traditionally think of whenever you think of a cryptocurrency: a token that is native to whatever blockchain that it is representing. So in the case of Bitcoin, it is the actual Bitcoin blockchain that that token represents.
00:06:54 - Christopher Burns
I consider myself to be a smart person, but cryptocurrency and blockchain, I just don't understand it. I understand it, but then I truly don't think I understand it, if that makes sense.
What's the use? This sounds like such a stupid question. It's like everybody's like, get all your coins. And I'm just like, what's wrong with the dollar? What's wrong with the pound? Yeah, they're not perfect, but I can still buy everything through them. And it's like, yeah, but we want a currency for the internet. It's like the internet already has its currencies and everybody has them.
00:07:31 - Noah Hein
Yeah, sure. I think you're seeing, because this is such a new technology that's changing how, or at least in my opinion, will be changing how things are conducted into the future, this very one-to-one comparison currently.
You see this if you're going back looking at history whenever we transitioned from the printing press to the internet. We had books and newspapers, and then whenever the internet came along, we started copying one to one. We said, okay, I get the New York Times at my door every morning, so now on the internet, I have the New York Times. People said at that point, well, what is the point of a web page? I already have the paper in my hand. What is the point of this?
So right now you're seeing a lot of cryptocurrencies just kind of seeing that one-to-one comparison: okay, this is what we had before, so we're just going to copy what we had before onto this new thing. But you can also see from the web, we took that and started building up. Right now we're very much in that process of the blockchain where things are just building up currently.
I think that's why it will be useful. There are certain things that you can do with that that you can't in the analog world. But to really answer the question, what is the point of it? Currently, there are a couple different things. The number one for me is that it's permissionless. I know this is kind of like a buzzword in the space, but it essentially means you don't have to have anyone else okay the transaction.
I'll use an example that came to me recently in life. About a week ago, I had a client come to me that wants some blockchain consultancy on his project, and he sent me a wire transfer. We agreed on the money. He sent me a wire transfer. He lives in Canada. It took me, I believe, nine days from when he told me that he sent the transfer to me having money in my bank account, and all of that was due to needing permission from his bank, the Canadian bank. He sent the money, and the Canadian bank said, okay, we have your money and we're going to go send it over to this American bank.
Then my American bank was like, whoa, you're getting money from Canada. You've never gotten money from Canada before. This is kind of weird. We need to check all of this out. And that took a little bit. Then it was the weekend, and people weren't working over the weekend to look at my transfer. When all of that was done, I got my money. He wanted me to start work before that, so he sent me some crypto that took maybe, whatever the current hash rate is, I think it's like nine minutes or something like that on Ethereum. It took me nine minutes to get my money, and no one had to question whether or not that was okay to do on either end.
00:10:07 - Christopher Burns
Our listeners can obviously see my face, but I'm blinking like, it sounds like you guys need to upgrade your banking system in the good old US of A because in Britannia, the United Kingdom, land of the Brexit, we have pretty modern banking that can do bank transfers in like three seconds and have money in your account in like three seconds.
00:10:30 - Anthony Campolo
Even outside the country though, if you're doing a transaction outside the country.
00:10:34 - Christopher Burns
Yeah, no problemo.
00:10:37 - Anthony Campolo
There's fees though, right?
00:10:38 - Christopher Burns
There are fees, of course.
00:10:40 - Anthony Campolo
You can also take the fees out of the equation as well with blockchain.
00:10:44 - Christopher Burns
I'm not necessarily talking about the fees, but in terms of speed, we don't have bad banking. Like, every time I hear about banking in the US, I just think that every town has its own bank. That's probably a Wells Fargo or something like that. And it has a fax machine where all the money bills come in through banking. It seems ancient in America to me.
00:11:07 - Noah Hein
I could also agree with that, but I think that really illustrates and showcases my point here. Yeah, maybe you have the infrastructure for it, but not everyone else does.
Blockchain for me is really inclusive of everyone in the sense that, okay, I have a wallet. This wallet didn't cost me anything to generate. I had an internet connection, and it said, okay, here's your wallet. Anyone with a mobile phone can get that essentially, and I can send the money regardless of whether or not their country has made good governmental choices and followed policy and upgraded their banking infrastructure. We can now rely on an individual person and this distributed node network that I was speaking of earlier. We can trust that, and that can be the thing that facilitates all of these transactions.
We don't have to be like, okay, well, you know, unfortunately I didn't get to vote on whatever happened in UK Parliament that got you all this wonderful banking system that you all have. I don't have access to that.
[00:12:05] And I live in America where we have these archaic banking systems and everything is kind of a bespoke technology from bank to bank to bank. There's not that standardization. And that's really what this cryptocurrency is about, just kind of unifying everyone in a way that nobody can say, no, you don't get to do that.
It also provides access to everybody in a way that just because maybe your country doesn't have great infrastructure or a nice stable currency, you can still take advantage of this global network.
00:12:37 - Christopher Burns
We're quite lucky because we have something called the Open Banking API. Technically, any bank can communicate with any other bank because they all speak the same language. In the UK, you can do crazy things in your smart banks like Monzo. You can connect four accounts into your Monzo app and see every single up and down debt you have.
But we're not talking about fiat currencies here, because obviously every country has a fiat currency, but it's not the dollar. Everything goes off the dollar. Surprisingly, my big question with cryptocurrencies, and you may be able to answer this, is I see no use for it personally as a payment until it kind of is just like the dollar or the pound. When I did some research and watched a few videos, that seems like government-backed coins like internet dollar and internet pound.
But I just don't get why Bitcoin's become such a big thing. Everyone's like, it's going to be the future of payments. One day you can buy a Tesla with it, and the next day it loses the value of a Tesla.
00:13:41 - Noah Hein
There are things to be said about Bitcoin comparisons to other blockchains that have emerged since then. Bitcoin kind of sits in the number one position because it was first. They have that advantage. First comers get the lion's share of the spoils and all of that.
Bitcoin, in my opinion, is not particularly useful for transactions. You hear a lot of people saying that it's kind of a store of value or that it's digital gold and you just want to buy some and then let it sit there. I'm not particularly knowledgeable about the Bitcoin specifics and whether or not it will at some point be useful for transactions. It could be at some point, but just because it's not useful for you as a transaction doesn't mean it won't be useful for someone else.
In the meantime, there's kind of like a threshold for you personally where it would be useful for you to have Ethereum in your mind as it being a money. For it to be a money to you, it needs to have a certain threshold of usage. Enough people also have to be using Ethereum before you're going to use Ethereum and consider it to be useful. That threshold is lower for some people and higher for others. As it grows, it eventually could be this kind of currency status. But I don't think it's fair to call it that right now.
A lot of people that are really pro cryptocurrency are like, oh my gosh, I could pay everything with crypto. That would be fantastic. And it's like, yeah, well, maybe, but we're not there yet. I don't think it's healthy to really perpetuate that right now. Certainly in the future, but I just don't think it's quite there yet.
00:15:22 - Christopher Burns
So what you're saying is wait until the market cools down and then it's worth investing, or is it worth investing in early?
00:15:30 - Noah Hein
I think it's worth investing in now. But, you know, as always, that's just my opinion. I'm not a fiduciary consultant of any sort, and I would never tell anyone else what to do with their money.
00:15:41 - Anthony Campolo
Yeah, I think if you look historically at the prices of these different things, Bitcoin still looks like the safest investment in the sense that it's been around the longest. It's worth the most. It seems to be on a good trajectory.
But as you say, we have Ethereum, which is entirely different from Bitcoin as far as I know. The real difference you want to wrap your mind around with these two is that, as you say, Bitcoin's like a currency, whereas with Ethereum it's more of a general purpose computing apparatus that you can actually send any sort of computation to. It doesn't necessarily have to be a transaction at all. It could be something like an image that you're saving. And this is where you get things like CryptoKitties from a while ago and things like NFTs.
So I would like to get your definition of how Ethereum differs from Bitcoin.
00:16:34 - Noah Hein
One thing that I think is important to preface in these discussions, that a lot of people, at least in the tech community, don't really respect, in my opinion, is the societal aspect of it, especially whenever you start talking about whether or not this is a currency and whether or not it's useful to be that, and what's the actual use case.
That's a question I get a lot. Yeah, okay, that's cool as a thing, but why is it useful? Socially, there is an aspect of Ethereum that is present that is not in Bitcoin, and that is that the people that founded it are still around. There's a pseudonym, Satoshi Nakamoto, that created Bitcoin.
00:17:08 - Anthony Campolo
Not only are they around, we actually know who they are.
00:17:11 - Noah Hein
Yeah, nobody knows who Satoshi Nakamoto is. Whether or not it is a person, a group of people, we have no idea. He just kind of dropped it and said, there you go, I'm out of here. We never heard from him again.
Whereas Ethereum was made by someone I just know as Vitalik. There's also the Ethereum Foundation, which, needless to say, doesn't necessarily have direct control over this because they don't. But there is at least a community around them and people that govern these policies because they are kind of seen as a source of credibility.
So I think that's the number one difference. There's a community around Ethereum that is having discussions on where it should go, whereas that is not necessarily the case for Bitcoin, given that it's just a bit more of a free for all.
Then Ethereum has some technological differences from Bitcoin. You spoke to it as kind of like this computing currency, and that's certainly the way that I see it. I think it's an accurate way to view it because it has this inherent utility to it.
If we're looking at Bitcoin, it's just a money, a coin, a gold. Whether or not you see it as a store of value or you see it as an actual currency that you want to spend all the time, that's really what it is useful for at the end of the day.
Whereas Ethereum, I have different properties that I can attach to it because Ethereum is Turing complete, and that means that we can code these things called smart contracts. These smart contracts are just code, and you can see this code, and we will take Ethereum and do something with it according to this code that you wrote.
So you can have all sorts of use cases that are built on top of it, whereas that's not the case for Bitcoin currently.
00:19:03 - Anthony Campolo
Yeah. I'd like to get into more of the dev aspects here. I would say though my vote is Nick Szabo or Szabo, however that's pronounced. He's my vote for who Satoshi was. It was him and Hal Finney together. But that's a conversation for another time.
00:19:16 - Christopher Burns
I just have one question before we jump into the developer side. If we were speaking to a five-year-old who doesn't know what blockchain is or anything, and we had to explain the perfect use case of blockchain technology, what would you describe? The perfect use case. No limits. Perfect use case.
00:19:36 - Noah Hein
When I was a kid, I shared my toys a lot with my other friends that lived across the street. So my neighbor said, hey, can I borrow your fire truck or whatever? So yeah, sure, you can borrow my fire truck.
At that point, there's nothing really more than my word versus his word that that fire truck is mine. So I would tell him, you know, if you had used a blockchain, there could be a virtual deed of this fire truck that I own and no one can take away from me.
And so I can give you this fire truck, and whenever I say, hey, I would like my fire truck back, you've had it for a week. It's mine at the end of the day, and I want to play with it now. And he says, oh no, this is mine. I kind of have this digital piece of paper, as it were, that could be like, yeah, this is mine.
[00:20:18] And it says so according to the blockchain that we all use and can agree upon, and we can all agree upon it because no one else can tamper with it.
00:20:28 - Anthony Campolo
So for you, it's about ownership.
00:20:29 - Noah Hein
Yeah. I think that at the end of the day will be where it is most useful. But there are certainly other aspects where I'm sure my brain just hasn't gone there quite yet.
00:20:38 - Christopher Burns
Basically, if Blockbuster came ten years later, the blockchain would be what it's used for.
00:20:45 - Noah Hein
You can see that, Blockbuster.
00:20:47 - Christopher Burns
No, but I think it's a really good question because we get so caught up with the value of the cryptocurrencies and not necessarily the blockchain. I remember two periods of this. I remember two and a half, three years ago where everybody's like, does your company use blockchain? No. Well, we're not invested in you. We only want blockchain companies. Like, give me some blockchain companies. What do I even use the blockchain for?
Now you've got the next wave that's like all about cryptocurrencies and obviously the mass adoption that we're starting to see. So yeah, it's really interesting to think about. I'm really excited to know more about the use cases of not necessarily cryptocurrency, because as we said, it's just like going from trading coconuts to dollars. It's potentially the next level. But what's the true uses of blockchain? And how can developers actually start using the blockchain to see significantly better value in potentially things that you do?
00:21:54 - Noah Hein
I would also like to preface what I said before about ownership. There are certainly other aspects to it that you can dive into. I just use that in this example. And that's one of the reasons that I'm so, I'll use the trading term, bullish on blockchain as a whole.
It's really very much in the sense of how the internet was a way to distribute information. I see blockchain as a way to distribute value, and value is really whatever it needs to be for your arbitrary situation.
As far as the actual development side of it, I called them smart contracts earlier. Going back to the very beginning, why I said my web background certainly did me good as far as this is concerned, smart contracts are just kind of the API essentially for something that you would call.
If I wrote a smart contract that said, hey, this would not be a very useful smart contract, I'll just use it because it's an easy thing to think of in your mind. I could code a smart contract that says, okay, I'm going to take the two Ethereum that you give me as a smart contract, and I'm going to give you 10% of that back. I'll give you 2.1 Ethereum, and I'll just give that back to you every time that you call me.
Obviously, you probably don't have the funds for that, and you wouldn't really want to make that a public thing that everybody could just call because you'd run out of all of your money. But it is something that you could see. This is very much like a function in that it takes a value, it does something to it, and then it gives it back.
That's kind of what smart contracts do. All of these smart contracts live on this Ethereum blockchain and anyone has access to them. Having that web background is certainly useful for you, in the sense that you can start to wrap your head around, okay, this is what it is. This is a use case for it.
[00:23:39] Then you can start to see how we can start creating more bespoke systems of all of these smart contracts, kind of woven together in some sort of meaningful fashion that is going to do everything that you think would be useful for your application to do.
00:23:52 - Anthony Campolo
Great. That's kind of in the abstract how we see these sitting in terms of their value and their use case. And this debate will continue to rage on long after this podcast episode. But I think that was pretty good coverage of it.
I would like to take it back even further though and say, I'm a developer. I want to get into this whole blockchain thing, not like trading and buying, like I want to build something. So I'd be curious. Let's take your tutorial series, for example. If I wanted to follow along with your tutorial series and I open up part one, what do I need to do to get set up? What languages do I need? What do I need to install? Do I need a CLI? What are the prerequisites to actually start coding and developing a blockchain application?
00:24:38 - Noah Hein
There are a couple different things here because my tutorial is very much the blockchain itself. So if you're thinking about whether or not you want to build a blockchain for your application versus an application that uses the blockchain, you can think of those as different things.
If I'm using web development as the analogy, just because I'm calling a serverless function or whatever, I'm building an application that calls these APIs. I'm not always necessarily worried about what it is that is doing that. I don't necessarily care about the infrastructure. So if you're thinking in web development terms, the blockchain is very much like your server or your infrastructure.
Then there are these things called decentralized applications. People call them DApps, DAPs, and that's what an actual application would be that is going to utilize the blockchain in some meaningful way.
I can answer either question, but I'd like your opinion on what you think people would prefer to know about.
00:25:34 - Anthony Campolo
Yeah. Let's start with just the blockchain itself, and then we can talk about what it would actually mean to write a DApp on top of an already existing blockchain like Ethereum.
Because I think what you're doing is really smart, because you're showing how you would build your own Ethereum up from scratch. This is how I like to think about tutorials in any sort of content like this. You want to capture a big idea and its smallest possible implementation. So I think you're trying to create like a Hello World blockchain is kind of the way I saw that series. So I think that's really cool, and I'd like to go down that route.
00:26:07 - Noah Hein
Yeah, sure. If you are just coding up the actual blockchain, it's really just whatever tool or whatever language that you would like. I think you could do it in many different ones. The one that we're talking about from my series is in Go.
00:26:21 - Anthony Campolo
Can you do it in TypeScript?
00:26:23 - Noah Hein
Yeah, I think if I'm really thinking about it, I don't see a limitation aside from performance as to what it actually is. Because all the blockchain is, like I said, is a cryptographically hashed linked list that is then distributed via some network. So you can really do that in anything.
I think you will most commonly see implementations of this in Golang and Rust and C++, and these really performant infrastructure-based languages that you see everybody building those kind of lower level infrastructure tools in because they are performant and that's kind of what they were built for. But if I'm thinking about it, I haven't tried to code up a blockchain in Python, but I don't see a reason why you couldn't.
00:27:05 - Anthony Campolo
Yeah, especially because with Python you can drop down to C if you need to. But like you say, it makes more sense to just start with a systems language in the first place.
00:27:14 - Noah Hein
Yeah. In my case we're doing the Hello World, and you really start to think about all of these different things. It's always a very humbling experience because we can talk about this and it can gel in your head. Oh yeah, all of that makes sense and I understand all of that.
And I say, okay, well build me a blockchain that I can run in a CLI that prints out a blockchain, and then in that blockchain there's data that says Hello World. Like, well, I know about that. And I'm sure if I spent a bit more time looking into it, I could figure it out. But it's definitely a different mental model that you have to start approaching it, and you start to really appreciate everything that goes into it and all the different technologies.
So for my infrastructure, you really want to start out with a block. I'm thinking of this block, and this block needs to have functionality where I can append another block to it.
[00:28:03] If you're thinking of this kind of individual block, I think of it as like a class, or in Go we use structures. Your block needs to have data in it. This can be just arbitrary whatever it is. In my case, I just use bytes. Whatever bytes this is, that's going to be the data, and then there is going to be a hash of this. Then there needs to be a pointer to the block before it.
So how you get this list going is this hash kind of works as like the block ID almost. To get like block one, two, and three, to get block number three, we link all of these together with that security aspect that I said before. We hash the data and then the previous block's, I'm going to use block ID, but their hash, and then we take that and the data that I want, and we bundle it together, and that's going to be the new block's ID.
[00:28:53] So you can kind of start to see, okay, we use this hashing so that it is computationally expensive, or not necessarily computationally expensive, but it is not easy to replicate in the sense that I can't just come up with 10,000 hashes that are going to match these other 10,000 hashes without doing some seriously crazy computing power.
I hope that answers the general question. I'd be happy. I'm sure you have some questions based off of that. I don't want to ramble on for too long.
00:29:19 - Anthony Campolo
Yeah, no, that was really good. The first thing would be you're talking about running a single node, right? So what you would be creating would then be run on multiple nodes, and then it would be a real blockchain.
00:29:28 - Noah Hein
Yes.
00:29:29 - Anthony Campolo
Gotcha.
00:29:30 - Christopher Burns
Do you find that there tends to be companies that abstract blockchain and these kind of things better than others? Like for example, I use magic dot link as an authorization system, and they're based on the blockchain. They have methods of interacting with the blockchain. But to me, who doesn't do the blockchain, what benefits does it have them using the blockchain?
00:29:59 - Noah Hein
The benefits of them using a particular blockchain, for one, is that they don't have to have their own infrastructure. I can offer my services to you using the Ethereum blockchain, and I can just use Ethereum. If we're thinking of Ethereum as just kind of like this global computation network, I don't have to have an AWS bill. I don't need to spin up something on my own. I don't need to have a server farm running in the background so I can service all of these different people and provide services to them, or some sort of API that is bespoke to me.
00:30:28 - Anthony Campolo
So you're saying blockchain is serverless?
00:30:32 - Noah Hein
You know, for the end user, I don't think they need to worry too much. If you're building this application, you don't need to worry too much about what the availability of this blockchain is. Because if the blockchain goes down, you've got much bigger problems than whatever your application is.
It's one of the reasons that we like blockchain so much in the space, due to how secure they are and how resistant to attack they are. They're very robust systems that are really hard to penetrate, at least in traditional methods. I'm not saying that it doesn't happen, but you'll see in different hacks published online, they target the smart contracts, and the smart contracts usually have some sort of bug in them, as code does, and they are able to exploit that bug in some sort of way that is going to benefit them as a hacker.
But rarely, if ever, do you actually see the integrity of the underlying blockchain go down. That's due to the security that's inherent in how they're built.
00:31:29 - Christopher Burns
If I wanted to build an application, let's take a use case. It's a simple escrow functionality. I have people who, let's say, buy cars from randomers. How can I trust that randomer with my money? How do I know that as soon as I hand over the money, they're not going to run away with the money?
So you could say that me, the platform, would then code smart contracts into the Ethereum blockchain, saying when this money is handed to this person, wait for the keys. When the keys are handed, give money to person A, right? That's a use case of a smart contract. When person A gives money and person B gives keys, exchange them.
00:32:14 - Noah Hein
Yeah. You illustrate a really good point there in the use case for it, and why so many people are excited because they no longer have to trust you, Chris, as the developer of this.
Right now, I have a website for a client and that is running on DigitalOcean. I'm not saying that it would happen, but there is nothing stopping DigitalOcean from just saying, you know what, I don't like you. They no longer host this, and I'm just kind of up the creek without a paddle.
00:32:43 - Anthony Campolo
Well, this happened with Cloudflare. The Cloudflare CEO decided to shut down a specific website for political reasons. And he said at the time, I shouldn't have the ability to do this. Even though he made the decision, he said he was very uncomfortable doing it.
00:32:56 - Noah Hein
Yeah, we're kind of at the will of these middlemen because that's essentially what it is. You have this need for a server and you want to be able to do it, and you don't have the ability to provide it yourself. And so you just trust that Amazon as the middleman running AWS is not going to mess with you because they said they wouldn't.
You don't necessarily think of yourself as trusting Amazon in your head, but you're very reliant upon them. So in your use case, I don't have to be reliant on you, Chris, as being like, oh, I think Chris is a really upstanding guy, and I don't think he would ever take my money before he got the keys. He's just a great guy. They don't have to trust that. And that's why we call it trustless and permissionless.
We can go look at the code that you wrote. I can be like, okay, this says what Chris says it's going to do. And because it's a program, I know it's going to do exactly that and it doesn't have the capabilities of doing anything else.
00:33:48 - Anthony Campolo
This gets at the next question I had, which is what does it actually mean to host a blockchain? Because as you're saying, if we were just hosting on DigitalOcean, then that kind of defeats the purpose.
So do you have to actually boot up your own server and plug it in and load it up? How do you actually host this thing?
00:34:04 - Noah Hein
Yeah, sure. And that gets into some of the intricacies of developing these currently. Like I said, we can all look at this smart contract because smart contracts are immutable in a sense, but generally speaking, they're kind of like firmware, almost, where it's like, I ship this out and because there's a bug in it, I can't really fix it. It's just kind of living there on the blockchain.
That's why we trust it, because we can look at it and understand that it's not going to change or say, hey, look at this, and then you look away and I change it to be something else, and then you put your money in and poof, it went into my bank account.
If you want to use the blockchain, you don't have to run your own node. You can develop it and put it out there, and it's just going to run on all of these other nodes. But that's not really useful whenever you are developing something small yourself.
Like I said before, in that example that I was giving in Go where I show people how to build their own blockchain, that's just an individual node that we're talking about building. We call these test networks or these test environments.
That's where you just run an Ethereum node. It's exactly Ethereum, but I'm just not connected to anyone else. Because I don't have the security properties of connecting to anyone else, I can change the properties as I so desire, and I can run that on my computer. You can run a node on your computer if you want, and there are certainly benefits to it. At that point you're what's called a miner. You are helping this distributed network grow and you are compensated for it in some way.
There's a lot of different methods and models that people are using to compensate the people that are actually running the network on their computers, but you don't have to. If you're a developer, you can just run one of these little test networks that I said, and there are all sorts of little tools and different packages that these companies are making, little test networks that you can configure to behave in whatever way that you would like.
[00:35:57] Then you don't have to spend actual money on testing it out. We haven't talked about it, but you can read anything on the blockchain for free. But if I want write access to the blockchain, I have to pay some Ethereum for that to happen. That is what keeps this all going, because otherwise everyone's just using all of this electricity on their computer to run the server, and they're not getting compensated for it in any way.
So this gas fee, this Ethereum that I'm giving for write access to the blockchain, is distributed among everyone that's actually running it and allowing this thing to happen. And obviously, you can imagine if I'm testing Hello World, I don't necessarily want to spend money to see if my Hello World actually wrote to the blockchain.
So that's what we use these test networks for. I can pull all of their info down onto my computer. Then I can do whatever I want with it, and I can use fake Ethereum or whatever money. I can give myself infinite money and pay myself all the gas fees that I want and develop all of the smart contracts and do all of that and know that whenever I put it on the Ethereum blockchain, it's going to work perfectly because that's what I've been developing on.
But I haven't had to actually pay the real money to do that. And if there's anything that I said there that didn't necessarily make sense, please feel free to tug on it.
00:37:11 - Anthony Campolo
No, that made sense. The only thing I was curious about, because I've never heard before that you have to pay for write access but not read access. I'm curious then, does that mean with enough computers doing reads, could you DDoS a blockchain?
00:37:27 - Noah Hein
No, because that's like my read access. If you wanted to directly read off the blockchain, you would need to be running your own node. At that point, you would have to spin up enough nodes that are individually looking at this one block and have everyone getting all these different requests.
But why DDoS attacks really don't work is I can request this read off of a node, but let's say, Anthony, you're running a node and Chris, you're running a node. I can't ask Anthony's node to give me this block, and I can't ask Chris's node to give me that block. So if I just ask the blockchain of Ethereum as a whole, hey, I want 10,000 requests of this one particular thing, it's going to distribute that evenly.
So that's why.
00:38:14 - Anthony Campolo
So it has load balancing built in is what you're saying.
00:38:17 - Noah Hein
Yes. So there's no way for you to really DDoS a blockchain, at least at this current point in time. That's my knowledge of it. That might be incorrect.
Most of the time, that's not what people are using reads for. They're not building up their own node to do a read, because there are several websites that just have the entire history of Ethereum, and you can just use their search bar for whatever it is that you would look up. And that's just way easier for anyone that isn't looking to break down the network for malicious purposes.
00:38:46 - Christopher Burns
My final question would be if you were to just look at the Ethereum blockchain, would it be like X bought Y? B happened to Y? Just complete random information of just things like actions that have happened, a complete random list.
00:39:06 - Noah Hein
Yeah, sure. So you have this linked list, and each individual block has these transactions in it. It would look pretty much exactly like that in the sense that we would have this block, and this block would say, hey, I point to this other block. It would have that information about it, that kind of metadata as to where it sits in the chain.
But each individual block, you can actually look on Ethereum and you can go back all the way in time. You can look at the very first block that was mined on Ethereum. We call those genesis blocks in the industry. You can look at each individual block and look at all of the transactions that that block contains. Maybe it'll say this address sent money to this address, or it might say this address sent money to this contract. And that contract has a different kind of address compared to a wallet address. But yeah, it has all of that information on there.
[00:39:56] That's another reason that we say that it's fully trustless and verifiable. If I say this happened, anyone else can go and look, say, oh, you know, Noah has this wallet that he says he owns, and this wallet sent money two years ago to this specific address. Well, I can fact-check you and be like, no, because look at this block that has your address. You didn't send it to this address, you sent it to this other one, and this other one did this other thing and that did this other thing.
So everything kind of points together. It's kind of like that Spider-Man meme of everyone saying like, ah, no, it's you. It's like, oh no, it's me. Everyone's just kind of pointing at each other and you have all that data.
00:40:36 - Anthony Campolo
This is why I like the term shared ledger. I feel like if you at least know what a ledger is, shared ledger is a pretty good way to get across that idea you're just explaining there.
Awesome. Well, thank you so much, Anthony, for all of this. This is really informational and useful. My last question would be I'm a developer. I know how to use a code editor. I know how to use the terminal. But I don't know anything about blockchain. Where should I go to get started?
It sounds like your blog posts are a good place to go, but what are some other resources? What should I be learning? Where should I be going? How do I direct myself in this direction?
00:41:14 - Noah Hein
If you're really looking for that kind of fundamental as to what a blockchain does, I think my article is a good place to start. But if you're a web developer that wants to build applications on top of the blockchain, for one, I would say kudos to you. There need to be more of those people, and should you decide to write something about it, you would be benefiting a lot of people because there are not as many resources as there should be.
You want to start looking at places like Binance. It has a course on kind of how to build the blockchain. I'll shout out a YouTuber as well. If you go to DApp University, he has quite a lot of tutorials on what it is to actually build a decentralized application.
But you're essentially just taking all of your front end skills as a web developer, and instead of making API calls, you make calls to the blockchain using these smart contracts that are coded in Solidity. So if I were to say that you want to build applications, you should look up how to write Solidity and learn that programming language and go from there.
[00:42:10] Because once you kind of have that foundation, you'll know better questions on what to ask because you'll be like, okay, well, maybe I can't look up how to build this from scratch or how to do this one specific thing. But once you start narrowing down what it is that you need to search, just like in traditional web development, if you know the questions to ask, you'll have a lot better luck in finding what it is that you're looking for.
00:42:29 - Anthony Campolo
The last thing I'll throw out is we actually have an Ethereum integration with Redwood. This is something that Patrick, one of our community members, has already totally built out. He's written articles to explain how to use it. So if you're someone listening to this and you're a Redwood developer, which I would guess some people are, then that's somewhere you can go right away to get started. And I think that's really cool.
I would like to get Patrick on the show actually to talk about that. But why don't you go ahead and just let our listeners know where they can find you, where you reside online?
00:43:02 - Noah Hein
Usually I'm on Twitter. You can find me at @ajcwebdev. You can also find me at [email address unclear] if you want to email me. Other than that, you'll usually find me on Twitter. And if you're on Discord, I'm in the React Podcast Discord quite a bit.
00:43:17 - Christopher Burns
Thank you.
00:43:18 - Noah Hein
Yeah, absolutely. It's a pleasure. Thank you all for having me.
00:43:50 - Anthony Campolo
Man, if anyone listened to me like three years ago to buy all this shit, they'd be wealthy.