블록체인과 eos 서버개념
블록체인은 기본적으로 서버인데 p2p 서버입니다.
무슨 헛소리냐면
서버가 중앙집중식으로 한군데에만 있는가
아니면 개나소나 서버가 있는가
라고 할때 후자를 p2p 서버라고 합니다.
시도때도 없이 예를들어서 너덜너덜해진 토렌트가
그 예시입니다.
토렌트 프로그램은 실행시키면 그 컴퓨터를 서버로
만들어 줍니다. 그럼 누군가가 다른이가 내 컴에
접속할 수 있죠. 다만 통로와 용도를 제한하여
내가 공유한 '파일'만 접속가능하게 해줍니다.
여기서 핵심은 개나소나 서버가 될 수 있으며
각각 1:1로 원하는 상대랑 접속해서 거래한다는 것입니다.
이것을 1(pear) :(to) 1(pear)
라고 적고 발음대로 불러서
p2p
라고 하는 것이죠.
본래 암호화폐의 풀노드라는 지갑들도 전부
이런 형식이었습니다. 실행시키면 자신의 컴이 서버가 되죠.
그래서 수많은 이용자들이 전부 서버가 되는
분산 시스템이라고 불리였죠.
하지만 이오스의 경우는 성능향상을 위해서
수많은 사용자들이 아닌 극소수만을 선출하여
프로그램을 돌리게 만들었습니다.
21명의 BP들 말이죠.
그들이 이오스라는 블록체인의 서버가 되는 것입니다.
이는 극단적으로 서버수를 줄임으로써
블록체인에 필수적인 인증작업(모든 서버를 거쳐야하는)을
확 줄여버려 빠른 처리속도를 얻게됩니다.
하지만 한편 문제도 있는데
원래 1000개 10000개의 '전세계에 수없이 많은' 서버로
부하를 분산하던 블록체인의 서버가
21개의 컴퓨터로 제한됨으로써
이오스 서버는 매우 강력한 부하를 받게 됩니다.
또한 100개가 고장나면 다른 100명한테 접속하면
되는 분산시스템도 21개로 확 줄어서
그 21명은 일반적인 블록체인의 서버들과 달리
자신들은 24시간 탈없이 돌릴 수 있음을 보증해줘야합니다.
그렇기 때문에 BP(이오스 서버맨들)은 신원과 장비를
공개하여 자신들이 얼마나 이오스를 잘돌릴지 홍보를 하고
신뢰를 쌓아 다른 유저들에게 선출되게 되는 것입니다.
이오스 수수료 개념
블록체인은 서버이기 때문에 물리적 사용에 제한이
따르게 됩니다.
예를들어 개허접한 서버에 사람들이 몰리면
렉이 걸립니다.
그럼 버벅거리느라 제대로된 처리를 못하죠.
그래서 서버가 과부하를 일으키지 않도록
아무 놈팽이나 접속하지 않게 만듭니다.
그 방법이 수수료 부과입니다.
다른 곳엔 스팸메일 잔뜩 보내던 나쁜놈도
블록체인에 스팸메일 1000통을 보낼려면
수수료를 왕창 내야되므로 그런 짓을 안하게 되죠.
그러나 이 방법은 또 다른 문제가 있는데
일반 사용자들도 메일을 보낼때마다 수수료를 내는
문제에 봉착한 것입니다.
그래서 스팀과 이오스는 매번 이용때마다 돈을 내는
폭망시스템을 개선하기 위해 다른 방식을 사용합니다.
사용자들이 서버 자원의 이용권을 구입하게 한 것이죠.
휴대폰의 매달 데이터 사용량을 생각하시면 됩니다.
다만 이쪽의 경우는 이용권을 한번 구입하면
매달 돈 낼 필요 없이 팔기전까지 유효합니다.
또한 매달이 아니라 매일 재충전되죠.
그리고 한도까지 이용한 후 팔아버리고 다시 사서 리셋하는
악용을 막기위해서 한번 사면 일정기간 판매가
불가능하게 만들어뒀습니다.
스팀의 경우 이 이용권은 스팀파워이며
한번 구매시 3개월간 묶이게 됩니다.
그런데 이오스는 스팀과도 또 다릅니다.
스팀의 경우는 서버를 이용함에 있어서 복잡한 작업이
필요 없습니다. 단순히 글을 올리고 보팅을 하는둥
작업이 정해져있고 짧은 작업만 하죠. 그래서
단순히 접속량에 대한 이용권으로 충분했습니다.
하지만 이오스는 사람들이 자유롭게 프로그램을
올릴 수 있습니다. 스마트 컨트렉트와 dapp 얘기인데
예를들어 누군가가 스타크래프트를 짜서 이오스에
올리면 이오스에 스타겜이 업로드됩니다.
문제는 실행을 할때도 이오스 서버에서 실행이 된다는
겁니다. 우리가 게임을 할때 게임프로그램을 따로
다운 받는 이유는 그걸 서버에서 모든 사람을 대상으로
실행해주다간 서버가 터지기 때문이죠.
그런데 스마트 컨트렉트류 블록체인들은 전부
자신들이 감당합니다.
쉽게 말해 자신은 똥컴이라도 서버컴의 사양이 좋으면
고사양 겜을 돌릴 수 있게 되는 것이죠.
실제로 돌리는 것은 서버쪽이고 자신은 결과만 받으니까요
지금은 하는지 모르겠는데 과거 iptv 에서
집에 게임기가 없어도 TV만으로 게임을 할수가 있었죠.
그게 다 단말기가 실행하는게 아니라
저쪽 고사양 서버에서 실행해서 화면만 전달해주는거죠.
여하튼 이런 서비스를 해줄 수 있는 것이
이더리움이나 이오스 같은 스마트 컨트랙트 블록체인입니다
하지만 앞서 말했듯이 스타를 이오스에 올려서
사람들이 마구 실행하면 이오스는 대번에 폭발할겁니다
그래서 나온 것이
프로그램이 복잡하면 할수록 수수료가 올라가는 겁니다.
즉, 고사양 프로그램일수록 그 대가로 수수료를
많이 받습니다.
스타하자고 가산을 수수료로 때려박는 인간은 없겠죠?
그러므로 블록체인이 터질 프로그램을 올리는
사람은 없어지게 됩니다.
참고로
이더리움에는 Gas Limit
란 것이 있습니다.
이더리움에 업로드된 프로그램이 복잡할수록 실행까지
오래 걸리고 그만큼 수수료가 날아가는데
예상치 못했던 수준의 큰 프로그램이거나
프로그램에 오류가 있어 무한로딩이라도 걸리면
잔고를 박살낼만큼 수수료가 날아가버립니다.
그러므로 그런 X 되는 사태를 방지키 위한 안전장치로
'혹여나 드럽게 오래 실행되더라도 limit 이상으로 실행해서
날 알거지로 만들지 마라'
라는 것이 바로 Gas Limit
의 정체인 것이죠.
이더리움은 수수료와 수수료한계로 저것을 해결했습니다.
이오스도 그 교훈을 받으면서 이용권 방식을
사용할려고 보니
프로그램따라 용량이 다르고 실행시간이
다르고 네트워크 사용량도 달랐습니다.
스팀처럼 이용권 한개로는 감당이 안되는 것이죠.
결국 요리조리 생각하다가 나온 것이
한개로 안되면 여러개로 하자..
이오스의 3가지 자원
cpu, net, ram
은 그렇게 등장하게 됩니다.
다음 포스팅엔 각 자원에 대해서 설명해보겠습니다.