Lecture 1 - Introduction to Cryptography and Cryptocurrencies Flashcards

1
Q

Why would you want to use Blockchain technologies?

A

Applications can run:
* In a decentralized fashion, by eliminating /limiting the need for a central authority
and Achieve the same functionality with the same amount of certainty

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is Blockchain?

A

Blockchain is decentralized distributed data structure that is replicated and shared among the members of a network.

It uses cryptographic methods (Hash functions), peer-to-peer networks and a distributed consensus protocol

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is meant by trust-less networks?

A

Blockchain enables trust-less networks since parties can transact even though they do not trust each other

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is the result of using cryptography in blockchain?

A

Use of cryptography in blockchain brings authoritativeness/proofs behind all the interactions

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What makes smart contracts smart?

A

Smart contracts which are self-executing scripts over blockchain allow for distributed and heavily automated workflows

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What are the five properties of blockchain?

A
  • Decentralization
  • Immutability
  • Chronology
  • Transparency
  • Pseudonymity
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Explain Immutability

A

Data written to database cannot be changed or deleted without consensus leading to data integrity

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Explain the Decentralization property

A

No single point of failure/control achieved by decentralized architecture and a distributed database

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Explain the Transparency property

A

All data sent through the blockchain is visible to all network participants

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Explain the pseudonymity property

A

The identity of data senders and receivers is unknown

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Explain the Chronology property

A

Every transaction is time-stamped and can be traced back

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What is a hash function?

A

You take an input, parse it through a cryptographic hash function, then the output will be a digest(string) of fixed length (256 bits for example)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Two identical inputs to the same hash function will produce identical hash digests. True or False

A

TRUE

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Two different inputs to the same hash function will produce identical hash digests. True or False

A

FALSE

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What are the three security properties of hash functions?

A
  1. Collision-free
  2. Hiding
  3. Puzzle-friendly
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Explain the Collision-Free hash security property

A

Nobody can find two different inputs that give the same digest

17
Q

Do collisions in hash properties exist?

A

Yes, but it is very very(infeasible) difficult to find one!

18
Q

Explain the Hiding hash security property

A

It’s very difficult to find the input of the hash function based on the output.

19
Q

Explain the Puzzle-friendly hash security property

A

If a hash function is puzzle friendly, then there is no
solving strategy for this type of puzzle that is much
better than trying random values of x

20
Q

What is a hash pointer?

A

A hash pointer is:

* A pointer to where some info is stored and a cryptographic hash of the info

21
Q

If we have a hash pointer we can ____

A
  1. Ask to get the info back

2. Verify that the info hasn’t changed

22
Q

Explain the concept of linked lists.

What does a linked list contain? What does it enable?

A

A linked list is a list of objects(blocks) that contain two different things

  1. Previous hash value
  2. A block of data

If anything changes in the chain of blocks, then you can see exactly where, as all of the hashes before the change will be different than the old one

23
Q

Explain a Merkle tree

A

A merkle tree is like linked lists, but can hold more items, and is treated not like a linear list, but a tree that branches out

24
Q

What are the advantages of a Merkle tree

A
  1. Tree holds many items
  2. You just need to remember the root hash to confirm whether there has been any changes/tampering
  3. Can verify membership in O(log n) time/space

Variant: A sorted Merkle tree can verify non-membership in O(log n)

25
Q

In broad terms, explain encryption

A

Encryption is a process of encoding information

It converts plain/original information into ciphertext/encrypted blob

Associated with keys for encrypting/decrypting

26
Q

There are two types of encryption methods (Not sha256 etc). What are they?

A
Symmetric = Use same key
Asymmetric = Use different keys
27
Q

Explain symmetric encryption

A

Symmetric uses the same key encrypt and decrypt
- Both parties need to know the key

Algorithms: AES(Advanced Encryption Standard)

28
Q

Explain asymmetric encryption

A

Asymmetric uses a key pair

  • Public key
  • Private/secret key

If we use one key to encrypt, then we can only decrypt with the other key

Algorithms: RSA (Rivest-Shamir-Adleman)

29
Q

If Bob wants to encrypt a message that only Alice can open, how would he do this using Asymmetric cryptography?

A

Bob encrypts the message using Alice’s public key

Alice can then decrypt the message using her PRIVATE key

30
Q

If Bob wants to verify that Alice sent a message what would be the steps of this using Asymmetric Cryptography?

A

Alice writes a message to Bob. She signs it using her PRIVATE key.

Bob can then verify it using Alice’s PUBLIC key

31
Q

Explain what is meant by a Digital Signature

A
  1. Only you can sign, but anyone can verify
  2. Signature is tied to a particular document
  3. Using pair of keys (private and public)
32
Q

What is meant by public key == an identity

A

To speak as a public key, you must know the matching secret key.

Therefore, you can treat a public key as an identity

if you see sig such that verify(pk, msg, sig)==true, think of it as
pk says, “[msg]”.
to “speak for” pk, you must know matching secret key sk

33
Q

Anyone can make a new identity at any time, and they can make as many as they want. True or False

A

True!

34
Q

What are the implications of public keys/addresses in relation to privacy?

A

Addresses are not directly connected to real-world identities

Observers can link together an address’s activities over time, make inferences

35
Q

What is meant by “Double-spending attack”/”Double spending problem”

A

The double-spending problem is the main design challenge in digital currency

The double-spending problem is a phenomenon in which a single unit of currency is spent simultaneously more than once.

36
Q

What is a solution to the Double-spending problem?

A

Coins cannot be transferred, subdivided or combined.

But you can get the same effect by using transactions.

To subdivide:

  1. Create new transaction
  2. Consume the coin
  3. Pay out two new coins to yourself