1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
|
---
id: Midterm Review - CS646
aliases:
- Guideline
tags: []
---
# Guideline
- ProctorU
- 10-15 questions
## History of money
- Historical definition of money
- A medium of exchange
- A store of value
- A unit of account
- Monetary system: is protocols for controlling the supply of money
- Money, payment system, monetary policy
- banking/financial system
- Commodity vs fiat money
- Commodity:
- Commodity money derives its value from the commodity out of which it is
made. Its value is determined by the value of the material from which it
is crafted.
- Pros: **Intrinsic Value**, **Limited Supply**
- Cons: **Weight and Portability**, **Storage and Security**, **Dependence
on Commodity Value**
- Fiat:
- Fiat money doesn’t have intrinsic value; instead, it derives its value
from a government decree. It is not backed by a physical commodity but is
established as money by government regulation or law.
- Pros: **Lightweight and Portable**, **Flexible Monetary Policy**, **Not
Tied to Commodity Fluctuations**
- Cons: **No Intrinsic Value**, **Inflation Risk**
- M1 vs M2
- M1: is the most liquid measure of the money supply and includes assets that
are directly suitable for transactions.
- **Components**:
1. **Currency in circulation**: This includes all coins and paper money
that are in the hands of the public, not held by the government, banks,
or other financial institutions.
2. **Demand deposits**: These are checking accounts or other types of bank
accounts from which deposited funds can be quickly withdrawn without
any restrictions.
3. **Traveler's checks**: Although their use has diminished significantly
with the rise of digital payment methods, traveler's checks are
traditionally a part of M1.
4. **Other checkable deposits (OCDs)**: This can include accounts like
Negotiable Order of Withdrawal (NOW) accounts.
- M2: includes all components of M1 plus near-money assets, which are
financial assets that can easily be converted into cash or are already in a
form that can be used for spending.
- **Components**:
1. **All components of M1**: Currency in circulation, demand deposits,
traveler's checks, and other checkable deposits.
2. **Savings accounts**: These accounts, including money market deposit
accounts, generally allow consumers to earn interest on their deposits,
but they might have some limitations on the number of transactions per
month.
3. **Time deposits**: This includes Certificates of Deposit (CDs) with a
value under $100,000. CDs are deposit accounts with a specific maturity
date and typically pay higher interest than regular savings accounts.
4. **Money market mutual funds (retail)**: These are funds that typically
invest in short-term debt securities and offer a return to their
holders. They're relatively liquid and can be quickly converted to
cash, though they are not as liquid as checking or savings accounts.
## Intro to Crypto
- 1-way hash (properties, attacks): is a mathematical algorithm that takes an
input (or 'message') and produces a fixed-size string of bytes, typically a
digest.
- Properties:
- One-wayness: Given an output, it is infeasible for any one to find an
input document which is hashed to that specific output
- Collision resistance: it is infeasible for any one to find two or more
input documents which are hashed to the same condensed output
- Type 1:
- An attacker has one input document in hands
- He attempts to find a different input document that is hashed to the
same output as is the first input
- Type 2:
- An attack is not given any specific input document
- His goal is find a pair of different input documents that are hashed
to the same output
- A good 1-way hash should be immune to both types of attacks
- Attacks:
- Brute force attack:
- Taking advantage of “birthday paradox”
- This is a long route, or the worst case scenario from an attacker’s
point of view, but the best case scenario from the designer’s point of
view
- Attacks using short cuts:
- Identifying inherent weaknesses of a 1-way hashing
- The nightmare scenario from a designer’s point of view
- Birthday Attack:
- Based on the birthday paradox, in a set of randomly generated hash
outputs, there's a good chance that two of them will be the same.
- The expected # of messages to be hashed before a coincidence/collision
occurs is $1.25 * 2^{t/2}$
- Public key encryption: is a cryptographic system that uses two keys: a public
key, which is shared openly, and a private key, which remains confidential to
the owner
- RSA Public key encryption
- Key Generation:
1. $n=p×q \quad n,p \; prime$
2. $\varphi(n)=(p−1)(q−1)$
3. $1<e<\varphi(n)$ and $gcd(e,\varphi(n))=1$
4. $e * d \equiv 1*mod(\varphi(n))$
5. The _public key_ is $(e,n)$, and the _private key_ is $(d,n)$.
- Encryption:
- $c = m^e \;(mod\,N)$
- Decryption:
- $m = c^d \;(mod\,N)$
- Digital signature
- DSS : A US government standard for digital signatures. It includes
specifications for the DSA (Digital Signature Algorithm).
- Public Key = $(y,p,q,g)$
- $p$ = a prime of at least 2048 bits.
- $q$ = a 160-bit prime divisor of $p - 1$.
- $g = h^{(p-1)/q}\;mod\;p$, where _h_ is any integer with $1 < h < p - 1$
s.t. $h^{(p-1)/q}\;mod\; p > 1$. That is _g_ has order $q\;mod\;p$.
- $y = g^x \;mod\;p$, where _x_ is an integer randomly selected from $[1,
q - 1]$
- Private Key = $x$
- Relationship: $y = g^x \;mod\;p$, $\;0 < x < q$
- Signing a document m
- Pick at random 𝒌 from $[1, q - 1]$.
- $r$ = $(g^k \;mod\;p)\;mod\;q$
- $s = (k^{-1} ∗ (HASH(m) + x ∗ r)) \;mod\;q$, where HASH is a 1-way hash
whose output is 160 bits
- Signature on $m$ = $(r,s)$
- Verification:
- Fetch Alice’s public key $(y,p,q,g)$ from the public key file
- $w = s^{-1} \;mod\;q$
- $a = HASH(m) * w \;mod \;q$
- $b = r*w \;mod\;q$
- $v = (g^a*y^b \;mod\;p)\;mod\;q$
- OK only if $v = r$
- **When 𝒑 is large (say ~700 digits), the best known algorithm for the
_Discrete-Logarithm Problem_ takes an _infeasible_ amount of time (the
problem is computationally infeasible).**
- ECDSA: A variant of the Digital Signature Algorithm (DSA) that uses elliptic
curve cryptography.
- ![[CleanShot 2023-10-05 at 10.03.23 1.png]]
- ![[CleanShot 2023-10-05 at 10.03.34 1.png]]
- ![[CleanShot 2023-10-05 at 10.03.45 1.png]]
- Schnorr:
- ![[CleanShot 2023-10-05 at 09.39.10.png]]
- ![[CleanShot 2023-10-05 at 09.40.10.png]]
- EC-Schnorr
- ![[CleanShot 2023-10-05 at 10.13.48.png]]
- EC-Schnorr is better than Schnorr
- Admit
- Security proofs
- Easy to implement threshold signature
- Blind signature
- Free of signature malleability
- Cleaner and slightly faster: Shorter Key and Signature Lengths
- Malleability of ECDSA
- ![[CleanShot 2023-10-05 at 10.12.51.png]]
- Multi-signature
- Schnorr multi-signature
- ![[CleanShot 2023-10-05 at 09.47.37.png]]
- ![[CleanShot 2023-10-05 at 09.47.51.png]]
- ![[CleanShot 2023-10-05 at 09.49.08.png]]
- ![[CleanShot 2023-10-05 at 09.50.45.png]]
- ![[CleanShot 2023-10-05 at 09.51.01.png]]
- ![[CleanShot 2023-10-05 at 09.56.20.png]]
- ![[CleanShot 2023-10-05 at 09.56.52.png]]
- ![[CleanShot 2023-10-05 at 09.57.08.png]]
- EC Schnorr multi-signature
- ![[CleanShot 2023-10-05 at 10.19.29.png]]
- ![[CleanShot 2023-10-05 at 10.19.34.png]]
- ![[CleanShot 2023-10-05 at 10.19.54.png]]
- ![[CleanShot 2023-10-05 at 10.20.04.png]]
- ![[CleanShot 2023-10-05 at 10.20.12.png]]
- ![[CleanShot 2023-10-05 at 10.22.39.png]]
- ![[CleanShot 2023-10-05 at 10.22.48.png]]
- ![[CleanShot 2023-10-05 at 10.22.54.png]]
## Chaumian cash
- 3-party model
- Bank: Withdraw (creation of cash) to Customer
- Customer: Payment to Shop
- Shop: Deposit (end of life of cash) to Bank
- ![[CleanShot 2023-10-05 at 10.29.17.png]]
- ![[CleanShot 2023-10-05 at 10.29.24.png]]
- RSA blind signature
- ![[CleanShot 2023-10-05 at 10.34.02.png]]
- ![[CleanShot 2023-10-05 at 10.34.08.png]]
- ![[CleanShot 2023-10-05 at 10.34.16.png]]
- Public and private keys used in Chaumian
- ![[CleanShot 2023-10-05 at 10.38.05.png]]
- "Cut and choose" technique
- ![[CleanShot 2023-10-05 at 10.55.34.png]]
- Detection of double spending
- Hiding ID in a coin: Force the customer to embed her ID/account # into
coins, using secret sharing technique
- Choose s and t such that $ID = s\bigoplus t$
- ![[CleanShot 2023-10-05 at 11.14.47.png]]
- ![[CleanShot 2023-10-05 at 11.14.52.png]]
- Withdrawal
- ![[CleanShot 2023-10-05 at 11.20.12.png]]
- Payment
- ![[CleanShot 2023-10-05 at 11.22.12.png]]
- Deposit protocols
- ![[CleanShot 2023-10-05 at 11.24.06.png]]
## Public Ledger
- Blockchain
- Transactions
- Key components of a TX
- TX ID
- Examples of TXs
- Bitcoin network
- Centralized
- Decentralized
- Distributed
- How to explain Bitcoin to your grandma?
- Bitcoin is a decentralized digital currency, without a central bank or
single administrator, that can be sent from user to user on the peer-to-peer
bitcoin network without the need for intermediaries. Transactions are
verified by network nodes through cryptography and recorded in a public
distributed ledger called a blockchain
## Consensus through proof of work
- Merkle hash tree: is a data structure used in computer science and
cryptography. It is a tree in which every leaf node is labelled with the
cryptographic hash of a data block, and every non-leaf node is labelled with
the cryptographic hash of the labels of its child nodes. This hierarchical
structure provides an efficient way to verify data and is commonly used in
blockchain systems and peer-to-peer networks.
- Pros:
- Easy to detect modification to TXs
- Easy to prove inclusion or membership of TX
- Enhanced privacy
- Block header (80 bytes)
- Version
- Hash of previous block
- Merkle root
- Time
- Target threshold
- None
- Hash puzzle for mining/proof of work
- Target, difficulty, hashrate etc
- ## Coinbase: is to create new bitcoin by a miner
- Thwarting double spending:
- TXs are public & broadcast globally
- Miners always **extend the longest chain** when forking occurs
- **Block** in a shorter branch will eventually become. **orphaned** & be
abandoned
- Some TXs in the orphaned blocks **become unconfirmed**; will be picked up
by miners for confirmation in the longest chain
- Distributed mining
- Pooled mining
- Why:
- Due to the increased level of difficulty, mining individually using home
computers has become ineffective
- Pooling together computing power increases chances of success
- How
- Divide-and-Conquer
- Cut-up the space of nonces into sub-spaces
- search for the right nonce in a distributed manner
## Bitcoin scripts
- 2 parts of a script
- Public key script (scriptPubKey) in an unspent TX output (UTXO) received in
the past
- Akin to 1-time "Account #"
- Set conditions for ownership
- Locking UTXO to owner
- Signature script (scriptSig) in an input of a current TX when spending
- Proof of ownership
- Ensuring integrity of TX
- Unlocking UTXO by owner
- 3 types of addresses
- Pay to Public Key Hash (P2PKH): _most popular_
- Alice the recipient prepares a public-private key pair. She gives the hash
value of her public key to a sender as an address to receive funds.
- Pay to Public Key (P2PK): _natural but an address could be longer than
P2PKH_
- Alice the recipient prepares a public- private key pair. She gives her
public key to a sender as an address to receive funds
- Pay to Script Hash (P2SH) Towards programmable cash: _most powerful, make
"programmable cash" possible_
- Alice the recipient prepares the script. She gives its hash value to a
sender as an address to receive funds.
- How a script is executed (stack, left to right, push & pop)
- Script is stack based, forth-like, and written in "reverse Polish notation"
- Scan from left to right
- If it's data, push it onto the stack
- If it's an operator, pop one or more items off the stack, operate on them
and push the result back into the stack
- ![[CleanShot 2023-10-05 at 19.17.13@2x.png]]
- Scripts for threshold multi signature
- ??
- Common Bitcoin Opcodes/Commands:
- OP_DUP, OP_HASH160, OP_EQUALVERIFY, OP_CHECKSIG,
- ![[CleanShot 2023-10-05 at 19.30.19@2x.png]]
- OP_2 - OP_16:
- ![[CleanShot 2023-10-05 at 19.28.57@2x.png]]
- OP_CHECKMULTISIG, OP_EQUAL
|