<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Emmo00</title>
        <link>https://paragraph.com/@nwaforemmanuel005gmail.com</link>
        <description>undefined</description>
        <lastBuildDate>Thu, 09 Apr 2026 16:39:10 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <image>
            <title>Emmo00</title>
            <url>https://storage.googleapis.com/papyrus_images/3159b2112b87ba9c73e53648dbc1e969.png</url>
            <link>https://paragraph.com/@nwaforemmanuel005gmail.com</link>
        </image>
        <copyright>All rights reserved</copyright>
        <item>
            <title><![CDATA[7 Facts You Didn’t Know About the Ethereum Virtual Machine (EVM)]]></title>
            <link>https://paragraph.com/@nwaforemmanuel005gmail.com/7-facts-you-didnt-know-about-the-ethereum-virtual-machine-evm</link>
            <guid>4YeLu0GwpH7yPBaUwXvZ</guid>
            <pubDate>Tue, 04 Feb 2025 08:41:49 GMT</pubDate>
            <description><![CDATA[The Ethereum Virtual Machine (EVM) is the heart of the Ethereum blockchain, responsible for executing smart contracts and processing transactions. The EVM has some fascinating and lesser-known features that make it unique and interesting. In this article, we’ll explore 7 facts you didn’t know about the EVM - Interesting history lesson at No. 7.]]></description>
            <content:encoded><![CDATA[<p>The <strong>EVM</strong> (Ethereum Virtual Machine) is the decentralized computation engine at the core of the Ethereum blockchain. It executes smart contracts and processes transactions across the network. The EVM enables Ethereum to run decentralized applications (<strong>dApps</strong>) by providing a secure, sandboxed environment in which code can be executed.</p><p>The Ethereum Virtual Machine (EVM) is the heart of the Ethereum blockchain, responsible for executing smart contracts and processing transactions. The EVM has some fascinating and lesser-known features that make it unique and interesting. In this article, we’ll explore <strong>7 facts you didn’t know about the EVM - Interesting history lesson at No. 7</strong>.</p><div class="relative header-and-anchor"><h2 id="h-1-the-deterministic-behavior-of-the-evm">1. The Deterministic Behavior of the EVM</h2></div><p>In the context of the Ethereum Virtual Machine (EVM), determinism refers to the idea that every time the same transaction is executed, it will produce the same result, as long as the state of the blockchain is the same. This is a crucial feature of the EVM because it ensures consistency and reliability across all Ethereum nodes, no matter where or when the transaction is processed.</p><p>Determinism guarantees that when a transaction or smart contract is processed by one node, the result of that transaction will be the same when it is processed by another node, no matter where or when the transaction is processed. This is important because Ethereum is a decentralized network, and for the network to reach a consensus, all nodes must agree on the same state changes.</p><p>While this is crucial for network consistency and security, it also introduces some unique quirks and constraints that developers must account for when building decentralized applications (dApps) or writing smart contracts. Let’s explore some of these quirks:</p><ul><li><p><strong>No Randomness:</strong> Since the EVM must behave deterministically, <strong>randomness</strong> cannot be introduced naturally during smart contract execution. If each node must compute the same result, anything involving random number generation would lead to inconsistencies, as nodes would calculate different "random" values. To implement randomness, developers typically rely on <strong>external sources</strong> or <strong>oracles</strong> that introduce randomness from off-chain sources. One popular method involves using events like the <strong>block hash</strong> of a previous block or utilizing a <strong>Verifiable Random Function (VRF)</strong> from external providers (such as Chainlink VRF).</p></li><li><p><strong>External Data (Oracles) Dependency:</strong> Smart contracts in Ethereum cannot access external data directly because the EVM execution environment is isolated and deterministic. This means they cannot, for example, query data from a website or access real-time price feeds or other off-chain data unless they are provided by an external source. To introduce off-chain data into a contract, developers use <strong>oracles</strong>—trusted services that provide external data to Ethereum smart contracts. These oracles feed information such as the current price of assets, weather data, sports scores, and more. Oracles play a critical role in enabling decentralized finance (DeFi) applications, prediction markets, and other smart contracts that rely on real-world data.</p></li></ul><div class="relative header-and-anchor"><h2 id="h-2-the-evm-is-a-quasi-turing-complete-machine"><strong>2. The EVM is a Quasi-Turing-Complete Machine</strong></h2></div><p>The EVM is often described as a <strong>quasi-Turing-complete machine</strong>. But what does that mean, and why is it important?</p><div class="relative header-and-anchor"><h3 id="h-what-is-turing-completeness">What is Turing Completeness?</h3></div><p>A Turing-complete system can perform any computation given enough time and resources. In theory, such a system can solve any problem that is computable. Traditional programming languages like Python or Java are Turing-complete because they can express any algorithm.</p><div class="relative header-and-anchor"><h3 id="h-why-quasi">Why "Quasi"?</h3></div><p>The EVM is considered <strong>quasi-Turing-complete</strong> because, while it can theoretically perform any computation, it is constrained by <strong>gas</strong>. Gas is the unit of measurement for the computational effort required to execute operations on the Ethereum network. Every operation, from simple arithmetic to complex cryptographic functions, consumes gas. If a transaction runs out of gas, execution halts immediately.</p><p>In a truly Turing-complete system, an infinite loop could run forever. On the EVM, however, an infinite loop would eventually consume all available gas, causing the transaction to fail. This prevents denial-of-service attacks where malicious actors could clog the network with endless computations.</p><p>The quasi-Turing-complete nature of the EVM allows developers to write powerful smart contracts while ensuring that operations remain economically feasible and secure.</p><div class="relative header-and-anchor"><h2 id="h-3-the-transaction-process-from-start-to-finish-on-the-evm">3. The Transaction Process from start to finish on the EVM</h2></div><p>When a transaction is initiated on Ethereum, whether it’s a simple ETH transfer or the invocation of a complex smart contract, it goes through a series of steps before it’s finalized and included in a block. Here’s a comprehensive breakdown of the process from start to finish.</p><ul><li><p><strong>Step 1: Transaction Creation:</strong> A user (like Emma) creates a transaction. This transaction could be sending ETH to another address or interacting with a smart contract. The Transaction includes</p><ul><li><p><strong>Sender Address</strong>: Emma’s wallet address.</p></li><li><p><strong>Recipient Address</strong>: The address receiving the transaction (or a smart contract address).</p></li><li><p><strong>Value</strong>: The amount of ETH to send (if applicable).</p></li><li><p><strong>Data</strong>: For smart contracts, this includes the function to call and its arguments.</p></li><li><p><strong>Gas Limit</strong>: The maximum computational work Emma is willing to pay for.</p></li><li><p><strong>Gas Price</strong>: The fee Emma is willing to pay per unit of gas.</p></li><li><p><strong>Nonce</strong>: A unique number to ensure transactions are processed in order.</p></li></ul></li><li><p><strong>Step 2: Transaction Broadcast: </strong>Emma signs the transaction with her private key, proving her identity. The signed transaction is then sent to the Ethereum network.</p></li><li><p><strong>Step 3: Transaction Validation</strong><br>Ethereum nodes validate the transaction by checking:</p><ul><li><p><strong>Signature</strong>: Is the transaction signed by Emma?</p></li><li><p><strong>Balance</strong>: Does Emma have enough ETH to cover the transaction and gas fees?</p></li><li><p><strong>Nonce</strong>: Is the transaction in the correct order?</p></li></ul></li><li><p><strong>Step 4: Execution on the EVM:</strong> The transaction is executed on the EVM. If it’s a simple ETH transfer, the balances are updated. If it’s a smart contract call, the contract’s code is executed. If the transaction runs out of gas, it’s reverted, and Emma only loses the gas used up to that point.</p></li><li><p><strong>Step 5: State Update: </strong>The blockchain's state is updated, including balances and smart contract storage.</p></li></ul><ul><li><p><strong>Step 6: Block Inclusion: </strong>Miners or validators package the transaction into a block, which is then added to the blockchain after consensus is reached.</p></li><li><p><strong>Step 7: Confirmation and Finalization: </strong>Once the block is added to the blockchain, the transaction is confirmed. Users often wait for multiple confirmations (e.g., 12 blocks) for added security.</p></li></ul><div class="relative header-and-anchor"><h2 id="h-4-the-evm-uses-a-256-bit-stack-architecture">4. The EVM Uses a 256-Bit Stack Architecture</h2></div><p>The EVM is a stack-based machine, utilizing a <strong>last-in, first-out (LIFO)</strong> data structure to manage operations. What sets it apart is its <strong>256-bit word size</strong>.</p><div class="relative header-and-anchor"><h4 id="h-why-256-bits">Why 256 Bits?</h4></div><p>Every piece of data processed by the EVM—whether it’s a number, address, or cryptographic hash—is 256 bits (32 bytes) wide. This choice aligns with Ethereum’s cryptographic foundations, particularly the Keccak-256 hash function and elliptic-curve computations used for digital signatures.</p><p>This architecture allows the EVM to handle large numbers efficiently, particularly in cryptographic operations like verifying digital signatures or computing hashes.</p><div class="relative header-and-anchor"><h4 id="h-why-does-this-matter">Why Does This Matter?</h4></div><p>The 256-bit word size ensures the EVM can handle cryptographic demands efficiently while simplifying smart contract design, as developers don’t need to manage smaller data types.</p><div class="relative header-and-anchor"><h2 id="h-5-code-is-stored-in-virtual-rom">5. Code is Stored in Virtual ROM</h2></div><p>Unlike traditional computers, where code and data are stored in the same memory space, the EVM stores code in <strong>virtual ROM (Read-Only Memory)</strong>. This ensures that the bytecode of smart contracts is immutable during execution, preventing modification while the contract runs.</p><p>By isolating code from data, the EVM prevents self-modifying code, enhancing the security and predictability of smart contracts.</p><div class="relative header-and-anchor"><h2 id="h-6-gas-fees-are-proportional-to-memory-usage">6. Gas Fees are Proportional to Memory Usage</h2></div><p>Gas fees on the EVM are not only tied to computation but also to memory usage. Memory-intensive operations incur higher costs.</p><div class="relative header-and-anchor"><h4 id="h-how-memory-fees-work">How Memory Fees Work</h4></div><p>Memory fees are charged based on the smallest multiple of 32 bytes required to cover all accessed memory indices. For example:</p><ul><li><p>If a contract accesses indices 0 to 31, it pays for 32 bytes.</p></li><li><p>If it accesses indices 0 to 63, it pays for 64 bytes.</p></li></ul><p>This ensures efficient memory usage and prevents abuse.</p><div class="relative header-and-anchor"><h4 id="h-why-does-this-matter">Why Does This Matter?</h4></div><p>Memory fees encourage developers to optimize their code for gas efficiency, preventing unnecessary strain on the network.</p><div class="relative header-and-anchor"><h2 id="h-7-the-dao-hack-and-reentrancy-attack-a-historic-lesson-for-ethereum">7. The DAO Hack and Reentrancy Attack: A Historic Lesson for Ethereum</h2></div><p>In 2016, one of the most infamous hacks in Ethereum's history occurred with a DAO (Decentralized Autonomous Organization) known as <strong>The DAO</strong>. This venture raised $150 million by selling tokens to investors, who believed in its vision of a decentralized investment fund. However, just three months after its creation, <strong>The DAO</strong> was exploited through a <strong>reentrancy attack</strong>, draining millions of ETH.</p><p>The attack targeted a vulnerability in the <strong>withdraw()</strong> function of The DAO’s smart contract, where the hacker used a malicious contract to repeatedly call the function before the balance was updated, allowing them to withdraw more than their share of funds. This attack highlighted the importance of carefully managing the order of operations in smart contracts. In this case, the vulnerability arose because The DAO’s contract transferred ETH before updating the user's balance, enabling the attacker’s contract to recursively call the withdraw function, thus draining The DAO's funds.</p><p>The hack caused a deep ideological debate within the Ethereum community—whether to intervene and correct the hack by forking the blockchain or uphold the immutability of smart contracts. Ultimately, the Ethereum community decided to hard fork the blockchain, resulting in the creation of two separate chains: <strong>Ethereum (ETH)</strong> and <strong>Ethereum Classic (ETC)</strong>.</p><p>The event brought forward critical lessons on smart contract security and the importance of properly handling reentrancy attacks, especially ensuring that state changes (like updating balances) happen before sending funds to avoid exploitative loops.</p><div class="relative header-and-anchor"><h2 id="h-conclusion">Conclusion</h2></div><p>The Ethereum Virtual Machine is a marvel of engineering, combining flexibility, security, and efficiency to support decentralized applications and smart contracts. By understanding these facts, you can appreciate the depth and sophistication of the EVM’s design. Whether you’re a developer, researcher, or blockchain enthusiast, the EVM offers endless opportunities for innovation and exploration.</p>]]></content:encoded>
            <author>nwaforemmanuel005gmail.com@newsletter.paragraph.com (Emmo00)</author>
            <category>evm</category>
            <category>ethereum</category>
            <enclosure url="https://storage.googleapis.com/papyrus_images/2e2be63ce6e397334f6f74d6cc0c4af4.jpg" length="0" type="image/jpg"/>
        </item>
    </channel>
</rss>