Before learning about this I would recommend watching the following video
I would also suggest reading through this site to get a good understanding of the topic in general
“Blocks” on the blockchain are made up of digital pieces of information. Specifically, they have three parts:
- Blocks store information about transactions like the date, time, and dollar amount of your most recent purchase from Amazon
- Blocks store information about who is participating in transactions.
- Blocks store information that distinguishes them from other blocks. Much like you and I have names to distinguish us from one another, each block stores a unique code called a “hash” that allows us to tell it apart from every other block.
- Block headers identify individual blocks in a blockchain.
- They’re hashed to create a proof of work for mining rewards.
- The blocks are layered vertically, starting with the “genesis block.”
- Each block header contains three sets of block metadata and multiple individual components.
- The Bitcoin version number helps you to keep track of changes in the protocol.
In a few words, a candidate block is a block that a mining node (miner) is trying to mine in order to receive the block reward. So a candidate block may be described as a temporary block that will be either validated or discarded by the network. Miners compete with each other to validate the next block and add it to the blockchain, but first, they have to create a candidate block to participate in the mining competition.
Candidate blocks are created by miners by collecting and organizing multiple unconfirmed transactions from the memory pool. The transactions are then hashed to form a Merkle tree structure, which will eventually produce a Merkle root (or root hash). The Merkle root is a single hash that represents all previous hashes of that tree, and therefore, all transactions that were included in that particular block.
Collision resistance is a property of cryptographic hash functions: a hash function H is collision resistant if it is hard to find two inputs that hash to the same output; that is, two inputs a and b such that H(a) = H(b), and a ≠ b.
Collision resistance does not mean that no collisions exist; simply that they are hard to find.
Strong And Weak Collision Resistance Are Not The Same
Even though they seem similar, there is a subtle difference between strong and weak collision resistance. Weak collision resistance is bound to a particular input, whereas strong collision resistance applies to any two arbitrary inputs. As the name implies, it is more difficult to achieve strong collision resistance than weak collision resistance. This is because strong collision resistance implies weak collision resistance, yet, having weak collision resistance does not imply strong collision resistance.
Determinism, in philosophy, theory that all events, including moral choices, are completely determined by previously existing causes.
All operations on the Blockchain should be deterministic. Simply put, the same operation performed across different nodes should return the same result. A difference in results between the nodes for the same operation can lead to a failure in consensus, since storing this data on the ledger will lead to an inconsistent ledger state thereby making the whole smart contract useless.
A distributed system is a group of computers working together to achieve a unified goal.
There are hundreds of architectures for a distributed system. For example, a single computer can also be viewed as a distributed system: the central control unit, memory units, and input-output channels are separate processes collaborating to complete an objective.
In very simple terms, there is no central authority like a clearing house or central banks to approve the transactions as it happens in our day-to-day transactions. In Bitcoin transactions, the technology underlying it called Blockchain uses distributed consensus where multiple computers or nodes approve these transactions based on mathematical calculations. All these nodes have to arrive at a consensus to approve or reject the transaction.
This consensus mechanism is the biggest selling point of Blockchain. The details of how they approve, why they should approve, what happens if one of them disapprove for financial gains are some huge and heavy to digest topics in themself.
Double Spend Problem
In cryptography, entropy is a measure of true randomness. An n-bit number chosen uniformly at random with a perfect random number generator has n bits of entropy, and entropy of other things can be computed in comparison to this case. For example, 4 words chosen uniformly at random from a wordlist of 1024 words has 40 bits of entropy because you can represent each word by 10 bits (210 = 1024) and stick the 4 groups of 10 bits together to get a 40-bit number chosen uniformly at random.https://www.reddit.com/r/Bitcoin/comments/7dg95m/what_is_entropy_in_laymans_term/
A genesis block is the first block of a block chain. Modern versions of Bitcoin number it as block 0, though very early versions counted it as block 1. The genesis block is almost always hardcoded into the software of the applications that utilize its block chain.
In plain English, immutability is used to denote something which can never be modified or deleted. In a blockchain, it refers to the logs of transactions, which is created by consensus among the chain’s participants. The basic notion is this: once a blockchain transaction has received a sufficient level of validation it can never be replaced or reversed or edited.
Immutability, the concept itself, is somewhat relative. For example, if I send an email to a large list of friends, that data is pretty immutable from my perspective. To change it, I’d have to persuade my friends each to delete the email. Or, I would have to persuade the email provider, say Gmail and the companies running all the mail servers of my friends. From my perspective, and with the control I have, that email is immutable – I can’t unsend or revoke it without collaboration and risk of detection. The same relativity holds for Blockchain too, though suffice it to say transactions on Blockchain are in fact pretty immutable.
Now let us see how blockchain attains immutability.
If a miner tries to change a transaction from history, he will have to re-mine all the blocks from that block till the current block and this will have to be reflected in every copy of the ledger in the network. Miners will have to rebuild the merkle tree of the block in which the transaction is present and redo all the proof of work for that block.
Now, since the next block stores the hash of this block, the next block will also have to be re-mined. This is because the next block will have to be edited with the new “previous block hash”. This change will result in a different block hash. The new block hash might result in a hash that does not match the set difficulty level. Thus, this block will also have to be re-mined.
The same process will have to be propagated to the latest block in the chain. While this miner is busy remining old blocks, there will be new blocks getting added to the chain. Thus to edit a historical record, the miner will have to remine the old blocks and keep up with the pace of newly generated blocks too. This is extremely difficult, close to impossible. The computing power required to achieve this is enormous and probably only theoretical
Key Pair Generation
The process of generating keys in cryptography. A key is used to encrypt and decrypt whatever data is being encrypted/decrypted.
A device or program used to generate keys is called a key generator or keygen.
Key Pair Generation
The creation of the Private Key (kept hidden by a system) and a Public Key (hashed to be sent to other systems)
Private Ledger – Central authority managing access (Banks)
Public/Permissionless Ledger – no central authority (BlockChain)
Merkle proofs are established by hashing a hash’s corresponding hash together and climbing up the tree until you obtain the root hash which is or can be publicly known. Given that one way hashes are intended to be collision free and deterministic algorithms, no two plaintext hashes can/should be the same.
It works by recursively building up a tree structure based on one or more pair(s) of leaf nodes
The role of miners is to secure the network and to process every Bitcoin transaction. Miners achieve this by solving a computational problem which allows them to chain together blocks of transactions
The nonce is the number that blockchain miners are working to solve. When the solution is found, the blockchain miners are offered cryptocurrency in exchange.
The goal of the Miner is to find the NONCE. Why? To get rewarded
To find the NONCE is difficult and requires substantial computing power.
Non-invertibility is another feature that’s often desirable, depending on the intended usage of the algorithm. This says that it should be impossible, or at least prohibitively difficult, to work out the input that led to any given hash. Ideally, it should be easy to transform data into a hash, and practically impossible to go the other way.
In basic terms it means it should not be able to be reversed (or at least as close to impossible to be reversed)
“Nonrepudiation is the assurance that someone cannot deny something.”https://searchsecurity.techtarget.com/definition/nonrepudiation
Non-repudiation In Block Chain
Non–repudiation: Not allowing someone to deny that they created or changed the document, as long as each iteration is stored in the blockchain.
Non-repudiation simply means that one party cannot reject (cannot repudiate) the validity of a certain action or claim.
Proof of Work
PuTTYgen is a key generator tool for creating pairs of public and private SSH keys
Self Referential Data Structure
Self Referential structures are those structures that have one or more pointers which point to the same type of structure, as their member. In other words, structures pointing to the same type of structures are self–referential in nature
In this case study the self referential structures would be the hashes of the previous and next block .
An information security attack threat that involves an attempt to obtain, alter, destroy, remove, implant or reveal information without authorized access or permission.