# Blend mixnet: find the (hops, delay) regime where ONE uncle stops being enough. # More relay hops and larger per-hop mixing delay push block visibility later -> more concurrent # proposals -> more orphaned honest blocks per canonical block. A block can reference at most U # uncles, so once the number of orphans per canonical block exceeds ~1, U=1 can no longer recover # the full block density and the stake estimate stays low. This sweep brackets that transition. # Latency is in SLOTS (1 slot = 1 s). Sweep axes (cartesian product x replicates). n_nodes: [1000, 2000] # network sizes to compare stake_dist: [pareto] # heavy-tailed (realistic) stake distribution topology: [blend] # Blend mixnet only (this study is about the cascade) degree: [6] # peering degree of the underlying d-regular graph link_latency_mean: [0.5] # per-link graph latency (secondary to mixing delay) link_latency_dist: [geo] # real-world geographic band mixture blend_hops: [3, 4, 5, 6] # number of random relay hops in the mix cascade blend_delay_max: [4.0, 8.0, 16.0, 32.0] # max per-relay mixing delay (slots); delay ~ U(0, this) max_uncles: [0, 1, 2, 4] # U: 0 baseline, 1 = the question, 2/4 = how many needed uncle_strategy: [oldest] # uncle selection: oldest-first fill init_dest: [common] # per-node initial D_est from agreement replicates: 10 # independent RNG replicates per grid cell base: # per-run settings shared by every cell (not swept) k: 2160 # true security parameter epochs: 20 # equilibrium is reached within ~2 epochs; burn 50% f: 0.03333333333333333 # slot activation coefficient (1/30) genesis_d_factor: 0.5 # start near true stake (cheap epoch 0; equilibrium is # what the U-recovery is measured on, gdf-independent) early_stop: true