EVM의 장점과 한계가 궁금합니다.
EVM은 이더리움 블록체인 노드가 공유하는 가상머신으로서 서로 다른 프로그램을 호환할 수 있게 하는 기능으로 알고 있습니다. EVM은 디도스 공격도 방지할 수 있는 기능이 있다고 들었습니다.
EVM은 이더리움만 가지고 있는 기능인가요?
EVM을 사용함으로써 얻는 장점과 EVM의 가지고 있는 한계는 무엇인가요?
질문자께서 질문해 주신 내용을 중심으로 답변을 드리도록 하겠습니다.
EVM은 이더리움만 가지고 있는 기능인가요?
EVM은 이더리움 가상 머신입니다. 그런데 이것은 이더리움만이 가지고 있는 것은 아닙니다. 트론 또한 TVM이라고 해서 트론 가상 머신이 스마트 컨트랙트와 트랜젝션 연산을 처리하고 마찬가지로 트론 코인을 수수료로 소비하는 방식으로 운영되고 있습니다.
EVM을 사용함으로써 얻는 장점과 EVM의 가지고 있는 한계는 무엇인가요?
질문자께서 말씀하신 것처럼 EVM은 스마트 컨트랙트를 처리할 때 각각의 명령 코드마다 일정한 수수료를 요구합니다. 따라서 DoS(또는 DDoS) 공격을 하거나 무의미한 스팸 트랜젝션을 발생시키기 위해서는 많은 비용과 시간이 소모되므로 블록체인 네트워크의 안전성을 확보하고 스마트 컨트랙트의 처리에 특화된 가상 머신이므로 등장 당시에는 높은 성능을 내는 가상 컴퓨터로 각광을 받았습니다.
하지만 시간이 흘러 블록체인 기술이 발전하면서 EVM도 변화가 필요하게 되었습니다. 이더리움의 처리속도보다 빠른 블록체인들이 속속 등장하고 있기 때문입니다. 원래 EVM은 이더리움의 개발자들이 자체적으로 만들어낸 가상의 컴퓨터라고 할 수 있습니다
솔리디티라는 이더리움 프로그래밍 언어로 만든 프로그램을 바이트코드라는 언어로 변환하여 실행하게 됩니다.
그런데 이더리움도 그렇지만 EVM이라는 것의 탄생을 보면 처음부터 자체적으로 만든 것이라고 보시면 됩니다. 지속해서 성능을 개선하고 있긴 하지만 기존의 설계 단계부터 먼 미래를 내다보거나 지속적인 개발 가능성을 염두에 두기 힘들었기 때문에 성능 개선의 한계가 존재하게 되고 기능이 추가될 수록 무거워지게 되는 것입니다.
예를 들면 일단 농사를 짓기 위해 기능이 전문화된 콤바인이나 트렉터 같은 장비들이 필요한데 그런 것들을 당장 마련할 수 없어서 경운기를 샀다고 하겠습니다. 그리고 경운기 엔진의 동력을 최대한 이용해서 여러가지 기능들을 추가시켜 농사를 짓고 있지만 세월이 흐르면서 더 좋은 기계들이 많이 나오고, 또 경운기가 무거워지고 성능이 저하되는 것은 피할 수 없는 것과 비슷하다고 할 수 있습니다.
따라서 이더리움도 이를 개선하기 위해 EVM을 eWASM으로 대체할 예정입니다. 이 eWASM이라는 것은 이더리움 웹 어셈블리라는 것으로 W3C에서 제공하는 기계어와 가까운, 성능이 빠른, 다양한 프로그래밍 언어를 지원하는 가상 머신이라고 생각하시면 좋을 듯합니다. 앞서 예로 든 경운기를 아예 트랙터나 콤바인과 같은 전문 대형 농기계로 바꾸는 것과 비슷하겠습니다.
답변이 도움이 되길 바랍니다.