The methods for combining cryptographic primitives can be categorized broadly as:
- Sequential composition: Applying one primitive after another (e.g., hash chaining)
- Parallel Composition: Using primitives simultaneously and independently (e.g., encrypting and hashing data simultaneously)
- Hierarchical Composition: Using a cryptographic primitive inside of another (e.g., Merkle trees)
each block’s hash is dependent on the previous block’s hash, any change made to a block’s contents would change its hash and invalidate all subsequent blocks. This process of using previous hashes in the generation of a new hash is known as hash chaining.
Adding a new block to a blockchain is known as a confirmation.
A hash pointer is a data structure similar to a pointer, but it also contains a cryptographic hash of the data referenced. Thus, a hash pointer tells you where to access a specific piece of data and allows you to check the integrity of the data accessed.
The structure of a blockchain can be more accurately described as a linked list that uses hash pointers.
The hash of the previous block is a hash pointer that points to a set of transactions and a hash of all those transactions