One abstraction — the resource allocator — for computation, stake and storage, so that Proof-of-Work, Proof-of-Stake and Proof-of-Storage can be compared on the resource alone rather than on their consensus rules.
1 — Protocol Labs · 2 — University of Bern
Resources split two ways — virtual or external, burnable or reusable. Computation, stake and storage occupy three cells. The paper instantiates no allocator for virtual×burnable.
Def. 3.3 (Def. 4 in the linked arXiv version)
Liveness, validity, use-once, unforgeability, honest-majority assignment. Meet all five and the generic longest-chain algorithm implements total-order broadcast.
Def. 4.1 & Thm. 4.3 (Def. 7, Thm. 2 in arXiv)
Over a window of $t_2-t_1+1$ time steps with a constant budget, a burnable resource costs that factor more than the bound on a reusable one — which is why the same attack is cheap on stake.
Def. 5.5 & Prop. 5.6 (Def. 13, Prop. 11 in arXiv)
The problem
A permissionless blockchain has no membership list, so it cannot count votes. Instead it makes writing rights scarce: you may append a block only if you can prove you hold some resource. Bitcoin uses computation, Ouroboros Praos uses stake, Filecoin uses storage.
Each of these protocols has its own security proof, in its own model, under its own assumptions. That makes them almost impossible to compare — and it leaves the interesting question unanswered. Proof-of-Stake is vulnerable to long-range attacks and Proof-of-Work is not. Is that a fact about Ouroboros, or a fact about stake?
This paper fixes the consensus rule — one generic longest-chain, total-order-broadcast algorithm — and varies only the resource underneath it, through an interface called a resource allocator. Whatever differs is then attributable to the resource itself.
Two input events, two output events.
RA-commit$(p_i, \mathsf{st}, r)$ — pledge budget
$r$ against chain state $\mathsf{st}$.RA-assign$(p_i, \mathsf{st}, r, \pi)$ — the allocator
answers with a commitment $\pi$, or with
$\bot$.RA-validate / RA-is-committed — anyone can re-check a
$\pi$ carried in a block.A block is $B = (h, \overline{tx}, \pi, \sigma)$: parent hash, transactions, resource commitment, signature.
Total-order broadcast, with overwhelming probability.
Def. 2.1 (Def. 1 in arXiv). The long-range attack breaks the last one.
Interactive 1 · Def. 3.3 & Def. 4.1
The paper's move is to replace “Proof-of-Work” and “Proof-of-Stake” with a single interface. You hand a resource allocator a budget and a chain state; it hands back a commitment $\pi$ or $\bot$. Pick a resource, press Play, and watch what actually travels on the wires — that is the whole of what distinguishes Proof-of-Work from Proof-of-Stake in this model.
What goes in the box
External: the budget must be supplied from outside, and cannot be overstated.
Virtual: the budget is read off the chain, via $\mathsf{StateAlloc}(p_i, \mathcal{C})$.
Burnable: a step's budget is spent across that step's commits, $\sum r_i \le \mathsf{Alloc}(p_i,t)$.
Reusable: the same budget drives unboundedly many commits per step.
Provenance. The four events are Def. 3.2; the resource types are Def. 3.3; the five properties the box enforces are Def. 4.1. The draw inside the box is the allocator's own: Lem. 4.4 describes $\mathsf{RA}_{\mathsf{pow}}$ as running $r$ threads of a “biased coin with probability $\varrho$”, and Def. 4.6 (arXiv Def. 10 for storage) gives leader selection the same shape. This is a walk-through, not a simulation — the sequence is fixed, and it shows one refused commit and one granted one rather than implying any particular rate. What changes between the cells is what the interface carries: whether a budget travels on the wire at all, whether it comes back, and whether the allocator has to reach into the chain to find it. Repeating a commit on a reusable resource returns the same $\pi$, which is the use-once clause of Def. 4.1; the $h_0$ branch is step 2 of §5.1.
Interactive 2 · Equation 1
Every secure allocator must satisfy honest-majority assignment: the chance that some Byzantine process wins a slot has to stay under a bound set by the honest chance and the network delay.
$$p_{\mathcal{A}} \;<\; \frac{1}{\Delta - 1 + 1/p_{\mathcal{H}}}$$
$$p_{\mathcal{H}} = 1-(1-\varrho)^{R-R_{\mathcal{A}}} \qquad p_{\mathcal{A}} = 1-(1-\varrho)^{R_{\mathcal{A}}}$$
Provenance. The inequality is Equation 1 in Def. 4.1, attributed there to Gaži et al. (CCS 2020). The closed forms for $p_{\mathcal{H}}$ and $p_{\mathcal{A}}$ are from the Proof-of-Work proof (Lem. 4.4); the Proof-of-Stake proof (Lem. 4.8) gives the same pair, writing $p_{\mathcal{A}} \approx 1-(1-\varrho)^{R_{\mathcal{A}}}$ and noting that an adversary committing to shorter chains could raise it slightly. The storage proof (arXiv Lem. 7) writes $p_{\mathcal{A}} \le 1-(1-\varrho)^{R_{\mathcal{A}}}$, with equality only when Byzantine processes commit their whole budget. Leader selection has the same shape $1-(1-\varrho)^{r_i}$ in all three allocators (Def. 4.6; arXiv Def. 10 for storage). The paper fixes no numeric values for $R$, $R_{\mathcal{A}}$, $\varrho$ or $\Delta$ — the slider settings are illustrative, only the formulas are the paper's.
At $\Delta=1$ the bound collapses to $p_{\mathcal{A}} < p_{\mathcal{H}}$ and the dashed line lies exactly on the blue one.
Interactive 3 · §5.1
A long-range attack corrupts processes that used to hold the resource. It works on stake and fails on computation — and the framework says exactly where it fails. Switch the resource and walk the four steps.
Def. 5.1 needs two things at once: a set $\mathcal{P}_{\mathsf{maj}}$ that held the majority at an old height $h_0$, and that holds almost nothing at the current height $h_1$.
Provenance. Steps are the four numbered items of §5.1 (§6.1 in arXiv); the two inequalities are Def. 5.1 (Def. 12 in arXiv); the conclusion is Thm. 5.4 (Thm. 10 in arXiv). $R$ and $R_{\mathcal{A}}$ are taken from the sliders above.
Interactive 4 · Lemma 5.2
Once the shifting event has happened, the adversary rebuilding from $h_0$ holds what $\mathcal{P}_{\mathsf{maj}}$ held back then — strictly more than the honest processes hold now. The honest chain starts ahead by the fork depth. Press Run and watch the two chains extend, one block at a time, each at its own probability per time step.
Provenance. Each time step is a Poisson trial with $\Pr[X_i=1]=p_{\mathcal{H}}$ on the honest chain and $p_{\mathcal{A}^*}$ on the adversarial one — the trials the proof of Lem. 5.2 sums. The race is simulated: the blocks you see are real draws against those two probabilities, so the run has variance and the overtake time moves. The dashed marks are the deterministic $p_{\mathcal{H}}t$ and $p_{\mathcal{A}^*}t$ and the band edges $(1-\epsilon)p_{\mathcal{H}}t$, $(1+\epsilon)p_{\mathcal{A}^*}t$, whose failure probabilities the proof gives as $\exp(-p_{\mathcal{H}}t\epsilon^2/2)$ and $\exp(-p_{\mathcal{A}^*}t\epsilon^2/3)$. The expected crossing time $t^\star = (h_1-h_0)/(p_{\mathcal{A}^*}-p_{\mathcal{H}})$ is arithmetic on those two rates; the paper itself only says “eventually”. The slider's lower stop, $R_{\mathsf{maj}} = R - R_{\mathcal{A}} + 1$, is the smallest integer budget that satisfies Def. 5.1's strict majority; it starts above that stop only so the two rates are far enough apart to see.
Sources disagree — flagged, not reconciled. The proof of Lem. 5.2 calls $(1+\epsilon)\cdot p_{\mathcal{A}}\cdot t$ a “lower bound” on adversarial chain growth, but pairs it with the exponent $\epsilon^2/3$, which is the standard Chernoff upper-tail form (the honest case one sentence earlier uses $\epsilon^2/2$, the lower-tail form). The lane marks place each expression exactly where the written factor puts it: $(1-\epsilon)$ behind the honest mean, $(1+\epsilon)$ ahead of the adversarial one. The wording is the same in the OPODIS and arXiv versions.
Interactive 5 · Def. 5.5 & Prop. 5.6
A burnable resource is spent every step you mine; a reusable one is not. Over a window of $t_2-t_1+1$ steps the first accumulates and the second does not — which is the whole reason a private attack or a nothing-at-stake attack is cheap on stake and expensive on hashing.
$$\mathrm{Cost}_{\mathsf{burn}}(p_i,t_1,t_2) = \sum_{t=t_1}^{t_2}\mathsf{Alloc}(p_i,t)$$
$$\mathrm{Cost}_{\mathsf{reuse}}(p_i,t_1,t_2) \;\le\; \max_{t\in[t_1,\dots,t_2]}\mathsf{Alloc}(p_i,t)$$
Provenance. Both expressions are Def. 5.5 verbatim. The reusable side is an upper bound in the paper, not an equality, and is drawn and labelled as a bound. Prop. 5.6 asserts strictness only for $t_2 > t_1$; at a one-step window the two coincide, and the chart shows that rather than hiding it. The budget profiles are illustrative — the paper leaves $\mathsf{Alloc}$ an arbitrary function.
Properties
Satisfy all five and the generic algorithm inherits safety and liveness, hence total-order broadcast (Lem. 4.2, Thm. 4.3). Each column is the corresponding security proof.
| Property | What it rules out | Proof-of-Work Lem. 4.4 |
Proof-of-Stake Lem. 4.8 |
Proof-of-Storage arXiv Lem. 7 |
|---|---|---|---|---|
| Liveness | A commit that is never answered. | Every RA-commit returns a nonce or $\bot$ within the step. |
Same, with $r=\bot$ on the return — stake is virtual. | Same, with $\bot$ also when the external resource verification fails (Alg. 4, L147). |
| Validity | A commitment nobody else can check. | Re-check $H(h\|\overline{tx}\|\mathsf{nonce}) \le \varrho \cdot 2^{\lambda}$. | Re-evaluate $F$ on the slot's stored randomness $\rho$. | As PoS — re-evaluate $F$ and check $\pi \in T$. $E$ runs at commit time, not at validation. |
| Use-once | Splitting or replaying a budget to win more often (grinding). | Free — computation is burnable: $1-(1-\varrho)^{r_1}(1-\varrho)^{r_2} = 1-(1-\varrho)^{r}$. | Must be engineered: explicit slots (R1), leaders from the common prefix (R2), deterministic randomness (R3). | R1–R3 as PoS; the proof is the PoW argument again, on sectors instead of hashes. $E$ is separate — it checks the pledge is real, not that it is used once. |
| Unforgeability | A commitment the allocator never issued. | Random oracle — no strategy beats querying $H$. | Commitments live in the allocator's set $T$; in practice VRF uniqueness or collision resistance. | As PoS. |
| Honest-majority assignment | Byzantine processes winning slots too often for the network delay. | $p_{\mathcal{A}} < 1/(\Delta-1+1/p_{\mathcal{H}})$ — Eq. 1, identical in all three | ||
The use-once row is the load-bearing one: it is the single place where burnable gets for free what reusable has to build, and every difference further down the page traces back to it.
Consequences
| Attack | Needs | Why the resource decides it | Mitigation the paper cites |
|---|---|---|---|
| Long-range Lem. 5.2, Thm. 5.4 |
Virtual | The allocator reads the budget off the old chain state alone, so corrupting processes that are broke now still buys their weight then. With an external resource, step 2 needs hardware the adversary does not have. | Checkpointing; key-evolving cryptography; multiple resource types; chain-density rules instead of pure longest-chain. |
| Private / double-spend §5.2 (§6.2 in arXiv) |
Reusable | The win probability is the same either way; only the cost differs. On a burnable resource a lost race burns everything spent; on a reusable one the loss is opportunity cost alone. | None specific — the disincentive is the burn. |
| Resource-bleeding §6 discussion (§7 in arXiv) |
Reusable | The adversary keeps its weight on the honest chain so the difficulty never adjusts there, while on its private chain the honest processes drop out of the power table. A burnable resource cannot be in two places at once. | Ouroboros Genesis' chain-density rule; for external resources, compare total committed power at the chain tips. |
| Nothing-at-stake §6 discussion (§7 in arXiv) |
Reusable | The same commitment can extend every fork, because RA-assign hands the budget straight back. |
Slashing a posted deposit on proof of misbehaviour — easy to detect, since the reuse is public. |
Storage sits in the awkward middle: external, so long-range attacks fail against it, but reusable, so the cost-based attacks stay cheap — though on an external resource they are far easier to spot, because the adversarial chain visibly carries less committed power.
Cite
@inproceedings{AzouviCLVZ22,
author = {Sarah Azouvi and Christian Cachin and Duc V. Le and
Marko Vukoli\'{c} and Luca Zanolini},
title = {Modeling Resources in Permissionless Longest-chain
Total-order Broadcast},
booktitle = {26th International Conference on Principles of
Distributed Systems (OPODIS 2022)},
series = {Leibniz International Proceedings in Informatics (LIPIcs)},
volume = {253},
pages = {16:1--16:23},
publisher = {Schloss Dagstuhl -- Leibniz-Zentrum f\"{u}r Informatik},
year = {2022},
doi = {10.4230/LIPIcs.OPODIS.2022.16}
}
The paper declares no supplementary material — its \supplement field is empty and it
reports no implementation, dataset or measurement. There is nothing to link, and every number on this page is computed
in the browser from the formulas cited beside it.
Section, definition and theorem numbers on this page are the OPODIS proceedings numbers, with the linked PDF's numbers in parentheses where they differ. The linked PDF is the full arXiv version (arXiv:2211.12050v1), which inserts the Proof-of-Storage allocator as its Section 5 — so everything from the security analysis onward shifts by one section, and its definitions and theorems are numbered in single running sequences rather than per section.
| Item | OPODIS (this page) | arXiv PDF |
|---|---|---|
| Security analysis | §5 | §6 |
| Types of resource | Def. 3.3 | Def. 4 |
| Secure allocator | Def. 4.1 | Def. 7 |
| Virtual-resource-shifting event | Def. 5.1 | Def. 12 |
| Long-range attack lemma | Lem. 5.2 | Lem. 9 |
| Total order is violated | Thm. 5.4 | Thm. 10 |
| Chain extension cost | Def. 5.5 | Def. 13 |
| Burn costs more than reuse | Prop. 5.6 | Prop. 11 |
| Proof-of-Storage allocator | not included (space) | §5, Alg. 4, Lem. 7 |