5. Size of Bitcoin
4
$0
$2
$4
$6
$8
$10
$12
$14
$16
$18
$20
Apple's Profits, last 3 months Bitcoin Market Cap
$0
$2,000
$4,000
$6,000
$8,000
$10,000
$12,000
$14,000
$16,000
$18,000
$20,000
Apple's Profits, last
3 months
Bitcoin Market Cap Apple's Market Cap US National Debt
US National Debt:
$18.1 T
6. Using Asymmetric Crypto: Signatures
5
E D
Verified
Message
Signed Message
Message
Insecure Channel
KUB
KRB
Bob
Generates key pair: KUB, KRB
Publishes KUB
Anyone
Get KUB from
trusted provider
7. Signing Long Messages
6
Alice signs m1 = { âI give coin x = KUA, t to address KUB.â}
with KRA.
Bob signs m2 = { âI give coin x = KUA, t, given to me by
m1to address KUC.â} with KRB.
Asymmetric crypto is expensive: what is the longest m we can sign with 256-bit ECDSA?
16. 15
Alice
High
Trust
Bank
{KUTB, KRTB}
M
M = âThe High Trust Bank owes the
holder of this message $100.â
EKRTB
[H(M)]
Bob
M EKRTB
[H(M)]
EKUA
[secret curry recipe]
M EKRTB
[H(M)]
17. 16
Alice
High
Trust
Bank
{KUTB, KRTB}
M
M = âThe High Trust Bank owes the
holder of this message $100.â
EKRTB
[H(M)]
Bob
M EKRTB
[H(M)]
EKUA
[secret curry recipe]
M EKRTB
[H(M)]
Both Alice and Bob can
attempt to redeem the
IOU (multiple times).
19. 18
Alice
{KUA, KRA}
Bearâs
Turns
Bank
{KUTB, KRTB}
M
M = âBill #51342: Bearâs Turns Bank owes
the holder of this message $100.â
EKRTB
[H(M)]
Add Unique Identifiers
Bill can only be
redeemed once.
Bank cannot tell if it is Alice
or Bob who cheated (first
redeemer wins?)
Not anonymous; tracable
22. Key Technology: Blind Signatures
21
Normal Signatures:
Alice selects message m
Sends m to bank
Bank returns signature:
SM = md mod n
Blind Signatures:
Alice selects message m
Bankâs public key: (e, n)
Bankâs private key: d
23. Key Technology: Blind Signatures
22
Normal Signatures:
Alice selects message m
SM = md mod n
Blind Signatures:
Alice selects message m
Picks random k in [1, n)
Sends bank t = mke mod n
Bank signs:
td = (mke mod n)d mod n
Alice computes md mod n:
= (mke)d mod n ďş mdked mod n
divide by k = md mod n
Bankâs public key: (e, n)
Bankâs private key: d
27. Cut-and-Choose
26
M1
k1
M2
k2
M256
k256
âŚ
Mi = âBill #[ri] : Bearâs Turns Bank owes the
holder of this message $100.â
Alice generate N different messages, and blinds each
with different k. Sends all of them to Bank.
Bank randomly selects N-1 of them, and challenges
Alice to unblind.
If all are okay, Bank (blindly) signs the one un-opened
message, and returns it to Alice.
28. Cut-and-Choose
27
M1
k1
M2
k2
M256
k256
âŚ
Alice generate N different messages, and blinds each
with different k. Sends all of them to Bank.
Bank randomly selects N-1 of them, and challenges
Alice to unblind.
If all are okay, Bank (blindly) signs the one un-opened
message, and returns it to Alice.
What is probability Alice can cheat without getting caught?
29. 28
Alice
{KUA, KRA}
Bearâs
Turns
Bank
{KUTB, KRTB}
M
M = âBill #51342: Bearâs Turns Bank owes
the holder of this message $100.â
EKRTB
[H(M)]
Add Unique Identifiers
Bill can only be
redeemed once.
Bank cannot tell if it is Alice
or Bob who cheated (first
redeemer wins?)
Not anonymous; tracable
30. 29
Alice
{KUA, KRA}
Bearâs
Turns
Bank
{KUTB, KRTB}
M
M = âBill #51342: Bearâs Turns Bank owes
the holder of this message $100.â
EKRTB
[H(M)]
Blinded Identifiers
Bill can only be
redeemed once.
Bank cannot tell who cheated
(first redeemer wins?)
Anonymous and untraceable
31. Catching Cheaters
30
M EKRTB
[H(M)] M EKRTB
[H(M)]
Bearâs
Turns
Bank
Spend a bill once: anonymity preserved
M EKRTB
[H(M)]
Spend a bill twice: identity revealed
32. Identity Strings
31
M1
k1
M2
k2
M256
k256
âŚ
I = âalice@alice.orgâ
Mi = âBill #[ri] : Bearâs Turns Bank owes the
holder of this message $100.â
+ identity strings:
I1 = (h(I1L), h(I1R))
...
In = (h(InL), h(InR))
where h is a one-way hash function and
each IiL ď IiR = I
33. Spending a Bill
32
M EKRTB
[H(M)]
I = âalice@alice.orgâ
Mi = âBill #[ri] : Bearâs Turns Bank owes the
holder of this message $100.â
+ identity strings:
I1 = (h(I1L), h(I1R))
...
In = (h(InL), h(InR))
where h is a one-way hash function and
each IiL ď IiR = I
Reveal request: LRRLRLRâŚ
(randomly select L or R for each pair)
I1L, I2R,I3R, I4L,⌠verifies hashes,
accepts bill
34. Charge
Next week: The Blockchain
Project 1 is due Friday
33
Upcoming office hours:
Me: Thursday 4-5pm (Rice 507)
Nick: Friday noon-2pm (HackCville)