A blockchain is a special type of database. You may also have heard the term distributed ledger technology (or DLT) – in many cases, they're referring to the same thing.
A blockchain has certain unique properties. There are rules about how data can be added, and once the data has been stored, it's virtually impossible to modify or delete it.
Data is added over time in structures called blocks. Each block is built on top of the last and includes a piece of information that links back to the previous one. By looking at the most up-to-date block, we can check that it has been created after the last. So if we continue all the way down the "chain," we'll reach our very first block – known as the genesis block.
To analogize, suppose that you have a spreadsheet with two columns. In the first cell of the first row, you put whatever data you want to hold.
The first cell's data is converted into a two-letter identifier, which will then be used as part of the next input. In this example, the two-letter identifier KP must be used to fill out the next cell in the second row (defKP). This means that if you change the first input data (abcAA), you'd get a different combination of letters in every other cell.
How are blocks connected?
What we discussed above – with our two-letter identifiers – is a simplified analogy of how a blockchain uses hash functions. Hashing is the glue that holds blocks together. It consists of taking data of any size and passing it through a mathematical function to produce an output (a hash) that's always the same length.
The hashes used in blockchains are interesting, in that the odds of you finding two pieces of data that give the exact same output are astronomically low. Like our identifiers above, any slight modification of our input data will give a totally different output.
Let's illustrate with SHA256, a function used extensively in Bitcoin. As you can see, even changing the capitalization of letters is enough to completely scramble the output.
The fact that there aren't any known SHA256 collisions (i.e., two different inputs that give us the same output) is incredibly valuable in the context of blockchains. It means that each block can point back to the previous one by including its hash, and any attempt to edit older blocks will immediately become apparent.