ethereum-org-website icon indicating copy to clipboard operation
ethereum-org-website copied to clipboard

Learn Opcodes

Open veridelisi opened this issue 1 year ago • 0 comments

Tutorial title

Learn Opcodes

Tutorial description

Learn EVM Opcodes Series Overview

Welcome to the comprehensive series on understanding Ethereum Virtual Machine (EVM) Opcodes! This series is designed for individuals aiming to deepen their knowledge of the Solidity programming language, focusing on security aspects and low-level operations. Through this journey, you will gain insights into how smart contracts operate at the bytecode level, enhancing your ability to write secure and efficient code, audit smart contracts, and understand the intricacies of EVM execution. image

I. Introduction to Bytecode and Opcodes

Objective: Introduce the concepts of bytecode and opcodes within the context of EVM. Key Topics: Definition of Bytecode and Opcodes Importance in Solidity security Overview of EVM architecture

II. Understanding Basic Opcodes

Objective: Learn the fundamental opcodes for arithmetic and stack manipulation. Key Topics: ADD, SUB, MUL, DIV, and POP opcodes Code snippets and visual illustrations

III. Manipulating the Largest Number in EVM

Objective: Explore EVM's handling of large numbers through practical opcode manipulation. Key Topics: Understanding EVM's numerical limits Practical exercises with arithmetic opcodes

IV. Expanding Opcode Knowledge

Objective: Dive deeper into a broader set of opcodes for comparison, logical operations, and shifting. Key Topics: MOD, EXP, LT, GT, EQ, ISZERO, SHL, SHR, and BYTE opcodes Practical examples and use cases

V. Exploring Advanced Opcodes

Objective: Understand opcodes related to Ethereum's SHA3 hashing, call data handling, and environmental information. Key Topics: SHA3, CALLDATA, CALLDATALOAD, CALLVALUE, CODESIZE, and GASLIMIT Detailed explanations and applications

VI. Memory Management in EVM

Objective: Learn about memory manipulation using the MSTORE opcode. Key Topics: How MSTORE works Memory vs. Storage in EVM

VII. Memory Operations

Objective: Explore memory-related opcodes for storing and loading data. Key Topics: MSTORE8, MLOAD, and RETURN opcodes Practical use cases and examples

VIII. Solidity Contract Bytecode Introduction

Objective: Uncover the initial bytecode block in all Solidity contracts. Key Topics: Analysis of the standard contract preamble Significance of initial opcodes

IX. Storage Access with SLOAD

Objective: Focus on the SLOAD opcode for accessing contract storage. Key Topics: How SLOAD works Understanding EVM storage model

X. SLOAD, YUL, and Storage Layout

Objective: Understand the interaction between SLOAD opcode and YUL for efficient storage access. Key Topics: YUL’s offset and slot codes Integrating SLOAD with YUL for optimized storage usage

XI. Mapping Storage in Solidity

Objective: Master accessing mapping storage in Solidity using opcodes. Key Topics: Calculating slot indexes for mapping values Practical tutorial on handling mappings at the opcode level

This series aims to equip you with a robust understanding of EVM opcodes, paving the way for advanced Solidity development and security auditing. Whether you're a developer seeking to refine your smart contract skills or an enthusiast curious about the inner workings of Ethereum, this journey through EVM opcodes will provide valuable insights and practical knowledge. Engin YILMAZ (@veridelisi)

Tutorial tags

opcodes

Skill level

Beginner

Hosted on ethereum.org or hosted elsewhere?

Hosted elsewhere

For tutorials to be hosted on Ethereum.org: Tutorial Content

No response

For tutorials hosted elsewhere: URL to tutorial

https://veridelisi.medium.com/learn-opcodes-7bd28d5f0d1b

Would you like to work on this issue?

  • [X] Yes
  • [ ] No

veridelisi avatar Feb 21 '24 06:02 veridelisi