Here are answers and discussions for the Checkup 1 questions. It would not be at all surprising if there are one or two questions on Checkup 2 (scheduled for Wednesday, Sept 23) that are closely related to questions on Checkup 1.

1. What are the most essential properties something must have to be used as a currency?

The two most essential properties are transferability and scarcity. Recall that we defined a currency as a “medium of exchange”. In order for something to be used in exchanges, it must be possible to transfer it from one owner to another. The second essential property of scarcity is intrinsic to having value. If something can be created or duplicated freely, it cannot be used to represent value.

Being universally recognized as valuable would be a good alternative answer to scarcity, but is a bit circular: nothing is “universally” recognized as valuable for the entire universe; it is universally recognized as valuable by all partcipants in an economy using that currency, but this is a somewhat circular definition (of universal).

Other properties that were often mentioned, but are not essential for something to be a currency include stable (it is good in most cases is a currency holds it value over time, but note that prefect stability is generally not considered a good thing, and inflation rates should not be zero for a well-functioning economy); anonymous (some people consider this desirable, but others view it as a negative; it is certainly not essential for an effective currency); decentralized (this is what distinguished bitcoin from other currencies, but essentially all other currencies used in the history of humanity have been centralized); and divisible (important for many transactions).

2. What are the drawbacks of using a centralized bank to record transactions?

The biggest problem is that it requires placing a large amount of trust the bank. The bank can decide what transactions happened, and can decide who owns what (including, deciding that the bank owns everything).

Another problem with relying on a single, centralized entity is that even if that entity is not malicious, it could still be “incompetent” - if the bank is off-line, it is impossible to execute a transaction (i.e., this is what happens when you try and use a credit card and the merchant can’t connect to the system to do the transaction), and if the bank loses the transaction record everything is lost.

3. Where is asymmetric cryptography used in a bitcoin wallet?

The most important place is to sign transactions. It is necessary to use the private key associated with public address A to sign a transaction that transfers a coin owned by A to another address.

The wallet is also using asymmetric cryptography to verify a transaction (checking that a transaction that trasfers coin to your wallet is signed by the appropriate private key using the public key corresponding to the bitcoin address of the sender).

4. Find x such that 2x mod 7 = 1.

The simplest answer is x = 3 since 23 = 8 mod 7 = 1.

Any value x mod 6 = 3 satisfies the equation. For example, x = 9 also works since 29 = 512 mod 7 = 1.

5. The problem in the previous question is an instance of the discrete logarithm problem. Why do cryptographers consider discrete logarithm to be a hard problem?

Computer scientists consider a problem to be hard if there is no known algorithm that solves the problem with resources that scale as a polynomial in the size of the problem instance. Discrete log is (currently) considered a hard problem because the best known solutions are asymptotically not much better than trying all possibilities until you find an input that works (that is, doing a brute force search). For a large enough input, the time expect to solve a discrete problem can be made prohibative (given assumptions based on what is known today).

6. Alice owns coin X and has public/private key pair (KUA, KRA); Bob has public/private key pair (KUB, KRB) for the strong asymmetric cryptosystem E (the notation EK(m) denotes the encryption of input m with key K). What message should Alice send to the public ledger to transfer X to Bob?

The message needs to be something (1) only Alice could generate and (2) everyone can verify as transferring the coin to Bob.

msg = “I, KUA (Alice), transfer coin X to KUB (Bob)”
Send to ledger the message signed by Alice: (msg, EKRA(msg))

More Reading
Newer// Class 8: Mining
Comments powered by Disqus