In this post we will take more a technical look at the cryptography involved and how it is used to secure the network.
As I said previously, Bitcoin is very accessible. Cryptographic Hash Functions Before moving forward we should take a moment to learn about hash functions since they are used all throughout the Bitcoin protocol. To put it simply, a hash function is just a mathematical algorithm that takes an input and turns it into an output. For example, suppose we have an algorithm which just adds all the digits in the input string together. If our input is we would get an output of However, there are certain properties of really good hash functions that make them suitable to use in cryptography.
Keep these properties in mind as they are vital to the operation of the Bitcoin protocol. It should be very easy to compute an output for any given input, however it should be impossible given current knowledge of mathematics and the state of computers to compute the input for a given output even while knowing the mathematical algorithm. In this case there are many possible inputs that could add up to 10 55, etc. However, given the simplicity of our function one could still figure out the input relatively easily.
Some cryptographic hash functions, on the other hand, are said to be unbreakable by even quantum computers.
Unlike our example, each potential output should map to only one input. If a two different inputs can produce the same output this is called a hash collision. Good cryptographic hash algorithms are resistant to such collisions. A hash function should be able to take inputs of variable size and turn them into outputs of a fixed size. A tiny change in the input should produce an entirely different output that in no way relates to the original input.