Technical Properties of a Blockchain
Let's get technical, for 90 seconds:
Hashes: In this example, the sealing of the folder with the sheet that has all 10 transactions is what provides trust to all parties that the transactions on the sheet are valid. The folder is "sealed" by using a hash function. Hashing is a method of calculating a relatively unique fixed size output (i.e. hash value) for an input of nearly any size. Said differently, one input will always generate the same output - even the smallest change in the input value will result in a completely different hash value. Hash values are designed to be one-way - i.e. it is computationally infeasible to find any input that maps to a pre-specified output (i.e. if you know the output, you cannot figure out the input, unless with brute force or guess every value, which is infeasible as hash values are 32 characters long). Hash functions are a core security property as it makes is practically impossible to change or alter the record of transactions
Transactions: A transaction is a recording of a transfer of assets (digital currency, units of inventory, etc.) between parties. Each block in a blockchain contains multiple transactions. A single transaction typically requires at least the following information fields:
Amount - the total amount of the digital asset to transfer
Inputs - a list of the digital assets to be transferred (their total value equals the amount)
Outputs - The account recipients of the digital assets
Transaction ID / Hash - A unique identifier for each transaction
Determining the validity of a transaction is important. Just because someone claims a transaction took place does not mean it really happened. Transactions must be signed and verifiable
Private and Public Keys: Transactions are signed and can be verified with public/private key pairs at any time. A core technology utilized by blockchains is asymmetric-key cryptography. Asymmetric-key cryptography uses a pair of keys: a public key and a private key that are mathematically related to each other. The public key may be made public without reducing the security of the process, but the private key must remain secret if the data is to retain its cryptographic protection. Even though there is a relationship between the two keys, the private key cannot efficiently be determined based on knowledge of the public key
Private keys - are used to digitally sign transactions
Public keys - are used to derive addresses and verify signatures generated with private keys
Asymmetric-key cryptography provides the ability to verify that the user transferring value to another user is in possession of the private key capable of signing the value.
Addresses: A user’s address is a short, alphanumeric string derived from the user’s public key using a hash function, along with some additional data (used to detect errors). Addresses are used to send and receive digital assets
Blocks: Blockchain participates submit transactions to the ledger by sending these transactions to other participants in the blockchain. As in our example, the broadcasting of transactions are propagated to other participates in the network, but this by itself does not include the transaction in the blockchain. The distributed transactions wait in a que or transaction pool, until they are mined to the block chain
Mining: Miners are the subset of participants that maintain the blockchain by publishing new blocks. Transactions are added to the blockchain when a miner publishes a block. A block contains a set of validated transactions. ‘Validity’ is ensured by checking that the providers of funds in each transaction (listed in the transaction’s ‘input’ values) have each cryptographically signed the transaction. This verifies that the providers of funds for a transaction had access to the private key which could sign over the available funds. The other miners will check the validity of all transactions in a published block and will not accept a block if it contains any invalid transactions
Proof of Work: Miners compete to solve a puzzle to gain the right of publishing the next block. If they successfully solve the puzzle first, they are rewarded financially. The solution to the puzzle is called "proof of work". A common puzzle method is to require that the hash of the block be less than a certain value. Miners then make many small changes to the block trying to find a block hash that meets the requirement, a very computationally intensive process. The puzzle is designed such that solving the puzzle is difficult but checking that a solution is valid is easy. This enables all other miners to easily validate any proposed next blocks, and any proposed block that did not satisfy the puzzle would be rejected
The proof of work / mining process is critical for the operation of a decentralized block chain. It incentivizes a group of non-related, decentralized actors in participation of validating that blocks are valid. If they do the job well, they get rewarded by the network. If they do not do it well, other miners will reject transactions. Everyone checks everyone's work; therefore, there is a low incentive to cheat the system, as you will be discovered and the work you put in to validate the transaction will be wasted