Simulation and Evaluation

We evaluate BPE using a Python agent-based simulation with 50 sinks, 10 sources, and 3 task types over 1000 timesteps.

Setup

Each sink has heterogeneous true capacity drawn uniformly from [10,100][10, 100] and stake from [Smin,10Smin][S_{\min}, 10 \cdot S_{\min}] with Smin=100S_{\min} = 100. Sources emit flow rates from [50,200][50, 200]. Capacity signals include Gaussian noise (σ=0.05Ctrue\sigma = 0.05 \cdot C_{\text{true}}). The EWMA parameter is α=0.3\alpha = 0.3 unless otherwise noted. We compare three strategies: BPE (capacity-proportional), round-robin (equal split), and random (Dirichlet-weighted).

Allocation efficiency is defined as the fraction of total payment that is productive (i.e., absorbable by the receiving sink): η(t)=kmin(Fk(t),Ck)  /  kFk(t)\eta(t) = \sum_k \min(F_k(t), C_k) \;/\; \sum_k F_k(t).

E1: Convergence

Allocation efficiency and max queue backlog over 1000 timesteps. BPE achieves 95.7% average efficiency (last 100 steps) vs. 93.5% for round-robin and 79.7% for random.

Allocation efficiency and max queue backlog over 1000 timesteps. BPE achieves 95.7% average efficiency (last 100 steps) vs. 93.5% for round-robin and 79.7% for random.

BPE converges to near-optimal allocation within ~50 timesteps as the EWMA smooths noisy capacity signals. Round-robin approximates efficiency only when sink capacities are similar; its fixed-split strategy cannot adapt to heterogeneous capacity. Random allocation shows high variance and consistently suboptimal routing.

E2: Shock Response

BPE response to 20% sink failure at t=500. Efficiency dips briefly then recovers as EWMA smoothing adapts to the reduced capacity.

BPE response to 20% sink failure at t=500t = 500. Efficiency dips briefly then recovers as EWMA smoothing adapts to the reduced capacity.

At t=500t=500, 20% of sinks are killed (capacity set to zero). BPE's efficiency drops momentarily as the EWMA-smoothed signals lag the true capacity change, then recovers within 1/α3\sim 1/\alpha \approx 3 epochs to a new equilibrium.

E3: Sybil Resistance

Sybil attack profitability. Net gain decreases as the number of fragments n grows, due to sqrt cap concavity and per-identity minimum stake cost.

Sybil attack profitability. Net gain decreases as the number of fragments nn grows, due to \sqrt{\cdot} cap concavity and per-identity minimum stake cost.

We fix total attacker stake SS and split into n{1,2,5,10,20}n \in \{1, 2, 5, 10, 20\} identities. Each identity pays SminS_{\min} overhead. Total capacity scales as n\sqrt{n} while cost scales linearly. The attack becomes unprofitable at moderate nn, validating the theoretical analysis in Security Analysis.

E4: EWMA Parameter Sweep

Allocation efficiency for various alpha values. alpha=0.3 balances responsiveness and stability.

Allocation efficiency for α{0.1,0.2,0.3,0.5,0.8}\alpha \in \{0.1, 0.2, 0.3, 0.5, 0.8\}. α=0.3\alpha = 0.3 balances responsiveness and stability.

Low α\alpha values (0.1, 0.2) yield stable but slowly-adapting signals. High α\alpha (0.8) tracks capacity changes rapidly but amplifies noise, reducing average efficiency. α=0.3\alpha = 0.3 achieves the best efficiency-stability tradeoff.

E5: Buffer Dynamics

Source stall rate and allocation efficiency under different buffer sizes.

Source stall rate and allocation efficiency under different buffer sizes Bmax{0,0.1,0.5,1.0}×ΛB_{\max} \in \{0, 0.1, 0.5, 1.0\} \times \Lambda.

With no buffer (Bmax=0B_{\max} = 0), sources stall frequently whenever instantaneous flow exceeds capacity. Moderate buffers (Bmax=0.5ΛB_{\max} = 0.5 \Lambda) virtually eliminate stalls while maintaining high efficiency. Large buffers incur capital inefficiency with minimal marginal benefit, confirming the bounded buffer result of Theorem (Overflow Buffer Bound).

E6: On-Chain Gas Benchmarks

We deploy the full contract suite to Base Sepolia and measure gas costs for critical operations. All measurements are single-transaction costs at zero network congestion.

OperationGasNotes
Commit capacity46,184Hash storage
Reveal capacity (EWMA update)58,287Includes cap check + EWMA
Off-chain aggregated update9,595Per-attestation (batched)
Rebalance pool (10 sinks)187,832GDA updateMemberUnits
Record completion (dual sig)89,421EIP-712 verify x2
Report queue load28,103Per task type per sink
Advance pricing epoch31,547Base fee adjustment
getSinks (1 sink)2,250View call
getSinks (10 sinks)22,500Linear scaling

The off-chain aggregation path reduces per-update gas by 83.5% compared to commit-reveal (9,595 vs. 58,287), validating the design choice in Off-Chain Attestation. Completion recording is the most expensive operation due to dual ECDSA recovery, but occurs only once per completed task.

E7: Pricing Mechanism Validation

We validate the dynamic pricing curve by simulating demand shocks against multiple sinks with deployed contract parameters (γ=10,000\gamma = 10{,}000 BPS, δ=12.5%\delta = 12.5\%, epoch duration 60s).

Under steady-state conditions with uniform demand across 5 sinks, prices converge to within 2% of the equilibrium base fee β\beta^* predicted by Proposition (Price Equilibrium) within 8 epochs (~8 minutes). When a sudden demand spike doubles the request rate for one task type, the base fee adjusts upward over 6 epochs, reducing demand until the system re-equilibrates. This is the "economic backpressure" effect described in Dynamic Pricing.