This document summarizes the key building blocks of Bitcoin's blockchain, including cryptographic hash functions, hash pointers, the Merkle tree, digital signatures, and transaction scripts. It discusses how hash functions are used to link blocks together in the blockchain and ensure data integrity. Transaction scripts allow for advanced applications like multisignature escrow, green addresses for third-party exchanges, and efficient micropayments. The challenges of bootstrapping consensus, 51% attacks, and changing the blockchain protocol through hard or soft forks are also outlined.
5. cryptographichashfunctions
● collision resistance
○ infeasible to find x,y with same hash output
○ what is guaranteed way of finding a collision?
○ what’s the time-cost?
● hiding
○ given hash it’s infeasible to find the message
○ example: coin flip?
○ with the ‘random’ nonce
● puzzle-friendliness
○ given a set of hashes it’s infeasible to find the message
6. CryptoHashApplications
● message digests
● commitments
○ com = commit(msg, key)
○ ver = verify(com, msg, key)
● search puzzle
○ for a set Y find x that H(x || r) belongs to Y
23. Bob
TRANSACTION B
<lock time>
1 BTC
from TRANS A
to Alice
Micropayments
Alice
2a
sign
TRANSACTION k
0.0001 BTC
from TRANS A
to Bob
TRANSACTION 2
0.0002 BTC
from TRANS A
to Bob
TRANSACTION 3
0.0003 BTC
from TRANS A
to Bob
TRANSACTION A
1 BTC
from Alice
to MULTISIG
(2 out of 2)
1
sign
sign
2b
3
sign
sign
sign
4 5
6