Ethereum [4] (EVM)

2023. 6. 13. 18:45Blockchain/Ethereum

728x90
반응형

※ 원글 작성 : 22년 4월 27일

EVM

  • Smart contrat bytecode를 실행하는 32바이트 스택 기반 실행환경
  • 스택의 최대 크기는 1024
  • 이더리움 각 노드는 EVM을 포함
  • 바이트코드를 OP코드로 변환하고 스택 기반으로 각각의 OP코드 실행
  • 구조
    • Volatile(휘발성)
      • Stack : OP코드 실행하는 stack영역
      • Args : contract call 시 인자 저장
      • Memory : 아이템을 저장하는 바이트 배열
    • Non-volatile(비휘발성)
      • Storage : State 저장
      • code : smart contract의 컴파일된 바이트코드 저장
  • 동작과정
    • 바이트코드를 내부 OP코드로 재해석
    • e.g.
      • 1+2 ?
      • 1+2를 계산하는 바이트코드 '6001600201'
      • 바이트코드를 치환하여 OP코드 분리시 '0x60, 0x01, 0x60, 0x02, 0x01'
      • 0x60 = PUSH OPCODE/0x01, 0x02 = 1, 2/last 0x01 = ADD OPCODE
  • 특성
    • 임시저장소/영구저장소 구분
      • 임시저장소 value : 해당 인스턴스만 유효 / 영구저장소 value : 컨트랙트 전체에 유효
    • 메모리 크기 가변적, 스택 크기 제한없음
    • 반복호출 횟수 제한 1024번

참고
https://medium.com/@micheledaliessi/how-does-ethereum-work-8244b6f55297
http://wiki.hash.kr/index.php/%EB%8C%80%EB%AC%B8
https://ihpark92.tistory.com/50

728x90
반응형

'Blockchain > Ethereum' 카테고리의 다른 글

Ethereum Bootnode 기능 확인  (0) 2023.06.14
Ethereum [5] (Go-Ethereum)  (0) 2023.06.13
Ethereum [3] (Scalability)  (0) 2023.06.13
Ethereum [2] (Algorithm, Protocol)  (1) 2023.06.13
Ethereum [1] (Transaction, Block)  (0) 2023.06.13