Storage
Where code and data live—and how that determines what we can prove.
Storage is anywhere bytes can be retrieved: a blockchain, a p2p network, a cloud bucket, a git repo. To understand what can be verified, we decompose storage into five orthogonal properties:
- Addressability — How content is referenced. Determines whether verification is possible.
- Persistence — How long content exists. Determines auditability over time.
- Availability — Who hosts content. Determines liveness and censorship resistance.
- Access — Who is allowed to retrieve content. Determines permission requirements.
- Cost — What ongoing obligation exists. Determines protocol complexity.
Addressability
Addressability answers: "How do I reference this data?" Determines whether cryptographic verification is possible.
Content-Addressed
Location-Addressed
Persistence
Persistence answers: "How long will this data exist?" Determines whether the data will be there when you need it.
| Duration | What it means | Examples |
|---|---|---|
| Indefinite | No expiration date. Lasts as long as the network exists. But networks can fail, hard forks can orphan data, and "forever" is an aspiration. | Bitcoin • Since 2009 Ethereum • Since 2015 Arweave • Since 2018 |
| Fixed-term | Explicit expiration. You know exactly when data will disappear unless renewed. Requires renewal logic. | Ethereum (State Expiry) • Untouched = expired Solana • Rent or pruned Filecoin • Negotiated deals Storj • Segment TTL Celestia • ~2 weeks EigenDA • ~2 weeks Avail • ~2 weeks S3 • Pay or delete GitHub (Private) • Pay or delete Docker (Private) • Pay or delete ENS • Annual renewal DNS • Annual renewal |
| Best-effort | No guarantees. Data exists while someone cares. Could be years, could be minutes. | IPFS • Depends on pinners BitTorrent • Depends on seeders GitHub (Public) • ToS can change Docker (Public) • ToS can change CDN • ToS can change |
Availability
Availability answers: "Can I reach the infrastructure?" Determines resilience to outages and censorship.
Decentralized
Centralized
Access
Access answers: "Can I retrieve and read this data?" Determines what validators need to verify execution.
| Level | Barrier | Examples |
|---|---|---|
| Public | Fetch and read freely. No credentials needed. Anyone with a network connection can retrieve and understand the content. | Bitcoin • Full nodes Ethereum • RPC endpoints IPFS • Public gateways Arweave • Open endpoints Celestia • Light nodes EigenDA • Disperser API Avail • Light nodes GitHub (Public) • Public repos Docker (Public) • Public images |
| Gated | Barrier to download, not to read. Credentials or payment required to retrieve. Once downloaded, content is readable. | Storj • Access grant S3 • IAM credentials GitHub (Private) • OAuth token Docker (Private) • Registry auth Paywalled APIs • 402 Payment |
| Encrypted | Barrier is in the bytes. Content may be publicly available, but is cryptographically sealed. Decryption keys required. | Lit Protocol • Threshold decryption Encrypted IPFS • Symmetric key Client-side S3 • User-managed keys TEE enclaves • Attestation |
Cost
Cost answers: "What ongoing obligation exists?" Determines protocol complexity and failure modes.
| Model | Obligation | Examples |
|---|---|---|
| Upfront | Pay once, forget forever. Cost is baked into the transaction fee or endowment. No renewal logic needed. | Bitcoin • Tx fee Ethereum • Gas fee Arweave • Endowment Celestia • Blob fee EigenDA • Blob fee Avail • Blob fee Ordinals • Inscription |
| Recurring | Pay periodically. Requires billing logic & failure handling. Miss a payment = data loss. | Ethereum (State Expiry) • Touch to keep Solana • Rent balance Storj • Per GB/month Filecoin • Deal renewal S3 • Monthly bill GitHub (Private) • Monthly bill Docker (Private) • Monthly bill ENS • Annual fee DNS • Annual fee |
| Subsidized | It's free, but... Provider pays because data has value (AI training, ecosystem lock-in). | GitHub (Public) • Training data Docker (Public) • Public images HuggingFace • Models npm • Ecosystem CDN • Bandwidth |
| Operational | Run it yourself. No direct fee, but requires running infra or trusting the community. | IPFS • Pinning Nostr • Relaying BitTorrent • Seeding Git • Self-hosted Nix • Caching |
Property Matrix
We can map every technology in the ecosystem to these five properties to see their tradeoffs side-by-side.
| Technology | Addressability | Persistence | Availability | Access | Cost |
|---|---|---|---|---|---|
| Bitcoin | Content | Since 2009 | Full nodes | Full nodes | Tx fee |
| Ethereum | Content | Since 2015 | Full nodes | RPC endpoints | Gas fee |
| Arweave | Content | Since 2018 | Miners | Open endpoints | Endowment |
| IPFS | Content | Depends on pinners | DHT routing | Public gateways | Pinning |
| BitTorrent | Content | Depends on seeders | DHT routing | Open protocol | Seeding |
| Nostr | Content | Depends on relays | Federated relays | Open protocol | Relaying |
| Ethereum (State Expiry) | Content | Untouched = expired | Full nodes | RPC endpoints | Touch to keep |
| Solana | Content | Rent or pruned | Validators | RPC endpoints | Rent balance |
| Filecoin | Content | Negotiated deals | Storage providers | Public deals | Deal renewal |
| Celestia | Content | ~2 weeks | Light nodes | Light nodes | Blob fee |
| EigenDA | Content | ~2 weeks | Restaked operators | Disperser API | Blob fee |
| Avail | Content | ~2 weeks | Light nodes | Light nodes | Blob fee |
| Storj | Content | Segment TTL | Storage nodes | Access grant | Per GB/month |
| GitHub (Public, SHA) | Content | ToS can change | Microsoft | Public repos | Training data |
| Docker (Public, Digest) | Content | ToS can change | Docker Inc | Public images | Public images |
| GitHub (Private, SHA) | Content | Pay or delete | Microsoft | OAuth token | Monthly bill |
| Docker (Private, Digest) | Content | Pay or delete | Docker Inc | Registry auth | Monthly bill |
| GitHub (Public, Branch) | Location | ToS can change | Microsoft | Public repos | Training data |
| Docker (Public, Tag) | Location | ToS can change | Docker Inc | Public images | Public images |
| CDN | Location | ToS can change | Provider-dependent | Public | Bandwidth |
| S3 | Location | Pay or delete | AWS regions | IAM credentials | Monthly bill |
| GitHub (Private, Branch) | Location | Pay or delete | Microsoft | OAuth token | Monthly bill |
| Docker (Private, Tag) | Location | Pay or delete | Docker Inc | Registry auth | Monthly bill |
Verifiability
Verifiability answers: "Can validators confirm this data is correct?" The five properties combine to determine the answer.
To verify that a computation used specific data, validators need:
Addressability
Profile | Who can verify? |
|---|---|
| Bitcoin | Anyone, anytime, forever |
| Celestia | Anyone, within ~2 week window |
| Filecoin | Anyone, while deal is active |
| IPFS | Anyone, while pinned |
GitHub (Private) | Credentialed parties, while paid |
Encrypted IPFS | Key holders only, while pinned |
S3 (Location) | Credentialed parties, content may change |
Location Addressing
Proves you fetched something, not the right thing
Limited Persistence
Verification has a deadline—miss it and data is gone
Centralized Availability
Verification depends on specific infra being online
Requires credentials—not everyone can check
Someone must keep paying or data disappears
Encrypted Content
Bytes are public but meaningless without keys
Who verifies? Public validators or credentialed set?
When? Immediately, within a window, or on-demand?
How long? Minutes, weeks, years, or forever?
On failure? Retry, abort, or fraud proof?
Who pays? User, protocol, or storage provider subsidy?