<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Yelyzaveta Dymchenko</title>
    <description>The latest articles on DEV Community by Yelyzaveta Dymchenko (@dymchenkko).</description>
    <link>https://dev.to/dymchenkko</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F865861%2Fe713600f-7c18-4e53-ae38-c78ef69e41ad.png</url>
      <title>DEV Community: Yelyzaveta Dymchenko</title>
      <link>https://dev.to/dymchenkko</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dymchenkko"/>
    <language>en</language>
    <item>
      <title>How Not to Pull a "GitHub Engineer" With Your VS Code Extensions</title>
      <dc:creator>Yelyzaveta Dymchenko</dc:creator>
      <pubDate>Fri, 22 May 2026 15:19:40 +0000</pubDate>
      <link>https://dev.to/dymchenkko/how-not-to-pull-a-github-engineer-with-your-vs-code-extensions-4b3i</link>
      <guid>https://dev.to/dymchenkko/how-not-to-pull-a-github-engineer-with-your-vs-code-extensions-4b3i</guid>
      <description>&lt;p&gt;If a GitHub engineer — someone who works at the company that literally hosts the world's code — can get their computer hacked through a VS Code extension... you probably should read this.&lt;/p&gt;

&lt;p&gt;Spoiler: staying safe is not hard. It's just a few small things most developers never bother doing because nothing bad has happened &lt;em&gt;yet&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Let me save you the trouble of learning this the hard way.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Happened (May 2026)
&lt;/h2&gt;

&lt;p&gt;On May 19, 2026, GitHub told the world that hackers had broken into roughly 3,800 of its private repositories. The entry point was a VS Code extension called &lt;strong&gt;Nx Console&lt;/strong&gt; — a popular tool used by millions of developers, with a verified badge from Microsoft.&lt;/p&gt;

&lt;p&gt;But here's what makes this story interesting: it wasn't a simple "someone installed a bad extension" situation. It was a chain of events, each one making the next possible.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Here's how it actually went:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Attackers first broke into &lt;strong&gt;TanStack&lt;/strong&gt; — a set of popular JavaScript packages used by many projects. They snuck a credential-stealing payload into those packages.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;One of the developers who maintains Nx Console used TanStack in their own work. When the malicious TanStack package ran, it stole that developer's GitHub login credentials.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;With those stolen credentials, the attackers published a malicious version of Nx Console to the VS Code Marketplace.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The malicious extension, once installed and running, quietly collected everything it could find on the machine: passwords, API keys, SSH keys, GitHub tokens, AWS and Google Cloud credentials, even contents of 1Password vaults.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It sent all of that out silently — using HTTPS, the GitHub API, and DNS, all of which look like completely normal traffic.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;One of the people who had Nx Console installed and auto-updated happened to be a GitHub employee. Their stolen GitHub tokens gave the attackers access to 3,800 internal repositories.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This wasn't a dumb mistake by a careless person. It was a well-planned attack that moved through multiple trusted tools before anyone noticed.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why VS Code Extensions Are Riskier Than You Think
&lt;/h2&gt;

&lt;p&gt;When you install a VS Code extension, it gets full access to your computer. It can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Read and write any file you can open&lt;/li&gt;
&lt;li&gt;Send data over the internet to anywhere&lt;/li&gt;
&lt;li&gt;Run programs in the background&lt;/li&gt;
&lt;li&gt;Read your passwords, API keys, and &lt;code&gt;.env&lt;/code&gt; files&lt;/li&gt;
&lt;li&gt;Access your SSH keys and cloud account credentials&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most antivirus tools won't catch this. Extensions are written in JavaScript, not the kind of files security tools usually flag. The malicious Nx Console payload was a small piece of code hidden inside a larger file. It didn't look like malware because most of it was still the real, working extension.&lt;/p&gt;

&lt;p&gt;Also worth knowing: the "Verified Publisher" badge means Microsoft confirmed the publisher is real, owns a domain, and has been on the Marketplace in good standing for at least six months. That's a useful signal — but it can't protect you if that publisher's account gets stolen. In the Nx Console case, it was the real, verified publisher. Just with stolen credentials.&lt;/p&gt;




&lt;h2&gt;
  
  
  How Attackers Do It (So You Can Spot It)
&lt;/h2&gt;

&lt;p&gt;There are a few tricks they keep using:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fake extensions with similar names&lt;/strong&gt; — they publish something called &lt;code&gt;prettierteam.prettier&lt;/code&gt; instead of the real &lt;code&gt;esbenp.prettier-vscode&lt;/code&gt;. Same icon, same description, different publisher. Most people don't check.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Poisoned updates&lt;/strong&gt; — they steal a real publisher's account credentials and push a bad update to an extension people already trust. Your computer auto-updates it. This is exactly what happened with Nx Console.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sleeper extensions&lt;/strong&gt; — they publish something harmless, wait for people to install it, then flip a switch in a later update. By then you trust it. Auto-update does the rest.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Extensions that actually work&lt;/strong&gt; — some malicious extensions do exactly what they say they do. They're just also stealing your data at the same time. Much harder to notice.&lt;/p&gt;




&lt;h2&gt;
  
  
  What You Can Actually Do
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Look at What You Have Installed
&lt;/h3&gt;

&lt;p&gt;Run this in your terminal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;ls&lt;/span&gt; ~/.vscode/extensions/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Go through the list. If you don't recognize something, or haven't used it in months — delete it. Every extension you remove is one less way in.&lt;/p&gt;

&lt;p&gt;For the ones you keep, take 30 seconds to check:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Does it have a real GitHub page with real activity?&lt;/li&gt;
&lt;li&gt;Does the number of installs make sense for what it is?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A color theme with 9 installs and no GitHub link is worth being suspicious about.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Turn Off Automatic Updates
&lt;/h3&gt;

&lt;p&gt;Go to &lt;code&gt;Code → Settings → Settings&lt;/code&gt; then click the small JSON icon in the top right corner. Add these two lines:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"extensions.autoUpdate"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"extensions.autoCheckUpdates"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Why do you need both?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;extensions.autoUpdate&lt;/code&gt; — stops VS Code from downloading and installing updates on its own&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;extensions.autoCheckUpdates&lt;/code&gt; — stops VS Code from even checking for updates in the background&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;They're separate settings that work independently. If you only turn off one, VS Code can still do part of the process on its own. With both off, nothing changes on your computer unless &lt;em&gt;you&lt;/em&gt; go and click update yourself.&lt;/p&gt;

&lt;p&gt;This is the single most important thing on this list. The GitHub breach specifically happened because auto-update silently installed a bad version of a trusted extension. If that engineer had auto-update off, they would have updated Nx Console manually — and by the time they got around to it, the malicious version would already have been pulled.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Install a Network Monitor (macOS)
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://objective-see.org/products/lulu.html" rel="noopener noreferrer"&gt;LuLu&lt;/a&gt; is a free app for Mac that tells you whenever any program on your computer tries to send data somewhere. Think of it like a doorbell for your internet traffic.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;brew &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--cask&lt;/span&gt; lulu
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After you install it: go to &lt;code&gt;System Settings → Privacy &amp;amp; Security → Allow LuLu&lt;/code&gt;, then restart your Mac.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A word of honesty here:&lt;/strong&gt; LuLu would &lt;em&gt;not&lt;/em&gt; have stopped the GitHub breach specifically. The malicious Nx Console sent stolen data out through GitHub's own API and normal HTTPS traffic — the same connections the real extension makes every day. A popup saying "Nx Console wants to connect to github.com" would look completely normal. LuLu is most useful when an unknown extension tries to connect to some random server you've never heard of. For attacks that use trusted services like GitHub or DNS as the exit route, it won't help much.&lt;/p&gt;

&lt;p&gt;That said — LuLu is still worth having. Most malicious extensions &lt;em&gt;do&lt;/em&gt; phone home to unfamiliar servers, and LuLu catches those.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Check Before You Install Anything New
&lt;/h3&gt;

&lt;p&gt;Before installing any extension, take 30 seconds:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Verified checkmark on the publisher → good sign, but not a guarantee (the Nx Console publisher was verified — their account was just stolen)&lt;/li&gt;
&lt;li&gt;Real GitHub repo with recent commits → good sign&lt;/li&gt;
&lt;li&gt;High install count for a popular tool → good sign&lt;/li&gt;
&lt;li&gt;Name that looks almost like a well-known extension → warning sign&lt;/li&gt;
&lt;li&gt;Just published, no history → warning sign&lt;/li&gt;
&lt;li&gt;A simple theme or formatter that wants to run scripts → big warning sign&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A theme extension has no reason to run commands on your computer. If something simple wants unusual permissions, that's your answer.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Honest Part
&lt;/h2&gt;

&lt;p&gt;There is no list somewhere that will keep you safe. By the time a bad extension shows up in a security report, people have already been affected. And as the GitHub case shows, sometimes the attack goes through tools you genuinely trust and have used for years.&lt;/p&gt;

&lt;p&gt;What actually helps is simpler:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Fewer extensions&lt;/strong&gt; — you can't get hurt by something you didn't install&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Manual updates&lt;/strong&gt; — gives you a chance to check before anything changes on your machine&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LuLu&lt;/strong&gt; — catches extensions phoning home to unknown servers&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Habit&lt;/strong&gt; — check before you install, not after something goes wrong&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The people doing this are patient and organized. The GitHub attack started with one compromised JavaScript package, moved through a developer's stolen credentials, through a trusted extension, and ended with 3,800 private repositories being stolen. Every step looked normal until it was too late.&lt;/p&gt;

&lt;p&gt;The good news is that most developers aren't doing any of this yet. Doing even two or three of these things puts you in a much better position than most.&lt;/p&gt;




</description>
      <category>extensions</category>
      <category>vsc</category>
      <category>security</category>
      <category>github</category>
    </item>
    <item>
      <title>Everything you want to know about Ethereum Stateless</title>
      <dc:creator>Yelyzaveta Dymchenko</dc:creator>
      <pubDate>Wed, 14 Jan 2026 20:57:25 +0000</pubDate>
      <link>https://dev.to/dymchenkko/everything-you-want-to-know-about-ethereum-stateless-3ok8</link>
      <guid>https://dev.to/dymchenkko/everything-you-want-to-know-about-ethereum-stateless-3ok8</guid>
      <description>&lt;p&gt;&lt;strong&gt;The Ethereum State is becoming unmanageable.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To verify blocks today, running a node requires a 2TB+ NVMe SSD and significant bandwidth. This hardware barrier forces centralization, pushing users to rely on trusted third parties like Infura or Alchemy instead of verifying the chain themselves.&lt;/p&gt;

&lt;p&gt;The solution is &lt;strong&gt;Stateless Consensus&lt;/strong&gt; - a fundamental shift in how nodes communicate. This article explores the mechanics of Verkle Trees, the engineering constraints of the network, and why solving the "Concurrency Trap" is critical for Ethereum's roadmap.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Constraints: Latency &amp;amp; Bandwidth
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Why can't we just send the data needed to verify a block?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To verify a block statelessly, a node needs specific account values (balances, nonces, code) along with a cryptographic proof that these values are correct. This package is called &lt;strong&gt;The Witness&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The problem is network propagation. Blocks must propagate across the global P2P network in seconds. If we used today's math, the Witness would be &lt;strong&gt;10-20 MB&lt;/strong&gt; per block. At that size, propagation slows down, stale block rates increase, and only massive data centers can keep up.&lt;/p&gt;

&lt;p&gt;To make statelessness viable, we need to shrink that proof from 20 MB to &lt;strong&gt;&amp;lt;100 KB&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Architecture of Statelessness
&lt;/h2&gt;

&lt;p&gt;Statelessness splits the network into two distinct classes of nodes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Proposers (Heavy):&lt;/strong&gt; These nodes store the full 2TB state. They build the blocks and generate the Witness.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Validators (Light):&lt;/strong&gt; These nodes store nothing. They receive the &lt;code&gt;(Block, Witness)&lt;/code&gt; tuple and verify it mathematically.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  The Bottleneck: Merkle Patricia Tries
&lt;/h2&gt;

&lt;p&gt;Ethereum currently uses Merkle Patricia Tries (Radix-16). In this structure, every node has 16 children. To prove that one specific child value exists, you must provide the hashes of all &lt;strong&gt;15 siblings&lt;/strong&gt; at every level of the tree's depth.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Math:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Size ≈ 15 × Depth × 32 bytes&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This scales linearly. As the state grows, the tree gets deeper, and the proof gets bigger. Currently, this results in roughly &lt;strong&gt;3-4 KB per account&lt;/strong&gt;. In a busy block consuming 30M gas, the total witness data exceeds the bandwidth budget of the P2P network.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Fix: Verkle Trees &amp;amp; Vector Commitments
&lt;/h2&gt;

&lt;p&gt;To solve this, Ethereum is moving to &lt;strong&gt;Verkle Trees&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;In a Verkle Tree, we make the structure much &lt;strong&gt;wider&lt;/strong&gt;. Each node has &lt;strong&gt;256 children&lt;/strong&gt; instead of 16. Normally, proving one child among 256 would require sending 255 sibling hashes—a massive amount of data.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Solution: Polynomials
&lt;/h3&gt;

&lt;p&gt;Instead of hashing the siblings, we treat the 256 children as coefficients (v) of a polynomial P(x). It looks like this:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;P(x) = v₀ + v₁x + v₂x² + ... + v₂₅₅x²⁵⁵&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;We then "commit" to this entire polynomial using &lt;strong&gt;KZG Commitments&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  The KZG Magic Formula 🔮
&lt;/h3&gt;

&lt;p&gt;The commitment C is a single curve point, derived from a secret value s. It is calculated by multiplying the Generator point G by the polynomial's value at s:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;C = G • P(s)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;To prove a specific child value y at index z, the prover calculates a &lt;strong&gt;Quotient Polynomial&lt;/strong&gt; Q(x):&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Q(x) = (P(x) - y) / (x - z)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Why this formula works:&lt;/strong&gt;&lt;br&gt;
The logic relies on polynomial divisibility. If the value at index &lt;code&gt;z&lt;/code&gt; is truly &lt;code&gt;y&lt;/code&gt;, then subtracting &lt;code&gt;y&lt;/code&gt; from the polynomial makes it perfectly divisible by &lt;code&gt;(x - z)&lt;/code&gt;. If the value were anything else, there would be a "remainder" left over, and &lt;code&gt;Q(x)&lt;/code&gt; would not be a valid polynomial. By providing the commitment to &lt;code&gt;Q(x)&lt;/code&gt;, the prover demonstrates that the division was clean and the data is correct.&lt;/p&gt;

&lt;p&gt;The "Proof" is simply the commitment to this quotient polynomial &lt;code&gt;Q(x)&lt;/code&gt;. This proof is a constant &lt;strong&gt;48 bytes&lt;/strong&gt;, regardless of whether the tree is wide or narrow.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Impact: Bandwidth Saved
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Merkle Proof:&lt;/strong&gt; ~3,000 bytes per account (Linear complexity).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Verkle Proof:&lt;/strong&gt; ~150 bytes per account (Constant complexity).
This reduces the stateless block witness from &lt;strong&gt;10 MB&lt;/strong&gt; down to &lt;strong&gt;200 KB&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The Engineering Challenges
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. The Trade-off: Trusted Setup
&lt;/h3&gt;

&lt;p&gt;KZG Commitments require a "Structured Reference String" (SRS)—a set of parameters generated using a secret value $s$.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The Risk:&lt;/strong&gt; If an attacker knows &lt;code&gt;s&lt;/code&gt;, they can &lt;strong&gt;fake&lt;/strong&gt; proofs &lt;code&gt;P'(s) = P(s)&lt;/code&gt; and trick the network into accepting bad data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Defense:&lt;/strong&gt; The &lt;strong&gt;"Powers of Tau" Ceremony&lt;/strong&gt;. Over 140,000 participants contributed entropy to generate these parameters. As long as &lt;strong&gt;one&lt;/strong&gt; single person in that chain deleted their "toxic waste" (secret randomness), the system is mathematically secure.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. The Concurrency Trap (Race Condition)
&lt;/h3&gt;

&lt;p&gt;Who should generate these proofs? There are two approaches:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Strong Statelessness:&lt;/strong&gt; Users generate proofs for their own transactions.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Weak Statelessness:&lt;/strong&gt; Block Builders generate proofs for everyone.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Ethereum has chosen &lt;strong&gt;Weak Statelessness&lt;/strong&gt; because of a fundamental distributed systems problem: &lt;strong&gt;The Race Condition.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If users had to make these proofs themselves, their transactions would often fail when the network is busy. Therefore, the burden is placed on the &lt;strong&gt;Block Builders&lt;/strong&gt; (Proposers), who have the server capacity to regenerate proofs instantly.&lt;/p&gt;




&lt;h2&gt;
  
  
  Future Proofing: State Expiry
&lt;/h2&gt;

&lt;p&gt;Another piece of the puzzle is &lt;strong&gt;State Expiry&lt;/strong&gt; (EIP-7736). Statelessness solves the &lt;em&gt;verification&lt;/em&gt; problem, but the underlying database (stored by Proposers) still grows endlessly.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Mechanism:&lt;/strong&gt; Epoch-based tree rotation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Logic:&lt;/strong&gt; If a "leaf" (account) is not accessed for ~1 year, it is dropped from the active tree.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Restoration:&lt;/strong&gt; To use that account again, the user must provide a proof from the "Archive" to reactivate it.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Conclusion: The "Verge" Vision
&lt;/h2&gt;

&lt;p&gt;All of this math serves one singular vision in Vitalik’s roadmap, known as &lt;strong&gt;"The Verge."&lt;/strong&gt; The goal is to make the chain so lightweight that verifying Ethereum no longer requires trusting centralized providers like Alchemy or Infura.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Today:&lt;/strong&gt; We trust.&lt;br&gt;
&lt;strong&gt;Tomorrow:&lt;/strong&gt; We verify.&lt;/p&gt;




&lt;h2&gt;
  
  
  Summary &amp;amp; Specs
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Tech&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;KZG Polynomials compress 256 siblings into 48 bytes.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Network&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Reduces bandwidth overhead by ~99%.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;UX&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;"Weak" statelessness prevents transaction failures.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Target&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;The "Hegota" Upgrade (H2 2026).&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Related EIPs:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eips.ethereum.org/EIPS/eip-6800" rel="noopener noreferrer"&gt;#EIP6800 (Verkle Trees)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eips.ethereum.org/EIPS/eip-4762" rel="noopener noreferrer"&gt;#EIP4762 (Gas Costs)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Top Resources
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Vitalik Buterin:&lt;/strong&gt; "Verkle Trees"

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://vitalik.eth.limo/general/2021/06/18/verkle.html" rel="noopener noreferrer"&gt;Link&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Dankrad Feist:&lt;/strong&gt; "Verkle Trie for Eth1 State"

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://dankradfeist.de/ethereum/2021/06/18/verkle-trie-for-eth1.html" rel="noopener noreferrer"&gt;Link&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>ethereum</category>
      <category>stateless</category>
      <category>consensus</category>
    </item>
    <item>
      <title>Polygon’s AggLayer Explained: Aggregating Liquidity Across Chains</title>
      <dc:creator>Yelyzaveta Dymchenko</dc:creator>
      <pubDate>Tue, 16 Sep 2025 08:20:14 +0000</pubDate>
      <link>https://dev.to/dymchenkko/polygons-agglayer-explained-aggregating-liquidity-across-chains-32ck</link>
      <guid>https://dev.to/dymchenkko/polygons-agglayer-explained-aggregating-liquidity-across-chains-32ck</guid>
      <description>&lt;h2&gt;
  
  
  Introduction – Why Liquidity Matters
&lt;/h2&gt;

&lt;p&gt;In crypto, liquidity means how easily you can buy, sell, or move assets without delays or high costs. In DeFi, liquidity is oxygen: without it, apps struggle, trades become expensive, and users leave.&lt;/p&gt;

&lt;p&gt;But Ethereum’s rollups, while solving scalability, split liquidity into dozens of separate networks. Imagine every neighborhood in a city printing its own currency — trade inside each one works, but moving money across town is messy. Worse, bridges connecting those neighborhoods have been some of crypto’s weakest points. In 2025 alone, crypto theft has already topped &lt;a href="https://www.chainalysis.com/blog/2025-crypto-crime-mid-year-update/" rel="noopener noreferrer"&gt;$2.17B&lt;/a&gt; by mid-year, driven by the &lt;a href="https://www.reuters.com/technology/cybersecurity/cryptos-biggest-hacks-heists-after-15-billion-theft-bybit-2025-02-24/?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;$1.5B Bybit incident&lt;/a&gt;, which was the largest single hack on record.&lt;/p&gt;

&lt;p&gt;In my previous article on &lt;a href="https://dymchenko.hashnode.dev/zk-rollup-superchains-the-race-to-unify-ethereums-layer-2-networks" rel="noopener noreferrer"&gt;ZK Rollup Superchains&lt;/a&gt;, I wrote about the race to unify Ethereum’s fragmented rollups. Now let’s look at how Polygon is approaching this challenge with its new interoperability layer: AggLayer.&lt;/p&gt;

&lt;p&gt;This is the problem AggLayer is trying to fix.&lt;/p&gt;




&lt;h2&gt;
  
  
  What is Polygon’s AggLayer?
&lt;/h2&gt;

&lt;p&gt;AggLayer is Polygon’s interoperability and liquidity aggregation layer, part of the broader Polygon 2.0 roadmap. Instead of being just another rollup, it connects:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Polygon PoS&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Polygon zkEVM&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;New chains launched with Polygon’s Chain Development Kit (CDK)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;And potentially non-Polygon chains in the future&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;into one unified ecosystem.&lt;/p&gt;

&lt;p&gt;Normally, every pair of chains needs its own custom bridge — a messy and risky approach. AggLayer replaces that with one shared highway - the Unified Bridge. Apps and users interact across chains without juggling multiple wrapped tokens or bridges.&lt;/p&gt;

&lt;p&gt;👉 Think of it as many small ponds merging into one giant lake of liquidity.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Quick note on CDK*&lt;em&gt;:&lt;/em&gt;* Polygon’s Chain Development Kit is an open-source toolkit to launch custom zk-powered chains. Developers can spin up new appchains with different configurations, and AggLayer ensures they’re automatically plugged into the shared liquidity pool.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Even more ambitious: AggLayer is not limited to Polygon chains. It’s designed to be chain-neutral, potentially aggregating liquidity across all of Web3, not just Ethereum rollups.&lt;/p&gt;




&lt;h2&gt;
  
  
  Liquidity-First Design
&lt;/h2&gt;

&lt;p&gt;Most rollups focus first on performance (faster, cheaper transactions) and then patch liquidity with bridges. Polygon flipped the script with a liquidity-first design:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;All tokens and assets across Polygon chains are treated as if they’re in one pool.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Instead of many small ponds, AggLayer gathers liquidity into one giant lake.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Traders, DeFi apps, and NFT marketplaces all benefit because assets flow freely.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 Analogy: Instead of needing different logins for every bank branch, AggLayer makes it feel like you’re banking from one app, with one balance, everywhere.&lt;/p&gt;




&lt;p&gt;Under the Hood: How AggLayer Actually Works&lt;/p&gt;

&lt;p&gt;AggLayer’s architecture relies on three core systems that keep cross-chain transactions secure, efficient, and trustworthy:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Unified Bridge – The Shared Highway&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The Unified Bridge is the central mechanism that moves tokens and messages between chains.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;No more wrapped tokens: AggLayer treats assets natively across chains. A token on one AggLayer chain is equivalent everywhere — liquidity isn’t fractured into multiple versions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Message passing: Smart contracts across chains can talk to each other, enabling cross-chain dApps without custom bridges.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ethereum settlement: Bridge smart contracts on Ethereum track deposits, exits, and global chain states, providing a secure anchor.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 Analogy: The Unified Bridge is like a highway system that connects multiple cities. Each city keeps local toll records, but there’s also a central authority verifying the entire network.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Pessimistic Proof – The Security Guard
&lt;/h2&gt;

&lt;p&gt;The Pessimistic Proof acts as AggLayer’s safety net. Before any withdrawal is approved, it double-checks that the assets exist and haven’t been claimed already.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Deposits must match withdrawals. No one can claim more than they put in.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Three Merkle Trees per chain: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Exit Tree – logs what each chain sends out&lt;/li&gt;
&lt;li&gt;Balance Tree – tracks token balances&lt;/li&gt;
&lt;li&gt;Nullifier Tree – prevents replay attacks&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Prevents “double dipping.” Once a withdrawal is claimed, it’s nullified.&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;👉 Analogy: Think of it as a strict accountant cross-checking both the books of each chain and the global ledger. If the numbers don’t add up, no transaction goes through.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. State Transition Proof – The Auditor
&lt;/h2&gt;

&lt;p&gt;The State Transition Proof (often called the AggChain Proof) ensures every transaction and every cross-chain operation is valid.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Internal verification: Confirms transactions inside each chain are correct.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Cross-chain verification: Confirms that bridge operations (deposits, exits, balances) are consistent with the global record.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Flexible proofs: Some chains use full ZK proofs, others lighter proofs like sequencer signatures.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 Analogy: This is like a forensic auditor who not only checks each company’s (chain’s) books but also compares them against the master ledger (AggLayer).&lt;/p&gt;

&lt;p&gt;Most importantly: AggLayer enables atomic cross-chain transactions. That means multi-chain actions either all succeed or all fail together — no more risk of getting debited on one chain and failing on another.&lt;/p&gt;




&lt;p&gt;Simplified architecture: AggLayer nodes coordinate proofs, Ethereum provides settlement, and the Unified Bridge ties everything together.&lt;/p&gt;




&lt;p&gt;Why This Matters for DeFi&lt;/p&gt;

&lt;p&gt;By combining these systems, AggLayer delivers on its liquidity-first promise:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Unified Liquidity: One pool of assets across chains → deeper markets, less slippage.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Atomic Swaps: Cross-chain trades that settle instantly or not at all.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Better UX: Users don’t care what chain they’re on — apps just work.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Lower Risk: One robust Ethereum-secured bridge instead of dozens of risky ones.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 Example: A DEX on one chain can tap liquidity from another instantly. A lending protocol can pool collateral from all chains. An NFT marketplace can let buyers and sellers trade seamlessly across chains.&lt;/p&gt;




&lt;p&gt;Challenges Ahead&lt;/p&gt;

&lt;p&gt;AggLayer is ambitious, but questions remain:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Attracting non-Polygon chains: Will independent ecosystems trust a Polygon-led framework? Its neutrality could help, but adoption will take time.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Sequencer decentralization: Polygon plans to use POL staking to decentralize sequencers and provers, but it’s not fully live yet.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ecosystem fragmentation: Optimism’s Superchain, zkSync’s Elastic Chain, and AggLayer may unify liquidity within their own networks — but will they interconnect, or remain competing “mega-lakes”?&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Conclusion – One Big Lake Instead of Many Small Ponds&lt;/p&gt;

&lt;p&gt;Polygon’s AggLayer is a bold attempt to solve Ethereum’s liquidity fragmentation. With a shared bridge, strict proofs, and a liquidity-first design, it makes Polygon chains feel like one seamless ecosystem.&lt;/p&gt;

&lt;p&gt;Instead of dozens of small, disconnected ponds, AggLayer promises one vast, thriving lake of liquidity — the kind DeFi needs to grow.&lt;/p&gt;

</description>
      <category>polygon</category>
      <category>agglayer</category>
      <category>rollups</category>
      <category>superchain</category>
    </item>
  </channel>
</rss>
