What I learned in January š¤ : Web3 + a new programming language (also: working on a new project!)
At the beginning of 2022, I gave myself the goal of learning one new thing each month. This month: Web3! (lifetothemax #32)
I usually post my lifetothemax newsletter on Sundays, but since Iāve missed the last three Sundays and I had this one ready, I thought Iād send it out now. Iāll be writing more these next few days/weeks to catch up on my unwarranted belatedness, so subscribe to get my newsletter in your inbox:
At the beginning of 2022, among other new yearās resolutions, I gave myself the goal of learning one new thing each month this year. This means that by the end of the year, Iāll have 12 new skills in my toolbox, all while being forced out of my comfort zone to try new things. These could be any type of skill: a new programming language, a new art skill, or simply a new hobby.
So hereās what I learned in January: Web3!
This newsletter will be slightly technical, unlike most previous ones, as it will cover some aspects of Web3. If youāve heard this term and have no idea what it means, then this could be a good starting point. Iāll try keeping it simple enough (hopefully) so that anyone can follow along! A quick note: I wonāt always write a whole newsletter about the topics I learn each month, but this one is quite fascinating and comes with a related announcement near the end, so I thought I would dedicate a whole newsletter to it. Iāll also cover some more general news about this newsletter at the end of this post, so if youāre a regular reader of my newsletter but donāt want to get into the technical stuff, you can jump there (look for the āš»š š»āāļøā symbols below).
So why this topic? Long story short, a friend asked me to join him in building a new project. This involves building a website hosted on a blockchain, so before I could help out with that, I first had to understand how that works, or what that even means. So what did I find out? (Before I get into it, I want to reiterate that I am no expert, as Iāve only been diving deep into this topic for a bit over a month. If you want to get more info about it, you can find some great resources online. This newsletter is also serving as an exercise for me to see how much Iāve learned and retained, so bear with me.)
Firstly, what is Web3? The following video really helped me understand the general concepts, and a lot of what I will cover is explained in greater detail in this video, so check it out:
Obviously, the easiest way to understand Web3 is comparing it to Web1&2.
In Web1, computers connected to each other directly. Data was shared over the internet straight from one computer to another. So when you messaged someone, your computer and theirs would āconnectā over the internet so the two of you could exchange messages (as opposed to both connecting to a third party service). This meant that people owned their own data, and this data was stored locally on each personās machine until it was sent to another machine. When it came to hosting websites (which is how websites are actually put āonlineā and are reachable over the internet), people and companies would host these sites on computers (a.k.a. servers) that they owned themselves. Although this model allowed for more control over where data is stored and who has access to it, it wasnāt very flexible (i.e. to allow for more traffic, you had to buy more physical servers to allow more people to reach your website faster). So Web2 came along to fix some of these flexibility issues.
In Web2, many more people started using the internet through specific websites that host interactions. Think of Facebook, where people would go to in order to interact with each other. Big tech players own the data (Facebook, Google) and host websites (Amazon, Microsoft). Data is stored on servers (the cloud), and these servers are housed in huge data centers owned by tech giants. When a small developer wants to host a website, gone are the days where they have to go out and buy physical hardware to host their site on a server in their home. Instead, they can ārentā space on Amazon Web Servicesā (AWS) servers (or a competitor) and just upload their websites there. With Web2, we also see the advent of APIs, which allow different websites and web services to interact with each other. For example, rather than signing up to a site with an email and password, a user could now āSign in with Facebookā or an equivalent platform. In this interaction, the user, whoās data is owned by Facebook, gives permission to Facebook to share this data with a third party website in order to sign up there. This simplifies the process for the user and the developer of the third-party platform, all while giving even more data and power to Facebook.
With Web3, the key word is decentralization. Blockchains and cryptocurrencies gave way to new options when it came to interacting with others online. When Bitcoin was created over ten years ago, a large part of these interactions were just ātransactionsā in the traditional sense of trading currency, but now it is increasingly possible to share data and fully host websites on blockchains.
So how does this work, and how do people āinteractā on a blockchain? People interact with each other by posting ātransactionsā to a blockchain, which means they are posting a change that will be saved there forever. Data can be stored directly on-chain or through decentralized systems (like IPFS). Rather than interacting through the medium of large corporations, āsmart contractsā govern how people can interact with blockchains and hence interact with each other. A website built this way takes the form of a smart contract, and when a person interacts with this smart contract, they are writing data to a blockchain. This is all quite abstract, but it basically means that people can interact securely without going through a big tech corp, and all while retaining ownership over their data.
The Web3 equivalent of āSign in with Facebookā is connecting a wallet or identity. People own wallets/identities that contain their crypto, assets and/or data, which means that once again, they own their own data. When someone connects in this way to a Web3 service, their transactions are āsignedā, so when data gets written to a blockchain, we know who wrote it and when. Ultimately, websites and data are hosted in a decentralized way, and/or owned by the users, not big tech corporations.
(Note: Iāve tried to explain these concepts with enough info to give a full enough picture but trying to omit as much jargon and unnecessary complexity to keep it simple enough for beginners. It is a hard line to walk, and I apologize if I have lost some of you in the complexity or misrepresented a concept by trying to simplify it.)
This new model does comes with a few concerns, that various blockchains address in different ways.
Who owns the blockchain? A blockchain in itself is not inherently decentralized. Amazon could create a blockchain (in fact they have services in AWS that allow you to create your own blockchain hosted on their servers) and this would not resolve the issue of being owned by big tech. Even without this, some blockchains are owned and maintained by Silicon Valley VCs and insiders. Another aspect of this are projects that market themselves as web3, such as Facebookās Metaverse (or should I say Metaās Metaverse?), that seems like a desperate ploy to keep control of an industry (owning peopleās data) that is slowly slipping through their fingers, with VR as an added layer of makeup.
Data storage. As I mentioned above, up until recently, when storing larger files (or even smaller ones in the case of certain blockchains), the best solution was off-chain storage solutions like IPFS. This works fine, but for certain use cases it would be nice to be able to store data directly on-chain. This is not possible with some of the bigger blockchains (e.g. Ethereum) without paying exorbitant storage fees. This is in part due to ETHās insane valuation, but also simply because the technology isnāt really optimized for this.
Environmental cost. Many have heard about the huge environmental cost of blockchain, which has turned many (including myself at first) off of the idea of working with them at all. Luckily, many more modern alternatives have been able to resolve this problem by designing way less computation-heavy blockchains or offsetting the environmental cost of their transactions (Solana is a notable example of this: Solanaās Energy Use Report: November 2021).
This finally brings me back to the specific blockchain that I decided to learn about (and the one that was used in my new project): the internet computer (also referred to as āthe ICā). This blockchain was developed and is maintained by a non profit organization called DFINITY. This blockchain addresses, in my mind, all of the issues I outlined above:
The IC was built and is maintained by a nonprofit, and new code is voted on by owners of ICP (the ICās cryptocurrency).
The IC has tiny gas and storage fees. Data can be stored directly on-chain for very low cost, and updating data also costs very little. DFINITYās website outlines live stats about the IC, including the current cost of storing 1GB of data (as I write this, the cost is $0.46 / GB / month). Storing images and even video is now possible directly on chain (CanCan, a clone of TikTok on the IC, was built specifically to showcase this)! A website can also be hosted directly on chain and accessed from the internet.
Lastly, the IC is built using āchain key technologyā in contrast with Bitcoin and Ethereumās āproof-of-stake or proof-of-workā (I will not be defining these terms, as I would not do as good a job as a myriad of smarter people than me online), which is much less compute-heavy and allows āsending or receiving ICP, NFTs, or other data on the Internet Computer [to be] comparable in electricity usage to sending an emailā (Source: 5 Reasons Why the Internet Computer Matters). This means that the strain on the environment becomes comparable to web2, while allowing all the benefits of a web3 platform. Amazing!
I wonāt go into too much more detail about the internet computer, but you can read more about its specific benefits especially as it compares to other blockchains in this article by twitter user @BTCryptopunk, which I thought did a good job at summarizing the details.
Alongside this blockchain, DFINITY also developed a new programming language called Motoko that enables developers to build āsmart contractsā on the IC to control how data is modeled and stored (in other words, how to write programs on the IC). While learning about Web3 and the IC, I also taught myself this language and how to use it to build a website from the ground up. As a developer itās a really cool new space, and forces you to relearn a lot of stuff. Super excited for this new knowledge and these new skills!
So there you go, thatās what I learned in January.
Now for the big announcement! Alongside this learning, I was using what I learned to build the new platform that my friend had asked me to help him develop. Itās called CrowdFundNFT, and itās a Web3 crowdfunding alternative to the traditional kickstarter/gofundme types of websites.
We use the technology of NFTs not so much for the āartā itself and creating artificial scarcity for digital art, but instead as a kind of āreceiptā for someone who funds a project on CrowdFundNFT. This NFT can be uniquely owned, resold, but most importantly is tied to certain benefits outlined by project creators.
Iāll discuss this project in more detail in the future, but for the time being, a demo āversion 0.1ā of the website is out now: CrowdFundNFT, and you can read the white paper of our project that my friend posted on medium: CrowdFund NFT: an alternative to traditional crowdfunding platforms. If you use these platforms, you can also follow us on Twitter and join our Discord.
Also, Iāve been very active recently on Twitter talking about this project, and I intend to keep posting updates about it and this newsletter (and other things I have going on in my life), so make sure to follow me there: @MaxLascombe on Twitter.
š»š š»āāļø Non technical stuff starts here! (Hi Mom!)
Thanks for reading through the technical stuff, and no hard feelings if you jumped to this section! It was really fun learning about this stuff over the last month, and Iāll definitely keep learning more about this over the coming months as well.
When it comes to my other goals, things have been going very well. I fell behind on writing this newsletter with the crunch of releasing our demo website for the project I mentioned above, but Iāll be more punctual now and will even be attempting to catch up on the past few weeks of missed newsletters. I have a few that Iāve already started writing or have topics lined up for, so make sure to subscribe if you havenāt already!
My 1 hour of reading a day is going great, and Iāve already finished finished 6 books since January 1st:
āHow to Change Your Mind: What the New Science of Psychedelics Teaches Us About Consciousness, Dying, Addiction, Depression, and Transcendenceā by Michael Pollan
āThe Martianā by Andy Weir
āCesar's Rules: Your Way to Train a Well-Behaved Dogā by Cesar Millan (to help with @adobo_da_dogās training)
āThe Call of the Wildā by Jack London
āEssentialism: The Disciplined Pursuit of Lessā by Greg McKeown
āMeditationsā by Marcus Aurelius
If you want to keep up with what I read and see what I think of all these books, follow me on Goodreads. I plan on writing a ā5 lessons I learned from my first five books of 2022ā newsletter, similar to last yearās newsletter (so subscribe to get that in your inbox):
I also completed a half marathon a few weeks ago! I havenāt written about it yet, but message me or comment below if you think I should. It was a grueling run, but overall it went well. It boils down to just running for 2 hours. Simple as that! (If you call that simple.)
Iāll leave this newsletter at that. I promise to keep future newsletters more timely and less technical (unless you liked the technical stuff, in which case, I promise to keep it just as technical).
Thanks for reading, and see you soon ā¤ļø
I didnāt understand anything you wrote this week <3