IPFS(InterPlanetary File System)는 콘텐츠 주소 기반의 탈중앙화 파일 시스템이다. 파일의 내용으로 주소(해시)를 생성하므로, 중앙 서버 없이 P2P 네트워크에서 파일을 공유한다.
콘텐츠 주소 방식
HTTP (위치 기반):
https://example.com/image.jpg
→ 서버가 다운되면 접근 불가
→ 같은 URL이라도 내용이 바뀔 수 있음
IPFS (콘텐츠 기반):
ipfs://QmX5s...hash (파일 내용의 SHA-256 해시)
→ 어디서나 같은 내용 보장
→ 내용이 변하면 주소도 변함
활용
python
import ipfshttpclient
client = ipfshttpclient.connect('/ip4/127.0.0.1/tcp/5001')
# 파일 추가
result = client.add('image.jpg')
cid = result['Hash'] # QmX5s...
# 파일 가져오기
data = client.cat(cid)
NFT 메타데이터:
{
"name": "CryptoPunk #3100",
"image": "ipfs://QmX5s.../punk.png"
}
→ IPFS에 이미지 저장 → NFT는 CID 참조
관련 개념
- •P2P — IPFS의 분산 네트워크
- •해시 (Hash) — IPFS 콘텐츠 주소의 기반
- •NFT — IPFS에 메타데이터 저장
- •머클 트리 — IPFS DAG 구조
참고문헌
- •IPFS 공식 문서: docs.ipfs.tech