bitcoin
DESCRIPTION
TRANSCRIPT
BitcoinPeer to peer Electronic cash, V1
Puneet Kumar
Why
doCommerce(mymoney, myFinancialInstitution)
assert(myFinancialInstitution.isTrustWorthy())
doCommerceFI(myMoney){
if(dispute) myMoney -= transactionCost; fiMoney ++;
bankerProfit++;
doCommercePost()
loseMoney; sulk;
What if
doCommerce(mymoney, you, useCrypto= true)
assert(preventDoubleSpending)
preventDoubleSpending()
createCryptoProof(timeStampServer)
How
Transactions
TimeStamp Server
Proof of Work
Network
Incentive
Reclaiming Disk space
Payment Verification
Combining and Splitting Value
Privacy
Calculation
PRINT MONEY
Transactions
I have an electronic coin. I want to give to you.
I will digitally sign the coin, with my private key.
Anyone can verify that its my signature, with my public key.
The digital signature will contain your public key; so everyone knows you received the coin.
Issue: What if I double spend.
Timestamp Server
Input: electronic coin, timestamp of previous transactions
Process: Hash the input, use currentTime.
Output: Publish the hash. This is proof that this coin existed at this time; (thisTime is after previous Timestamp)
Timestamp server create proof that this transaction took place at this time, in correct order.
Proof of Work
Find a nonce which when hashed, creates a hash staring with zero bits.
This takes CPU effort.
The Proof of Works’ form a chain. This chain is the fraud deterrent. To defraud, spend exponential CPU effort(dependent on chain length). Not worth it for long chains.
Network
Broadcast new transactions.
Each node collects transactions, in a box/block.
Creates Proof of Work. Publishes it.
Creates chain of proof of work. As long as most nodes know about longest chain of proofs, it must be the correct transaction history.
Incentive
Why should honest nodes participate
Block is started with a coin. Later, when this coin is in circulation, it creates chain of proofs.
If a node own coins, it better keep the system running with growing chain, and discouraging rogue nodes from taking over.
Reclaiming Disk Space
So many proofs. What about my disk space.
Practically, there should not be need to prune the block.
But it can be done. Note to self: Study Merkle tree
Payment verification
Verify the longest chain. How.
Combining and Splitting values!
Privacy
Don’t link public key to identity
Create multiple public keys
Calculations
Binomial Random Walk
Gamblers Ruin problem
Exponentially difficult
references
Bitcoin: A Peer-to-Peer Electronic Cash System, Satoshi Nakamoto bitcoin.pdf
Hashcash