EVM(Ethereum Virtual Machine)

👉 이더리움 가상머신(EVM)은 스마트 컨트랙트를 처리해주는 컴퓨터

  • EVM은 작성한 코드와 이더리움 블록체인 사이에 있는 ‘가상 머신’이다

  • 블록체인에서 코드가 실행될 수 있도록 한다

  • 이더리움 스마트 컨트랙트에 기반한 ‘dApp’솔리디티 라는 언어로 작성된다

  • 솔리디티로 작성된 dApp을 이더리움 네트워크에 올려야 한다

‘솔리디티’ 언어는 고급 언어이기 때문에 EVM은 솔리디티를 읽을 수 없다
그래서 작성한 솔리디티 코드를 ‘solc’를 이용해 컴파일하여 EVM이 읽을 수 있는 ‘바이트코드 형태’로 만든다
이 바이트코드를 ‘Geth’ 를 이용해 이더리움 네트워크에 올린다
솔리디티 코드 👉 바이트코드 👉 Opcode 흐름이다

스마트 컨트랙트를 생성하고 사용가능하게 하기 위한 과정 순서

스마트 컨트랙트 코딩 👉 소스 코드 컴파일 👉 ABI 로부터 스마트 컨트랙트 객체 생성 👉 스마트 컨트랙트 배포 👉 채굴


Geth (Go Ethereum)

👉 이더리움 가상머신(EVM) 을 만들 수 있는
‘Go 언어’ 로 개발된 이더리움 클라이언트 소프트웨어이다


바이트코드

‘Opcode’ 를 효율적으로 저장하기 위해,
‘Opcode’ 는 바이트코드(Bytecode)로 인코딩된다
모든 Opcode에는 1바이트가 할당된다

https://wavescats.github.io/blockchain/2022/05/17/bc32.html
(👆 바이트코드 분석)