But the more I learn about this fascinating technology (and technologies around it) - the more I understand my knowledge gaps. As my manager once said, blockchain is like a “black hole” - the more you learn, the more new topics you discover.
So I decided to share my knowledge with other test engineers and start a series of blog posts: “Blockchain for Test Engineers.”
- Digital Signature
- Distributed Systems
- P2P networks and Gossip protocol
- What is blockchain?
- Merkle Trees
In the series of blog posts, we will learn everything you need to know to understand what blockchain is and how it works. Because you can’t test something effectively without understanding how it works. For our journey, I prepared a roadmap of topics we will cover.
- Distributed systems
- Crypto wallets
- Blockchain performance
- Blockchain security
- Decentralized Finance
- Blockchain applications
We start our journey with basic cryptography and distributed systems concepts. I will not only provide you with theoretical explanations but also - with tools you can use for performing encryption or digital signing of the files.
We will talk about Bitcoin, Ethereum, and Cardano as our examples of blockchains. We will learn how their nodes and wallets work for each system, which consensus protocols they use, and how to implement smart contracts. And of course - we will see how such systems are tested - by examining the test code. Then we will talk about smart contracts and tokens.
At the next step we will learn about different aspects of the blockchains’ performance and security and why it is more crucial than ever. We will see that basic types of smart contract vulnerabilities and how we can prevent it (using audit or automated scanners).
Close to the end of the journey, we will review applications of blockchain systems in Decentralised Finance and other fields of human life.
You can find the online version of the mindmap here.
Few words on why learning blockchain
1. It is an innovative field. Many scientists and engineers are working every day on new blockchain systems or improving existing ones. Before I joined the blockchain space - I’d never seen such a close gap between creating an academic research paper and creating a real-world program based on the paper. Innovation is everywhere here. It is a standard in the industry.
2. It is an intersection of many different fields. Blockchain is a mix of cryptography, distributed systems, game theory, finance, and other fields. So if you want to learn a lot - it is a great place to be.
3. It is challenging for test engineers. It is not an easy task to know how blockchain works (especially internally). In many cases, blockchain use exotic tools and unusual ways of communication between nodes in the system (other than HTTP REST). As a result, the field requires a solid technical background from test engineers.
The long but exciting journey begins. I hope that you will learn many new things - so do I.
Welcome aboard! Let’s learn blockchain together!