Owner: @David Rusu
Reviewers: 🟢@Marcin Pawlowski 🟢@Giacomo Pasini 🟢@Alexander Mozeika 🟢@Álvaro Castro-Castilla
We are interested in finalizing the Cryptarchia and Blend Network parameters. There are some competing requirements here: the Blend Network would like to have longer block times in order to provide better privacy, while Cryptarchia wants shorter block times in order to provide faster finality.
We need to find the right balance that would give us good enough privacy while not sacrificing finality times too much.
The analysis centres on the block-witholding attack where an adversary does not participate in the main chain, instead building a secret side-chain and releasing it on the network in an attempt to trigger the honest chain to reorg.
We first simulate the honest network to build out a block tree.
We then simulate the adversary slot wins.
We also consider the effect of extending from the honest block tree at each block to see how many reorgs the adversary can induce.
This is repeated, with the adversary branch forking off of each block.
The adversary can even boost his attack by continuing abandoned branches.
Leader proposing a block through the Blend Network.
blend_network = NetworkParams(
broadcast_delay_mean=0.5, # seconds
pol_proof_time=1, # 1 second PoL delay
blending_delay=3, # seconds spent in each Blend node
desimenation_delay_mean=0.5, # seconds to disseminate message within Blend
blend_hops=3, # hops within Blend
)
no_blend_net = replace(blend_net, blend_hops=0)
The block delay distribution from the network model looks like this: