On Github bcncybersecurity / bitcoin-slides
To answer this we must talk about bitcoin and cryptography in general.
Public key, or asymmetric, cryptography is a cryptographic system that uses two different keys to encrypt and decrypt messages.
Public key cryptography is based on the mathematical notion of a one-way function. A one-way function is a function that is easy to compute on every input, but hard to invert given the image of a random input.
The existence of one-way function is linked to the P vs NP problem.
The P vs NP problem asks whether every problem whose solution can be quickly verified by a computer can also be quickly solved by a computer.
Typical examples of P vs NP are Public key encryption and digiltal signatures.
A message is encrypted with a recipient's public key. The message cannot be decrypted by anyone who does not possess the matching private key, who is thus presumed to be the owner of that key and the person associated with the public key.
A message is signed with the sender's private key and can be verified by anyone who has access to the sender's public key. This verification proves that the sender had access to the private key, and therefore is likely to be the person associated with the public key. This also ensures that the message has not been tampered with, as any manipulation of the message will result in changes to the encoded message digest, which otherwise remains unchanged between the sender and receiver.
Bitcoin is a collection of concepts and technologies creating a digital money ecosystem.
Bitcoin was invented in 2008 and introduced with the paper: "Bitcoin: A Peer-to-Peer Electronic Cash System" written under the alias of Satoshi Nakamoto.
Within bitcoin several prior inventions are combined (b-money and HashCash).
Bitcoin is completely decentralized and does not rely on a central authority for currency issuance or settlement and validation of transactions.
* From: Mastering Bitcoin - O'Reilly
In bitcoin users have wallets with public/private keys.
Users make transactions that are propagated across the network.
Miners produce (through competitive computation) the consensus blockchain, the authoritative ledger of all transactions.
Alice wants to buy a cup of coffee at Bob's cafe.
To be able to make a first transactions Alice must have exchanged cash (or real-world currency) for Bitcoins.
Bitcoin transactions work in a chain.
Each transaction contains:
The bitcoin network is p2p. I.e.: Alice doesn't have to send the transaction to Bob directly.
The transaction propagates across the network, reaching a large percentage of the nodes.
If Bob’s bitcoin wallet application is directly connected to Alice’s wallet application, Bob might be the first node to receive the transaction.
In the blockchain each transaction ever sent or received in the bitcoin network is stored.
A transaction is verified when it is trusted and inserted into a block.
Miners have to produce a hash using the hash of the block before and some other data.
Miners compete with each others to solve computationally difficult problems used to produce the hash. The first one to solve the problems can clame the transaction fee.
Bitcoin wasn't designed for being anonymous. Although anonymous bitcoin protocols and wallet apps have been developed.
Addresses in bitcoin transactions are public. Although the idea is that addresses should be used max twice.
The blockchain can be analysed to link transactions to real people: i.e. identities.
System for anonymous payments on bitcoin have been developen but aren't always accepted.
Transactions contain information that can be used to profile or trace real life identities.
A bitcoin address per se doesn't say anything about you, but your transaction history does.
“One must acknowledge with cryptography no amount of violence will ever solve a math problem.” - Jacob Appelbaum, Cypherpunks: Freedom and the Future of the Internet