안녕하세요? 클리앙 가입도 얼마 안되었고, 눈팅 위주로만 하는 전산 전공자입니다.
전산 쪽에 있으면서 비트코인은 2년쯤 전부터 들었지만, 본격적인 관심(==매수ㅋㅋ)을 갖게 된 건 이제 고작 한 달이네요. 기술적으로 이더리움이 잠재력이 가장 크다는 생각이 들어서 한달째 들고 있고, 그 외에도 PoS 채굴 방식과 Dapp 쪽으로 노력을 많이 기울이는 퀀텀이 열일하는 것을 보고 개인지갑에 들여놓고 PoS 채굴도 시도해 보고 있습니다.
원래 정보보안 쪽은 전혀 관심이 없었는데 돈이 있는 곳에 마음도 자꾸 가다 보니, 하라는 연구는 안하고ㅜㅜ 장투하려고 마음먹었는데도 불구하고 자꾸 차트만 쳐다보게 돼서 ㅠㅠ 이렇게 하느니 생산적으로 좀 해보자는 생각에 사토시의 논문을 읽어보고 블록체인이 분산시스템 교과서에도 나오는 유명한 '비잔틴 장군 문제'와 맞닿아 있는 것을 알 수 있었네요. 아직 더 알아가고 싶은 것도 많은데 시가을 두고 이곳에 올라와 있는 글들을 읽어볼 생각입니다.
서론이 길었네요. 아무튼 제가 분산시스템, IoT, 네트워킹 쪽으로 나오는 논문들을 보면서, 암호화폐가 '엣지 컴퓨팅' 환경에서 쓰일 수 있겠다는 생각이 들었는데 여러분들 생각은 어떠신지 궁금합니다.
엣지 컴퓨팅(edge computing) 단어는 좀 생소할 수 있는데, 간단히 말하자면 아마존웹서비스가 만들어 주는 EC2 또는 S3 같은 가상머신/가상 저장소를 최대한 내가 있는 위치와 물리적으로 가까운 주변에 있는 장비를 써서 쓰겠다는 것으로 이해하시면 됩니다. 아마존웹서비스나 구글 클라우드플랫폼 같은 클라우드는 거대한 데이터센터가 전 세계의 주요 거점에만 있으니까 컴퓨팅 능력은 거의 무한대로 확장할 수는 있어도 내가 어떤 멀리 떨어진 곳에 있을 경우에 물리적인 거리 때문에 겪는 네트워크 delay는 일정 수준 이하로 줄일 수 없게 됩니다.
가령 www.google.com에 ping을 날리면 아무리 빨라도 수십 밀리초는 나오게 되죠. 하지만 VR, AR 같은 건 컴퓨팅 능력도 많이 필요하지만 그만큼 머리에 쓰고 있는 단말의 상태를 빨리 인지하고 그에 맞게 화면을 빨리 그려서 내보내 줘야 하는데 delay가 늘어나면 그만큼 사용자는 어색함을 느끼겠죠. 그래서 사용자와 좀더 가까운 주변에, 중앙 클라우드보다 훨씬 작지만 그 사용자나 소규모의 사용자들이 쓰기에는 부족함이 없을 정도의 작은 클라우드(그래서 작은 구름조각이라는 의미로 cloudlet으로도 부릅니다)를 임시로 만들고, 그 위에 VR/AR 구동에 필요한 계산을 내가 앱을 쓰는 동안 잠깐 맡겨서 쓰는 것이죠.
이게 우리나라는 워낙 인터넷이 빨라서 체감이 잘 안될 수는 있지만 사실 미국만 해도 넓은 땅에 회선 속도는 느리고 비용도 적지 않아서 중앙 클라우드에 delay가 짧아야 하는 서비스를 돌리는 건 한계가 있을 거라 생각이 됩니다. 그러면 나와 최대한 가까운 곳에 있는 컴퓨팅 자원은 무엇이 있나요? 우리집에 있는 개인 PC를 제외하면 같은 통신사 망에 물려 있는 옆집/윗집/아랫집 컴퓨터들이 됩니다. 그들이 켜져 있으면서 CPU나 GPU가 놀고 있는 경우에, 내 개인 컴퓨터만 가지고는 자원이 모자라서 옆집/윗집/아랫집의 컴퓨터에서 놀고 있는 CPU 코어 두어 개, GPU의 연산능력 일부를 끌어다 쓰고, 연산 결과는 거의 LAN에 가까우니 꽤 빠른 속도로 받아와서 내 PC에서 합산해서 작업을 처리하게 된다면, 이게 엣지 컴퓨팅의 한 가지 예시가 될 수 있을 것 같아요.
하지만 옆집/윗집/아랫집 컴퓨터에 모르는 사람이 들어와서 CPU 코어 1개와 전기를 뺏어 쓰는 것을 원하지 않을 테니, 그에 대한 보상을 줄 필요가 있습니다. 이게 P2P 네트워크인 빗토렌트(BitTorrent)에서는 내가 파일을 공유를 많이 할 수록 내가 다운로드받는 속도가 증가하도록 인센티브를 줌으로써 P2P 네트워크를 유지시키는 유인책을 만들었는데, 사실 현실에서 이렇게 컴퓨팅 능력을 필요한 사람에게 주고받을 때 그 보상으로 암호화폐를 주고받게 한다면 어떨까 하는 생각이 들었습니다.
아니면 예시의 범위를 넓혀서, 공유하는 자원이 컴퓨팅 능력 외에도 IoT가 만들어 내는 센서 정보나 어떤 기능이 되고, 그 정보와 기능을 필요한 사람에게 잠깐씩 공유해 주면서 그 대여료를 암호화폐로 받은 다음, 나도 그 암호화폐를 가지고 다른 곳에서 언제든지 원할 때 주변에 있는 IoT를 가져다 쓴다면 여러가지 편리한 일들이 많아질 것 같습니다.
아직은 엣지 컴퓨팅이 이제 막 논문들이 많이 나오기 시작하는 단계라서 시장에 나온 것은 하나도 없긴 합니다. 게다가 중앙 클라우드 대신 주변에 존재하는 중/소규모 컴퓨터를 대신 쓰자는 개념 자체가 약간 '탈중앙화'를 지향하다 보니, 대형 IT 업계로부터 당장의 큰 관심을 끌지는 못하는 것 같아요. 결국 중/소규모 컴퓨팅 자원을 누군가는 공유해 줘야 가능한 일이니까요. 연구하는 사람들은 그런 컴퓨팅을 줄 수 있는 주체가 어디 카페에 있는 와이파이 공유기에 물려 있는 PC나 NAS라고 보는 사람도 있고, 조금 더 크게 봐서 현지화된 소규모 아마존이 각 중소도시마다 있는 것으로 생각하는 사람도 있더라고요.
처음엔 엣지컴퓨팅이 기술적으로는 말이 되지만 비즈니스적으로 실현이 될까 의문이었는데, 에어비엔비가 자기 집을 원하는 만큼 공유해서 수익을 얻는 것처럼 개인 컴퓨터를 자기가 안쓸 때 적당히 나눠주고 수익을 얻을 때, 그 방법을 최대한 편하게 하는 측면에서 암호화폐 플랫폼을 쓰면 서로 도움이 되지 않을까요?
혹시 제가 놓친 부분이 있거나 다른 의견을 얼마든지 환영합니다. :) 감사합니다.
이쪽으로 잘은 몰라서 그러는데 CPU와 GPU에 어떤 방식으로 작업을 할당할 수 있을까요?
엄청나게 유저 레벨에서 계산을 시키는건 종속 라이브러리가 한두개가 아니니까 문제가 될 것 같은데요
전통적인 가상화 기술이 CPU, 메모리, 하드디스크를 맨 처음에 정해진 양을 할당하고, 그 위에 OS를 마치 새 컴퓨터에 깔듯이 설치하고 라이브러리 다 설치하고 그래야만 하는데, 컨테이너 기술은 그냥 특정 OS를 쓰는 것처럼 착각하게 만드는 실행 환경을 프로세스 형태로 바로 만들어 주거든요. 예를 들면 제 PC가 우분투 16.04인데, 특정한 라이브러리를 돌리기 위해서 반드시 CentOS 특정 버전이 필요하다고 하면, CentOS 버전을 명시해 주고 실행환경을 만들라고만 명령 한 줄 치면 바로 제 PC에 CentOS 쉘 하나가 몇 초만에 생기게 됩니다. (중간 과정을 조금 빠뜨리고 설명드렸습니다만.. 정말로 미리 세팅을 적절히 해두면 몇 초만에 VM 하나가 생깁니다.)
그 프로세스를 실행할 때, 조건을 걸어서 특정 앱에 필요한 라이브러리도 같이 구동하게 할 수도 있어요. 물론 라이브러리는 없으면 다운받고 설치는 해야 하겠지만, 적어도 라이브러리가 실행되어야 하는 특정한 OS 같은 조건은 컨테이너가 미리 설정해 주면 됩니다. 그리고 그렇게 컨테이너를 만드는 데에 그냥 텍스트로 된 설정파일 1개만 있으면 대부분 알아서 해줘서 꽤 편리해요.
더 자세한 내용은 도커(docker)로 찾아보시면, 우리나라 사람들이 블로그로 정리해 둔 게 많이 있어서 도움이 되실 거에요. :)
아, 그리고 컨테이너에 CPU와 GPU를 할당할 수 있습니다.
민감한 자료를 암호화해서 노드가 자료를 보지만 못하게 하면 되겠네요
골렘 프로젝트(https://golem.network/)라고 이더리움 초창기 dApp 프로젝트가 있는데, 말씀하신 컨셉과 상당부분 중첩되지 않나 싶습니다.
프로젝트의 내용을 간략히 말씀 드리면, 수요자가 일정한 컴퓨팅 과제를 검수조건과 함꼐 공개시장에 발주하고, 과제 결과 및 검수조건이 만족되었다는 증명을 보낸 자에게 이더로 댓가를 지급하는 dApp입니다.
역시 누군가는 이미 생각하고 있는 것을 실행에 옮기고 있군요.
일단 지금까지는 유튜브 동영상의 캐쉬 서버 역할을 엣지가 해주면 고화질 영상을 볼 때에도 버퍼링 속도가 많이 줄어들 수 있겠다는 점과, AR 앱을 만든다고 가정할 때 화면에 바로 보이는 물체를 인식하고 처리하기 위한 연산 작업을 스마트폰이 다 하기 힘드니까 클라우드가 대신해 주되, 응답속도가 빠른 엣지에서 해 주면 좀더 부드러운 사용성을 얻을 수 있겠다는 정도까지 생각이 되네요.
손에 잡히는 서비스가 나와 주거나, 응답속도가 매우매우 중요하면서 인기 많은 앱이 나와줘야 설명하기 쉬워질 것 같기도 합니다. ^^;
/VollagoX