우선 이더리움은 전에 말씀드린대로 네트워크 기반 컴퓨터처럼 사용이 가능하며 각종 프로그램 개발이 가능해서 그 네트워크로 개발한 앱들을 구동 가능합니다.
그럼 이때 개발하기 위한 프로그램언어가 필요한데 이더리움에선 솔리디티라는 프로그램언어를 사용합니다.
솔리디티는 완전한 튜링 프로그램 언어라고 불리는데요
이론적으로 모든 기계에서 모든 연산을 할 수 있기 때문입니다.
모두 가능하지만 실제 계산 시간이라던지 이런게 보장 되는게 아니라 계산이 몇천년이 걸릴 수 있어도 이론적으로는 모두 풀어낼 수 있다. 이런 정도로 이해하시면 될 듯 합니다.
이러한 것이 가능한 이유는 반복 루프를 실행 가능하기 때문입니다.
엄청난 횟수로 반복을 해서라도 모두 연산해낸다고 보시면 됩니다.
여튼 이러한 좋아보이는(?) 프로그래밍 언어로 이더리움을 사용하게 되는데 여기서 문제가 발생합니다.
왜냐면 이를 사용하는 많은 사람들이 너도나도 무한에 가까운 루프반복 실행을 시키면 블럭체인 네트워크 전체가 마비가 될 수 도 있고
그럼 정말 큰 문제가 발생하게 되죠...
그것을 막기 위해 이더리움에서는 체인이용료 (가스)를 받고 있습니다.
컴퓨터 코드가 실행되는 작업마다 수수료를 내기때문에 시도때도없이 불필요한 루프를 사용하지 않게 하는 거죠...
서두가 길었는데
여기서 문제는 지금 이더리움이 저러한 수수료로 네트워크 사용량을 조절하고 있음에도 불구하고 네트워크가 포화상태에 이른 적이 있다는 거죠..
이를 해결하기 위해 개발진이 불철주야 여러 업데이트들을 실행하고 있고, 포스 전환, 라이든 네트워크, 샤딩 등도 모두 이를 위한 거라 보시면 될겁니다..
네트워크 마비가 있었던 사건은 유명한 것이 두가지가 있는데요
제작년에 도스공격에 의한 마비.
작년 여름 스테이터스 ico 참여 할때 이더 네트워크 마비
2번의 경우 그 이후 하락장과 함께 48만원 하던 이더가 13만원까지 떨어지는 사건이 있었죠.
이러한 네트워크 마비가 오는 이유는 위에서 설명한것에서 이어지는데요..
{{비트코인의 경우 거래용도를 제외하곤 블럭에 아무것도 기록 되지 못하도록 하고 있어서 한계도 있지만 거래를 위해선 어떻게 보면 적합한 시스템이라고 볼 수 있습니다.
하지만 이더리움은 스마트 컨트랙트때문에 거래 말고도 다양한게 기록되어 과포화가 될 수도 있죠...}}
자 그럼 다시 본론으로 돌아와서 가스 수수료를 이용해서 네트워크 과부하를 막고 있는데도 왜 과부하가 걸렸었나??를 알아보면
1번의 경우 당시 extcodesize라는 명령어를 이용하여 이더리움이 공격받았었는데요.
이 명령어가 다른 명령어에 비해 가스 수수료가 엄청 저렴했기 때문입니다. 이를 이용해서 싼 수수료의 명령어로 반복 공격해서 네트워크가 마비가 왔었죠..
2번의 경우는 이더리움이 가지고 있는 블럭당 총 가스제한 때문에 생긴 마비 입니다.
이더는 블럭마다 총 가스량 제한이 있고 이의 변화량 역시 1/1024만큼 씩만 변화 할 수 있도록 제한하고 있는데요
지난번 스테이터스 ico 참여때 사람들이 ico에 자기 이더리움을 빨리 송금하기 위해 사용 가스량을 많이 설정함으로써 발생되었었죠..
{{아시는 분은 잘 아시겠지만 이더리움을 송금할때 가스를 수수료로 송금하는데 이 가스 사용량은 본인이 설정할 수 있습니다. 최대치를 많이 설정할 수록 송금이 빨라지고
적게 설정할 수록 송금은 천천히 되지만 수수료는 싸게 송금할 수 있습니다. 물론 가스를 최대로 설정한다고 그 가스를 모두 수수료로 사용되지는 않고 빨리 보내는데 필요한 만큼 사용하게 됩니다.}}
사람들이 너도나도 최대 가스를 설정해서 ico로 송금을 했는데 이더리움 블럭당 개스제한 때문에 오히려 가스가 더 작게 배정되어 송금이 거의 멈춤(?)에 가까울만큼 지연 되는 사고가 발생했었죠
블럭체인에 거래가 기록되기 전에 임시저장소가 있는데 이 당시 임시저장소가 꽉차서 개인이 거래 신청을 해도 임시저장소가 못받아들이고 튕기고
개인지갑은 거래가 튕기니까 자동으로 무한대로 반복 시도를하고...
사실 저도 대략적으로 이해중이라 잘 모르겠네요..
여튼 이러한 이더리움 가스리밋 땜에 문제가 발생했었는데
그럼 그러한 가스리밋은 왜걸었냐!
그게 없으면 앞서 말씀드린 무한루프 공격을 막아낼 수 가 없어서 또 네트워크가 붕괴됩니다...
여튼 이러한 거래량 처리 과부화는 pos로 전환되면서 해결 할 수 있고
그러한 해결을 위해 진행 캐스퍼가 진행되고 있고.. 비잔티움 이후 콘스탄티노플이 때 발현되기 시작할거고...
아직 갈길이 구만리 입니다..
이러한 이더의 문제점을 해결하면서 플랫폼을 추구하는 코인들이 나와있죠. 퀀텀 네오
최근엔 이더리움 킬러라 불리는 이오스..
이오스는 합의 방식을 간소화 시켜 훨씬 빠르고 과부화도 거의 걸릴 일이 없으나
탈중앙화가 이더리움보다 약한 부분이 있을 수 있어
상호 경쟁하며 발전해나가길 바라는 중입니다.
차세대 coin 이라는 이더리움도 많은 문제를 내포하고 있군요. 잘봤습니다.
잘봤다니 감사합니다.^^ 이러한 문제를 해결하기 위해 비탈릭 및 개발진이 열일하는 중으로 보입니다.