Satoshi Nakamoto has remained anonymous since releasing Bitcoin. Records of his e-mails and forum posts exist from the end of 2008 through 2010. During that time, he worked with developers to release the source code and respond to the development topics. He also commented on relevant financial topics such as banking and fractional reserve lending.
As quickly as he appeared, he vanished without much trace. To this day, we don’thave much information on him. Many people have theorized about who Satoshi could be, yet nothing we have is conclusive. However mysterious his character may be, his legacy remains the Bitcoin whitepaper
The Bitcoin whitepaper was released to the public on October 31st, 2008, a couple of months before Bitcoin’s blockchain was launched. In the whitepaper, Satoshi explained how the blockchain could support a purely decentralized e-currency
without the need for a central authority. Satoshi writes: A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without the burdens of going through a financial institution.
The whitepaper mentions the issues with relying on the financial institutions astrusted third parties to process transactions. He particularly mentioned the costs of mediating reversible transactions which put merchants at risk of fraud, thus increasing transaction costs. The principal design goal was to ensure that whoever owns the keys controls the money. The common scenario involves a buyer who orders an item from a merchant using a credit card. As fraud against the merchant, the buyer can dispute the payment or claim an unauthorized payment. In Bitcoin, reversing the transaction is not possible.
Satoshi proposed a solution that relies on cryptographic proof. Transactions are signed and distributed on a public network. The design allows irreversible transactions sent directly between peers without centralized authority. He was able to deliver the solution, based on a new type of data structure called the blockchain.
The public ledger which records each Bitcoin transaction is built on a data structure called the blockchain. Transactions are grouped into blocks, and shared and validated by a network of nodes. Consensus on the network determines which blocks are accepted.
Previously, the double-spending problem was difficult to solve without a trusted third party. To be able to accept a transaction, the available balance had to be validated by a central authority, ensuring synchronization between all the transactions.
Implementing this in a decentralized way was difficult because of the complexitiesof sharing data between independent nodes. If two transactions were created at the same time, but with only enough funds available for the first transaction, the second must be rejected: the double spending problem. As we examine the blockchain, we will see how it solves the double spending problem in a resilient and decentralized way.
Keys, transactions, and blocks
To help you understand how Bitcoin transactions work, we’ll need to explain how some of its basic mechanisms work with various cryptographic algorithms. With the classic example of sending money between Alice and Bob, we will illustrate how the Bitcoin network confirms a transaction.
Creating a transaction
Let’s start with an example where Alice wants to send 4.0BTC to Bob. Alice has a bitcoin wallet with two addresses along with the corresponding private keys that control the two amounts 1.2BTC and 2.8BTC. To receive the money, Bob will generate a private key with a Bitcoin address:
– Alice has a wallet with two addresses. Bob has a wallet with one address. Alice wants to send 4.0BTC to Bob.
To transfer the bitcoin, we need to create a valid transaction and broadcast it to the Bitcoin network for confirmation. If confirmed by the network, the transferred amount will be available for spending by the receiver.
The transaction can record a transfer between two or more parties, using many inputs for the sources of bitcoin and many outputs for the receivers of bitcoin. Inputs and outputs are used to move the money between the addresses.
Each input must reference exactly one output from a previous transaction. Thus, on the blockchain, bitcoin is sent through scripts which hand-off the money between the addresses. As each address is controlled by a private key, the money is transferred between the owners of the private keys. There is sometimes the misconception that there is a single bitcoin that gets moved, when in fact there is no bitcoin, or fraction of a bitcoin, that is individually assigned to an address. Transfers of bitcoins are actually controlled by matching the inputs and outputs of the previous transactions. Thus, the full history of transactions funding the transaction are needed to validate a transfer.
The following Figure, illustrates how the transactions are used to connect the inputs and outputs to send bitcoin. From the example, Alice will send 4.0BTC by combining her two addresses as inputs. Written in the transaction, the amounts 1.2BTC and 2.8BTC are listed as inputs from Alice and sent to Bob as an output with the amount of 4.0BTC.
– Bitcoin transaction showing its two inputs and one output
Before broadcasting the transaction, we’ll need to prove to the network that Alice was the original sender of the transaction. By proving to the network that we have the private keys, the nodes validating the transaction can agree that the transaction originated from the owner.
For each public address listed in Alice’s wallet, there is a private key. With her private keys, she can sign the transaction using a digital signature. Verification of the signature is proof that she signed the transaction and that it hasn’t been modified since.
After the transaction has been confirmed by the network, Bob will have 4.0BTC available to spend as an input to a new transaction. The linkage continues as transactions continue connecting the inputs and the outputs. Imagining the chain of transactions, one can see how quickly the money is fanned out between new addresses.