EVM의 내부 동작 구조

스마트 컨트랙트의 실행 비용

[EVM]

스크린샷 2022-11-28 오후 1.15.18.png

EVM은 우리가 작성한 코드와 이더리움 블록체인 사이에 있는 가상 머신으로, 블록체인에서 코드가 실행될 수 있도록 한다.

이더리움 스마트 컨트랙트를 기반한 dApp은 솔리디티 언어로 작성되며, 솔리디티 언어는 고급 언어이기 때문에 EVM이 바로 해석하기 어려우므로 바이트코드로 변환해주어야 한다.

작성된 솔리디티 코드를 solc를 이용해 컴파일 하여 EVM이 읽을 수 있는 바이트 코드 형태로 만들고, 이 바이트 코드를 이더리움 클라이언트를 이용해 이더리움 네트워크게 올린다.

이후 바이트 코드를 EVM이 Opcode단위로 해석하여 실행시킨다.

스크린샷 2022-11-28 오후 1.15.28.png

블록체인에 저장된 바이트코드 형태의 dApp은 EVM에서 실행되며, EVM에서는 바이트코드를 Opcode로 변환하여 실행한다. 솔리디티로 작성된 스마트 컨트랙트는 EVM에서 동작하기 떄문에 특정 운영체제나 하드웨어에 종속되지 않는다.

스크린샷 2022-11-28 오후 1.18.12.png

[솔리디티]

솔리디티는 스마트 컨트랙트를 실행하는 객체지향, 정적 타입, 고급 스크립트 언어로 EVM 위에서 실행된다.

솔리디티는 이더리움 네트워크 위에서 스마트 컨트랙트를 구현하기 위한 객체 지향 고수준 언어이다.