#6 - The Summer of Bitcoin Experience
Why should one run a bitcoin node, chat with SOB 2022 intern Yetong Tang on his bitcoin dev journey, and best bitcoin jobs for freshers!
Hello Summer of Bitcoiner!
Have you ever wondered why should one run a bitcoin full node? In today’s edition, we bring to you an excerpt from one of the most prolific bitcoin contributors, Peter Wuille, who explains how a full node is the basis of bitcoin’s strength and its independence from trusted third parties.
What is a full node?
A full node is a program that fully validates transactions and blocks.
A bitcoin full node is a certainty machine. When a user runs a full node, they are granted a level of certainty about a monetary network that no human had prior to bitcoin’s existence. Every other monetary technology is riddled with uncertainties. Bitcoin fixes this.
Michael Goldstein, Toward a Node World Order
Eight years ago, a Reddit user u/priuspilot asked about the importance of running a full node. He shared a quote from the Bitcoin wiki - “Simply running a full node on a server somewhere does not contribute to Bitcoin's economic strength. To contribute to Bitcoin's economic strength, you must actually use a full node for your real transactions (or use a lightweight node connected to a full node that you personally control).”
This is what Peter Wuille responded.
One of Bitcoin's strengths - the most important in my opinion even - is the low degree of trust you need in others.
If you use a full node for your incoming transactions, you know that there was no cheating anytime in the history of your coins:
Nobody ever created money out of nothing (except for mimers, and only according to a well-defined schedule).
Nobody ever spent coins without holding their private key.
Nobody spent the same coins twice (but see further).
Nobody violated any of the other tricky rules that are needed to keep the system in check (difficulty, proof of work, DoS protection, ...).
... with one exception: because there is a need to pick a winner in presence of multiple competing valid versions of the ledger, (a majority of) miners have the authority to pick the version of the block chain that wins. This means their power is limited to choosing the order in which otherwise valid transactions occur, up to and including the right to delay them indefinitely. But they cannot make invalid transaction look valid to a full node.
If you are not running a full node, the amount of trust you're placing in others increases.
SPV nodes (such as some mobile clients, and Multibit) place a blind trust in the majority of miners, without checking validity of the blockchain they produce. It still requires a majority of miners to mislead an SPV node, but they can make it believe anything (including "You received 10000000 BTC!"). The reason why this does not happen is because full nodes would not accept such blocks, and assuming a large portion of the ecosystem does rely on full nodes, miners who do this would not see their blocks accepted by the larger economy, resulting in them wasting money.
Centralized services (most webwallets) make the user trust whatever the site says. They can claim anything.
So I hope you now see the importance of full nodes in this model. If you run a full node somewhere on the network, and nobody looks at the transactions it validates, it is indeed contributing to the network, but it is not helping with the reduction of trust.
Look at it another way: if only a few large players in the Bitcoin ecosystem were running full nodes, it only requires a malicious intent, or an attack/threat against them, to change the system's rules, as nobody else is validating.
Doing transactions in the Bitcoin ecosystem helps the Bitcoin currency. Running a full node helps the network. Using a full node helps you and the ecosystem reduce the need for trust.
A common slogan in the bitcoin community is “Don’t Trust, Verify.” Anyone who runs a bitcoin full node can independently and objectively verify the total supply of bitcoin at any moment in time. Don’t trust our word for it, verify yourself by running the following command with your bitcoin core software:
bitcoin-cli gettxoutsetinfo
Running a full node is like being your own bank, without any requirement of trusting any third party. This is at the core of bitcoin’s decentralization. It is also why running a full node must not be resource intensive, in terms of memory and computation. That anyone with access to an average, inexpensive computer hardware can run a full node is a topmost priority for bitcoin core developers. The same cannot be said for other blockchains, for example, Ethereum, where it is almost impossible to run an Ethereum full node at this point, forcing its users to rely on centralized third parties to verify transactions and blocks in the Ethereum network.
There are only about 4700 nodes in the Ethereum network, with more than 50% of them hosted on centralized cloud platforms such as AWS. In contrast, there are more than 43000 nodes in the Bitcoin network, with no more than 5% of nodes on a single ANS.
The best "trusted third party" of all is one that does not exist, but the necessity for which has been eliminated by the protocol design, or which has been automated and distributed amongst the parties to a protocol.
Nick Szabo, Trusted Third Parties are Security Holes
Are you starting out in bitcoin today and want to learn how to build apps on the bitcoin blockchain?
Build On L2 (BOL2) is a community-led effort by contributors and companies building on Core Lightning and the Liquid Network. It's a space to connect with bitcoin builders, product managers, designers and developers through events and mentorship programs and learn from experts building the future of bitcoin.
Completely free and accessible, each layer-2 protocol has a respective community platform that will host activities including:
Localized hackathons
Virtual networking events
Project bounties and other incentive programs
International builder tournaments
Career development programs
Mentorship and coaching
AMAs with leading developers
Visit buildonl2.com to join the community and learn how to build killer apps on bitcoin.
Interview with Yetong Tang
We spoke with Yetong Tang, a 21-year old university student of National University of Singapore and a Summer of Bitcoin intern who contributed to Padawan Wallet. Padawan Wallet is an app that simulates bitcoin wallet and teaches people how to interact with bitcoin. Yetong talks about his work on extending the wallet functionality, bitcoin’s utility as a decentralized currency and shares advice on getting started with bitcoin open-source development and tips for cracking Summer of Bitcoin.
Listen to the full conversation on Spotify here.
You can also watch a video of the conversation here.
Read the full transcript:
ADI SHANKARA: Yetong, welcome to The Summer of Bitcoin Experience. It's great to have you here.
YETONG TANG: Thanks for having me here.
SHANKARA: Let's start with a bit of your introduction. Can you tell us a bit about yourself?
TANG: Hello, my name is Tang Yetong and I'm a freshman at the National University of Singapore as a computer science major. I started my Summer of Bitcoin internship before enrolling into university and after I finished my compulsory military service. So when I was 21, I just came out of the army and I saw the Summer of Bitcoin. I tried my hand at it. I have some prior experience in software engineering before I tried applying for SOB from my education in high school, and I have some experience as a software engineer in other places.
SHANKARA: Awesome. So tell us about your bitcoin journey. How did you stumble across bitcoin and what made you feel like it's an important thing to pay attention to?
TANG: I think my introduction to bitcoin is pretty much the same as any other average person in that I wasn't one of the few early people that stumbled upon bitcoin and got super hyped about it. But I heard it from my friends that were talking about it and how much hype there was around and how the prices of bitcoin was increasing every day or so. So that was my first introduction to bitcoin. I thought about it, and had some thoughts about it. But I never really paid so much attention as to dig deep into the code, but I did know that it was something along the lines of being a decentralized currency that anyone can use.
I had some knowledge, but I never had the motivation or the reason to dive so deep into such an emerging technology since I was still in school.
SHANKARA: So now that you've worked on bitcoin and have understood it quite a bit, have spent some time with it. What do you feel is important, and why should people pay attention?
TANG: So, even now I feel that bitcoin is still a very new technology that even though it has been out for many years, it is still being worked on constantly. Every day there’s new developments, people introducing new improvement projects (new BIPs) every day, there’s a lot of discussion. Even now those are not being implemented, not being used by many people. I feel that in a few more years, in the coming future, it has a lot of potential.
SHANKARA: All right, cool. So that's as far as the technical side is concerned, right What are your thoughts on the potential that bitcoin represents in terms of the money, in terms of the choice that it provides? You said there's a lot of technical development that's happening that is obviously interesting to follow and contribute towards; there's also the potential utility of bitcoin. What are your thoughts on bitcoin in that aspect?
TANG: So even now, bitcoin is being used with regards to the Ukraine-Russia war, there's bitcoin being transferred every day, from our people outside of Ukraine to contribute to help Ukraine. So bitcoin as you can see is being utilized even now, in current times, even though not everyone is using it. It does have its uses as a decentralized currency. Anyone can use it, anyone can send it to another person without the need to transfer through banks, or through international exchanges. So, in regard to utility, there's just one of many such possibilities that bitcoin can have that I'm sure if more people use it in the future, you'll have you'll find new niches to fill and more utility also.
SHANKARA: Makes sense. Let's switch gears to the Summer of Bitcoin. How did you come across it and why did you choose to apply?
TANG: When I was introducing myself earlier, after I left my compulsory military service, I was looking for something to fill my time in the summer before university started for me. So I was looking through all the traditional software engineering intern jobs. I was looking at software engineer intern in government positions, in private companies, but I chanced upon Summer of Bitcoin and it looked interesting at first because I though it drew parallels with Google Summer of Code, there’s an open-source aspect, you contribute to open-source, and you get a stipend, it’s remote and it's largely at your own time and your own target. So it was very enticing for me since it was just after the COVID period. So, I didn't want to have to go out every day to deal with COVID issues. And most importantly, I felt that it would give me incentive to learn about bitcoin, since I am learning about it and contributing and I'm also getting a stipend for it. So, it was a lot of draw for me to sign up for Summer of Bitcoin.
SHANKARA: Tell us about the organization you chose to work with and why did you choose that?
TANG: So, after I looked through the Summer of Bitcoin website - the whole application process is that you sign up, you send Summer of Bitcoin an email and they will let you know if you are accepted into the screening round.
And when you're chosen to the screening round, you get to look through a list of open-source projects. And on the website is listed their technologies, what they use, what type of interns they’re looking for. So, I found a project that aligned with my strengths, which is working on android apps. And which landed me with the Padawan wallet with the mentor thunderbiscuit who was later my mentor. So I saw this project that also aligned with my strengths. So in fact, I can focus more towards learning about the underlying bitcoin technology, the libraries they use, instead of trying to also learn about how to code, how to work with the programming languages they are currently using. So that's how I chose Padawan wallet. So, after I found the Padawan wallet during the screening process, in the proposal stage I communicated with thunderbiscuit on how I could contribute by doing small commits to the code base. And afterwards thunderbiscuit told me since I looked like I knew what I was doing with the code base that he will accept me as the Padawan wallet intern for the summer.
SHANKARA: Tell us about the specific project you worked on in Padawan wallet.
TANG: The Padawan wallet is meant to be an android app that could teach layman. So the whole approach that thunderbiscuit wanted was for Padawan wallet to be an app that anyone can use. So let's say you wanted to teach your younger one or teach your parents and your friends how to use bitcoin. They have no idea how to do it, they think it’s very complicated, it needs a lot of technical knowledge. So the whole idea of Padawan wallet is to give them the app and they can run through a tutorial on how to use bitcoin, what is bitcoin and afterwards, they can just delete the app, but they retain all the knowledge on how to safely use bitcoin. So that was the project idea. And what I did during the summer was since the library that Padawan wallet was using was quite new - it was just a basic send and receive. During the summer, what I did for thunderbiscuit was to also implement new functionalities like sending to multiple people, signing - this sort of stuff. So that was the project work that I did during SOB.
SHANKARA: You mentioned your mentor was thunderbiscuit. Do you want to tell us about your experience working with him?
TANG: He was a very open, very nice person. Working with him was very easy because we could find a very common time slot to discuss these project ideas very early on. So what he told me was that if I had any questions, I could just message him and when he was online, he could just reply with an answer. So I don't have to wait until every weekly meeting to ask him a list of questions. So anytime I had any questions while I was doing the work, I can just ask him, and he would reply. And also what he did was because he was also very involved with working on the BDK library in conjunction with the Padawan wallet, he told me that if I wanted to, I could join their weekly meetings and contribute there with other very experienced, very veteran bitcoin contributors.
SHANKARA: Sweet. So after Summer of Bitcoin, what are your plans now? You mentioned you've just joined university as a fresher, are you currently working on any anything related to bitcoin or have plans to do so?
TANG: So currently it’s my winter break for university. There's not much time to go on a full-scale internship. So other than resting during my break, I try to check back with thunderbiscuit on how Padawan wallet is doing. I wanted to see if in my free time now, how much is the progress and if there's any low hanging fruit I can still help him push along to further Padawan wallet. He told me that he wanted to have it out by Christmas.
SHANKARA: Sounds good. What do you think are the best resources for a beginner developer who wants to contribute to open-source bitcoin and on the same lines, any advice for people who want to participate in Summer of Bitcoin?
TANG: Summer of Bitcoin has very, very guided seminars, very detailed resources. thunderbiscuit also sent me links to several resources, the best one which I thought was the lecture series from MIT, about cryptocurrency, about bitcoin basically. So it was from MIT a few years ago, it was from one of the most experienced developers just explaining, running through the concepts for bitcoin and I think it was very clear. It didn’t use any technical jargon that you as a beginner wouldn't know. So I think it was very easy to follow. If you've time, you can just open it while you're free and just have a listen to the 30-minute lectures.
SHANKARA: We'll make sure to include those in the show notes. Any tips to others who want to crack Summer of Bitcoin?
TANG: I think the hurdle for most people, for Summer of Bitcoin and even something similar to Google Summer of Code - is the open-source part of the project. I think as a beginner developer, you might be scared that you are not good enough that you can contribute to the open-source project. Because everyone there is so experienced, so much work has already been done. So, I think one of the best ways is to just jump into the open-source project. If you see any low hanging fruit or any easy to do problems, try that first and even if you mess up, nothing bad will happen. Because the worst thing that can happen is that your commit gets rejected and the open-source contributor just tells you why this is wrong, and how you can improve it. So, either way, just jump into it and it will be a learning experience for you.
SHANKARA: This was awesome and tremendously useful. Thank you so much for sharing your experience with the Summer of Bitcoin.
TANG: Thanks for having me here.
JOBS IN BITCOIN
If you are a fresher straight out of college, here are a few exciting job postings we recommend:
Engineering:
NodeJS Engineer | Synonym | Remote | Apply
Lead Open-Source Developer | Saving Satoshi | Remote | Apply
iOS engineer (Lightning, Nostr) | Bookmark.org | Remote | Apply
Backend Engineer (protocol and API development, Lightning, Nostr) | Bookmark.org | Remote | Apply
Lightning Infrastructure Engineer | Lightning Labs | Remote | Apply
Vue.js developer | LNS | Remote | Apply
Software Engineer Intern | Riot Platforms, Inc. | Austin, TX, USA | Remote
React Native Developer | Synonym | Remote | Apply
Mobile Engineer | lipa | Bern, Switzerland (Remote) | Apply
Frontend Engineer | Vulpem Ventures | Remote | Apply
Design:
Graphic Design Intern | Riot Platforms, Inc. | Costa Mesa, CA, USA | Remote