FIL.VN — Data Availability & Decentralized Storage
Trang chủ ZRO.VN
🌐 Kiến thức nền tảng · Cluster A2

IPFS Là Gì?
Sự Khác Biệt Thực Sự
Giữa IPFS và Filecoin

IPFS không phải dịch vụ lưu trữ — đây là hiểu lầm phổ biến nhất khiến hàng nghìn NFT "biến mất". Tìm hiểu IPFS thực sự làm gì, tại sao Filecoin mới là thứ đảm bảo dữ liệu tồn tại, và khi nào cần dùng gì.

FIL.VN Knowledge Base Cập nhật: 2025 Thời gian đọc: ~14 phút Lĩnh vực: Decentralized Storage
Tóm tắt nhanh

IPFS (InterPlanetary File System) là giao thức P2P để định địa chỉ và truyền tải file theo nội dung (content addressing), không phải theo vị trí server. File được xác định bằng CID — hash của nội dung — thay vì URL. Tuy nhiên IPFS không đảm bảo ai sẽ lưu file đó. Filecoin là lớp incentive kinh tế: Storage Provider được trả FIL để cam kết giữ dữ liệu, có thể xác minh on-chain bằng Proof of Spacetime. IPFS + Filecoin = giao thức định địa chỉ + đảm bảo kinh tế.

1Vấn đề mà IPFS sinh ra để giải quyết

Trước khi hiểu IPFS là gì, cần hiểu web hiện tại có vấn đề gì. Khi bạn truy cập https://example.com/image.jpg, địa chỉ này nói với browser: "đến server tại domain example.com, lấy file tại path /image.jpg". Đây là location-based addressing — bạn đang trỏ đến một vị trí cụ thể.

Vấn đề với location-based addressing:

  • Link rot: Server tắt → URL hỏng → nội dung biến mất. Nghiên cứu của Harvard Law ước tính hơn 70% các link trong phán quyết tòa án Mỹ bị hỏng sau 10 năm.
  • Không thể verify nội dung: Cùng một URL có thể trả về nội dung khác nhau tùy thời điểm — server có thể thay đổi file mà bạn không biết.
  • Tập trung hóa: Một server bị tấn công, bị kiểm duyệt, hoặc đơn giản là hết tiền trả hosting → toàn bộ nội dung biến mất.
  • Không hiệu quả: Nếu cùng một file tồn tại trên 1,000 server, mỗi lần download vẫn phải đến đúng server bạn request, dù server khác gần hơn.

Juan Benet, tác giả của IPFS, nhận ra rằng vấn đề gốc rễ là cách chúng ta đặt địa chỉ cho nội dung. Thay vì hỏi "nó ở đâu?", hãy hỏi "nó là gì?" — và đây là nền tảng của content-based addressing.

2Content Addressing — Triết lý cốt lõi của IPFS

IPFS sử dụng content addressing: địa chỉ của một file là hash của nội dung file đó, không phải vị trí lưu trữ. Địa chỉ này gọi là CID (Content Identifier).

❌ Location-Based (HTTP thông thường)
  • URL: https://server.com/file.jpg
  • Trỏ đến vị trí cụ thể
  • Server tắt → URL hỏng
  • Không thể verify nội dung
  • File thay đổi → URL vẫn giống nhau
✅ Content-Based (IPFS)
  • CID: bafybeigdyrz...
  • Trỏ đến nội dung cụ thể
  • File tồn tại ở bất kỳ node nào có nó
  • CID verify nội dung cryptographically
  • File thay đổi → CID thay đổi (bất biến)

CID hoạt động như thế nào?

CID là một chuỗi tự mô tả (self-describing) được tạo ra từ nội dung file. Cấu trúc của CID v1 (phiên bản hiện tại):

// CID v1 = multibase + multicodec + multihash(content) CID = multibase_prefix + cid_version + content_type + multihash // Ví dụ CID v1 của một file: bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi // b → multibase: base32 // afybeig... → CID v1, dag-pb codec, sha2-256 hash // Kiểm tra: thay đổi 1 bit trong nội dung file: bafybeihykld7uyxzogax6vgyvag42y7464plwoi267zcclb73nrri5adpe // → CID hoàn toàn khác → không thể giả mạo nội dung

Vì CID là hash của nội dung, hai file có cùng nội dung sẽ có cùng CID, dù được upload bởi hai người khác nhau ở hai nơi khác nhau. Và bất kỳ node nào có file đó đều có thể phục vụ request cho CID đó — không cần biết file đang "ở đâu".

Merkle DAG — Cách IPFS xử lý file lớn

File lớn không được lưu dưới dạng một chunk duy nhất. IPFS chia file thành các block nhỏ (~256 KB mỗi block), hash từng block, rồi tổ chức chúng thành Merkle DAG (Directed Acyclic Graph). CID của file lớn thực chất là root CID của toàn bộ cây Merkle DAG. Lợi ích:

  • Download song song từ nhiều node khác nhau
  • Deduplication: Các file chia sẻ block giống nhau sẽ không lưu trùng
  • Verify từng block độc lập — không cần tải toàn bộ file mới detect lỗi

3IPFS là giao thức — Không phải dịch vụ lưu trữ

Đây là điểm quan trọng nhất và bị hiểu sai nhiều nhất.

⚠️ Hiểu lầm phổ biến nhất về IPFS

"Tôi upload file lên IPFS — file sẽ được lưu vĩnh viễn."

Sai hoàn toàn. Khi bạn thêm file vào IPFS node của mình (ipfs add file.jpg), file chỉ tồn tại trên node đó. Nếu bạn tắt máy, file biến mất khỏi mạng IPFS — trừ khi node khác đã lấy và pin file đó.

IPFS định nghĩa cách tìm và truyền tải file, không phải ai chịu trách nhiệm lưu file. Đây là hai thứ hoàn toàn khác nhau.

Garbage Collection và vòng đời file trên IPFS

Mỗi IPFS node có cơ chế garbage collection: định kỳ xóa các block không được "pin" để giải phóng disk space. Khi bạn thêm file vào node của mình, file đó được pin tự động trên node đó. Nhưng khi một node khác download file của bạn, họ cache nó nhưng không pin — và cache có thể bị xóa bất kỳ lúc nào.

Vòng đời của một file trên IPFS (không có pinning)

Upload file → CID
File trên node A
Node A tắt máy
CID không resolve được
Nếu không có node nào pin file, CID trở thành dead link — giống hệt link rot của HTTP
Upload file → CID
Pinning Service / Filecoin Deal
File được pin vĩnh viễn
CID luôn resolve được
Với pinning service hoặc Filecoin deal, ít nhất một node cam kết giữ file

4Filecoin — Lớp incentive kinh tế cho IPFS

Đây là điểm giao thoa quan trọng nhất: Filecoin được xây để giải quyết chính xác vấn đề mà IPFS để ngỏ — ai sẽ lưu dữ liệu và tại sao họ sẽ làm vậy.

Cơ chế Storage Deal

Khi bạn muốn đảm bảo một file tồn tại trên Filecoin, bạn tạo một storage deal với một hoặc nhiều Storage Provider (SP):

  1. Bạn gửi file đến SP và trả một lượng FIL token theo giá thỏa thuận
  2. SP cam kết lưu file trong thời gian xác định (thường 6 tháng – 3 năm)
  3. Deal được ghi lên Filecoin blockchain — không thể sửa hay xóa
  4. SP phải định kỳ submit Proof of Spacetime (PoSt) để prove file vẫn còn đó
  5. Nếu SP mất file hoặc không submit proof → collateral FIL của họ bị slashed
Điểm cốt lõi: Slashing mechanism tạo incentive kinh tế thực sự. SP mất tiền nếu mất dữ liệu của bạn. Không cần tin tưởng SP như tin tưởng AWS — chỉ cần tin vào cơ chế kinh tế được enforce on-chain.

IPFS + Filecoin = Stack hoàn chỉnh

LayerVai tròĐảm bảo gìKhông đảm bảo gì
IPFS Giao thức định địa chỉ và truyền tải CID bất biến, verify nội dung, tìm file từ bất kỳ node nào có nó Ai sẽ lưu file, file tồn tại bao lâu
Filecoin Incentive layer — thị trường lưu trữ phi tập trung File được lưu bởi SP được trả thưởng, có thể verify on-chain Giải quyết content addressing (cần IPFS)
IPFS + Filecoin Stack hoàn chỉnh Địa chỉ bất biến + đảm bảo lưu trữ kinh tế

Ví dụ thực tế: NFT.Storage (service của Protocol Labs) nhận file từ bạn, upload lên IPFS (lấy CID), đồng thời tạo Filecoin storage deal để đảm bảo file tồn tại dài hạn. Bạn nhận CID để ghi vào smart contract NFT — địa chỉ bất biến, nội dung được đảm bảo lưu.

5Pinning Service — Cầu nối giữa IPFS và người dùng thông thường

Không phải ai cũng muốn chạy một Filecoin Storage Provider hay thậm chí một IPFS node riêng. Pinning service là dịch vụ trung gian giúp đơn giản hóa quá trình này.

Pinata

IPFS Pinning · Centralized
  • Upload qua API hoặc web UI
  • Pin file trên cơ sở hạ tầng của Pinata
  • Fast gateway (CDN)
  • Free tier: 1 GB
  • ⚠️ Phụ thuộc Pinata còn hoạt động

NFT.Storage

IPFS + Filecoin · Decentralized
  • Upload → tự động lưu Filecoin
  • Miễn phí (được Protocol Labs tài trợ)
  • CID bất biến + storage deal
  • Tối ưu cho NFT metadata
  • ✅ Không phụ thuộc một công ty

Lighthouse

IPFS + Filecoin · Encryption
  • Hỗ trợ mã hóa file trước khi lưu
  • Token-gated access control
  • Lưu Filecoin dài hạn
  • API đơn giản cho developer
  • ✅ Privacy-focused storage

web3.storage

IPFS + Filecoin · Developer API
  • SDK cho JavaScript, Go, Python
  • Tự động tạo Filecoin deal
  • CAR file upload (hiệu quả hơn)
  • Free tier hào phóng
  • ✅ Phù hợp developer
Lưu ý khi chọn pinning service: Pinata thuần IPFS nghĩa là nếu Pinata đóng cửa, file của bạn mất. NFT.Storage và web3.storage lưu thêm lên Filecoin network — kể cả service đóng cửa, data vẫn tồn tại trên các SP độc lập.

6IPFS trong thực tế — NFT, dApp và Web3

Tại sao NFT cần IPFS?

Hầu hết NFT không lưu hình ảnh hay metadata on-chain — chi phí sẽ cực kỳ đắt đỏ. Smart contract chỉ lưu tokenURI — địa chỉ trỏ đến metadata JSON. Nếu địa chỉ đó là HTTP URL:

  • Project tắt server → NFT mất hình ảnh → giá trị kinh tế về 0
  • Project thay đổi metadata → NFT của bạn "đổi mặt" mà không cần quyền của bạn
  • Không thể verify rằng metadata bạn thấy là metadata gốc

Khi tokenURI trỏ đến IPFS CID, các vấn đề này được giải quyết: CID là bất biến — bạn có thể verify nội dung cryptographically, và file có thể tồn tại trên bất kỳ node nào pin nó.

dApp frontend hosting

Một số dApp lưu frontend HTML/JS trên IPFS và trỏ domain ENS đến CID. Lợi ích: không có single point of failure — kể cả domain bị thu hồi hay registrar bị kiểm duyệt, người dùng vẫn có thể truy cập trực tiếp qua CID.

Khi nào KHÔNG nên dùng IPFS?

Use caseIPFS phù hợp?Lý do
NFT metadata, hình ảnh cố định✅ Phù hợpNội dung bất biến, cần CID ổn định
Dataset khoa học, tài liệu lịch sử✅ Phù hợpCần immutable reference
User profile, setting thay đổi thường xuyên❌ Không phù hợpMỗi thay đổi tạo CID mới — không có "update in place"
Dữ liệu cần xóa (GDPR)❌ Không phù hợpContent-addressed storage không support xóa
Real-time data (chat, live feed)❌ Không phù hợpLatency cao, thiếu streaming support
Database thường xuyên write❌ Không phù hợpIPFS tối ưu cho read, không phải write-heavy

7Khi nào dùng IPFS thuần túy, Filecoin, hay kết hợp?

Tình huống
Giải pháp
Lý do
File cá nhân, test, tạm thời
Không cần tồn tại lâu
IPFS thuần túy
Node của bạn, tự pin
Chi phí 0, đủ cho use case ngắn hạn
NFT, dApp asset, tài liệu cần tồn tại <5 năm
Cần reliable nhưng không quá dài
Pinning service (Pinata, NFT.Storage)
API đơn giản, chi phí thấp
Cân bằng giữa đơn giản và độ bền
Dataset khoa học, tài liệu pháp lý, archive
Cần tồn tại >5 năm, có thể verify
Filecoin Storage Deal
Nhiều SP, slashing guarantee
Incentive kinh tế đảm bảo độ bền thực sự
Dữ liệu lưu "một lần – vĩnh viễn"
Archive vĩnh cửu, không cần renew
Arweave
Endowment model, trả một lần
Khác mô hình Filecoin (theo deal), phù hợp archive

Để hiểu sâu hơn về sự khác biệt giữa Filecoin và Arweave trong bài toán lưu trữ dài hạn, xem bài phân tích chi tiết: Filecoin vs Arweave: So Sánh Toàn Diện.

8Kỹ thuật nâng cao — IPLD và Mutable Data

IPLD — Dữ liệu liên kết phi tập trung

IPLD (InterPlanetary Linked Data) là data model của IPFS cho phép liên kết giữa các CID — tương tự như hyperlink trong HTML nhưng bất biến và có thể verify. IPLD là nền tảng để biểu diễn cấu trúc dữ liệu phức tạp (thư mục, package, dataset) như một DAG của các CID liên kết nhau.

IPLD đặc biệt quan trọng cho AI/ML dataset (xem bài AI Dataset trên Filecoin) vì nó cho phép versioning dataset: mỗi version có CID riêng, và CID mới chỉ cần reference lại các chunk chưa thay đổi.

IPNS — Mutable Pointers trên IPFS

Vì CID là bất biến (file thay đổi → CID thay đổi), IPFS cung cấp IPNS (InterPlanetary Name System) cho phép tạo "tên" có thể update để trỏ đến CID mới nhất. IPNS record được ký bởi private key và có thể trỏ đến CID bất kỳ.

// IPNS record: một "tên" có thể cập nhật IPNS name = k51qzi5uqu5dkkciu33khkzbcmxtyhn376i1e83tya8kuy7z9euedzyr5nhoew // Trỏ đến CID hiện tại: /ipns/k51qzi5...bafybeigdyrz... (version 1) // Sau khi update file: /ipns/k51qzi5...bafybeihykld7... (version 2) // IPNS name không đổi, nhưng nội dung đã được cập nhật
Giới hạn của IPNS: IPNS record cần được "refresh" định kỳ (mặc định mỗi 24h) nếu không sẽ hết hạn và không resolve được. Và vì IPNS resolve qua DHT (Distributed Hash Table), latency thường chậm hơn CID resolution thông thường đáng kể.

Để nắm trọn vẹn cách Filecoin đảm bảo dữ liệu tồn tại dài hạn — từ cơ chế Proof of Spacetime đến slashing — bài tổng quan tại FIL.VN phân tích toàn bộ kiến trúc lưu trữ phi tập trung trong blockchain modular.

Tóm lại: IPFS = giao thức định địa chỉ bất biến theo nội dung. Filecoin = incentive layer đảm bảo ai đó lưu dữ liệu và chịu trách nhiệm kinh tế nếu mất. Dùng IPFS không có Filecoin là dùng địa chỉ mà không có bưu điện — địa chỉ đúng nhưng thư có thể không đến nơi.
❓ Câu hỏi thường gặp về IPFS và Filecoin
IPFS có phải dịch vụ lưu trữ miễn phí không?
Không. IPFS là giao thức P2P định địa chỉ và truyền tải file — không phải dịch vụ lưu trữ. Khi bạn thêm file vào IPFS node của mình, file chỉ tồn tại trên node đó. Nếu node tắt hoặc xóa file, file biến mất khỏi mạng IPFS nếu không có node nào khác pin nó. Để đảm bảo file tồn tại, cần dùng pinning service (có phí) hoặc Filecoin storage deal.
CID là gì và tại sao quan trọng hơn URL thông thường?
CID (Content Identifier) là địa chỉ định danh file dựa trên nội dung (content hash), không phải vị trí (server URL). Khi nội dung file không đổi, CID không đổi — bất kể file đó nằm ở node nào trên mạng IPFS. Điều này giải quyết "link rot" vì CID luôn tìm được file từ bất kỳ node nào đang giữ nó. Ngoài ra, CID cryptographically verify nội dung — không thể thay đổi file mà giữ nguyên CID.
IPFS và Filecoin khác nhau như thế nào?
IPFS định nghĩa cách định địa chỉ và truyền tải file (giao thức), nhưng không đảm bảo ai sẽ lưu file đó. Filecoin là lớp incentive kinh tế: Storage Provider được trả FIL để cam kết giữ dữ liệu trong thời gian xác định, có thể xác minh on-chain bằng Proof of Spacetime. Nếu SP mất dữ liệu, họ bị slashed (mất collateral FIL). IPFS + Filecoin = giao thức định địa chỉ + đảm bảo kinh tế.
NFT lưu trên IPFS có vĩnh viễn không?
Không tự động. NFT metadata trỏ đến CID trên IPFS chỉ tồn tại bao lâu còn có node pin nó. Để đảm bảo tồn tại lâu dài cần: (1) dùng Filecoin storage deal dài hạn, (2) dùng NFT.Storage hoặc Lighthouse để tự động pin và lưu trên Filecoin, hoặc (3) dùng Arweave cho lưu trữ "một lần – vĩnh viễn". IPFS chỉ cung cấp địa chỉ bất biến — không phải đảm bảo tồn tại.
Pinata và NFT.Storage khác gì nhau?
Pinata là IPFS pinning service — giữ file trên cơ sở hạ tầng tập trung của họ và serve qua IPFS gateway. NFT.Storage cũng pin file nhưng đồng thời lưu vào Filecoin network, cung cấp thêm lớp bảo mật phi tập trung. Pinata đơn giản và có CDN tốt hơn; NFT.Storage bền vững và phi tập trung hơn vì không phụ thuộc vào một công ty duy nhất.
CID có thay đổi khi nội dung file thay đổi không?
Có — và đây là tính năng, không phải lỗi. Vì CID là hash của nội dung, bất kỳ thay đổi nào dù nhỏ cũng tạo ra CID hoàn toàn mới. Điều này đảm bảo tính bất biến: nếu bạn có CID, bạn biết chính xác nội dung file là gì — không ai có thể thay đổi nội dung mà giữ nguyên CID. Đây là nền tảng của "immutable content addressing".
🌐

ZRO Research

Nghiên cứu và phân tích kỹ thuật về hạ tầng blockchain, IPFS, Filecoin và Decentralized Storage. Nội dung được xây dựng từ tài liệu chính thức của Protocol Labs, IPFS docs và Filecoin spec.

IPFS Protocol Filecoin Storage Content Addressing fil.vn