Blog about Web3
Blog about Web3
Subscribe to Wonders of Web3
Subscribe to Wonders of Web3
Share Dialog
Share Dialog
<100 subscribers
<100 subscribers
main( ) {
printf("hello, world");
}
Yesterday, I had an inspiring conversation where I was challenged to document my learnings about Web3 in the public domain, so here we are, my first blog post ever.
Background Information
My interest in blockchain sparked when I was first introduced to the concept in 2017. On an event page, I saw that a party was organizing the largest blockchain hackathon in the world. At the time, I had no idea what blockchain meant, but after some initial research, I saw that it enabled a perfect immutable audit trail of information. My perspective was that this would have a significant impact on how organizations would be able to share information with one another. In my work as a financial auditor, I often saw that organizations operated as large silos and did not really integrate well with other organizations. If blockchain were embraced, information could be recorded once and used across the value chain. Long story short, I knew I had to attend the event and get a glimpse of what people were building at the time.
Looking back, this event led me to a career pivot, moving away from financial auditing and working in the blockchain and now Web3 domain on a full-time basis.
In this blog, I intend to write an update of my learnings at least once a month. I hope you will enjoy these updates. If there are any specific topics that you would like to know about, feel free to ask!
First concept: building blocks of a blockchain
To understand the concept of blockchain, I recommend to read the white paper of Bitcoin which can be found here: Bitcoin: A Peer-to-Peer Electronic Cash System. Interestingly, the term blockchain is not mentioned in the paper and was invented later.
In essence, the purpose of the Bitcoin network was to enable a peer-to-peer electronic cash system. At the time, it was impossible to transfer money online without an intermediary. The Bitcoin network solves the challenge of transferring money in an online/digital context without having to trust the counterparty. This challenge is solved by the combination of three building blocks.
The first building block relates to the block itself. When transacting payments, it is essential that a database is available in which the transactions are recorded. In the concept of Bitcoin, this database is composed of blocks that are “chronologically stacked.” Each block consists of a maximum file size. When this file size is reached, the block must be added to the chain of blocks.
The second building block relates to the concept of cryptography. If you wish to transfer funds in a peer-to-peer manner, it is essential that an address is available, comparable to a bank account number. This is achieved by the concept of asymmetric encryption. Through asymmetric encryption, two keys are generated: the public key and the private key. The public key serves as the bank account number on the blockchain, and the private key serves as the password for accessing the funds stored in the address.
So far, these components enable the recording of transactions, the availability of an address that serves as a publicly visible bank account, and a way to manage access to the funds. What is still missing is a way to ensure that the blocks are not altered. This is ensured by the introduction of the concept of hashing. Unlike encryption, hashing is a one-way function. This enables text input of any size to be transformed into an output with a fixed length. This method is used to ensure that the blocks in the blockchain are not reordered or altered. By performing a hash function, all transactions in a block lead to a single fixed-length hash. This hash serves as a fingerprint of the unique composition of every block. By combining the hash of the previous block and all transactions of the current block, a fingerprint is created that ensures the blocks stay “chronologically stacked” and are not altered in any way.
At this point, there is still one challenge to solve: adding blocks to the blockchain. The key challenge is that, to maintain the immutability of the blockchain and prevent manipulation of transactions in the current block, the system must prevent a single party from having more than a 50% chance of adding the next block to the blockchain. If this were possible, they could determine what records end up in the block and potentially alter the new block and even previous blocks if they maintain their ability to have more than a 50% chance of adding the next block.
This challenge is solved by the third building block of the Bitcoin network, the consensus mechanism. The consensus mechanism describes how new blocks are added to the Bitcoin network. The paper mentions that it should not be possible for parties to simply accrue “influence.” For example, if influence were possible based on IP addresses, these could be generated easily at relatively low cost. This is where the concept of Proof of Work is described. The system of Proof of Work requires computing power (at the time, CPU) to perform a calculation, with the idea being that computing power is costly to accrue.
This calculation (often described as mining) is a hash function that consists of two components (Hash of the block + nonce = hash output starting with X number of zeroes). The nonce is a random number that must be entered into the calculation. The first party that is able to find the output starting with the required number of zeroes at the start of the hash is the party that is able to add the next block to the blockchain. There is no way to determine the right value for the nonce quicker than others, other than by bringing more computing power.
The white paper already addresses that computing power may fluctuate over time, and therefore scaling is built into the mechanism. Depending on the hash rate (computing power available), the number of zeroes that the hash has to start with increases or decreases. The more leading zeroes required, the more calculations must be performed to determine the right nonce.
Given that computing power is expensive, there must be an incentive to perform the calculations required to mine the next block. First, it is determined that the number of Bitcoin that can ever be minted is maximized to approximately 21 million. Bitcoin is therefore deemed scarce. Given the scarcity, the miner that is able to add the block to the blockchain receives the transaction fees included in the block, as well as the block reward. This block reward halves every X period until all 21 million Bitcoins are minted. After that, it is expected that the transaction fees should cover the costs of the computing power. Whether this will be the case remains to be seen in 2140.
I hope you’ve enjoyed this first read. Feel free to share your feedback or any questions you may have.
main( ) {
printf("hello, world");
}
Yesterday, I had an inspiring conversation where I was challenged to document my learnings about Web3 in the public domain, so here we are, my first blog post ever.
Background Information
My interest in blockchain sparked when I was first introduced to the concept in 2017. On an event page, I saw that a party was organizing the largest blockchain hackathon in the world. At the time, I had no idea what blockchain meant, but after some initial research, I saw that it enabled a perfect immutable audit trail of information. My perspective was that this would have a significant impact on how organizations would be able to share information with one another. In my work as a financial auditor, I often saw that organizations operated as large silos and did not really integrate well with other organizations. If blockchain were embraced, information could be recorded once and used across the value chain. Long story short, I knew I had to attend the event and get a glimpse of what people were building at the time.
Looking back, this event led me to a career pivot, moving away from financial auditing and working in the blockchain and now Web3 domain on a full-time basis.
In this blog, I intend to write an update of my learnings at least once a month. I hope you will enjoy these updates. If there are any specific topics that you would like to know about, feel free to ask!
First concept: building blocks of a blockchain
To understand the concept of blockchain, I recommend to read the white paper of Bitcoin which can be found here: Bitcoin: A Peer-to-Peer Electronic Cash System. Interestingly, the term blockchain is not mentioned in the paper and was invented later.
In essence, the purpose of the Bitcoin network was to enable a peer-to-peer electronic cash system. At the time, it was impossible to transfer money online without an intermediary. The Bitcoin network solves the challenge of transferring money in an online/digital context without having to trust the counterparty. This challenge is solved by the combination of three building blocks.
The first building block relates to the block itself. When transacting payments, it is essential that a database is available in which the transactions are recorded. In the concept of Bitcoin, this database is composed of blocks that are “chronologically stacked.” Each block consists of a maximum file size. When this file size is reached, the block must be added to the chain of blocks.
The second building block relates to the concept of cryptography. If you wish to transfer funds in a peer-to-peer manner, it is essential that an address is available, comparable to a bank account number. This is achieved by the concept of asymmetric encryption. Through asymmetric encryption, two keys are generated: the public key and the private key. The public key serves as the bank account number on the blockchain, and the private key serves as the password for accessing the funds stored in the address.
So far, these components enable the recording of transactions, the availability of an address that serves as a publicly visible bank account, and a way to manage access to the funds. What is still missing is a way to ensure that the blocks are not altered. This is ensured by the introduction of the concept of hashing. Unlike encryption, hashing is a one-way function. This enables text input of any size to be transformed into an output with a fixed length. This method is used to ensure that the blocks in the blockchain are not reordered or altered. By performing a hash function, all transactions in a block lead to a single fixed-length hash. This hash serves as a fingerprint of the unique composition of every block. By combining the hash of the previous block and all transactions of the current block, a fingerprint is created that ensures the blocks stay “chronologically stacked” and are not altered in any way.
At this point, there is still one challenge to solve: adding blocks to the blockchain. The key challenge is that, to maintain the immutability of the blockchain and prevent manipulation of transactions in the current block, the system must prevent a single party from having more than a 50% chance of adding the next block to the blockchain. If this were possible, they could determine what records end up in the block and potentially alter the new block and even previous blocks if they maintain their ability to have more than a 50% chance of adding the next block.
This challenge is solved by the third building block of the Bitcoin network, the consensus mechanism. The consensus mechanism describes how new blocks are added to the Bitcoin network. The paper mentions that it should not be possible for parties to simply accrue “influence.” For example, if influence were possible based on IP addresses, these could be generated easily at relatively low cost. This is where the concept of Proof of Work is described. The system of Proof of Work requires computing power (at the time, CPU) to perform a calculation, with the idea being that computing power is costly to accrue.
This calculation (often described as mining) is a hash function that consists of two components (Hash of the block + nonce = hash output starting with X number of zeroes). The nonce is a random number that must be entered into the calculation. The first party that is able to find the output starting with the required number of zeroes at the start of the hash is the party that is able to add the next block to the blockchain. There is no way to determine the right value for the nonce quicker than others, other than by bringing more computing power.
The white paper already addresses that computing power may fluctuate over time, and therefore scaling is built into the mechanism. Depending on the hash rate (computing power available), the number of zeroes that the hash has to start with increases or decreases. The more leading zeroes required, the more calculations must be performed to determine the right nonce.
Given that computing power is expensive, there must be an incentive to perform the calculations required to mine the next block. First, it is determined that the number of Bitcoin that can ever be minted is maximized to approximately 21 million. Bitcoin is therefore deemed scarce. Given the scarcity, the miner that is able to add the block to the blockchain receives the transaction fees included in the block, as well as the block reward. This block reward halves every X period until all 21 million Bitcoins are minted. After that, it is expected that the transaction fees should cover the costs of the computing power. Whether this will be the case remains to be seen in 2140.
I hope you’ve enjoyed this first read. Feel free to share your feedback or any questions you may have.
Wonders of Web3
Wonders of Web3
No activity yet