- EOS 과부하와 EOS의 미래에 대한 고찰 -

LANGCHAIN
15 min readSep 6, 2018

--

안녕하세요

한국의 EOS 기반 dApp. LangChain의 블록체인 아키텍트 David 입니다.

멋진 이미지 주신, LangChain 디자이너 Jaesung 님께 감사합니다 :)

EOS는 18년 6월 2일 이후로 메인넷을 런칭, 또 여러가지 이슈가 있었습니다. 저는 그 중 가장 시사하는 바가 컸던 이슈는 얼마전의 blocktwitter의 스팸성 트랜잭션 때문에 일어 났던 네트워크 과부하 였습니다.

저도 EOS를 사랑하는 커뮤니티의 일원으로써, dApp 으로써 상당히 많은 생각이 들었던 이슈였어서 여러분들에게도 제가 했던 생각들 고민들 을 공유하고자 이 글을 씁니다. 크게 맥락은,

  1. blocktwitter 계정의 스팸성 트랜잭션은 왜 이슈가 되 었는가?

2. 이렇게 이슈가 많은 플랫폼이니, dApp들은 결국 독자 체인을 구축할 수 밖에 없을 것인가?

이 두가지에 대한 제 대답은 ‘아니’라는 것입니다.

사실 이미 알고 있으신 분들도 계실거고, 다른 매체에서 한번쯤은 다루었던 내용이기도 하겠지만, 나름의 제 생각을 이오스 생태계에 있으신 분들, 나아가서는 블록체이너들 모두에게 꼭 공유하고 싶었습니다.

그럼 이제 이야기를 시작해 보겠습니다!

1. blocktwitter 계정의 스팸성 트랜잭션은 왜 이슈가 되 었는가?

blocktwitter 계정의 “we love bm” 메세지를 담은 과다의 스팸성 트랜잭션은 약 7월부 터 존재해 왔습니다. 하지만 왜 이게 이번에 이슈가 되었을까요?

일단 가장 먼저 말씀드려야 할 부분은 이오스의 자원 사용 구조 때문이라고 할 수 있겠습 니다. 이오스 네트워크의 자원은 세가지 인데요.
CPU time, Network bandwidth, RAM 이 있겠습니다.

EOS체인의 자원 1. CPU 2. Bandwidth(Net) 3. RAM

위에서 보신 3가지 자원 중 RAM을 제외한 나머지 CPU, Bandwidth는 이오스 토큰을 소유하면 토큰의 양에 따라 부여 받습니다. 쉽게 말해 이오스 놀이공원을 이용하는 자유 이용권이 이오스 토큰이라고 할 수 있죠.

여기까지는 이오스에 관심이 있으신 분들이라면 다 한번쯤은 들어보셨을 얘기라고 생각 합니다. 그러나 이오스는 실제로 토큰 양에 따라 일정 비율로 자원을 할당 받지만, 네트 워크의 혼잡도에 따라 그럴수도, 안그럴수도 있습니다.

그러니까, 자원 가용범위가 계속 변한다는 얘기입니다.

계정의 자원 가용 범위

eosflare 트래커를 이용하면 언제든지 여러분들도 여러분들의 현재 자원 가용범위를 체크할 수 있는데, 저기 박스 쳐놓은 부분을 새로고침 몇번만 해봐도 계속 값이 변한 다는 것을 금방 알아차리실 수 있습니다.

https://steemit.com/eos/@dexeosio/eosio-cpu-bandwidth 이 글은 DEXEOS의 개발자 [ LeckO] 님이 정리해주신 CPU time 측정할 때의 요소들에 대한 내용인데 아주 정리를 잘 해놓으셔서 참고하시기에 좋으실 겁니다.

한 계정의 CPU 가용범위가 계속 변하는 핵심적인 요소는 virtual-cpu-limit 이라는 녀석 때문인데요, 네트워크의 리소스 사용량에 따라.. 즉 혼잡도에 따라 그 값이 변하게 끔 설계가 되어 있습니다.

Resource Calculator 에 대입한 임의의 값들.

쉽게 말해서 0.1718 이오스에 할당된 값이 6,000us 의 CPU Time 이라면, 6,000us 만 쓸 수 있어야 하는데 네트워크의 혼잡도에 따라 그 이상을 쓸 수도 있고 아닐 수도 있다는 얘기입니다.

네트워크 혼잡도에 따른 자원 사용

이런 형태가 이루어지게 되죠.

지금까지 서론이 길었습니다. 결국 이런 자원 사용구조가 논란의 중심에 있는 이유는 어떻게 보면 이오스의 신뢰구조를 깨뜨릴 수도 있다는 것 때문입니다.

이게 무슨말이냐 하면 steemit 의 @collector999 님의 게시글을 한번쯤 보셨던 분들은 아시겠지만, 토큰을 많이 보유한 유저일수록 네트워크에 누가되는 행동은 하지 않을 것 이라는 신뢰를 깨뜨릴 수도 있다는 것입니다. 이오스의 토큰 철학은 토큰에 의해 생태계 가 움직일 것이고 토큰을 많이 보유한 사람은 자신의 토큰 가치 하락을 염려하여 누가 되는 행동은 하지 않을 것이라는 일종의 믿음을 바탕으로 이루어져 있는데, 50,000개를 스테이킹한 blocktwitter 계정이 이러한 암묵적인 믿음을 깨뜨렸다고 볼 수 있습니다.

사실 저도 이오스를 사랑하는 또 믿는 커뮤니티의 일원으로써, 이오스 기반의 dApp을 준비하는 한명으로써 blocktwitter의 행동을 부정적으로 바라볼 수는 없었습니다. 그 이유에는 여러 가지가 있겠지만 첫번째는, 이 계정 역시 정당히 스테이킹해서 트랜잭션 을 일으킨 것이고 악의적이든 아니든 이오스 자원 사용구조에 따른 행동이었습니다. 두번째는 이오스의 TPS가 어느새 4,000대에 가까운 3,996 이라는 수치를 기록했습 니다. blocktwitter의 스팸성 트랜잭션이 없었다면 과연 가능했을까? 하는 의문이 들었습니다. 아직은 불가능 했을겁니다.

  • 무의미한 트랜잭션을 일으켜서 다른 유저들에게 피해를 가게끔 한 것은 문제가 되지만 오히려 저는 현재 초기단계의 이오스 블록체인에 자원 사용 구조의 개선에 대해서 메세지를 준 점에 있어서는 긍정적으로 생각합니다.

이오스는 이 밖에도 여러가지 이슈를 겪어오며 여러가지 문제에 부딪혔습니다. 이번에 가장 크게 시사한 점은 이오스 역시 스케일링 이슈는 벗어날 수 없구나.. 정도가 되겠구 요. 그러면 과연 dApp들은 모두 플랫폼을 떠나 독자체인을 구성하여 각자의 생태계를 꾸려나가는 것이 건설적인 대안일까요? 이 질문에 대한 제 의견은 이렇습니다.

2. 논란의 연속인 EOS에 dApp들은 결국 독자 체인을 구축할 수 밖에 없는 것인가?

Steemit @collector999 님의 글에 대한 제 의견입니다.

이오스 플랫폼은 여타 다른 플랫폼과는 다른 퍼포먼스를 보여 주었습니다. 그러나 이오 스 역시 스케일링 이슈를 겪게 되었죠.

이오스 뿐만이 아니라 모든 블록체인 플랫폼들은 스케일링 이슈가 있을 것이라고 저도 생각합니다.

dApp들은 불만이 생길 것이죠. 자신들의 잘못도 아닌데, 계속 자신들이 서비스 해놓은 프로젝트들이 원활히 작동하질 않습니다. 그렇다고 해서 이오스를 떠나 독자 체인을 구성하려고 할까요?

지금 현재 상태의 이오스라면 그렇겠지만, 지금 당장 이 문제를 판단하기엔 너무 이른 시점입니다. 이오스는 발전하고 있습니다. 발전된 이오스 플랫폼을 놔두고 독자체인을 구성하여 나가기엔 dApp입장에서도 상당히 큰 위험을 안고 가는 것이겠죠.

지금 현재의 이오스가 당면한 문제를 크게 3가지 카테고리로 나눠 보겠습니다.
(다른 문제도 많겠지만, 이 글에서 다루어 보고자 하는 문제들에 한해서 입니다.)

첫번째, 이오스 자원사용 구조. 두번째, 스케일링 이슈. 세번째, 플랫폼 이슈 입니다.
이런 문제들에 대해서는 이오스는 아주 거대한 로드맵을 가지고 있습니다. 그 로드맵에 존재하는 솔루션들을 간단하게 말씀 드리겠습니다.

첫번째 :: 자원 사용구조 ::

이오스는 현재 자원 배분의 안정화가 필수 적입니다. 어떻게보면 스케일링 이슈 이전에 자원 사용 구조 때문에 벌어진 일이기도 하니까요. 자원 사용 구조는 점차 개선되어 나갈 것입니다. 그 솔루션들로는 아래의 것들이 있습니다.

#NEW Wasm Interpreter

Dan Larimer’s new wasm interpreter mention

댄의 CPU bandwidth 양을 2배로 부여해주는 새로운 wasm interpreter 입니다.
아직은 예정이고 현재 개발 중에 있습니다.

#GreyListing

GreyListing

GreyListing이 있습니다. 자원 사용에 대해서 너무 과하거나 악의적으로 쓰는 계정에 한해서 블랙리스트와 비슷한 방법으로 자원 사용을 제한하는 것이죠. 일부 차이점이 있다면 블랙리스트는 아예 계정 자원 사용자체를 금하는 것이고, 그레이 리스트는 토큰 당 부여되는 자원 사용은 할 수 있되, 유연하게 제공하지는 않는 것이죠.

# REX & Chintai Project

Chintai Project / https://www.chintai-eos.io
Dan Larimer’s Resource Renting proposal

REX 와 Chintai Project가 있습니다. 자원 사용 구조 자체를 바꾸는 솔루션은 아니지만 토큰에 유휴자원을 효과적으로 이용할 수 있게 도와주는 프로젝트라고 할 수 있습니다.

혹자는 EOS 자원 사용 구조를 token 당 부여되는 자원 사용량을 고정 시켜 두면 모든 것이 해결될 것이라고 주장하지만, 그건 너무 단순한 생각입니다. 모든 이유를 추정 해볼 수는 없겠지만, 이오스 네트워크의 유휴자원을 최소화 하기 위해서 한산할 때는 더 많이 사용할 수 있게 끔 만들어 놓은 것이 가장 큰 이유 중에 하나라 생각이 들기도 합니다. 그래서 이러한 유휴자원을 최소화 하기 위한 효과적인 솔루션으로 REX 와 Chintai Project 가 있습니다.

이런 솔루션들은 현재 개선중에 있으며 점차 안정화에 가까워 질 것입니다. 가장 큰 이오스 커뮤니티에 의해서, Block.One 에 의해서 말이죠.

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

두번째 :: 스케일링 이슈 ::

스케일링 솔루션은 여러가지로 나아질 수 있습니다. 그 솔루션 들로는 아래와 같은 방법 이 있습니다.

# Multi-Thread

https://forums.eosgo.io/discussion/187/understanding-multi-threading-in-eos

Multi-Thread 입니다. 댄 라리머도 언급하였듯이 현재 런칭된 메인넷의 EOS.IO는 Single-Thread 입니다. 멀티 쓰레드는 현재 개발 중에 있습니다. 현재보다 최소 몇배 이상의 트랜잭션을 감당할 수 있는 스케일링 솔루션 중에 하나입니다.

# IBC & Multi Universe in EOS

Dan’s Technical information about IBC / https://steemit.com/eos/@dan/inter-blockchain-communication-via-merkle-proofs-with-eos-io

IBC 가 있습니다. 나아가서는 거대한 이오스 멀티버스를 구현할 수 있습니다.

KOREOS ‘Devin Lee’ 님의 EOS 멀티유니버스 생태계

이렇듯 이오스는 다른 로컬, 사이드체인으로의 평행우주를 통해 스케일링 솔루션을 넘어 이오스 자원 사용의 확장으로 까지 이어질 수 있습니다.

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

세번째 :: 이오스 블록체인의 플랫폼으로의 이슈 ::

이렇게 스케일링 이슈를 해결해 나가도 궁극적인 블록체인의 사용 방향성에 대해 고민하고 계신분들도 있습니다. 이러한 부분까지 이오스는 고려하고 있습니다.

바로 Demux 입니다. 저는 이 것이 핵심 로드맵 중 하나라 생각합니다.

#DEMUX

Introduction of Demux — by EOSIO

바로 Demux 입니다. 어떤 정보를 온체인에 기록하냐 오프체인으로 기록하냐 의 문제는 이오스에서만 고민된 문제는 아니였는데요. 이번에 소개하는 이오스의 Demux는 쉽게 말씀드리면 기존 사용하고 있던 데이터베이스를 이용함과 동시에 이오스 블록체인을 이용할 수 있게 해주는 프레임워크라고 생각하시면 됩니다.

위 글의 핵심 문단을 잠깐 보여드리면,

core information of DEMUX — by EOSIO.=

바로 위 문단인데요. 기존 어플리케이션들을 사용하는 유저들 중에 반감을 가지고 이 것 만큼은 꼭 투명 했으면 하는데,,, 하는 정보들은 이오스 블록체인에 기록하고 나머지 액션 들은 기존의 어플리케이션 데이터베이스들을 통해서 이루어지는 것이죠. 즉 연동이 된다는 것입니다.

이런 DEMUX 솔루션을 통해 어떤 식으로 이오스 체인이 이용될 수 있을까? 하는 물음에 간단한 쉬운 예시를 통해 설명드리고자 합니다.

게임을 예시로 들면,

한 게임에는 사냥,아이템 거래, 랭킹, 채팅 등 하나 하나의 요소들을 말로 다 말할 수 없을 정도로 많은 것들이 포함되어 있습니다. 그 중에 정말 탈중앙화 되어야 하고 투명했으면 하는, 블록체인의 특징을 아주 잘 살리는 부분만 블록체인을 이용하고 나머지는 기존 서버에서 운영을 하는 것이죠.

넥슨 메이플스토리 사냥장면.

메이플스토리 게임입니다. 게임에는 사냥, 교환, 랭킹 등 그 요소들은 셀 수없이 많습니 다. 위는 사냥장면인데 저렇게 사냥등 모든 액션을 하나 하나 체인 위에 기록하면 그건 분명 네트워크에 dApp 하나로도 엄청난 과부하를 불러 일으킬 것입니다. 그래서 이러한 사냥같은 액션은 기존 서버에서 운영해도 됩니다. 누가 어디서 어떤 몬스터를 사냥하고 있는지.. 사실 관심은 없으실거라 생각합니다.

넥슨 메이플스토리 교환 장면

메이플 스토리의 교환장면 입니다. 하지만 어떤 게임을 통해 생겨난 게임머니는 현실의 화폐로도 교환이 되기도 하죠. ( 예시 : 아이템매니아, 아이템 베이 ) 그러면 그 게임머니 는 정말 공정하게 생산이 됬는지, 어떤 중앙서버가 그들 스스로 만들어낸 계정에 무제한 의 게임머니를 찍어내어 그 것을 Fiat Money 로 바꾸고 있는 만행을 저지르고 있는지는 않은지, 이런 것 들은 투명하고 탈중앙화 되어야 한다고 생각합니다.

이렇게 DEMUX 를 통해 빠른 사냥과 실시간성을 부여해야 하는 부분은 기존의 DB에, 유저들이 판단하기에 탈중앙화 되었으면 하는 부분은 이오스 블록체인 위에 올리면 되는 것입니다.

이오스 토큰으로 게임1과 게임2의 아이템을 거래한다

+나아가서는 이런식의 구도도 가능할 것입니다.

모든 트랜잭션이 이오스 체인위에 기록되지 않으면 앞서 말한 다양한 스케일링 솔루션들 이 적용된 이오스는 기존의 플랫폼들 수준으로 사용이 가능할 것입니다.

2가지 게임이 있습니다.

  1. 첫번째는 빠르고 우수한 품질인데 어떤 식으로 아이템이 생성되고 경험치를 얻게 되고 (랭킹과 연관) 유저가 알 수가 없습니다.
  2. 두번째는 빠르고 우수한 품질인데 모두 서로의 아이템을 어떻게 얻게 되었는지, 게임머니는 불공정한 방법으로 취득하지는 않았는지, 어떻게 높은 레벨을 달성하게 되어 높은 랭킹을 유지할 수 있는지, 탈중앙화된 서버에서 투명하게 볼 수 있습니다.

여러분이 게임의 유저라면 어떤 게임을 선택하시겠습니까? 저라면 단연코 후자 입니다.

이제서야 제가 말하고자 하는 핵심 부분을 말할 수 있습니다.

이런 솔루션들까지 적용이 되고 난 후의 이오스 플랫폼을 놔두고 dApp들은 자기의 독자 체인을 꾸려서 나가려 할까요? 물론 그런 선택을 할 dApp도 있겠지만 저라면 아닙니다. 유저 풀이 엄청나게 확보 되었고, 더 이상 트랜잭션 과부하 이슈가 일어나지 않는다면 굳이 떠날 이유는 없습니다. 오히려 이오스 생태계 안으로 들어오고 싶어할 것입니다.

저렴한 가격에 우수한 품질에 탈중앙화 되고 오픈 된 어플리케이션. 여러분이 유저라면 어떤 것을 선택하시겠습니까? 저라면 이오스 네트워크의 dApp들을 사용할 것 같습니다
그렇다면 그 많은 유저들이 있는 이오스 네트워크를 포기하고 독자 체인을 꾸려서 나가 려 하지는 않을 것 같습니다.

독자적인 체인을 구성해서 이탈하는 dApp들 보다 충분한 유저들이 확보된 이오스 플랫폼 위에서 구성하려는 dApp이 훨씬 많아질 것이라고 예상할 수 있습니다.

자원 사용 비용의 안정화, 스케일링 솔루션, 기존 서버와의 연동까지 고려한 블록체인 어플리케이션. 그 세상을 이끄는 중심에 이오스가 있다고 생각합니다. 그래서 저는 이오스를 사랑하지 않을 수 없군요.

이제까지 제 긴글을 읽어주셔서 감사드립니다.

+여담으로.

심지어 blocktwitter 계정은 이번에 staking 양을 반으로 줄였습니다. 이게 왜 흥미롭 게 보았냐면 blocktwitter 계정의 모계정은 ‘gu2tembqgage’ 인데 이 모계정 때문입니 다. 이 모계정은 정말 여러 곳에 대신 스테이킹해주고 램을 사주고 토큰 transfer를 해주고.. 그 양은 모든 모계정이 취한 액션들을 다 트래킹하기 어려울 정도입니다. 그 중에 인상적으로 보았던 계정이 있었는데, chaintwitter 계정이 있었습니다.

이 두 계정은 해당 스크린샷을 찍을 때, 이 이슈가 있었을 때 ( 물론 지금도 트랜잭션을 일 으키고 있습니다 ) gu2tembqgage 계정에 의해 만들어지고 대리 스테이킹된 계정 중 그 양에 있어서 아주 유사했습니다. 두 계정다 약 50,000이오스를 스테이킹 받았죠. 또 지금 이 글을 쓰고 있는 순간에는 약 20,000이오스로 줄었는데 혹시나 해서 봤더니 마찬 가지로 두 계정 다 20,000이오스로 줄어 들었습니다. 다른 계정으로 나머지 스테이킹양 을 옮겨서 또 다른 스팸성 트랜잭션을 더 다양한 계정으로 준비하고 있을지도 모르지요.

너무 당황하지 않으셔도 됩니다! 이미 한번 있었던 일이잖아요!

동일한 모계정을 가진 blocktwitter 계정과 chaintwitter 계정

--

--

LANGCHAIN

LangChain will create a fair ecosystem for the translation industry through Block Chain and AI. it will create a smaller world without language barriers.