트렌드

중앙 서버 없는 ‘P2P 아마존웹서비스’ 만든 10대 해커

2014.12.14

‘왜 온라인에서 작동하는 앱을 만들 때 서버를 써야 하나. 클라우드 PaaS는 꼭 돈을 내고 써야 할까.’

P2P 네트워크로 금융 시스템을 대신하는 비트코인이 나온 마당이었다. 소년은 ‘서버-클라이언트’ 구조를 고집할 이유가 없다고 생각했다. 그는 아마존웹서비스(AWS)도 P2P 네트워크 위에 구현할 수 있다고 봤다. 소년은 비트코인 블록체인 기술을 응용해 프로그램을 가동시키는 분산형 컴퓨팅 플랫폼 ‘에테리움’을 만들었다. 19살 해커 비탈릭 부테린이다.

비탈릭 부테린 에테리움 설립자

▲비탈릭 부테린 에테리움 설립자

10대 해커의 망상이 아니다. 에테리움 프로젝트는 1500만달러어치 비트코인(3만개)을 투자받았다. 분산형 PaaS(Platform as a Service)를 원하는 개발자가 적지 않다는 방증이다. 비영리단체 에테리움재단에 힘을 보태는 개발자만 40명에 달한다.

컴퓨팅 체계를 뒤집을지도 모를 대담한 실험에 불을 당긴 비탈릭 부테린이 한국을 찾았다. 12월12일부터 이틀 동안 일산 킨텍스에서 열리는 ‘인사이드 비트코인 콘퍼런스’에 참석하기 위해서다. 11일 저녁 코엑스 지하 카페세도나에서 그를 만나 에테리움에 관한 얘기를 들었다.

P2P 네트워크에서 작동하는 클라우드 PaaS

에테리움은 P2P 네트워크에서 작동하는 클라우드 PaaS다. 비트코인 블록체인 기술에 뿌리를 둔다.

클라우드 환경에서 컴퓨팅 플랫폼을 구성해 제공하는 서비스를 PaaS라고 부른다. 아마존 웹 서비스가 대표적이다. 서버를 기기 단위로 구매하는 게 아니라 사용한 컴퓨팅 자원만큼 이용료를 낸다. 클라우드 안에는 다양한 프로그램을 구동하는 환경을 구축할 수 있다. 사용자가 원하는 대로 리눅스나 윈도우 서버 환경을 꾸려 사용할 수 있다.

기존 클라우드 PaaS가 지닌 문제는 서비스가 한 곳에 몰려있다는 점이다. 아마존 데이터센터가 멈추면 AWS에서 작동하는 모든 서비스는 한순간에 먹통이 된다. ‘서버-클라이언트’ 구조를 클라우드 환경에 구현한 것이기 때문이다. ‘리그 오브 레전드(LoL)’ 클라이언트 프로그램이 아무리 훌륭해도 서버가 다운되면 게임을 즐길 도리가 없는 것은 ‘서버-클라이언트’ 구조가 지닌 이런 한계 때문이다.

부테린은 클라우드 서버를 P2P 네트워크 위에 흩뿌리면 중앙집중적인 ‘서버-클라이언트’ 구조의 한계를 극복할 수 있다고 봤다. 그리고 P2P 네트워크 위에서 프로그램을 구동하는 플랫폼을 만들었다. 에테리움이다.

에테리움은 비트코인처럼 블록체인을 데이터베이스로 삼아 작동한다. 비트코인이 블록체인 안에 비트코인 거래 기록을 담는다면, 에테리움은 프로그램을 담는다. 에테리움에는 C++, 자바스크립트, 파이선, GO 등 4가지 컴퓨터 언어로 프로그램을 작성해 넣을 수 있다.

에테리움에 실린 프로그램을 실행할 때 필요한 컴퓨터 자원은 에테리움을 사용하는 사용자에게 빌려온다. 컴퓨터 자원을 빌려준 사용자에게는 대가로 에테리움 플랫폼에서 쓰는 가상화폐 ‘에테르(Ether)’를 준다. 비트코인 네트워크에 컴퓨터를 빌려준 채굴자에게 대가로 비트코인을 주는 것과 같다. 에테르는 에테리움에 실린 프로그램을 실행할 때 사용료로 쓰인다.

가상화폐 비트코인을 분산형 컴퓨팅 플랫폼으로

P2P 방식으로 작동하는 프로그램은 꽤 나왔다. 파일 공유 서비스인 ‘비트토렌트’나 비밀 통신 서비스 ‘비트메시지’ 등이다.

하지만 일반 사용자가 대중적으로 쓰는 프로그램은 찾기 힘들다. 비탈릭 부테린은 분산형 프로그램이 널리 쓰이지 못한 이유가 개발이 까다로운 탓이라고 봤다. 따로 서버를 마련하거나 데이터베이스를 구축할 필요는 없지만, 네트워크 등 프로그램에 필요한 다양한 기능을 P2P 네트워크 위에서 구현하는 까다로운 과제가 생긴다고 부테릭은 설명했다.

부테릭은 이런 숙제를 한번에 해결해야겠다고 생각했다. 개발자는 평소 프로그램을 작성하듯 4가지 프로그래밍 언어로 코드를 짜 에테리움에 올리면 된다. P2P 환경에서 프로그램을 구동하는 작업은 에테리움이 알아서 해준다.

에테리움은 비트코인 기술에서 나왔지만, 비트코인과 다른 블록체인을 사용한다. 비트코인 블록체인에도 코드를 넣을 수 있지만, 독립적인 프로그램을 구동하기엔 역부족이기 때문이다. 부테린은 “비트코인 블록체인을 사용하면 15가지 새 기능을 넣으면 15가지 기능만 할 수 있을 뿐”이라며 “다른 기능을 얹으려면 프로토콜 자체를 확장해야 하는 한계가 있다”라고 말했다. 비탈릭은 사용자가 원하는 기능을 일일이 만들어주기보다 사용자가 직접 기능을 만들 수 있는 플랫폼을 만드는 편이 낫다고 판단했다.

비탈릭 부테린 에테리움 설립자

▲비탈릭 부테린 에테리움 설립자

유연한 블록체인으로 검증 문제 해결

에테리움 블록체인이 비대해지면 어떻게 할까. 비트코인 블록체인도 모든 거래 기록을 저장하기 때문에 용량이 십수GB가 넘어갔다. 용량이 커질 수록 비트코인 자체를 작동시키는데 드는 컴퓨터 자원이 커지기 때문에 거래 속도가 느려지는 게 아니냐는 우려가 나온다. 비트코인보다 더 많은 정보를 저장하는 에테리움은 더 빨리 블록체인 크기가 불어날 게 뻔하다. 비탈릭 부테린은 2가지 대책을 마련했다고 설명했다.

첫 번째 해결책은 부분만 떼내 거래 내역을 검증할 수 있도록 만드는 것이다. 비트코인은 거래 내역을 검증하려면 지금까지 나온 거래 내역을 모두 확인해야 한다. 약식으로 믿을 만큼 데이터를 확인하려 해도 12번 거래가 확정될 때까지 기다려야 한다. 대략 2시간이다. 부테린은 거래 확정 속도를 비트코인보다 50배 빠르게 해서 12초마다 한 번씩 거래를 검증할 수 있도록 했다. 12번 검증해도 3분이 안 걸린다. 이에 더해 블록체인 일부만 떼내 부분만 검증할 수 있도록 했다. 덕분에 더 적은 컴퓨터 성능만으로도 에테리움 플랫폼을 사용할 수 있다.

다른 방법은 블록체인을 여러 개로 나누는 것이다. 데이터베이스를 여러 개로 나눠담고 필요할 때 서로 정보를 주고받을 수 있는 통로를 열어두는 식이다. 에테리움 블록체인은 각자 따로 작동하지만 서로 통신한다. 그래서 독립된 블록체인 여럿을 운영하는 비트쉐어와 달리 한 부분을 공격받아도 안전하다고 비탈릭 부테린은 설명했다.

“에테리움, 블록체인 같은 플랫폼으로 거듭나길”

에테리움은 아직 세상에 안 나왔다. 개념 증명 수준인 7번째 베타판만 나왔다. 정식판은 2015년 3월15일 정식으로 발표될 예정이다. 부테린은 “가상화폐, 보안, 네트워크 전문가 등을 고용해 에테리움 코드를 검사하고 있다”라고 말했다.

3월 뒤에 에테리움 개발진은 클라이언트 개발에 집중할 계획이다. 비탈릭 부테린은 “에테리움이 블록체인처럼 더 커지길 기대한다”라고 포부를 밝혔다.

nuribit@bloter.net

기술의 중심에서 사람을 봅니다. 쉽고 친절하게 쓰겠습니다. e메일 nuribit@bloter.net / 트위터 @nuri_bit / 페이스북 facebook.com/nuribit0