분상형 파일 시스템(IPFS, Interplanetary Filing System)은 탈중앙화, 개인간(P2P), 무신뢰 방식으로 모든 종류의 파일을 저장하는 데 사용되는 블록체인 네트워크입니다. IPFS는 인터넷 상에서 지배적인 요청-반응 프로토콜로 자리잡은 하이퍼텍스트 전송 프로토콜(HTTP)을 대체한다는 목표를 지니고 있습니다. 따라서 웹의 정보 검색, 저장, 전송 능력을 획기적으로 변화시키고자 하는 것입니다. 2014년 처음 도입된 IPFS는 다양한 방법으로 광대역 저장 확대, 정보 보존, 웹의 탈중앙화를 통해 속도, 효율, 보안, 개방성을 보장하고자 하고 있습니다.
IPFS은 무엇일까?
IPFS는 P2P 하이퍼미디어 프로토콜로 인터넷을 더욱 빠르고, 안전하고, 개방적으로 만들고자 설계되었습니다. 이를 처음 발명한 Juan Benet은 개인 간 최대 100GB에 달하는 과학데이터 세트를 전송하고자 했습니다. 그는 현재 사용하는 웹 상에서 정보를 전송하고 저장하는 방법이 소수의 사람이 관리하는 바람에 너무 느린데다 해킹의 위험이 높다는 점을 알게 되었습니다. 따라서 Benet은 IPFS를 통해 다음과 같은 측면에서 특히 시스템을 개선하고자 했습니다.
- 속도:현재, 하이퍼텍스트 트랜스퍼 프로토콜(HTTP, Hypertext Transfer Protocol)이 클라이언트 서버 연산 모델(웹) 중 가장 흔하게 사용되는 요청-반응 프로토콜입니다. 그러나 HTTP는 단일 서버에서만 다운로드할 경우 P2P IPFS가 다수의 노드(유저)에서 동시에 조각을 회수합니다. 즉, 광대역이 상당히 절약되는 셈입니다.
- 효율성: IPFS의 탈중앙화 구조는 비트토렌트와 유사한 방식으로 작동합니다. 노드는 데이터 복사본(파일, 영화, 사진 등)을 유지하다가 시드 배정과 유사한 해시 요청(파일의 고유 로케이터 코드). 데이터가 IPFS에 처음 업로드되면, 해시 하나에 복사본도 하나만 만들어집니다. 즉, 처리할 정보도 덜하고 필요한 저장 용량도 더 적습니다. 뿐만 아니라 IPFS는 현행 시스템만큼 인터넷 연결에 심하게 의존하지 않기 때문에 정보 접근성도 높습니다.
- 보안: 데이터가 수정, 변경되지 않도록 확실히 하고자 IPFS는 두 개의 시스템을 사용합니다. 첫째, 시스템에 업로드되는 모든 데이터는 영구불변, 즉 변경이 불가능합니다. 둘째, 각 파일에는 고유의 지문-해시-가 주어집니다. 유저는 자신이 검색한 해시코드와 수신한 해시코드를 비교할 수 있습니다. 이 둘이 동일하면 그 안에 있는 정보도 동일합니다.
- 탈중앙화: IPFS의 P2P 시스템은 검열과 무관하게 정보 가용성을 보장합니다. 현재, 웹은 굉장한 중앙집중형으로 구현되어 있습니다. 아마존웹서비스(AWS)나 구글 클라우드 등 온라인에서 발행되는 모든 데이터를 보유하는 거대한 서버 농장을 소유한 단일 기업이 중심이 되는 겁니다. 정부나 주요 기업은 중국, 북한에서 처럼 검열을 하거나 심지어는 접근 가능한 정보를 삭제할 수 있습니다. 탈중앙화, 무신뢰 P2P 시스템을 사용함으로써 IPFS는 데이터 접근성을 모두에게 보장할 수 있습니다.
탈중앙화 vs 중앙집중형 웹 (출처: IPFS Ecosystem directory)
IPFS의 작동원리는?
IPFS는 블록체인 기술을 바탕으로 구축됩니다. 즉, 탈중앙화, 무신뢰를 기반으로 네트워크 전반에서 정보를 저장하고 공유할 수 있는 노드에 의존하는 겁니다. 이더리움 (ETH)이나 비트코인(BTC) 상에서 노드가 정보를 검증하고 저장하는 것과 유사한 방식으로 IPFS는 자체 노드를 활용하여 네트워크 상에서 정보(파일, 비디오 등)를 공유하고 저장합니다. 그 원리는 다음과 같습니다:
- 정보 검색하기: 서버는 현재 URLs을 기준으로 정보를 검색하여, 유저가 원하는 정보가 위치한 웹, 예를들면 웹사이트가 무엇인지 말해줍니다. 서버가 오프라인이거나 해킹을 당했다면 이는 문제가 될 수 있습니다. IPFS는 고유 해시 코드를 사용하여 파일 내용 자체의 위치를 확인하고 서버를 통해 경로를 우회합니다. 해시코드는 해시코드를 통해 파일 위치가 아닌 파일 자체에 직접적인 접근이 가능하게 합니다.
- 정보 저장 및 보안: 파일은 블록체인 상의 IPFS 데이터 오브젝트(data object)에 저장됩니다. 각 데이터 오브젝트는 최대 256Kb까지 파일을 보유할 수 있지만 그 이상의 데이터를 저장하려면 후속적인 IPFS 데이터 오브젝트에 연결될 수 있어야 합니다. 그러므로 전체 프로젝트는 블록체인 상에 상호 연결된 다수의 IPFS 데이터 오브젝트를 통해 저장되는 것이고, 결국 프로젝트는 해킹하기도 제거하기도 어려워집니다.
- 데이터 변경 기록 추적하기: IPFS에 저장된 데이터를 변경할 수 없기는 하지만 버전닝(versioning)을 통한 다양한 수정파일 관리는 가능합니다. 유저는 작업하면서 개정 버전을 업로드할 수 있다는 의미가 됩니다. 각 파일에는 고유 해시코드가 주어지고 코밋오브젝트(Commit Object)에 업로드됩니다. 그 후 데이터오브젝트와 같은 방식으로 연결되어 우리가 업로드 명령을 추적하고 정보 진행과정을 확인할 수 있도록 해줍니다(예를 들어 논문, 소설, 연구 등의 각 버전 업로드).
IPFS 사용방법은?
IPFS는 유저가 파일(비디오, 웹사이트, 논문, 연구 보고서 등)에 접근할 수 있을 뿐만 아니라 중앙집중형 당사자 없이 어디에서는 접근이 가능하도록 해줍니다. 따라서 더욱 빠르게 강력한 보안과 개방성을 가질 수 있습니다. 유저는 출처에 바로 접근할 수 있기 때문에 혹 검열의 대상이 될 수도 있었을 정보에도 접근할 수 있습니다. 뿐만 아니라 이 정보는 인터넷 접근성이 좋지 못한 지역에서도 접근이 가능하여 빈곤 국가나 부패 국가에서도 접근성을 부여하는 기회가 될 것입니다.
특히 학계나 기업에서 유용할 수 있는 또 다른 기능은 작업 진행현황을 추적하는 능력입니다. IPFS는 파일의 각 버전과 최종버전을 연결해두기 때문에 선형적인 추적이 가능합니다. 마지막으로 InterPlanetary라는 이름은 미래에 이 정보가 행성 간 전송될 수 있다는 사실을 말해줍니다. 현재, 적합한 조건 하에서라면 화성에서 지구로 4분만에 정보 요청을 전송하고, 다시 4분만에 회신을 보낼 수 있습니다. 이에 더하여 처리 시간은 수 밀리 초(milliseconds) 밖에 되지 않습니다. 그러나 일단 화성에서 다운로드가 되고 나면 파일은 이미 저장이 되는 셈이고 이에 따라 즉시 다운로드 가능할 수 있습니다. 이러한 점에서 IPFS는 정말 웹의 미래라고 할 수 있습니다.
IPFS는 누가 개발했을까?
Juan Benet은 스탠포드에서 컴퓨터사이언스를 전공하고 졸업했습니다. 그는 냅스터 기반의 음악 혁명 기간 중 중앙집중형 통제를 제거할 경우, 음악이 무제한으로 자유롭게 이용될 수 있음을 처음 깨닫고 무한한 이점을 인지하게 되었습니다. 비록 법적 공방으로 이러한 큰 성과 중 다수가 짓밟혔지만, P2P 네트워크 설계 자체의 가능성은 직접 목격한 셈입니다.
2013년 과학 혁신 관련 작업을 하면서 Benet은 대량의 데이터셋을 공유하고 버전을 업로드하는 데 사용되는 도구가 효율적이지 않은데다, 오류가 심하고 중앙집중화로 인해 느리다는 점을 깨닫게 되었습니다. 이를 바꾸고자 그는 GitHub의 데이터 연결 구조를 비트토렌트의 P2P 시스템과 연결하여 IPFS를 처음 발명하게 된 것입니다. 이를 바탕으로 2014년 5월 그의 첫 두 프로젝트 중 하나인 파일코인(Filecoin)과 IPFS로 프로토콜 랩(Protocol Lab)을 설립하였습니다.
IPFS의 한계는?
IPFS는 데이터에 더 빠르게 접근하고 정부 검열은 걱정하지 않아도 되는 신나는 미래를 미리 내다보는 기분이지만, 현재 상황에서 어느 정도 실현가능한 것이고, 앞으로 해결해야 할 문제는 무엇일까요?
- 검색 불가능: IPFS는 내용 기반의 해결방법(해싱)을 사용하여 정보가 변경되지 않고 웹사이트 충돌도 방지할 수 있습니다. 그러나 이러한 새로운 시스템에서 정보를 어떻게 검색할 수 있는 지는 여전히 명확하지 않습니다. IPFS는 개인이 다양한 내용을 저장할 수 있는 장소이기 때문에 유저 친화적인 검색 시스템을 필수적으로 보유해야 합니다. 접근가능한 검색 엔진이 없다면 인터넷 없는 구글과 다를바가 없습니다. 분명히 IPFS는 해시 검색을 염두에 두고 구축되었으나, 이는 기술에 대한 지식이 많지 않은 사람들을 소외시키게 됩니다. 이는 쉽게 해결할 수 있는 문제이고 자체포럼에서 논의되고 있기 때문에 보다 손쉬운 검색 시스템이 구현되는 것은 시간문제일 겁니다.
- 무(無) 규제탈중앙화 네트워크로 IPFS는 인터넷을 다시 사람들에게 돌려줄 수 있지만 이에 따른 위험도 존재합니다. 중앙 포인트 없이 너무 많은 데이터가 존재하기 때문에 규제 방안에 대한 의문이 생기기 때문입니다. 거짓뉴스, 증오연설, 테러집단, 암ㅅ장, 저작권 위반등의 유해한 컨텐츠는 어떻게 억제할 수 있을까요? 다른 블록체인은 작업증명이나 지분증명을 통해 거래와 정보를 검증할 수 있지만, 누가 무엇을 통해 논문, 비디오 영상 등과 같은 복잡한 정보를 검증하고 규제할 수 있을까요?
- 파일 가용성: 각 유저와 노트는 다운로드 한 파일 중 일부를 저장합니다. 즉 다른 유저가 접근할 수 있다는 의미가 됩니다. 그러나 정보의 일부 조각을 저장하는 모든 노드가 시스템 사용을 중단한다면 그 데이터는 상실되고 접근이 불가능해집니다. 비트토렌트에 시더(Seeder)가 없는 것과 비슷한 상황이 되는 겁니다. 따라서 가장 시급한 것은 유저가 복사본을 유지하도록 인센티브를 제공하는 겁니다. 이를 염두에 두고 IPFS는 파일코인을 설계하여 데이터 복사본을 최대한 온라인에 오래 유지하는 유저에게 보상을 제공하고자 하였습니다.
- 콘텐츠 생성자 보상 부족: 모든 정보가 유저에게 속하고, 수익을 창출하고자 하는 중앙집중형 집단이 없다면 광고나 다른 수익 창출형 도구도 없을 겁니다. 그렇다면 의문이 생깁니다. 컨텐츠 생성자는 어떻게 보상을 받게 될까요? 그리고 보상이 없다면, 이들이 어떠한 동기로 컨텐츠를 계속 생성할까요?
IPFS로 수익화가 가능할까?
앞서 언급한 것처럼 IPFS의 문제 중 하나는 파일 가용성입니다. 이를 해결하기위해 IPFS보다 블록체인인 파일코인이 먼저 구축되어 저장 시장을 제공하였습니다. 파일코인을 사용하면 유저는 여분의 하드드라이브 공간을 팔아 데이터를 저장해주고 그 대가로 파일코인의 형태로 자산을 획득할 수 있습니다. 이를 통해 유저는 수익화 기회가 생기기 때문에 최대한 오랫동안 IPFS 상에 더 오래 파일을 유지해줄 수 있습니다.
결론
IPFS의 탈중앙화와 인터넷 연결 의존성 절감은 전 세계의 범-정보 접근성에 한 발 더 다가가는 신나는 기회를 제공합니다. 특히 인터넷 연결성이 제한되거나 정부가 데이터 접근을 막고 조작하는 지역에 사는 사람들에게는 희망적인 기술입니다. IPFS의 향상된 속도와 효율성도 장점입니다. 또한 기술적인 진보를 통해 플랫폼에 다른 길을 열어줄 수도 있습니다.
그러나 해결해야 할 문제도 있습니다. 가장 시급한 것은 보안일 겁니다. 유저가 해시코드로 수령한 정보와 검색한 정보가 일치하는 지 확인한다 하더라도 표준화가 결여되어 있다는 것은 문제입니다. 또 다른 문제는 컨텐츠 생성입니다. 컨텐츠를 생성해도 보상이 없기 때문입니다. 마지막으로 IPFS에 집중해서 보자면 정보 검색에 있어 어려움이 있습니다. 컨텐츠 기반의 해결방법은 현명하지만 애초에 유저가 어떻게 획득한 해시의 위치를 특정할 수 있을까요? IPFS는 분명 장점이 많고 파일 저장 및 웹 검색의 혁신을 불러올 수 있는 적절한 시스템으로 보이지만 이미 산적한 문제를 해결하는 것이 먼저일 것으로 보입니다.