[EOS과부하 시사점] DAPP들은 결국 퍼블릭체인(EOS,이더리움 등)에서 독립할 것이다.

in #coinkorea6 years ago

안녕하세요? 콜렉터입니다^^

오랜만에 글을 적는데 꽤나 무거운 주제입니다.

'[EOS과부하 시사점] DAPP들은 결국 퍼블릭체인(EOS,이더리움 등)에서 독립할 것이다.'

라는 주제로 글을 적어볼겠습니다.

얼마전 EOS블록체인에서 이오스벳,이오스나이츠나 같은 모든 EOS기반의 DAPP 사용이 불가하게 되는 초유의 사태가 발생했습니다.

5만개의 EOS를 CPU에 스테이킹하고있는 유저 한명의 무한 트랜잭션 생성이 그 원인으로 밝혀졌는데요.


<EOS블록체인의 3가지 자원 - RAM, Network, CPU>

EOS 블록체인 시스템은 계정마다 RAM, CPU, Network 자원 사용용량을 EOS 스테이킹 개수에 따라 부여함으로써 EOS 대량 보유자가 아닌 이상 EOS 블록체인에 대한 공격을 하지 못하도록 설계를 해놓았습니다. 이 설계는 EOS 대량 보유자는 굳이 EOS 블록체인에 대한 악의적 공격(일종의 팀킬)을 하지 것이라는 전제에서 부터 시작합니다.

하지만 이 전제 자체가 부정되는 일이 실제로 일어나고야 맙니다....



<CPU에 스테이킹 몰빵(?)한 'blocktwitter' 계정의 트랜잭션 스팸생성>

약 5만 4천개의 EOS가 CPU에 스테이킹 되어 있는 'blocktwitter'라는 계정이 스팸 트랜잭션을 발생시켰고 이를 통한 CPU리소스 부족으로 오랜 시간동안 다른 수많은 이오스 계정들이 트랜잭션을 생성할 수 없게 되어버린 것입니다.

어느 이오스나이츠 외국유저의 계산에 따르면 당시 EOS 트랜잭션을 생성하기 위해서는 인당 50 EOS 이상을 CPU에 스테이킹해야하는데 '비디오게임보다 퀄리티가 떨어지는 게임을 굳이 25만원을 써서 해야하는거야?'라는 질문을 하기도했습니다.

총 10억개의 발행량을 가진 EOS가 고작 5만개의 EOS(약 3억원치)를 보유한 계정 하나의 장난(?)으로 사용불가가 되었다는 사실은 레딧이나 많은 블록체인 커뮤니티에서 화제가 되었습니다.

이 사건은 하나의 헤프닝으로 끝났지만

개발자나 유저 입장에서 블록체인에 대한 여러가지 문제를 시사하는 큰 사건입니다.

과연 어떤점들을 시사하는 걸까요?


1. 어떤 퍼블릭체인도 결국엔 스케일링의 문제가 일어날 수 밖에 없다.

최초의 스마트 컨트랜트 블록체인 이더리움은 과거 여러번 스케일링에 대한 한계를 드러냈었습니다.


<이더리움 기반의 게임 크립토키티>

이더리움 기반 다마고치(?) 게임인 '크립토키티'로 인해 네트워크 수수료가 천정부지로 치솟았었고 SNT ICO 당시 이더리움 네트워크가 2~3일간 마비되었던 것이 그 예입니다.

하지만 이번 사태는 이더리움 스케일링 문제를 해결함을 표방하고 있는 EOS에서 발생한 사건이므로 '스케일링 이슈에서 완전 자유로운 퍼블릭체인은 아마도 존재할 수 없을 것 같다'는 것을 보여주었습니다.

이번 문제는 스케일링 문제가 단순히 블록체인의 퍼포먼스에서 나오는 문제가 아니라는 새로운 의견을 제시합니다.

이더리움까지 제기되었던 한정된 TPS의 문제가 아니라 '한정된 자원을 여러 DAPP이 공유해서 사용하는 그 시스템 자체가 문제'라는 것입니다.

이렇게 천문학적인 금액을 투자하여 구축해놓은 서버를 고작 3억원치(5만4000 EOS)를 가진 유저의 자원사용(심지어 소모되지도 않음)으로 마비시킬 수 있다는 것은 매우 가성비 뛰어난 공격이 아닐 수 없습니다.

당장이야 CPU 할당 알고리즘을 개선하거나 CPU 전체 자원 증축을 통해 해결할 수 있을지 몰라도 이렇게 자원을 풍부(?)하게 사용하는 유저가 한명이니 망정이지 5만 EOS 이상을 가진 수 많은 유저들이 동시에 자원을 풍부(?)하게 사용한다면...? CPU 자원 증축을 2배, 3배, 10배를 해도 모자를 겁니다. 즉, 3억원치의 소모되지 않는 공격을 막기 위해 더 높은 금액의 CPU 증축비용이 요구될 수 있는 겁니다.

또한 유저수도 현저히 낮고 아직 제대로 구축되지도 않은 생태계에서 스케일링문제를 보여준다면 우리가 꿈꾸는 아주 거대한 생태계를 끌고가는 것은 불가능한 일입니다.


< EOS BP >

혹자는 EOS의 경우 BP에 의한 계정 블럭으로 악의적인 스팸 부분만 제거하면 문제를 해결할 수 있다고 주장하시는분도 있지만 'blocktwitter'계정이 악의를 가졌든 아니든 자신이 제공받은 자원내에서 올바르게 자원을 사용한 것이므로 블럭시킨다는 것도 에러입니다.

또한 만약 DAPP의 작동 방식이 의도치않게 트랜잭션을 과다 생산하는 구조라면 해당 계정은 악의적으로 트랜잭션생성을 하는 것은 아니므로 블럭은 도덕성에 어긋나게 되는 겁니다. 또한 이러한 통제는 소수에 의해 통제되는 프라이빗 체인을 떠올리게도 합니다.

현재의 중앙화된 서버구조의 블록체인 플랫폼은 모든 DAPP을 감당키는 한계가 있다는 것을 여지없이 보여준 것입니다. 사실 현재의 퍼블릭체인들의 구조는 블록체인이 아닌 일반 중앙서버로 구동된다고 하더라도 감당하기 힘들지도 모릅니다.

요약: 현재 모든 DAPP들이 연결된 중앙 서버방식의 블록체인에서는 스케일링 문제는 계속해서 제기될 것이다.


2. DAPP은 결국에 퍼블릭체인에서 독립하여 독자체인을 구축 할 수 밖에 없다.


<EOS의 DAPP 생태계>

위의 사진은 EOS의 생태계를 보여주는 한장의 사진입니다.
(이외에도 EOS 메인넷의 댑들의 총 숫자는 현재 229개라고 합니다.)

많은 DAPP들은 수많은 장점이 있기에 퍼블릭체인을 이용하고 있습니다.
퍼블릭 블록체인을 통해 블록체인의 신뢰성(해쉬파워)를 담보 받고 있구요.
그리고 플랫폼의 유명세를 통해 독자체인으로는 불가능한 인기를 얻고 있습니다.
(이로인해 DAPP 수준에 걸맞지 않는 막대한 돈을 벌기도하고요.)
또한 블록체인이 아닌 어플리케이션 개발에 집중할 수있는 이점을 얻을 수 있기도 합니다.

하지만 명백한 단점 또한 존재합니다. 현재 DAPP에서 만들어내는 모든 트랜잭션은 EOS 및 이더리움 메인체인을 통해 처리가 됩니다. 분산화를 추구하는 블록체인 프로젝트들이 하나의 체인에 집중되어 있는 일종의 중앙화식 구조를 갖고 있는 것입니다.

이러한 DAPP들과 체인의 중앙화 구조 때문에 메인체인의 불능은 생태계에 포함된 모든 DAPP들의 마비를 불러 일으킵니다. 이번 사태와 같이 한 명의 사용자가 전체 DAPP을 정지시킬 수 있는 막장(?)사태가 일어 날 수 있는겁니다.

DAPP들 입장에서 자신들의 잘못도 아니며 통제할 수도 없는 서버 마비를 좋게 받아들일 수 있을까요??

)
"You're not safe."

이번 사태는 이더리움의 스케일링 문제를 피해 EOS로 넘어온 DAPP들에게도 '너희들 역시 안전하지 않아' 라는 경고를 해주는 사건이라고 말할 수 있습니다.

그렇다면 DAPP들은 결국 어떻게 통제불가능한 피해를 방지 할 수 있을까요?


결국에는 자신들의 독자체인을 구축하는 수 밖에 없습니다.

어느정도 자리를 잡고 유명해진 DAPP이라면 결국에는 자신의 DAPP의 독자 블록체인을 생각하게 될 겁니다.


예를 들어 은행같은 경우에는 어느정도 효율성(속도)보다는 신뢰성이 아주 높은 체인을 만들어낼 것이고


게임같은 경우에는 신뢰성보다는 효율성(속도)에 적합한 구조의 중앙화된 체인을 구축할 것입니다.
(오히려 게임같은경우에는 블록체인상에서 구동되는게 효율이 매우 떨어집니다.)

이렇게 자신들의 독자체인을 통해 DAPP들은 스케일링 문제에서 해방될 수 있으며 자신의 댑에 가장 적합한 블록체인을 만들어 낼 수 있습니다.

이러한 이유로 이더리움 기반의 여러 플랫폼들이 이미 독자체인으로 변모하였고 EOS도 마찬가지로 될 가능성이 높습니다.


결론 : 이제는 블록체인의 개념을 재정의 해야할 때

비트코인 이후 이더리움이 제안한 스마트컨트랙트는 사람들에게 블록체인에 대한 무궁한 발전가능성을 시사했습니다.

즉, 사람들에게 세상의 모든 시스템이 블록체인상에서 구동될 것이라는 희망을 심어주었고 그로인해 '스케일링'이라는 문제에 집중하도록 만들었습니다.

그 현상은 블록체인의 성능을 TPS로 비교하는 행태로 변질되었구요.

"이더리움보다 이오스가 TPS가 높아. 그러니 이오스가 최고의 블록체인이다."
"무슨소리. 트론도 TPS가 장난아니다.. 트론이 최고다."
"이 정도 TPS는 되어야 모든 DAPP들을 구동할 수 있다고.."

이러한 말들을 인터넷 커뮤니티에서 심심찮게 볼 수 있습니다.

과연 TPS가 블록체인의 우월성의 척도가 될 수 있을까요?
(TPS를 얻기위해 무엇을 희생했는지 잘 생각해볼 필요가 있습니다.)

애초에 블록체인은 신뢰를 위해 설계된 기술이지, 효율성을 추구하는 기술이 아닙니다.
속도와 효율성의 희생을 통해 신뢰성을 쌓은 것이 블록체인이라는 것을 인정해야합니다.

비트코인은 10년간의 거래 기록이 모두 존재한다는 장점이 있지만 만약 비트코인의 TPS가 빠르고 수수료가 없었다면 데이터필터링이 불가능할 정도로 역사적으로 축적된 쓰레기가 엄청난 용량을 차지하고 있을겁니다.


<페이스북의 서버공장>

퍼포먼스가 우수한 퍼블릭체인이 계속해서 나온다할지라도 그것이 페이스북, 알리바바의 수만 개의 중앙 집중화된 서버보다 빠를 수 없다는 것을 우리는 알고 있습니다.

모든 DAPP이 하나의 퍼블릭체인 내에서 구동되는 중앙화구조에서는 어떻든 스케일링의 문제가 나올 수 밖에 없다는 것을 이번 사태에서 알 수 있었습니다. 또한 현재 대다수의 DAPP들은 불필요한 블록체인화로 인해 어플리케이션 퍼포먼스에 큰 제한을 받고 있으며 심지어 통제 불가능한 사태로 인해 동작이 정지될 리스크가 있는 환경에 처해있는 겁니다.

그런데 아직까지 블록체인에 있어 상극인 효율성이나 TPS에 집착할 필요가 있을까요?

)
<APP은 평범한 사람들이 사용하는 것>

앱이란 무엇입니까? 앱은 평범한 사람들이보고 느끼는 것입니다. 사람들은 이러한 프로그램이 어떻게 작동하는지 모릅니다. 또한 평범한사람들은 APP이 탈중앙으로 돌아가던 중앙화로 돌아가는지 관심도 없습니다.

그런 평범한 사람이 신한은행 어플 사용에 CPU를 스테이킹 하거나 전송하나당 수수료를 지불하여야 한다면 굳이 그 어플을 쓰지 않을겁니다.

또한 배틀그라운드, 오버워치, LOL 등의 게임에 익숙해진 사람들이 크립토키티, EOS나이츠와 같이 느리고 단순한 분산된 게임을 이용할리가 만무합니다.(어떻게보면 90년대 게임인 스타크래프트보다 재미가 떨어지죠..)


<'신뢰'의 강점을 가진 블록체인>

그렇다면 블록체인이 현재의 중앙화 어플리케이션을 뛰어넘기 위해서는 어떤 형태로 발전해야할까요?

먼저 블록체인이 만능이 아니라는 개념을 인정하여야 합니다.

또한 블록체인의 약점인 '효율'부분은 양보하고 강점인 '신뢰'를 활용하는 방식에 집중해야 한다고 생각합니다.

DAPP 개발자들은 단순하게 굳이 탈중앙화라는 개념에 함몰될 것이 아니라 친숙한 APP개발에 집중해야 할 것입니다. 따라서 과감하게 중앙화가 필요한 부분은 중앙화를 적용하고 신뢰가 필요한 부분은 퍼블릭체인을 이용하던지 독자체인을 이용하던지 결론적으로 사용자에게 친숙한 어플리케이션을 만들어야 할 것입니다. 즉, 모든 블록체인의 시스템은 사용자에게 직접 드러나선 안됩니다. 어렵고 이질감을 느끼게 하기 때문이죠.

퍼블릭체인은 중앙화된 서버보다 느린 직접적인 DAPP의 실행 환경을 제공하는 것이 아니라 신뢰를 쌓는데 집중하며 그 신뢰성을 DAPP들에게 제공해야합니다. 또한 DAPP들이 더 신뢰를 잘 녹여 낼 수 있도록 적합한 개발환경이나 SDK를 제공하여야 합니다.

이러한 구조가 '사이드체인'이나 '인터체인'의 방향입니다. 스케일링의 문제는 각자 DAPP이 추구하는 방향에 맞는 독자체인에서 해결하며 높은 수준의 신뢰성을 요구하는 'ID인증', '정보 보관', '접속권한 제공' 등 의 창구로 메인체인을 이용하는 방식입니다.


<배그핵 신고중.....>

예를 들자면 기존의 배틀그라운드의 중앙화서버를 사용하되 게임의 배그핵이 관여하는 일부 소스를 블록체인과 연동하여 컴파일한다던지 혹은 게임 시작 및 종료시에 블록체인과 대조하게 함으로써 자동적으로 핵프로그램을 잡아내거나 걸러내는 방법 등이 게임의 블록체인을 통해 신뢰성을 부여하는 방법이 될 수 있습니다. (제 상상력의 한계는 여기까집니다...)

저는 이러한 간접적 방식의 블록체인 도입이야 말로 어플리케이션의 퍼포먼스를 극대화하며 블록체인의 신뢰성을 어플리케이션에 녹여 낼 수 있는 최고의 방법이라고 믿습니다. 또한 모든 블록체인은 겉으로 드러나지 않으므로 어플리케이션을 사용하는 평범한 사람들이 블록체인에 대한 이질감을 느끼지 않을 수 있다고 생각합니다.


<DOS 시절의 게임을 연상시키는 대표적 블록체인 기반 게임 '크립토키티'>

이 정도로만 간접적으로 블록체인을 사용한다면 '크립토키티' 수준의 게임을 평범한 사용자들에게 대표적 블록체인 기반 게임으로 소개하는 부끄러움을 면할 수 있을 것입니다.

유저와 어플리케이션을 위한 블록체인이 되어야지 목적에 함몰되어 탈중앙화와 블록체인을 위한 어플리케이션이 되지 않는 방향으로 업계가 발전했으면 합니다.

이상으로 '[EOS과부하 시사점] DAPP들은 결국 퍼블릭체인(EOS,이더리움 등)에서 독립할 것이다.'라는 글을 마치겠습니다.

남은 일주일도 잘 보내시길 바랍니다.

follow me!

Sort:  

현재 KOREOS 텔레그램 채널에서 논의되고 있는 내용을 전달합니다. :-)

  1. EOS 네트워크가 한산할 경우, 각 계정은 CPU & NET 실제 허용량의 1,000배까지 사용할 수 있도록 되어있다.
  2. 따라서 50,000 EOS를 스테이킹한 blocktwitter는 최대 50,000,000 EOS를 스테이킹한 것과 같은 CPU & NET 허용량을 가진다.
  3. blocktwitter는 이를 일시에 사용하여 병목 현상을 발생시킨다.

해결 방안으로는,

  1. 활성화된 DApp이 많아져서 네트워크가 지속적으로 붐빈다.
  2. 자원 임대 시장 DApp(친타이, REX)을 통해 DApp 개발사가 필요한 자원을 저렴하게 임대받아 이를 유저가 이용하도록 한다.
  3. 따라서 blocktwitter는 병목 현상을 일으킬만큼 CPU & NET 허용량을 할당받지 못한다.

더하여, EOS 메인 체인에 병렬처리, 멀티사이드체인 적용 등으로도 이를 바로 해결할 수 있습니다.
다만, EOS 메인 체인에 더욱 많은 DApp이 활성화된다면, 그리고 자원 임대 시장이 도입된다면,
현재 메인 체인의 자원량만으로도 충분히 이용할 수 있다는 계산이기에 진행하지 않는 것으로 알아요.


코리오스 텔레그램 채널에서 다뤄진 내용을 편집하여 올리는 것임을 다시 알립니다. :-)

제 글의 논지는 이 사태를 해결할 수 있냐 없냐의 문제가 아닙니다.
그 문제 많던 이더리움조차도 그 문제 하나하나에 대한 대응책은 그때그때 마련했었지요.

문제는 근본적인 시스템임을 지적하는 겁니다.
친타이, REX 솔루션을 사용하더라도 퍼블릭체인의 과부하는 발생불가능한게 아닙니다.

기존에 중앙 서버로도 잘 돌아가고 있던 시스템을 굳이 블록체인으로 다 끌어와서
일반 사용자는 사용하지도 못할 정도의 불편함을 가진 DAPP들을 통해 세상을 바꿔보려고 하는 블록체인 업계의 현실이 안타까워 쓴 글입니다.

네 :-) 원래 설계되었던 대로 진행되고 있는 것임을 알리려고 한 것이어요. 멀티체인 등의 해결 방안도 처음부터 설계되어있던 내용이구요.

더하여, 말씀하신 것처럼 '굳이 왜 블록체인에'라는 질문을 해결하지 못한 DApp은 자연히 도태될 것으로 동의합니다!

불편함은 존재하지만 DEX같은 좋은기능이 있죠.

알기 쉽게 정리된글 잘 읽고 갑니다.

첫댓글 감사드립니다.

정말 블록체인 현 시점에 꼭 필요한 글이라 생각합니다.

좋은 댓글 감사드립니다.

정말 좋은 글 감사드립니다. 블록체인 자체의 강점을 활용해서 기존 서비스에 접목시키는 방향으로 가야할 것 같아요.

맞습니다.

기존에 잘 돌아가고 있던 시스템을 굳이 블록체인으로 다 끌어와서 불편한 시스템을 만드는건 지양해야되지 않나 싶습니다.

TPS 에 대한 접근과 해석을 잘 해주셨네요 ^^

감사합니다

혜안이 담긴 멋진 글이네요. 리스팀합니다!

리스팀 감사합니다.

블록체인이 만능은 아니다

저는 블록체인에 대해 아무것도 잘 모르지만 중요한것 하난 배워갑니다

블록체인 기술이 가지고 있는 강점이 반드시 필요한 서비스들은 댑으로, 중앙화된 서비스의 강점이 필요한 서비스들은 계속해서 앱으로 개발이 되어야 하겠지만, 펀딩이 수월하게 될 수 있다는 점 그리고 블록체인 기술에 대한 뜨거운 시장참여자들의 관심 등으로 인해서 블록체인 위에 올라올 필요가 없는 영역의 서비스들도 너도나도 블록체인 이라는 밥상에 숟가락을 얹고자 했던 욕심들이 모여 거대한 버블이 생겼고 다시 제자리로 돌아온 것 같습니다.

말씀하신 것처럼 댑은 댑 답게, 앱은 앱 답게 개발이 진행되어야 할 것이라고 생각합니다. 다만 블록체인은 완전한 초기단계로 다양한 시도들이 실제로 블록체인 위에서의 작동이 가능한지, 중앙화된 서비스만큼의 품질이나 속도를 보여줄 수 있는지를 battle-test를 해볼 수 있는 단계까지 개발만 되고 다양한 사람들이 테스터로 참여만 해볼 수 있다면 그 자체로 의미가 있지 않나 싶어요.

문제는 컨셉이라는 껍데기만 가지고 MVP도 만들어내지 못하는 쓰레기 프로젝트들이 훨씬 더 많을 것이라는 점입니다. 크립토키티도 이오스나이츠도 웹기반 게임이나 모바일 게임에 비해 그래픽 품질이나 유저 인터페이스가 현저하게 떨어지기는 하지만, 그런 도전과 실패 속에서 뭔가를 깨닫게 되고, 또 다시 업그레이드 된 서비스들이 나오며 세대교체가 계속되겠죠? 한계를 느껴보는 의미 있는 실패가 계속되어 블록체인과 암호화폐 시장에서 기술 발전이 계속되기를 바랍니다 :D

이오에스 기사 등 방치형 rpg 홍보 시작하더니
1주일 정도만에 과부하 문제 발생했나보군요.
귀추가 주목되네요.

https://steemit.com/coinkorea/@steamsteem/re-collector999-eos-dapp-eos-20180827t133641527z

독립하려면 합의엔진 만들고 검증하는데 5년, 커뮤니티 구성/노드 선정하는데 1년, sdk/디앱 만드는데 1년은 걸릴텐데 이것도 성공 가능성이 굉장히 희박하죠..궂이 모험을 할필요가 있나요? 제대로 안들어진 체인 쓰는게 나아보여요

Coin Marketplace

STEEM 0.20
TRX 0.25
JST 0.038
BTC 96907.08
ETH 3380.66
USDT 1.00
SBD 3.23