본문 바로가기

블로그

LG CNS 기술블로그 DX Lounge에서 최신 IT 소식을 만나보세요!

IT Trend

블록체인 기술을 활용한 분산형 웹 ‘IPFS’가 뜬다!

2022.05.19

최근 인기를 끌고 있는 대체불가능토큰(NFT)은 NFT의 정보와 소유자, 거래 내역 등을 블록체인상에 저장해 두고 있습니다. 하지만 블록체인에 등록된 NFT에는 실제 영상이나 이미지 같은 데이터가 존재하지 않는데요. 실제 원본 데이터는 특정 서버에 저장되어 있기 때문입니다.

세상에 존재하는 수많은 데이터는 어떤 공간에 저장되어 있는데요. 이 공간은 특정 기업이 보유한 서버일 수도, 클라우드 형태일 수도 있습니다. 만약 서버가 데이터를 한 곳에 저장하는 중앙 집중 방식이라면 데이터에 대한 검열 문제가 발생하거나, 서버가 공격을 받으면 데이터를 불러올 수 없게 될 수도 있는데요. 최악의 경우 데이터가 모두 날아가거나 서버에 접속조차 할 수 없는 상황이 일어날 수 있습니다.

하지만 한 번 저장해두면 영원히 사라지지 않는 데이터 공간이 있다면 어떨까요? AWS나 구글 클라우드 같은 클라우드가 이러한 역할을 하지만, 특정 기업이 소유하고 있는 서비스라 데이터를 저장하는 만큼 비용을 지불해야 합니다. 최근 이러한 기존의 데이터 저장 구조를 바꾸고 분산형 웹을 구현하기 위한 움직임이 꾸준히 진행되고 있습니다.

IPFS의 탄생

인터넷의 중요한 특징 중 하나는 중앙화 구조입니다. 일반적으로 데이터는 특정 기업이나 주체가 관리하는 서버에 보관되는데요. 이러한 중앙화 구조는 데이터를 빠르게 전달한다는 장점이 있습니다. 가장 많이 사용하는 하이퍼텍스트전송프로토콜(HTTP) 방식은 URL이란 특정 주소를 입력하면 ‘위치 기반‘으로 데이터에 접근합니다. HTTP는 데이터를 관리하기 편하고 용량을 늘리는 등의 작업이 수월한데요.

하지만 보안이나 효율성의 측면에서 단점이 있습니다. 데이터에 대한 검열도 데이터를 수집, 저장한 주체가 임의로 하게 되죠. 또한, HTTP는 백본(Backbone) 네트워크의 의존도가 높고 비효율적이며 공격의 대상이 되기 쉽습니다. 백본 네트워크란 연결돼있는 소형 회선들로부터 데이터를 수집해 빠르게 전송할 수 있는 대규모 전송회선 입니다.

웹 시대가 점차 발전하면서 웹과 서버에서 다뤄야 하는 데이터의 양과 저장 비용도 상당히 증가했습니다. 최근 많이 사용하는 비디오, 오디오 데이터를 비롯해 사용자가 만들어 내는 데이터의 양은 상상을 초월하는데요. 고화질의 비디오와 대규모 오디오 스트리밍의 경우 전송 및 유지 관리가 쉽지 않습니다.

만약 HTTP와 같은 중앙화 구조의 데이터 서버가 공격을 받아 사용할 수 없게 되거나, 서버 내 데이터가 모두 삭제되는 상황이 발생한다면 어떤 일이 벌어질까요? 이러한 문제점 때문에 변화를 추구하는 새로운 웹 시대의 데이터 저장 및 제공 방식이 주목받고 있습니다. 새로운 데이터 저장 방식은 데이터를 안전하게 분산 저장하고 이를 추적하는 것도 가능한데요. 중앙화 방식의 구조적 단점과 검열 문제 등을 극복하고 누구나 언제든지 쉽게 데이터에 접근할 수 있습니다.

HTTP와 IPFS 비교(출처: students x students)

앞서 언급한 새로운 데이터 저장 및 제공 방식은 바로 ‘IPFS(InterPlanetary File System, 분산형 파일 시스템)’입니다. IPFS는 데이터를 수많은 노드에 호스팅하고 백업할 수 있는 P2P(Peer to Peer)분산 네트워크인데요. 완전한 분산 시스템이자 네트워크인 IPFS에는 수많은 공간에 데이터가 분산되고 복제, 저장됩니다. 이 덕분에 한 곳의 데이터가 삭제되더라도 언제나 같은 데이터에 접근할 수 있습니다.

IPFS는 2014년 프로토콜 랩스(Protocol Labs)를 창업한 프로그래머 후안 베넷(Juan Benet)이 고안한 아이디어인데요. 그가 개발한 IPFS는 P2P 네트워크에 접속하는 모든 이용자가 완전히 분산된 방식으로 데이터를 저장하고 배포하는 시스템입니다. 스탠퍼드 대학교에서 컴퓨터 공학을 전공한 후안 베넷은 기존의 비트토렌트, 냅스터와 같은 프로토콜을 기반으로 HTTP를 대체할 수 있는 아이디어를 IPFS에 적용했습니다.

IPFS에 저장된 데이터는 작게 분할되어 여러 컴퓨터와 저장 공간 등에 분산되는데요. 이때 사용자가 데이터를 찾을 수 있도록 해시(Hash)가 할당됩니다. 해시란 다양한 길이를 가진 데이터를 고정된 길이를 가진 데이터로 매핑하는 것을 의미합니다. IPFS에서 저장된 데이터를 다시 불러올 때 기존 방식과 차이점이 있는데요. 기존에는 ‘찾을 위치’를 시스템에 전달하는 방식으로 URL 혹은 데이터 서버가 있는 위치인 IP 주소를 통해 데이터를 찾는 식이었죠. 반면 IPFS는 ‘찾고 있는 대상’을 시스템에 전달해야 합니다. 데이터나 콘텐츠와 같이 찾고 있는 대상이 일종의 주소의 역할을 하는 것입니다.

IPFS에서 시스템이 요청을 받으면 노드가 응답을 시작하는 네트워크로 해당 요청을 보냅니다. 그러면 네트워크 전체에서 사용 가능한 데이터를 전달할 수 있는 노드의 응답을 받게 되는데요. 이때 IPFS는 블록체인에서 많이 채택해 잘 알려진 ‘SHA-256’ 해시를 사용해 데이터를 보호하고 데이터에 표식을 붙입니다.

각 데이터에는 CID(Contents ID)가 부여되는데요. 이 CID를 확인하면 동일한 파일인지 구분이 가능합니다. 데이터 요청이 있을 때, 이 CID를 활용해 여러 데이터 공간에서 전송할 수 있는 데이터를 가져오게 됩니다.

IPFS는 데이터 전송 속도를 높이고 네트워크 대역폭을 크게 절약할 수 있습니다. 유휴 데이터 저장 공간을 활용하므로 저장 비용이 감소하는데요. 중앙화 클라우드 저장 공간과 비교하면 암호화 기술, 블록체인과의 결합을 통해 더욱 안전하게 데이터를 보관할 수 있습니다.

CID의 구조 (출처: Protocol Labs)

IPFS의 구조와 중요성

이러한 구조는 IPFS가 DAG(Directed Acyclic Graph)라는 것을 활용하기 때문에 가능한 것인데요. DAG는 방향성 비순환 그래프라고 하며, 다양한 분산 시스템에서 사용하는 데이터 구조의 한 가지 형태입니다. 이 DAG를 통해 IPFS에서 데이터 간 링크를 활성화하고 이동시킬 수 있습니다. IPFS는 머클 DAG(Merkle DAG)라는 구조를 활용합니다. 머클 DAG 구조에서 각 노드는 보유한 내용을 나타내는 고유한 해시를 갖고 있는데요. 이 해시를 통해 개체나 노드를 식별하는 게 가능하고 이를 통해 데이터가 있는 장소를 나타낼 수도 있습니다.

IPFS에서 DAG는 효율적인 검색이 가능하도록 설계됐습니다. 또한 데이터의 개별적인 변경 사항이 발생하더라도 이를 추적해 변경 내역을 업데이트할 수 있습니다. 이러한 구조는 데이터의 각 버전과 최종 버전을 연결하기 때문에 선형적인 추적이 가능하죠. 해당 방식으로 특정 웹사이트에서 과거 버전뿐만 아니라 업데이트가 일어난 모든 기록을 보존할 수 있습니다.

기본적인 IPFS의 구조는 마치 수많은 컴퓨터의 여러 폴더에 데이터를 잘게 조각내 보관하는 구조처럼 되어 있다고 생각할 수 있는데요. 분산된 데이터에는 부여된 CID는 물론 폴더 자체에도 CID가 있기 때문에 잘게 조각난 여러 데이터를 빠르게 구분하고, 하나로 합쳐 가져오는 것도 가능합니다.

우리가 URL을 사용하는 것과 유사하게 IPFS는 https://ipfs.io/ipfs/ 와 같은 구조를 갖고 있습니다. 차이점은 IPFS는 ipfs.io를 통해 첫 관문 앞에 서게 되고, CID에 해당하는 데이터를 찾아 불러온다는 것입니다. CID 부분은 긴 해시로 돼있으며 특정 데이터를 찾는 역할을 합니다.

검색을 위해서 IPFS는 https://ipfs-search.com을 활용할 수 있는데요. 만약 검색창에 Cat이라는 단어를 넣고 검색하면 문서, 오디오, 이미지, 비디오, 디렉토리 등으로 구분된 결과를 얻을 수 있습니다. 이때 IPFS에 저장된 데이터를 종류에 따라 분류된 결과를 보여주는데요. 만약 긴 숫자와 문자로 구성된 해시를 알고 있다면 검색창에 해시를 넣어도 데이터를 동일하게 불러옵니다.

IPFS의 검색 서비스(출처: IPFS SEARCH)

IPFS가 향후 새로운 웹 시대, 웹 3.0에서 중요한 역할을 하는 이유는 다음과 같습니다. 지금까지 데이터는 제3자의 손에 넘어갔습니다. 페이스북이나 구글 같은 회사는 개인 사용자의 데이터를 수집하고 이를 광고주와 같은 제3자에게 마음대로 판매했죠. 데이터는 공용 데이터가 아니라 개인 정보이기 때문에 이와 같은 행위는 개인 정보 침해에 가깝습니다.

또한 사용자가 생성한 데이터를 거대 플랫폼이나 주체가 마음대로 검열하고 규정을 위반했다고 제재를 가하거나 데이터를 삭제하기도 합니다. 데이터를 소유하고 있다고 데이터를 만든 주체가 아님에도 불구하고 마음대로 검열하는 권한을 갖게 된 것이죠.

IPFS가 활성화될수록 특정 기업에 종속되지 않고 데이터의 저장이나 변경에 대한 주권을 사용자가 찾아올 수 있는데요. 이미 이러한 움직임은 여러 기업과 다양한 프로젝트에서 시작되고 있습니다.

예를 들어 브레이브(Brave)와 오페라(Opera)와 같은 웹 브라우저가 IPFS 링크 기능을 지원하는데요. 이 웹 브라우저에서 IPFS 링크를 입력하면 바로 사이트나 파일로 이동할 수 있습니다. 브레이브는 자체 노드를 통해 IPFS 데이터에 바로 접근할 수 있는 옵션을 제공하기도 합니다.

크롬이나 엣지 같은 웹 브라우저에서는 https://ipfs.io 나 https://cloudflare-ipfs.com과 같은 공용 게이트웨이를 사용하여 IPFS에 접속할 수 있습니다. 또한 크롬과 엣지, 파이어폭스 등에서는 IPFS Companion이라는 확장 프로그램을 추가해 사용하는 것이 가능하죠. 이는 웹 브라우저에서 IPFS 노드와 바로 연결될 수 있는 방법이기도 합니다.

NFT 붐이 일면서 NFT의 원본 데이터를 저장하고 백업하기 위해 IPFS의 분산 네트워크에도 NFT를 보관하기 시작했습니다. 저장 공간이 해킹당하거나 데이터가 삭제되면 NFT의 가치에 심각한 훼손이 발생하는데요. 이를 방지하기 위해 IPFS의 수요가 늘어나고 있습니다.

대표적인 NFT 마켓 플레이스인 오픈씨(OpenSea)와 블록체인 메인넷인 솔라나(Solana)는 데이터 저장에 알위브(Arweave)라는 IPFS를 활용하고 있습니다. 또한 IPFS를 만든 후안 베넷과 그의 회사는 파일코인(FileCoin)이라는 프로젝트를 통해 P2P 저장 공간을 제공하는 대신 암호화폐로 보상받는 시스템을 만들고 있습니다. 파일코인을 사용하면 사용자는 여분의 하드드라이브 공간을 제공해 데이터를 저장해주고, 그 대가로 파일코인을 받습니다. 반대로 저장 공간을 빌리려면 파일코인으로 지불해 저장 공간을 확보할 수도 있습니다.

블록체인 기반 음악 스트리밍 서비스인 오디우스(Audius)도 음악의 자유로운 표현과 배포를 위해 검열하지 않는 IPFS를 핵심 구성 요소로 사용합니다. 사용자가 음악을 공유하고 수익을 창출하면서 빠르게 스트리밍이 가능한 구조를 IPFS를 통해 찾은 것이죠.

파일코인의 구조(출처: hash.kr)

IPFS의 탄생

“IPFS의 미래는 무엇입니까?”라는 질문이 있을 때 떠올릴 수 있는 IPFS의 장점은 명확합니다. IPFS에서 저장 공간은 완전히 분산되어 있고 높은 확장성과 효율성을 보여줄 수 있기 때문에 기존 구조의 단점을 보완할 수 있다는 점입니다. 또한 항상 데이터에 접근해 불러올 수 있고, 보안 관련 공격에도 강합니다. IPFS는 소스 코드가 공개돼 있어 무료 소프트웨어 라이선스에 따라 사용할 수 있는데요. 덕분에 누구나 IPFS에 새로운 기능을 적용하는 것이 가능하고, 데이터의 접근과 활용에 혁신적인 방식을 가져올 수 있습니다.

물론 아직 탄생한 지 10년도 되지 않은 IPFS가 장점만 갖고 있지는 않습니다. 이러한 유형의 시스템에 대한 경험이 없는 사용자는 IPFS를 사용하기가 복잡하게 느껴질 수 있습니다. 또한 IPFS를 활용하기 위해서는 노드 다운로드와 운영과 같은 운영상 준비가 필요한데요. URL이 아닌 긴 해시 구조가 익숙하지 않기 때문에, 지난 수십 년간 이어져 온 웹 이용 방식에도 변화가 필요합니다.

IPFS는 웹에 능숙한 모든 사용자에게 기본적인 수준에서 이해가 되어야 할 텐데요. 얼마나 많은 사용자가 노드를 다운로드하고 운영하려고 할지, 친숙하고 표준적인 기존의 웹 URL 대신 투박한 콘텐츠 식별자(CID) 링크를 사용하고 싶어 할지는 의문입니다.

IPFS는 표준 웹 사이트만큼 매끄럽게 사용하기 쉽지는 않지만 웹 3.0이 주목받으면서 이 문제점은 점차 개선될 것으로 보입니다. 일례로 IPFS 데이터를 나타내는 문자열이 너무 길고 복잡하다는 문제를 해결하기 위해 도메인 주소를 쉬운 URL 형태로 제공하는 언스타퍼블 도메인(Unstoppable Domains)이라는 서비스도 생겨났고, 많은 웹 브라우저에서 이를 지원하기 시작했습니다.

IPFS가 추구하는 탈중앙화와 분산화, P2P 연결 등은 정보의 접근성을 높이는 기회를 제공합니다. 또한 사용자 데이터 주권을 되찾고 소유권과 공유의 활성화, 이를 통해 수익 창출이 가능한 기반을 제공할 것으로 예상되는데요. IPFS가 앞으로 더욱 향상된 속도와 효율성, 기술적인 진보를 이루어 관련 서비스나 기술에 새로운 장을 열어줄 수 있을지 더욱 기대됩니다.


글 ㅣ 윤준탁 ㅣ IT 저널리스트

챗봇과 대화를 할 수 있어요