The bitcoin specification starts with the concept of a timestamp server. To avoid the need for a trusted third party verifying and timestamping bitcoin transactions, bitcoin timestamping server is distributed. It is based on a proof-of-work scheme using the SHA256 hash function. New transactions are verified and collected to a new block and significant work has to be performed to find the timestamp acceptable for the network (the setup is adjusted so that the whole network needs approximately 10 minutes to find the requisite timestamp). Using the hash function, all blocks are chained together. A potential attacker wanting to change the transaction history would not just need to replace the historical block of interest, but would also need to replace all the subsequent blocks to obtain a longer (in terms of work) chain and outperform all the remaining network nodes continually adding new transaction blocks to the honest chain.