Lecture 12 Flashcards

1
Q

What are the three main ways we can ensure valid results from fallible machines?

A

Rerun computations, if we can estimate failure probability we can determine how many trials need to be done to achieve a given level of confidence. These could be run in parallel to save time.
Merkle trees: take a set of data blocks and compute a hash for each one, build a tree, with the parent hash hashing hashes of its children, this will lead to the root hash summarising all data blocks, checking a hash can be done quickly.
Lastly distributed consensus can be done, getting the same information from multiple sources.

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

What is Apache ZooKeeper?

A

A multi-server, key-value database system, it facilitates atomic broadcast, meaning all correct processes in the system receive the same sequence of events or abort. It is commonly used when we trust all the servers, when malicious parties could be involved the consensus set size must grow, needing a majority of votes from the assumed-benign server set.

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

What do currencies need ot track to work? How does bitcoin do this?

A

Currencies need to track who has what, bitcoin does this by having validating nodes store the whole ledger, and then a users wallet is a hash of a public key the client generates, which the user can prove connection to via their private key.

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

How does bitcoin protect against Sybil attacks?

A

A sybil attack is when one entity assumes multiple identities actively at the same time, and uses this power to undermine the systems in place. To protect against Sybil attacks on validation bitcoin makes it computationally costly to incorporate new transactions into the blockchain, and rewards incorporation of new transactions.

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

How does bitcoin transaction validation occur?

A

The validator collects the transactions into a block, each one is checked internally to prevent double spending. A merkle tree is then formed over the transaction hashes and the block is closed off by applying the proof of work algorithm.
In bitcoin this proof of work is done by finding a nonce that once appended to the block of transactions gives a number less than a target using SHA-256 hash function. This process is dynamic, done to ensure blocks take approximately 10 minutes to compute, regardless of computational resources available. A hash to the previous block is included in the next block, making it a block chain.

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

What is a blockchain fork in bitcoin?

A

When nodes hear multiple potential proof of work solutions they keep them all, subsequent mining is only done on the longest fork, an attacker could try and keep a fork alive, but the computational costs of this would be very high.

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

When is a transaction approved in bitcoin? What is a side effect of this?

A

When the relevent block is in the logest fork of the blockchain, and five or more blocks follow it. A major side effect is that transactions can take a while to be cleared.

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

What are the four main roles bitcoin nodes can take on? What does bitcoin core contain?

A

Network, all nodes help routing wihtin the p2p protocol.
Wallet, manage keys that show ownership of transactions.
Miner, participates in the proof-of-work block verifications.
Blockchain: can carry the full blockchain.
Bitcoin core reference client contains all four of these.

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

How does bitcoin achieving versioning and specify transactions?

A

Bitcoin blocks include management parameters, version mnumbers will allow the protocol to be modified.
Bitcoin specifies transactions with a scripting language.

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

Why does bitcoin have problems with scalability?

A

Blocks didn’t use to have a size limit, but now they do as it was a DOS risk. The blocks can be 1 megabyte at most, this limits the amount of transactions that can occur, currently allowing for three transactions per second at best. this can be doubled by using Segregated witness.

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

How can wallets be linked to users?

A

Metadata may allow determination of wallet’s owners, based on what the wallet does.

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

What are some different sorts of block chain systems?

A

Permission-less systems like bitcoin require proof of work. Permissioned systems control the participants and hence don’t need proof of work.
Another possibility is public /private, where there are some permissioned participants and some public.

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