다시 웹의 탈중앙화를 꾀하다
This post was originally published in English here.
오늘날의 웹은 어려움을 직면하고 있습니다. 사용자들과 그들의 데이터 대다수가 비정상적인 시장 권력을 보유한 소수의 기업들에 의해 통제되고 있습니다. 이것이 가능했던 이유는 사용자, 데이터, 애플리케이션 또는 서비스를 하나의 통일된 플랫폼에 묶어버렸기 때문입니다. 그 결과는 가히 심각하고 극단적이며 복합적인 양상으로 나타나고 있습니다. 데이터 고착 및 누출 문제가 발생하고 있고 사용자 조작과 검열은 만연해 있으며 비즈니스 진입 장벽은 높아 혁신 또한 억압되고 있습니다. 이러한 상황은 결코 지속 가능한 환경이 아닙니다. 우리가 누리던 온라인상의 자유를 되찾고 혁신의 문을 열기 위해서는 웹을 다시 탈중앙화해야 합니다.
지난 수년간 특히 암호화폐 영역에서 많은 탈중앙화된 솔루션과 네트워크가 구축되었지만 그 대다수는 여전히 단일 플랫폼 모델을 사용하고 있습니다. 현재 우리는 애플리케이션과 서비스가 기본 네트워크 없이도 독립적으로 유지되어 네트워크를 넘나들며 기능할 수 있는 프로토콜이 부재한 상황입니다. 이는 각 애플리케이션을 단일 네트워크에서만 번들로 함께 제공하고 배포할 수 있다는 뜻이며, 이로 인해 사용자, 데이터 및 개발자가 특정 플랫폼에 갇혀버리는 사일로 현상이 발생합니다. 그뿐만 아니라 많은 네트워크에서 논리적으로 중앙화된 “단일 정보 출처”로서의 데이터베이스를 활용하고 있는데, 이것이 바로 심각한 처리량 병목 현상을 초래하는 원인이 되고 있습니다. 우리는 확장적이고 탈중앙화된 애플리케이션, 데이터베이스, 서비스를 구축할 수 있는 프로토콜과 도구가 부족한 상황입니다.
이로 인해 탈중앙화된 웹 비전의 실현이 지연되고 있습니다. 우리는 이 문제를 해결하기 위해 Haja Networks를 개발했습니다.
대기열 문제를 개선할 수 있는 탈중앙화된 웹에 필요한 애플리케이션과 시스템을 구축하기 위해 우리 업계는 다음의 노력을 기울여야 합니다.
- 플랫폼에서 데이터와 사용자를 분리
- 처리량과 대기 시간 모두의 측면에서 확장성 확보
- 여러 중앙화 및 탈중앙화 네트워크 간에 상호운용성 확보
- 현 솔루션의 논리적 중앙화 방식이 갖는 문제에 대처
우리는 위의 모든 노력이 실현 가능하다고 믿습니다.
탈중앙화된 웹의 비전을 실현하기 위한 방법으로 우리는 Ambients 프로토콜을 제안합니다.
Ambients는 탈중앙화된 전산화를 위한 새로운 프로토콜입니다. Ambients를 이용하면 개발자들이 P2P(peer-to-peer) 네트워크에서 탈중앙화된 애플리케이션, 데이터베이스, 서비스를 구축하고 실행하는 것이 가능합니다. Ambients는 기본 플랫폼 및 네트워크에서 데이터를 분리하며 다양한 네트워크 및 시스템들 간에 상호운용성을 제공합니다. 탈중앙화된 애플리케이션에서 Ambients를 이용하면 검증할 수 있는 안전성과 확장성을 바탕으로 하는 조직적인 방식으로 프로그램을 구축, 배포, 실행, 공유할 수 있습니다.
우리는 이 블로그 포스트에서 현재의 웹이 마주하고 있는 어려움과 Ambients 프로토콜을 개발하게 된 동기에 대해 이야기하고 그와 관련된 요약 정보를 제시하고자 합니다. 마지막 부분에서는 Ambients 프로토콜 백서 전문을 소개하면서 이 프로토콜을 구축할 수 있는 오픈 소스 커뮤니티로 여러분을 초대합니다.
어려움을 직면하고 있는 오늘날의 웹
“저는 웹을 모든 사람이 어디에서든 정보를 공유할 수 있고 다양한 기회를 접하며 지리와 문화의 경계를 넘어 협력할 수 있는 공개적인 플랫폼이라고 생각했습니다.” Tim Berners-Lee
웹은 처음에 독립적인 개체들 간에 조사 자료를 공유하고 서로 소통하기 위한 수단으로 등장했습니다. 그러다 시간이 지나면서 새로운 가치가 창출되고 공개됨에 따라 웹을 구현하는 것은 탄력성보다 효율성을 위해 그리고 디지털의 자유보다 시장 통제를 위해 중앙화를 우선시하는 방향성을 띠게 되었습니다. 그 결과 사용자들을 가두기 위한 온갖 장벽들이 도처에 깔리게 되었고 허물기 어려운 디지털의 경계가 생겨났으며 다양한 기회에 대한 접근성이 제한되었습니다. 또한, 우리가 공유할 수 있는 정보와 정보 공유 방법, 그리고 애초에 우리가 정보를 찾는 방법까지도 소수의 집단이 통제하게 되었습니다. 온라인상에서 각각의 개인들은 쉽게 추적되고 노출됩니다. 오늘날의 웹은 어려움을 직면하고 있습니다.
“Catalini와 Gans는 “네트워킹 비용”을 FANG 집단의 점점 커지는 시장 권력과 연관된 문제라고 보았습니다. 이 비용을 줄이면 시장 권력으로 이득을 보는 네트워크 효과가 분산될 거예요.” 블록체인 효과, Catalini & Gans 웹에서의 시장 권력은 소수의 기업들과 이들이 사용하는 플랫폼에 집중되어 있습니다. 이것이 가능했던 이유는 사용자와 그들의 데이터가 단일의 거대 데이터베이스에 통합되는 플랫폼 및 데이터 저장소들이 만들어져왔기 때문입니다. 이러한 데이터는 독점적인 애플리케이션 UI를 통해서만 사용자와 개발자가 접근할 수 있습니다. 하지만 이 데이터는 플랫폼에 의해 소유되고 통제됩니다. 개별 사용자들을 포섭하고 이들의 지인들을 유인하여 경쟁력 있는 외부 개발자의 접근을 제한하면 사용자들은 시스템 외부의 타인들과 교류할 수 없게 되며 이는 상당한 네트워크 효과를 창출합니다. 이것이 중앙화가 갖는 강력한 이점입니다.
이처럼 하나로 통합된 시장 권력 때문에 새로운 기업이 현재의 플랫폼과 경쟁할 수 없는 상황이 벌어집니다. 새로운 기업들은 이러한 대규모 플랫폼 외부에서 사용자 또는 이들의 데이터에 접근할 수 없으며, 이러한 플랫폼이 보유한 리소스의 양에 대적할 수 있는 기업은 거의 없습니다. 또한, 새로운 기업들은 현재의 플랫폼을 이용해야만 사용자들 및 여러 데이터에 접근하는 것이 가능한데, 이로써 이 플랫폼은 a) 사용자들 그리고 b) 이러한 사용자에 액세스하는 사람들 및 c) 액세스에 필요한 규칙까지 통제하게 됩니다.
이러한 규칙은 언제든 바뀔 수 있기 때문에 기업가 정신에 따른 비즈니스에 엄청난 위험 요소로 작용합니다. 이러한 상황은 다시 새로운 기업의 진입, 혁신 그리고 경쟁까지 제한합니다. 대규모 플랫폼들은 가격 책정 또는 서비스 품질에 대해 압박을 느끼지 않기 때문에 낮은 품질의 서비스에 높은 가격을 부과합니다. 이러한 플랫폼에 비즈니스가 종속되면 예고 없이 운영을 중단하게 될 수도 있습니다. 최종 사용자의 입장에서 보면 이는 궁극적으로 선택의 폭이 좁아져 한정된 범위 안에 갇히게 된다는 것을 의미합니다. 웹의 중앙화는 데이터와 시장의 독점화를 야기하였고 그 때문에 시장 자체에 온갖 문제점들이 발생하고 있습니다.
그와 동시에 방대한 양의 데이터도 그 자체로 골칫거리가 되어버렸습니다. 데이터가 도난되거나 그 외 다른 방식으로 손상되는 일들이 너무 자주 벌어지고 있습니다. 따라서 규제기관들은 정당한 이유로 대규모 플랫폼에 대해 더욱 엄격한 사용자 프라이버시 관리를 요구하고 있습니다. 하지만 또 한편으로 규제기관들은 이러한 플랫폼에 액세스하여 사용자 데이터를 이용하길 원합니다. 그렇기 때문에 중앙화된 플랫폼은 대규모 감독 활동을 수행하기에 원활한 환경인 동시에 손쉽게 검열 대상이 되는 것입니다.
이러한 상황은 결코 지속 가능한 환경이 아니며 궁극적으로는 혁신을 저해하여 웹의 잠재력을 제한할 것입니다. 사용자를 보호하고 공정한 시장을 되찾아 혁신과 성장을 도모하기 위해서는 중앙화된 모델에서 탈중앙화된 모델로의 새로운 패러다임적 변화가 필요합니다.
이러한 패러다임적인 변화는 권력을 반전시키는 방법으로 이룰 수 있습니다.
전처럼 플랫폼을 사용자와 데이터 간의 게이트키퍼로 활용하는 것이 아니라, 그 반대로 사용자들이 자신의 데이터를 직접 소유하고 여기에 액세스할 수 있는 사람들이나 애플리케이션을 통제하는 것입니다. 현재의 모델에서는 데이터가 플랫폼을 중심으로 집중되어 있지만 탈중앙화된 모델에서는 데이터가 사용자를 중심으로 “중앙화”되는 것입니다.
“자율 시스템 네트워크에서는 주체가 본인의 정책에 관한 내용만 신경 쓰면 됩니다. 다른 어느 외부 주체도 해당 주체의 동의 없이 강요를 할 수 없는 것이죠. 이것이 자율 시스템과 중앙화된 관리 시스템의 가장 큰 차이점입니다.” Burgess
즉, 사용자들이 애플리케이션을 사용해도 되는지 묻는 게 아니라 애플리케이션이 사용자에게 데이터 액세스에 관한 허가를 구하는 것입니다. 모든 사용자를 대상으로 하는 하나의 큰 데이터베이스가 아닌, 모든 사용자와 애플리케이션이 이용할 수 있는 수많은 작은 데이터베이스가 존재하는 셈입니다. 사용자들은 수천 가지 서비스에 각각의 계정을 만들 필요 없이, 본인이 직접 인증한 ID와 사용자 프로필로 모든 애플리케이션을 이용할 수 있습니다. 블로그 포스트, 활동 피드, 친구 목록을 사용자가 소유하며, 액세스 및 운용할 서비스와 사용자 인터페이스를 선택하는 것도 사용자의 몫입니다. 사용자는 여러 애플리케이션에서 동시적으로 본인의 데이터를 사용하도록 허가할 수 있으며 따라서 데이터를 여러 애플리케이션과 네트워크 간에 재사용 및 상호운용하는 것이 가능해집니다. 여러 소규모 데이터베이스의 로컬 사본을 보관하고 이를 로컬에서 운용하면 효율성과 즉각적인 사용자 경험을 달성할 수 있습니다. 여러 애플리케이션들은 기본적으로 서로 분리된 환경에서 기능합니다.
기업들은 플랫폼을 대상으로 사용자 액세스에 관한 허가를 구할 필요 없이 사용자와 직접 소통하여 데이터 액세스 권한을 요청할 수 있습니다. 또한, 통일된 공통 언어로 타 서비스 제공업체와 소통하며 타 서비스 및 데이터를 조합하여 새로운 서비스를 개발할 수 있습니다. 이로써 새로운 가치와 비즈니스 기회가 창출됩니다. 기업들이 높은 비용으로 사용자를 유치 및 유지하기 위해 값비싼 인프라를 구축하고 운영할 필요가 없는 환경을 조성한다면 기업들은 플랫폼과 데이터 저장소를 구축하는 것이 아닌 각자의 핵심적인 상품에 더욱 몰두할 수 있을 것입니다.
데이터, 사용자, 애플리케이션이 모두 분리되고 모든 정보가 암호표기 형식으로 검증되므로 개발자들은 더 이상 걱정 없이 애플리케이션과 서비스를 빠르게 구성하고 구축할 수 있으며 사용자 경험, 알고리즘, 데이터 인사이트, 서비스 품질, 가격, 프라이버시 보호 등의 윤리적 가치에 주력하여 경쟁하게 될 것입니다. 더 이상 규칙과 사용자 액세스를 플랫폼이 결정하지 않으므로 기업들은 시장에 더 빠르게 진입하고 성장할 수 있으며 심지어 소규모의 기업들도 시장에 진입하고 경쟁하면서 기회를 얻을 수 있게 됩니다.
이처럼 평등한 무대가 마련되면 새로운 혁신의 장이 열리게 될 것이고 탈중앙화된 애플리케이션, 서비스, 비즈니스 모델들이 등장할 것입니다. 그리고 더 다양해진 서비스와 애플리케이션 상품들, 더 나은 사용자 경험, 강화된 프라이버시 보호, 저렴해진 가격으로 궁극적인 이익을 얻는 것은 최종 사용자가 될 것입니다. 탈중앙화된 웹은 개방적이고 창의적이며 재미와 자유가 공존하는 공간일 것입니다.
한 줄기 희망
암호화 네트워크가 등장하면서 탈중앙화를 가능하게 하는 여러 기술에 대한 관심이 모이고 있습니다. 비트코인과 Ethereum이 그 시작을 열었고 우리 모두도 지난 몇 년간
최선을 다해 노력해왔습니다. 우리는 탈중앙화된 시스템에 IPFS, libp2p 같이 빌딩 블록으로서 사용 가능한 기술들을 개발하였으며 이러한 새로운 기술, 프로토콜, 시스템의 대부분이 오픈 소스로 제공되고 있습니다. 그동안 새로운 암호화폐 기반의 비즈니스 모델이 여러 가지 개발되었습니다. 짧은 기간 동안, 기존에는 구축하지 못했던 시스템들이 구상되었고 구현되었고 배포되었습니다.
여러 암호화 네트워크는 글로벌 원장(global ledger)을 중심으로 구성되어 있습니다. 이 글로벌 원장은 “단일 정보 출처”의 역할을 담당합니다. 즉, 네트워크 참여자 간의 모든 트랜잭션이 하나의 글로벌 원장에 기록되는 것입니다. 그리고 이것이 병목 현상을 유발하는 원인입니다. 모든 사람이 다른 모든 타인과 동기화해야 하기 때문에 네트워크 전체의 최대 처리량은 줄어들게 되는 것입니다. 네트워크의 전체 처리량을 개선하기 위해 많은 프로젝트가 실시되었지만 단일 스트림에서는 이렇게 급속히 모여드는 흐름을 피할 수가 없습니다. 대부분의 원장 기반 네트워크에는 네트워크를 “스마트 컨트랙트”로 프로그래밍하는 프로그래밍 인터페이스가 포함되어 있습니다. 스마트 컨트랙트란 네트워크 참여자들이 네트워크에서 실행하는 프로그램입니다. 우리는 dApps(탈중앙화된 애플리케이션) 개발, 결제, 비즈니스 로직 실행, 새로운 프로토콜 구현 등 다양한 활동이 가능합니다. 하지만 대부분의 스마트 컨트랙트 언어와 실행 환경(즉, 스마트 컨트랙트가 실행되는 원장)은 서로 호환되지 않습니다. 즉, 개발자들이 각 플랫폼에 특정적인 언어로 프로그램을 작성해야 한다는 의미입니다. 따라서 프로그램 또는 서비스를 어떤 네트워크에서 실행할 것인지를 미리 결정해야 합니다. 그 결과 과도하게 많은 네트워크들의 조각화가 발생하고 그 때문에 네트워크 간 상호운용에 제약이 생기게 됩니다. 이러한 점에서 볼 때 현재의 블록체인 시스템 대부분은 개발자들 입장에서 기술적인 사일로와 같습니다. 플랫폼 간에 전환하려면 애플리케이션을 다시 작성해야 하니 애플리케이션을 구축하기도 전에 어떤 플랫폼을 선택할 것인지 도박하듯 선택해야 하기 때문입니다.
게다가 스마트 컨트랙트 프로그램들은 기본 암호화 네트워크와 원장에 결합되어 있기 때문에 개방된 비암호화폐 기반의 빌딩 블록에서 자유롭게 개발하는 것이 불가능합니다. 즉, 특정한 블록체인 플랫폼에 프로그램을 구축하는 경우 코인이나 토큰 또는 결제 수단이 필요해지기 때문에 개발자와 사용자들은 네트워크에 가입해 그 네트워크에 특정한 토큰을 획득해야 합니다.
이는 앞서 살펴보았던 중앙화된 플랫폼의 문제점과 닮아 있습니다. 그리고 더 광범위한 관점에서 보자면 이 영역 자체가 개발된 본래의 동기에도 부합하지 않습니다.
이러한 상황과 부대적으로, 우리는 중앙화된 플랫폼의 뼈아픈 현실을 인지하면서 유럽연합의 GDPR 같은 규제를 통해 대응책을 마련하거나 심지어는 플랫폼 소유자들의 해체를 요구하기 시작했습니다.
이처럼 현 상황을 자각하고 여러 플랫폼이 제공하는 프라이버시 및 보안 수준을 의심하는 많은 사람 및 학회와 같이 중앙화에 맞서려는 인식이야말로 한 줄기 희망입니다. 하지만 근본적으로는 여전히 여러 가지 문제점이 존재합니다.
탈중앙화된 웹에 대한 아키텍처 관련 요구사항
탈중앙화된 네트워크의 잠재력을 최대한 구현하고 권력을 반전시키며 네트워크 효과에서 데이터를 분리할 수 있는 인프라를 구축하고 배포하려면 다음과 같은 문제에 대응해야 한다고 생각합니다.
- 비동기적 메시지 전달
- 궁극적인 일관성
- 대규모 네트워크를 소규모 네트워크로 구성할 수 있는 능력
- 플랫폼에서 전산화를 분리
- 서로 분리 또는 분해된 환경에서의 유용성
현재의 블록체인 네트워크가 갖는 가장 큰 제한점은 단일의 글로벌 정보 출처인 원장이 필요하다는 점입니다. 그렇기 때문에 그러한 네트워크에서 트랜잭션하기 위해서는 모든 참여자가 연속적으로 동기화되어야 하고 글로벌 상태를 유지해야 합니다. 이러한 필요성의 동기(강력한 일관성 보증, 암호경제적 이점 등)는 충분히 이해되지만 이는 용인하기 어려운 수준의 네트워크 운용 비효율성을 야기합니다.
무한한 다양성을 갖춘 오프라인 우선 애플리케이션을 탈중앙화된 웹에서 구축하려는 경우, 기본 프로토콜은 단일 토큰 또는 네트워크에서 구축할 수 없거나 이를 이용할 수 없습니다. 핵심 프로토콜은 오히려 이러한 네트워크를 우선적으로 구축할 수 있을 만큼 유연해야 하며, 이러한 네트워크 사용에 대한 대가를 요구하지 않아야 합니다. 즉, 우리는 체인이 아니라 빌딩 블록이 필요한 것입니다. 단일의 글로벌 원장을 요구하는 네트워크와 프로토콜은 여전히 필요한 존재이며 핵심 프로토콜을 보완할 수 있지만 기본적으로는 데이터를 기본 플랫폼에서 분리할 수 있을 만큼 최대한의 유연성, 가용성, 효율성을 갖추어야 합니다.
현실 세계는 비동기화 세계입니다. 여러 가지 사건이 발생하고 이러한 일들은 “특정한 시점에” 서로 분리된 환경에서 “벌어집니다”. 다만, 드물게 이러한 일들이 정확히 동시에 일어나는 경우를 목격할 때가 있는 것입니다. 사실 모든 형태의 일관성과 일치성은 결국 하나의 뜻으로 일맥상통합니다. 즉, 사전 지정된 규칙(프로토콜)에 따라 참여자들 간에 메시지가 전달되며 필요 메시지가 교환되어 프로토콜의 단계들이 실행된 경우에만 합의가 성립된다는 것입니다. 최종 결과인 합의는 가장 강력한 형태의 일관성을 대표하며 동기화를 필요로 하지만 기본 메커니즘은 비동기적입니다. 메시지가 전송되면 수신자가 이를 “특정한 시점에” 수신하고 인지하는 것입니다. 이러한 관점에서 우리는 모든 데이터 및 애플리케이션의 기본 일관성 수준으로 궁극적 일관성을 고려해야 합니다. 비동기적 메시지 전달과 궁극적 일관성을 바탕으로 할 때 우리는 필요에 따라 더 강력한 일관성 보증을 구성할 수 있습니다.
“모든 데이터, 정규화된 데이터, 여러 서비스 간에 단일의 데이터베이스를 사용할 수 있다는 생각은 버려야 합니다. 그건 완전히 다른 세상의 이야기예요. 다른 사고방식과 다른 디자인 및 도구를 사용해야 하는 세계 말이죠.” Jonas Bonér
비동기적 메시지 전달 및 궁극적 일관성이 뒷받침된다면 서로 분리 및 분해된 서비스 환경에 적응하는 애플리케이션 및 네트워크를 프로그래밍할 수 있는 강력한 힘을 얻게 될 것입니다. 이러한 프로그램들은 먼저 로컬에서 운영되며 항상 이용 가능(즉, 오프라인)합니다. 그리고 네트워크 연결을 이용할 수 있게 되면 다른 프로그램들과 동기화가 가능합니다. 더 이상 연속적인 연결성을 고집할 필요가 없습니다. 전반적으로 오늘날의 웹 앱보다 더 나은 사용자 경험을 얻게 될 것입니다.
모든 참여자가 단일의 글로벌 계약을 통해 상호작용(예: 블록체인)하는 방식은 빠르게 병목 현상을 유발할 수밖에 없습니다. 이처럼 서로 관련 없이 분리된 상호작용(예: Alice가 Bob에서 커피를 사는 경우 및 Charlie와 사진을 공유하는 경우)을 총체적인 네트워크로부터 검증받아야 할 것이 아니라, 이제는 개별 프로그램이 각자의 하위 네트워크를 갖추어야 합니다. 하위
네트워크는 애플리케이션이나 상호작용 각각에 대한 “마이크로네트워크”라고 볼 수 있습니다. 예를 들어 Alice가 Charlie와 사진을 공유할 경우 두 참여자로 구성된 하나의 네트워크가 형성됩니다. 또는 채팅 프로그램에서 50명의 사용자가 참여하는 채널에는 50명의 참여자로 구성된 하나의 네트워크가 형성됩니다. 큰 네트워크를 애플리케이션 각각에 대한 하위
네트워크로 쪼개는 일은 “빌트인 샤딩”이라 할 수 있습니다. 네트워크의 각 참여자들은 대부분의 경우 네트워크의 전체가 아닌 일부분만 저장하고 이와 상호작용합니다.
이러한 각각의 암호화 네트워크는 자체적인 실행 환경과 맞춤 프로그래밍 언어를 사용하여 네트워크를 프로그래밍하므로 조각화가 이루어집니다. 그런데 이러한 조각화는 프로그램과 데이터를 중심으로 네트워크 효과가 발생할 수 없도록 만드는 비효율성을 야기합니다. 그리고 점점 늘어나는 가치는 각각의 개별 네트워크 안에 갇히게 됩니다. 이러한 문제점을 타개하고 가치를 개방하기 위해서는 플랫폼(원장)에서 프로그램 실행 레이어를 분리하고 분산화된 효율적인 전산화 모델을 구현해야 합니다. 이러한 모델을 통해 여러 개의 네트워크 또는 서로 분리되어 있는 비호환 네트워크들을 하나의 프로그램에서 실행할 수 있게 만드는 것입니다.
그리고 바로 이 목적을 달성하는 데 있어 우리는 Ambients 프로토콜을 제안합니다. Ambients는 P2P(peer-to-peer) 네트워크에서 데이터베이스와 프로그램을 구축하고 실행할 수 있는 프로토콜입니다. Ambients는 기본 플랫폼 및 네트워크에서 데이터를 분리하며 다양한 네트워크 및 시스템들 간에 상호운용성을 제공합니다. 탈중앙화된 애플리케이션에서 Ambients를 이용하면 검증할 수 있는 안전성과 확장성을 바탕으로 하는 조직적인 방식으로 코드를 구축, 배포, 실행, 공유할 수 있습니다.
다시 생각하는 데이터베이스
Ambients 프로토콜이 왜 필요한지 이해하려면 패러다임적 과도기에서 현재 개발자들이 주요 프로그래밍 모델과 관련해 직면하고 있는 어려움에 대해 고민해보아야 합니다.
플랫폼 중심 모델에서 탈중앙화된 모델로의 패러다임적 변화를 이루려면 탈중앙화된 애플리케이션이 최소한 주요 플랫폼들 이상의 품질을 제공해야 합니다. 이를 달성하기 위한 방법 중 하나가 바로 권력을 반전시키는 것입니다. 더 나은 사용자 경험을 구현하기 위해서는 그에 따라 애플리케이션과 서비스를 구축해야 합니다. 탈중앙화된 애플리케이션 및 서비스에 사용되는 현재의 프로그래밍 모델은 안타깝게도 플랫폼의 모습을 닮아 있습니다. 즉, 효과적으로 중앙화된 데이터베이스(주로 블록체인)를 사용합니다.
이 점을 고려하면 데이터베이스는 스토리지(데이터베이스 상태)와 스토리지 액세스, 업데이트, 쿼리 프로그램(데이터베이스 서비스)의 복합체라고 할 수 있습니다. 상관적 데이터베이스들은 흔히 SQL을 데이터베이스 업데이트 및 쿼리용 인터페이스로 제공함으로써, 데이터베이스 상태에 액세스하고 이를 조작하고자 하는 모든 프로그램의 상호운용성 레이어로 SQL을 활용합니다. 스마트 컨트랙트 플랫폼도 같은 원리입니다. 블록체인은 중앙화된 데이터베이스 상태이며 스마트 컨트랙트는 데이터베이스 서비스와 인터페이스를 제공합니다. 중앙화된 모든 플랫폼들은 어느 정도 데이터가 입력되는 중앙화된 데이터베이스를 중심으로 형성됩니다. 실제로 이러한 데이터베이스 모델은 탈중앙화된 웹을 중앙화된 플랫폼 모델로 바꿔놓습니다.
그렇다면 데이터베이스가 탈중앙화되어 소유자에게 로컬로 귀속될 경우 어떤 일이 벌어질까요? 데이터베이스의 개념 전체가 완전히 뒤바뀌게 됩니다. 즉, 데이터베이스 상태가 더 이상 단일의 공간에 축적되지 않고 하나의 네트워크 안에 있는 여러 공간에 축적되는 것입니다. 따라서 기존의 데이터베이스 중심 모델과 같은 수준으로 진정한 탈중앙화된 프로그래밍 모델을 구축하려면 데이터베이스 서비스(또는 어느 프로그램이든)가 데이터의 위치로 이동해야 하는 것입니다. 이를 위해서는 전산화(프로그램)를 분산화해야 합니다.
즉, 이 문제를 해결하려면 단순히 탈중앙화된 데이터베이스를 확보하는 것 이상의 노력이 필요합니다.
Ambients 프로토콜: P2P 전산화
오늘 우리는 기쁜 마음으로 Ambients 프로토콜 백서 전문을 공개하고자 합니다.
Ambients 프로토콜은 개발자들이 P2P(peer-to-peer) 네트워크에서 탈중앙화된 애플리케이션, 데이터베이스, 서비스를 구축하고 배포 및 실행할 수 있는 새로운 분산화된 전산화 프로토콜입니다. Ambients를 이용하면 개발자들이 P2P(peer-to-peer) 네트워크에서 분산화된 조직적이고, 안전하며, 확장성 있는 탈중앙화된 프로그램을 구축하는 것이 가능합니다.
이러한 요소들을 모두 확립하기 위해 Ambients 프로토콜은 다음을 정의합니다.
- 불변 값과 순수 전체 함수를 바탕으로 하는 Ambients 프로그램용 프로그래밍 모델
- 프로세스 알지브라에 근거한 프로그래밍 모델 공식 기반 Ambient Calculus
- 모노이드와 함자 같은 일반적인 전산화 개념을 이용해 알지브라 Ambients 프로그램으로 프로그램을 인코딩하는 프로토콜 기초 요소
- 프로그램을 거의 모든 소스 언어에서 Ambients 실행 파일로 컴파일링하는 컴파일레이션 모델
- 궁극적 일관성을 갖춘 Merkle-DAG 기반 이벤트 로그를 이용해 종합 재작성 시스템으로서 Ambients 프로그램을 평가하는 실행 모델
Ambients 프로토콜을 이용해 구축하는 프로그램들은 Ambients 네트워크에서 안전하게 실행할 수 있는 분산화된 실행 파일로 전환됩니다. 이로써 프로그램이 데이터의 위치로 이동할 수 있게 됩니다. 앞서 언급한, 탈중앙화되어 소유자에게 로컬로 귀속되는 데이터베이스를 구축할 때는 프로그램이 분산적인 데이터베이스 서비스를 형성하므로 상호운용성 및 확장성을 확보하려면 이러한 분산화된 프로그램을 공유하는 것이 필수입니다.
Ambients 프로그래밍 모델은 검증 가능한 안전성을 갖출 수 있을 만큼 제한적입니다. 그와 동시에 개발자들이 구조, 함수, 알고리즘, 비즈니스 로직, 데이터베이스, 심지어는 완전한 시스템 및 서비스까지도 구축할 수 있을 만큼 표현력이 충분합니다. 오늘날 대부분의 프로그래밍 언어는 Ambients에 적합한 기능 하위 세트를 사용하기 때문에 개발자들은 Ambients 프로토콜에서 각자 친숙한 프로그래밍 언어를 이용해 탈중앙화된 애플리케이션과 서비스를 구축할 수 있습니다.
Ambients 프로토콜은 플랫폼으로부터 독립될 수 있도록 설계되었습니다. Ambients 네트워크는 믿을 수 있는 허가된 중앙화 시스템부터(예를 들어 기존의 웹 서비스) 신뢰도가 떨어지고 허가받지 않은 탈중앙화된 시스템까지(블록체인 플랫폼) 다수의 Ambients 적합 런타임 환경을 오버레이 및 연결할 수 있습니다.
조직성, 안전성, 확장성이 보장되는 원리와 개발자들이 탈중앙화된 데이터 구조, 데이터베이스, 프로토콜, 애플리케이션, 디지털 서비스 등을 구축함으로써 얻게 되는 이점은 백서에서 더 자세히 살펴볼 수 있습니다.
Ambients 프로토콜은 모두가 구축할 수 있도록 오픈 소스 및 무료로 제공됩니다. Ambients 프로토콜을 구축하는 데 참여하고 싶은 분들 또는 단순히 커뮤니티에 가입하고 싶으신 분들도 Github을 방문하셔서 저희와 함께해주세요!
호기심 많은 독자분들을 위해 저희가 준비한 백서를 소개합니다. 이 백서에서 Ambients 프로토콜이 어떻게 강력한 유용성을 발휘할 수 있는지 그리고 탈중앙화된 웹에 궁극적으로 어떤 도움을 줄 수 있는지 살펴보시기 바랍니다.