| Penulis | Benet, Juan |
|---|---|
| Tahun | 2014 |
| Proyek | IPFS / Protocol Labs |
| Lisensi | MIT |
| Sumber Resmi | ipfs.io — IPFS draft paper (PDF) |
“IPFS — Content Addressed, Versioned, P2P File System” adalah paper 2014 oleh Juan Benet dari Protocol Labs yang memperkenalkan InterPlanetary File System (IPFS) — sistem file terdistribusi peer-to-peer yang menggantikan location-based addressing (URL) dengan content-based addressing (hash kriptografis). Di IPFS, Anda meminta data berdasarkan apa yang isinya (hash-nya) bukan di mana ia berada (server-nya). Jika konten tidak berubah, alamatnya tidak berubah — membuat tautan permanen secara konstruktif.
Publikasi dan Konteks
Pada 2014, model dominan distribusi konten adalah server HTTP tersentralisasi. HTTP mengalamati konten berdasarkan lokasi — jika server down, tautan rusak (link rot). File besar disajikan dari satu titik kegagalan; konten populer menciptakan kemacetan bandwidth di server individual.
BitTorrent telah menunjukkan bahwa distribusi konten P2P lebih kuat untuk file besar, tetapi tidak memiliki skema pengalamatan universal. IPFS mengusulkan protokol terpadu yang bekerja untuk file apa pun, dalam skala apa pun, dengan alamat permanen.
IPFS menyintesis empat sistem terdistribusi yang ada:
- Kademlia DHT — penemuan dan routing peer
- BitTorrent — pertukaran file P2P dengan insentif (via Bitswap)
- Git — riwayat konten berversi dengan Merkle DAG
- Self-Certifying File System (SFS) — penamaan kriptografis
Content Identifiers (CID): Pengganti URL
Setiap objek dalam IPFS memiliki Content Identifier (CID) — hash kriptografis dari isinya:
- Dua file identik memiliki CID yang sama di mana saja di jaringan — deduplikasi otomatis
- Jika CID valid, kontennya persis seperti yang Anda minta — verifikasi integritas otomatis
- CID tidak pernah berubah jika konten tidak berubah — tautan permanen
Merkle DAG: Struktur Data Inti IPFS
IPFS menyimpan semua data sebagai Merkle DAG (Directed Acyclic Graph). Setiap node dalam DAG berisi:
- Data (konten file atau direktori)
- Tautan ke node anak (referensi menggunakan CID)
Konsekuensi penting: CID direktori mencakup CID semua file di dalamnya. Jika satu file berubah, CID direktori berubah — tetapi semua file lain tetap dapat diakses melalui CID lama mereka. Ini mirip Git: setiap commit memiliki hash unik yang menyertakan seluruh riwayat.
Bitswap: Protokol Pertukaran Data
Bitswap adalah protokol IPFS untuk bertukar blok data antara peer — terinspirasi dari BitTorrent. Setiap node memelihara:
- Want-list: Blok yang diinginkan node saat ini
- Have-list: Blok yang dimiliki node dan bersedia dibagikan
Node saling bertukar blok; node yang berbagi lebih banyak mendapat prioritas pengiriman lebih tinggi — mekanisme insentif ringan untuk mendorong seeding.
IPNS: Penamaan Dinamis
CID bersifat permanen tetapi juga tidak dapat diubah — masalah untuk konten yang berkembang. IPNS (InterPlanetary Name System) memecahkan ini:
- Pengguna mempublikasikan catatan IPNS yang ditandatangani: “Kunci publik X menunjuk ke CID Y”
- Catatan IPNS dapat diperbarui (dengan tanda tangan baru)
- Pengguna mendistribusikan kunci publik sebagai “nama stabil”; konten yang ditunjuk dapat berubah
Filecoin: Lapisan Insentif IPFS
IPFS sendiri tidak menjamin bahwa node akan menyimpan data selamanya. Filecoin (2017, Protocol Labs) menambahkan lapisan insentif kriptoekonomi: pembayaran token kepada node penyimpan, diverifikasi dengan Proof of Replication dan Proof of Spacetime. Bersama-sama, IPFS + Filecoin membentuk web penyimpanan terdesentralisasi.
Aplikasi Blockchain
- NFT metadata: Gambar dan metadata NFT biasanya disimpan di IPFS; CID disimpan on-chain
- DeFi frontend hosting: Uniswap, Aave, dan protokol lain meng-host frontend di IPFS untuk ketahanan terhadap sensor
- ENS: Domain ENS dapat menunjuk ke konten IPFS untuk dapp terdesentralisasi
Istilah Terkait
Referensi
- Benet, J. (2014). IPFS — Content Addressed, Versioned, P2P File System. ipfs.io