Public transactions in the bitcoin world
Triple Entry Accounting
The way Bitcoin records ownership is based on an idea originally presented in 2005 by Ian Grigg called “Triple Entry Accounting”. In this system, payment receipts are not just verification that the ownership ledger changed, the receipts themselves are the ledger. It is called “triple entry” because the sender, receiver, and a third party all have a copy of the receipt, and any single copy provides sufficient proof of the transaction. Grigg explains how digital signatures can be used to sign the receipts so that they cannot be forged or repudiated. If Alice wants to send money to Bob, Alice creates a message that assigns a specified quantity of her money to Bob and signs the message with her private key, much like a paper check. This signed message is the receipt of the transaction and anyone can use this receipt to confirm that Alice made the payment.
The third party in Grigg’s triple entry accounting system was a trusted authority that would issue money and verify that the sender had enough funds to make the payment. Bitcoin does not have any trusted authorities, so it must perform these checks differently.
Publicly Announced Transactions
Some of the concepts Bitcoin uses to maintain a decentralized ledger and making use of Airbitz are based on a digital currency proposal that Wei Dai presented in 1998 called “B-Money”. In Dai’s proposed system, every participant maintains a log of how much money belongs to each pseudonym and money is transferred by publicly announcing a digitally signed message. Both of these concepts are used in Bitcoin. Furthermore, Bitcoin’s method of creating new money based on an investment of computation time is similar to Dai’s, where solving a difficult computational problem constitutes a proof of work that is rewarded with new money.
Proof of Work
Both Dai and Nakamoto cite Adam Back’s 1997 Hashcash protocol, which is a proof of work scheme originally designed to fight email spam. When using Hashcash, the sender’s email client solves a difficult computational problem every time it sends an email. The receiver considers this evidence that the sender is not a spammer because it would be expensive for spammers to solve the problem for every email sent. Conceptually, this is similar to charging a small fee for every email sent, but instead of money, the fee is just a bit of computer time.
The idea of using a proof of work to fight email spam was originally published by Dwork and Naor in 1993. Hashcash differs in the proof of work problem it uses. In Hashcash, the computational problem is to find a value that has a hash starting with a specified number of zeroes. This is convenient because it is very fast to verify and easy to probabilistically estimate how much work it takes to solve the problem, because the only known method is to try random values until a solution is found. Bitcoin adopted this proof of work problem with slight modifications.
Proof of Work Chains
Bitcoin’s ledger also uses the concept of a chain of proofs of work, in which each proof of work depends on the results of previous proofs of work, creating an indisputable chronological ordering. This idea was introduced by Nick Szabos in his digital currency proposal called Bit Gold, which was released between 1998 and 2005. A proof of work chain provides additional security because each individual proof of work gets buried under the subsequent proofs of work. As the chain grows, it becomes more and more difficult to redo all the proofs of work.