개요
1. IPFS의 정의
2. IPFS 와 HTTP , 파일 시스템의 차이
3. IPFS, 왜?
4. IPFS의 예
1. IPFS의 정의
우선 IPFS에 대해 설명하기 전에, IPFS를 영어로 다시 풀어보자.
IPFS란,
https://ipfs.io/
Inter Planetary File System
이다. 그럼 이걸 한글로 해석하면 무슨 뜻일까?
Inter (상호간의)
Planetary (행성의)
File System (파일 시스템)
이다.
파일 들이 각 각의 행성에서 상호작용하는 파일 시스템을 뜻한다. 다시 말해, 각 행성에 뿌려진 "분산형 파일 시스템"을 뜻한다.
각 행성에 뿌려진 분산형 파일 시스템
그렇다면, 지금 현재의 파일 시스템과는 무슨 차이가 있을까?
2. IPFS와 HTTP, 파일 시스템의 차이
보통 IPFS 는 HTTP 프로토콜과 많이 비교를 한다. 이 둘의 차이는 파일을 불러오는 방식에 큰 차이가 있다.
HTTP 방식은 주소 호출 방식을 택하고 있고, IPFS는 파일 고유값 호출 방식을 택하고 있다.
HTTP는 주소 호출 방식, IPFS는 파일 고유값(CID) 호출 방식
또 다른 차이 하나는, 전체를 한번에 가져오느냐, 쪼개진 조각을 여러군데에서 갖고와 전체를 합치는 방식이냐의 차이다.
전체를 한번에 가져오느냐 VS 쪼개진 조각을 갖고와 합치느냐
2-1. HTTP 방식의 예
무슨 말이냐 하면, 기존에 우리가 사용하던 HTTP 방식은,
파일이 보관된 주소를 알아내어, 그 파일의 주소만으로 해당 파일을 불러온 반면,
IPFS는, 데이터(혹은 파일)를 변환한 해쉬 값을 통해, 해당 파일의 일부를 보관하고 있는 여러 컴퓨터(서버-행성)에서 갖고와 하나로 합쳐서 파일을 불러오는 방식이다.
예를 들어보자, HTTP방식은, 인터넷에 돌아다니는 이미지 파일을 불러올 때, 우리는
http(s)://itseminar.tistory.com/this_is_sample_file.jpg
와 같은 형식으로 이미지를 불러온다. 이는 파일의 주소를 통해 해당 파일을 불러옴을 뜻한다.
HTTP는, 파일의 주소를 통해 해당 파일을 불러온다.
2-2. IPFS 방식의 예
IPFS 방식은, 데이터를 저장할 때, 각 데이터마다 컨텐츠의 아이디(CID)가 부여되는데, 이 컨텐츠의 아이디로 직접 파일을 불러온다
http(s)://itseminar.tistory.com/ipfs/QmXoypizjW3WknFiJnKLwHCnL72vedxjQkDDP1mXWo6uco
이렇게 요청 하면, 해당 서버(각 행성)에서는 각 해쉬에 해당하는 파일들을 다른 서버(각 행성)에 요청/수집하여, 그 파일들을 요청한 사람(혹은 컴퓨터)에게 보내준다.
IPFS는, 컨텐츠의 아이디로 직접 파일을 불러온다
3. IPFS, 왜?
1) 파일 변조가 불가능하다.
2) 불러오기 속도가 빠를 수 있다.
3) 대역폭을 관리하는데 유용하게 쓰일 수 있다.
3-1. 파일 변조가 불가능하다.
: 각 각의 데이터들은 업로드 될 때, 고유의 컨텐츠 아이디를 부여받게 되는데, 해당 컨텐츠의 아이디로 데이터들은 호출 되므로, 파일이 변조가 되었다면, 그 것은 새로운 파일로 인식되게 되고, 변조된 파일은 이전에 발급받은 컨텐츠 아이디와는 다르므로, 변조된 파일은 호출되지 않는다. (컨텐츠 고유아이디 값이 다르므로!)
변조된 파일은 호출되지 않는다
3-2. 불러오기 속도가 빠를 수 있다.
: 불러오기 속도가 느릴 수도 빠를 수도 있는데, 빠를 수 있다고 가정하는 이유가, 각 각의 파일들은 여러개의 컴퓨터(행성)에 저장되게 되는데, 데이터를 요청하는 컴퓨터와 가장 가까운(빠른) 서버(행성)들에 데이터 (조각 혹은 전체)를 요청하게 되므로, 속도에서 이점을 가져갈 수 있다.
데이터를 요청하는 컴퓨터와 가자아 가까운 서버에 데이터를 요청
3-3. 대역폭을 관리하는데 유용하게 쓰일 수 있다.
: 10명의 사용자가, 특정 한 이미지를 요청하는 상황을 예로 들어보자. 기존의 http 방식은 해당 이미지를 갖고 있는 특정 서버에, 해당 이미지파일을 보내달라고 요청한다. 그럼 10명의 사용자는 해당 서버에 요청을 한번에 하게되고, 이는 해당서버에 10개의 트래픽이 동시에 발생하게 된다. 만약 10명이아니라, 수십만명이면 어떻게 될까? 그럼 해당 서버 대역폭이 초과하여, 이미지를 제대로 받을 수 없거나, 서버가 제대로 동작하지 않는 일이 발생한다. (d-dos 공격이라고도 부른다 - 물론 이미지를 한번에 요청하진 않는다)
그럼 IPFS에서는 어떻게 될까? 10명의 사용자는 각 각의 근처의 컴퓨터(행성)에 이미지 조각(전체)을 요청한다. 그럼 해당 이미지를 찾기 위한 트래픽이 한곳에 몰리지 않고, 해당 사용자의 근처의 컴퓨터(행성)에서만 트래픽이 발생한다. 즉, 트래픽 분산효과가 일어날 수 있다라는 얘기다.
해당 사용자의 근처의 컴퓨터에서만 트래픽이 발생
4. IPFS의 예
4-1. 파일코인
암호화폐 이전에, IPFS 라는 건 일종의 논문정도에 불가능했다. 왜, 논문 정도로 생각하고 있었을까? 동영상을 저장해놓기 위해, 이 글을 읽는 독자님의 컴퓨터를 24시간 켜놔달라고 부탁한다고 가정하자. 당신은 컴퓨터를 24시간, 컴퓨터를 켜놓고 있어줄 것인가? 하지만 이를 해결하기 위해, 암호화폐를 활용하여 보상체계를 구축하고 IPFS를 점차 도입하고 있다.
(광고 아님)
암호화폐를 활용하여 보상체계를 구축
4-2. NFT (Non Fungiable Token)
위에서 설명했던 것과 같이 파일 변조가 불가능하다는 점을 이용해, 콘텐츠의 아이디를 블록체인 네트워크에 올려놓기 시작하였다. 그리하여 해당 콘텐츠의 메타데이터들이 변경될 때마다, 블록체인위에 기록을 남기고, 해당 블록들이 위변조를 보장해주는 시스템으로 활용되기 시작하였다. 세계적으로 가장 유명한 opensea와 게임 NFT로 유명세를 펼치고 있는 위메이드, 미르4도 좋은 예.
(광고 아님)
콘텐츠의 아이디를 블록체인 네트워크에 올려놓기 시작
'시스템' 카테고리의 다른 글
초 단위 크론 실행 가능할까? “당연!” (0) | 2020.10.26 |
---|