[이오스 이야기] 스팸 트랜잭션의 테러 문제, 이오스는 어떻게 해결해 나갈 것인가?
이오스 포스팅 열심히 쓰라고 멋진 대문을 선물해주신 @designkoi님께 감사드립니다 :D
안녕하세요, 디온(@donekim)입니다. 오늘 오전에 이오스 계정을 가지고 있는 사용자들이 토큰 전송, 스테이킹, 이오스나이츠나 이오스벳 같은 댑 사용이 일제히 중지되는 사태가 벌어졌습니다. 해당 문제의 원인으로 추정되고 있는 것은 이오스 블록체인에 문제가 있어서 블록체인이 셧다운되었다거나 하는 치명적 결함의 문제는 아니라 한 계정이 엄청난 량의 트랜잭션을 발생시키면서 CPU자원을 엄청나게 사용해버렸기 때문인 것으로 보입니다. (아직 정확한 원인이 명확히 밝혀지지는 않았으니 정확한 원인 파악도 필요할 것으로 보입니다)
이전에 포스팅을 통해 소개해드렸던 바와 같이 이오스 블록체인에는 RAM, CPU, Network라는 3가지의 자원이 있습니다. 현재 스팀 블록체인의 Bandwidth와 비슷한 개념으로 하드포크20 이후에는 리소스 크레딧(Resource Credits)으로 변경예정인 블록체인 상에 존재하는 리소스라고 생각하시면 됩니다.
이더리움 블록체인에서는 디도스 공격을 막기 위해서 GAS라는 수수료 개념을 도입하였다면 DPoS방식인 스팀과 이오스 블록체인에서는 트랜잭션 마다 월세처럼 소모만 되는 수수료를 부과하는 대신에 일종의 계정 전세시스템을 도입하여 위와 같은 자원의 사용용량에 제한을 걸어놓고 일정 수준 이상의 엄청난 트랜잭션을 발생시키는 디도스 공격을 위해서는 일정량의 자원들을 구입하거나 스테이킹 하도록 하고 있습니다.
오늘 오전에 이오스 블록체인에서 많은 사용자들이 아무런 트랜잭션을 발생시킬 수 없는 문제를 촉발시킨 계정은 바로 이 blocktwitter
라는 계정입니다.
이오스 메인체인이 런칭된 이후 이 계정에서는 "WE LOVE BM"
(우리는 댄 라리머를 사랑한다) 라는 메세지를 담은 트랜잭션을 엄청나게 발생시키고 있습니다. 위의 차트에서 파란색으로 표시된 부분이 blocktwitter라는 계정에서 발생시킨 트랜잭션의 양을 보여줍니다.
지금 현재 이오스 블록체인에서는 이오스나이츠와 이오스벳과 같은 게임들이 꽤나 많은 트랜잭션의 비중을 차지하고 있음에도 불구하고, 블록트위터에서는 이를 몇 배 뛰어넘는 쓰레기 트랜잭션을 대량으로 발생시키고 있는 것을 확인하실 수 있습니다.
현재 블록트위터의 이러한 대량 트랜잭션의 발생에 대해서는, 위와 같은 메시징 트랜잭션 방식으로 많은 이들에게 마케팅을 해줄 수 있다고 어필을 하는 스팸 메시지 형 광고를 하고 있는 중이라는 말도 있고, 고의적인 디도스 공격을 통해서 이오스 블록체인의 한계를 테스트하는 중이라는 말도 있습니다. 어느 쪽이 되었던 TPS성능 테스트와 추후 대량의 트랜잭션 발생 시 발생가능한 문제에 대한 사전 점검을 해볼 수 있다는 점에서는 어느 정도 긍정적으로도 생각할 수 있지만 개인적으로는 우려되는 면들도 있습니다.
그것은 바로 약 5만 4천개 정도의 EOS가 스테이킹 되어 있는 계정에서 발생시키는 스팸 트랜잭션으로 인해서 이오스 블록체인의 CPU자원의 변동폭이 엄청나게 크게 영향을 받고 있다는 점입니다.
현재 이오스나이츠나 이오스벳을 즐기던 사용자들은 순간적으로 모든 댑들을 이용할 수 없게되었습니다. 정상적으로 작동하던 댑들이 다운되어 버린 것이나 마찬가지인 것입니다. CPU 대역폭이 순간적으로 다 차버리게 되면 추가로 스테이킹을 하는 것 또한 불가능해지기 때문에 어느 정도 CPU가 안정되기 이전에는 대량으로 스테이킹을 해 놓은 계정이 아닌 이상 아무것도 할 수 있는게 없어진다는 점이 문제입니다.
오늘 이오스나이츠 텔레그램 방에서는 "이더리움 진영에서 이오스에 공격이 시작되었다.", "이오스 블록체인이 멈춰버렸다.", "이오스 나이츠 게임 개발진이 스테이킹을 하지 않아서 게임이 불안정하다"는 둥 해당 내용에 대해 잘 알지 못하는 분들의 출처없는 뇌피셜과 음모론들이 등장하는 웃지 못할 해프닝도 벌어졌습니다.
그동안 저의 포스팅을 봐주셨던 분들은 아시겠지만, 저는 이오스나 스팀으로 대표되는 DPoS에 대해 엄청난 믿음을 가지고 있습니다. 그리고 이오스와 스팀을 엄청 좋아라하며 빠져 살고 있습니다. 아직까지 오늘 오전의 CPU자원에 대한 문제 원인이 정확히 밝혀진 것은 아니지만 만약에 꼴랑 5만개의 이오스 토큰을 스테이킹하고 있는 계정이 발생시키는 스팸 트랜잭션이 원인이 되어 이러한 문제 상황이 발생된 것이라면, 엄청나게 많은 이오스 계정들이 아무것도 할 수 없었다는 점은 꼭 짚고 넘어가야 할 문제라고 생각이 됩니다. 그리고 그것이 아니더라도 이와 같은 문제 상황의 원인에 대해서는 명확히 진단을 해 볼 필요가 있지 않나 싶습니다.
오늘과 같은 사태가 반복적으로 빈번하게 일어난다면 이오스 블록체인도 이더리움과 결과적으로 다를 바가 없다, 블록체인들이 다 똑같은 한계를 가지고 있다는 비판에서 자유로울 수 없게 됩니다. 과연 BP들은 오늘과 같은 사태에 대해서 어떠한 솔루션을 제안할지 기다려 봐야 하겠습니다.
이미 9일 전에 greymass에서 greylisting에 대해서 다룬 포스팅이 업로드 되어 있네요. 이미 블록트위터에 대해서는 BP들도 어느 정도 예의주시를 하고 있었던 것으로 보입니다.
링크 주소 : https://steemit.com/eos/@greymass/greylisting-on-eos
출처가 명시된 펌글에는 감사드리지만, 출처를 밝히지 않은 무단펌은 도둑질입니다.
카페나 블로그 등에 퍼가실 때는 반드시 출처를 명시해주시기 바랍니다.
무단펌은 포스팅을 작성하는 사람의 사기를 떨어뜨리는 기만 행위입니다.
H O P E F O R T H E B E S T ,
P L A N F O R T H E W O R S T
https://steemit.com/@dONekim
결국 하나의 메인체인에 모든 댑들이 묶여있는 구조로는 한계가 있죠.
한 사용자의 트랜잭션 스팸으로인한 병목현상으로 인해 무고한 다른 댑들이 피해를 받는 구조.
체인 자체가 분산화(노드의 분산화가 아니라)가 되지 않고서는 이러한 문제는 계속해서 나옵니다.
이래서 궁극적으로 플랫폼체인들은 사이드체인방식으로 갈수밖에 없다고 생각해요.
제가 엘라스토스에 투자하는 핵심이유중 하나입니다.
메인체인은 경부선처럼 움직이고 다양한 로컬체인들이 중부, 영동선 처럼 나타날 필요가 있기는 하죠 ㅎㅎㅎ 여러가지 플랫폼들이 각기의 댑들이 원하는 성능이나 테마에 맞춰 각자의 영역을 구축하는 날이 오기를 바라고 있습니다. :)
저도 콜렉터님말에 공감합니다 결국 플랫폼체인들은 사이드체인방식을 채택할 수 밖에없죠.
저는 엘프의 사이드체인과 병렬처리에 관심이 생겨서 유심히 지켜보는 중입니다.
보팅과 팔로우하고 갑니다...
맛팔 부탁드립니다...^^^
맞팔 완료했습니다 방문 감사합니다 :D
이런 문제들이 빨리 발견되고 해결돼서 나중에 큰 사건이 안터졌음 좋겠네요~!^^
맞습니다 사후약방문이 되기보다는 사전에 미리 여러가지 발생가능한 문제 상황에 대한 진단을 충분히 할 수 있는 계기가 되었으면 좋겠습니다^^
설마 5만개 eos 스태킹 cpu 사용으로 리소스 가격이 폭등하진 않았기를 바래봅니다... 나중 가면 엄청난 양의 스태킹된 eos 홀더들의 cpu 사용이 있을텐데 말이죠 >_<
ㅎㅎㅎㅎ 째시기님 말씀이 맞습니다. 이 정도 스테이킹으로 문제가 발생된 것이 아니라 뭔가 복합적인 상황이 있었을 것 같은데, 빨리 정확한 원인진단 결과가 나왔으면 좋겠네요 :D
실 테스트 가능성도 배제할 수는 없겠네요.. 유명한 소프트웨어 엔지니어인 에릭 마이어 같은 분은 테스트 코드 짜지 말고 진짜 테스트를 하라고 항상 주장하시거든요. 시스템 셧 다운 같은. 진담으로 ㅎㅎ. BP가 미리 알고 있는 상태에서 이런 문제가 대두되었다면 어떻게 BP들이 대응하고 있는지도 이오스 커뮤니티 관심사항이 되겠네요.
사실 블록트위터가 대규모 쓰레기 트랜잭션을 발생시켜보는 것은 진짜 제대로 된 battle-test는 맞는 것으로 보입니다 ㅎㅎㅎ CPU와 네트워크 자원 계산 메커니즘을 정확히 몰라서 조금 답답하네요 ㅠㅠ
이런 사고는 예방 할 수는 없는 건가요
잘 모르는 사람이라 할 건 걱정밖에 없으니
상세한 설명 감사합니다.
리스팀합니다.
사실 지금의 블록체인들은 완전 걸음마 단계에 있기 때문에 발생가능한 모든 상황들에 대한 시뮬레이션이나 실전 테스트가 진행되고 있다고 생각해야 할 것 같긴 합니다. 다만 문제가 발생할 때마다 원인이 빨리 파악되고 이에 대한 해결책이 바로바로 잘 논의되면 정말 좋을 것 같아요 :D
이오스 계정이 없다면 마나마인에서 만든 계정생성툴을 사용해보는건 어떨까요?
https://steemit.com/kr/@virus707/2uepul