Bitcoin Flashcards

1
Q

Difficulty in Bitcoin

A

Adjusted so that block generation time takes 10 mins
~ time = difficulty * 2^32/hashrate
If previous 2016 blocks took less than 2 weeks => difficulty increaseed
more => diff increased

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

Merkle trees

A

Only merkle root is published in block:
If user wants to confirm transaction is in block he is provided with each node that he needs to compute the root => log2(n)

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

Proof of Work Header

A

block version, hash of prev block, merkle root, time stamp, current target, nonce

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

Common prefix

A

Each honest participants local chain without newest k block is prefix to local chain of other participant

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

chain quality, chain growth

A

cq :If an honest majority exists the chain will contain atleast some blocks mined by an honest party
cg: blockchain will grow eventually

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

Double spending if confirmation skipped

A
  1. send tr_v to vendor and tr_a to the network
  2. propagate tr_a to network with helper nodes
  3. no detection required
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

countermeasures to double spend

A

Listen to the network: Problem attack can get tr_v to neighbour nodes of vendor first
Get help in network: Observers in the network check if transaction is in network but requires multiple observers
Forward first double spending transaction

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

selfish mining

A

Mine on your own “secret chain”. If other miners discover a block publish your own block and try to transmit it faster. Else adopt new block.

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

Eclipse attack

A

Big Scale Attacker that has control over many IP addresses
=> DoS Bitcoin client and thus control their view of the blockchain
Populate tried tables with your own IP addresses and new table with non existing IP addresses => Victim can only connect to adversary
Will continue until client is restarted.
Splits the mining power, can increase advantage, can double spend

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

Eclipse attack counter measures

A

1: make sure that the same address hashes to the same bucket at the same location
2: avoid recency bias in choosing new addresses
3: make sure that ip address exists before replacing ip at new or tried
4: add new buckets

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

Partial eclipse attack

A

Bitcoin uses inventory based request:
inv, getheader, getdata, sendheader, senddata
Clients wait 20 mins for block and 2 for transaction
Try to send many invs to victim to populate fifo queue => no getheader messages. No receive version message => exhaust
Implications:
1. split mining power
2. increase advantage => only 34% of computing power needed
3. bypass double spending countermeasures
4. can double spend (using weak miner)

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

Partial eclipse countermeasures

A
  1. Dynamic timeouts
  2. handling transaction ads: filter ip, randomly choose sender
  3. update block advertisements. broadcast header instead of hash
    => header => getdata => block
How well did you know this?
1
Not at all
2
3
4
5
Perfectly