새로운 데이터
데이터란 무엇인가? 이 질문은 현실적이기보단 철학적이지만 우리가 동의할 수 있다고 보는 정의는 데이터는 표현을 위한 도구라는 점이다.
데이터를 사용하여 거의 모든 것을 표현할 수 있지만 그림에서와같이 표현의 의미가 주관적이고 가지게 되는 맥락에 의존한다. 여론조사 요원은 정확하게 사람의 심신 상태를 파악하는 데이터를 게시하지만, 통계학자 네이트 실버(Nate Silver)는 이 데이터는 같은 질문에 대한 더 복잡한 답이라고 생각한다.
우리는 컨텍스트를 변환시킴으로써 데이터에 의미를 부여한다. 우리는 데이터로부터 그리고 데이터에 연결하여 더 좋은 컨텍스트와 의미를 축적한다. 우리는 데이터 연결의 많은 수단이 있다. 소셜 네트워크는 많은 개인의 표현을 확보하고 이러한 표현을 더 넓은 상관관계에 있는 데이터베이스의 타인과 연결한다. 웹은 같은 페이지 내에서 혹은 웹의 다른 사이트 간에 URL 링크로 페이지를 연결한다. 네이트 실버도 데이터를 수집하고 확률론적 지표로 다른 측정점을 따지는 복합 모델로 연결한다.
콘텐츠 주소 지정
수십년 동안 연구원과 엔지니어는 해시 연동의 데이터 구조에 구축해왔다. 이러한 구조는 데이터 간의 연결이 콘텐츠의 암호화 해시다. 이러한 데이터 구조의 첫 번째로 널리 채택된 사용 사례는 깃(git)과 이번 10년간 우리는 이러한 해시 연동 구조를 사용하는 블록체인과 그 위에 구축된 어플리케이션의 폭발적인 증가를 보았다.
해시 연결은 흥미로운 부분이 있다. 데이터를 일관적인 위치를 사용하여 지정하지 않고 데이터 간의 연결을 생성할 수 있게 한다. 데이터베이스는 보통 이렇게 할 수 없으며 디스크의 위치를 사용해 데이터를 지정한다. 웹의 URL은 사이트 간에 연결할 수 있지만 이 링크는 사이트의 위치를 포함한다. 해시 연결을 사용하면 저장하지도 않은 데이터의 관계를 정의할 수 있으며 누구나 안전하게 해당 데이터를 제공할 수 있다.
데이터에 대한 링크가 해시 그 자체이므로 항상 일치하는지에 대한 여부를 확인하기 위해 해시를 컴퓨팅할 수 있다. 이 방식으로 신뢰 없이 p2p 네트워크가 해시 연동 데이터를 교환할 수 있으며 비트토렌트(BitTorrent)가 대표적인 예시다. 이러한 데이터 지정 방식을 '콘텐츠 주소 지정'이라고 부르며 기존의 '위치 주소 지정'과는 상반된다.
오픈 소스의 한계점
많은 사람은 '오픈 소스의 승리'라고 말하는 데에 익숙해졌다. 한 측면에서 이는 사실이며 어플리케이션에서 사용하는 코드 대부분은 오픈 소스다. 하지만 오픈 소스는 코드에 대한 것만큼 가치 및 자유에 대해 말한다.
자유는 특정 허가의 영향을 받는 몇 줄의 코드로 측정할 수 없다. 자유는 최종 산출물이 보장하지 않으면 쓸모없다. 오픈 소스 코드가 이겼을 수도 있지만, 오픈 소스 애플리케이션은 기껏해야 미미하다. 대부분의 어플리케이션은 여전히 등록상표가 붙어있으며 소유권이 있는 약간의 제품 코드를 사용한 오픈 소스 코드를 통합함으로써 만들어진다.
오픈 소스 커뮤니티는 제품 구축을 할 수 있다. 오픈 소스 커뮤니티는 매우 놀라운 것을 달성할 수 있으며 한 가지 잘 못하는 점은 은행 계좌 관리다. 현대 어플리케이션을 구축하는 데에 필수다.
대부분의 도구 체인이 오픈 소스이며 다중 사용자 어플리케이션은 사실상 반복적인 데이터 요금을 요구한다. 대다수 현대 어플리케이션의 가치는 확보하는 사용자 데이터가 아닌 다양한 사용자가 생성한 데이터 간에 구축하는 관계에 있다. 이러한 관계는 매달 반복되는 청구서를 의미하는 대규모 관계형 데이터베이스 없이 구축하기에는 현실적이지 못했다.
생각해보면, 깃헙(GitHub) 페이지에 게시된 깃헙 레포(이미 Cloudflare에 의해 자동으로 앞에 있음)에서 트위터나 페이스북 경쟁자를 구축하는 것을 데이터베이스가 막는 것 외에는 아무것도 없다. 이는 놀라운 배포 스택이며, 페이스북과 트위터가 출시되었을 때보다 훨씬 더 나은 환경을 개발하고 확장할 수 있다.
개인의 고유한 스토리지 가져오기
현재 블록체인에 구축된 기존의 중앙 집중식 어플리케이션과 'DApps'(분산형 어플리케이션) 간의 큰 격차가 있다. 블록체인은 어플리케이션이 중앙 집중화 없이 공유된, 심지어 전반적인 상태를 조작할 수 있게 하는 거래를 제공한다. 데이터베이스 거래는 상당히 유사한 일을 하므로 이러한 트랜잭션이 기존의 데이터베이스 거래를 대체해야 하는 것처럼 보일 수 있지만, 대부분의 응용 프로그램은 인덱싱을 통해 구축된 관계를 제외하고는 사용자 간의 공유 상태가 거의 없다.
사람들이 트위터나 페이스북을 이용하는 방법을 보면 그들만의 공간에 효과적으로 게시하며 거래를 조정해야 하는 다른 사용자가 없다. 한 사용자의 데이터와 다른 사용자의 데이터 간에 구축된 관계는 보조적이다. 순전히 개인이 개별적으로 무엇을 게시하는지에 대해 생성된 견해다. 이중 무엇이든지 실제로 분산형 거래를 요구하지 않는다. 대신에 분산형 연결을 요구한다.
사람들이 제삼자 어플리케이션인 구글 혹은 깃헙에 로그인하는 방식으로 사용자가 데이터 제공자에 '가입'하는 것은 상상하기 어렵지 않다. 하지만 그 차이는 단순히 입증하는 것이 아니라 어플리케이션에 해당 제공자에 사용자의 데이터를 저장하는 점이다. 이는 얼마 동안 가능했지만 다양한 제공자가 관리하는 데이터 간의 관계를 생성하는 어플리케이션에 대한 수단이 없었기 때문에 실용적이지는 못했다. 다행히도 콘텐츠 주소 지정이 이 기회를 제공한다.
인디웹(IndieWeb) 등이 실수한 부분은 애플리케이션 중앙 집중화 솔루션을 개인 애플리케이션 저장소 또는 "개인 클라우드"로 프레임화하는 부분이다. 이 접근 방식은 다중 사용자 어플리케이션을 매우 어렵게 만들고 사용자 대부분이 직접 무엇을 실행하기보다 제공자를 고용하는 것을 선호한다는 사실을 무시한다. 데이터 중앙화와 어플리케이션 중앙화의 차이를 분명히 하는 것은 한 그룹이 어플리케이션을 관리 및 유지보수하고 사용자가 개인의 데이터 제공자를 선택할 수 있는 더 나은 모델을 제공한다. 이 접근 방식은 또한 어떤 새로운 어플리케이션이든 사용자가 선택한 데이터 제공자에게 진위 증명이 가능하므로 어플리케이션 연합을 강요한다.
IPLD
지난 몇 년간, IPLD 프로젝트는 콘텐츠 주소 지정 데이터 구조의 문제를 해결하기 위해 다양한 언어로 여러 툴링을 제공했다. 또한, 이러한 기초사항 위에 구축될 수 있는 새로운 데이터 구조의 광활한 세계를 탐험할 수 있게 했다.
IPLD(행성 간 연결된 데이터) 프로젝트는 IPFS와 파일코인의 근본적인 데이터 계층이다. IPLD에서 생성한 데이터는 어디에든지(로컬, S3, 많은 백엔드 스토리지) 저장될 수 있다. IPFS를 사용하여 지속하고 분산될 수 있으며 파일코인에 저장된다. 예를 들어 CAR 파일은 Go, 러스트(Rust), 자바 스크립트의 라이브러리와 함께 전송에 구애받지 않는 방식으로 IPLD 콘텐츠 주소 데이터를 이동하기 위한 획일적인 형식을 제공한다.
IPLD는 단순히 데이터를 표현하는 수단이 아닌 데이터를 연결하는 수단이다. 심지어 다양한 해시 메서드를 사용하여 암호화 형식 간에 연결할 수도 있다. 프로젝트는 상당히 만기에 이르렀다. 데이터베이스 구축을 시작할 때이며 일상의 어플리케이션이 이러한 새로운 패턴에 적용되는 방식에 대해 생각할 때다.
참고사항: IPLD는 IPFS에서 파일 및 디렉토리를 나타내는 용의 기본 프로토콜 버퍼(Protocol Buffers) 기반 형식인 UnixFS의 일반화라고 생각할 수 있다. 즉, IPLD는 UnixFS의 상위집합이며 아무 임의의 연결된 데이터를 나타내는 데에 사용할 수 있다.
데이터의 웹
사용자가 원하는 곳에 전송하는 방법을 알 필요 없고 범용적인 방법으로 옮기는 것 이상의 일을 하며 모든 이전 어플리케이션의 데이터 위에 모든 미래 어플리케이션을 구축할 수 있게 하는 것은(Ceramic이 탐구한 접근 방식) IPLD를 분산형 웹의 데이터 계층으로 만든다.
같은 방식으로 웹사이트는 인터넷의 모든 다른 웹사이트에 연결할 수 있으며 IPLD에 데이터 구조를 구축했을 때 구축된 모든 어플리케이션이 생성한 데이터에 연결할 수 있다. 중앙 집중식 데이터베이스를 탈중앙화 데이터베이스로 교체하지 않는다. 데이터의 본질 자체를 교체한다.
IPLD의 데이터는 제공자가 확보하고 제어하는 것이 아니라 전 세계가 접근할 수 있으며 누구나 배포할 수 있다. 트위터를 다른 트위터로 대체할 필요 없다. 지속해서 서로의 데이터에 연결하는 '피드' 혹은 '타임라인'의 공통된 개념을 공유하는 동시에 트위터를 다양한 경험을 제공하는 수천 개의 어플리케이션으로 대체할 수 있다.
이 프레임워크는 오픈 소스 커뮤니티가 라이선스가 할 수 없는 방식으로 오픈 소스 자유를 계속 강화하는 중요한 일상적인 애플리케이션을 만들 수 있는 문을 열어준다.
여기에 진정한 미래가 있지만, 우리가 성공하기를 원한다면 많은 사람이 참여해야 한다. 이 공동체가 계속해서 성장하는 가운데 여러분의 모든 얼굴을 볼 수 있기를 바란다.
참고사항: 이 게시물은 원래 Medium에 게시되었으며 IPFS 블로그에 맞게 수정되었다.
보다 다양한 정보 및 방송 관련 소식은
공식 SNS 채널을 통해 확인할 수 있습니다.