In this thesis we analyze the role of puzzles in blockchain based distributed systems. We extract the relevant properties from existing puzzle mechanisms and use them to define an abstract notion for proof-of-work puzzles. The resulting puzzles have exponentially distributed solving time and allow to consider nodes and parties with individual solving capabilities. We use the new definition of proof-of-work puzzles in a bottom-up construction of a blockchain protocol. Our new model is compatible with the Bitcoin backbone protocol, in the sense that we can transfer the backbone protocols properties to our model. During the construction we try to pinpoint the original design decisions made for Bitcoin.