3. What if
doCommerce(mymoney, you, useCrypto= true)
assert(preventDoubleSpending)
preventDoubleSpending()
createCryptoProof(timeStampServer)
4. How
Transactions
TimeStamp Server
Proof of Work
Network
Incentive
Reclaiming Disk
space
Payment
Verification
Combining and
Splitting Value
Privacy
Calculation
PRINT MONEY
5. 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.
6. 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.
7. 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.
8. 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.
9. 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.
10. 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