際際滷

際際滷Share a Scribd company logo
Introduction to
Cryptographic Currencies
Jason Simeon Genge
Jason Simeon Genge
Leave while you can!
 I will NOT talk about:
 Politics
 Economics
 
 Coming up next:
 Algorithms
 Cryptography
Outline
 Part 0: a little history
 Part 1: TheoryCoin
 How to create coins
 How to transfer coins
 How to store coins
 Part 2: diff( , )
 Part 3: Problems and issues
crypto currency
The 1990s
David Chaum and anonymous ecash
The difference between
a bad electronic cash system
and well-developed digital cash
will determine whether
we will have a dictatorship
or a real democracy
(attributed to Chaum)
Anonymous payments
withdraw
withdraw
M or L?
Chaums anonymous e-cash
anonymous
secure (no double-spending)
only transfer (no creation/storage)
and bankrupted in 1999
The advent of Bitcoin
 2009: Bitcoin announced by Satoshi Nakamoto
 Pseudonym for person or group of person
 2009-2011: slow start
 2011-2013: Silk Road and Dread Pirate Roberts
 End 2013: Bitcoin price skyrockets
 and the world notices!
Outline
 Part 0: a little history
 Part 1: TheoryCoin
 How to create coins
 How to transfer coins
 How to store coins
 Part 2: diff( , )
 Part 3: Problems and issues
TheoryCoin:
How to create money
1. Everyone
tries to solve a puzzle
2. The first one to solve
the puzzle gets 1 TC
3. The solution of puzzle i
defines puzzle i+1
TheoryCoin:
How to create money
H
L  {0,1}* R  {0,1}*
T  {0,1}d
SolvePuzzle(L){
repeat{
R = my_name || i++
T = H(L,R)
}while(T  0d)
return R
}
The puzzle:
given L, find R
such that T=0d
(a random function)
* aka Proof-of-Work
TheoryCoin: (coins to ppl)
How to create money
H
x0 = Start! x1 =(P1, i1)
000000
x2=(P2, i1)
H
000000
x3=(P3, i3)
H
000000
P3
P1
P2
x1
x1
x2 x2
x3
x3
* aka the blockchain
x7=(P3, i7)x6=(P3, i6)
x5=(P5, i5)
x0=Start! x1=(P1, i1) x2=(P2, i2)
x3=(P3, i3)
x4=(P4, i4)
TheoryCoin:
How to create money
* aka the 51% attack
TheoryCoin:
How to create money
Recap:
Solve the next puzzle  get a coin
 To solve puzzle i find xi s.t H(xi-1,xi)=0d
 The longest chain defines next puzzle
 The name in block xi gets coin i.
Outline
 Part 0: a little history
 Part 1: TheoryCoin
 How to create coins
 How to transfer coins
 How to store coins
 Part 2: diff( , )
 Part 3: Problems and issues
TheoryCoin:
How to transfer money
(Digital) Signatures
 Only you can sign
 Everyone can verify
 You cannot deny
Give coin 3 to Jesper
Claudio
TheoryCoin:
How to transfer money
Gen
Sign Verify
message message, signature accept/reject
secret key public key
Your usernameYour pin code
P3 P1
m=P3 gives coin 3 to P1
s=Sig(sk3,m)
If
Ver(pk3,m,s) = accept
and
P3 owns coin 3
then
return accept
TheoryCoin:
How to transfer money
P3
P1
P2
accept
accept
TheoryCoin:
How to transfer money
m1=P3 gives coin 3 to P1
s1=Sig(sk3,m1)
m2=P3 gives coin 3 to P2
s2=Sig(sk3,m2)
* aka double spending
P3
P1
TheoryCoin:
How to transfer money
...
(m1,s1)
...
(m2,s2)
...
(m4,s4)
m1 = P3 gives coin 3 to P1
s1 = Sig(sk3,m1)
m2 = P3 gives coin 3 to P2
s2 = Sig(sk3,m2)
write
(m1,s1)
write
(m2,s2)
read
(m1,s1)
P2
read
(m2,s2)
accept
reject
P4
m4 = P1 gives coin 3 to P4
s4 = Sig(sk1,m4)
write
(m4,s4)
read
(m4,s4)
Outline
 Part 0: a little history
 Part 1: TheoryCoin
 How to create coins
 How to transfer coins
 How to store coins
 Part 2: diff( , )
 Part 3: Problems and issues
TheoryCoin:
How to store money
Main Idea:
Record transfers in the blockchain
x4=(P4, (m,s), i4)
P1
TheoryCoin:
How to store money
P3
P2 P4
(m,s)
(m,s)
(m,s)
SolvePuzzle(L,...){
repeat{
R = my_name||(m,s)|| i++
T = H(L,R)
}while(T  0d)
return R
}
Outline
 Part 0: a little history
 Part 1: TheoryCoin
 How to create coins
 How to transfer coins
 How to store coins
 Part 2: diff( , )
 Part 3: Problems and issues
diff( , )
How is money created in Bitcoin?
 New block every ~10 mins
 d adjusted every ~2000 blocks
 H = 2-SHA2
 Initial reward: 50 BTC
 Halved every ~4 years (now 25 BTC)
diff( , )
How is money transferred in Bitcoin?
P1 gives 14 to P1
Transaction fee 1
Example: P1 wants to give 60 to P2
... gives 50 to P1
 gives 25 to P1
P1 gives 60 to P2
diff( , )
How is money stored in Bitcoin?
 Transaction in orphaned blocks are invalid
 Wait 6 blocks (~1 hour) before accepting transaction.
 Checkpoints to prevent complete history rollback.
 All transaction are stored in the blockchain
 (Currently ~14 GB)
Outline
 Part 0: a little history
 Part 1: TheoryCoin
 How to create coins
 How to transfer coins
 How to store coins
 Part 2: diff( , )
 Part 3: Problems and issues
Anonymity?
 Problem:
 Every transaction ever made is recorded forever
 Solution?
 Use new identity for each transaction
 But:
 Heuristics allow to cluster identities
 Anonymous alternatives:
 Zerocoin, Zerocash
Users?
(and their devices)
 Unfortunate property of DSA
 This address
1HKywxiL4JziqXrzLKhmB6a74ma6kxbSDj
probably stole ~250000kr this way
(due to bug in Android Java based random generator)
Extractor
Sig(sk,m1,r)
Sig(sk,m2,r)
sk
Programmable money?
Bitcoin uses a scripting system for transactions. Forth-like,
Script is simple, stack-based, and processed from left to right. It
is purposefully not Turing-complete, with no loops.
E.g., P1 gives 1 BTC to P2 if at least
2 out of (P1,P2,P3) sign this transaction
Functionality: more than money?
Security: malware payments?
Mining pools
 Solving puzzles (mining) is hard!
 Miners join pools and share work/reward
 How to optimally split work?
 Mechanism design?
 rational miner?
 how to allocate reward?
A final word
Distributed currencies:
for the good guys or the bad guys?
 Crime is bad! Tax evasion is bad!
 But sometimes governments are bad too!
Thanks! Questions?
https://plus.google.com/105029256258349625595
https://twitter.com/jason_genge
https://www.pinterest.ca/jasonsimeong/
https://www.pinterest.ca/jasonsimeong/jason-simeon-genge/
issuu.com/jasonsimeongenge1
https://vimeo.com/241661520
https://vimeo.com/user73876424
https://issuu.com/jasonsimeongenge1/docs/jason_20simeon_20genge
/jasonsimeongenge1
/jasonsimeongenge1/jason-genge-a-bitcoin-miner
https://www.pinterest.ca/pin/779967229187717900/
https://jasonsimeongenge.deviantart.com/
https://www.behance.net/valdzmenny8a42
https://www.behance.net/gallery/58569607/Jason-Simeon-Genge-A-Bitcoin-Lover
https://www.meetup.com/members/240668899/
https://www.plurk.com/jasonsimeongenge
http://www.calameo.com/accounts/5371933
http://en.calameo.com/read/00537193306bb704d2bb9
https://e27.co/jason-simeon-genge/
https://www.wattpad.com/492315531-jason-simeon-genge-%0D-what-is-ehereum-jason-simeon
/jasonsimeongenge1/jason-genge-a-bitcoin-lover-what-is-ethereum/edit?src=/slideshow/jason-simeon-genge-theory-of-coin/83997646/slideview&type=privacy
http://en.calameo.com/read/00537193392ba7c594475
https://issuu.com/jasonsimeongenge1/docs/jason_20genge_20-_20what_20is_20eth
http://jasonsimeongengebitcoin.blogspot.ca/2017/11/jason-genge-tether-claims-30-million-in.html
http://jasonsimeongengebitcoin.blogspot.ca/
Read More Jason Genge |
Jason Simeon Genge

More Related Content

Jason simeon genge theory of coin