For Daden-U day that took place in February I chose to look into a technology that’s on everybody’s radar. Blockchain is being touted as the next big thing and becoming a buzzword for business. A block chain is a is a continuously growing list of records, called blocks, which are linked and secured using cryptography. Blockchain is synonymous with cryptocurrency because blockchain is the underlying technology of cryptocurrencies such as Bitcoin and Ethereum but there are other uses for Blockchain. Blockchain is still a young technology and it goes without saying that the world still figuring out whether is a solutions looking for a problem outside of cryptocurrency. To gain of a better understand of what blockchain is, its usefulness and how we can integrate it into our products I decided to create my own blockchain called UncomplicatedChain using a simple console application in c#. Different blockchains have different structures depending on their purpose. To keep things simple I decided to have the only the necessary elements in my blocks.
- Index – The block number, so we know how many blocks are in the chain
- Hash - The blocks Id (identification document) which is long list of numbers and letters. This is generated using index of the block, the hash of the previous block, timestamp and data. This is so that we can keep the integrity of the data. It should be noted that this hash has nothing to do with “mining”, since there is no Proof Of Work problem to solve.
- Data – The information we want the block to store
- Previous Hash – This essential creates the chain by storing the id of the previous block. We can also use the previous has in our validation process to check the integrity of a new block or a new chain. At any given time we must be able to validate if a block or a chain of blocks are valid in terms of integrity. This is true especially when we receive new blocks from other nodes and must decide whether to accept them or not.
- Timestamp – Stores the date and time the block was created