<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Exploring Ethereum]]></title><description><![CDATA[Exploring Ethereum]]></description><link>https://exploring-ethereum-the-basics.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Thu, 18 Jun 2026 11:25:43 GMT</lastBuildDate><atom:link href="https://exploring-ethereum-the-basics.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[An Introduction to Ethereum Blockchain: A  Summary]]></title><description><![CDATA[What is a Blockchain?
Blockchain is a sequential list of records called blocks that store data publicly and in chronological order.
The participants of the Network have access to the Blockchain data, maintain the data, and hold the democratic right t...]]></description><link>https://exploring-ethereum-the-basics.hashnode.dev/an-introduction-to-ethereum-blockchain-a-summary</link><guid isPermaLink="true">https://exploring-ethereum-the-basics.hashnode.dev/an-introduction-to-ethereum-blockchain-a-summary</guid><dc:creator><![CDATA[Chukwuemeka Timothy Ofili]]></dc:creator><pubDate>Sun, 13 Jul 2025 16:05:42 GMT</pubDate><content:encoded><![CDATA[<h2 id="heading-what-is-a-blockchain">What is a Blockchain?</h2>
<p>Blockchain is a sequential list of records called blocks that store data publicly and in chronological order.</p>
<p>The participants of the Network have access to the Blockchain data, maintain the data, and hold the democratic right to approve transactions within the Blockchain network.</p>
<p>Every transaction on the ledger is authorized by the digital signature of the owner, authenticating and safeguarding it from tampering.</p>
<h2 id="heading-what-is-a-cryptographic-hash-function">What is a Cryptographic Hash Function?</h2>
<p>A cryptographic hash is a mathematical one-way function that converts a numerical input value of arbitrary length to a compressed numerical output value of fixed length.</p>
<p>Properties of a cryptographic hash include the following:</p>
<ul>
<li><p>Non-reversibility: A good cryptographic hash makes it hard to reconstruct the original value from the output.</p>
</li>
<li><p>Avanlanche effect: A small change in the original value causes a significant change in half the bits of its hash.</p>
</li>
<li><p>Determinism: A given value must always generate the same hash value.</p>
</li>
<li><p>Collision resistance: A good cryptographic hash function should make it hard to generate the same encoded text from two input values.</p>
</li>
<li><p>Predictable: The hash value should not be predictable from the original value.</p>
</li>
</ul>
<h2 id="heading-what-is-public-key-cryptography">What is Public Key Cryptography?</h2>
<p>Public key cryptography is an encryption scheme that uses two mathematically similar but non-identical keys, a private and a public key.</p>
<p>The public key is used to encrypt, while the private key is used to decrypt.</p>
<p>Because it is computationally infeasible to generate the private key from the public key, public keys are freely shared, allowing users an easy and convenient method for encrypting content and verifying digital signatures.</p>
<h2 id="heading-merkle-trees">Merkle Trees</h2>
<p>A Merkle tree is a way of hashing a large amount of data, which relies on splitting the data chunks into buckets, where each bucket contains only a few chunks, then taking the hash of each bucket, and repeating the process until the total number of chunks remaining is one.</p>
<p>However, Ethereum uses the Patricia Merkle tree, a combination of the Patricia tree and the Merkle tree.</p>
<h2 id="heading-what-is-ethereum">What is Ethereum?</h2>
<p>Ethereum is a deterministic and practically unbound state machine.</p>
<p>Ethereum is made up of a globally accessible singleton state and an EVM that applies changes to that state.</p>
<p>Ether (ETH) is Ethereum’s native currency</p>
<p>It provides a mechanism to fuel the computational resources required to execute transactions and run applications on the Ethereum network.</p>
<p>Ethereum developers and community metaphorically refer to ETH as the fuel that powers the network.</p>
<p>The Merkle tree starts from the chunks of hash to determine the root, meaning the root is unknown until the stored chunks are combined to get the root. The root is stored in a block head.</p>
<h2 id="heading-blockchain-components">Blockchain Components</h2>
<p>P2P Network</p>
<p>Consensus rules: These are rules that determine how the network agrees on a single, consistent version of the Blockchain.</p>
<p>Transactions: These are cryptographically signed instructions that determine updates in the state of the Ethereum network.</p>
<p>State machines: These are behavioral models that describe how something behaves based on its current state and what happens next</p>
<p>Data Structures: This includes transactions and system state in a serialized hash data structure called the Merkle Patricia tree.</p>
<p>Nodes and Clients: Nodes are devices that run the Ethereum client and maintain a partial or full copy of the blockchain.</p>
<h2 id="heading-ether-eth">Ether (ETH)</h2>
<p>Ether is the currency unit of Ethereum.</p>
<p>[if !supportLists]·       [endif]The smallest possible unit of Ether is wei.</p>
<h2 id="heading-externally-owned-accounts-and-contracts">Externally Owned Accounts and Contracts</h2>
<p>Externally Owned Accounts (EOAs) are accounts created with a wallet.</p>
<p>EOAs have private keys that provide control over access to funds and contracts.</p>
<p>Contract accounts, on the other hand, have smart contracts and are controlled by the logic of the smart contract code.</p>
<p>However, contract accounts do not have private keys and, as such, can’t initiate transactions.</p>
<p>Contracts can react to transactions by calling other Contracts.</p>
<h2 id="heading-smart-contracts">Smart Contracts</h2>
<p>These are self-executing programs that are uploaded to the EVM state and executed by the network. They perform some actions once certain conditions are satisfied.</p>
<h2 id="heading-ethereum-virtual-machine-evm">Ethereum Virtual Machine (EVM)</h2>
<p>The EVM is the global virtual computer whose state every participant in the network stores and agrees on.</p>
<h2 id="heading-transactions">Transactions</h2>
<p>Transactions are cryptographically signed instructions from accounts that initiate a transfer to update the EVM state.</p>
<p>Ethereum transactions refer to actions initiated from an EOA.</p>
<p>Because a transaction changes the EVM state, it needs to be broadcast to the network.</p>
<p>Any node can broadcast a request for a transaction to be executed on the EVM.</p>
<p>Once achieved, a validator executes the transaction and propagates the resulting state change to the rest of the network.</p>
<h2 id="heading-node-and-clients">Node and Clients</h2>
<p>A node is any instance of Ethereum client software that is connected to other devices also running Ethereum software, forming a network.</p>
<p>An Ethereum client is a software that follows the Ethereum rules.</p>
<p>It contains information on how Ethereum works.</p>
<p>It checks everything from transactions to blocks against the Ethereum rules, ensuring the security of the network.</p>
<p>A node runs two clients: A consensus client and an execution client.</p>
<p>The execution client listens for new transactions broadcast on the network and executes them in the EVM.</p>
<p>The consensus client (Beacon Node) implements the PoS consensus algorithm, enabling the network to reach an agreement based on validated data from the execution client.</p>
<h3 id="heading-node-types">Node Types</h3>
<p>The different types of Nodes include:</p>
<p>Full Nodes: These do a block-to-block validation of the blockchain, including downloading and verifying the block body and state data of each block. Full nodes can verify every single block by storing the entire history of the blockchain.</p>
<p>Archive nodes: These are full nodes that verify every single block from genesis and never delete any downloaded data.</p>
<p>Light nodes: These nodes only download block headers.</p>
]]></content:encoded></item><item><title><![CDATA[Understanding Ethereum Proof-of-Stake: Rewards, Penalties, and Security]]></title><description><![CDATA[Previously, Ethereum relied on the Proof of Work (PoW) consensus protocol to validate and add new blocks to the blockchain. While effective, PoW came with some downsides; most notably, high energy consumption and limited scalability. To address these...]]></description><link>https://exploring-ethereum-the-basics.hashnode.dev/understanding-ethereum-proof-of-stake-rewards-penalties-and-security</link><guid isPermaLink="true">https://exploring-ethereum-the-basics.hashnode.dev/understanding-ethereum-proof-of-stake-rewards-penalties-and-security</guid><dc:creator><![CDATA[Chukwuemeka Timothy Ofili]]></dc:creator><pubDate>Thu, 10 Jul 2025 14:14:03 GMT</pubDate><content:encoded><![CDATA[<p>Previously, Ethereum relied on the Proof of Work (PoW) consensus protocol to validate and add new blocks to the blockchain. While effective, PoW came with some downsides; most notably, high energy consumption and limited scalability. To address these concerns, Ethereum transitioned to a more sustainable and secure system: Proof of Stake (PoS).</p>
<p>In PoS, validators are required to stake ETH for the privilege to propose new blocks and collect rewards. But what happens if a validator behaves dishonestly or fails to follow the rules? And how does Ethereum defend itself against potential attacks under this new system?</p>
<p>This article discusses the rewards and penalties for validators and the security measures that keep the network safe. Let’s dive right in.</p>
<h2 id="heading-pos-rewards">PoS Rewards</h2>
<p>Central to PoS are validators, the main actors responsible for attesting to blocks and proposing new ones. The attestation process requires at least 128 validators to be assigned to attest in each 12-second slot. Additionally, the network assigns the role of block proposer to one validator to propose one block per slot. Validators receive rewards when they make consistent votes with the majority of other validators, when they propose blocks, and when they participate in sync committees. The value of each epoch’s rewards is calculated from a <code>base_reward</code>. The <code>base_reward</code> equals the average reward received by a validator under optimal conditions per epoch. Where one epoch represents 32 slots and one slot represents 12 seconds in Ethereum’s PoS system. Therefore, the <code>base_reward</code> is calculated as follows:</p>
<pre><code class="lang-javascript">base_reward = effective_balance * (base_reward_factor / (base_rewards_per_epoch * sqrt(sum(active_balance))))
</code></pre>
<p>This means the base reward is directly proportional to the validator's effective balance and inversely proportional to the number of validators on the network. The more validators, the greater the overall issuance (as <code>sqrt(N)</code> but the smaller the <code>base_reward</code> per validator (as <code>1/sqrt(N)</code>).</p>
<h2 id="heading-pos-penalty">Pos Penalty</h2>
<p>So far we have considered the reward for perfectly well-behaved validators, but what happens when validators that do not make timely head, source and target votes or do so slowly?</p>
<p>The penalties for missing the target and source votes equals the rewards the attestor would have received had they submitted them. This means that the system removes an equal value of the reward from their balance. There is no penalty for missing the head vote. There is no penalty associated with the <code>inclusion_delay</code> , meaning the reward will simply not be added to the validator's balance. There is also no penalty for failing to propose a block.</p>
<p>However, there is a more severe penalty called Slashing. This action results in the forceful removal of a validator from the network and an associated loss of their staked ether. It results from dishonest proposal or attestation of blocks in the following ways</p>
<ul>
<li><p>By proposing and signing two different blocks for the same slot</p>
</li>
<li><p>By attesting to a block that "surrounds" another one (effectively changing history)</p>
</li>
<li><p>By "double voting" by attesting to two candidates for the same block.</p>
</li>
</ul>
<h2 id="heading-pos-security">PoS Security</h2>
<p>Thieves and saboteurs are constantly seeking opportunities to attack Ethereum’s client software. This section discusses the PoS security measures in place to avert such successful attacks.</p>
<p>The PoS security measures in place against attacks include the following:</p>
<ul>
<li><p>Re-org</p>
</li>
<li><p>Double finality</p>
</li>
<li><p>Finality delay</p>
</li>
</ul>
<h3 id="heading-re-org">Re-org</h3>
<p>This is a reshuffling of blocks into a new order, with some addition or subtraction of blocks in the canonical chain. A malicious reorg might ensure specific blocks are included or excluded, allowing double-spending or value extraction by front-running and back-running transactions (MEV). Re-orgs could also prevent certain transactions from being included in the canonical chain. The “finality reversion” represents the most extreme form of reorg, which removes or replaces blocks that have previously been finalized. This is only possible if more than ⅓ of the total staked ether is destroyed by the attacker in a form known as the “economic finality.”</p>
<h3 id="heading-double-finality">Double Finality</h3>
<p>This is an unlikely but severe condition. It’s a situation where two forks finalize simultaneously, creating a permanent schism in the chain. This is theoretically possible if an attacker is willing to sacrifice 34% of the total staked ether. The community would be forced to coordinate offchain and come to an agreement about which chain to follow, which would require strength in the social layer.</p>
<h3 id="heading-finality-delay">Finality Delay</h3>
<p>This attack prevents the network from reaching the conditions necessary for finalizing sections of the chain. Without finality, financial applications built on top of Ethereum lose credibility. The aim of a finality delay attack is simply to disrupt Ethereum rather than to directly profit, unless the attacker has some strategic short position(s).</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>The Ethereum’s PoS not only provides an understanding of the behavioural tendencies of validators or stakers, but also highlights the robust mechanism designed to ensure fairness, reliablity and security across the network.</p>
<p>Finally, the PoS lays the groundwork for greater scalability and long-term growth and investment, enabling Ethereum to evolve into a more sustainable, secure, and decentralized platform for the future.</p>
]]></content:encoded></item><item><title><![CDATA[Exploring Ethereum: The Basics]]></title><description><![CDATA[Following Ethereum’s creation as a general-purpose computing platform, Ethereum quickly gained traction in the blockchain space. Designed to support a wide range of decentralized applications through programmable smart contracts, Ethereum has become ...]]></description><link>https://exploring-ethereum-the-basics.hashnode.dev/exploring-ethereum-the-basics</link><guid isPermaLink="true">https://exploring-ethereum-the-basics.hashnode.dev/exploring-ethereum-the-basics</guid><dc:creator><![CDATA[Chukwuemeka Timothy Ofili]]></dc:creator><pubDate>Wed, 09 Jul 2025 14:06:33 GMT</pubDate><content:encoded><![CDATA[<p>Following Ethereum’s creation as a <strong>general-purpose computing platform</strong>, Ethereum quickly gained traction in the blockchain space. Designed to support a wide range of decentralized applications through programmable <strong>smart contracts</strong>, Ethereum has become one of the most influential and widely adopted blockchain networks, and continues to evolve rapidly.</p>
<p>In this article, we’ll provide a brief overview of <strong>Ether</strong>, Ethereum’s native cryptocurrency. You’ll learn how to:</p>
<ul>
<li><p>Securely store your Ether with the right <strong>wallet</strong></p>
</li>
<li><p>Obtain and transfer the test Ether for development or experimentation</p>
</li>
<li><p>Switch between networks (e.g., mainnet and testnets)</p>
</li>
</ul>
<p>We'll also introduce smart contracts, explaining how to create one on the blockchain and interact with it effectively.</p>
<h2 id="heading-understanding-ether-a-brief-overview">Understanding Ether: A Brief Overview</h2>
<p>Ether (ETH) is Ethereum’s native cryptocurrency. It was created to provide a mechanism for users to fuel the computational resources required to execute smart contracts and run applications on the Ethereum network. This provided an incentive for participants to verify and execute transaction requests and provide computational resources to the network. Ethereum developers and community metaphorically refer to ETH as the gas that powers the network. This is because ETH is exchanged for the work done to verify transactions and secure the blockchain, similar to money spent to buy the gas that powers a car. ETH has also evolved into a cryptocurrency of market value that is exchangeable for fiat currency on cryptocurrency exchanges.</p>
<p>Ether is subdivided into smaller units, down to the smallest unit possible, named wei. Where one ETH equals 1 quintillion wei (1 * 10<sup>18</sup> or 1,000,000,000,000,000,000<em>).</em> Internally, the ETH’s value is represented in Ethereum as an unsigned integer denominated in wei. Therefore, one ETH transaction encodes 1 × 10<sup>18 </sup> as the value.</p>
<h3 id="heading-securely-storing-your-eth-with-the-right-wallet">Securely Storing Your ETH with the Right Wallet</h3>
<p>The term wallet refers to a software application that helps you manage your crypto assets, and in this case, the assets in your Ethereum account. There are many different wallet options with different features and designs that make choosing the right wallet tedious. While some are suited for different levels of expertise, the best wallets are often the ones that adapt to the changes that come with the platform upgrades.</p>
<p>One important thing to remember is that for a wallet application to work, it must have access to your private keys, so ensure that you only download and use wallet applications from trusted sources. Below are a few selected options based on a broad range of complexity and features. However, these selections are not an endorsement of their quality or security. They are simply a good starting place:</p>
<ul>
<li><p>Metamask</p>
</li>
<li><p>Jaxx</p>
</li>
<li><p>MyEtherWallet (MEW)</p>
</li>
<li><p>Emerald Wallet</p>
</li>
</ul>
<h3 id="heading-obtaining-and-transferring-test-eth">Obtaining and Transferring Test ETH</h3>
<p>Funding your wallet for testing and development involves utilizing the Test Network because real ether costs money, and handling it requires a bit more experience. Interacting with the Test Networks requires test ETH, which has no real-world value but behaves like real ETH.</p>
<p>You can get test ETH through a <strong>faucet</strong>, a free service that sends small amounts of test ETH to your wallet. Below are the steps to achieve this:</p>
<ol>
<li><p>Set up a wallet (e.g., MetaMask) and connect it to a test network like Sepolia.</p>
</li>
<li><p>Copy your wallet address.</p>
</li>
<li><p>Visit a faucet website (e.g., <a target="_blank" href="https://sepoliafaucet.com/">Sepolia Faucet</a>).</p>
</li>
<li><p>Paste your wallet address and request some test ETH.</p>
</li>
<li><p>After a few moments, the test ETH will appear in your wallet.</p>
</li>
</ol>
<p>Once you have your test ETH, you can send it like regular ETH in the following steps:</p>
<ol>
<li><p>Open your wallet and select the Send option.</p>
</li>
<li><p>Enter the recipient's address.</p>
</li>
<li><p>Specify the amount of test ETH you want to send.</p>
</li>
<li><p>Confirm and complete the transaction.</p>
</li>
<li><p>View the transaction status on a block explorer (like Goerli Etherscan).</p>
</li>
</ol>
<h2 id="heading-understanding-smart-contract">Understanding Smart Contract</h2>
<p>A smart contract is a self-executing script/program that depicts and enforces the terms of an agreement directly in lines of code. Once deployed on the blockchain, it runs automatically, triggering outcomes when predefined conditions are met, without the need for intermediaries.</p>
<p>You can think of a smart contract like a washing machine where you input settings like wash time, temperature, etc., and once started, it runs autonomously through each step of the cycle. When the timer reaches zero, the machine stops, and your clothes are ready. Similarly, a smart contract carries out instructions, which, once triggered, its outcomes are guaranteed by the blockchain. Now, let’s see how to create a simple smart contract.</p>
<h3 id="heading-creating-a-smart-contract">Creating a Smart Contract</h3>
<p>Ethereum provides many tools to write a contract and produce EVM bytecode. One of these tools is by far the dominant choice for smart contract programming, called Solidity. Solidity is a high-level language created by Dr. Gavin Wood. It is what we’ll use to create our first contract.</p>
<p>Our first example involves creating a contract that controls a faucet. Below are the steps to achieve this:</p>
<ul>
<li><p>The first line is a comment:</p>
<pre><code class="lang-solidity">  <span class="hljs-comment">// SPDX-License-Identifier: CC-BY-SA-4.0</span>
</code></pre>
</li>
<li><p>The next thing is to write the starter for our actual contract:</p>
<pre><code class="lang-solidity">  <span class="hljs-class"><span class="hljs-keyword">contract</span> <span class="hljs-title">Faucet</span> </span>{}
</code></pre>
</li>
<li><p>Next, we ensure the contract can accept any incoming amount:</p>
<pre><code class="lang-solidity">  <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">withdraw</span>(<span class="hljs-params"><span class="hljs-keyword">uint</span> withdraw_amount</span>) <span class="hljs-title"><span class="hljs-keyword">public</span></span> </span>{
</code></pre>
<p>  The <code>function withdraw</code> takes one unsigned integer (uint) argument named withdraw_amount. It is declared as a public function, meaning it can be called by other contracts.</p>
</li>
<li><p>Next, we limit the withdrawals:</p>
</li>
</ul>
<pre><code class="lang-solidity"><span class="hljs-built_in">require</span>(withdraw_amount <span class="hljs-operator">&lt;</span><span class="hljs-operator">=</span> <span class="hljs-number">100000000000000000</span>);
</code></pre>
<ul>
<li><p>Finally, we send the actual amount</p>
<pre><code class="lang-solidity">  <span class="hljs-built_in">msg</span>.<span class="hljs-built_in">sender</span>.<span class="hljs-built_in">transfer</span>(withdraw_amount);
</code></pre>
</li>
</ul>
]]></content:encoded></item></channel></rss>