
Arweave: The Permanent Data Storage
Permanent Cloud StorageIn today's digital age, cloud storage has become an essential aspect of our daily lives. With the increasing amount of data that we generate and need to store, the traditional means of data storage, such as physical hard drives or flash drives, are becoming less practical. Cloud storage offers a more convenient and accessible solution, allowing users to store their data on remote servers that they can access from anywhere, at any time, as long as they have an inter...

Waves: Layer-1? Layer-0? Both?
Many layer-1 platforms exist out there. A layer-1 platform, in the blockchain world, is a blockchain able to perform smart contracts and dApps, without any dependency on any other blockchains. Actually, Waves is and is not one of these. This may sound confusing to you. How can a blockchain be both a layer-1 platform and not? Well, the answer is complex, and to get to the answer, it is best first to know what layer-0 is.Layer-0Blockchains Layer-0 blockchain is a concept that Cosmos Network int...

Discrete Logarithm in Cryptography
Discrete logarithm is one of the most important parts of cryptography. This mathematical concept is one of the most important concepts one can find in public key cryptography. Let’s first determine a very basic algorithm to make public keys in cryptography and then describe how discrete logarithm can help us in this algorithm.Diffie-Hellman Key ExchangeIn this method, there are two people, Alice and Bob, who want to make a safe channel to exchange messages, which Eve is an untrusted person wh...
Researcher, Enthusiast, Blockchain and Crypto Lover, Cryptography Lover, Ethereum is the King.

Arweave: The Permanent Data Storage
Permanent Cloud StorageIn today's digital age, cloud storage has become an essential aspect of our daily lives. With the increasing amount of data that we generate and need to store, the traditional means of data storage, such as physical hard drives or flash drives, are becoming less practical. Cloud storage offers a more convenient and accessible solution, allowing users to store their data on remote servers that they can access from anywhere, at any time, as long as they have an inter...

Waves: Layer-1? Layer-0? Both?
Many layer-1 platforms exist out there. A layer-1 platform, in the blockchain world, is a blockchain able to perform smart contracts and dApps, without any dependency on any other blockchains. Actually, Waves is and is not one of these. This may sound confusing to you. How can a blockchain be both a layer-1 platform and not? Well, the answer is complex, and to get to the answer, it is best first to know what layer-0 is.Layer-0Blockchains Layer-0 blockchain is a concept that Cosmos Network int...

Discrete Logarithm in Cryptography
Discrete logarithm is one of the most important parts of cryptography. This mathematical concept is one of the most important concepts one can find in public key cryptography. Let’s first determine a very basic algorithm to make public keys in cryptography and then describe how discrete logarithm can help us in this algorithm.Diffie-Hellman Key ExchangeIn this method, there are two people, Alice and Bob, who want to make a safe channel to exchange messages, which Eve is an untrusted person wh...
Researcher, Enthusiast, Blockchain and Crypto Lover, Cryptography Lover, Ethereum is the King.
Share Dialog
Share Dialog

Subscribe to Arya

Subscribe to Arya


<100 subscribers
<100 subscribers
If you are in the industry of blockchain and cryptocurrencies, you must know Bitcoin and how it works, perfectly. So, the article below will be of little use to you.
But, if you are new to the business, this article will be great for you. You can learn the decentralised world, Bitcoin, blockchain, and all the beginning steps you need to enter this world.
I’m going to start with some introductions, then start talking about the technology behind Bitcoin, and finally talk about the economics of this game-changer in the world.
Money is an economical unit that acts as an intermediate for transfers. In other words, money provides a service that decreases cost of a transaction and transfer.
Money is a liquid asset. Meaning that one can easily change it with other assets in the world. As an example, it is not easy to change your car to other goods like meat. But, due to high liquidity of money, one can easily change their money to meat, car, or a house.
In order for an asset to be “money”, it should have 5 features:
Fungible: Each unit of the asset must be fungible to parts that have equal value to other parts. For example, Dollar can be a good money because it can be divided into cents, while a car is not a good money unit because one cannot divided it into smaller parts without it being demolished.
Durable: The material used in the asset must durable, so the asset can be used many times.
Portable: Money needs to be easily portable from a place to other places in the world. For example, gold bars are not a good unit of money, as they are too heavy to being transferred easily.
Recognisable: The quality and integrity of a money needs to be easily recognisable, and making copies of it should be hard for others.
Stable: The value of the money against other goods need to be fairly stable or increasing during the time. If an asset has an unstable value over time, it cannot be a good unit of money.
Many references believe that a good money actually has two other features:
Limited Supply: This feature is also called “scarcity”. One of the most important features that all fiat monies today don’t have.
Generally Acceptable: Maybe this feature is the most important feature. Why? If an asset has all the features above but people don’t agree on using it as money, then it cannot be money. Even if an asset doesn’t have all the features above, like fiat money, and people accept it as money, it is money. We can say that maybe money has some feature, but it is people acceptance that makes an asset money.
In the world before Bitcoin and cryptocurrencies, money was centralised. Meaning that banks and central banks had all the power over money. When you deposit your cash money into your bank account, you don’t have any power on it anymore. Depositing fiat money into bank account is actually like giving away your money. When someone deposits their money in their bank accounts, bank actually creates an IOU (I Owe You) contract with them. What does it mean? It means that from now on you are not the owner of that money. Bank can use it, invest it, spend it, burn it, or does what ever they want with it at any time. They just owe you the amount you gave them plus maybe an interest. But your money has a new owner.
Looking from another perspective, if you want to send your money to another person, banks ‘humbly’ do it for you in exchange of getting a ‘small’ fee. If you were the owner of your money why would banks take some money from you to transfer your money.
It is not the end. Banks can ban your accounts anytime they want. They can ban deposit into and withdrawals from the account. It is not a very complicated process that happen once in a while. It is only sufficient that you owe them some money and just out of forgetfulness you didn’t pay them back in the due time. They will freeze all of your bank accounts until you pay them back. Let’s say you paid them back and because of a bug in the bank system it is not submitted in their servers. Your bank accounts will not unfreeze and you will have to go to them for the issue again and again.
If you think I’m done with banks, you are surely wrong. Central banks have all the control over banks. It means that as much as banks have control over you, central banks can control banks. They can ban banks, Freeze banks and all of their transactions. And scariest of them all, they can print (or in the digital way ‘mint’) money out of thin air and when ever they want. Printing money is the main reason of the inflation we experience today in the whole world. U.S.A, U.K, Europe, Middle East, China, etc. They are all in a war with inflation and almost none of them can control it.
So, now we know that money, in the centralised way, is not ours. Even if it is in our pocket, it is not ours because central bank can print more and makes our money value less and less every day.
What to do now? Bitcoin is the answer to all of that.
Bitcoin is the first cryptocurrency and the biggest one as well. We are going to look at Bitcoin, its technology, and its economy.
We all know that Bitcoin is based on ‘Blockchain’. Even if you didn’t know until now, well you know it now. But blockchain itself is based on ‘Distributed Ledger Technology’ which is based on ‘Distributed Systems’. So let’s dive deeply into distributed systems and try to understand it better.
Distributed Systems
A distributed system is a set of independent computers communicating with each other, which users see it as a whole system. A distributed system is shown in the figure below.

Moving from centralised systems to distributed systems results in the following:
Concurrency: In a network of computers, concurrent process of applications is a very common thing.
Lack of Global Clock: For a good interaction, applications need to transact messages to each other. In some of these private interactions which are dependent to sharing ideas, time of sharing is needed. But in the distributed networks, we have some limitations that prevent us from having this time of idea sharing.
Independent Failure Point: Every computer may fail in some situations. These failure point may happen in responding, processing, or even in the receiving the data. In a centralised network failures may cause failure of the whole system. But in distributed systems failure points may happen only in that node and other nodes of the network can continue their work.
Distributed systems have some limitations. We can point to some them as below:
In these systems designing proper algorithms is very hard and complicated. As it is said in the previous part, there is no global clock which can cause many algorithms that need consequent processing fail to run well. Obviously, the more the nodes in these networks are, the more problematic this becomes.
Lack of the global clock may even cause problems in the order of events and transactions.
It will be hard for each node to get all the data of the network such as state of other nodes, state of all the transactions, etc. Therefore, it will be hard for each node to make decisions based on the state of other nodes.
Let’s compare distributed systems with centralised systems in the table below:

Noticing all that said above, it seems that distributed systems can help very much in many of our problems today. But keeping data and using them in distributed systems may cause many problems such as exposing private data. Therefore, to reach high security and performance of the network in keeping and using data, a great idea was proposed to the computer world. Distributed Ledger Technology.
Distributed Ledger Technology
The concept of distributed ledger technology (DLT) has been proposed long ago in 1982. This concept was raised from the Byzantine Generals Problem.
DLT is an append-only chain and of cryptographically-linked ‘blocks’ of data, maintained and updated by a decentralised network, with network nodes encouraged by economic incentives to engage non-strategically to maintain and secure the system so that the data is robust to adversarial interfrence, double-spend, censure, counterfeit, collusion, tampering, or other types of malicious actions. (I know it’s a very long definition)
Let’s see the differences between DLTs and other types of databases in the table below:

As can be seen above, the only difference between traditional distributed database and DLT database is in the control part. In the traditional distributed databases there is usually a central control center, but in the DLT databases control is in the hands of all nodes in the system.
It is worth noticing that before blockchains and cryptocurrencies DLTs had no operational use in the world, because of some problems in the DLTs that blockchain and Bitcoin solved them and made DLTs usable for the computer and economy world.
Blockchain
Blockchain is a peer-to-peer, distributed ledger that is cryptographically-secure, append-only, immutable (extremely hard to change), and updateable only via consensus or agreement among peers. This definition is a bit complex and need to be described more. Another definition that is relatively simple but almost thorough is:
Blockchain is an ever-growing, secure, shared record-keeping system in which each user of the data holds a copy of the records, which can only be updated if all parties involved in a transaction agree to update.
In the first definition, there are some words and phrases that need more description.
Peer-to-Peer: This means that there is no central controller in the network, and all participants talk to each other directly. This property allows for cash transactions to be exchanged directly among the peers without a third-party involvement, such as by a bank.
Distributed Ledger: Simply means that a ledger is spread across the network among all peers in the network, and each peer holds a copy of the complete ledger.
Cryptographically-secure: Means that cryptography has been used to provide security services which make this ledger secure against tampering and misuse. These services include non-repudiation, data integrity, and data origin authentication.
Append-Only: Meaning that data can only be added to the blockchain in time-ordered sequential order. This property implies that once data is added to the blockchain, it is almost impossible to change that data and can be considered practically immutable. Nonetheless, it can be changed in rare scenarios wherein collusion against the blockchain network succeeds in gaining more than 51 percent of the power.
Updateable via Consensus: This is what gives it the power of decentralization. In this scenario, no central authority is in control of updating the ledger. Instead, any update made to the blockchain is validated against strict criteria defined by the blockchain protocol and added to the blockchain only after a consensus has been reached among all participating peers/nodes on the network. To achieve consensus, there are various consensus facilitation algorithms which ensure that all parties are in agreement about the final state of the data on the blockchain network and resolutely agree upon it to be true.
Now that we are familiar with the blockchain technology, it is most important to understand components of the (Bitcoin’s) blockchain technology.
Cryptography: Before diving into other parts of blockchain, it is needed to understand some very basic cryptography. For the first part we need to see what hashing functions in cryptography are:
Cryptographic Hash Function: A cryptographic hash function is a mathematical function with features below:
It can get input of any string with any length
It outputs a string with a predefined and fixed length. In many hash function this length is 256 bits.
It is computationally feasible. Meaning that for a string of length n, it will give the output in O(n) time. It is a mathematical and algorithmic notation meaning that the time of computing the output relative to n is about c times bigger than n, which c is a number greater than 0. For example, it can take 2n time or 10n time or even n/2 time*.*
Collision Resistant: Meaning that for the hash function h finding x and y such that x is not equal to y and h(x) = h(y) be infeasible. Pay attention that we said it must be infeasible, not that there are no collision. It means that there such

Ledger: The blockchain ledger, as it is very clear, is a chain of blocks. Every block is connected to its parent block using the hash of that block and make a list of records of transactions. The structure of a blockchain is like the figure below and the chaining and linking of the blocks make the system as a whole.

Block Structure: A block is consisted of two parts, block header and block body.
Block header is consisted of the parts below:
Block Version: Shows the verifying rules for the current block.
Merkle Tree Root Hash: The hash of the root of the Merkle tree created from the transactions and data in the block.
Timestamp: The time of the block in seconds from January 1st 1970.
n-bit: It is the difficulty of the network. It shows that how much work has been done to submit this block (It is a Proof of Work thing. We are going to talk about this later in the article. Don’t worry!).
Nonce: A 4 byte number to maintain the network (Again a Proof of Work thing).
Parent Block Hash: The hash of the previous block in the blockchain.
The body of the block is consisted of the transactions and data in this block. Number of these transactions is dependent to size of the block and size of each transaction.

Peer-to-Peer Network: A P2P network is not very new and many designs have been proposed for it.
A distributed network architecture can be a peer-to-peer network if: the participants share a part of their own hardware resources (processing power, storage capacity, network link capacity, printers,…). These shared resources are necessary to provide the Service and content offered by the network. They are accessible by other peers directly, without passing intermediary entities. The participants of such a network are thus resource providers as well as resource requestors.
Consensus Mechanism: Maybe the most important part of a blockchain is its consensus mechanism. Every event happening in the blockchain, from transaction submission to changing algorithms or hash functions, need to be generally accepted by the networks nodes. Consensus mechanism is the part that is responsible for the general acceptance verification. Since every user or node can add a transaction to the blockchain, it is necessary to verify its integrity, and then most of the nodes come to an agreement about the transaction. This agreement is called consensus. Consensus mechanism need to guaranty immutable feature of the blockchain and gives trust and stability to the nodes maintaining the blockchain. Most importantly, in the applications of blockchain, we need to solve two problems: double spending and Byzantine Generals Problem. Double spending problem means reusing the currency in two transactions at the same time. The traditional currency is the entity, so we will not face the problem of double spending while using traditional currency. We can also solve the double spending problem in the Internet transactions with the centralized trusted institutions. Byzantine Generals Problem is the problem in the distributed system. The data can be delivered between different nodes through peer-to-peer communications. However, some nodes may be maliciously attacked, which will lead to the changes of communication contents. Normal nodes need to distinguish the information that has been tampered and obtain the consistent results with other normal nodes. This also needs the design of the corresponding consensus algorithm. There are many different consensus mechanisms and algorithms in the world. Here we mention some of them and fully describe the one used in the Bitcoin blockchain. There are Proof of Work (PoW), Proof of Stake (PoS), Delegated PoS (dPoS), Byzantine Fault Tolerance (BFT), Practical BFT (PBFT), Proof of Authority (PoA), and many others. The consensus mechanism in the Bitcoin blockchain is Proof of Work.
Proof of Work (PoW): In fact, Proof of Work is not the ‘consensus mechanism’, but it is a part of it. In this mechanism, the node that wants to submit the new block in the blockchain needs to solve a hard problem. This hard problem is actually “finding nonce” for that block. Let me walk you through the process.
Updates in Bitcoin Blockchain
Bitcoin blockchain have had some updates through its existence. Updates in this blockchain should be confirmed by the nodes, or at least by most of the nodes. Meaning that, in order to update some features in the blockchain, nodes should agree on the update and update their own software to make the update officially done on the blockchain. Update in the blockchain can happen in the shape of forks: Hard forks, and Soft forks.
Hard Fork: A hard fork is a change to a blockchain protocol that renders older versions invalid. If older versions continue running, they will end up with a different protocol and with different data than the newer version. This can lead to significant confusion and possible errors.
With bitcoin, a hard fork would be necessary to change defining parameters such as the block size, the mining difficulty algorithm, limits to additional information that can be added, etc. A change to any of these rules would cause blocks to be accepted by the new protocol but rejected by older versions and could lead to serious problems – possibly even a loss of funds.
For instance, if the block size limit were to be increased from 1MB to 4MB, a 2MB block would be accepted by nodes running the new version, but rejected by nodes running the older version.
Let’s say that this 2MB block is validated by an updated node and added to the blockchain. What if the next block is validated by a node running an older version of the protocol? It will try to add its block to the blockchain, but it will detect that the latest block is not valid. So, it will ignore that block and attach its new validation to the previous one.
Suddenly you have two blockchains, one with both older and newer version blocks, and another with only older version blocks. Which chain grows faster will depend on which nodes get the next blocks validated, and there could end up being additional splits. It is feasible that the two (or more) chains could grow in parallel indefinitely.
This is a hard fork, and it’s potentially messy. It’s also risky, as it’s possible that bitcoins spent in a new block could then be spent again on an old block (since merchants, wallets and users running the previous code would not detect the spending on the new code, which they deem invalid).
The only solution is for one branch to be abandoned in favor of the other, which involves some miners losing out (the transactions themselves would not be lost, they’d just be re-allocated). Or, all nodes would need to switch to the newer version at the same time, which is difficult to achieve in a decentralized, widely spread system.
Or, bitcoin splits, which has happened in Bitcoin Cash.
Soft Fork: A soft fork is essentially the opposite of a hard fork, whereby newly implemented changes remain backward-compatible with older versions.
Many updates have happened in Bitcoin’s life. Some of them led to a hard fork like Bitcoin Cash, and some of them led to a soft fork. But, one of the most important upgrades happened in the Bitcoin blockchain is Taproot. This update has made Bitcoin blockchain much more accessible and cheaper. It is important to know exactly what this update has done and how it helped the Bitcoin blockchain.
Taproot Upgrade
Taproot is an upgrade to Bitcoin which brought several new features and benefits to Bitcoin users. The Bitcoin community activated Taproot at block 709,632 on November 12th, 2021.
The Taproot upgrade is composed of three Bitcoin Improvement Proposals (BIPs) which define three distinct upgrades to the Bitcoin protocol:
Schnorr Signatures (BIP 340)
Taproot (BIP 341)
Tapscript (BIP 342)
Together, these three upgrades are known as the Taproot upgrade, often collectively referred to as BIP Taproot. These BIPs introduced new, more efficient, flexible, and private ways of transferring bitcoin.
A Bitcoin Improvement Proposal (BIP) is a formal proposal to change Bitcoin. Upgrades and security improvements enter the Bitcoin codebase via BIPs. Upgrades such as SegWit, HD Wallets, PSBT and more were all introduced via BIPs, which then underwent a review process and community discussion before being accepted. However, not all BIPs propose code changes. Some, such as BIP 39’s standard of mnemonic phrase backups, establish standards to be used by other Bitcoin related projects.
Smaller changes to Bitcoin, such as bug fixes, code refactoring, or minor efficiency improvements are not included in BIPs. Rather, these changes are submitted directly to Bitcoin’s codebase as proposed code changes.
Schnorr Signatures - BIP 340: As part of the Taproot upgrade, BIP 340 introduces Schnorr signatures for use in Bitcoin. Schnorr signatures bring several benefits to Bitcoin users, including superior privacy, lower fees, and more flexible multisig.
This BIP also specifies how Schnorr public keys and signatures are to be encoded for use in Bitcoin. Public keys used for Schnorr signatures are 32 bytes long, compared to ECDSA’s (Elliptic Curve Digital Signature Algorithm) 33-byte public keys. Additionally, Schnorr signatures are 64 bytes long, compared to ECDSA signatures, which range from 71-72 bytes, including a sighash flag. These small space savings offer fee savings to Bitcoin users who adopt Taproot.
Taproot - BIP 341: While BIP 340 defines the specification for generating and encoding Schnorr signatures and public keys, BIP 341 defines how Bitcoin’s protocol integrates Schnorr signatures. Specifically, Bitcoin Script must be updated to also evaluate Schnorr signatures. Taproot also integrates Merkelized Alternative Script Trees (MAST), which allow users to lock outputs to multiple scripts.
Taproot also introduced a new script type, a way of spending bitcoin. Pay-to-Taproot (P2TR) allows users to pay to either a Schnorr public key or the Merkle root of a variety of other scripts. Using this new script type, a user can create a UTXO which can be unlocked and spent by either the owner of the private key or anyone who can satisfy the requirements of any script within the Merkle tree.
Schnorr’s key aggregation feature enables this flexible functionality. When bitcoin is sent to a P2TR output, it is locked to a single public key, called Q. However, this public key Q is actually an aggregation of a public key P and a public key formed from the Merkle root of many other script types. Any of the alternative scripts in the Merkle tree can be used to spend the output.

This design allows users to choose between complex, arbitrary scripts as well as simple pay-to-public-key functionality at the time of spending, rather than at the time of receiving. It also makes all Taproot outputs look similar. Because multisig outputs, single sig outputs, and other complex smart contracts all look the same on the blockchain, many chain analysis heuristics will become unusable, preserving privacy for all Taproot users.
Tapscript - BIP 342: In order to implement P2TR transactions, BIP 342 adds and updates several opcodes. These new scripts are used to verify Taproot spends and Schnorr signatures, and they are collectively known as Tapscript.
Tapscript was designed to maximize future flexibility of P2TR spending in order to allow for upgrades which are not yet foreseen.
The Benefits of Taproot
The Taproot upgrade offers many benefits to Bitcoin users who adopt Taproot as well as those who do not. The introduction of Schnorr signatures offers significant benefits to privacy and security, but Taproot and Tapscript also bring advantages of their own.
Space Savings: Most Taproot (P2TR) outputs consume less space on the blockchain than normal Pay-to-Public-Key-Hash (P2PKH) outputs, but are slightly larger than Pay-to-Witness-Public-Key-Hash (P2WPKH) outputs. This is mostly due to the fact that P2TR outputs lock bitcoin directly to a public key, not the hash of the public key. This makes sending to Taproot outputs slightly more expensive, because public keys take up more space than public key hashes. However, spending Taproot outputs is significantly cheaper because the public key is included in the scriptPubKey, and thus does not need to be included in the Script Witness.
Taproot also defined the encoding scheme for Schnorr public keys and signatures, making them shorter than their ECDSA counterparts, providing additional fee savings.
Privacy Benefits: The privacy implications of Taproot are perhaps the most important part of the upgrade. By introducing Schnorr signatures and key aggregation, multi-signature contracts no longer look different from single signature contracts, providing privacy to all Taproot users.
Taproot also introduced significant privacy benefits through the integration of MAST. As discussed above, Taproot allows bitcoin to be locked to many scripts at once. However, when spending bitcoin from a Taproot output, the spender need not reveal every possible script that could have unlocked the bitcoin; only the script which they actually used. In the majority of cases, Taproot users will likely use the pay-to-public-key option, allowing them to keep any backup options they might have planned private.
Security Upgrades: On a technical, theoretical level, Schnorr signatures are considered more secure than ECDSA signatures because Schnorr signatures are provably secure using fewer assumptions. Like all elliptic curve cryptography schemes, both ECDSA and Schnorr rely on the assumption that the Discrete Logarithm Problem is hard. However, ECDSA relies on additional assumptions in order to guarantee its security. Nonetheless, there have been no examples of ECDSA being systematically compromised during Bitcoin’s existence.
Schnorr signatures also eliminate any signature malleability that might have been present in ECDSA signatures. While transaction malleability was solved by the SegWit upgrade, malleability of signatures persisted as a feature of ECDSA.
Taproot Enables the Taro Protocol: Taro is a Taproot-powered protocol that allows users to issue assets on the Bitcoin blockchain and the Lightning Network. With a Taproot-centered design, this asset issuance can be done in a more private and scalable way than previous attempts to introduce other assets on top of Bitcoin. Taro was proposed by Lightning Labs in April 2022.
Now that we are familiar with components of (Bitcoin) blockchain, it’s time to talk about the economies of Bitcoin.
I talked about money and the centralised form of it, fiat money. Bitcoin, created by Satoshi Nakamoto in 2008, came to change the former definition of money. With Bitcoin, money can be simple, low-cost and fast to transfer, non-inflationary, transparent, and most importantly it can be YOURS.
As we saw in the first section, fiat money is not ours. Fiat money is for banks, specially central banks. They can use it, transfer it, ban accounts, get fees, do what ever they want with the money that is supposed to be yours, but it’s not.
So, let’s talk about how Bitcoin changed the meaning of money to a decentralised one with its novel technology. As we saw before, Bitcoin uses blockchain. The blockchain allows Bitcoin to have decentralised transactions. This means that people can easily make transactions with Bitcoin and its money, BTC, without the need of a central authority confirming the transaction (unlike banks). No one can revert the transaction that has taken place in the blockchain (unlike banks). No one can transfer your money, but you (unlike banks). No one can use your money in their favour, but you. For example, invest it in constructions or stocks, or lend it to someone else and make profits for their own (unlike banks). Sending money in central fiat money way, specially between countries, takes a lot of time and very much amount of fee, 10-15% of the money transferred. In Bitcoin you can send any amount of money with a fee less than $30 and in less than one hour time. Of course, micro-payments are not suitable with Bitcoin (yet), but big payments are great with this currency. For micro-payments, people can use other blockchains or other currencies, to have less fees and faster transaction confirmation. Using public-private key technology, the money is really yours. You and ONLY you are capable of using the money that is in your custody. No one else can touch your money in any ways possible.
Let’s talk about transparency a bit. As we know from before, every person in the Bitcoin network has a private key and a public key. This means that no one knows which digital address belongs to whom until they claim it publicly, or some data engineer decide to find what digital address belongs to whom, and run some big data algorithm to find relations and connections to eventually, maybe, find your digital addresses. Okay, I know it is a bit confusing. I am going to discuss this a bit more.
Each and every transaction in the Bitcoin blockchain is transparent to everyone. The image below shows a transaction sent from one address: bc1q7cyrfmck2ffu2ud3rn5l5a8yv6f0chkp0zpemf to two addresses: 1Hep453WBXuNtu91FPQGTx4HraTWfNyxwE and bc1q7cyrfmck2ffu2ud3rn5l5a8yv6f0chkp0zpemf. The fee paid to miners in this transactions is 0.00022491 BTC and the value transacted is 14.00095687 BTC. This transaction is confirmed even though only 5 blocks has been submitted, as we mentioned the confirmation number is now 4. You can see other details for this transaction in the image below.

In this transaction you can see many details, but as it is very obvious, you cannot see any information about senders’ and receivers’ identity. This level of transparency, is achieved by public-private key. Senders and receivers may have many blockchain addresses that are not linked to them, but can be controlled only by them.
Therefore, Bitcoin has a very high level of transparency while it keeps users private data and identity. But, as mentioned before some data scientists and data engineers can do some researches on these transactions to find some users’ identity. Some of these analyses on the blockchain can be found in the References section.
Maybe the most important question for you is “How is Bitcoin non-Inflationary?”. Let’s talk about this feature now.
Bitcoin uses a very simple math equation to make sure it is non-inflationary, and has a limited supply for ever. The equation below holds:

First, let’s prove that this equation holds in any situation. Because of some limitation in writing, I bring the proof in an image below:

Now, we know that Bitcoin uses a mechanism named halving. In halving, every 210,000 blocks, the inflationary reward halves. Bitcoin started to reward nodes that submit blocks with 50 BTC. After 210,000 blocks, which is about 4 years noticing that every block takes about 10 minutes to be submitted, the reward halves meaning it becomes 25 BTC. Again, after about 4 years it halves to become 12.5 BTC. The process goes on until the reward can’t be halved.
1 BTC can be divided into 10^8 smaller parts, which in regard to Satoshi it is named after him. Therefore, 1 BTC = 10^8 Satoshi. So, when the reward becomes 1 Satoshi some day, it won’t be halved again. The Bitcoin network will pay miners with 1 Satoshi until there is no more inflationary BTCs left.
So, knowing all this it is time to find how many BTCs there are. Using the equation above, the genesis reward, noticing that it halves every 210,000 blocks, and multiplying them we get 21 million BTCs.
Why is it non-inflationary? So, it is actually a bit inflationary, until all BTCs are mined some day. From that point, no more additional BTC will be added to the network, and this means no inflation in BTC as a currency. Up until that point BTC has decreasing inflation. Meaning that in the second block of the blockchain there is a 100% inflation, since there 50 BTC in the network and 50 BTC is mined. But the inflation decreases over time. At the time of writing this article, the reward is 6.25 BTC per block and there are more than 19 million BTCs mined. So, the inflation per year is less than 1.8%. You can see that the 100% inflation per block, easily became less than 2% per year in less than 15 years. This inflation will continue going down through time, until it becomes 0 and no more BTC will be mined. In that point we have non-inflationary Bitcoin.
Investopedia Staff. Money. https://www.investopedia.com/terms/m/money.asp. Accessed: 2021-03-20.
Money and Banking. Guru Jambheshwar University of Science and Technology.
Charles Manfred Thompson. Elementary Economics. Benj. H. Sanborn and Co.,1919.
Functions of money - the economic lowdown podcast series. https://www.stlouisfed.org/education/economic-lowdown-podcast-series/episode-9-functions-of-money#:\~:text=The%20characteristics%20of%20money%20are,%2C%20limited%20supply%2C%20and%20acceptability. Accessed: 2021-03-20.
George F Coulouris, Jean Dollimore, and Tim Kindberg. Distributed systems: concepts and design. pearson education, 2005.
Andrew S Tanenbaum and Maarten Van Steen. Distributed systems: principles and paradigms. Prentice-hall, 2007.
Comparison – centralized, decentralized and distributed systems. https://www.geeksforgeeks.org/comparison-centralized-decentralized-and-distributed-systems/. Accessed: 2021-05-02.
Distributed vs centralized networks. https://icommunity.io/en/redes-centralizadas-vs-distribuidas/#:\~:text=CENTRALIZED%3A%20If%20someone%20has%20access,the%20computers%20in%20the%20network. Accessed: 2021-05-02.
Leslie Lamport, Robert Shostak, and Marshall Pease. The byzantine generals problem. In Concurrency: the Works of Leslie Lamport, pages 203–226. 2019.
If you are in the industry of blockchain and cryptocurrencies, you must know Bitcoin and how it works, perfectly. So, the article below will be of little use to you.
But, if you are new to the business, this article will be great for you. You can learn the decentralised world, Bitcoin, blockchain, and all the beginning steps you need to enter this world.
I’m going to start with some introductions, then start talking about the technology behind Bitcoin, and finally talk about the economics of this game-changer in the world.
Money is an economical unit that acts as an intermediate for transfers. In other words, money provides a service that decreases cost of a transaction and transfer.
Money is a liquid asset. Meaning that one can easily change it with other assets in the world. As an example, it is not easy to change your car to other goods like meat. But, due to high liquidity of money, one can easily change their money to meat, car, or a house.
In order for an asset to be “money”, it should have 5 features:
Fungible: Each unit of the asset must be fungible to parts that have equal value to other parts. For example, Dollar can be a good money because it can be divided into cents, while a car is not a good money unit because one cannot divided it into smaller parts without it being demolished.
Durable: The material used in the asset must durable, so the asset can be used many times.
Portable: Money needs to be easily portable from a place to other places in the world. For example, gold bars are not a good unit of money, as they are too heavy to being transferred easily.
Recognisable: The quality and integrity of a money needs to be easily recognisable, and making copies of it should be hard for others.
Stable: The value of the money against other goods need to be fairly stable or increasing during the time. If an asset has an unstable value over time, it cannot be a good unit of money.
Many references believe that a good money actually has two other features:
Limited Supply: This feature is also called “scarcity”. One of the most important features that all fiat monies today don’t have.
Generally Acceptable: Maybe this feature is the most important feature. Why? If an asset has all the features above but people don’t agree on using it as money, then it cannot be money. Even if an asset doesn’t have all the features above, like fiat money, and people accept it as money, it is money. We can say that maybe money has some feature, but it is people acceptance that makes an asset money.
In the world before Bitcoin and cryptocurrencies, money was centralised. Meaning that banks and central banks had all the power over money. When you deposit your cash money into your bank account, you don’t have any power on it anymore. Depositing fiat money into bank account is actually like giving away your money. When someone deposits their money in their bank accounts, bank actually creates an IOU (I Owe You) contract with them. What does it mean? It means that from now on you are not the owner of that money. Bank can use it, invest it, spend it, burn it, or does what ever they want with it at any time. They just owe you the amount you gave them plus maybe an interest. But your money has a new owner.
Looking from another perspective, if you want to send your money to another person, banks ‘humbly’ do it for you in exchange of getting a ‘small’ fee. If you were the owner of your money why would banks take some money from you to transfer your money.
It is not the end. Banks can ban your accounts anytime they want. They can ban deposit into and withdrawals from the account. It is not a very complicated process that happen once in a while. It is only sufficient that you owe them some money and just out of forgetfulness you didn’t pay them back in the due time. They will freeze all of your bank accounts until you pay them back. Let’s say you paid them back and because of a bug in the bank system it is not submitted in their servers. Your bank accounts will not unfreeze and you will have to go to them for the issue again and again.
If you think I’m done with banks, you are surely wrong. Central banks have all the control over banks. It means that as much as banks have control over you, central banks can control banks. They can ban banks, Freeze banks and all of their transactions. And scariest of them all, they can print (or in the digital way ‘mint’) money out of thin air and when ever they want. Printing money is the main reason of the inflation we experience today in the whole world. U.S.A, U.K, Europe, Middle East, China, etc. They are all in a war with inflation and almost none of them can control it.
So, now we know that money, in the centralised way, is not ours. Even if it is in our pocket, it is not ours because central bank can print more and makes our money value less and less every day.
What to do now? Bitcoin is the answer to all of that.
Bitcoin is the first cryptocurrency and the biggest one as well. We are going to look at Bitcoin, its technology, and its economy.
We all know that Bitcoin is based on ‘Blockchain’. Even if you didn’t know until now, well you know it now. But blockchain itself is based on ‘Distributed Ledger Technology’ which is based on ‘Distributed Systems’. So let’s dive deeply into distributed systems and try to understand it better.
Distributed Systems
A distributed system is a set of independent computers communicating with each other, which users see it as a whole system. A distributed system is shown in the figure below.

Moving from centralised systems to distributed systems results in the following:
Concurrency: In a network of computers, concurrent process of applications is a very common thing.
Lack of Global Clock: For a good interaction, applications need to transact messages to each other. In some of these private interactions which are dependent to sharing ideas, time of sharing is needed. But in the distributed networks, we have some limitations that prevent us from having this time of idea sharing.
Independent Failure Point: Every computer may fail in some situations. These failure point may happen in responding, processing, or even in the receiving the data. In a centralised network failures may cause failure of the whole system. But in distributed systems failure points may happen only in that node and other nodes of the network can continue their work.
Distributed systems have some limitations. We can point to some them as below:
In these systems designing proper algorithms is very hard and complicated. As it is said in the previous part, there is no global clock which can cause many algorithms that need consequent processing fail to run well. Obviously, the more the nodes in these networks are, the more problematic this becomes.
Lack of the global clock may even cause problems in the order of events and transactions.
It will be hard for each node to get all the data of the network such as state of other nodes, state of all the transactions, etc. Therefore, it will be hard for each node to make decisions based on the state of other nodes.
Let’s compare distributed systems with centralised systems in the table below:

Noticing all that said above, it seems that distributed systems can help very much in many of our problems today. But keeping data and using them in distributed systems may cause many problems such as exposing private data. Therefore, to reach high security and performance of the network in keeping and using data, a great idea was proposed to the computer world. Distributed Ledger Technology.
Distributed Ledger Technology
The concept of distributed ledger technology (DLT) has been proposed long ago in 1982. This concept was raised from the Byzantine Generals Problem.
DLT is an append-only chain and of cryptographically-linked ‘blocks’ of data, maintained and updated by a decentralised network, with network nodes encouraged by economic incentives to engage non-strategically to maintain and secure the system so that the data is robust to adversarial interfrence, double-spend, censure, counterfeit, collusion, tampering, or other types of malicious actions. (I know it’s a very long definition)
Let’s see the differences between DLTs and other types of databases in the table below:

As can be seen above, the only difference between traditional distributed database and DLT database is in the control part. In the traditional distributed databases there is usually a central control center, but in the DLT databases control is in the hands of all nodes in the system.
It is worth noticing that before blockchains and cryptocurrencies DLTs had no operational use in the world, because of some problems in the DLTs that blockchain and Bitcoin solved them and made DLTs usable for the computer and economy world.
Blockchain
Blockchain is a peer-to-peer, distributed ledger that is cryptographically-secure, append-only, immutable (extremely hard to change), and updateable only via consensus or agreement among peers. This definition is a bit complex and need to be described more. Another definition that is relatively simple but almost thorough is:
Blockchain is an ever-growing, secure, shared record-keeping system in which each user of the data holds a copy of the records, which can only be updated if all parties involved in a transaction agree to update.
In the first definition, there are some words and phrases that need more description.
Peer-to-Peer: This means that there is no central controller in the network, and all participants talk to each other directly. This property allows for cash transactions to be exchanged directly among the peers without a third-party involvement, such as by a bank.
Distributed Ledger: Simply means that a ledger is spread across the network among all peers in the network, and each peer holds a copy of the complete ledger.
Cryptographically-secure: Means that cryptography has been used to provide security services which make this ledger secure against tampering and misuse. These services include non-repudiation, data integrity, and data origin authentication.
Append-Only: Meaning that data can only be added to the blockchain in time-ordered sequential order. This property implies that once data is added to the blockchain, it is almost impossible to change that data and can be considered practically immutable. Nonetheless, it can be changed in rare scenarios wherein collusion against the blockchain network succeeds in gaining more than 51 percent of the power.
Updateable via Consensus: This is what gives it the power of decentralization. In this scenario, no central authority is in control of updating the ledger. Instead, any update made to the blockchain is validated against strict criteria defined by the blockchain protocol and added to the blockchain only after a consensus has been reached among all participating peers/nodes on the network. To achieve consensus, there are various consensus facilitation algorithms which ensure that all parties are in agreement about the final state of the data on the blockchain network and resolutely agree upon it to be true.
Now that we are familiar with the blockchain technology, it is most important to understand components of the (Bitcoin’s) blockchain technology.
Cryptography: Before diving into other parts of blockchain, it is needed to understand some very basic cryptography. For the first part we need to see what hashing functions in cryptography are:
Cryptographic Hash Function: A cryptographic hash function is a mathematical function with features below:
It can get input of any string with any length
It outputs a string with a predefined and fixed length. In many hash function this length is 256 bits.
It is computationally feasible. Meaning that for a string of length n, it will give the output in O(n) time. It is a mathematical and algorithmic notation meaning that the time of computing the output relative to n is about c times bigger than n, which c is a number greater than 0. For example, it can take 2n time or 10n time or even n/2 time*.*
Collision Resistant: Meaning that for the hash function h finding x and y such that x is not equal to y and h(x) = h(y) be infeasible. Pay attention that we said it must be infeasible, not that there are no collision. It means that there such

Ledger: The blockchain ledger, as it is very clear, is a chain of blocks. Every block is connected to its parent block using the hash of that block and make a list of records of transactions. The structure of a blockchain is like the figure below and the chaining and linking of the blocks make the system as a whole.

Block Structure: A block is consisted of two parts, block header and block body.
Block header is consisted of the parts below:
Block Version: Shows the verifying rules for the current block.
Merkle Tree Root Hash: The hash of the root of the Merkle tree created from the transactions and data in the block.
Timestamp: The time of the block in seconds from January 1st 1970.
n-bit: It is the difficulty of the network. It shows that how much work has been done to submit this block (It is a Proof of Work thing. We are going to talk about this later in the article. Don’t worry!).
Nonce: A 4 byte number to maintain the network (Again a Proof of Work thing).
Parent Block Hash: The hash of the previous block in the blockchain.
The body of the block is consisted of the transactions and data in this block. Number of these transactions is dependent to size of the block and size of each transaction.

Peer-to-Peer Network: A P2P network is not very new and many designs have been proposed for it.
A distributed network architecture can be a peer-to-peer network if: the participants share a part of their own hardware resources (processing power, storage capacity, network link capacity, printers,…). These shared resources are necessary to provide the Service and content offered by the network. They are accessible by other peers directly, without passing intermediary entities. The participants of such a network are thus resource providers as well as resource requestors.
Consensus Mechanism: Maybe the most important part of a blockchain is its consensus mechanism. Every event happening in the blockchain, from transaction submission to changing algorithms or hash functions, need to be generally accepted by the networks nodes. Consensus mechanism is the part that is responsible for the general acceptance verification. Since every user or node can add a transaction to the blockchain, it is necessary to verify its integrity, and then most of the nodes come to an agreement about the transaction. This agreement is called consensus. Consensus mechanism need to guaranty immutable feature of the blockchain and gives trust and stability to the nodes maintaining the blockchain. Most importantly, in the applications of blockchain, we need to solve two problems: double spending and Byzantine Generals Problem. Double spending problem means reusing the currency in two transactions at the same time. The traditional currency is the entity, so we will not face the problem of double spending while using traditional currency. We can also solve the double spending problem in the Internet transactions with the centralized trusted institutions. Byzantine Generals Problem is the problem in the distributed system. The data can be delivered between different nodes through peer-to-peer communications. However, some nodes may be maliciously attacked, which will lead to the changes of communication contents. Normal nodes need to distinguish the information that has been tampered and obtain the consistent results with other normal nodes. This also needs the design of the corresponding consensus algorithm. There are many different consensus mechanisms and algorithms in the world. Here we mention some of them and fully describe the one used in the Bitcoin blockchain. There are Proof of Work (PoW), Proof of Stake (PoS), Delegated PoS (dPoS), Byzantine Fault Tolerance (BFT), Practical BFT (PBFT), Proof of Authority (PoA), and many others. The consensus mechanism in the Bitcoin blockchain is Proof of Work.
Proof of Work (PoW): In fact, Proof of Work is not the ‘consensus mechanism’, but it is a part of it. In this mechanism, the node that wants to submit the new block in the blockchain needs to solve a hard problem. This hard problem is actually “finding nonce” for that block. Let me walk you through the process.
Updates in Bitcoin Blockchain
Bitcoin blockchain have had some updates through its existence. Updates in this blockchain should be confirmed by the nodes, or at least by most of the nodes. Meaning that, in order to update some features in the blockchain, nodes should agree on the update and update their own software to make the update officially done on the blockchain. Update in the blockchain can happen in the shape of forks: Hard forks, and Soft forks.
Hard Fork: A hard fork is a change to a blockchain protocol that renders older versions invalid. If older versions continue running, they will end up with a different protocol and with different data than the newer version. This can lead to significant confusion and possible errors.
With bitcoin, a hard fork would be necessary to change defining parameters such as the block size, the mining difficulty algorithm, limits to additional information that can be added, etc. A change to any of these rules would cause blocks to be accepted by the new protocol but rejected by older versions and could lead to serious problems – possibly even a loss of funds.
For instance, if the block size limit were to be increased from 1MB to 4MB, a 2MB block would be accepted by nodes running the new version, but rejected by nodes running the older version.
Let’s say that this 2MB block is validated by an updated node and added to the blockchain. What if the next block is validated by a node running an older version of the protocol? It will try to add its block to the blockchain, but it will detect that the latest block is not valid. So, it will ignore that block and attach its new validation to the previous one.
Suddenly you have two blockchains, one with both older and newer version blocks, and another with only older version blocks. Which chain grows faster will depend on which nodes get the next blocks validated, and there could end up being additional splits. It is feasible that the two (or more) chains could grow in parallel indefinitely.
This is a hard fork, and it’s potentially messy. It’s also risky, as it’s possible that bitcoins spent in a new block could then be spent again on an old block (since merchants, wallets and users running the previous code would not detect the spending on the new code, which they deem invalid).
The only solution is for one branch to be abandoned in favor of the other, which involves some miners losing out (the transactions themselves would not be lost, they’d just be re-allocated). Or, all nodes would need to switch to the newer version at the same time, which is difficult to achieve in a decentralized, widely spread system.
Or, bitcoin splits, which has happened in Bitcoin Cash.
Soft Fork: A soft fork is essentially the opposite of a hard fork, whereby newly implemented changes remain backward-compatible with older versions.
Many updates have happened in Bitcoin’s life. Some of them led to a hard fork like Bitcoin Cash, and some of them led to a soft fork. But, one of the most important upgrades happened in the Bitcoin blockchain is Taproot. This update has made Bitcoin blockchain much more accessible and cheaper. It is important to know exactly what this update has done and how it helped the Bitcoin blockchain.
Taproot Upgrade
Taproot is an upgrade to Bitcoin which brought several new features and benefits to Bitcoin users. The Bitcoin community activated Taproot at block 709,632 on November 12th, 2021.
The Taproot upgrade is composed of three Bitcoin Improvement Proposals (BIPs) which define three distinct upgrades to the Bitcoin protocol:
Schnorr Signatures (BIP 340)
Taproot (BIP 341)
Tapscript (BIP 342)
Together, these three upgrades are known as the Taproot upgrade, often collectively referred to as BIP Taproot. These BIPs introduced new, more efficient, flexible, and private ways of transferring bitcoin.
A Bitcoin Improvement Proposal (BIP) is a formal proposal to change Bitcoin. Upgrades and security improvements enter the Bitcoin codebase via BIPs. Upgrades such as SegWit, HD Wallets, PSBT and more were all introduced via BIPs, which then underwent a review process and community discussion before being accepted. However, not all BIPs propose code changes. Some, such as BIP 39’s standard of mnemonic phrase backups, establish standards to be used by other Bitcoin related projects.
Smaller changes to Bitcoin, such as bug fixes, code refactoring, or minor efficiency improvements are not included in BIPs. Rather, these changes are submitted directly to Bitcoin’s codebase as proposed code changes.
Schnorr Signatures - BIP 340: As part of the Taproot upgrade, BIP 340 introduces Schnorr signatures for use in Bitcoin. Schnorr signatures bring several benefits to Bitcoin users, including superior privacy, lower fees, and more flexible multisig.
This BIP also specifies how Schnorr public keys and signatures are to be encoded for use in Bitcoin. Public keys used for Schnorr signatures are 32 bytes long, compared to ECDSA’s (Elliptic Curve Digital Signature Algorithm) 33-byte public keys. Additionally, Schnorr signatures are 64 bytes long, compared to ECDSA signatures, which range from 71-72 bytes, including a sighash flag. These small space savings offer fee savings to Bitcoin users who adopt Taproot.
Taproot - BIP 341: While BIP 340 defines the specification for generating and encoding Schnorr signatures and public keys, BIP 341 defines how Bitcoin’s protocol integrates Schnorr signatures. Specifically, Bitcoin Script must be updated to also evaluate Schnorr signatures. Taproot also integrates Merkelized Alternative Script Trees (MAST), which allow users to lock outputs to multiple scripts.
Taproot also introduced a new script type, a way of spending bitcoin. Pay-to-Taproot (P2TR) allows users to pay to either a Schnorr public key or the Merkle root of a variety of other scripts. Using this new script type, a user can create a UTXO which can be unlocked and spent by either the owner of the private key or anyone who can satisfy the requirements of any script within the Merkle tree.
Schnorr’s key aggregation feature enables this flexible functionality. When bitcoin is sent to a P2TR output, it is locked to a single public key, called Q. However, this public key Q is actually an aggregation of a public key P and a public key formed from the Merkle root of many other script types. Any of the alternative scripts in the Merkle tree can be used to spend the output.

This design allows users to choose between complex, arbitrary scripts as well as simple pay-to-public-key functionality at the time of spending, rather than at the time of receiving. It also makes all Taproot outputs look similar. Because multisig outputs, single sig outputs, and other complex smart contracts all look the same on the blockchain, many chain analysis heuristics will become unusable, preserving privacy for all Taproot users.
Tapscript - BIP 342: In order to implement P2TR transactions, BIP 342 adds and updates several opcodes. These new scripts are used to verify Taproot spends and Schnorr signatures, and they are collectively known as Tapscript.
Tapscript was designed to maximize future flexibility of P2TR spending in order to allow for upgrades which are not yet foreseen.
The Benefits of Taproot
The Taproot upgrade offers many benefits to Bitcoin users who adopt Taproot as well as those who do not. The introduction of Schnorr signatures offers significant benefits to privacy and security, but Taproot and Tapscript also bring advantages of their own.
Space Savings: Most Taproot (P2TR) outputs consume less space on the blockchain than normal Pay-to-Public-Key-Hash (P2PKH) outputs, but are slightly larger than Pay-to-Witness-Public-Key-Hash (P2WPKH) outputs. This is mostly due to the fact that P2TR outputs lock bitcoin directly to a public key, not the hash of the public key. This makes sending to Taproot outputs slightly more expensive, because public keys take up more space than public key hashes. However, spending Taproot outputs is significantly cheaper because the public key is included in the scriptPubKey, and thus does not need to be included in the Script Witness.
Taproot also defined the encoding scheme for Schnorr public keys and signatures, making them shorter than their ECDSA counterparts, providing additional fee savings.
Privacy Benefits: The privacy implications of Taproot are perhaps the most important part of the upgrade. By introducing Schnorr signatures and key aggregation, multi-signature contracts no longer look different from single signature contracts, providing privacy to all Taproot users.
Taproot also introduced significant privacy benefits through the integration of MAST. As discussed above, Taproot allows bitcoin to be locked to many scripts at once. However, when spending bitcoin from a Taproot output, the spender need not reveal every possible script that could have unlocked the bitcoin; only the script which they actually used. In the majority of cases, Taproot users will likely use the pay-to-public-key option, allowing them to keep any backup options they might have planned private.
Security Upgrades: On a technical, theoretical level, Schnorr signatures are considered more secure than ECDSA signatures because Schnorr signatures are provably secure using fewer assumptions. Like all elliptic curve cryptography schemes, both ECDSA and Schnorr rely on the assumption that the Discrete Logarithm Problem is hard. However, ECDSA relies on additional assumptions in order to guarantee its security. Nonetheless, there have been no examples of ECDSA being systematically compromised during Bitcoin’s existence.
Schnorr signatures also eliminate any signature malleability that might have been present in ECDSA signatures. While transaction malleability was solved by the SegWit upgrade, malleability of signatures persisted as a feature of ECDSA.
Taproot Enables the Taro Protocol: Taro is a Taproot-powered protocol that allows users to issue assets on the Bitcoin blockchain and the Lightning Network. With a Taproot-centered design, this asset issuance can be done in a more private and scalable way than previous attempts to introduce other assets on top of Bitcoin. Taro was proposed by Lightning Labs in April 2022.
Now that we are familiar with components of (Bitcoin) blockchain, it’s time to talk about the economies of Bitcoin.
I talked about money and the centralised form of it, fiat money. Bitcoin, created by Satoshi Nakamoto in 2008, came to change the former definition of money. With Bitcoin, money can be simple, low-cost and fast to transfer, non-inflationary, transparent, and most importantly it can be YOURS.
As we saw in the first section, fiat money is not ours. Fiat money is for banks, specially central banks. They can use it, transfer it, ban accounts, get fees, do what ever they want with the money that is supposed to be yours, but it’s not.
So, let’s talk about how Bitcoin changed the meaning of money to a decentralised one with its novel technology. As we saw before, Bitcoin uses blockchain. The blockchain allows Bitcoin to have decentralised transactions. This means that people can easily make transactions with Bitcoin and its money, BTC, without the need of a central authority confirming the transaction (unlike banks). No one can revert the transaction that has taken place in the blockchain (unlike banks). No one can transfer your money, but you (unlike banks). No one can use your money in their favour, but you. For example, invest it in constructions or stocks, or lend it to someone else and make profits for their own (unlike banks). Sending money in central fiat money way, specially between countries, takes a lot of time and very much amount of fee, 10-15% of the money transferred. In Bitcoin you can send any amount of money with a fee less than $30 and in less than one hour time. Of course, micro-payments are not suitable with Bitcoin (yet), but big payments are great with this currency. For micro-payments, people can use other blockchains or other currencies, to have less fees and faster transaction confirmation. Using public-private key technology, the money is really yours. You and ONLY you are capable of using the money that is in your custody. No one else can touch your money in any ways possible.
Let’s talk about transparency a bit. As we know from before, every person in the Bitcoin network has a private key and a public key. This means that no one knows which digital address belongs to whom until they claim it publicly, or some data engineer decide to find what digital address belongs to whom, and run some big data algorithm to find relations and connections to eventually, maybe, find your digital addresses. Okay, I know it is a bit confusing. I am going to discuss this a bit more.
Each and every transaction in the Bitcoin blockchain is transparent to everyone. The image below shows a transaction sent from one address: bc1q7cyrfmck2ffu2ud3rn5l5a8yv6f0chkp0zpemf to two addresses: 1Hep453WBXuNtu91FPQGTx4HraTWfNyxwE and bc1q7cyrfmck2ffu2ud3rn5l5a8yv6f0chkp0zpemf. The fee paid to miners in this transactions is 0.00022491 BTC and the value transacted is 14.00095687 BTC. This transaction is confirmed even though only 5 blocks has been submitted, as we mentioned the confirmation number is now 4. You can see other details for this transaction in the image below.

In this transaction you can see many details, but as it is very obvious, you cannot see any information about senders’ and receivers’ identity. This level of transparency, is achieved by public-private key. Senders and receivers may have many blockchain addresses that are not linked to them, but can be controlled only by them.
Therefore, Bitcoin has a very high level of transparency while it keeps users private data and identity. But, as mentioned before some data scientists and data engineers can do some researches on these transactions to find some users’ identity. Some of these analyses on the blockchain can be found in the References section.
Maybe the most important question for you is “How is Bitcoin non-Inflationary?”. Let’s talk about this feature now.
Bitcoin uses a very simple math equation to make sure it is non-inflationary, and has a limited supply for ever. The equation below holds:

First, let’s prove that this equation holds in any situation. Because of some limitation in writing, I bring the proof in an image below:

Now, we know that Bitcoin uses a mechanism named halving. In halving, every 210,000 blocks, the inflationary reward halves. Bitcoin started to reward nodes that submit blocks with 50 BTC. After 210,000 blocks, which is about 4 years noticing that every block takes about 10 minutes to be submitted, the reward halves meaning it becomes 25 BTC. Again, after about 4 years it halves to become 12.5 BTC. The process goes on until the reward can’t be halved.
1 BTC can be divided into 10^8 smaller parts, which in regard to Satoshi it is named after him. Therefore, 1 BTC = 10^8 Satoshi. So, when the reward becomes 1 Satoshi some day, it won’t be halved again. The Bitcoin network will pay miners with 1 Satoshi until there is no more inflationary BTCs left.
So, knowing all this it is time to find how many BTCs there are. Using the equation above, the genesis reward, noticing that it halves every 210,000 blocks, and multiplying them we get 21 million BTCs.
Why is it non-inflationary? So, it is actually a bit inflationary, until all BTCs are mined some day. From that point, no more additional BTC will be added to the network, and this means no inflation in BTC as a currency. Up until that point BTC has decreasing inflation. Meaning that in the second block of the blockchain there is a 100% inflation, since there 50 BTC in the network and 50 BTC is mined. But the inflation decreases over time. At the time of writing this article, the reward is 6.25 BTC per block and there are more than 19 million BTCs mined. So, the inflation per year is less than 1.8%. You can see that the 100% inflation per block, easily became less than 2% per year in less than 15 years. This inflation will continue going down through time, until it becomes 0 and no more BTC will be mined. In that point we have non-inflationary Bitcoin.
Investopedia Staff. Money. https://www.investopedia.com/terms/m/money.asp. Accessed: 2021-03-20.
Money and Banking. Guru Jambheshwar University of Science and Technology.
Charles Manfred Thompson. Elementary Economics. Benj. H. Sanborn and Co.,1919.
Functions of money - the economic lowdown podcast series. https://www.stlouisfed.org/education/economic-lowdown-podcast-series/episode-9-functions-of-money#:\~:text=The%20characteristics%20of%20money%20are,%2C%20limited%20supply%2C%20and%20acceptability. Accessed: 2021-03-20.
George F Coulouris, Jean Dollimore, and Tim Kindberg. Distributed systems: concepts and design. pearson education, 2005.
Andrew S Tanenbaum and Maarten Van Steen. Distributed systems: principles and paradigms. Prentice-hall, 2007.
Comparison – centralized, decentralized and distributed systems. https://www.geeksforgeeks.org/comparison-centralized-decentralized-and-distributed-systems/. Accessed: 2021-05-02.
Distributed vs centralized networks. https://icommunity.io/en/redes-centralizadas-vs-distribuidas/#:\~:text=CENTRALIZED%3A%20If%20someone%20has%20access,the%20computers%20in%20the%20network. Accessed: 2021-05-02.
Leslie Lamport, Robert Shostak, and Marshall Pease. The byzantine generals problem. In Concurrency: the Works of Leslie Lamport, pages 203–226. 2019.
Hiding: For a specified output y such that y=h(x), there are no feasible way to find x. This definition is fairly simple and partly wrong. But other definitions are so complex and mathematical that it is better to confine on this somewhat wrong definition.
Puzzle-Friendly: A hash function is puzzle-friendly, if for every n-bit output y, finding x such that y=h(x) is infeasible in time less than 2^n. Again, this definition is somewhat wrong and fairly simple, and for the same reason we are going to stick to this definition.
Merkle Tree: Merkle tree is a binary tree that every node other than the leaves, is the hash of two children it has. Every leaf is the hash of a data or a transaction.
As we know, verifying new transactions and data can be really time-consuming. Therefore, instead of verifying each data at a time, we only verify the root of the Merkle tree created with those data. As it is obvious, if a leaf (a data) changes the root will be changed and everyone will know that something has changed.
Digital Signature: Digital signature is the private signature of the user and can be signed by the private key and verified by the public key. Private/public key is a part of cryptography that made many things very easy. Public key is a key that everyone on the network has access to and can read it, but private key is kept secret to the user and is not shared with anyone at all. Each user can sign their documentations and transactions with their private key and other users can verify the signature using the private key. Another usage of the public/private key is to send private messages that no one can read. If user A wants to send user B a private message, he can simply encrypt the message with user B’s public key and the only user that can decrypt the message is user B using his private key. Since user B’s private key is kept secret then no one in the network is able to decrypt the message user A sent. Blockchain technology uses this great cryptographic idea to send transactions and messages to secure the network and make verifying messages and their integrity very easy.
Verifying a message has three steps which you can see in the figure below. 1. User’s private key and public key are generated. Public key is derived from the private key. Private key is kept secret to the user and public key is broadcast to the network. 2. The message is signed with the user’s private key. 3. Each user in the network can verify the signed message using the user’s public key.
First of all, a user creates a transaction. The creation process can be done either by a programmer who knows how to work with the underlying technology or by a wallet interface which does the underlying work for a user who doesn’t have the knowledge to do it himself. After creating the transaction, it should be broadcast to the network. This process should be done through a node (I will explain nodes and all kinds of it later). So, the transaction is given to a node, and the node puts it in a transaction pool, or memory pool (it is mostly called ‘mempool’). After putting the transaction in the mempool, every node has access to it and can choose that transaction for the next block. Usually, nodes choose transactions by their fee. The more fee you give, the more chance you have to be selected sooner. Now, let’s say a node or miner in many documents (I will explain why it is called miner later), chooses some transactions for itself. They form a block with those transactions, use the latest block as the parent for this block, and after setting some basic data in the block they go for the process of finding the nonce. Now, let’s talk about hashes, nonce, and difficulty.
When a block is formed and it is ready for the node to publish, the node must win a race against other nodes. Each node have its own version of block, since they might have chosen different transactions. For a block to be submitted into the blockchain, there is a nonce that should be found. The nonce must be such that the hash of the block be lower than a certain number. This certain number determines by the difficulty of the network. The difficulty in Bitcoin network is adjusted so the time that is needed to find the nonce always be around 10 minutes. So, we talked about finding the nonce. Since hash functions are irreversible, we know that we can not choose a hash for the block less than the difficulty and expect the function to give us the nonce. Therefore, the only way for the node to find the nonce is to choose each and every nonce one by one to find a hash less than the difficulty number.
So, it is very obvious that finding the nonce can be a very hard problem since the nonce can be selected from a very big set of numbers which have 2^128 or 2^256 numbers.
Now that we know how the blocks are submitted to the blockchain, we have to answer a very important question. WHY do people give their resources to secure the blockchain and submit the blocks? Because, when a node finds the nonce for its block sooner than the others and wins the race, it is rewarded. This reward is based on two parts: an inflationary part which can be such that the whole system has no inflation, like Bitcoin (don’t worry, we are going to talk about the economy of Bitcoin later), and the sum of all transaction fees. Since the inflationary part makes new coins for the network, people started comparing it to Gold and its mining process and called this process ‘mining’, and the nodes ‘miner’.
Now that we are completely familiar with the PoW process, it is time to talk about the other part of the consensus mechanism in the (Bitcoin) blockchain. We said that PoW alone is not the consensus mechanism, though many documents and people believe it is. Actually, there is another part of the process which is called “The Longest Chain Method”. The longest chain method alongside Proof of Work makes the consensus mechanism for Bitcoin and many other blockchains.
The longest chain method is a method invented by Satoshi in Bitcoin. This method indicates how nodes must choose a block as the latest block to use it as the parent block for the block in their hand. As the name shows, it is the last block of the longest chain. So nodes tend to use the longest chain for their PoW process.
Using these two as the consensus mechanism, it is almost obvious how the double-spending problem is solved. If a malicious attacker wants to double-spend some of their money (coins) they have to make a transaction, give it to the network, wait for it to be submitted, wait for the receiver to confirm they have the money (coins) and then makes the same transaction to another person from a block before. This process is called a ‘fork’, because it forms a fork-like chain. So, let’s say a malicious attacker made a transaction to buy a car, and waited for it to be submitted and confirmed by the car seller. Now, he wants to use the coins again to buy a house, preferably with another seller. Now, he needs to make the transaction and submit it in a block before the block that submit his last transaction. Because if it is after that, he is not the owner of the coins to spend them and other nodes in the network revert his transaction and it will never be submitted. So, he has to “time-travel” in the blockchain to a block before the block he submitted the transaction of buying the car. Let’s say that was the block number 10 and now the blockchain is in the block number 16 for other nodes. Meaning that he had to wait 6 blocks for his transactions to be confirmed and get the car. Now, he makes a transaction to the house seller and makes another block after block number 9, and tries to make another block number 10. So, knowing that honest nodes only refer to the longest chain as their latest block, he has to make a chain on his new block that wins the race of the longest chain with the other chain that is already 6 blocks ahead (I know it got a bit confusing, but I hope the rest make it more clear for you). So, he needs a lot of resource power to make his chain longer than the chain that is approved by others.
Noticing the Bitcoin whitepaper, and all the computations Satoshi made in it, if the malicious attacker has more than 50% of the resource of the whole network, he will finally makes his fork (chain) longer than the other one, and does double-spend. This attack is known as “51% attack”, since more than 50% of the whole resource is needed to make this attack.
But, if he has slightly less than 50% of the resource of the whole network, It would be almost impossible if he is 6 blocks behind the truthful chain. So, it is wise for people to wait at least 6 blocks of Bitcoin blockchain, nearly 60 minutes, to confirm a transaction. Nowadays, knowing that the whole resources on the Bitcoin blockchain is very large, most wallets and exchanges wait for only 4 blocks to confirm the transaction.
Nodes: Nodes are one of the most important components of every blockchain. Node are responsible to maintain the blockchain, secure it, and make it work. Nodes are the computers that do all the work. Because of the role of the nodes in maintaining the blockchain, and noticing that blockchains (at least public ones) are made to be decentralised, nodes are very important to the blockchain. The blockchain needs the nodes to be variant, many, and distributed to reach the decentralisation level it needs.
There are different types of nodes that I am going to discuss them down below:
Full Node: Full nodes store the complete blockchain. Every block, from the first to the most recent, is stored in full nodes. Their all-encompassing knowledge makes them ideal for verifying crypto transactions. However, storing the entire blockchain requires a lot of hard-disk space. Because of this, Bitcoin nodes can be pruned. Pruning a node means removing redundant information about fully spent transactions, which saves disk space.
Light (weight) Node: Lightweight nodes function as wallets, but don’t store the entire blockchain. They must connect to full nodes to broadcast their transactions to the network. Many users find light nodes an easy way to send and receive bitcoin.
Mining Nodes: Mining nodes confirm transactions by including them in blocks. In the early days of blockchain, each miner operated a mining node. Today, many miners work together in mining pools. These pools take advantage of teamwork by concentrating the efforts of several miners into a single mining node. This gives them a better chance to score the mining reward.
For example, if a protocol is changed in such a way that tightens the rules, implements a cosmetic change or adds a function that does not affect the blockchain's structure in any way, then new version blocks will be accepted by old version nodes. Not the other way around, though: the newer, “tighter” version would reject old version blocks.
In bitcoin, old-version miners would realize their blocks were getting rejected and would be forced to upgrade. As more miners upgrade to the latest version, the chain with predominantly new blocks becomes the longest, which, in turn, increases the amount of orphan old version blocks that are created and causes more miners to upgrade. This process ensures the system self-corrects. Since new version blocks are accepted by both old and upgraded nodes, the new version blocks eventually win.
For instance, say the community decided to reduce the block size to 0.5MB from its current theoretical limit of 4MB (with SegWit blocks.) New version nodes would reject blocks with the old limit and would build on the previous block (if it was mined with an updated version of the code), which would cause a temporary fork.
This is a soft fork, and it’s already happened several times. Initially, Bitcoin didn’t have a block size limit. Introducing the limit of 1MB was done through a soft fork since the new rule was “stricter” than the old one.
The pay-to-script-hash function, which enhances the code without changing the structure, was also successfully added through a soft fork. This type of amendment generally requires only the majority of miners to upgrade, which makes it more feasible and less disruptive.
Soft forks do not carry the double-spend risk that plagues hard forks, since merchants and users running old nodes will read both new and old version blocks.
Taproot is used in Taro to embed asset metadata into an existing transaction output. Schnorr Signatures are also used to improve simplicity and scalability.
The name Taro is an acronym for Taproot Asset Representation Overlay, indicating that without Taproot, this upgrade would not be possible.
Harish Natarajan, Solvej Karla Krause, and Helen Luskin Gradstein. Distributed ledger technology (dlt) and blockchain. world bank group. Technical report, Fintech Note, 2017.
Andrea Pinna and Wiebe Ruttenberg. Distributed ledger technologies in securities post-trading revolution or evolution? ECB Occasional Paper, (172), 2016.
Sinclair Davidson, Primavera De Filippi, and Jason Potts. Disrupting governance: The new institutional economics of distributed ledger technology. Available at SSRN 2811995, 2016.
Evangelos Benos, Rod Garratt, and Pedro Gurrola-Perez. The economics of distributed ledger technology for securities settlement. Available at SSRN 3023779,2017.
Michel Rauchs, Andrew Glidden, Brian Gordon, Gina C Pieters, Martino Recanatini, Francois Rostand, Kathryn Vagneur, and Bryan Zheng Zhang. Distributed ledger technology systems: A conceptual framework.Available at SSRN 3230013, 2018.
Imran Bashir.Mastering Blockchain Distributed ledger technology, decentralization, and smart contracts explained 2nd ed. Packt Publishing, 2018.
Don Tapscott and Alex Tapscott.Blockchain Revolution: How the Technology Behind Bitcoin and Other Cryptocurrencies Is Changing the World. Penguin Random House LLC, 2018.
Sarah Underwood. Blockchain beyond bitcoin. Communications of the ACM, 59:15 – 17, 2016.
Arvind Narayanan, Joseph Bonneau, Edward Felten, Andrew Miller, and Steven Goldfeder. Bitcoin and Cryptocurrency Technology. Princeton University Press, 2016.
Alok Gupta, Y.Alex Tung, and James R. Marsden. Digital signature: use and modification to achieve success in next generational e-business processes. Information and Management, 41(5):561–575, 2004.
Ben Lutkevich, Vicki-Lynn Brunsill, and Peter Loshin. Digital signature. https://searchsecurity.techtarget.com/definition/digital-signature. Accessed: 2021-03-24.
Georg Becker.Merkle Signature Schemes, Merkle Trees and Their Cryptanalysis. Ruhr-Universität Bochum, 2008.
Ralph C. Merkle. A digital signature based on a conventional encryption function. Advances in Cryptology — CRYPTO ’87. Lecture Notes in Computer Science, 293:369–378, 1988.
Ralph C. Mrekle. Method of providing digital signatures, 1982. US4309569A.
David LEE Kuo Chuen. Handbook of Digital Currency Bitcoin, Innovation, Financial Instruments, and Big Data. Elsevier Inc., 2016.
Z. Zheng, S. Xie, H. Dai, X. Chen, and H. Wang. An overview of blockchain technology: Architecture, consensus, and future trends. pages 557–564, 2017.
Wray, Glauert, and Hopper. The medusa applications environment. pages 265–273, 1994.
M. Singh. Peering at peer-to-peer computing. IEEE Internet Computing, 5(6):4–5, 2001.
Rüdiger Schollmeier. A definition of peer-to-peer networking for the classification of peer-to-peer architectures and applications. Proc. of the First International Conference on Peer-to-Peer Computing, pages 101–102, 2002.
D. Mingxiao, M. Xiaofeng, Z. Zhe, W. Xiangwei, and C. Qijun. A review on consensus algorithm of blockchain. pages 2567–2572, 2017.
S. Singh, A. S. M. S. Hosen, and B. Yoon. Blockchain security attacks, challenges, and solutions for the future distributed iot network. IEEE Access, 9:13938–13959, 2021.
Satoshi Nakamoto. Bitcoin: A peer-to-peer electronic cash system. 2008. https://www.bitcoin.org/.
51% attack. https://dci.mit.edu/51-attacks. Accessed: 2021-03-26.
Bitcoin core. https://github.com/bitcoin/bitcoin/blob/master/src/txmempool.cpp. Accessed: 2021-03-27.
Leila Ismail and Huned Materwala. A review of blockchain architecture and consensus protocols: Use cases, challenges, and solutions. Symmetry, 11(10),2019.
Kamal Husain. Learning how to use bitcoin: A beginner’s guide to using the bitcoin testnet. https://armedia.com/blog/bitcoin-testnet-beginners-guide/. Accessed: 2021-03-28.
Micha Ober, Stefan Katzenbeisser, and Kay Hamacher. Structure and anonymity of the bitcoin transaction graph. Future Internet, 5:237–250, 06 2013.
Marc Santamaria Ortega. The bitcoin transaction graph - anonymity. Master’s thesis, Universitat Oberta de Catalunya, 2013.
Dorit Ron and Adi Shamir. Quantitative analysis of the full bitcoin transaction graph. 11 2012.
Fergal Reid and Martin Harrigan. An analysis of anonymity in the bitcoin system, 2012.
Hiding: For a specified output y such that y=h(x), there are no feasible way to find x. This definition is fairly simple and partly wrong. But other definitions are so complex and mathematical that it is better to confine on this somewhat wrong definition.
Puzzle-Friendly: A hash function is puzzle-friendly, if for every n-bit output y, finding x such that y=h(x) is infeasible in time less than 2^n. Again, this definition is somewhat wrong and fairly simple, and for the same reason we are going to stick to this definition.
Merkle Tree: Merkle tree is a binary tree that every node other than the leaves, is the hash of two children it has. Every leaf is the hash of a data or a transaction.
As we know, verifying new transactions and data can be really time-consuming. Therefore, instead of verifying each data at a time, we only verify the root of the Merkle tree created with those data. As it is obvious, if a leaf (a data) changes the root will be changed and everyone will know that something has changed.
Digital Signature: Digital signature is the private signature of the user and can be signed by the private key and verified by the public key. Private/public key is a part of cryptography that made many things very easy. Public key is a key that everyone on the network has access to and can read it, but private key is kept secret to the user and is not shared with anyone at all. Each user can sign their documentations and transactions with their private key and other users can verify the signature using the private key. Another usage of the public/private key is to send private messages that no one can read. If user A wants to send user B a private message, he can simply encrypt the message with user B’s public key and the only user that can decrypt the message is user B using his private key. Since user B’s private key is kept secret then no one in the network is able to decrypt the message user A sent. Blockchain technology uses this great cryptographic idea to send transactions and messages to secure the network and make verifying messages and their integrity very easy.
Verifying a message has three steps which you can see in the figure below. 1. User’s private key and public key are generated. Public key is derived from the private key. Private key is kept secret to the user and public key is broadcast to the network. 2. The message is signed with the user’s private key. 3. Each user in the network can verify the signed message using the user’s public key.
First of all, a user creates a transaction. The creation process can be done either by a programmer who knows how to work with the underlying technology or by a wallet interface which does the underlying work for a user who doesn’t have the knowledge to do it himself. After creating the transaction, it should be broadcast to the network. This process should be done through a node (I will explain nodes and all kinds of it later). So, the transaction is given to a node, and the node puts it in a transaction pool, or memory pool (it is mostly called ‘mempool’). After putting the transaction in the mempool, every node has access to it and can choose that transaction for the next block. Usually, nodes choose transactions by their fee. The more fee you give, the more chance you have to be selected sooner. Now, let’s say a node or miner in many documents (I will explain why it is called miner later), chooses some transactions for itself. They form a block with those transactions, use the latest block as the parent for this block, and after setting some basic data in the block they go for the process of finding the nonce. Now, let’s talk about hashes, nonce, and difficulty.
When a block is formed and it is ready for the node to publish, the node must win a race against other nodes. Each node have its own version of block, since they might have chosen different transactions. For a block to be submitted into the blockchain, there is a nonce that should be found. The nonce must be such that the hash of the block be lower than a certain number. This certain number determines by the difficulty of the network. The difficulty in Bitcoin network is adjusted so the time that is needed to find the nonce always be around 10 minutes. So, we talked about finding the nonce. Since hash functions are irreversible, we know that we can not choose a hash for the block less than the difficulty and expect the function to give us the nonce. Therefore, the only way for the node to find the nonce is to choose each and every nonce one by one to find a hash less than the difficulty number.
So, it is very obvious that finding the nonce can be a very hard problem since the nonce can be selected from a very big set of numbers which have 2^128 or 2^256 numbers.
Now that we know how the blocks are submitted to the blockchain, we have to answer a very important question. WHY do people give their resources to secure the blockchain and submit the blocks? Because, when a node finds the nonce for its block sooner than the others and wins the race, it is rewarded. This reward is based on two parts: an inflationary part which can be such that the whole system has no inflation, like Bitcoin (don’t worry, we are going to talk about the economy of Bitcoin later), and the sum of all transaction fees. Since the inflationary part makes new coins for the network, people started comparing it to Gold and its mining process and called this process ‘mining’, and the nodes ‘miner’.
Now that we are completely familiar with the PoW process, it is time to talk about the other part of the consensus mechanism in the (Bitcoin) blockchain. We said that PoW alone is not the consensus mechanism, though many documents and people believe it is. Actually, there is another part of the process which is called “The Longest Chain Method”. The longest chain method alongside Proof of Work makes the consensus mechanism for Bitcoin and many other blockchains.
The longest chain method is a method invented by Satoshi in Bitcoin. This method indicates how nodes must choose a block as the latest block to use it as the parent block for the block in their hand. As the name shows, it is the last block of the longest chain. So nodes tend to use the longest chain for their PoW process.
Using these two as the consensus mechanism, it is almost obvious how the double-spending problem is solved. If a malicious attacker wants to double-spend some of their money (coins) they have to make a transaction, give it to the network, wait for it to be submitted, wait for the receiver to confirm they have the money (coins) and then makes the same transaction to another person from a block before. This process is called a ‘fork’, because it forms a fork-like chain. So, let’s say a malicious attacker made a transaction to buy a car, and waited for it to be submitted and confirmed by the car seller. Now, he wants to use the coins again to buy a house, preferably with another seller. Now, he needs to make the transaction and submit it in a block before the block that submit his last transaction. Because if it is after that, he is not the owner of the coins to spend them and other nodes in the network revert his transaction and it will never be submitted. So, he has to “time-travel” in the blockchain to a block before the block he submitted the transaction of buying the car. Let’s say that was the block number 10 and now the blockchain is in the block number 16 for other nodes. Meaning that he had to wait 6 blocks for his transactions to be confirmed and get the car. Now, he makes a transaction to the house seller and makes another block after block number 9, and tries to make another block number 10. So, knowing that honest nodes only refer to the longest chain as their latest block, he has to make a chain on his new block that wins the race of the longest chain with the other chain that is already 6 blocks ahead (I know it got a bit confusing, but I hope the rest make it more clear for you). So, he needs a lot of resource power to make his chain longer than the chain that is approved by others.
Noticing the Bitcoin whitepaper, and all the computations Satoshi made in it, if the malicious attacker has more than 50% of the resource of the whole network, he will finally makes his fork (chain) longer than the other one, and does double-spend. This attack is known as “51% attack”, since more than 50% of the whole resource is needed to make this attack.
But, if he has slightly less than 50% of the resource of the whole network, It would be almost impossible if he is 6 blocks behind the truthful chain. So, it is wise for people to wait at least 6 blocks of Bitcoin blockchain, nearly 60 minutes, to confirm a transaction. Nowadays, knowing that the whole resources on the Bitcoin blockchain is very large, most wallets and exchanges wait for only 4 blocks to confirm the transaction.
Nodes: Nodes are one of the most important components of every blockchain. Node are responsible to maintain the blockchain, secure it, and make it work. Nodes are the computers that do all the work. Because of the role of the nodes in maintaining the blockchain, and noticing that blockchains (at least public ones) are made to be decentralised, nodes are very important to the blockchain. The blockchain needs the nodes to be variant, many, and distributed to reach the decentralisation level it needs.
There are different types of nodes that I am going to discuss them down below:
Full Node: Full nodes store the complete blockchain. Every block, from the first to the most recent, is stored in full nodes. Their all-encompassing knowledge makes them ideal for verifying crypto transactions. However, storing the entire blockchain requires a lot of hard-disk space. Because of this, Bitcoin nodes can be pruned. Pruning a node means removing redundant information about fully spent transactions, which saves disk space.
Light (weight) Node: Lightweight nodes function as wallets, but don’t store the entire blockchain. They must connect to full nodes to broadcast their transactions to the network. Many users find light nodes an easy way to send and receive bitcoin.
Mining Nodes: Mining nodes confirm transactions by including them in blocks. In the early days of blockchain, each miner operated a mining node. Today, many miners work together in mining pools. These pools take advantage of teamwork by concentrating the efforts of several miners into a single mining node. This gives them a better chance to score the mining reward.
For example, if a protocol is changed in such a way that tightens the rules, implements a cosmetic change or adds a function that does not affect the blockchain's structure in any way, then new version blocks will be accepted by old version nodes. Not the other way around, though: the newer, “tighter” version would reject old version blocks.
In bitcoin, old-version miners would realize their blocks were getting rejected and would be forced to upgrade. As more miners upgrade to the latest version, the chain with predominantly new blocks becomes the longest, which, in turn, increases the amount of orphan old version blocks that are created and causes more miners to upgrade. This process ensures the system self-corrects. Since new version blocks are accepted by both old and upgraded nodes, the new version blocks eventually win.
For instance, say the community decided to reduce the block size to 0.5MB from its current theoretical limit of 4MB (with SegWit blocks.) New version nodes would reject blocks with the old limit and would build on the previous block (if it was mined with an updated version of the code), which would cause a temporary fork.
This is a soft fork, and it’s already happened several times. Initially, Bitcoin didn’t have a block size limit. Introducing the limit of 1MB was done through a soft fork since the new rule was “stricter” than the old one.
The pay-to-script-hash function, which enhances the code without changing the structure, was also successfully added through a soft fork. This type of amendment generally requires only the majority of miners to upgrade, which makes it more feasible and less disruptive.
Soft forks do not carry the double-spend risk that plagues hard forks, since merchants and users running old nodes will read both new and old version blocks.
Taproot is used in Taro to embed asset metadata into an existing transaction output. Schnorr Signatures are also used to improve simplicity and scalability.
The name Taro is an acronym for Taproot Asset Representation Overlay, indicating that without Taproot, this upgrade would not be possible.
Harish Natarajan, Solvej Karla Krause, and Helen Luskin Gradstein. Distributed ledger technology (dlt) and blockchain. world bank group. Technical report, Fintech Note, 2017.
Andrea Pinna and Wiebe Ruttenberg. Distributed ledger technologies in securities post-trading revolution or evolution? ECB Occasional Paper, (172), 2016.
Sinclair Davidson, Primavera De Filippi, and Jason Potts. Disrupting governance: The new institutional economics of distributed ledger technology. Available at SSRN 2811995, 2016.
Evangelos Benos, Rod Garratt, and Pedro Gurrola-Perez. The economics of distributed ledger technology for securities settlement. Available at SSRN 3023779,2017.
Michel Rauchs, Andrew Glidden, Brian Gordon, Gina C Pieters, Martino Recanatini, Francois Rostand, Kathryn Vagneur, and Bryan Zheng Zhang. Distributed ledger technology systems: A conceptual framework.Available at SSRN 3230013, 2018.
Imran Bashir.Mastering Blockchain Distributed ledger technology, decentralization, and smart contracts explained 2nd ed. Packt Publishing, 2018.
Don Tapscott and Alex Tapscott.Blockchain Revolution: How the Technology Behind Bitcoin and Other Cryptocurrencies Is Changing the World. Penguin Random House LLC, 2018.
Sarah Underwood. Blockchain beyond bitcoin. Communications of the ACM, 59:15 – 17, 2016.
Arvind Narayanan, Joseph Bonneau, Edward Felten, Andrew Miller, and Steven Goldfeder. Bitcoin and Cryptocurrency Technology. Princeton University Press, 2016.
Alok Gupta, Y.Alex Tung, and James R. Marsden. Digital signature: use and modification to achieve success in next generational e-business processes. Information and Management, 41(5):561–575, 2004.
Ben Lutkevich, Vicki-Lynn Brunsill, and Peter Loshin. Digital signature. https://searchsecurity.techtarget.com/definition/digital-signature. Accessed: 2021-03-24.
Georg Becker.Merkle Signature Schemes, Merkle Trees and Their Cryptanalysis. Ruhr-Universität Bochum, 2008.
Ralph C. Merkle. A digital signature based on a conventional encryption function. Advances in Cryptology — CRYPTO ’87. Lecture Notes in Computer Science, 293:369–378, 1988.
Ralph C. Mrekle. Method of providing digital signatures, 1982. US4309569A.
David LEE Kuo Chuen. Handbook of Digital Currency Bitcoin, Innovation, Financial Instruments, and Big Data. Elsevier Inc., 2016.
Z. Zheng, S. Xie, H. Dai, X. Chen, and H. Wang. An overview of blockchain technology: Architecture, consensus, and future trends. pages 557–564, 2017.
Wray, Glauert, and Hopper. The medusa applications environment. pages 265–273, 1994.
M. Singh. Peering at peer-to-peer computing. IEEE Internet Computing, 5(6):4–5, 2001.
Rüdiger Schollmeier. A definition of peer-to-peer networking for the classification of peer-to-peer architectures and applications. Proc. of the First International Conference on Peer-to-Peer Computing, pages 101–102, 2002.
D. Mingxiao, M. Xiaofeng, Z. Zhe, W. Xiangwei, and C. Qijun. A review on consensus algorithm of blockchain. pages 2567–2572, 2017.
S. Singh, A. S. M. S. Hosen, and B. Yoon. Blockchain security attacks, challenges, and solutions for the future distributed iot network. IEEE Access, 9:13938–13959, 2021.
Satoshi Nakamoto. Bitcoin: A peer-to-peer electronic cash system. 2008. https://www.bitcoin.org/.
51% attack. https://dci.mit.edu/51-attacks. Accessed: 2021-03-26.
Bitcoin core. https://github.com/bitcoin/bitcoin/blob/master/src/txmempool.cpp. Accessed: 2021-03-27.
Leila Ismail and Huned Materwala. A review of blockchain architecture and consensus protocols: Use cases, challenges, and solutions. Symmetry, 11(10),2019.
Kamal Husain. Learning how to use bitcoin: A beginner’s guide to using the bitcoin testnet. https://armedia.com/blog/bitcoin-testnet-beginners-guide/. Accessed: 2021-03-28.
Micha Ober, Stefan Katzenbeisser, and Kay Hamacher. Structure and anonymity of the bitcoin transaction graph. Future Internet, 5:237–250, 06 2013.
Marc Santamaria Ortega. The bitcoin transaction graph - anonymity. Master’s thesis, Universitat Oberta de Catalunya, 2013.
Dorit Ron and Adi Shamir. Quantitative analysis of the full bitcoin transaction graph. 11 2012.
Fergal Reid and Martin Harrigan. An analysis of anonymity in the bitcoin system, 2012.
No activity yet