Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
Class 26:
Cryptocurrency
Jeopardy
Cryptocurrency Cabal
cs4501 Fall 2015
David Evans and Samee Zahur
University of Virginia
Discretionary Final Exam
• Everyone should have received an email from me
with guidance
• If it included a tentative final...
2
Teams
3
Alishan Hassan
Cody Robertson
Joseph Tobin
Ziqi Liu
A.J. Varshneya
Jacob Freck
Peter Leng
Sugat Poudel
Morgan Lock...
4
Alishan Hassan
Cody Robertson
Joseph Tobin
Ziqi Liu
A.J. Varshneya
Jacob Freck
Peter Leng
Sugat Poudel
Morgan Locks
Vign...
5
MOSTLY
ABOUT
SATOSHI
HASHING
UNLOCKING
SCRIPTS
CRYPTO
CURVES
RANDOM ALTCOINS
100 nBTC
200 nBTC
300 nBTC
400 nBTC
100 nBT...
6
7
According to
Newsweek, this
is Satoshi
Nakamoto’s real
name
8
Return
9
First public announcement of bitcoin was on:
(A) July 4, 2008
(B) Halloween, 2008
(C) Christmas, 2008
(D) Jan 1, 2009
(E...
10
11
Return
Satoshi 300
12
This is what it means for a
transaction to have two
confirmations.
13
14
Return
Satoshi 400
15
Best Answer Question
16
Order these by value from least to most
valuable:
(A) 1B Satoshis
(B) 1 nano-Apple
(C) 1 Gallon of Oil (Light Crude)
(D...
D: Gold = $1052/troy ounce, 1 kg = 32.15 troy ounces ~ $32,000
E: 1 TJ ~ $20,000
A: 100M Satoshis = 1 BTC, 1B Satoshis = 1...
D: Gold = $1052/troy ounce, 1 kg = 32.15 troy ounces ~ $32,000
E: 1 TJ ~ $20,000
A: 100M Satoshis = 1 BTC, 1B Satoshis = 1...
19
Return
Hashing 100
20
A function H has this
property if given y it is hard
to find an x such that
H(x) = y
21
Return
Hashing 200
22
The number of SHA-256 hash
computations expected to find
an x such that
SHA-256(SHA-256(x)) = 0
23
24
Return
Hashing 300
25
Topic: Merkle Trees
Hashing 300
26
Number of
hashes needed
to verify a
transaction in
Block #385972 Assume you already have the block header
a...
27
28
Return
Hashing 400
29
All the places where
cryptographic hash functions
are used in bitcoin.
All teams answer: best answer(s) win.
Hashing in Bitcoin
• Producing the public bitcoin address by hashing the public key.
• Producing a transaction digest for ...
31
Return
Scripts 100
32
The output of
this script:
OP_DATA 3
OP_DATA 2
OP_DATA 1
OP_DUP
OP_ADD
OP_EQUALVERIFY
33
Return
Scripts 200
34
A script that
unlocks this one:
OP_DUP
OP_HASH160
OP_DATA20 adr
OP_EQUALVERIFY
OP_CHECKSIGYou may use pub_a...
35
36
Return
Scripts 300
37
Opcode implemented by this
code (from bitcoin core).
[Code on next slide – don’t need to name opcode, just ...
38
39
40
41
Return
Scripts 400
42
In Satoshi’s original script
implementation, this script
unlocks any value.
Scripts 400
43
In Satoshi’s original script
implementation, this script
unlocks any value.
case OP_RETURN: { pc = pend; } ...
44
45
Return
Crypto 100
46
What Bob should send to establish
shared secret with Alice:
𝑔 𝑎
mod 𝑝
Picks secret a
Picks secret b
Public v...
Crypto 100
47
What Bob should send to establish
shared secret with Alice:
𝑔 𝑎
mod 𝑝
Picks secret a
Picks secret b
Public v...
48
Return
Crypto 200
49
A proof that these graphs are
or are not isomorphic.
Graphs on next slide – first team with (good) correct a...
50
A
B
C
D
E
T U XV W
51
52
Return
Crypto 300
53
A group is a set of elements
and an operator that satisfy
these four properties.
All teams answer.
54
Closure: a * b is also a group element.
Associativity: for all a, b, c: (ab)c = a(bc).
Identity element: there exists a...
55
Closure: a * b is also a group element.
Associativity: for all a, b, c: (ab)c = a(bc).
Identity element: there exists a...
56
Return
Crypto 400
57
Message Alice should send to the public
ledger to transfer X to Bob.
Alice owns coin X and has public/privat...
58
59
msg = “I, KUA (Alice), transfer
coin X to KUB (Bob)”
Send to ledger the message signed
by Alice: (msg, EKRA(msg))
60
Return
Random 100
61
This is a random sequence
(choices on next slide).
[All teams may answer]
62
010110000111101100
001110111010000000
011101100000001110
110110010111110011
011110010000011100
000011101110000000
11101...
Defining
Randomness
63
Андре́й Колмого́ров
Andrey Kolmogorov
(1903-1987)
For a sequence s, its Kolmogorov
Complexity: K(s)...
Kolmogorov Complexities
s = 000000000000000…
64
Kolmogorov Complexities
s = 000000000000000…
description = “N repeated 0s”
K(s) = log |s| + C1 < |s| + C
65
Definitely NOT...
Kolmogorov Complexities
t = 010011000111000011110000011111…
66
Kolmogorov Complexities
s = 010011000111000011110000011111…
67
description =
“s = “”;
for (i = 1; i < N; i++) {
for (j = 0...
68
Return
Random 200
69
The smallest natural number
that cannot be described in
eleven words.
70
Return
Random 300
71
Given a sequence s, it is this
hard to compute its
Kolomorgov complexity K(s).
72
73
How many times does one need to write “verifiably random” to be convincing?
Bonus: What specification is this excerpt f...
74
Return
Random 400
75
Dual-EC PRNG
September 2013
76
77
Dual-EC PRNG
78
sisi +1= φ(si ×P)
s0  randomness
Update Internal State
P and Q are random
points on P-256.
Generate Outpu...
79
80
81
sisi +1= φ(si ×P)
s0
16 least significant
bits of ri’s x-coord
ri = φ(si ×Q)
oi
Bonus 200: given oi, how much work to f...
82
sisi +1= φ(si ×P)
s0
16 least significant
bits of ri’s x-coord
ri = φ(si ×Q)
oi
Challenge: given oi, can you find si?
r...
83
“Rump session” talk at CRYPTO 2007:
Possible Back Door
P and Q are points on the curve
P is a generator of the curve
All points on curve are kP for some k
Cur...
85
sisi +1= φ(si ×P)
s0
16 least significant
bits of ri’s x-coord
ri = φ(si ×Q)
oi
Challenge [400]: given oi and backdoor ...
86
sisi +1= φ(si ×P)
s0
16 least significant
bits of ri’s x-coord
ri = φ(si ×Q)
oi
P = eQ
Hint:
Compute ri using brute for...
87
2013 Intelligence Budget Request
Snowden Leak (5 September 2013)
2013 Intelligence Budget Request ($250M)
88
89
90
sisi +1= φ(si ×P)
s0
16 least significant
bits of ri’s x-coord
ri = φ(si ×Q)
oi
P = eQ
A = (x, y) = ri ×Q
φ(e × A) = φ(...
91
Return
Altcoins 100
92
The Distinguished Alumni
Speaker this Friday (3:30pm
in Rice Auditorium)
93
Adrienne Porter Felt
(UVa BSCS 2008; UCB PhD; Google)
MAKING SECURITY USABLE (FOR A
BILLION USERS)
How do you know if a...
94
Return
Altcoins 200
95
An open source
peer-to-peer digital
currency, favored
by Shiba Inus
worldwide.
96
97
Return
Altcoins 300
98
According to litecoin.org, “Litecoin
features faster transaction confirmation
times and improved storage e...
99
Bonus: what are the
advantages of Litecoin’s
scrypt-based proof-of-work?
Best answer wins
100
Return
Altcoins 400
101
The Replace-by-Fee patch changes the
way nodes include transactions from
“first-seen” (if there are confl...
102
103
Return
Final Jeopardy
104
Topic: Block Headers
Final Jeopardy
105
The contents of a bitcoin
block header.
Must get 3 most important things to avoid loss.
Best, most deta...
106
107
Nächste SlideShare
Wird geladen in …5
×

Cryptocurrency Jeopardy!

11.134 Aufrufe

Veröffentlicht am

http://www.bitcoin-class.org
Cryptocurrency Cabal

University of Virginia
Fall 2015

Veröffentlicht in: Unterhaltung & Humor
  • I think Mike Cruickshank's new Profit Maximiser service is going to be one of the big hits and I can say hand on heart, if you follow the instructions, and just get involved, you will make a lot of money over the coming weeks, months and years. ♥♥♥ http://t.cn/A6hP86vM
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier
  • Dating for everyone is here: ♥♥♥ http://bit.ly/36cXjBY ♥♥♥
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier
  • Dating direct: ❤❤❤ http://bit.ly/36cXjBY ❤❤❤
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier
  • Ordinary Guy Retires After Winning The Lotto 7 Times ♣♣♣ http://t.cn/Airfq84N
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier
  • (Unlimited)....ACCESS WEBSITE Over for All Ebooks ................ accessibility Books Library allowing access to top content, including thousands of title from favorite author, plus the ability to read or download a huge selection of books for your pc or smartphone within minutes ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M }
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier

Cryptocurrency Jeopardy!

  1. 1. Class 26: Cryptocurrency Jeopardy Cryptocurrency Cabal cs4501 Fall 2015 David Evans and Samee Zahur University of Virginia
  2. 2. Discretionary Final Exam • Everyone should have received an email from me with guidance • If it included a tentative final exam time, you need to confirm this. • Final exam: (scheduled for 20 minutes) – Explain bitcoin to a [VC, congress critter, CS major] – Answer a few substantive questions (not like the mostly “trivia” jeopardy questions today) 1
  3. 3. 2
  4. 4. Teams 3 Alishan Hassan Cody Robertson Joseph Tobin Ziqi Liu A.J. Varshneya Jacob Freck Peter Leng Sugat Poudel Morgan Locks Vignesh Kuppusamy Alec Grieser Acacia Dai Collin Berman Eashan Kaw Fangyang Cui Luke Gessler Quentin Moore Reid Bixler Kevin Zhao Sam Prestwood Carter Hall Cyrus Malekpour Dean Makovsky Elizabeth Kukla Gardner Fiveash Kienan Adams Muthu Chidambaram Michael Presicce Ryan Anderson Xhama Vyas 500 point bonus: How were teams formed? (Hint: based on answers to one of the registration questions)
  5. 5. 4 Alishan Hassan Cody Robertson Joseph Tobin Ziqi Liu A.J. Varshneya Jacob Freck Peter Leng Sugat Poudel Morgan Locks Vignesh Kuppusamy Alec Grieser Acacia Dai Collin Berman Eashan Kaw Fangyang Cui Luke Gessler Quentin Moore Reid Bixler Kevin Zhao Sam Prestwood Carter Hall Cyrus Malekpour Dean Makovsky Elizabeth Kukla Gardner Fiveash Kienan Adams Muthu Chidambaram Michael Presicce Ryan Anderson Xhama Vyas Team Semicolon C/C++/C#/Java Team Monty Python Team Other Ruby, JavaScript, None, Haskell, Rust, Go
  6. 6. 5 MOSTLY ABOUT SATOSHI HASHING UNLOCKING SCRIPTS CRYPTO CURVES RANDOM ALTCOINS 100 nBTC 200 nBTC 300 nBTC 400 nBTC 100 nBTC 200 nBTC 300 nBTC 400 nBTC 100 nBTC 200 nBTC 300 nBTC 400 nBTC 100 nBTC 200 nBTC 300 nBTC 400 nBTC 100 nBTC 200 nBTC 300 nBTC 400 nBTC 100 nBTC 200 nBTC 300 nBTC 400 nBTC Final Jeopardy
  7. 7. 6
  8. 8. 7 According to Newsweek, this is Satoshi Nakamoto’s real name
  9. 9. 8 Return
  10. 10. 9 First public announcement of bitcoin was on: (A) July 4, 2008 (B) Halloween, 2008 (C) Christmas, 2008 (D) Jan 1, 2009 (E) None of These
  11. 11. 10
  12. 12. 11 Return
  13. 13. Satoshi 300 12 This is what it means for a transaction to have two confirmations.
  14. 14. 13
  15. 15. 14 Return
  16. 16. Satoshi 400 15 Best Answer Question
  17. 17. 16 Order these by value from least to most valuable: (A) 1B Satoshis (B) 1 nano-Apple (C) 1 Gallon of Oil (Light Crude) (D) 1 Kilogram of Gold (E) 1 TJoule (in Virginia)
  18. 18. D: Gold = $1052/troy ounce, 1 kg = 32.15 troy ounces ~ $32,000 E: 1 TJ ~ $20,000 A: 100M Satoshis = 1 BTC, 1B Satoshis = 10 BTC ~ $3750 B: 1 nApple = Apple’s market cap = $658B = $658 C: Oil: $42/barrel = 42 gallons = $1 17 1 kw hour = $0.07 1 Joule = 1 w per second 1 kw hour = 1000 J * 3600s = 3.6MJ TJ = M*MJ = M * $0.07/3.6 M = ~$20K Bonus: How much would it cost to buy 1TJ of oil?
  19. 19. D: Gold = $1052/troy ounce, 1 kg = 32.15 troy ounces ~ $32,000 E: 1 TJ ~ $20,000 A: 100M Satoshis = 1 BTC, 1B Satoshis = 10 BTC ~ $3750 B: 1 nApple = Apple’s market cap = $658B = $658 C: Oil: $42/barrel = 42 gallons = $1 18 1 gallon of oil ~ 130MJ of energy $1 * 1T/130M = $7500 Recall our estimate that bitcoin network uses ~200 MJ/s (or 120 GJ/block)
  20. 20. 19 Return
  21. 21. Hashing 100 20 A function H has this property if given y it is hard to find an x such that H(x) = y
  22. 22. 21 Return
  23. 23. Hashing 200 22 The number of SHA-256 hash computations expected to find an x such that SHA-256(SHA-256(x)) = 0
  24. 24. 23
  25. 25. 24 Return
  26. 26. Hashing 300 25 Topic: Merkle Trees
  27. 27. Hashing 300 26 Number of hashes needed to verify a transaction in Block #385972 Assume you already have the block header and the transaction you want to verify.
  28. 28. 27
  29. 29. 28 Return
  30. 30. Hashing 400 29 All the places where cryptographic hash functions are used in bitcoin. All teams answer: best answer(s) win.
  31. 31. Hashing in Bitcoin • Producing the public bitcoin address by hashing the public key. • Producing a transaction digest for use as the input in signing a transaction. • Producing the Merkle tree root for authenticating the transactions in a block (using hashes all the way up the tree). • Producing the hash of the previous block to use in the block header. • Proof-of-work: double hash of the block (with nonces) to find a block that satisfies the difficulty needed in mining. 30
  32. 32. 31 Return
  33. 33. Scripts 100 32 The output of this script: OP_DATA 3 OP_DATA 2 OP_DATA 1 OP_DUP OP_ADD OP_EQUALVERIFY
  34. 34. 33 Return
  35. 35. Scripts 200 34 A script that unlocks this one: OP_DUP OP_HASH160 OP_DATA20 adr OP_EQUALVERIFY OP_CHECKSIGYou may use pub_adr and priv_adr (the public and private keys corresponding to adr in your answer), and trans (the transaction digest for this transaction). All correct answers win.
  36. 36. 35
  37. 37. 36 Return
  38. 38. Scripts 300 37 Opcode implemented by this code (from bitcoin core). [Code on next slide – don’t need to name opcode, just explain operation.)
  39. 39. 38
  40. 40. 39
  41. 41. 40
  42. 42. 41 Return
  43. 43. Scripts 400 42 In Satoshi’s original script implementation, this script unlocks any value.
  44. 44. Scripts 400 43 In Satoshi’s original script implementation, this script unlocks any value. case OP_RETURN: { pc = pend; } break;
  45. 45. 44
  46. 46. 45 Return
  47. 47. Crypto 100 46 What Bob should send to establish shared secret with Alice: 𝑔 𝑎 mod 𝑝 Picks secret a Picks secret b Public values: 𝑔, 𝑝, 𝑔 𝑎, 𝑔 𝑏
  48. 48. Crypto 100 47 What Bob should send to establish shared secret with Alice: 𝑔 𝑎 mod 𝑝 Picks secret a Picks secret b Public values: 𝑔, 𝑝, 𝑔 𝑎, 𝑔 𝑏
  49. 49. 48 Return
  50. 50. Crypto 200 49 A proof that these graphs are or are not isomorphic. Graphs on next slide – first team with (good) correct answer wins.
  51. 51. 50 A B C D E T U XV W
  52. 52. 51
  53. 53. 52 Return
  54. 54. Crypto 300 53 A group is a set of elements and an operator that satisfy these four properties. All teams answer.
  55. 55. 54 Closure: a * b is also a group element. Associativity: for all a, b, c: (ab)c = a(bc). Identity element: there exists an element e, such that for every element a: a * e = a = e * a Inverse: for every element a, there exists an element b such that a * b = e = b * a.
  56. 56. 55 Closure: a * b is also a group element. Associativity: for all a, b, c: (ab)c = a(bc). Identity element: there exists an element e, such that for every element a: a * e = a = e * a Inverse: for every element a, there exists an element b such that a * b = e = b * a. Bonus: to be useful for El-Gamal signatures, what other properties should it have?
  57. 57. 56 Return
  58. 58. Crypto 400 57 Message Alice should send to the public ledger to transfer X to Bob. Alice owns coin X and has public/private key pair (KUA, KRA); Bob has public/private key pair (KUB, KRB). All teams must answer.
  59. 59. 58
  60. 60. 59 msg = “I, KUA (Alice), transfer coin X to KUB (Bob)” Send to ledger the message signed by Alice: (msg, EKRA(msg))
  61. 61. 60 Return
  62. 62. Random 100 61 This is a random sequence (choices on next slide). [All teams may answer]
  63. 63. 62 010110000111101100 001110111010000000 011101100000001110 110110010111110011 011110010000011100 000011101110000000 111010100100010100 000101000010011101 110111111110011000 101101010000001001 010110100110101100 001110111010100010 011101100010001110 110110010110110011 011010010010011100 100011101110010000 111010100100010101 000101000010011101 110110101110011000 101101010100001001
  64. 64. Defining Randomness 63 Андре́й Колмого́ров Andrey Kolmogorov (1903-1987) For a sequence s, its Kolmogorov Complexity: K(s) = the length of the shortest description of s A sequence s is random, if K(s) = |s| + C (This is a somewhat informal version. A real definition would need to be more careful about stating this asymptotically.) “He was to probability theory what Euclid was to geometry.” (Peter Lax)
  65. 65. Kolmogorov Complexities s = 000000000000000… 64
  66. 66. Kolmogorov Complexities s = 000000000000000… description = “N repeated 0s” K(s) = log |s| + C1 < |s| + C 65 Definitely NOT RANDOM
  67. 67. Kolmogorov Complexities t = 010011000111000011110000011111… 66
  68. 68. Kolmogorov Complexities s = 010011000111000011110000011111… 67 description = “s = “”; for (i = 1; i < N; i++) { for (j = 0; j < i; j++) s += ‘0’; for (j = 0; j < i; j++) s += ‘1’; }” K(s) = log |s| + C1 < |s| + C Definitely NOT RANDOM
  69. 69. 68 Return
  70. 70. Random 200 69 The smallest natural number that cannot be described in eleven words.
  71. 71. 70 Return
  72. 72. Random 300 71 Given a sequence s, it is this hard to compute its Kolomorgov complexity K(s).
  73. 73. 72
  74. 74. 73 How many times does one need to write “verifiably random” to be convincing? Bonus: What specification is this excerpt from?
  75. 75. 74 Return
  76. 76. Random 400 75 Dual-EC PRNG
  77. 77. September 2013 76
  78. 78. 77
  79. 79. Dual-EC PRNG 78 sisi +1= φ(si ×P) s0  randomness Update Internal State P and Q are random points on P-256. Generate Output Bits ri = φ(si ×Q) 16 least significant bits of ri’s x-coordinate
  80. 80. 79
  81. 81. 80
  82. 82. 81 sisi +1= φ(si ×P) s0 16 least significant bits of ri’s x-coord ri = φ(si ×Q) oi Bonus 200: given oi, how much work to find ri? ri = (xi, yi) = (16 unknown bits | oi, yi) Points on the curve: y2 = x3 – 3x + b (mod p)
  83. 83. 82 sisi +1= φ(si ×P) s0 16 least significant bits of ri’s x-coord ri = φ(si ×Q) oi Challenge: given oi, can you find si? ri = (xi, yi) = (16 unknown bits | oi, yi) Points on the curve: y2 = x3 – 3x + b (mod p) foreach u in [0, 216]: g = u | oi z = g3 – 3g + b (mod p) if z1/2 mod p exists, on the curve
  84. 84. 83 “Rump session” talk at CRYPTO 2007:
  85. 85. Possible Back Door P and Q are points on the curve P is a generator of the curve All points on curve are kP for some k Curve is prime order: P = eQ for some e 84 Challenge: given oi, can you find si?
  86. 86. 85 sisi +1= φ(si ×P) s0 16 least significant bits of ri’s x-coord ri = φ(si ×Q) oi Challenge [400]: given oi and backdoor e, can you find si + 1? P = eQ
  87. 87. 86 sisi +1= φ(si ×P) s0 16 least significant bits of ri’s x-coord ri = φ(si ×Q) oi P = eQ Hint: Compute ri using brute force 16-bits from oi Compute: A = (x, y) = ri ×Q
  88. 88. 87 2013 Intelligence Budget Request Snowden Leak (5 September 2013) 2013 Intelligence Budget Request ($250M)
  89. 89. 88
  90. 90. 89
  91. 91. 90 sisi +1= φ(si ×P) s0 16 least significant bits of ri’s x-coord ri = φ(si ×Q) oi P = eQ A = (x, y) = ri ×Q φ(e × A) = φ(e × si ×Q) = φ(si ×P) = si +1
  92. 92. 91 Return
  93. 93. Altcoins 100 92 The Distinguished Alumni Speaker this Friday (3:30pm in Rice Auditorium)
  94. 94. 93 Adrienne Porter Felt (UVa BSCS 2008; UCB PhD; Google) MAKING SECURITY USABLE (FOR A BILLION USERS) How do you know if a website is "safe"? The security community puts enormous effort into detecting malware, stopping the next Heartbleed, and sandboxing bad content. Google Chrome's usable security team sits at the front end of this work: we build the UI that tells end users what's going on with their privacy and security. Friday, 3:30pm in Rice 130
  95. 95. 94 Return
  96. 96. Altcoins 200 95 An open source peer-to-peer digital currency, favored by Shiba Inus worldwide.
  97. 97. 96
  98. 98. 97 Return
  99. 99. Altcoins 300 98 According to litecoin.org, “Litecoin features faster transaction confirmation times and improved storage efficiency than the leading math-based currency.” Reasons why this claim is bogus.
  100. 100. 99 Bonus: what are the advantages of Litecoin’s scrypt-based proof-of-work? Best answer wins
  101. 101. 100 Return
  102. 102. Altcoins 400 101 The Replace-by-Fee patch changes the way nodes include transactions from “first-seen” (if there are conflicting transactions, take the first one) to “highest-fee”. Explain how this makes double-spend attacks easier or harder.
  103. 103. 102
  104. 104. 103 Return
  105. 105. Final Jeopardy 104 Topic: Block Headers
  106. 106. Final Jeopardy 105 The contents of a bitcoin block header. Must get 3 most important things to avoid loss. Best, most detailed and correct answer wins.
  107. 107. 106
  108. 108. 107

×