본문 바로가기

블록체인/이더리움

IPFS?

IPFS

IPFS는 "InterPlanetary File System"의 약자로 기존의 HTTP의 문제점을 해결하기 위한 대안으로 분산형 파일 시스템에 데이터를 저장하고 인터넷으로 공유하기 위한 프로토콜이다. 콘텐츠를 중앙화 된 서버에 저장하는 방식과 달리 분산형 노드에 저장한 후 쉽게 접근할 수 있는 경로를 제공해 NFT 이미지를 업로드하는데에 많이 사용되고 있다. 

 

기존 HTTP의 문제점

기존의 HTTP의 문제는 다음과 같다. 

  1. 불안정
  2. 중앙화
  3. 비효율

불안정

HTTP 프로토콜은 클라이언트가 서버에 요청을 보내면, 서버에서 응답으로 데이터를 보내주는 구조로 되어있다. 따라서 데이터를 가지고 있는 서버가 전원이 끊기거나 일부러 데이터를 전송하지 않는다면 해당 데이터에 접근 할 수 있는 방법이 없다. 

 

중앙화

오늘날의 웹은 수억명의 사람들이 소수의 서비스에 의존하게 되면서 고도로 중앙화 되어있다. 이는 몇 개의 서버를 장악하는 것만으로도 개인정보 유출 및 콘텐츠의 통제가 가능하며 공격으로 인한 서버 다운은 사회 시스템이 멈추어버리는 사태가 발생할 수 있다. 

 

비효율

강남스타일의 뮤직비디오 용량은 117MB이며 현재 44억뷰이다. 이것을 생각해보면 유튜브 서버에서 44억 번의 요청을 받았고, 총 514,800,000,000MB를 전송했다는 것이다. 이는 1GB 전송에 100원이 소요되었다고 계산해도 5,148,000,000원(51억 4800만)이 소모되었다는 것을 의미한다. 램이 1GB도 되지 않고 HDD의 용량도 30GB인 시절에는 용량 자체가 적기 때문에 파일 전송 효율에 크게 관심이 없었으나 최근 들어 콘텐츠의 용량이 증가하였고 대역폭의 발전 속도가 저장장치의 발전 속도를 따라가지 못하기 때문에 결국 상대적으로 통신속도가 느려진다는 것을 시사한다.

 

 

위에 HTTP의 문제들에 대한 해결책이 바로 IPFS이다. IPFS는 중앙화된 서버 없이 노드들의 P2P 통신으로 실현한 더 빠르고 안전한 열린 네트워크이다. IPFS는 몇몇 노드들의 연결이 끊어지더라도 연결이 유지되어 안정적으로 파일을 전송할 수 있다. 고용량의 파일을 빠르게 전달할 수 있으며 분산화된 해시 테이블로 파일의 중복을 알 수 있기 때문에 저장소도 효율적으로 사용할 수 있다. 

 

작동방식

  • 각각의 파일은 여러 개의 블록으로 이루어져 있으며, 각각의 블록은 해시로 표현된 고유의 이름이 있다.
  • IPFS는 모든 파일의 이름을 데이터베이스 속에 저장하며, 동일 파일의 중복을 배제하며, 각 파일의 버전 정보를 트래킹한다.
  • 각 노드는 본인이 관심 있는 파일만 저장소에 보관하며, 인덱싱 정보를 통해 누가 어떤 파일을 저장하고 있는지 알 수 있다. 
  • 네트워크에서 파일을 찾기 위해서는, 파일명을 조회하고 해당 파일을 갖고 있는 노드를 찾으면 된다.
  • IPNS를 통해 모든 파일명은 인간이 읽기 쉬운 형태(DNS와 유사한 개념)로 변환할 수 있다.

 

 

IPFS 공식사이트