<?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>Jason Chaskin</title>
        <link>https://paragraph.com/@chaskin</link>
        <description>undefined</description>
        <lastBuildDate>Fri, 26 Jun 2026 14:02:31 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <image>
            <title>Jason Chaskin</title>
            <url>https://storage.googleapis.com/papyrus_images/1fea902e1dfdf3eeb8e0fbe0710dee4f.jpg</url>
            <link>https://paragraph.com/@chaskin</link>
        </image>
        <copyright>All rights reserved</copyright>
        <item>
            <title><![CDATA[I Got A Story To Tell]]></title>
            <link>https://paragraph.com/@chaskin/i-got-a-story-to-tell</link>
            <guid>X3QJ4VkEoGRiy8XctfGG</guid>
            <pubDate>Wed, 06 Aug 2025 23:23:04 GMT</pubDate>
            <description><![CDATA[I’ve always believed Ethereum could make a real difference in the world, but it took me a while to put into words exactly why. This is that attempt.]]></description>
            <content:encoded><![CDATA[<p>The other day, someone I met at Cannes sent me this message:</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/1fadf420416de984363228b4cb6a8718.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAKCAIAAABaL8vzAAAACXBIWXMAAAsTAAALEwEAmpwYAAADH0lEQVR4nJWQfUgTcRjHf2QUGRUF5aigEP+RoiKi/ousP/ojVIgiQUUwlRFNlqdX6CxPbXl4MNxb126v3rbfdno7vb34Ml/GfCsXK7U0MsKMwIK1yjKni4tuEP0Xfnj+eODheb7f7wOkVUcKyiRqQ8XMXHAi4pmMeiej3tAEMzTqGnnMhSe7+kdcgZAzEHL1jXT4Qy4uSEOvkR92Q7/ZwZvZoAP6rcZOvauXpnmTwa3V0m2yxgqQCdKywOYsAEpuHm7VFkUiEZvNMRoe83p7+G5fINA/PBzuZDg37OwNBIP9g06H2w07+S7ew3KRJ09NRks4NBoKhQ2PKHu789XcaxdkPCw3PjYuiBTeugwkfzRAQZnEBmunp16o1W0QOnG8pa6uFsdbrFYLjrdUVVXpdNp6Ra1SeR9Fa1QqFYZhBsqAYQ1Gk1H/UC+VSivllRBChUJRf7derW5bWfkhCEKjVgEyxAR5RdspG/Jm/m1+fp5cLlepVApFfUlJCSqCIAhJkhiGKZVKmqaLi4t5nscwjKKo1Iim6TsiMpkMQojjeM75HLaD07QTIAOATAAuFaTrzbfm5uYxrBFBqhubmixWq4GiCIJAEMRms5nNZpIkVSIymQxFUYIgSJKEEBIEgaIowzCJRGJhYSEWi8Xj8cX3i4IgEMYH4KCYILdwD2mtXnz3wU5b1FqViSL7+nqMlIGmablczvO8TqfTaDTNzc0ajQbDsJRrhmFYli0tLS0vLx8YGBAEIZlMpr6/tr4mCIJS3wAkYOfxNJBXvJe0Vq+uJ0/mVYJD58DJq5LTuWxwUtz5JWyclABuaAIHwK4TaeBs/ian67Zcw4F/2HHmyqfP334l1xP/4+fqz7X1tURiNR7/HI/HY7HY0selvy/6I3Dh8s57LVdm5j+ALafE48fA3uwapWlDrr8vL09PTc++nI1Gn42PjX/98u3GvesgUxS4VLj/4rV9rVrp8xeDI9G+wVHON8QOj3H+IXd3EHYHoafHzvisnl4n46NdfHuH38H47KmCvI32mNw+u73LwgRgqmH7mfv6ht0ntm7LBulHwW/umlmzSISfDAAAAABJRU5ErkJggg==" nextheight="426" nextwidth="1362" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>It honestly just made me happy, and made me want to have that conversation with everyone on the planet. But that obviously doesn’t scale. So the next best thing is to write a post about what we talked about.</p><p>I’ve known for a long time that if Ethereum succeeds, it will make a real difference in the world. But it’s taken me a while to put into words exactly why.</p><p>I think it’s because the problems Ethereum tries to solve are hard to see. They’re baked into systems we’ve grown used to, so we don’t always notice how broken things are.</p><p>In a recent <a target="_blank" rel="noopener noreferrer" class="dont-break-out custom-text-link" href="https://www.cnbc.com/2025/08/02/ethereum-turns-10-from-scrappy-experiment-to-wall-streets-invisible-backbone.html?taid=688e5e409f39720001016286&amp;utm_campaign=trueanthem&amp;utm_content=main&amp;utm_medium=social&amp;utm_source=twitter">CNBC article about Ethereum’s 10-year birthday</a>, Vitalik described the mission as making Ethereum “a really valuable part of global infrastructure that helps make the internet and the economy a more free and open place.”</p><p>That might sound like a nice tagline, but isn’t the internet already free and open?</p><p>At first glance, maybe. But if you look closer at how we got here, you’ll see something different. The internet started as an open, messy, beautiful space. Then slowly, it became siloed. The rules stopped being written to give you freedom and started being written to keep you locked in and extract from you.</p><p>The early internet showed what’s possible when no one controls the system. It was a rare window where open protocols won, governments funded the infrastructure, and corporate gatekeepers hadn’t yet taken over.</p><p>What do I mean when I say “open protocols won”?</p><p>I like <a target="_blank" rel="noopener noreferrer" class="dont-break-out custom-text-link" href="https://x.com/tmbr_ss">Timber Schroff</a>’s definition from <em>Summer of Protocols</em>: protocols “enable repeatable behaviors at scale without central authority.”</p><p>That might sound abstract, but it’s what made the early internet magical.</p><p>When you send an email or visit a website, you’re using protocols like HTTP or SMTP, systems anyone can build on without asking permission. No company owns them. No platform decides what message you can send or what page you can view. That’s the power of open protocols.</p><p>Gmail is a good example. It’s built on SMTP, an open protocol, which means you can leave at any time, take your email and messages with you, and everything will still work. Because Gmail has to compete with other email clients, it can’t lock you in, and as a result, it’s free, works well, and doesn’t show ads in most places. The open protocol keeps them honest.</p><p>For a while, it worked. Anyone could launch a website, share a video, or publish a blog. It was chaotic, creative, and deeply human.</p><p>Yes, you can still do those things today. But back then, it wasn’t filtered through an algorithm. You didn’t need a platform’s blessing, or worry that your reach would be throttled, your content demonetized, or your account banned without recourse. What you posted showed up in RSS feeds, blog sites, forums. Discovery was messy, but it was real.</p><p>In 2006, <em>Time</em> named "You" the Person of the Year, because for the first time, regular people were in control of the content, the platforms, and the culture.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/984b1af010e6ff6a3511aff9b2d6ee30.png" blurdataurl="data:image/png;base64,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" nextheight="1674" nextwidth="1256" class="image-node embed"><figcaption htmlattributes="[object Object]" class=""> </figcaption></figure><p>That moment did not last, but it gave us a glimpse of what an open internet could be.</p><p>Ethereum didn’t get the same head start the internet did. The early internet was funded by governments, supported by universities, and eventually adopted by industry. Ethereum had none of that. It grew under pressure. It had to fight to survive, not just in the market but in the face of legal uncertainty and regulators who didn’t even understand what it was.</p><p>Despite being fully open source, with live calls anyone can join and a protocol anyone in the world can verify from home, Ethereum was met with skepticism and resistance. </p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/012559b4fb4959e0e27026fdca2b6240.png" blurdataurl="data:image/png;base64,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" nextheight="1366" nextwidth="2084" class="image-node embed"><figcaption htmlattributes="[object Object]" class="">Ethereum's AllCoreDevs Call, an open developer call where core protocol changes are discussed</figcaption></figure><p>Imagine if everything Apple built was open source and every strategic decision was made in public. That level of transparency is almost unthinkable. And yet that’s how Ethereum operates.</p><p><strong>It starts with fixing finance.</strong></p><p>What the internet did to information, Ethereum will do for finance.</p><p>Before the internet, your access to knowledge depended almost entirely on where you were born. If you didn’t live near a good library, weren’t in a strong school district, or didn’t have a shot at a top university, you were at a massive disadvantage.</p><p>The internet changed that. Borders started to matter less. Anyone with a connection could learn, explore, and teach themselves almost anything. </p><p>Finance is still waiting for that kind of update.</p><p>Traditional finance is closed, outdated, and tilted against the average user.  Markets are only open during banker hours. Core infrastructure runs on code written decades ago. The rules are opaque, which allows insiders to exploit the system while regular people are left in the dark.</p><p>Entire regions are excluded.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/44e9325a5e55b6486b4b72557300154a.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAOCAIAAADBvonlAAAACXBIWXMAAAsTAAALEwEAmpwYAAADSklEQVR4nK1Ub0gTYRx+C/xWjYnEVGRK1BYi/WGJ2LjGcI4lSohIVN8EP0h+iMFIcVl2XbOmmAimoyWJIqMxmfNwrC7pGB0bY22szdmYYnHeWMZ5YRfX4YWbf2b1Icjn08PzPu/7vL/f7+UFgiDwGWSJcNAAyeSSxfJ8ZOSZzfayr+9JPL54sEmAZX/QNE1RKYpKpdNplmV3A3Iq29zdkBV5fnOH7Dlz/btXBL8F5lp3Nwj7a/pT37+6d/pWAE2v47g3FArHYgsE4ceweYLwh8MRklxFUU8k8oHjOJpmGOYbz/MbG98Jwk+Sqyz7g+f5ZHIpHv/I8/zy8koikQiFwsFgSBAElmWdztlsM4DDMQMAkMnOFRefaG/XgwxEokKrdRwAUFJySiwu0mjqpaVyjaYOx70AHAMAFBSUVFZCEkmZ/PRZk6n/8CGxSFRYX99UXHzS7X519IhEpdJtV5BOf8Hxdz5fAMPmg8EQirrt9mmXa255ecXhmEFRz+SkzecLuFxzKOqmqFQwGHI6Z1HU43TOBgIBk6mfIPweD4bj3mRyiSD8kUh0eNgSjca2AxiGuXcPmZiYMpn6cdzb3HwjGAwlEomBgaG1ta8Wy5jV+iIajSGI2WZzjI1NQFBtJBLFsHmnc9bhmHG7X8diCwhiNhp7+voGm5quMwyTOxUQDkfy8vKlpXJpqVyl0hUUlCiVNUNDTyWSssHBYa22oaLiwvnz1Xl5+QrFxYGBIQBAVdUlAEB5uUIkKqyuVsNwL4KYxeIilUqnVNasrX3dF0DT68nkUjr9hSRXSXJVEASG+ZYZ49aIyIxIUSmO4zYyoKhUPL4Iw712+zRFpQKB9zS9jmFvs/5Pnz5nyd4r8vkCdXVNEFQrk51RKmsaG69ptQ3Hj0vV6ssQpIEgjdF4X1oqV6sv63RXqqouqVS627fvNDZeVSguymTntNqG0VGrRFLW2nrTYOgSiQqNxh5BEDiO2xtyZ+fd0VErDPcaDF1tbbdg+BEM9+r1HS0tbQhidrnmTKb+7u4HU1N2vb4DQR4ThB9BzAaDcXx8srPzLkH4vV6iu/uBwWDs6Xno8bzZ16L/+AX+CVsBHPeT53luBzl8S89Frph1/hW5Ab8AMkML0SovY+8AAAAASUVORK5CYII=" nextheight="462" nextwidth="1044" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.unescwa.org/news/escwa-warns-nearly-65-adults-arab-region-still-unbanked-amid-sdg-push">https://www.unescwa.org/news/escwa-warns-nearly-65-adults-arab-region-still-unbanked-amid-sdg-push</a></p><p>Entire groups are systematically overcharged, steered into worse products, or excluded altogether.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/c23e994319bdae1648a015588775cbcd.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAAgCAIAAABsC5RsAAAACXBIWXMAABYlAAAWJQFJUiTwAAAFVElEQVR4nLWV4WvaaBzHvZ6nhKBgWWFvSikNI/gi7EWvBCwi4SJdCCIUSyCE4ERyIUiQHAkBCRJESl6EgCJIkVJEpAyRK0EkjCGllFHwhS/GkOIdeKP0xf6EG3fMrLZru9523H1ehIcnyS+/PN/v8308Ho/nB+/333k+snCF5wqfz+f1et3x/NZ85ot0Ks9zz5/tH7QPDvZlWa7X65eXl6PRqN/v27b9/v17x3Ha7fb+/v7bt2/L5fLl5aVt2+12+8OHD9vb2/d845efic0foZ/izyiKwnE8FoupqprP53meh2GYpmlJknK5HIZhqqrGYjGKolRVFQTBMIzV1VW3/etyS0tLf/7112+///Frt9vr9c7Pz6fTabfbtW374uJiNBoVi8Xb7zwMAABbW/FkMsmybCwWS16RSqUSiQRFUevr616v1+/3+3w+9+q9wufzfcOX/j3BYNAwjHQ6LQhCIpHgeZ6bQRCEIAgsyy4vL0ej0UKhIMvy7u6urusAAMyl93q9t+zhCYVCg8Fgb2/Psixd13meLxQKrVarVqs1m03TNEmSTKVS1Wq1VCqpqlqpVAKBwEM9+v1+t8FUKpXNZhVFkSQpm81qmjYej2u1WqfTMQwjn8/LsnxycmLbdnmGoiiiKBqGoaqqLMtu4x8BQdCVhSCIeDyOYRjDMIIg4DhOEISrTywWSyQSLMtiGIai6NraGgzDEAStrKzAMLy2toYgCAiC1xVrtZppmpqmiaKYTqd5nq/Varqu0zTN83ypVEqlUoZhNBqNeDz+VU5a+BzXE7fW21XAvd4sevdJz8LCQiAQAADAP+O6+dmmDgaDjx49CgaDAAAsfBnPLfdMJpPhcPj69WvTNI9m9Hq9WCwmiqLjOIZhXFxcVCoVz1cCgqCmael0muO47e1tnufPzs4sy0qlUjs7OyzLRiIRwzAEQYAgCIbhlZWV1dVVaMby8jIEQQiCBIPBz9yjKArP85lMRpIkQRBs267X661Wq1wuq6parVYdxzk5OSmVSrqua5qWy+V2d3c1TXO3QLVaRRDkenFBEGQYRlVVjuMymQzHcW532Ww2Ho+7atwr5hf/2u/3kyRJzVhfXycIIhKJbG1tkSQZjUZd386jYZ4ODynzv0AQhKZpJElGIhEURaPR6ObmJk3T0WgURVEEQR4/fowgSCaTSSaToihCEDR36D1hAYJgq9Vqt9uO4zSbzfF47DhOsVhsNpuHh4e2bXMct7i4iOP4q1evTNMcDocYhj102gQCAUVR0ul0IpEoFoutVsuyLHdTHhwclMvlly9f9nq94+NjURT7/b5hGC9evJAkiabpfr//5s2b4+Pjer1uWZbf7/9Y0efzuZm4sbFBUZQoigzDUBRFEATHcdFoVNd1RVFyuVw4HCYIAkVRDMPC4TAEQSiKJpNJd7k2NjY+dR0MBkej0WQyGY/Hg8Hg7OxM1/VCoSBJEs/zbsTiOP7NgoIgGAqF3JhwLXJzMD9e5vNz39wce+4yz5Wb0XJvB3fLLcyfXFxcHA6H0+lUUZROp9OdYdt2o9HodruNRuP09FQQhKdPnx4eHna73el0aprmQ9smEAhIkpTP51mWzWQymqa5Wu/t7UmSJMuyaZqKoqAoyjBMtVo1DIPjOARBnjx5guM4iqIQBIXDYQzDlpaWPlYEAECcIcuypmmSJFmW9e7du/Pz80qlout6p9Pp9Xr5fD6dTp+eng4Gg6OjI9fC/X5/OBy6kk4mE5IkP2lC03QkEtnZ2aFpOpFIwDAcCoVcK/yjxK6Yn00BAJDL5UiSZBjGzR4cx90kv5sIt6S4X5n/nL8BdrRADAU7LfMAAAAASUVORK5CYII=" nextheight="1420" nextwidth="1200" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>People’s savings are trapped in systems they don’t understand or trust, while their wealth is quietly inflated away.</p><p>The result is a world where opportunity is unevenly distributed and trust in institutions keeps eroding. Ethereum gives us the chance to rebuild financial infrastructure from scratch and make it accessible, transparent, and fair.</p><p>Borders are imaginary lines, yet they determine so much of your life. </p><p>The internet made knowledge free and open. </p><p>Ethereum is doing the same for value. </p><p>Everyone should be free to learn, earn, and build no matter where they’re born.</p><p>That alone would be massive. Making the financial system neutral, accessible, and global is not some small improvement. It would shift power, unlock opportunity, and improve the lives of millions.</p><p>But that is only the beginning.</p><p>We are going through a digital version of the industrial revolution. </p><p>The original industrial revolution brought undeniable progress, but also caused harm we didn’t fully understand at the time, child labor, dangerous working conditions, environmental damage. It took decades to respond and adapt. Eventually, we introduced cleaner energy, labor protections, and safer factories.</p><p>The internet brought global access to information, but it also created systems that exploit attention. Social apps are designed to keep us on them as long as possible. They don’t aim to make us angry, they just show us whatever keeps us engaged the longest. It turns out that outrage, anxiety, and conflict are especially effective at doing that.</p><p>The result is rising depression, shrinking attention spans, and collapsing intimacy. These aren’t random outcomes. They’re the byproduct of systems optimized for engagement, not well-being.</p><p>We finally have the foundations for an open social ecosystem. Protocols like <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://farcaster.xyz/">Farcaster</a> are creating a world where identity is portable, where anyone can build a client, and where platforms compete to serve users instead of extract from them.</p><p>The network effects of Twitter are massive. Replacing it will not happen overnight. But open systems have one key advantage: they force apps to compete on user experience, not control.</p><p>There’s no central company that can shut down a better product just because it becomes too popular. Take Reddit, for example. Apollo was a third-party app that many people preferred over the official one. It had a cleaner design, better features, and a more thoughtful user experience. But Reddit made it impossible to operate by raising API prices, effectively killing it.</p><p>If Reddit were a protocol instead of a platform, Apollo could have kept growing. That’s what open systems make possible. When users are free to choose, and developers are free to build, the best experiences rise to the top.</p><p>And it is not just Twitter or Reddit.</p><p>It is Facebook and Instagram deciding who sees what and shaping our social lives through engagement algorithms.<br> It is YouTube controlling discovery and demonetizing creators without warning.<br> It is TikTok optimizing for addiction instead of well-being.<br> It is LinkedIn gatekeeping professional identity and reach.<br> It is Spotify owning the relationship between artists and their fans.<br> It is Amazon and Apple taking a cut of every purchase and locking developers into closed ecosystems.<br> It is Tinder putting your dating life behind a paywall and optimizing for swipes, not connection.<br> It is every platform that locks you in, extracts from you, and makes you play by their rules.</p><p>It’s time to replace those systems with something more open, fair, and humane.</p><p>That list isn't meant to be complete. It's meant to show what reimagining the internet to be more free and open can unlock.</p><p>This change might take a decade or longer, but it’s a fight worth fighting for.</p><p>And it doesn’t mean everything needs to be built entirely on Ethereum. Most apps in the future will likely use Ethereum for a small part, such as transferring value (money, financial assets, digital items, etc.) or verifying identity, while relying on other tools to complete the stack.</p><p>Zero knowledge for privacy. Decentralized storage for permanence. Peer-to-peer protocols for messaging. Ethereum is just one part of a growing toolkit for building open, user-owned systems.</p><p>So let’s go back to the conversation that inspired this post.</p><p>The story I just told is beautiful, but none of this will happen on its own.</p><p>We need developers. We need storytellers.<br>We need educators, designers, organizers, researchers, philosophers.<br>We need people who care.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/fe390348931bb458577f807bb49bc01b.png" blurdataurl="data:image/png;base64,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" nextheight="508" nextwidth="710" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>One of the best things about this space is that you don’t need permission. You can just start doing things.</p><p>You're not too late. Ethereum needs people like you, believers.</p><p>If you ever feel lost or unsure how you fit in, message me. I’d love to talk.</p>]]></content:encoded>
            <author>chaskin@newsletter.paragraph.com (Jason Chaskin)</author>
        </item>
        <item>
            <title><![CDATA[The Time to Build a Better Social Network for Ethereum Is Now]]></title>
            <link>https://paragraph.com/@chaskin/the-time-to-build-a-better-social-network-for-ethereum-is-now</link>
            <guid>ms0nIIQT0bo09JkmtdSa</guid>
            <pubDate>Tue, 11 Feb 2025 18:07:18 GMT</pubDate>
            <description><![CDATA[Crypto Twitter distorts Ethereum’s priorities, rewarding outrage over progress. This post lays out a better way forward]]></description>
            <content:encoded><![CDATA[<p><em>Special thanks to </em><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://warpcast.com/ted"><em>Ted</em></a><em> for feedback and review, and to </em><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://kiwinews.xyz/"><em>Kiwi</em></a><em> for hosting the Farcaster writing contest. It gave me the push I needed to finally write this post, which has been on my mind for months.</em></p><p>Ethereum is at a turning point. Scaling is happening, and we have real challenges to solve. But instead of accelerating progress, our biggest communication platform is holding us back. We are designing mechanisms for Ethereum from first principles, so why are we still relying on a social media model built to amplify outrage? The algorithm does not show us reality. It manufactures conflict, rewards division, and wastes our energy on distractions. It doesn't have to be this way. We know how to build better systems. The time to build is now.</p><p>Before we talk about building something better, let’s take a step back and look at the problem. Social media platforms are engineered to maximize engagement, and an unfortunate quirk about human nature is that <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://youtu.be/dNrTrx42DGQ?si=Gd_Kx5Uv4odX9u-1&amp;t=7051"><u>outrage drives engagement</u></a>. I polled my friends in group chats, and the vote was unanimous. All 17 agreed that social media is bad for mental health. No debate, just “common knowledge”.&nbsp;</p><figure float="none" width="100%" data-type="figure" class="img-center" style="max-width: 100%;"><img src="https://storage.googleapis.com/papyrus_images/26bf75e5711d42c82e474fec89d00e8a.jpg" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAUCAIAAABj86gYAAAACXBIWXMAACE4AAAhOAFFljFgAAACmUlEQVR4nM3UT0jbUBgA8K/PF4OMtA48WAoeCkUc3rwUAt2MQUouRWgMgiEwKd1pEoqHUCSUzhB6WFYoPUzZxUNKWGnJQeihxQ22gjcLlh5KkYkHLx69yYapq/9aWdHDfofAy/vyve977xGA/4TLeSY55pXXCwAIoduz94Z9IIQIgsAYEw6MMUIIOwiCQAiRo6MA8Nv+8iujAADGI91IkiR7kb2vuhnuLHB/PICPevGSJB6psv/E9PT0xcWFaZqSJFkOTdO2t7cvLy8rlcr5+bllWfF4vFat6h+Nbz9/1Gq13d1dy7Js2y4Wi8fHx6enp+l0ulwup1KpRqORzWZPTk5omv5bl89nWVYul9M0rd1um45IJJLNZnVdN00zkUiIolgoFLStrUwmUyqVYrGYqqqGYRQKBV3X9/b2VFXd2dlRFKVcLtu2Xa/X/X7/wDYDgUCxWJRlmabp9fV1WZYTiUQymdzY2DAMI+0QRVFRlP39/Xw+r2laIBB4bJd6R0QQV1s8NTVVrVbPzs5WV1cPDg5ardbh4WGlUmk0Gp1OR1GUZrPZcRwdHdXrdVVVJyYmenl61wT+EUVRbrebJMnx8XGPxzM2NkY6hkjxSE8AEA6H19bWJEniOC4ajbIsy/P84uIiSZK3wwZCjqHWRoPjMR7pzg6RE901dE0zMzM0TXs8noe5+up28BCAawS5Pn96/+4tC+AKBoPXRczOzsqy7PP5huurD5cL4Hvtq/5BBoCVlZWrdxzHhUKhubm5UCjEPhnDLMwzC6/fzDMMEwwGWZYFSZKWlpai0aggCPxzEIRlQVjmeT4SifA8f9WE1+ulKAqeFcZ4cnLyehCLxTY3N+/9eJ8CANxutyiKNz/pp51tfzc5+1/GZ/IHhcIGpVbALewAAAAASUVORK5CYII=" nextheight="735" nextwidth="1179" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/0929ca5c7ec70674c7b64ccd92de4029.jpg" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAUCAIAAABj86gYAAAACXBIWXMAACE4AAAhOAFFljFgAAACmklEQVR4nM2UT2jacBTHn7/+0uAg2kFhDqH0UgKjNy9CIKyplM6LFNKJEBEPxcEOEkrpRERKVok7LBM8DPSm0JAhOimCB6WMUaG3CpUeJAykhx567U02TDr7T8ukPexzSHh57/d97/1++T2A/wSL8Yy/WXr18gUAIIRueu+YI0AIEQSBMSYMMMYIIWxAEARCiJyeBoDf33O/0h8AAOMpM5IkyWHkcJWpcCvBXXsMTurZc5J4oMrRDpqmLy8v9/b2QqGQZpBKpXK5XL/fr9frFxcXqqpGIpFmsyF/Vn4eHjabzUKhoGlatVotlUq6rp+dnUmSVC6Xd3Z22u12JpPp9XoMw/yty+nUNC2bzUqS1O12VVUtFos+ny+TyciyXCwWRVEMBoODxLu7n9Lpcrm8sbGRSCQURVFVVZblWq2WTCbz+fz29nalUtnf32+1WvPz82PbXFhYKJVKoigyDBONRkVR3NzcjMfjW1tbiqJIBsFgMBaLHRwcZLPZVCpF0/RDuzQ8IoIYbPHc3Fyj0Tg/PxcE4ejo6PT0tN1u1+v14+NjXddjsVin0+l2u7qun5yctFqtZDI5Ozs71Bn+JvCPUBRls9lIkpyZmbHb7VarlTSYQOKBngBgdXU1HA6HQiGv18vzPMdx6+vrKysrJEneDBsLMpgoNxofj/GU6Z1AE91m4ppommYYxm6339caidnBfQAsCFm+fnn/LrwEYHG73VdFLC4uiqLodDon62sEFgvAj+Y3+WMUAHieH3zzer0sy7pcLpZlPY+G45aXuGWWfc1xnNvt9ng8IAiCz+fjeT4QCPifhrfma21tze/3D5pwOBwURcGTgjF2OBxXhjlY7gzexwAANptNEITrIf24sx3NtebwNj4t5n38A1vdBs1er8/xAAAAAElFTkSuQmCC" nextheight="734" nextwidth="1179" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>This isn’t a coincidence. Platforms are designed this way. Social media companies do not care about your well-being. They care about engagement, because engagement prints money. Even the people who built these platforms know how harmful they are. <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.oii.ox.ac.uk/news-events/coverage/how-mark-zuckerberg-lets-his-toddlers-use-their-screen-time/"><u>Mark Zuckerberg</u></a> and <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://telegrafi.com/en/miliarderi-teknologjise-peter-thiel-thote-se-ai-u-lejon-femijeve-te-tij-vetem-15-ore-ne-jave-te-qendrojne-para-ekranit/"><u>Peter Thiel</u></a> both limit their kids’ screen time because they understand exactly how addictive these systems are.</p><p>It was not always like this. Early social media was simple. You followed people, and posts appeared in reverse chronological order. No engagement farming. No algorithm. But once these platforms scaled and needed a business model, everything changed. The more time users spent on the platform, the more money they made. Keeping you engaged was not just a feature, it was the entire product. This is where the algorithmic feed came in.&nbsp;</p><p>When Elon Musk <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://github.com/twitter/the-algorithm"><u>open-sourced Twitter’s algorithm</u></a>, it confirmed what many had suspected. The feed is designed to predict what will keep you on the platform the longest. And the thing that holds people’s attention more than anything else is outrage. Once you understand this, everything makes sense. Outrage gets engagement. Engagement gets reach. Reach gets influence. The fastest way to grow a following is to be as inflammatory as possible.</p><p>On Crypto Twitter, the loudest voices dominate, not because they have the best ideas, but because outrage gets engagement. The easiest way to be heard is to attack someone, not contribute meaningful ideas. Instead of focusing on real problems, the conversation is shaped by whatever generates the most conflict.</p><div class="relative header-and-anchor"><h3 id="h-ethereums-progress-is-being-slowed-by-this"><strong>Ethereum’s Progress Is Being Slowed by This.</strong></h3></div><p>This actively harms Ethereum. Instead of accelerating progress, it slows us down. Time and energy that should go toward solving critical problems is wasted on performative debates and engagement-driven infighting. Instead of meaningful discussions, we get engagement wars. Instead of collaboration, we get tribalism.</p><p>Look at what almost everyone in Ethereum agrees on. We need to fix L2 interoperability UX. We need to scale blobs for L2s. These are not controversial points, they are shared priorities across app developers, rollup teams, core devs, and users. But instead of conversations focused on how to solve these problems, social media amplifies dunking on the latest controversy of the day.</p><p>I made a poll on Farcaster asking if people think the Ethereum community is divided, and 60% said yes. That number is already high, but if I ran the same poll on Twitter, I am sure it would be much worse. But when you strip away the engagement farming and look at actual discussions, most people in Ethereum agree on key issues. The fights that dominate Twitter are not representative of reality. They are just what the algorithm chooses to show us.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/a55a21ec936fc7ca771f30bc5853ed8a.png" blurdataurl="data:image/png;base64,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" nextheight="372" nextwidth="571" class="image-node embed"><figcaption htmlattributes="[object Object]" class=""><br></figcaption></figure><p>And it is not just social status. Outrage farming is financially rewarded. The easiest way to raise your profile is to grow your Twitter following by being an asshole. That leads to podcast appearances, better deal flow, and a payday at a new job. <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://yaps.kaito.ai/"><u>Kaito</u></a> has taken it even further, explicitly rewarding engagement with yaps that will almost certainly become tokens. The entire system has evolved to reward the worst possible behavior. The downstream effects are everywhere.&nbsp;</p><p>This is not just Ethereum, it is happening across every major online community. When a network reaches a certain scale and has different perspectives clashing, the algorithm does not just show you what is happening.&nbsp;</p><p>But what if it didn’t have to be this way? What if we built platforms that prioritized consensus instead of conflict?</p><p>This is not just a hypothetical. At Devcon, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.youtube.com/watch?v=n3R4ze2hesk"><u>Audrey Tang gave a keynote</u></a> and in it she talked about <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://pol.is/home"><u>Polis, an open-source platform</u></a> that Taiwan has successfully used to enable constructive public discussions. Unlike traditional social media, Polis does not have a reply button. Instead of users competing to deliver the most viral dunk or escalate arguments, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.youtube.com/watch?v=ROKH-oZ4Igo"><u>Polis allows people to vote agree or disagree on statements. There is no incentive to start a fight because there is no mechanism to reward one</u></a>. Replies do not scale, they create endless threads of back-and-forth arguing that go nowhere.</p><p>A real-world example of Polis in action came during a heated debate about whether speakers from a Chinese company should be allowed to present at a JavaScript conference in Taiwan. The discussion escalated into a 200-comment flame war, with two major groups emerging. One side argued that inviting the speakers did not imply endorsement of their country’s politics, while the other saw their inclusion as problematic. To shift the conversation away from endless back-and-forth arguing, someone introduced Polis. Instead of continuing the debate through replies, participants could only vote agree, disagree, or pass on statements.&nbsp;</p><p>Polis quickly revealed two distinct groups forming. As shown in the images, the group on the left largely supported inviting the speakers, believing that technology sharing should not be conflated with political endorsement. The group on the right, however, disagreed, seeing the invitation as potentially legitimizing the company’s ties to the Chinese government. The first image captures one of the more divisive statements: “Invite speakers for technology sharing does not mean recognition of enterprise culture or products,” which received strong agreement from Group 2 while the opposing group largely rejected it.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/347d3a1e11c29b7bec41709315a56944.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAbCAIAAACSpRrNAAAACXBIWXMAAAsTAAALEwEAmpwYAAADyUlEQVR4nK2WT2gbRxTGh9JS8KW5JpdCwNTQq+m9hUIhPeXQnnopPfZY2hpMLwFTB0SKrdQ0qv80Rg1SIqtExiSCbrKmQmspcVbelcdeyZKy8iqW5bVX8mo10mgzYWdiRZUtWQ7+TqPVzvzee997wwJyFtmE2M3mAAAffjDAfp4qQAhBCBFCLn58GQCQ3lEJIRjjbgBcr70PHNWtGukTYJqms6KaWwgQQhrdAM0mIeTF81xWSVm1Wrc4OgFOXLhZ2N35K+BHqHHqHoseXUfINE2EEMbYfmn3AjDt7Za0/DbLprcQFVvXUb2O6iyzDrH8XgN+GP9l2n87l81lMtlTARjj/YN9th81cWQrsaZuWlWrvWItpAN4IHDMgEOrupGEplnth2HTI54sc7/edIXu37MOD61azTRNhsG4oa7LdhM7gL3ywSdXPrv6zbe6rkfkp0om3e1cm9b6oFr59Ksrc0EvISSTlBbck//d89tNdi42DIMQcv2nHwEAH126+MaDqlGZXfT9fOPaDd+fVu3kFmzQ6BYiD1jG1I96RddrVcc5fCRCyNxvLgDAF59/6byEMWam3br/99jk9YnAtLqd71Ef1MRff/+dy32LEFIpVxBtpw7VETosO6m8ycAZCKu68iwmb6ynU2mGxEe+tYJot6E95OMmNahP/wPYtAUzmQyEsFB40W2kbVqZU6eMdQE47iFCaFNRUqm0qubZHBFChoaGWNHPqpP3YIxlWQYAvPPue6/fo2Lz2s8N0Qtw1MgYADBw4RJ7qOt6Tt22zyuDFgm3mdxhbJ959Asg9ELsO+7+AEyGYYTD4dHRUQghz/Mul2tmZmZqasrr9eq6fg4AXddDodD4+LiiKOFweGRkxOVyjY2Nud3utwScqcTn4EG7UJvwSToB0PqDLQzDeEIlimLH3fAWcnq91YKqqi4tLWmaNjE58YfH43a7eZ6HVJIkxeIxCGE0EhUEQRRFFgFbSJIUoZIkid3V7QIcxzGvNE3jeb60VwoEAn6f30vl8/mCweDs7KzH4wkGg6Io8jxPT19lgNVnqxBCjuMEQYAQMgCLWNM0QRDA4OCgKIqtp1bVevj4XxrmanJ9PSknVTUXja2IosjicD6NnMhe9q4MISQSiQwPD4Nisdh+MydUCK5evvlwXlDE3xfno5viYvxxfEu+s7z4aE248yj0VJGXpZV5LjgdvutZ8t/m/pEzG8enkg2QYRidXbRvlq/ddcs5qO0Vt4r5TS2r7mrPd7S17IaUgbwUz5cK+VIhkYVcIhpTEvGUdFAp98jmFcqoQ4be5d0WAAAAAElFTkSuQmCC" nextheight="618" nextwidth="720" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/f2e9e87dcb21e028af9ad8c24017b81c.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAcCAIAAACPoCp1AAAACXBIWXMAAAsTAAALEwEAmpwYAAAD9ElEQVR4nK1Wz08bRxidS1X1kFOP/Rs4p39BVKWoUpEcceCQQ8mh4mSpikScxBKqW4c48cGBICdscbVR6Y8EKjetnBQBjWNabGTHCXbAXgxZYy/J4MFee2c9u0y1O2QxjsGm5Z28s7PvfW++b98a0IPQ6VEghFBKR3+c4B7w1uXRAAapplFKxWw2eC9A6e5hW3Vjp67qOjChakTXdL0TAVmWjV8m7t0eoZSqGLfW0AzCr9xXP+s7j7Hatvw9AWzSnfvkDADg8cyTtt4xxoQQ2URHApTuYqwSonVyppTScqXCqDHGsiyrWNV39aMFDIivxGg0JklSWwFilm9dlqplVCk3FUeIJssyIWRPAABwzmZDCCWTyXo7H8QUYFVnJfFu6Kfg0my5UpZlmZ12swNByJoNfq9cqWRWMxButxXAGDOBh0vzw97h70O/IMXwJMsyQohSmkg/BwBMP/ptz4EgrM3OR1bS6QezD8N/P2XT0pKaUipJEgDg7KdnKaU1FaefxXK5jLWnptQopRecdqPmD4AhQAjRNU3ViO/q5cFLF28OXtwqFI8QgPANAODUhx+xktl0MFtv245X17OfXzj/++N50PhkIhK5ddkx9d1dQVh7l5o09EaWqyW0IzegpijkIPZ70Agxl3u5YgBCyOadtvLRyUDjuro/RQwsMwrFYiqVEgSh8RZCCMI3+zvbpZaFZgcsizY3C5nVTFdX15iZHFaQWA46I28tsPf8662tRtKPT58GACh1cgICFgXHccM3b3fOdQyBlsCHROx/F8BYNUOQIIQEQWgcSvbGdiLZ3oEkSX6/32azLSws8Dzf3d3d39/f19c3MDCwsbFxAgKEEAghc4AQyufz0lsc28GxxuP/julJAVjvPeukJEmBQGB8fJzneQihFQxNIfPuopV3jfUZUWE9IwgCz/OSJHEcd8PjsdvtLpfL4/EMDQ1NTk7e8ft9Ph/HcU6nMxqNTk9NOUy4XK5QKDQ6Ourz+Twej9vt5nnjH41VBOjp6YlGoyx4IYTbCPn8/pGxsX8WFy9duTLocHzrvnbt+vWvXd94vV673R4OhymldeOjVq0pSp2QOiE1RWGzy+KaVRyPx3t7e4HD4UilUlbSyaXtG19+EZubya28jP01u5bJrCQT2dSL5fiSmFtbXV4uimJRfJUXsoX1HCxuvs6LsLhZWBd07cDJUEpTqZTT6dxvMhPYSL84c+r9p9P3n0Uiv94ZSUbCsbk/E+H50A98bObRH/xE9nki/mRucSYUnPD/POK9P3YrGOCCgXEVK4c2uWmpUirpmvGRUrGqmk0jpK5irFSrlZ0d40hUY13XSKVUUqpVdqtlehNC/gV71Zhvh8ec+AAAAABJRU5ErkJggg==" nextheight="621" nextwidth="720" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>Amid the division, one comment gained broad support from both sides: “I think JSDC organizers have the freedom to organize the agenda.”&nbsp;</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/56aab78d8fe02bf807a4c1089c5d0da8.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAbCAIAAACSpRrNAAAACXBIWXMAAAsTAAALEwEAmpwYAAADWklEQVR4nKWWz0/UQBTH58hB45FEQzygJuvFs8Z/wJuJRyQxMdGLBzVe8CAHAuJvcfGAxoDBiJoQfoiYDRmoWqRCjQV3IdkKjTayharj0t2d1tnyTDu7zSKwXeF7amde3uf9mk4R/I9cxgDg+Jm6M1fOAwDzX8sLBXYdPV0nzp50y3hf9TZ/2Vnky87nvcVKAJZleU++esdiAOBsEhrz19tfdDbeuOXYf0LDLwC4u0tNDQiheU0Pzd2xHcaY5Su0Sh7AXXXdPM91tZKg0ivpXC4HAJRSy7I4rxwAALRF3SS/LCuTXlkJBTA//OA19Xs5ZRqOba+1yXtsxjzA2+kPCKF9Rw4BACHE+eNUAnD9nk+q01c7oz3iK5L+bVkWpXSDDEY/igihnXv28qwdOwQAAJqmUepVKfZJjHa0PxnpS+cyfF4IIQAwOBZDCDW0NhZK9H3JoNReMPTOkRdjMxNlYgeAeDyOENp/4AAA5Bxb+/rF+GEENjyJ05fP8bEsnAM+SDefdTTfu3H/ZXd6JV0GsGQYCKGDhw7zkBljvNu8RJZlZTNZ48fy7a6H6hetkAHXgqEPx/qTiwvr588pBhGQKLWpr2wms770a3pQKu6at5FSuuH8cYPNPJbG5P4DcP0zEWTKvbj+1tPXo4+HcajT8AyK6VNCCELo4sULBTtfGQ+5Wkn4IQAA0HU9mAIAOFZ3Cu3aXTTIbwsQMCYmJoZjeH31A20dsCGSbj4qWwQE46T5opTKshyLxXBR/NBuHcClaVo0Gm1tbTVNs76+vqqqqra2tqamJhKJyLIc+m3fuMmlJWYln36rRISQSooWkgEL62Roz1Gwxx8IIYIgiKKoKMrWuloqxu8DLlVVh4aGUqnU9WvX2+7ebWlukSRpfHxcEASpKLGoeDyuKArfEkVRkiSMsa571+0/QgMDA3wYNE3DGGdz2dH3b5OqKknSzOcZjLEoirIsJxIJRVEmp6Y4SVVVWZYxxrIsc1IpIDiqGGNUXV09NzcXXP1vEh/Q0R1NPe13+jsbu9vezU51C4MPXj/vGu17NNK7RH5W8qvCAYIgRCIRZJomrzVjzM27y+Tnrb6HycWFaTUx+y353TSU+YSgSIlvSWU+kc1l3bU9K9NkPmlek8MC2pb+AlFRUcU6rytGAAAAAElFTkSuQmCC" nextheight="603" nextwidth="720" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>This consensus did not erase the disagreement, but it provided a shared foundation of mutual respect. Instead of fueling more conflict, Polis surfaced a point of alignment that allowed for a more constructive discussion. For those interested in the full story of how Taiwan used Polis for public deliberation, Colin Megill wrote a detailed blog post about it <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://blog.pol.is/pol-is-in-taiwan-da7570d372b5"><u>here</u></a>.</p><p>You have probably already seen a version of Polis in action already. Twitter’s Community Notes is powered by a system inspired by Polis. Instead of relying on simple upvotes or majority rule, it uses machine learning to find patterns in voting data and highlight statements supported by people who normally hold opposing viewpoints. This ensures that the notes shown are not just popular but actually bridge different perspectives. I am not going to go deep into the math here, but Vitalik wrote about it in his blog post <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://vitalik.eth.limo/general/2023/08/16/communitynotes.html"><u>What do I think about Community Notes</u></a>.</p><p>We already see glimpses of how different incentives can shape discourse. Take <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://x.com/ethcast_"><u>ETH Holders</u></a>, a Twitter account where anyone with at least 2 ETH can post anonymously using ZK proofs. Side note, I think it is an extremely cool real-world application of ZK. What is most striking about the account is the tone of the posts. The majority of them are positive about Ethereum. In a world where the Twitter algorithm only rewards negativity, people have to be anonymous just to express positive sentiment about the ecosystem. That is the kind of distortion we are dealing with.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/f6dfbd9489b4ad4686268de2f0a03a61.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAARCAIAAAAzPjmrAAAACXBIWXMAAAsTAAALEwEAmpwYAAADWUlEQVR4nK2Ty4scRRzHq6p7pt/z7vdjZqd7dqane7a7t3d3Hj2PnVkzkGRZ4ypkWXbxYIzsQTEKPi6Sg4//QARXcvAghmhAlBAhIIoHwYM3IcGLh5CbCXjVke0xwdmYFdx8+FHUr+pXv2/Vr6pAveFH/VGz3VlcaS+Eq95yf2llpd0dtKLVVjQ4hvWj3nBhcRnUvbAdRV7z9NKpd1++eG1r75Og9+ricq8d9R+TQGPBbY2tjf3Bc1/8em/y/ud3/M0rwfiiHzZb0aDZ6f9va3dXG8ESsF3bGb2ir1/+8Oqtu39Ovvxhsv3aN9bJj53mRm847A7WHraoP+2ciNvR/ZEH7onuYBT113rD8eJKB/AC3xy9ub137buf/rj87eSdS7+999HPzY39+fopTVe1oqkV5w6ZXiprxTlRUnSjpGqGapR0o6RoulGcUzVDklVZ0WRZ1UumrGgAAOC3dp998evPvvrlx5uTT2/8/vrbN06e+SCTKwEAIIRgFgzHcTwBEWa7bpIkeUGkWZaiGUlWAISCIFqViqppmq4nCAJCBBAEDFc4vbV/4a3vb9+bXLl+9+z56160F2dHcBYAAMulUukMzXLDtScohtWNYi4v8II4X6shLGFa1nA47PYGa+NxJptDCAMYhgMA0ll1afXCS29c3X3hku2dTSRJ8AggRBAhAGF8ukMbgOjBVBx2EIIQwjDsYGI2DYCzIw9xqHpT55+af8cwLLu+vr69s7O5+czuzs65589vPf2kd+Zc0n8qXoHAMTgQSBJE2TStSsU0LatS0Q1DU5WMoEAqfZzUU+ISYRhFUTTNUDQ9vY/HCIQQEARRrdZcz/ODwHHcWs1uttqu5zmNhh8ErttwHKfd6YRhWDZN3w+cRsNxXNd1wzDMZrP/+pRnBBCGJZJJlqFYmqJJgqFIjiIogsBxHMNwhBCO4zRNMwxDxdAMQ9M0SZIEQRx+Go86QblchqqLxCqSqlCqI6mKJHuuMl+37Wq16vt+iuOO3ulRAjiOZ7OZREqEKRFyPEpLKC1Djk/nxawgZQpiTpQpmoHxH8Zi0H2m7n+UCMPwFMvikoUkG/EmVBykB0iqQakOZQfKLlQ9mBJTHCdKcr4giKKUyxfyeZ4XhHyhICsKSVJHCPwFRCbE7howojMAAAAASUVORK5CYII=" nextheight="328" nextwidth="606" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>The question is not whether better models exist. They do. Polis is open-source, live in production, and already proving that social media does not have to be built on conflict.</p><p>We know the problem. We know the solution. The only thing left is to build.&nbsp;</p><p>In an ideal world, we could just build a better Twitter client. That would let us keep the network effects without being trapped by an algorithm designed to manipulate us. But Elon made that impossible by locking down Twitter’s APIs. So where do we build instead? There is already a protocol with an open API, Ethereum-native users, and the freedom to experiment. It starts with an F… yup, you guessed it, friend.tech.&nbsp;</p><p>The solution is not as simple as using Farcaster. Warpcast does not solve the algorithm problem. Its ranking system is closed source, and it is likely no better than Twitter’s at surfacing meaningful discussions. But the beauty of decentralized social media is that we are not locked into one client. We can build our own.</p><p>This new client would function as an Ethereum-focused Farcaster client, pulling in posts from the Ethereum channel across all clients, including Warpcast. However, instead of displaying posts in a traditional feed with replies and retweets, every discussion would be structured into voteable statements. Users could post directly to the Ethereum channel within this client, but rather than engaging in back-and-forth debates, they would only be able to vote agree, disagree, or pass on each statement. Polis would then analyze the voting patterns to surface consensus, filtering out noise and highlighting areas of alignment and disagreement across different groups.</p><p>To ensure meaningful discussions, the client would automatically pull in key debates from Ethereum Magicians and ETH Research, transforming long technical threads into clear, structured statements that the community could vote on. Governance proposals, EIPs, and protocol updates would also be included, allowing the broader Ethereum ecosystem to signal their views without being drowned out by engagement-driven controversy. Instead of amplifying the loudest voices, this client would provide a way to see what Ethereum researchers, developers, and users actually think about important topics.</p><p><strong>This would be the foundation. No viral dunking. No incentivized fighting. Just a way to see what the Ethereum community really thinks.</strong></p><p>I don’t think Crypto Twitter is going to disappear anytime soon, but a platform like this could serve as a necessary check on it. Right now, when Twitter is blowing up about something, there is no way to tell if it is a real issue or just another outrage cycle fueled by the algorithm. Imagine being able to open a different platform and immediately see what people across the ecosystem consider an actual priority, from app developers to ETH whales to core developers to investors. This would provide a real sense of what matters instead of letting Twitter dictate the narrative.</p><p>A common pushback when anything Farcaster-related is brought up is that Farcaster is bad for Ethereum. Some argue that it is an echo chamber with a small audience or that it fragments the Ethereum community. But the real problem is not Farcaster, it is Twitter. As I have laid out in this post, Twitter’s algorithm is designed to manufacture division, reward performative engagement, and slow Ethereum’s progress. Leaving Twitter is not about moving to an echo chamber. It is about leaving an engagement-maximizing system that incentivizes dunking over surfacing real priorities.</p><p>If a strong, widely-held disagreement exists on a topic, Polis will surface it clearly. If people from different backgrounds all reject an idea, that becomes obvious without the noise of engagement farming. This is a better way to capture the real sentiment of the Ethereum community. It does not eliminate criticism. It makes it measurable.</p><p>To illustrate how Polis makes sentiment measurable, consider the ongoing debate about raising the Ethereum gas limit. Key positions could be distilled into voteable statements such as:&nbsp;</p><ul><li><p>Ethereum should gradually raise the gas limit as hardware improves.</p></li><li><p>Increasing the gas limit too soon risks harming decentralization by making it harder to run a full node.&nbsp;</p></li><li><p>Raising the gas limit should only happen after extensive benchmarking on network health and validator costs.</p></li></ul><p>Instead of scrolling through endless Twitter arguments, the Ethereum community would have a clear, structured way to signal their views. If 80% of validators, 65% of researchers, and 75% of ETH holders aligned on one statement, that would provide a measurable signal of consensus. Conversely, if a statement was overwhelmingly rejected across all groups, it would reveal a lack of broad support, without requiring anyone to sift through toxic engagement-driven debates.</p><p>One of the biggest distortions in Crypto Twitter is the illusion that the loudest voices represent the majority opinion. In reality, these voices are just the ones most incentivized to engage. The minority that thrives on outrage and performative dunking dominates the discourse, while the silent majority, who are more thoughtful, pragmatic, or simply uninterested in engagement farming, stays quiet. This creates a feedback loop where the loudest, most aggressive voices claim to speak for the entire community, even when they do not.</p><p>We can see a parallel in how online discussions typically unfold. In a Polis experiment analyzing online alcohol sales in Taiwan, 447 people participated by voting on statements, yet only 32 of them actually commented. That means the people who spoke up represented less than ten percent of the participants. The rest just voted. If participation had only been measured by who was commenting, it would have given a completely skewed picture of what the broader public actually thought. Instead, because Polis allowed silent participants to register their views, the government could see a more accurate reflection of public opinion.</p><p>This is why Ethereum needs a different model for discourse. A system where engagement is not dictated by how well someone can farm outrage, but instead by how well their ideas resonate with the broader community. A platform that rewards clarity over conflict. A place where people who do not want to waste their time arguing can still contribute by voting and shaping the conversation in a meaningful way.</p><p>To make this even more transparent, we could include a public dashboard showing real-time participation statistics. This would allow anyone to see how many people are voting versus commenting, helping filter out distortions and ensuring that the broader community’s views are accurately represented.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/3fa0785f8b0b5798e03c24aa738920a0.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAIAAAAUMWhjAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFcElEQVR4nH1Vz4sktxUuvLFjCCH44p1hyRISX3ywe6Znpnc2GTvkFHIIBHyxWWPsQHzxP+GLc1ywvSQH40suIQMLC7Ngm2Aw5Bj2kCHMurunpqd7urolVelHSVVSlaQqBalmdqbXwY+PxyuV0Cd97z0piqJnomtr0bPrK7i2Hj1//emRZy/w3Jr/+/x3gws8t+bn/+B65G39lejuOLr3BMfRvdiPfBTiT4+jT7sg9v4vx9Hd4+ijk+jP/xdxQAg+mUYf/jv64Y3oRz/v3zlA732J3v8q/dM/sz9+4f07X6a/3Qd3DtBbB+jOQ3TnAL3xAPr4AP3+PnxtH/zmvsfr+2BvH7x2gV/f9/jV35ev74PfPYB7nz+OXvhp1NvcVrLAWZohABZzsEisNc61jHJGOckwznBOc6uNFDLNckbLHGOMEMVZkbPW6CIvCOZFznOcMZI2RntYOx5Prq/fjHobO5xzxhhCqJTS2qZp29Y5QorlAh4dHU0mk/l87pxTSoE0z6iM4/jRo0dHR0cAAOccZQVAHFM+HA2Hw2HOuRCibduj4eTFtZvRqxs7LBgAoCxL55xrvcNEMCYYo8bYtm2ttUpV0BMUlDGMsZTSOWetzblEmcgy2u2GEIoxtrZ5PDrtCAaUUoSQUspdsQxzzpXWVslaiLIsJWMFzHhKhFK1rk0pFeeFEAUmHGacMqlUXZZSyrosa6nqb4eT62s3o97moKoqSj0tIYQxFtZvCS0gSEej4XQ6tdYaY6RUMOMZLU/iyclJzFjejXfEmPCTOF4uF23baK2btn08ChJ1BIwxQgjGmFJ6SQA9wXA45Jw756pKdwRxHB8eHiZJEia2PA8SYTIajeI4TpKkU+/bLge9jR0aDEJ4sfq5REIorWullJSlriohCgBZ6pMPTienAMCq0rrShHKAOEzZcDgcj8ZJknS5vCRI05QQAhEKybFtSDMmgpAi5yoXlgvLlaEyQFSMFZzLnEvKCsYLwkrCSsoEBBBjXFW6LGVV6eEFwYBSLz0J+oQS7aqIV5W1RlbloebjcnpSzmI5GWlOmlBUfitt0wTfIQjW+rRo45wbj0MV9TYGKE2XMD2bJ0KIrvLatsGEq8pYqyo5rvlpuZjJxbRIJjWnTeusbS7gVuFHjAkEx4EgutmPPp9Hf0uiz+bRvZnHX8+ij6f3/0OcM6qqtDkX7RxtY2xtrTS6MJobTY0mT0FreUnwk19svf8F/OAr8O5D8OYBevsheudh+ocH8Jsxca2BCAnBu4MHWF2lRi109WQtarQITOIJtK4vCTY2txmBOUZkOWFw5lrjXONcQwivteE8L8sydLKxtjGmrqvkQoqrEq1otSLRq71tiFCyBFJV2rRS1bKqVWUyzGezM0KwEEVHYKytVGI0Dwk23wNj9CVBb2PAuSCUlmVprX3SB4QW4+NjgrNwAr8vL05Fwh6N/V5bOUFvY5CJerFcJvN5V0VdpRIiEEopJcITi1rBWs2MqcNJzIr/Dt9TBDuMUQBAmqZXT4CJ0NoSSoWAjSW2Na1rVspppbS8hUyc2wqBqioueCdRN7Vt2wz7PhBCoOV/iwzxDOVwyVOYQ1BkIE8Xwvul/5UuC4KklOFSkcH5q+Lysus0uWjhKycwljGKQAKSsxQuk+lphkAyPSVZmpzNSIaW8xnBaJGcEZIuFgmlGCKAMYLQP0TH8fT8wWl8l4dtd29NuCSxF1/qSmtttG9+o7WptdUePg4In8aP1GHE96U2uSg/+9fZP74+vHHjZ1H0zI93BnuDW3s7t7zvgp1be/3tX/a3bm9u7fb7u/2tXR90vu/95tbt7vNKsNvfut3v725t3X75lcELL22vv9SLomv/A/wTK1ecIzJqAAAAAElFTkSuQmCC" nextheight="541" nextwidth="720" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>Ethereum has always been where ideas become reality. We saw it with prediction markets, quadratic funding, and decentralized social media itself. Now we have the chance to build something even bigger. A platform that aligns Ethereum’s builders, researchers, and users on what actually matters. A system that accelerates progress instead of fueling division. This is not a thought experiment. It is something we can build right now. If we get this right, Ethereum will not only be the most decentralized and secure network but also the most productive ecosystem in crypto.</p><p><strong>If you are a software developer and want to help bring this to life, reach out. If you are not a developer but want to contribute in other ways, let’s make this happen together.</strong></p>]]></content:encoded>
            <author>chaskin@newsletter.paragraph.com (Jason Chaskin)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/edd32d1e7482b93e8a437f6f6f03c9f9.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Why Is Everyone in Ethereum Talking About TEEs?]]></title>
            <link>https://paragraph.com/@chaskin/why-is-everyone-in-ethereum-talking-about-tees</link>
            <guid>iHwJDzTndcfY2msYrGNh</guid>
            <pubDate>Mon, 10 Feb 2025 13:55:49 GMT</pubDate>
            <description><![CDATA[TEEs are emerging as a tool in Ethereum’s infrastructure, enhancing privacy, security, and decentralization across MEV, rollups, and bridges. This piece explores how Flashbots, Scroll, and Taiko are leveraging TEEs to shift MEV dynamics, enable rollup innovation, and improve bridge security.]]></description>
            <content:encoded><![CDATA[<p>If you haven’t been closely following Ethereum research, it might seem like Trusted Execution Environments (TEEs) appeared out of nowhere. But on the infrastructure side, they’ve been in development for over two years. Flashbots first proposed TEEs in December 2022 to democratize MEV access and improve censorship resistance in <a target="_blank" rel="nofollow ugc noopener" class="dont-break-out" href="https://writings.flashbots.net/the-future-of-mev-is-suave"><u>The Future of MEV is SUAVE</u></a>. After years of research, they launched <a target="_blank" rel="nofollow ugc noopener" class="dont-break-out" href="https://buildernet.org/blog/introducing-buildernet"><u>BuilderNet</u></a> to put that vision into practice. While researching TEEs for MEV, Flashbots saw their broader potential in Ethereum, leading to <a target="_blank" rel="nofollow ugc noopener" class="dont-break-out" href="https://writings.flashbots.net/introducing-rollup-boost"><u>Rollup-Boost</u></a>, a TEE-powered sidecar that enables rollups to innovate on their VMs while maintaining compatibility with existing frameworks. Other L2 teams are also integrating TEEs. Taiko uses them as a primary proof in its bridge, while Scroll is adding a TEE-based proof to its multi-prover system. The idea of using TEEs in bridge proof systems didn’t come out of nowhere either. The same month Flashbots published their post, Justin Drake explored TEEs as a “2FA” mechanism for rollups in an <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="http://ethresear.ch"><u>ethresear.ch</u></a><a target="_blank" rel="nofollow ugc noopener" class="dont-break-out" href="https://ethresear.ch/t/2fa-zk-rollups-using-sgx/14462"><u> post</u></a>. This piece will cover what TEEs are, how they work, and their growing role in Ethereum infrastructure.</p><p>TEEs provide secure, hardware-based computing by isolating code and data while allowing external verification of integrity. They evolved from earlier trust models that relied on operating systems and virtual machines for isolation. TEEs come in different forms: iPhone’s Secure Enclave handles cryptographic tasks, Intel SGX enables secure enclaves for applications handling sensitive data, and Intel TDX extends this model to protect entire virtual machines. While they provide stronger security guarantees than trusting a centralized operator, especially in cloud environments, they are closed-source and require trust in the manufacturer. This typically creates a 1-of-1 trust model, where a hardware compromise can break security, though the degree of trust required depends on the implementation. TEEs are also vulnerable to side-channel attacks, physical tampering, and supply chain risks, making careful evaluation essential for each use case.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/28853b019239a94c997c18e71abc2b3f.jpg" alt="" blurdataurl="data:image/png;base64,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" nextheight="1080" nextwidth="1110" class="image-node embed"><figcaption htmlattributes="[object Object]" class="">Mint my infographic on <a target="_blank" rel="nofollow ugc noopener" class="dont-break-out" href="https://highlight.xyz/mint/base:0x20Be0cAAC0B748e8037A3EB027ed7253c66586C9:1"><u>Highlight</u></a> :)</figcaption></figure><p>TEEs are not a perfect solution, but in the right cases, their benefits outweigh the risks, especially when failures default to the existing system. The push for secure hardware extends beyond crypto, with <a target="_blank" rel="nofollow ugc noopener" class="dont-break-out" href="https://openai.com/index/reimagining-secure-infrastructure-for-advanced-ai/"><u>OpenAI advocating for improved TEEs</u></a> and <a target="_blank" rel="nofollow ugc noopener" class="dont-break-out" href="https://security.apple.com/blog/private-cloud-compute/"><u>Apple developing a hardware-based private cloud</u></a>. Just as Ethereum works to reduce trust assumptions, Flashbots is doing the same for TEEs. They have published research on why this <a target="_blank" rel="nofollow ugc noopener" class="dont-break-out" href="https://writings.flashbots.net/ZTEE"><u>approach is worth exploring</u></a> and <a target="_blank" rel="nofollow ugc noopener" class="dont-break-out" href="https://writings.flashbots.net/ZTEE2-Supply-Chains"><u>how to build trustless supply chains</u></a>. If you are a hardware security expert, reach out to Flashbots to contribute.</p><p>MEV exists as a consequence of network design, where those who provide the service of adding new blocks, initially miners, were in a position to influence transaction order for profit. Left unchecked, this would lead to centralization, with validators that are dominant at extracting MEV gaining outsized influence. To prevent this, Flashbots set out to democratize MEV extraction.A key driver of MEV is that validators operating in low-latency environments can observe pending transactions and reorder them and/or add new transactions for profit. One way to limit MEV extraction is by making transaction details private. This requires a privacy tool, but zk-SNARKs and other cryptographic techniques, while promising, are too slow, inflexible for real-time block building, or not production-ready. With software solutions falling short, Flashbots turned to TEEs.</p><p>Flashbots first used <a target="_blank" rel="nofollow ugc noopener" class="dont-break-out" href="https://writings.flashbots.net/block-building-inside-sgx"><u>Intel’s SGX to build blocks in March 2023</u></a> and later expanded to both <a target="_blank" rel="nofollow ugc noopener" class="dont-break-out" href="https://collective.flashbots.net/t/first-blocks-built-inside-tdx/3386"><u>build</u></a> and <a target="_blank" rel="nofollow ugc noopener" class="dont-break-out" href="https://collective.flashbots.net/t/searching-in-tdx/3902"><u>search</u></a> in Intel’s TDX. TEEs bring privacy benefits by allowing orderflow to be selectively private. For example, a transaction can reveal that a user wants to swap USDC for ETH without disclosing their identity or trade size. This prevents sandwiching while still allowing backrunning arbitrage. TEEs enable verifiable block construction on private transactions, ensuring efficient block building without compromising user privacy.</p><p>PBS prevented validator centralization, but today, just <a target="_blank" rel="nofollow ugc noopener" class="dont-break-out" href="https://www.relayscan.io/overview?t=7d"><u>two builders produce 92% of Ethereum blocks</u></a>, reducing censorship resistance and liveness. To fix this, Flashbots launched <a target="_blank" rel="nofollow ugc noopener" class="dont-break-out" href="https://buildernet.org/blog/introducing-buildernet"><u>BuilderNet</u></a> in November 2024, with Beaverbuild, Flashbots, and Nethermind as the first participants. BuilderNet allows multiple operators to share orderflow and build blocks collectively, shifting MEV away from exclusive deals and making block building more open and decentralized.</p><p>Beaverbuild’s participation is particularly notable since they are currently the largest builder and have spent years sourcing exclusive orderflow deals. Their decision to join BuilderNet signals a shift away from private MEV agreements toward a more transparent and competitive market. While it may seem surprising that a dominant builder would give up its edge, the economics of exclusive orderflow are less lucrative than they appear. Providers often negotiate high refund percentages, keeping 90-95% of the MEV value, leaving builders with thin margins. Additionally, Beaverbuild’s team originally started as searchers, and running a builder was primarily a way to maximize their own orderflow. With BuilderNet’s transparent refund system, they no longer need to vertically integrate to extract value, allowing them to return to their strengths as searchers. Beyond financial incentives, they also see this as the right move for Ethereum’s long-term health, preferring to contribute to a positive-sum ecosystem rather than competing over exclusive orderflow deals.</p><p>However, as of today, Beaverbuild is still operating its centralized setup in parallel with BuilderNet, with all of its orderflow currently going to the former. This isn’t a departure from the plan but a staged transition.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/3f2da118e6ced0f54502a9a00accb335.png" alt="" blurdataurl="data:image/png;base64,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" nextheight="406" nextwidth="291" class="image-node embed"><figcaption htmlattributes="[object Object]" class="">Blocks built by Builder on January 20th, 2025</figcaption></figure><p>I asked <a target="_blank" rel="nofollow ugc noopener" class="dont-break-out" href="https://x.com/SheaKetsdever"><u>Shea Ketsdever</u></a> from Flashbots about this, and she said they are working closely with Beaverbuild to benchmark performance and run tests to ensure a smooth transition, with expectations for orderflow to shift over to BuilderNet in Q1 2025. Something to keep an eye on.</p><p>TEEs make this possible by ensuring MEV is redistributed transparently and allowing untrusted builders to collaborate without any one party gaining an advantage. Each operator runs an open-source builder inside a TEE, encrypting and fairly processing all orderflow. Unlike today’s fragmented system, BuilderNet ensures no builder has privileged access, making it trustless and verifiable.</p><p>This shifts MEV capture from private agreements to an open system where wallets, apps, and searchers receive fair refunds. Even searchers who typically keep orderflow private are incentivized to use BuilderNet for transparent payouts. Currently, a single operator submits the final block, similar to MEV-Boost relays, but future upgrades will allow multiple operators to collaborate on block construction, making MEV extraction more decentralized and equitable.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/87f54f6776e6e52703374bce9fe0460e.jpg" alt="Roadmap" title="Roadmap" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAASCAIAAAC1qksFAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFJ0lEQVR4nH1VC0xTVxi+tKWFlhZ6b++jD+1LhEKcjmKhOMeEymOAVrSlOIHFB84HRIEVNajgK+MlJBRIZYhRJ2riDOoMjgEFsWEghDKVRCe6Cok4F2NEjdP5L5dqZgws+XKS8+U/35fz/X/OQUSYTITJUFQqwmQ4LqdXbDaOyz0gCCVFqkhSRRAKklRRlPpDEISSJJUfkSSp9Gh6gFCUymg0r1hhTk5eaTKtnhs0H0WlFKUkSQVFKYVCMYst8OFiQlTqw0UZTC6TzWcwfb0YHMSLLRCQPD7OYPoy2Xwmi+vheXycIP7zQHBcnpi43LQq3Wg0x8QkoqgUx2Urkjd8k7V3/Vc7szP2ZJkL04y5anXYyuSNJdYG65aq3Xn2fdamsj2nIxcmGKJNxfkN+Zsrd+TUFG2z7y9sMkSnCQQkgSs8eSCeZN4HokBRKUEoiq2N9eVXjtuuXTp5+/IPd08f6f/SkHnC1j3aC3euwav78NoNMAnWLeWVxc3uAbj+87M/f4O3YwBPoaK4mcnyk4jVUmkgikppg4+A4/LS3c1n7AMn6npP1PUeq+npPDexLHH9mSN9T0ZgfBDGXfBoGOAxFOZU2g6df/47uPtpctwFMAEVe0+y2HzyfUrTGsjSjLnWLdW5G8q2Z5fnZZfvyq0NCYrc/HXJ6fpfvz/8S1NVR1N117kGV2y0Kc249VSt0152xV7aai9tba7rN6Vs4vFxHFfMaEBRKj9/gu0TwOEK2T4BCMsPYXJFmNSbE4AgLMSLPQVvBGEFCCkuD0UQJoJ4SDaCsHh8nCSVnrGc3kCEyeIWJWQlZ1gS0izx5jh9whc6g5hSaUMikz5LidXHx0TELYmIi4lcOksaqAn8NPnzZYlRSbH6+CU6gyEqYa76ExR7pz5TRHJn3cWX7XfA+RCcEzA0OXnlljF6+eWKU2+67j1vuw1DkzDyFnoerE3Jqi8of+0YfXhhCIZfwI1X8ADs31Z4cQIoUkkSihkMiNk3T3VD32O4NgbdY9D3FzyADanr+htaaWla6G96nYDd63Y0l9hh8OnL9lG4/oQm3dBUZEO8BRKxWiaZM/0UoZi078hP0Dvx1uF+03kfHPdh8FnS4qSO6rO0tHMCnI/g6jjc+mddSlZtXikMv6DLesag5yHceFmVe4DJEZJTEz/9DQhidqA6dEFw+Pwg7YLgcK1GNy9IK6ZUgarQME1EWLBOq9FpNRFaTaRUolbJNbp5UeEhkeGhkeGhet08vUoejOMfPBXTGOAKMaWUy+bIpGo/fwphYwwO5i+UcAUUl094c3EGh2YQNsb3l/D9xRwe7ssjWFwPiXIFlCf9/5uimq2bOsr291d/N1Jf5aopG22sidct2pFucVQccB4+eKuu0mUrcx+zrYqO3ZiyzFl16NK+ImfVAVdt+b1GW05qKptHErh8xohwXD5UXwltZ8HRAje6YKgD3APWdEvLvl3gOA99rXCzCwbbwT1wMHvt0YJtdFnrGRhoA1cH/DHQZM1D2JiEUkrEShSdNf0N7jbW0AccLTTaf4Sb3TmpqW2HisHVCZ1TZGcL3Ovbm5Vx3Lodhh3QcxGuXqArR3qOFmx7Z0ApMWwGA9OSpQVm83bTqnyTKd9kKrRYgtUhSVGLi9asLjCbrWnmQou5JHNNWPB8w0J9SWZGYbpl5+r0nelpxZkZsQv1ggAJ/v6PmT4iHz7J4IiYPrgHDA79H/gKKC82TTI4Ik+T/YUSnkDsRW9FDLqS7rOfv5iYeqg9Tf4XjnorE8tjqqEAAAAASUVORK5CYII=" nextheight="819" nextwidth="1456" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>For more on BuilderNet, Robert has discussed it on the <a target="_blank" rel="nofollow ugc noopener" class="dont-break-out" href="https://youtu.be/PLq-75nM3dE?si=sGTPVmrFyJ4nV8Qi&amp;t=4781"><u>Uncommon Core</u></a> and <a target="_blank" rel="nofollow ugc noopener" class="dont-break-out" href="https://www.youtube.com/watch?v=3Ybrk7_Uyj0&amp;list=PLz3vbkrzRoXR_XIWVqnZcX11REeC6acN2&amp;index=4"><u>Infinite Jungle</u></a> podcasts.</p><p>Flashbots is also using TEEs in <a target="_blank" rel="nofollow ugc noopener" class="dont-break-out" href="https://writings.flashbots.net/introducing-rollup-boost"><u>Rollup-Boost</u></a>, a sidecar system for L2 sequencers that enables faster confirmations, verifiable ordering, and more programmability. TEEs prevent sequencers from manipulating transactions while allowing private mempools and trustless execution. Since Rollup-Boost is a sidecar, rollups can retain their existing frameworks like the OP Stack or ZK Stack while adding new features. This solves a key issue in the rollup-centric roadmap, where most L2s have simply forked Geth and followed L1 upgrades instead of driving real innovation. Rollup-Boost enables experimentation without requiring rollups to maintain a separate client.</p><p>Uniswap’s upcoming L2, Unichain, will be the first to use Rollup-Boost, launching with Flashblocks and Verifiable Priority Ordering. Flashblocks enables 250ms confirmation times, native revert protection, and increased gas throughput, while Verifiable Priority Ordering allows applications to internalize their MEV. The sidecar processes transactions using extensions before returning finalized blocks to the sequencer for posting on Ethereum L1. Future extensions include Encrypted Mempool, TEE Validity Proofs, and TEE Coprocessing.</p><p>For more on Rollup-Boost, Robert has also discussed it on <a target="_blank" rel="nofollow ugc noopener" class="dont-break-out" href="https://www.youtube.com/watch?v=PLq-75nM3dE"><u>Uncommon Core</u></a> and a different episode of <a target="_blank" rel="nofollow ugc noopener" class="dont-break-out" href="https://www.youtube.com/watch?v=Ms74bgIuDlQ"><u>Infinite Jungle</u></a>.</p><p>TEEs are being integrated into L2 bridge proof systems to complement ZK proofs, which, while offering strong security, are complex and prone to bugs. Relying on a single prover increases the risk of catastrophic failure if an issue arises. To mitigate this, teams are exploring adding TEE-based proofs as an additional verification layer, reducing the likelihood of invalid states being finalized.</p><p>TEE and ZK proofs operate independently, ensuring redundancy. If one system encounters a bug or security flaw, the other can provide a fallback, preventing invalid state transitions from being finalized. In such cases, the security council can intervene before the issue escalates.</p><p>Scroll, in collaboration with Automata, has developed an <a target="_blank" rel="nofollow ugc noopener" class="dont-break-out" href="https://scroll.io/blog/scaling-security#next-steps"><u>open-source SGX-based TEE prover</u></a>, already used to validate testnet blocks. Scroll’s next steps include integrating the dual-proof system, implementing dispute resolution mechanisms, and forming a TEE prover committee. As part of this process, Scroll is exploring ways to further decentralize TEE attestation, similar to Ethereum’s Distributed Validator Technology, ensuring no single hardware manufacturer becomes a central point of trust.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/2e8c44eaf4c53607f72ead8f06f329ce.png" alt="multi-prover" title="multi-prover" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAUCAIAAABj86gYAAAACXBIWXMAAAsTAAALEwEAmpwYAAAEKUlEQVR4nK2Ue0xbZRTAz3/qX8bEbHEEDYRUFzKNM7ot+ErnGMiMUwyvjcdMtk4tKGzWOkQYLXQZe1ikAuLC0oLIltmNTbIHW5CAMCpRWOktt0C7tlgeLa/WS7n39h5z72WY8DBgdnLy5cu55zu/75z7nQO4DuEQkaEDbRdO5qVLi7MTNUeSFAfizqs/9Dm6OUQuFFp+BtYLoGYnbG116pzUuG2SjD3b98dvu2NQjw924sMA8ELPzdjaDXfqVA1nPtN9feBnnfK3n1Q+h+mhARCxq6PV1NVGBaZuXb/KzAeMF3+cGB/l2YKwLCuu/wdA0zRBEF6vFxGD8/O2wUFEZFnW4/HMzMwsui1GXx8gEAgQBCEGEq4ZJEkrIvb19Wk0GrVaXV9fr9VqDQZDdXV1e3u76LYqgEOOYRlRETmvd6K3t3dubo5/SCzLsCGKCloHSET0+aby879KTU1VKpXp6RkHZYc/kcvvmc1ClsyaMqD8wTG3d3m5BoUS0TRtNpu7u7st/f29ps5GfS1p7mNoetUSccJzdI3ZG1uqLtyuOmc8WVqjaGjR/drbLDo0mYjy5q6K5q6CWmNNS4/uxl2HdxoRHd7pxrtkeXNnfu2V726ZKpq7rpiIFQAMy8NTCl+BxwFeBngW4AWACIAomPV7R3x+iEqCJxMg7H3Y9B6vIN345feIGHWsBuANiM4CSRpszoCwRHhk56qABIUEngGIA9gBsEtYI2HC57KNTMLmdHgth9eXZBCTDZHJkFuBiI99XgkghR1yeOso7FZAZBp/bDXAobI4AIDnhQyiAcIAnoO/qenRST9syRQy2AtPvQvhifDoru1qAyJKNfXwRDxEpUB0JmzJgqc/gE3vrAAQX3HPn7+fqlRZR3pUZ5U3Oy83XP2h4bJe/Ef9rvG2fnsHcX9BB5yTfgoRJ/1Ux4Cz1WK/fW/o5h9kq9ne7xqH5aHFbvJ4PKLRbrcHAgFEnJ31WywWcb92gSXRp6amFrspOB9ERNugbXpmmuX4r8G5oNlsHh0be9ANC8qy/BTieGNoifIALsRxIf5put1uK2FdbHRxMzw0LN5a9GFZliRJp9O51gwYluGQ45Bz3He43E6hCRYCCT2MdvswRVFiYy9S3X+5XW6e8aDVVwecrj0tL8gu0hbmlx3T6r85qz9DuvgJY3Va5AVy3n4qX1NVqtIV65vOC3YiT5WrKD1apC0s/vZ4iU5dd00v3mllQEVDeczumNjE2K2vbo2IjlDrSqxOAhFJt3Xfx/vDJOGxibEbIzZI9+6s+8XAsPTw+FCSLDlMEv56wpuSFyUJKXtqLtWE8N/xuRRg7LiUU5idIkvOOf5piiy58qLONsKPMNsIWXbuxNup8V+cUGTlZh4pybthus5PUBdRVF6w76O0w0pZVm7mIcXBpnbjf1TpH6uOFqKaF6A2AAAAAElFTkSuQmCC" nextheight="385" nextwidth="601" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>Taiko uses a <a target="_blank" rel="nofollow ugc noopener" class="dont-break-out" href="https://docs.taiko.xyz/core-concepts/multi-proofs/"><u>tiered proof system</u></a>. Initially, TEEs provide fast validation by running a lightweight execution client that verifies state transitions and signs results with ECDSA for onchain validation. During a cooldown period, ZK proofs can challenge TEE proofs. To ensure correctness, provers must stake a bond, which is forfeited if their proof is invalid. While a centralized fallback exists for security in the early stages, Taiko plans to phase it out and transition fully to ZK-based verification.</p><p>TEE proofs enable this multi-proof system by providing an additional security layer while zkEVMs are still maturing. They offer a fast, cost-effective way to validate state transitions without fully relying on ZK proofs, ensuring that even if a ZK prover fails, the system maintains security and liveness.</p><p>TEEs are rapidly becoming a key part of Ethereum’s infrastructure, addressing security, privacy, and decentralization challenges across MEV, rollups, and bridges. As these systems mature, they could redefine Ethereum’s trust model while bridging the gap until cryptographic solutions fully scale.</p><p><em>Special thanks to </em><a target="_blank" rel="nofollow ugc noopener" class="dont-break-out" href="https://x.com/0xQuintus"><em><u>Quintus</u></em></a><em> for feedback and review</em></p>]]></content:encoded>
            <author>chaskin@newsletter.paragraph.com (Jason Chaskin)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/e46ac7ad9cf3d3ba3ed5f0d8ae4e6244.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Who Even Were the Cypherpunks?]]></title>
            <link>https://paragraph.com/@chaskin/who-even-were-the-cypherpunks</link>
            <guid>8UWZuLcuUmdeB5rYFKpr</guid>
            <pubDate>Mon, 06 Jan 2025 20:56:45 GMT</pubDate>
            <description><![CDATA[The cypherpunks were a group of hackers, cryptographers, and activists who built tools to defend privacy and freedom, shaping the foundation for Bitcoin and Ethereum. This post dives into their history, key innovations, and how their ethos lives on in today’s decentralized systems.]]></description>
            <content:encoded><![CDATA[<p>“Cypherpunks write code. We know that someone has to write software to defend privacy, and since we can't get privacy unless we all do, we're going to write it.”</p><p>- Eric Hughes, A Cypherpunk’s Manifesto</p><p>A couple of weeks ago, I started looking into cypherpunk stories using Ethereum. When I first heard the word “cypherpunk,” I thought of it as an adjective describing actions that use privacy to bypass government surveillance. For instance, one story that came to mind was from a couple of years ago when Vitalik said he used Tornado Cash (before it was added to the OFAC list) to <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://x.com/VitalikButerin/status/1556925602233569280"><u>donate to Ukraine after the Russian invasion in 2022</u></a> but didn’t want the Russian government to see the details of his donation.</p><p>I went to YouTube looking for more cypherpunk stories, and the algorithm gods blessed me with a talk <em>"</em><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.youtube.com/watch?v=4DtB96PlAtQ"><u>I read every single 1990s Cypherpunk email. Here's what you should know. | Devcon SEA</u></a><em>"</em> from Devcon by <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://x.com/portport255">Porter</a>. I’d been meaning to watch it but had forgotten about it until now. After watching, I realized I really didn’t know much about the cypherpunks. I had only a vague sense that they were deeply respected in the Ethereum community and had pushed for privacy through an email list, that was about it.</p><p>Porter’s talk sparked my curiosity, and since then, I’ve been learning about the cypherpunks. I watched the documentary <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.youtube.com/watch?v=9vM0oIEhMag"><u>Cypherpunks Write Code</u></a>, listened to the podcast <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://open.spotify.com/episode/0FUjAlm080haYXub7fRYfN?si=77d438ed0f5a4fdc&amp;nd=1&amp;dlsi=4538069b3dbb4ecb"><u>The Cypherpunks - How Hackers Prevented the Ministry of Truth</u></a>, and read the two most famous emails: <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://groups.csail.mit.edu/mac/classes/6.805/articles/crypto/cypherpunks/may-crypto-manifesto.html"><u>The Crypto Anarchist Manifesto</u></a> and <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.activism.net/cypherpunk/manifesto.html"><u>A Cypherpunk’s Manifesto</u></a>. Neither is long, and I highly recommend reading both.</p><p>Let me just say, holy shit. The cypherpunks left an incredible mark on society; they were fearless, visionary, and undeniably badass. The cypherpunks were a group of nerds driven by one simple motivation: they wanted the world to be freer. They weren’t building tools to get rich or for recognition—they were building because they believed freedom and privacy were fundamental rights. And they were willing to go to jail to defend those rights. </p><p>What made them truly badass was their unwavering confidence in what they were creating. They knew that what they were building was legal, ethical, and objectively good for the world. They trusted that if it ever came to a court battle, the law would side with them—and history proved them right. Cypherpunk Phil Zimmerman created encryption software, PGP, and it spread internationally, and the U.S. government accused him of illegally exporting “weapons,” this is privacy code, do you hear how crazy that sounds. Confident in their cause, cypherpunks rallied behind him, printing PGP’s code as books to prove it was protected speech under the First Amendment. The government eventually dropped the case, and courts later ruled that code is indeed free speech.</p><p>But beyond my personal admiration, it’s important to understand who they were and their impact on the world. Without them, there’s no Bitcoin; without Bitcoin, there’s no Ethereum. Therefore without the cypherpunks, I’d probably be writing about AI right now. But since you’re reading this, it’s clear you’re interested in Ethereum—so strap in for a bit of a history lesson.</p><p>The cypherpunk movement traces its roots back to the late 1970s, when the NSA tried to block MIT's public key cryptography research. They did everything they could to keep it out of the public’s hands, labeling it a "modern weapon" and threatening to personally go after anyone who spread it. But this didn’t stop 20-year-old cypherpunk Mark Miller from secretly copying the paper and distributing it nationwide. Aware of the risks, he told friends, "If I disappear, share this." In 1978, the U.S. government backed down, and encryption went public. The first battle for encryption had been won, but the larger war for privacy and freedom was just beginning.</p><p>Fast forward to 1991, when software developer Phil Zimmerman released PGP (Pretty Good Privacy), the first relatively user-friendly secret messaging system with strong encryption on the internet. His software spread overseas, and the U.S. government argued that Zimmerman’s actions were equivalent to exporting weapons, making it illegal without approval. They launched an investigation against him.</p><p>Zimmerman’s PGP incident was a wake-up call for the broader community of freedom advocates, inspiring a more organized response—enter the Cypherpunk mailing list. It became a hub for discussions on cryptography, privacy, digital cash, and the future of decentralized systems. At its peak, the list had only about 2,000 subscribers—an insanely small number considering the impact they had.</p><p>While their discussions on the mailing list were technical, they were always tied to a larger vision. The cypherpunks foresaw two potential futures for humanity: one with 1984-style tyrannical, top-down control and another where it enabled freedom. After witnessing repeated attempts by the U.S. government to suppress cryptography, they realized they had to act. They knew they needed to build and deploy tools that couldn’t be shut down. Without these efforts, governments could wield technology that authoritarian regimes like the Nazis or Soviets could have only dreamed of. As Eric Hughes put it, “Since we can't get privacy unless we all do, we're going to write it.”</p><p>“With the internet and personal computing we can build networks with many interconnecting nodes that would be basically unstoppable.”</p><p>- Timothy C. May</p><p>The cypherpunks embraced a technology-driven view of historical change. They believed that meaningful progress doesn’t come from lobbying or electing the right people—it comes from technological innovation and adoption. If you want the future to unfold a certain way, you have to build it yourself.</p><p>“Our code is free for all to use, worldwide. We don't much care if you don't approve of the software we write. We know that software can't be destroyed and that a widely dispersed system can't be shut down.”</p><p>- Eric Hughes, A Cypherpunk’s Manifesto</p><p>The cypherpunks were a group of hackers, cryptographers, scientists, mathematicians, philosophers, and activists united by a shared vision: creating a future that maximized human freedom.</p><p>They recognized that the internet could break down borders, removing barriers for people worldwide. Just as the fall of the Berlin Wall allowed people in East Germany to immediately gain freedoms like speech, press, travel, and the ability to keep the value they create, the internet offered similar possibilities on a global scale. The cypherpunks envisioned two major freedoms the internet could enable: the first was the freedom to have private communication, and the second, which I’ll discuss later.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/a91a39e60ba0f154bd273cc1fc4a8724.png" blurdataurl="data:image/png;base64,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" nextheight="1024" nextwidth="1024" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>Most of the emails on the cypherpunk mailing list were highly technical, focused on building cryptographic tools. Here are some of the key innovations they contributed to:</p><ul><li><p>1993 – Mixmaster Remailers: Anonymous email systems enabling untraceable communication.</p></li></ul><ul><li><p>1995 – Tor (The Onion Router): Anonymous internet browsing, inspired by cypherpunk principles (later completed by others).</p></li></ul><ul><li><p>1995 – Cryptographic File System (CFS): An early prototype for encrypted file storage.</p></li><li><p>1997 – Hashcash: A proof-of-work system initially designed to combat email spam, later adapted for Bitcoin mining.</p></li></ul><p>While much of what the cypherpunks built didn’t achieve mainstream adoption (with Bitcoin being the big exception) their ethos sparked a broader movement for privacy-focused technology. Tools like VPNs, used by over 1.5 billion people globally in 2023 to secure internet connections and bypass censorship, and the Signal protocol, which powers WhatsApp’s end-to-end encryption for its more than 2.7 billion monthly active users, reflect the cypherpunk vision of empowering individuals to protect their data. Even Apple’s privacy features, such as App Tracking Transparency and on-device data processing, are used by hundreds of millions of iPhone users daily. These technologies have become indispensable, enabling private communication, secure browsing, and greater control over personal information on a massive scale.</p><p>The cypherpunks knew their innovations weren’t just disrupting technology, they were challenging the power structures that depended on centralized control. This duality meant their work wasn’t confined to coding; they also fought legal and social battles to defend their vision of freedom. The cypherpunk community was divided on whether their cryptographic tools would lead to greater individual freedom, free trade, and the spread of democracy or to the complete dissolution of governments. But regardless of the outcome, they were united in their mission to create tools that empowered freedom, put them in people’s hands, and let the future unfold from there. Governments, recognizing the disruptive potential of these technologies, often resorted to fear-mongering, invoking the actions of bad actors to justify their control.</p><p>As Timothy C. May put it:</p><p>"Child pornographers, terrorists, money launderers—take your pick. These are the people who will be invoked as the bringers of death and destruction. And well, it’s true. But all technologies have had bad effects. Telephones allow extortion, death threats, bomb threats, kidnapping cases. Uncontrolled publishing of books could allow satanic books to appear."</p><p>May’s words captured the cypherpunk perspective: while bad actors could exploit any technology, the tools themselves were neutral. The same systems governments feared could also protect individual freedom and privacy. Yet, governments often weaponized these edge cases to sway public opinion against encryption and privacy tools.</p><p>Despite this opposition, the cypherpunks persevered. They risked jail time to ensure their work remained accessible. Discussions on the mailing list also went into the legality of their efforts and even debated whether they should send a letter to the White House to explain their intentions. Time and again, they stood firm against central governments, defending their vision of a freer, more private future. Notable legal and social battles include:</p><ul><li><p>1990s - Crypherpunks Support Zimmerman: The cypherpunks rallied to defend Zimmerman by highlighting the parallels between encryption software and protected forms of speech. They printed the PGP source code, bound it into books, and distributed it to European bookstores. The government realized it would lose a court battle to suppress a university-published book and dropped the investigation in 1996.</p></li></ul><ul><li><p>1993 – Electronic Frontier Foundation (EFF): John Gilmore co-founded the EFF to advocate for digital privacy and free speech, supporting many of the early encryption battles.</p></li></ul><ul><li><p>1995 – "Government Secrecy and Technology" Lawsuit: The cypherpunks backed Bernstein v. United States, where Daniel Bernstein sued for the right to publish encryption software as free speech. This landmark case established code as a form of protected speech under the First Amendment. People even got tattoos of encryption algorithms as a tongue-in-cheek protest, asking, “Can I travel to another country now?”</p></li><li><p>1997 – "Crypto Wars" Advocacy: The cypherpunks played a critical role in opposing the U.S. government’s Clipper Chip initiative, which aimed to mandate encryption backdoors.</p></li></ul><p>Let’s revisit the second freedom the cypherpunks were working to unlock.</p><p>“We the Cypherpunks are dedicated to building anonymous systems. We are defending our privacy with cryptography, with anonymous mail forwarding systems, with digital signatures, and with electronic money.”</p><p>- Eric Hughes, A Cypherpunk's Manifesto</p><p>Notice the mention of electronic money? The cypherpunks aimed to enable the freedom to send value across borders, increasing economic freedom globally. Their holy grail was to achieve this privately, constructing a borderless world where individual activities and assets were resistant to government control and confiscation.</p><p>“Tim [May], me, and many others considered electronic cash to be the holy grail because it completed the picture. A private and decentralized monetary system was, many argued, a key component in constructing a new borderless world.”</p><p>- Adam Back</p><p>Despite many failed attempts and the cypherpunk mailing list cooling down, the movement was reborn in 2008 when a pseudonymous creator unveiled none other than Bitcoin. While Bitcoin marked the culmination of the cypherpunks' dream of digital “cash,” the principles they championed didn’t stop there. Many of their ideas: scalable peer-to-peer electronic cash ;), pseudonymity, advanced cryptography, privacy, and maximizing more freedoms like access to financial services—have found new life in the Ethereum ecosystem.</p><p>“The technology for this revolution--and it surely will be both a social and economic revolution--has existed in theory for the past decade. The methods are based upon public-key encryption, zero-knowledge interactive proof systems, and various software protocols for interaction, authentication, and verification.”</p><p>- Timothy C. May, The Crypto Anarchist Manifesto</p><p>It’s incredible to think that they were discussing zero-knowledge proofs back in the 1990s. I think they’d be proud to see them not only brought to life but actively shaping the Ethereum ecosystem today.</p><p>Understanding who the cypherpunks were has deepened my appreciation for their impact. Their work laid the foundation for so much of what we see in Ethereum today, making me wonder—what would they be building if they were here now? That’s a question for another time, but I’d love to hear your thoughts on how their ethos lives on in Ethereum today. For now, I’m simply grateful that this group of nerds fought for what they believed in. I hope to carry their flame forward.</p><p>“Our dream was to enable the future of human freedom, and we had this bizarre confidence about how the future would unfold and, to use Alan Kay’s famous phrase, to have a huge hand in inventing it.”</p><p>- Mark Miller</p><p></p>]]></content:encoded>
            <author>chaskin@newsletter.paragraph.com (Jason Chaskin)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/f16941ce9e56a5ddb4af2fefacf69f47.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Supporting Self-Builders with Distributed Block Building]]></title>
            <link>https://paragraph.com/@chaskin/supporting-self-builders-with-distributed-block-building</link>
            <guid>JoH9iQIKoGsJkeI3NbFE</guid>
            <pubDate>Fri, 01 Nov 2024 03:18:07 GMT</pubDate>
            <description><![CDATA[The purpose of this post is to provide an update on the progress in addressing how to scale the network’s data availability processing capacity while enabling solo staking validators to continue to self-build and distribute blocks as the network scales. ]]></description>
            <content:encoded><![CDATA[<div class="relative header-and-anchor"><h3 id="h-the-purpose-of-this-post-is-to-provide-an-update-on-the-progress-in-addressing-how-to-scale-the-networks-data-availability-processing-capacity-while-enabling-solo-staking-validators-to-continue-to-self-build-and-distribute-blocks-as-the-network-scales"><strong>The purpose of this post is to provide an update on the progress in addressing how to scale the network’s data availability processing capacity while enabling solo staking validators to continue to self-build and distribute blocks as the network scales.&nbsp;</strong></h3></div><div class="relative header-and-anchor"><h3 id="h-this-process-must-be-achievable-without-requiring-these-validators-to-rely-on-excessive-bandwidth-or-computational-resources-the-solution-known-as-distributed-block-building-is-in-active-design-and-this-post-details-the-current-thinking-and-the-path-forward"><strong>This process must be achievable without requiring these validators to rely on excessive bandwidth or computational resources. The solution, known as distributed block building, is in active design, and this post details the current thinking and the path forward.</strong></h3></div><p>This post will cover the current state with Proto-Danksharding, introduce PeerDAS, discuss the importance and challenges of solo stakers, review recent distributed block building proposals and their trade-offs, and outline next steps in the design process.</p><div class="relative header-and-anchor"><h3 id="h-current-state-of-proto-danksharding"><strong>Current State of Proto-Danksharding</strong></h3></div><p>Proto-Danksharding introduced a new resource to the Ethereum protocol called "blobs." These blobs are raw data that every node temporarily stores for around 18 days. Each blob is 125 KB, and they are priced independently from other EVM transactions. Due to their temporary nature and separate pricing market, L2s saw a dramatic reduction in data posting costs, with average transaction fees dropping from around $0.50 to roughly $0.006 per transaction, representing an &gt;80x reduction.</p><p>Currently, the protocol aims to include three blobs per block, with a maximum of six. However, the protocol has an ambitious goal: scaling the data layer to accommodate up to 256 blobs per block. To reach this target, the data layer will need to be sharded, meaning not every node will need to download all of the data.</p><div class="relative header-and-anchor"><h3 id="h-peerdas"><strong>PeerDAS</strong></h3></div><p>The plan, called Peer Data Availability Sampling (PeerDAS), for scaling Ethereum’s data layer involves gradually increasing the number of blobs per block. In this plan, nodes subscribe to smaller portions of each blob, called subnets, allowing them to verify data availability collectively by the end of each slot.</p><p>I’m going to provide an oversimplified explanation of how this process works. For more technical details, please refer to either this post, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://ethresear.ch/t/from-4844-to-danksharding-a-path-to-scaling-ethereum-da/18046"><em><u>From 4844 to Danksharding: A Path to Scaling Ethereum DA</u></em></a>, or watch this presentation, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.youtube.com/watch?v=WOdpO1tH_Us"><em><u>PeerDAS in Pectra and Beyond</u></em></a>, both by Francesco D'Amato.</p><p>When a node is selected to propose a block (including the attached blobs), it will first need to extend each blob using erasure coding, doubling the size of each blob. The advantage of this extension is that the original blob can now be reconstructed as long as 50% of the data is available. This means nodes only need to confirm that at least half of the blob is available to be sure the entire blob is available.</p><p>Next, the blobs are stacked on top of each other (just picorally), in order to form columns that represent individual subnets. Each subnet (i.e., column) is significantly smaller than a full blob, which makes them lighter for nodes to handle.&nbsp;</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/a2667a81910db0697d60effc5b9598fc.png" blurdataurl="data:image/png;base64,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" nextheight="496" nextwidth="868" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>In the current PeerDAS specification, full nodes will need to subscribe to at least 8 out of a total of 128 subnets. Staking nodes are required to participate in at least 8 subnets, or if higher, 1 per validator. Nodes with at least 128 validators (&gt;= 4096 ETH) are considered "supernodes" and must download all subnets, meaning they are not sampling but instead fully downloading the data.</p><p>PeerDAS offers significant scalability improvements over proto-danksharding, with an 8x increase in consensus layer bandwidth. The expected blob count under PeerDAS is 24-48 blobs per block, which amounts to approximately 6 MB of data. Nodes subscribing to subnets only handle 1/16 of the total data, which includes the extended part, or about 1/8 of the original data. This progress puts us roughly 5x away from the original scalability goal - exciting progress!</p><p>After a proposer extends the blobs, will also create cryptographic proofs (KZG) that prove each blob was extended correctly, then it distributes the subnets and proofs across the network, initiating the data propagation process. <strong>If the proposer is using MEV-Boost, the builder will handle this process (extension, proof generation, and initial distribution) on their behalf.</strong></p><p>After the distribution phase, PeerDAS enters two subsequent phases: the sampling phase and the reconstruction phase. During the sampling phase, nodes either receive data or don't, and they record their response ("yes" or "no") as part of the protocol (this is a massive oversimplification). The final reconstruction phase is used when nodes disagree on whether the data was available. In this phase, nodes attempt to reconstruct the data to reach consensus on its availability.</p><p>The specifics of these two phases are beyond the scope of this post, as our focus here is primarily on the distribution stage of the data because that is where low resourced self buildings face the most challenges.</p><div class="relative header-and-anchor"><h3 id="h-lets-not-leave-behind-self-builders"><strong>Let’s Not Leave Behind Self Builders</strong></h3></div><p>It is crucial that low resource staking nodes that choose to not use MEV-Boost, around 10% of the network, are still able to fulfill their duties during the distribution phase (extend the blobs, generate the proofs, distribute the subnets). This is essential for maintaining the censorship resistance of the network. Ethereum's unique ability to support solo staking and allow solo stakers to act as self-builders, contributes significantly to the decentralized nature of the network. This level of censorship resistance is unimaginable for other networks that lack solo staking, and it's something we cannot afford to compromise on.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/b6ad1c5bbe3c12b00210649a80d25c7b.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAOCAIAAADBvonlAAAACXBIWXMAABYlAAAWJQFJUiTwAAAEZUlEQVR4nFVUe0xTVxz+/Mc/Nt3DzcVs6uYmJHO+AkOGgJuGGR8Qnxhl6vAZXkpKlYeT6PCFihsopQ0FcdON6LJpFkOmmZPAVMRVrCAOobRUWi/WSuH2PnrP7TnLLerwy0lOcnJ/33e/3wssBBoCY4zrdTVevHj1t8std1rt9oeyLDPGCCGUUkHwS5KkqsHnIYwQLWQ4qPb80iOG2BljfY89ZcdMeSnpWYuTClN0BuMPFRXVP9eebe/ooJQSQrxe7+DAICHqUKSq3dTl5g+UukynGvzqcd/gPUqZO4T/BaiqsT/qce5Oz0heuX5XWsGeTZsPZxeaa2pN5ppyU2WpofxGcxOl1OPxiKIoy0QOQSVKWp4daADqMaNwQMUDHi5htcPR7n3ie8mBKEkFOl3myuS9OTu/yd1XtCXrYNZO80lNwFRdZaw2lZlKO22dPM8LgigIYlvbvScee8ya+xp16IyNPyyosBM4COz8RFl++ixhjEElwcuXzy9MWZCVnb5Pn7s3t7AgTbc/Qx9yYDZWG00nDScqS376paavr4/n/UqAMiafqn34gh2oHx1XzKvoktAb0uj1baMqo1SrHHrdrm1HdiVvSN64PTVzR+a3el3B1u1FGXpz1Y+GSqPBfNxg/q68qqS8quRum1WSZElSGaOIvTNc4PW4I5KK7oBmopvgvgBR9g6ZQPuDf6fuX/Jm4bwZ+cvm6L5O3JW+Nn1zfo7+zO+11b9WVNaWmU4fq6g5Wmrc1/D3n0ShhKiyLGP09eECo+Yc8hB03IfrFjyN4P5AV8sFh5MTBT86u2yvfb4C02Yj6hMkvh0xb1zCqmlbY5Myw5frlm/Yn7ejzFBkPH3YcO7Q1RuXZJEQokpS4GWBBiyoX9O4Mu8mjl7FyQu4eA4PO6888fKqSmCz26euQPx8HElA8dgxqxeF73x/8ZeI0mNCFMI/Q1gcpi5B/NoPF/114ZLWEYKiGY+whKgbMekmZlkQdxv17SMcx9AfBv+rkdyn7gF3UCsBhds36DiYehvj1r237JWMxAMRU9bj+/GRb5XijQOYNx2TZiMsCh9E4yNHi40x5ucDjDHDKRdGXkOMBdEWRFrwcTPMLbDZJ/9zflRPZHFvbufdrh5nj9ZFT3lfR50Fc1ehLKE8GnXIx2hj9HwkAVYsXY0ZkQiPwLu7Y7Ipo5IYUBQSql5wTr4NE5ow85amMeUW9PfGOK1o7f7izjWPX/t9ompf4nEfx1NaeeNECdCEnBUwYm5RcgJmAXWItSI5GhMXIOZxlzacRCHPBZgkB1KLnRp7WDPGNyH+Npot69qtnR5tCILPdw84jpPFgDjobk07ewJ7gEps2LQlEtOBjZqJxFqktFy7G0qOX9HwTIAQwrltdVfad5sfpRY7dQbX9UdefqC/zWoNKFoan00yx3GitgEIYeRmdevMlPp3Cr7asxDxI7Bx5GTnljOkjw8yqshKv69fEMQXu4gy5nJxPt9QvweH5pYypijK8GX3H9K6ZnIJ4J1XAAAAAElFTkSuQmCC" nextheight="786" nextwidth="1790" class="image-node embed"><figcaption htmlattributes="[object Object]" class="">Proposing Entities Distribution in Ethereum PoS vs PoW</figcaption></figure><p>However, there are multiple challenges that low resource self-builders face in participating effectively in the PeerDAS process. First, the proof generation process demands more computational power than many self-builders currently have available. Second, the task of distributing all the column subnets in a timely manner is heavily constrained by upload bandwidth.</p><p>The solution is <strong>distributed block building</strong>, which focuses on easing the workload for self-builders by spreading intensive tasks across multiple participants. This collaborative approach enables self-builders to continue leading the distribution phase without significantly compromising decentralization, thereby preserving Ethereum's resilience against censorship.</p><p><br></p><p><strong>Francesco D’Amato’s Idea of how it might work</strong></p><p>Francesco D'Amato (<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.youtube.com/watch?v=WOdpO1tH_Us"><u>in this presentation</u></a>) suggested a potential method for enabling distributed block building, which involves leveraging the capabilities of higher-resourced nodes in the network.</p><p>The idea starts with the proposer sending the beacon block and ensuring it propagates through the network. While the proposer can optionally start propagating the blobs, without extending them and therefore also generating proofs.</p><p>Eventually, the beacon block will reach a “super node(s)". Since these nodes are highly resourced, the protocol can leverage them. When the super node receives the beacon block and no blobs attached or only subnets from the original data set (none from the extended data), it can step in to handle the more resource-intensive tasks: extending the blobs, generating the proofs, and then acting as new propagation sources, ensuring that all subnets are received across the network.</p><p>Francesco noted that while it should be possible to build and distribute blocks locally, it is important to recognize that economically, it's not a significant issue if a proposer chooses not to include the maximum number of blobs that a node running MEV-Boost could handle. Given that each validator only proposes approximately 2.5 blocks per year and earns around $5 per blob, the marginal yield from including all available blobs is relatively small compared to the rewards from proposing the beacon block itself. Validators who already choose not to use MEV-Boost are leaving some yield on the table, and including fewer blobs could simply be an extension of this trade-off.</p><p><strong>Distributed Block Building Call #0</strong></p><p>The first, and only, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.youtube.com/watch?v=fnmZCMWk6xY&amp;list=PLJqWcTqh_zKGpz4rAFPI_Mw4jOfDqJc32"><u>Distributed Block Building call</u></a> was held on September 18th. In this call, Dankrad proposed a new solution to address the self-building and distribution challenges for solo stakers, and invited feedback from other Ethereum core developers and researchers. His approach differed from Francesco's earlier proposal by suggesting the creation of a new gossip subtopic where any node could participate. In it nodes could take blobs from the mempool, extend them and create the proof, and then gossip the extended data along with the proofs. <strong>This would lead to a new extension and proof mempool for all nodes. Allowing self builders to take advantage of it and simply use this mempool when it’s their turn to propose saving them the computational task of extending and creating the proofs for each blob.</strong></p><p>Compared to Francesco's approach, Dankrad's proposal enables all nodes, not just supernodes, to participate in the creation and distribution of extensions and proofs for self builders. It also reduces duplicate work, as nodes can see the existing extension and proof in the gossip network and avoid repeating the same computation. This approach would allow builders with sufficient bandwidth, but lacking the hardware for computation, to fully participate in the process. However, it also introduces some challenges, such as handling proofs separately by the CL rather than the EL. This dependency makes the two layers more intertwined, as the CL must rely on updates from the EL to confirm proof verification, which could result in delays and inefficiencies. Additionally, every node on the network would hear about every extension and proof, even if they are only subscribed to a subset of them, potentially adding unnecessary overhead.</p><p>Several people, including Potuz and Ansgar, suggested an alternative approach to achieve the same goal. This approach involves attaching the extension and proof to the transaction itself, either by integrating it directly into the transaction format or the preferred method of keeping the transaction format the same but including the extension and proof to the transaction in the gossip layer. In this model, a blob transaction is sent as usual, but when it reaches a node that can do the computation (which it would immediately if it’s sent via Infura or Alchemy), that node would perform the necessary computation and attach the extension and proof.</p><p>This approach keeps the transaction signing interface unchanged, but alters the gossip layer. It simplifies the inclusion of proofs but tightly couples the proof format between the EL and CL, as the cryptographic components would now be embedded within the EL.</p><p>Participants agreed to explore both options (proofs in gossip new network vs. proofs in transactions) in more detail. A temperature check indicated a slight preference for Option 2 (proofs in transactions), but no definitive decision was made. Researchers will develop more detailed proposals to assess the feasibility of each approach. Concerns about latency, resource requirements, and possible DDOS vectors were also raised, emphasizing the need for further analysis to determine the computational burden of proof verification.</p>]]></content:encoded>
            <author>chaskin@newsletter.paragraph.com (Jason Chaskin)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/23f71e0242ff4eef0b9fbb5e1457c566.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Behind the Scenes of Ethereum’s Open Coordination]]></title>
            <link>https://paragraph.com/@chaskin/behind-the-scenes-of-ethereums-open-coordination</link>
            <guid>cfLVBZEtAsN6RK0sGAsc</guid>
            <pubDate>Sun, 22 Sep 2024 16:27:50 GMT</pubDate>
            <description><![CDATA[How Ethereum’s ecosystem uniquely tackles complex problems through open collaboration and coordination across diverse teams. By focusing on improving user experience with rollups, the community is working towards creating the United Chains of Ethereum, where wallets abstract away the complexity of interacting with multiple chains. It showcases how Ethereum’s decentralized, transparent approach to proble solving drives innovation and paves the way for a seamless user experience.]]></description>
            <content:encoded><![CDATA[<p>About a month ago, I wrote about the factors that led Ethereum to adopt a rollup-centric roadmap for scaling. In that piece, I emphasized that scaling while preserving everyday users' ability to run a node required solving two distinct challenges: increasing the network’s data availability capacity and improving the amount of execution it can verify per second. While Ethereum has made significant strides in the former, the latter has been more complex. By embracing a rollup-centric approach, rollups can leverage Ethereum's security today and help scale execution while also benefiting from future advancements in data availability scaling. Rollups have also raised billions to push forward zero-knowledge EVM solutions, which, once mature, could be integrated into Ethereum’s Mainnet. And that since these rollups rely on Ethereum’s security, they <em>are</em> Ethereum. You can read the full post <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://paragraph.xyz/@chaskin/was-the-rollup-centric-roadmap-a-mistake-are-l2s-truly-ethereum"><u>here</u></a>.</p><p>Towards the end, I touched on a common critique: <em>Sure, but they don’t feel like Ethereum.</em> While rollups may technically be part of Ethereum, users often feel like they’re navigating entirely different chains. This fragmentation hurts the user experience. I pointed out that the Ethereum community is fully aware of this issue and actively working on solutions, including standards to abstract away these differences.</p><p>Soon, the <em>United Chains of Ethereum</em><span data-name="tm" class="emoji" data-type="emoji"><img src="https://cdn.jsdelivr.net/npm/emoji-datasource-apple/img/apple/64/2122-fe0f.png" draggable="false" loading="lazy" align="absmiddle"></span> will become a reality, where the wallet handles all the chain abstraction. For users, it will feel like interacting with one seamless chain, even if bridging or other background processes are happening behind the scenes. Wallets will automatically handle the necessary logic, such as identifying which L2 a transaction is interacting with, so users won’t have to worry about manually switching networks or dealing with complex steps like bridging assets between chains. Whether a transaction is happening on Arbitrum, Optimism, Base, ZKsync, or any other rollup, it will feel like a unified experience.</p><p>In this post, <strong>I’ll dive into how this vision is turning into reality, and how it’s a massive, coordinated effort across the entire Ethereum ecosystem</strong>. I’ll walk through how the Ethereum community, along with researchers, rollup teams, wallet developers, and organizations like the Ethereum Foundation, are working together to address this user experience challenge. <strong>From identifying the problem to creating standards, forming working groups, and holding open discussions, you’ll see the unique way Ethereum solves its problems: openly, collaboratively, and with a commitment to long-term decentralization.</strong></p><p>The first step is acknowledging the problem: from a user’s perspective, it needs to feel like using one unified chain, not a patchwork of different networks. To achieve this, we need standards that abstract away the chains behind the scenes, so users don’t have to manage them. The next step is getting the right people into a room to discuss potential solutions. Rollup projects have a strong incentive to solve this because it enhances the user experience, which will drive more developers to build in the Ethereum ecosystem. However, there’s often an issue of trust, coordination requires transparency and buy-in from multiple parties.</p><div class="relative header-and-anchor"><h3 id="h-coordinating-across-the-ecosystem"><strong>Coordinating Across the Ecosystem</strong></h3></div><p>This isn’t just about rollups. Wallet teams play a crucial role in facilitating this chain abstraction, ensuring that users don’t even need to think about the network they’re interacting with. Here’s where the Ethereum Foundation steps in to provide the coordination necessary to move things forward. The EF includes some of the most connected and brightest minds in the ecosystem (and no, I’m not referring to myself here, think people like Vitalik, Justin Drake, Dankrad Feist, etc.).</p><p>Vitalik has been vocal about solutions like ERC-3770, a standard for chain-specific addresses, since <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://twitter.com/VitalikButerin/status/1804079226041061611">mid-June</a>. By the end of July, it was time to take serious action. Justin Drake created a chain-specific address working group, bringing together Vitalik, wallet teams, rollup teams, and more.&nbsp;</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/ea60f52ea77955534b0e1e610cfb426a.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAMCAIAAACMdijuAAAACXBIWXMAABYlAAAWJQFJUiTwAAACe0lEQVR4nJWST2gTQRTG5ySKeOmpf45iSfDiMVB6EUo8JEguRTCXvZSWjuD2sthkQKfF8bK9bEWCYC65GKsErYuwSSlzWiwsVLZSxlgXittCXW2Suu6m0JHu6KJog/4Oy9s3w/ve9+aBw243cWtm+tGDe3PzN2UZIZTP5zHGmUxGkiRVVTnn4f+w/pbtt1p+EOx98sIwBG3fBwCAoXPzxWI+fz2bzUxNTmqaBiFECJVKpX8pGjfB+VH58fONzeaXVnttfYNzDjjn5Rcvnxor2x93N5tbG+8++EHAexJGFXtkwrAbhuHn/f1jB5zzwu27p/oGR8ayY1evgb6hqekbGN+RZVnTtFKphBDCGCuKokaIgBCCEFIUhRAiSZKu66qqYowRQsVi4f7i4vstZwYv+EEA/CAwVlYbDWPttWnbb54tPTEMQ9eXq9UqpauUUlVVy+UyIaQcIVRFRtM0SmmtVjNNs16v67peqVT0iJ2d3Va788OBf9AOgm8//R11OgedztfYrxVhmqZlWbZtM8ZoRL1et237z3HFQxNHYLvZBAAMA7C8VF0oFh6SucsjVy5cSjeMV5ZlOY5j27bruowxN4Ix5nme4zjiK5JCW1yu1Wq6rosmjh3suS4AIAHA+cTwxURicGDg7Okz/f396XQaQogxHh8fF28AIZQkCUIoy7JIyrKsKApCaGJiQlyWJIlS+puD2BEhBGOsadpsYRYhZFlW710SnDSiGHDYPeT8yHXdZDIptgJjDCEUTaVSqVwuByEcHR2FEPau9XeBOPI8rxNBKRVDNE1TjNKMEIOOH0YgkuLUdd1eAjGMsXhtRCxqMcZ+FRC/scxJAt8BNVV7k5khrB8AAAAASUVORK5CYII=" nextheight="464" nextwidth="1254" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>From there, the conversation took off, people kept adding others to the discussion, and the chat rarely went silent as the group worked to find a solution.</p><p>There are even multiple proposals from different researchers across the Ethereum ecosystem. For example, Ethereum researcher Sam Wilson has put forward detailed thoughts on the topic in <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://hackmd.io/@SamWilsn/BkchNZxhA"><u>his proposal</u></a>. Meanwhile, Marco Stronati from Matter Labs and Jeff Lau from ENS have also contributed to the discussion with <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://hackmd.io/bxliR04KRk26_BNT_DOk_Q"><u>their proposal</u></a>, highlighting the diversity of efforts to solve this complex challenge.</p><div class="relative header-and-anchor"><h3 id="h-the-ethereum-way-of-solving-problems"><strong>The Ethereum Way of Solving Problems</strong></h3></div><p>The Ethereum Foundation didn’t stop at facilitating discussions. As progress was made, Ethereum researcher <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://twitter.com/rudolf6_">Josh Rudolf</a> (if you’re not following Josh yet, I highly recommend it, he also facilitates the Stateless Ethereum calls and posts excellent <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://twitter.com/rudolf6_/status/1834498542507098309/photo/1">summaries on X</a>. Stateless Ethereum is an exciting topic that will significantly boost both decentralization and scalability on L1, and it’s something I’m personally <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://paragraph.xyz/@chaskin/on-the-verge-of-a-new-era">very excited about</a>) suggested holding a breakout Zoom session, and on August 10th, the first one took place. You can find the recording <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.youtube.com/watch?v=weB2YwnvRAg"><u>here</u></a>. Josh also took notes, which you can check out <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://notes.ethereum.org/@rudolf/chain-addresses"><u>here</u></a>.</p><p>It’s easy to take this process for granted, but Ethereum’s problem solving approach is unlike any other industry. Everything happens in the open, with no secrets, and anyone in the world can join the effort. Companies like Apple would never allow this, competitors might steal their ideas. But Ethereum thrives on openness and collaboration. One of my favorite examples is Danny Ryan, one of the key architects of the Merge. Before joining Ethereum, he was, at the time, just a freelance web developer who got nerd sniped by the open discussion about the Merge and ended up becoming a pivotal figure in making it happen.</p><p>After the first breakout session, things ramped up. A second call happened (recording <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.youtube.com/watch?v=cbKjDFjEKos"><u>here</u></a>) with more on the way, and all the notes are available <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.google.com/document/d/1HZb6h6VIbMt40k0tWsNe2gqb_VpOrmCYfd1VzHKwvxM/edit#heading=h.3k8nkbr7eryi"><u>here</u></a>. The specifics of the standards being worked on aren’t the focus of this post, if you’re interested, check the links above. The problem is still being solved, but significant progress is being made, and if you want to contribute, feel free to message me, and I’ll add you to the Telegram group.</p><p>Solving problems in the Ethereum ecosystem is a complex, collaborative effort that spans multiple organizations, teams, and individuals. What sets Ethereum apart is its open, transparent process, working in public to tackle big challenges like improving user experience on rollups. Very soon, Ethereum will feel like a united ecosystem, with wallets abstracting the complexity of multiple chains. When there’s a will, the community finds a way. Ethereum’s brightest minds are coordinating across various fronts to ensure this vision becomes a reality.</p><p>Creating the <em>United Chains of Ethereum</em> isn't the only problem currently being worked on in the open. There are numerous ongoing breakout sessions where Ethereum's most innovative minds are tackling important topics. For example, you can follow or contribute to the breakout rooms for Distributed Block Building, EOA/AA, ePBS, PeerDAS, Verkle/Stateless, Sequencing and Preconfirmations, and EOF. Check out the full playlists <a target="_blank" rel="noopener" class="dont-break-out" href="https://www.youtube.com/@EthereumProtocol/playlists">here</a>.</p><p>Let’s build a system of global digital property rights together and in the open, defying societal norms of closed, proprietary work. Ethereum is keeping the cypherpunk vision alive, ensuring transparency and decentralization remain core to its ethos.</p>]]></content:encoded>
            <author>chaskin@newsletter.paragraph.com (Jason Chaskin)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/02502e31b6ad9c451f03e43ddbdaf022.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Was the Rollup-Centric Roadmap a Mistake? Are L2s Truly Ethereum?]]></title>
            <link>https://paragraph.com/@chaskin/was-the-rollup-centric-roadmap-a-mistake-are-l2s-truly-ethereum</link>
            <guid>8n47d7SPEeMOyUu8lzZt</guid>
            <pubDate>Tue, 20 Aug 2024 19:17:12 GMT</pubDate>
            <description><![CDATA[The rollup-centric roadmap was a strategic move by the Ethereum community to accelerate scaling while maintaining decentralization and security, by leveraging L2s that integrate closely with Ethereum.]]></description>
            <content:encoded><![CDATA[<p>The rollup-centric roadmap was a strategic decision by the Ethereum community to scale the network <em>faster</em> while preserving its core principles of decentralization and security. The ultimate goal is still the same: <em>to create a scalable Ethereum that can support the entire world</em>. However, achieving this required solving two distinct scaling challenges, execution and data availability (DA), I'll explain both in detail later. Progress on DA was moving much faster than execution. Recognizing this, the community realized that Layer 2 solutions, which operate independently from Ethereum's core protocol, could leverage the advancements made in DA and still tap into Ethereum for security. This approach allowed companies to develop L2 solutions, raise significant funding, and accelerate progress on the execution scaling challenge.</p><p>Eventually, these efforts will converge, enabling Ethereum to implement a comprehensive solution: a scalable Layer 1 and a network of blockchains that also benefit from Ethereum’s security. Just as the entire internet doesn’t run on one server, the entire internet of value won’t run on a single blockchain. In the end game, we’ll have a diverse ecosystem of blockchains, all enjoying the security of Ethereum’s L1.</p><p>L2s are an integral part of this strategy, and they are Ethereum when they use Ethereum for DA, are derived from Ethereum L1, meaning they build their chain and validate their state transitions based on data from Ethereum’s L1 blockchain, and when their critical verification processes, like fraud proofs and SNARK/STARK verifications, play out on Ethereum L1. However, that doesn’t mean they’ll always be tied to Ethereum. While it’s theoretically possible for L2s to switch DA providers or move critical functions to another chain, doing so would be incredibly complex, disruptive, and unlikely, especially as these rollups become more deeply integrated with Ethereum over time. For now, L2s that rely on Ethereum for DA, derive their state from Ethereum L1, and use Ethereum for these critical verification processes are very much a part of Ethereum.</p><p>In order to understand why I believe the rollup-centric roadmap was a no-brainer decision and why L2s are Ethereum, we need to explore the historical context that led to this decision and examine how closely tied L2s are to Ethereum. That’s what I’ll be covering in the rest of this post.</p><p><strong>Ethereum’s Vision and the Challenge of Scaling</strong></p><p>When Ethereum launched, it had the ambitious goal of creating public good infrastructure where anyone could run a computer in their home, verifying every transfer of digital value on the planet cheaply. <strong>The Ethereum Community refuses to give up on the principle that everyone should be able to verify every transfer.</strong> This is the cypherpunk nature of Ethereum. If people can’t run a node and verify their transactions, trusting someone else instead, it’s a failure. In this regard, Ethereum and Bitcoin share a common goal.</p><p>This approach works on a small scale, but scaling it has always been a challenge. Bitcoin essentially gave up on this by becoming a store of value, which I don’t say to criticize—it still adds immense value to the world. But Ethereum believes that scaling while maintaining decentralization is possible and has been working toward that goal. From day one, Ethereum has aimed to be a decentralized platform accessible to the world, and unlike a store of value, achieving this ambitious goal requires effective scaling.</p><p><strong>The Dual Challenge: Execution and DA</strong></p><p>In 2015, Ethereum realized that scaling the system required solving two distinct problems: scaling the ability to execute transactions (going from state N to state N+1) and scaling the ability for computers to download any specific transaction and know with certainty that no transactions are missing (DA). Each is a different challenge. At that time, Ethereum was handling around 15 transactions per second (TPS), while Visa was processing an average of 1,700 TPS, with the capability to handle up to 24,000 TPS. To surpass Visa in performance, Ethereum needed to solve both challenges.</p><p>In its early years, Ethereum explored scaling execution through a method known as sharding, which involved creating multiple copies of the EVM that would communicate with each other. However, this approach ultimately led to a dead end. Ethereum recognized that the true solution to scaling execution lies in advanced cryptography, which initially seemed a distant goal. Yet, what once appeared far-fetched is gradually becoming a reality. Cryptographic proofs like SNARKs and STARKs, which enable the verification of computations with certainty, are at the core of this breakthrough. Although early implementations were slow and prone to bugs, the potential of these technologies is enormous. If these proofs can be generated quickly and reliably, they would solve the execution scaling problem. However, their readiness for Mainnet deployment remains uncertain, as they must be 100% secure, a milestone that has yet to be fully achieved.</p><p>Ethereum has significantly impacted research in this area. In its early years, Ethereum sparked renewed interest in making these proofs faster and more reliable. But while progress has been made, at this point it is still years, maybe decades, away from being ready. Let’s put a pin in this story and shift focus to scaling DA.</p><p>By 2017, efforts to scale DA were gaining significant momentum. The challenge was to handle large blocks of data—larger than any single node could practically download—while still allowing even small, resource-limited computers to know all the transactions are available to be downloaded and nothing is missing. <strong>DA is crucial because if any part of the data is missing, it could compromise the system entirely.</strong> For instance, if a transaction that prints 1000 ETH is missing, the state transition might be incorrect, leading to catastrophic outcomes.&nbsp;</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/42498b12667868aebd76ce74b02a378e.png" blurdataurl="data:image/png;base64,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" nextheight="442" nextwidth="792" class="image-node embed"><figcaption htmlattributes="[object Object]" class="">For anyone interested in early blockchain scalability, Vitalik’s 2017 talk, where I got this image from, on this topic is a must watch (check it out <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.youtube.com/watch?v=OJT_fR7wexw"><u>here</u></a>)</figcaption></figure><p>Even if the network can't process an invalid state transition because they include a cryptographic proof, it's still essential that all transactions are available so that nodes maintaining the state can update their records accurately. This also ensures that nodes have access to any specific transactions they might need, such as for tracking their own state data. Every node downloads the entire block of data, which typically ranges from around 20 KB to 80 KB depending on network activity. However, as block sizes increase, this becomes impractical for many nodes, especially those with limited resources.</p><p>To address this, researchers focused on how to ensure that even if a node only downloads a small portion of the data, it can still verify the block’s integrity and ensure that nothing is missing. The solution that emerged is known as data availability sampling (DAS). DAS allows nodes to verify large datasets by only sampling a small portion of the data. If the sample passes verification, it’s statistically highly likely that the entire dataset is intact. However, if any part of the data is missing, nodes that sample that specific part can raise an alarm, signaling to the rest of the network that something is wrong. </p><p>This approach is not only efficient but also extremely scalable. Individually, it’s not resource-intensive for nodes since they only need to download a small portion of the data. However, when many nodes participate in sampling, they can collectively cover a vast amount of data, allowing the block size to grow in proportion to the number of nodes. This means that as the network scales with more nodes, the block size can increase accordingly, while the network can still statistically ensure that all the data is available and intact, further enhancing the system’s capacity. Major breakthroughs in this area were made in 2017, culminating in the publication of a pivotal paper in 2018, which detailed the mechanics of DAS (see the paper <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://arxiv.org/abs/1809.09044"><u>here</u></a>).&nbsp;</p><p>To grasp the concept, Vitalik offers a helpful analogy: Imagine you're an orange farmer with 5,000 oranges. Instead of checking each one, you randomly pick 25. If all 25 are ripe, it’s likely the whole batch is ripe. Now, imagine you use a special pesticide (in reality this is polynomial jedi magic) that ensures the entire harvest is ripe if at least 50% are ripe. After picking 25 random oranges and finding them all ripe, you can start to build confidence that a large portion of the harvest is ripe. If your goal is to ensure at least 50% are ripe, the more random oranges you find that are ripe, the higher your confidence grows, eventually reaching near certainty (99.99%) that at least half of the harvest is ripe. This is similar to how DAS will work in Ethereum.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/760b67c56db521a8ce20125b22ac07ca.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAATCAIAAAB+9pigAAAACXBIWXMAAAsTAAALEwEAmpwYAAACXElEQVR4nO2Tz2vTYBzG39P+jV0KhZ4GvfsexqQ6226Wd12T1IxU3rRvDRLr6EH09SR4GWWwg8zrLtNWPei13Y5iyRhF2CCjUEybkRWmY3TNyitJ1jj2A3Wwg+CHl/DmSb7P8ybf9wW0WmWUVimtXgSD0Hnq0giF7oTDrzB2RAjPllDqiGfKGQPXTm1ry3yodnCu3mptatqmj6Zput69PdUqlbTt7Xqzad64+Xlh4cvionkr1o0mmktLmq47JZpW1/VWqdSNRE8Ul0ajsba2BozBgL14yZ49Z4wx22Y+g4Fz5eZYuXyiRGdYrcbW1xkvMUlmHz854vGxMxhj5QqbFU8Up9op39nZAR3GfhPw5u0fBVTeXRzwdW/v6MnT748ef7PtXcMwfQzDODzs3539sbzcOTgwej07MrVfqey//3CUSB2l7h2srBi9nmkYpmF0+v3u8mt7ama337dM07KsdrttWdbGxobThtzkZJbn4/H4xMREyAW6AADkZDKTTnvdup9IzMZi/PT0g1QKc1x6fBwAEIlEAoEAhHCO47I8z3Ecz/PJZBIAMDo6Gg6Hf3UbIaS6eNandUVRvAmiDkhVRVH0X1AUpVAoAADwEFmWTxm4v5dS6t1RSgkh8/PzZxRKKcaYEFIQBIIQHQYoiqKqqjeXJCmXy8mynM/nh8aXnAPPDmPsxUAIvY8gLl48QojneYTQ1Y/I6uoqIUSSJEqpKIqKohBCisWiIAgYY0mSzrv7e/AvYiCEvmMmk8lms4QQQRCuvvDLYiilwWBwbGzMb8+1MDIyco3u//kn+Qnf4gCCz6Q5gQAAAABJRU5ErkJggg==" nextheight="232" nextwidth="401" class="image-node embed"><figcaption htmlattributes="[object Object]" class="">DAS: Check a small amount of data and yet know it's all available to download</figcaption></figure><p>Looking forward, Ethereum's endgame solution to the DA side of the scaling problem involves DAS within a framework known as Danksharding. While Ethereum blocks previously reached up to 80KG, this solution could allow blocks to grow up to 32MB. Thanks to DAS and some polynomial jedi magic that’s beyond the scope of this post—nodes will be able to verify with 99.99% certainty that no transaction data is missing. This is over a 400x improvement.</p><p><strong>Why A Rollup-Centric Roadmap?</strong></p><p>Fast forward to 2019: scaling DA was progressing faster than scaling execution. Ethereum recognized that by prioritizing the scaling of DA on its Mainnet, it could provide immediate benefits to the ecosystem. L2s solutions could start leveraging this improved DA to achieve scalability now, while still ensuring that no invalid state transitions could occur. This strategic move allowed Ethereum to maintain its core principles of decentralization and security while enabling L2s to offload execution tasks. At the same time, the emergence of a robust L2 ecosystem provided a unique opportunity to accelerate progress in scaling execution. By creating a thriving L2 environment, Ethereum opened the door for these projects to attract significant investment and resources.&nbsp;</p><p>L2 projects like ZKsync, Polygon, StarkNet, ZKsync, Optimism, and Arbitrum were able to raise substantial amounts of capital—$458M, $451M, $261M, $178M, and $124M, respectively. This influx of funding allowed these projects to push the boundaries of cryptographic proof technologies like SNARKs and STARKs, as well as other aspects of execution scaling. With access to millions of dollars in funding, these L2 projects could build dedicated teams of top-tier cryptographers and engineers, focusing on making SNARK and STARK technology faster, more reliable, and more scalable, while also advancing execution scaling in other innovative ways. This level of concentrated effort and financial backing was something that the Ethereum Foundation and academic researchers, despite their early contributions, could not have matched on their own.</p><p>The rapid development driven by these L2 companies resulted in significant breakthroughs. Proof generation times decreased, bugs were ironed out, and the overall reliability of cryptographic proofs improved dramatically. What might have taken decades under the slower pace of academic research was being achieved in a fraction of the time. The competitive and well-funded L2 ecosystem created an environment where innovation thrived, directly contributing to the acceleration of execution scaling.</p><p>By scaling DA on the mainnet, Ethereum not only supports current L2s but also speeds up the development of execution scaling. Eventually, these zkEVM rollups will develop a robust zkEVM (using SNARKs) that can be integrated into Ethereum, enabling true in protocol execution shards and realizing Ethereum’s full scalability potential, when combined with the final version of DAS (Danksharding). For more on the end state of Ethereum execution scaling, Justin Drake’s comment on a reddit AMA provides a great overview: <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.reddit.com/r/ethereum/comments/vrx9xe/comment/if7auu7/?context=1"><u>link</u></a>. In the meantime, L2s serve as out of protocol execution shards.</p><p>You can think about the rollup-centric roadmap as a form of decentralizing the R&amp;D needed to scale Ethereum. Initially, the Ethereum Foundation and academic researchers, both with limited resources, were the primary drivers of scaling efforts. <strong>However, by embracing the rollup-centric roadmap, Ethereum effectively roped in private companies that could raise millions from venture capitalists to accelerate progress. </strong>This influx of funding and talent has led to faster advancements in scaling technologies like SNARKs, STARKs, and execution environments.</p><p>The end state, after execution scaling is fully integrated into Ethereum, will be a system that not only scales but also supports out of protocol chains that can tap into Ethereum’s security. This will be crucial as Ethereum scales to onboard the entire world. Even with a fully scaled Ethereum, the demand will likely outstrip supply, so having additional chains that leverage Ethereum’s security is a win in all directions.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/ddad283b77f6f86364e93a6496fd708f.png" blurdataurl="data:image/png;base64,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" nextheight="721" nextwidth="737" class="image-node embed"><figcaption htmlattributes="[object Object]" class="">  Image from <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.youtube.com/@jordanmmck">Jordan McKinney</a>'s most recent video on EigenLayer</figcaption></figure><p><strong>Was the Rollup-Centric Roadmap a Mistake?&nbsp;</strong></p><p>To recap, if we consider whether the rollup-centric roadmap was a mistake, let's review the decisions the Ethereum ecosystem could have made:</p><ol><li><p><strong>Abandon Scaling L1:</strong> Scaling L1 is hard enough that it might not be worth the effort. Ethereum could have become a store of value, similar to Bitcoin, and focused only on a few applications.&nbsp;</p></li><li><p><strong>Focus Solely on L1 Upgrades: </strong>The ecosystem could have focused only on introducing upgrades to both the DA and execution on L1 together, without involving L2 solutions. It’s unclear how long it would have taken to solve execution scaling problems.</p></li><li><p><strong>Leverage DA Scaling Progress:</strong> Recognizing that DA scaling was progressing faster, Ethereum could allow L2s to take advantage of it. This approach would enable companies to start leveraging L2 solutions, raise millions to accelerate execution scaling, and experiment with different execution environments to cater to various developer needs. This strategy would speed up the eventual end game of a fully scaled Ethereum and allow other chains to access Ethereum’s security in the midterm.</p></li></ol><p>The Ethereum community went with option 3, which, even in hindsight, seems like the smart choice to me. By decentralizing scaling R&amp;D and enabling a thriving L2 ecosystem, Ethereum has positioned itself to achieve its scalability goals faster and more effectively, while also opening up new opportunities for innovation and security.</p><p><strong>But What Does This Mean for the Identity of L2s?</strong></p><p>However, as we shift back to the question of whether L2s are truly Ethereum, it’s important to recognize that while switching DA layers is theoretically possible, in practice, it’s a monumental task. The decentralized governance structures of major rollups mean that any decision to switch DA providers would need to undergo rigorous community scrutiny, requiring multiple rounds of voting and discussions. Even if a decision were to pass, users would have ample time to exit the rollup if they disagreed with the move. This process is not only time-consuming but also potentially disruptive, making it unlikely that an established rollup would easily switch from Ethereum. The level of coordination, community consensus, and technical adjustments required to switch DA layers underscores the deep ties between these L2s and Ethereum.</p><p>Additionally, L2s are deeply intertwined with Ethereum because they are derived directly from Ethereum L1. The L2 chain is constructed using data from Ethereum L1, including L1 block attributes, deposits, sequencer batches, and system configuration updates. You can see this in the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://specs.optimism.io/glossary.html#l2-chain-derivation"><u>OP Stack Specs</u></a>.&nbsp;</p><p>Moreover, the bridge contracts on Ethereum L1, which facilitate deposits, withdrawals, and proof verifications, are critical to the functioning of these rollups. The massive amounts of value locked in these bridges—billions of dollars in ETH and other ERC20 tokens—highlight the dependence of L2s on Ethereum. For example, Arbitrum’s bridge holds about ~2m ETH (~$6bn), Base’s bridge holds ~550k ETH (~$1.4bn), and OP Mainnet’s bridge holds ~510k ETH (~$1.3bn). And these figures only account for ETH balances, the bridge also secure other ERC20 tokens worth billions more. These bridges serve as the ultimate safety net, allowing users to exit the rollup back to L1 if necessary.&nbsp;</p><p>For zkRollups, Ethereum L1 is also where the SNARK/STARK verifiers reside, which are responsible for verifying the correctness of state transitions. Similarly, for optimistic rollups, L1 is where the fraud proof game plays out, ensuring that any disputes about state transitions are resolved securely. It’s crucial that these smart contracts are free of bugs and remain safe because any failure could result in an invalid state transition, undermining the entire rollup. As these contracts become more battle-tested and prove their security over time, the likelihood of moving away from Ethereum decreases. The longer these rollups operate on Ethereum, the more entrenched they become, making a switch increasingly unlikely.</p><p>While it’s theoretically possible for rollups to switch their DA layers or even move their proof verifiers to another chain, such a shift would be incredibly complex and messy, akin to a major hardfork. The longer these rollups operate on Ethereum, the more entrenched they become, making a switch increasingly unlikely.</p><p>Josh Stark frames it well, he’s been tweeting stats with this format for months: “Ethereum is ____ (insert metric) L1 plus ______ (insert metric) on all L2s under its security.” As long as these execution environments use Ethereum, they are Ethereum. But it’s true—<em>theoretically</em> nothing is stopping them from leaving in the future.</p><p><strong>Sure, but They Don’t Feel Like Ethereum</strong></p><p>A reasonable counterpoint to my argument that rollups are Ethereum is that, while technically true for the reasons I laid out, it doesn’t matter if they don’t feel like Ethereum to the user. From the user’s perspective, it can often feel like navigating 30 different chains, which is a real pain in terms of user experience. I agree with this, but it’s important to recognize that the entire Ethereum community is aware of this issue and is actively working on a solution.</p><p>There are two standards in development that will allow users to make transactions without needing to worry about which chain they’re on, as long as it’s within the Ethereum ecosystem. The wallet will handle everything behind the scenes, making the experience seamless and truly feel like Ethereum.&nbsp;</p><p>For example, once these standards are adopted and built into apps and wallets, the experience will be seamless. Let’s say you visit an application built on Zora and want to collect a photograph for 0.001 ETH, but you’ve never used Zora before, and all your ETH is on Base. You just click mint, and it works as if your ETH is already on Zora. In the background, the wallet is handling the bridging of the 0.001 ETH to Zora, but you won’t even notice it happening.</p><p>Vitalik has been advocating for the adoption of these standards for months, and there’s an active Telegram group with 76 wallet developers, researchers, and application developers who are working on finalizing and implementing these standards. </p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/c4da1a29abb2d24139fdb14ea7414094.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAMCAIAAACMdijuAAAACXBIWXMAAAsTAAALEwEAmpwYAAADx0lEQVR4nI3Ub0gbdxgH8F+ZygSphSykd5txuXDcUcQWNhhT0xiDs690EvZisM4XmxM2M7CxukK7rmxzjI2CezG30bGxwWAvhtsQbC2uaWqm1i7VM8aamFz85f7kcrn8jE3Oq9d4wzihL1rYh+ft73l+fHl4gPBkHJf69NKl8T8nlqJsqbSrqmqpVNo1jF1jj6Zp0v8AEMrl8znlCQKBwOzs33eW70WULSYahxAWVbXc39B1ff8fj+0ry/J/A+bmQ7eCC0xZOBxmmKXFA0sMc3thwe/3B2dnAzPBG/6bfr8/wbIQQoRQqVRCCG3lc/IBScqUSxLT6SRMCYIoCCKoqrEA8LTJZMKwoxheZ7NTxxsbG8pOnDhOEAQAoKamhiRJHH+u1em48sv0xcvj/4SYWCwKIYRidtcwSo9IcaIkyUnIKwrKoS2AY3jFU4eq9lQAACqrazEMoyjKRpDVh5+xPW81mUwWi4Wmj9ntdqfTGbg19/sfE1evXpucnLw+NTXx1+2MnNV13TAMmN5KcSLPy2wyXSg8yKHC3gCSpGtrj+A4bjabz/p8d0N3b/qnf/zh+6/Hvr02NR0Mzng8HrPZjON4ndXqcrkQ2kqwCQiT+7FkZYnjOE3TDMOQcvfTmZQs59cTsiDmOR6xUAYEQey/r6qqGhkZ0R8+FAU+BWESJgWB13W9t7cXx3Gapm02m9PpTMJUKBSaCQYZZjkcDq9EIoIgKoq8tJI41Dnm+3JakSUmvLYe31iPb0AoAIqiSJKkacpqtXq93pbmlq6u7jO+D774fHRs7JvR0a/cbjdBEA0NDXa73eVqVZTsJlI0FW2i7P4qpyDcREqUTZ/q//Wz74II5VhWKBQ0TdNVVQP19fUA1II9h/v63iFIyt3ecfp0j7d/cPDs8Lvvedvb2zEMo2maJEmH46SYTsfi6Su/LS5GxKKqZuRcLn+fZQU+ES8WlR29uHwvuRZjN9FmeVcVUF9XZ7LUURRlwZ59s6fHN+C9cH7w3FD/xfNnzg29P+TzdnZ27kdEkmSL42Q0Fr8eCDve/vmn8Ts5hDghm+QzM3OLi/PzC0uRyMYGm5RXVvnYeoYJp1bXeIAftVRWH6FpqqKyssvzRnPXkKN7yOkZbu0ebu4aPvX6hVe7XyMIG0XtZdjU1JTP53d2NMPY1jS1cEDTtre1B6qqFgvFOJtZWeVXo8LKmhBbl8ArHR1ud1urq83lbOobGAEvfAwaPwIvjYAXPwHHPgRtl9/qG2hpftntdjscDo/HAyEsR89zHP/YAyPLUvaR+hdZ5eqzhC7GCwAAAABJRU5ErkJggg==" nextheight="714" nextwidth="1918" class="image-node embed"><figcaption htmlattributes="[object Object]" class=""><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://x.com/VitalikButerin/status/1810633473750683974/photo/1">Tweet</a></figcaption></figure><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/4810d52eecb951f20587b9af39458b6b.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAICAIAAAAX52r4AAAACXBIWXMAAAsTAAALEwEAmpwYAAABi0lEQVR4nJXRvUsCYRwH8N/gItRwRTwhCAePR+IWCEHLCb2gYBiuDYI1WkOQWyEtLe03OAQHkktJi/9CEgYW0cHT3aMeIVhYEHV3KfGEd2GWFfkZnufhefs+L0Btqqbp1VrrttGo66qmEZuiKP1lD6V0sLOHEEL7AGPsjXXpT48HV+fKw12v5zeWZbF/A2ev0m0VttZgdRnWV07Ua6VyMTI6yvM8xjgQCEiShDGetiGEACAej6dSKY/Hw3EcAAiCIIqhYDCIMU6n04yxTqfzEWC1291qPwPhWdjehIUZ2E1fls4Ww2G/348QikQimUwGAHie93q9ohiKxWKJRCIajbrd7oANISQIAsdxLpcrmUz+EDC+twNTk7A0B74x2FhjjB0dHxFCdF0nhJTL5UqlQinV9dpQ7/P5RPXWPSzNg28CQjOn1ZtXwzjM54vFYqFQkCRJluVsNivLci6XazabzgEHWZblNL4EWLbucLt9TtXHl2dnav81v/3wUD4CDNM0TNNZb5jmsLv8EfAOLylShkjbA+oAAAAASUVORK5CYII=" nextheight="66" nextwidth="266" class="image-node embed"><figcaption htmlattributes="[object Object]" class="">If you want to help contribute towards this progress please message me on telegram @jchaskin and I'll add you to the group</figcaption></figure><p>Before long, using an L2 will feel like using Ethereum itself, with the complexities hidden in the background.</p><p><strong>Conclusion</strong></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/e11c3674d240386655b83e29591d4c4d.jpg" blurdataurl="data:image/png;base64,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" nextheight="407" nextwidth="612" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><p><strong>2015:</strong> "Ethereum is a scam ICO that will never ship."</p><p><strong>2016:</strong> "Ethereum is dead after the DAO hack, there's no coming back."</p><p><strong>2017:</strong> "Ethereum is only used for scam ICOs."</p><p><strong>2018:</strong> "Ethereum will never scale, EOS, Cardano, or Polkadot will overtake it."</p><p><strong>2020:</strong> "Proof of Stake will never work or ship."</p><p><strong>2021:</strong> "Ethereum has abandoned its users despite supporting them in the past."</p><p><strong>2024:</strong> "Ethereum is a security, it will never get an ETF."</p><p><strong>Today:</strong> "The rollup-centric roadmap was a mistake. L2s aren't Ethereum, and the UX is a real pain."</p><p><strong>That's the FUD timeline, but I don’t subscribe to a world of FUD. Instead, let’s look at the reality of Ethereum’s scaling journey:</strong></p><p><strong>2015:</strong> Ethereum Mainnet launched with a transaction throughput of approximately 12-15 TPS, setting an ambitious goal to scale beyond Visa's capability of 24,000 TPS.</p><p><strong>2015:</strong> Ethereum community realized that scaling required solving two distinct problems: DA and execution.</p><p><strong>2017/2018:</strong> Efforts to solve the execution problem through sharding hit a dead end. The community identified advanced cryptographic solutions like SNARKs and STARKs as the future of scaling execution, although they were considered decades away from readiness. Meanwhile, DA research thrived, leading to the publication of the DAS paper.</p><p><strong>2019:</strong> It became clear that DA could be scaled independently of execution. This realization allowed rollups to begin leveraging Ethereum's security while solving the execution problem.</p><p><strong>2020:</strong> Ethereum researchers recognized that they could decentralize Ethereum’s scaling R&amp;D by allowing L2s to form corporations, raise millions from venture capital, and focus on solving the execution problem and advancing cryptography. Researchers continued working on scaling DA.</p><p><strong>2020-2022:</strong> L2 projects like ZKsync, Polygon, StarkNet, Optimism, and Arbitrum raised substantial amounts of capital—$458M, $451M, $261M, $178M, and $124M, respectively.</p><p><strong>2021:</strong>&nbsp;</p><ul><li><p>The "end game" solution to the DA problem was proposed: Danksharding.&nbsp;</p></li><li><p>Optimism launched as the first rollup on Ethereum.</p></li></ul><p><strong>2022:</strong> The Proto-Danksharding plan was introduced as an intermediate step toward Danksharding. From the perspective of rollups, this would mark their final interface with Ethereum, with the introduction of blob data space.</p><p><strong>2023:</strong>&nbsp;</p><ul><li><p>The first zkEVM rollup, ZKsync, launched, followed by other zkEVM rollups like Polygon zkEVM, Scroll, and Linea. Just a few years earlier, zkEVMs were considered a distant possibility.&nbsp;</p></li><li><p>Base was announced, bringing the publicly traded giant Coinbase into the arena of helping to scale Ethereum execution.</p></li></ul><p><strong>2024:</strong>&nbsp;</p><ul><li><p>The Ethereum network, comprising Ethereum L1 and L2s, reached 138 TPS before Proto-Danksharding went live. After its implementation, the network hit an all-time high of 360 TPS.</p></li><li><p>Despite the thriving rollup ecosystem, users experienced the network as navigating individual chains rather than one cohesive Ethereum. In response, the community began actively working on and implementing standards to abstract away the different chains, aiming to create a seamless, unified Ethereum experience.</p></li><li><p>Execution scaling also made significant strides, with Base, announcing its goal to reach 1 Ggas/s, a 400x increase from current levels.</p></li><li><p>New L2 projects, such as MegaETH and Reddio, raised significant funds and set ambitious targets to push the limits of execution scaling, aiming for 100k+ TPS through innovative approaches like advanced node specialization and optimizing parallel execution.</p></li><li><p>Meanwhile, zkEVM rollups continued to mature, with developers focusing on refining and finalizing their smart contract designs, bringing them closer to a fully optimized and secure state.</p></li></ul><p><strong>2025:</strong> PeerDAS is expected to go live, bringing DAS to Mainnet, further advancing Ethereum’s DA scaling.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/7c819f8c782d5fc401bcc3533c8cd588.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAUCAIAAABj86gYAAAACXBIWXMAAAsTAAALEwEAmpwYAAAEeElEQVR4nKWTf2gbZRjH3z/6nwibCiqbCgpCdW7dVtaxGFcdrlucZmylWKmr/WF/qdNiMc10tc5htRoNxmpLR1y8sbDStHCsvwg5o1x7zXZd5rUnh6+cu/ayt731TTOvuXg0sZI7KXUDCfrh5eW5l3ve57nv8z2AEOJ5XhAEWZY1TYMQKooCIRQEQRRFVVUTiQSEEGOcMIhEIiRJ0jTNMMzQ0JAZBIPB0dFRlmUpA4/H43a7XS4Xz/OAIAir1Wq32wsLC8vLyx0OR3d3d319/ZYtW0pLS7dv326z2VpaWiCEZjGHwwEAqKysbG5uBgDU1taePn0aAJCXl+f1em02m91ut1qt+fn5FovF7/eDRCKhGmCMFUUxA7PZRCIhiiLHcWuHGGOWZRmGiRisD8yYZdlwOOz1egmC6O3tzX6BLMusgSAI0WhUkiSzUxNVVTVNW3tcOzF70jRN13VtHfo6NE2LRCLZAmZlnuc5joMQIoTknBFFURAEM0UURQiheSIZnPF6gdnIWlPr2/93sCFpf39/Z2en3+/3+Xx+v7+jo8PlcrndbpIkRVFsb20Ft+TkeHvCeBkhRFGUz+fzeDx9fX1dXV0URem6HseLeibTfbzhCQCAJEmRSISm6Wg0StP0mjVzQZZljuOCwSBJkgzDcAaqqsZv3NAzmYoNd1gAAAghUztTNVmWUW7IBmd7enp7egiC8Hg8HMetrq76fL7Xm5ouXBy2AXA0/5F/zMDcc1dJFMUwRYXD4f7+fpIkWZaFEIbD4UAgQI+Pnzq0z3msHCiKYhpAkiRRFBFCuRdACEEDM1cQhBmeh/AXaU6eZi+/szO/vb46a1OapimKYlmWpmme5xVFyVElhJCyDmygKMo8QteEn9uLi5xVL4PbLYRzRrmNeYR+13VmMNBdfcxZ+Pj7ddXglj8z8T9Qk8lrM9PKdXT2eMNuAF4A4BNHS9amHMdFo1Fz/8+3x+NxNanBqamfxsZq7rzLCkDzow998FpDdgamfwVB4Hk+d/Wvx64jhGKxmDw7K8/OxmKx5ZWVmQl6qKur+p773i3a4SwqOFn3yt8zMN0ZX4pjjBfxorln141sbIqrzC9gvGgovbAwvxBfWsIYJ1OaqutaOj0/N3f54sgXpWW7AWjdufXT5559b9dWYwY3s+rHl3A8HteTuqqqKS2VXE7qKV1P6cvacuqPVDqdXllZ+XN1VYZzN/GSnsmk02lFRmoyeXXsh86SilNPHz4I8vYCYDFW3d0POK1Fbxc8dqrxVTA1w37XR4yHmaHh4UAoIEnSJDc5/et06EqI4qirk1euXJ769qszjrI32o40v7hh/zZwb82mkqod+/eAjQfA5m0AFADwJAAVYFN78TNteyxvbdvx1EZQ8fDmqgfvz9qU+JHo8H+Ef8OhydC+j/dPsBMniBMe8sviD/ftarNQo6HzfefKag6XHNjbePRY60tNh47s/fzNk8XPF4S+9ge/OUf0uBs/qxKYS5dGRiYGBiYGBpjBQJnz4PeD55nABYYK/QVVm9W3YFhyOQAAAABJRU5ErkJggg==" nextheight="332" nextwidth="525" class="image-node embed"><figcaption htmlattributes="[object Object]" class="">Source: <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://l2beat.com/scaling/activity"><u>L2Beat</u></a>, The parabolic rise in TPS across the Ethereum network, including L2s (add 12-15 TPS from L1), shows significant progress. While there’s still a journey ahead, Ethereum’s scaling efforts are clearly well underway.</figcaption></figure><p>It once looked like Ethereum would never scale. The prevailing thought was that the only way to scale these systems would require data centers to verify transactions. The cypherpunk vision, where anyone in the world can cheaply verify the internet of value and know their digital property will never be taken from them, seemed dead. But I’ve just laid out where Ethereum currently stands and how it got here. Do you think this vision is dead? I think you know where I stand.</p><p>Thank you to <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://warpcast.com/yb">YB</a>, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://warpcast.com/pauldowman.eth">Paul Dowman</a>, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://warpcast.com/shazow.eth">Shazow</a>, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://warpcast.com/samuellhuber.eth">Samuel</a>, and the Farcaster community for their comments on earlier drafts.</p>]]></content:encoded>
            <author>chaskin@newsletter.paragraph.com (Jason Chaskin)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/016dcb40eedd21c58b85fd21d2782389.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[On The Verge of Stateless Clients]]></title>
            <link>https://paragraph.com/@chaskin/on-the-verge-of-a-new-era</link>
            <guid>3IAAd5RHRtWmL2jYLffq</guid>
            <pubDate>Mon, 29 Jul 2024 19:24:02 GMT</pubDate>
            <description><![CDATA[How stateless clients will revolutionize scalability and decentralization. Learn how they enable lightweight nodes to run directly in your browser, enhance security by detecting invalid state transitions, and pave the way for millions of nodes globally, making Ethereum truly decentralized]]></description>
            <content:encoded><![CDATA[<p>Ethereum has a famous (or infamous, depending on who you ask) <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://x.com/VitalikButerin/status/1741190491578810445"><u>roadmap</u></a> that details its path to achieving its ultimate vision. This end state includes goals like creating a robust PoS consensus, scaling rollups to 100k transactions per second, eliminating centralization concerns, boosting censorship resistance, making running a node super easy, and clearing technical debt. This diagram often gets <em>fairly</em> critiqued for being complex and confusing if you don’t have a PhD in blockchain infrastructure. After reading this post, you'll be an expert on <strong>the impact </strong>of a major piece of the diagram: Verkle Trees.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/f725d18e5371161d37ab5134ebc43ede.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAGCAIAAAAt7QuIAAAACXBIWXMAAAsTAAALEwEAmpwYAAACLklEQVR4nFWR708ScQDG70Vbq9V6Y73pZVv/gb2wtuIV0YootM2EaK2M/FH5wh8vAscgttIRYw3NQypYHkJyetKR0dxiZ8dGIREpvfgCBxzYRWcdSLYbflu6NX1ePC+f5/nsQWiadow75siQ7lGPolMCIRTFP5suwm2qb9RFUVzlV4PzocfP0FgiIQgCRVE2m40gCIZhOI4DALAsy/M8wzBOp9Nut6dSKcTlcjUdb2psPNZyWSk9JzEZTQaDwWw26/Q6iqJ2dmx8Z9lLshNHD+/vblEwX5c+xmIvfT6appPJJM/zHMfxmwIAWCwWg8FQ/lFGaJpGUZQgiCnfVDLxpVqpsiwLABAEYf33+lb0qGtUqbmIkX6XafCOSiOTt7VK5dgD4zJIj42MzM4GWLaAef2nm6+ptX3lnxU2X+i6frv9SsdidBH5P3CttkbMzXinsVw+ByF0T7oHBvupyD8I65i1+aryCfbc1ntXfea8TK5qlcoJu3UZpIeHhnAcLxXZpy6s7WZvR58xWyjSC/QBpGEXsi8UeIuIolir1SCEIAMOHmlAdiMeHIMQSi5IkL2I/qE+m86q2tWnzp58MTFRYnLdGuWhPcgNhWwlk3lFkre0WovFUiqW3kcXuno6PZhHEH7VxfrS51Q8+qlaqe4g8E57ndg4yAAIoT/gvz9sinyIVCtV96Rbb9aHQm/i8fjrd/P9xnszweDKNy6fy+E4Hg6Ht/ahDpQkSUEQtj/3F2uQmSNTmsJuAAAAAElFTkSuQmCC" nextheight="144" nextwidth="812" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>At a high level, one of Ethereum's key goals is to make running a node that verifies blocks as lightweight as possible. When Ethereum switches its state database structure from a Merkle Patricia Tree to Verkle trees, it will enable a new type of node called a <strong>stateless client</strong>. These nodes are almost as lightweight as current light clients that only receive headers and can verify state proofs, but they also <strong>verify transactions in real-time and therefore are fully protected against invalid state transitions</strong>.</p><p>Currently, the number of nodes that protect the network against corruption (invalid state transitions) is in the thousands, but with the introduction of stateless clients, this number could potentially increase to millions. Additionally, Verkle trees enhance the efficiency of transaction verification, <strong>allowing for a safe increase in the gas limit by 3-10x</strong>.</p><p>In this post, I'll briefly touch on what Merkle and Verkle trees are, but the focus isn't on cryptography. Instead, it's for those interested in the bigger picture of what these data structures enable: stateless clients. You'll understand what they are, how they work, why they matter, how they fit into Ethereum's roadmap, and why Vitalik is so excited about them.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/1ba8fb7764efc0331f53a468731d66ac.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAJCAIAAADcu7ldAAAACXBIWXMAAAsTAAALEwEAmpwYAAACeElEQVR4nKXS4UsTcRjA8XvXm+g/kOj1cLNtFFztIiPDW7u4yR3cnbvDjd3lprs5w4kzZ3ljtzbB0RXUyCsN5ouZZHsj5VpHNeoMhLwSySOQYL68NxKRu8hF5ruo76vnx/PiAz8ewDTNcx2XUqmsrm/Ozj4slebLi4vTpfKHz19M09xtNMx/zTCMnZ0dIDkmAHvFhoYBADh0+Mixoy1Aiz2SvWea379+O9Buo/Hn0zTNg/sDq3p92zAM4NH8QhN48apWmL4/OXUzfWOyUChIt27X69vmfwcYhvHy9Zutra1araaqqqZpqqoqysu3qrqxsVFVfqZpWqVSeba8vLq6qqqqrutPyuX3a2ufNjerlerKyrulpaeqqjYHRVE+rq/vA4qicHtZLK0ESXoQ5Gx7u9XWRlHdMOx2QVCQ5caSSbvDaXc4RxIJu8MpCKlwuM8FQRzHESTZCcMWSyvq7SJIymqzWW1tA7HYPqDrOop6z3dcIEhKEFIMw/T4A9nc5OjoVdTbJUlSj98fjw+jqHcsmQyyHIbjbvfFcLjPgyBBlhOE1PWJiWwuh+G4KGZ8NCOKmSDL/jaASuU5huM+mjlxEhxJJAiS9NH0UDxOkNRALMbz0fHxaxiGeRBkcPBKkOU8CHLc4SgW58BTpznuMgiCPppper2hkNXW5qNpDMd7Q6FfgKZpLujMUDyO4TjDMCAI9vgD/ZFIkGVh2I3hOM9H7Q7nHsyg3i6ej07l87quy7JcKpXS6fSDmZlicU6W5Tt3C5IkiWJmKp+vKso+wDAMz0c7YZiiukUxk83lCJJqfk5/JOqCoE7YLcsyhuOBQGBh4XHzOv/yin4A+UIvoMPNF2MAAAAASUVORK5CYII=" nextheight="173" nextwidth="590" class="image-node embed"><figcaption htmlattributes="[object Object]" class=""><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://x.com/VitalikButerin/status/1759365739671412841">https://x.com/VitalikButerin/status/1759365739671412841</a></figcaption></figure><p style="text-align: center"><strong>TLDR</strong></p><p><strong>What is a stateless client and how does it work?</strong></p><p>Ethereum's state, the database of accounts, balances, and smart contract data, grows alongside the blockchain itself. Each node currently needs 2TB of storage (SSD) to store this state (and history 1.2TB), which is currently 245.5GB and growing. <strong>Stateless clients verify transactions without storing the state.</strong> They rely on execution witnesses included with each block, containing pre-state data and a cryptographic proof that this pre-state is part of the parent state root. For example, if Alice sends Bob 1 ETH, the witness confirms Alice and Bob's starting balance is part of the parent state root. You then execute the block to ensure that Alice has sufficient funds and verify Bob's updated balance. Ethereum's current state is stored in a Merkle Patricia Tree, which can generate state proofs. However, these proofs become excessively large as the state grows, making them impractical for efficient transmission and verification. Verkle trees are a new way to store Ethereum's state, enabling compact proofs that remain small even as the state grows. These compact proofs make stateless clients a practical reality.</p><p><strong>What are some of the traits of stateless clients?</strong></p><ol><li><p><strong>Near-Instantaneous Node Setup: </strong>New nodes can join the network and start validating immediately, receiving only the latest block and its state proof. This eliminates the process of downloading and verifying the entire blockchain history, which can take over a day.</p></li><li><p><strong>Low-Powered Nodes: </strong>Stateless nodes eliminate the need for extensive storage and, when combined with eliminating the need to store history, will allow nodes to run on lower-power devices. They could run locally in your browser or possibly on very low-power devices like smartwatches and phones.</p><ol><li><p><strong>Cheaper Nodes: </strong>This reduction in storage requirements also makes verifying nodes much cheaper. Currently, a 2TB SSD, which is necessary to store the full state on a traditional node, costs around $100.&nbsp;</p></li><li><p><strong>Wallet Integration: </strong>Wallets will be able to integrate these stateless clients into their products. Every time a user opens their wallet, it would locally spin up a new stateless client. <strong>This could increase the number of Ethereum nodes to the millions.</strong></p></li></ol></li><li><p><strong>Verifying Light Clients:</strong> Currently, users trust centralized RPCs like Infura or Alchemy when interacting with or viewing the blockchain. Light clients today can already allow for trustless access to state information, and we need to push wallets to integrate them. However, <strong>stateless clients take this a step further by also protecting against invalid state transactions by verifying all the transactions in a block.</strong></p></li></ol><p><strong>What do stateless clients unlock?</strong></p><ol><li><p><strong>Unstoppable Decentralization: </strong>By potentially increasing the number of lightweight, full-verifying nodes to millions, stateless clients make Ethereum virtually uncorruptable.</p></li><li><p><strong>Scalable Layer 1:</strong> As the blockchain's state grows, each node needs more storage space, leading to slower block verification due to increased database lookups and updates. This creates a compounding issue: more transactions mean faster state growth, further increasing verification time. This state growth is the primary obstacle to Ethereum's scalability. Stateless clients eliminate the need for extensive state storage and simplify database interactions, allowing it to happen almost entirely in RAM, ensuring block verification is not slowed by state growth. This could allow Ethereum to increase its gas limit by 3-10x without sacrificing verification speed.</p></li><li><p><strong>Scalable Layer 2s: </strong>The way Ethereum plans to achieve throughput of 100k transactions or more for L2s is via a method called data availability sampling. How this works is beyond the scope of this post (maybe I’ll cover it soon <span data-name="wink" class="emoji" data-type="emoji"><img src="https://cdn.jsdelivr.net/npm/emoji-datasource-apple/img/apple/64/1f609.png" draggable="false" loading="lazy" align="absmiddle"></span>) but the key takeaway is the more Ethereum nodes there are, the more nodes that are sampling blob data, and the more nodes that are sampling blob data, the more blobs the Ethereum network can include per block. If there are enough sampling nodes, this will lead to data costs being virtually zero for L2s. Remember how stateless clients could lead to millions of nodes…</p></li></ol><p><strong>What does this set the stage for?</strong></p><ol><li><p><strong>Fully SNARKed Ethereum:</strong> The ultimate goal is to move from receiving state proofs and verifying individual transactions to receiving a single SNARK proof that verifies the entire state transition is correct. This approach would essentially make Ethereum behave as a zkRollup, where a single proof can verify the block execution correctness, which includes a vast number of transactions, allowing Ethereum to scale 10-100x or more. In this world, compute is no longer a bottleneck for scaling Ethereum and running a node on the lowest power devices would be a given.</p></li><li><p><strong>State Expiry:</strong> Users currently pay a one-time cost to store data on the blockchain, but nodes must store this data indefinitely. Stateless clients will allow anyone to verify the blockchain in real time with virtually no storage requirements. However, they are not the only nodes in the network. There will still be block builders and nodes that choose not to go stateless and prefer to keep the state. These nodes will require more and more storage as the state grows, leading to centralization risks. Adding Verkle trees for the state database sets the stage for state expiry. State expiry means that, except for nodes that choose to store everything (like archive nodes), all other nodes would remove state that has not been recently accessed (e.g., in the last year) and require Verkle state proofs to revive expired state. This would reduce the state that everyone needs to store to a flat ~20-50GB.</p></li></ol><p><strong>Wen?</strong></p><p>The current roadmap suggests that Verkle trees (or a potential alternative) are more likely to be included in the Osaka-F star hardfork, tentatively scheduled for early 2026.</p><table style="minWidth: 75px"><colgroup><col><col><col></colgroup><tbody><tr><td colspan="1" rowspan="1"><p></p></td><td colspan="1" rowspan="1"><p>Before Stateless Nodes</p></td><td colspan="1" rowspan="1"><p>After Stateless Nodes</p></td></tr><tr><td colspan="1" rowspan="1"><p>Stores the Current State</p></td><td colspan="1" rowspan="1"><p>Yes</p></td><td colspan="1" rowspan="1"><p>No</p></td></tr><tr><td colspan="1" rowspan="1"><p>Storage Needed</p></td><td colspan="1" rowspan="1"><p>2TB and growing</p></td><td colspan="1" rowspan="1"><p>Minimal (with history expiry)</p></td></tr><tr><td colspan="1" rowspan="1"><p>Verification</p></td><td colspan="1" rowspan="1"><p>Slower due to DB lookups</p></td><td colspan="1" rowspan="1"><p>At least 3x faster</p></td></tr><tr><td colspan="1" rowspan="1"><p>Set Up</p></td><td colspan="1" rowspan="1"><p>Takes over a day</p></td><td colspan="1" rowspan="1"><p>Near-instant</p></td></tr><tr><td colspan="1" rowspan="1"><p>Browser Compatibility</p></td><td colspan="1" rowspan="1"><p>No</p></td><td colspan="1" rowspan="1"><p>Yes</p></td></tr><tr><td colspan="1" rowspan="1"><p>Mobile Device Compatibility</p></td><td colspan="1" rowspan="1"><p>No</p></td><td colspan="1" rowspan="1"><p>Potentially</p></td></tr><tr><td colspan="1" rowspan="1"><p>Number of Verifying Nodes</p></td><td colspan="1" rowspan="1"><p>Thousands</p></td><td colspan="1" rowspan="1"><p>Potentially Millions</p></td></tr></tbody></table><p>That’s the high-level takeaway. If you want to stop reading here, you'll have a good understanding. However, if you want to dive deeper, the rest of the post will cover in detail some of the topics touched on above.</p><p style="text-align: center"><strong>Light Weight Nodes, Instantaneous Set Up, and Unprecedented Decentralization</strong></p><p>Ethereum's long-term vision has always been to create an unstoppable blockchain, resistant to manipulation by any central group or entity. This vision hinges on the ability of millions, if not someday billions, of users around the world to run nodes and independently verify the network.</p><p>Currently, running a node that verifies the chain in real-time is possible on standard consumer hardware for a few hundred dollars, and over ten thousand people are doing just that. This empowers them to directly validate transactions and rules, safeguarding their assets and preventing unauthorized changes to the network. As Vitalik explains in "<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://vitalik.eth.limo/general/2021/05/23/scaling.html"><u>The Limits to Blockchain Scalability</u></a>," "The elites of your blockchain community, including pools, block explorers and hosted nodes, are probably quite well-coordinated; quite likely they're all in the same telegram channels and wechat groups. If they really want to organize a sudden change to the protocol rules to further their own interests, then they probably can." Jordan McKinney, in "<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://youtu.be/oWxzRgEpfyg?si=O-QcrcNQnE6CJkVV&amp;t=1251"><u>Scaling Ethereum 101</u></a>," echoes this sentiment, emphasizing that wider node participation by users makes it significantly harder for malicious actors, even those who are well-coordinated, to collude and hijack the chain.&nbsp;</p><p>In summary, the more nodes around the world running the chain, the more difficult it becomes for any central group to violate the rules of the blockchain and steal value from users.</p><p>Stateless nodes drastically lower the barrier to run a node. They will be so lightweight they could run in your browser or POSSIBLY on your phone. It would also be nearly instantaneous to spin up a stateless node. You’d receive the previous state root and the current proposed block along with the Verkle proof witness and immediately start validating the chain. Gone will be the days where it would take at least a day to sync to the tip of the chain.</p><p>Geth developer Marius van der Wijden expects that once Verkle trees make stateless nodes possible and wallets incorporate them into their products, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.dlnews.com/articles/defi/planned-update-may-increase-ethereum-decentralisation/"><u>Ethereum may grow from 10,000 nodes to millions of stateless nodes</u></a>. "Everyone can run these nodes," he said. "They need a little bit of storage, they don’t need much memory, they need a little bit of bandwidth, but it could be that you can run these on your phone." Ethereum researcher Dankrad Feist also <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://x.com/dankrad/status/1790722130356687047"><u>thinks running them on your phone might be possible</u></a>. However, some Ethereum researchers don't think running it on a phone is practical quite yet.<br></p><figure float="none" width="330px" data-type="figure" class="img-center" style="max-width: 330px;"><img src="https://storage.googleapis.com/papyrus_images/1508520e3acd1378912c9eecd52b0649.jpg" blurdataurl="data:image/png;base64,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" nextheight="1184" nextwidth="1179" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>Already today, the architecture exists for trustless interactions with Ethereum using light clients. Light clients allow users to verify state information by requesting proofs from RPCs, meaning they can trust the data they receive without storing the entire blockchain state. Wallets could embed light clients, like <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://github.com/a16z/helios"><u>Helios</u></a>, into their products, enabling users to verify parts of the state by asking an RPC for a witness proof to confirm accuracy. This approach allows users to interact with the blockchain trustlessly, ensuring the data they receive is accurate without having to rely on centralized services.</p><p>However, stateless clients take this one step further. Light clients currently trust that the block headers they receive are correct because they come from the sync committee. While this is a step in the right direction, it's not perfect. Stateless clients will be able to verify all transactions in a block, ensuring the headers are correct with certainty. This level of verification guards against invalid state transitions. By building stateless clients into wallets, users can protect themselves and the network from invalid state transactions, making Ethereum virtually impossible to collude against and attack.</p><p>While we work towards the full implementation of stateless clients, it's crucial to push for the integration of light clients into wallets today. This step will enhance trust and security in the short term. Once stateless clients are integrated, they will provide an even higher level of security by verifying every transaction, not just relying on headers.</p><p>A valid criticism is that people don't care about decentralization. However, Ethereum developers must remember its importance and prioritize it. By integrating stateless nodes into wallets, users can benefit from enhanced security and decentralization without added complexity or inconvenience. Another example of this is the potential integration of stateless nodes into development frameworks. This would allow app developers to enjoy a trustless RPC relationship without needing additional work. It's on us to resist the natural incentives and prioritize decentralization, even when it's the harder path.</p><p>The user experience remains the same, but it will be more trustless. This is how you build a protocol that can last for decades.</p><p style="text-align: center"><strong>How to Safely Scale Layer 1</strong></p><p>Historically, networks, like Ethereum, which have low hardware requirements are met with soaring fees when demand increases. We’ve seen this many times throughout Ethereum’s history. <strong>This has created a formidable challenge: how to scale the network to accommodate growing demand while not just preserving accessibility for everyday users but even making it easier to run a node.</strong></p><p>To understand how stateless nodes fits into Ethereum's scaling puzzle, let's break down what happens within its 12-second block time. You can visualize this process in the screenshot from Jordan McKinney's "<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.youtube.com/watch?v=oWxzRgEpfyg"><u>Scaling Ethereum 101</u></a>" video below.&nbsp;</p><figure float="none" width="871px" data-type="figure" class="img-center" style="max-width: 871px;"><img src="https://storage.googleapis.com/papyrus_images/ba346efc0992450bfda82bbbfea6e705.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAHCAIAAADmsdgtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAA23RFWHRSYXcACmdlbmVyaWMgcHJvZmlsZQogICAgICA5NAo0OTQ5MmEwMDA4MDAwMDAwMDIwMDMxMDEwMjAwMDcwMDAwMDAyNjAwMDAwMDY5ODcwNDAwMDEwMDAwMDAyZTAwMDAwMDAwMDAwMDAwNTA2OTYzNjE3MzYxMDAwMDAyMDAwMDkwMDcwMDA0MDAwMDAwMzAzMjMyMzA4NjkyMDcwMDEyMDAwMDAwNGMwMDAwMDAwMDAwMDAwMDQxNTM0MzQ5NDkwMDAwMDA1MzYzNzI2NTY1NmU3MzY4NmY3NApC2R0+AAABwklEQVR4nI2RwUsbQRjF55SLxZP+Az2UWlCItKKHCg1VFE3bU9qbHhVaxJh4KsSxCIW42TFZLZiFoXpTmA2SCkUdW1CQLHzxVMHUuRlDhbFsjkZHsqupBJH+TvPe8HjfN4OUy+XlhXeoyTrnf7gzgu4JMMbC4TDGmDHmOUII4sIYS5umltBXVlfLjlOXAoB/BYeFwhdjLhnHnz9N7+zsAkDOtudTWvjDaCQySQjBGFNK51PaWsbK2Tal1LIyhJDOZ22tjx++exvK5/cB4OeP7dfB/tjUNL2BECKlRPn8/vISTS8knnZ1aUnj6Oh3zraXaPrNqwEtoQuXw0IhOjEWjUxwzoUQ4PI9a301F2Yw5pwDwNbW5uT4+5Q+590CAOe8WuAtUiyVEEKPBoNKqfNKpew4qOVJw/Pu2vqWlTEMgzHmjRYKhQgh1lo2Gotl19eVUqXiSd/wcHBkpO7FrguOT4qo8cGLoSGvwPl7hlrbmgMvy45zXqkopWaSpCUQSJtmu9/v8/l6env12fjHeBw1N+mLi0qp6kwdHcjffneBUipn20KImgSA2/LXwcG3jQ0pJXPxzD+np7t7e1LKWuT293oFVwrvBNAJPgleAAAAAElFTkSuQmCC" nextheight="327" nextwidth="1600" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>In the first 4 seconds, a new block is proposed and propagated across the network. Nodes receive this block sometime within those first 4 seconds and spend about 300-600 milliseconds processing its transactions and verifying the block's accuracy. The remaining 8 seconds are dedicated to validators confirming the block's validity through a voting process. At first glance, the short block processing time compared to the 8 second voting time that follows it might suggest an easy solution: pack more transactions into each block and make the processing time a little longer. However, this is not so simple. While the 8 second voting process itself is relatively quick, it doesn't tell the whole story.</p><p>Although nodes can quickly agree on the tip of a chain (within that 8 second window),<strong> the remaining "dead time" is crucial. If new blocks were constantly being added at the same rate nodes process them, nodes that have fallen out of sync or are joining the network for the first time would never be able to catch up.</strong>&nbsp;</p><p style="text-align: center"><strong>Blockchain's State Growth Problem and the Need for Innovation</strong></p><p>The growth of Ethereum's state also presents a major hurdle to scaling. Ethereum’s state is the database that stores contract bytecode, contract storage, account balances, and account nonces and is constantly getting bigger.&nbsp;</p><figure float="none" width="474px" data-type="figure" class="img-center" style="max-width: 474px;"><img src="https://storage.googleapis.com/papyrus_images/8fcef1640b744db8aa2c193324c62d42.png" alt="How Ethereum nodes store data and executes smart contracts | LearnWeb3" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAASCAIAAAC1qksFAAAACXBIWXMAAAsTAAALEwEAmpwYAAAD9UlEQVR4nJWUb0wbdRjHf68WCW80JLwgEzLjGyUqE3zni0Uhc8EEp8FXRgyIIFtMpnFjpptTmM45YhGQfwt/pQet9AocB7cWei1cDlpKejfWG5Y/JdAeo4UKhbK26T2mOyGMOQa/fF7c75Ln+eb5Pd/nQT0UTRqZZ6Iftcqo+/TEMINTRpwyasgh0szK/++Mjj8ZpSYMyMYLABCVJHj6iYTDfp9XJjkp6RhCSYmJL8THI4QG+3q3tzZ9omc7GNwbIid0zi/+JyBnkQGAUCgk34Jbwagk0TiuUiopDKMwjGhrxaqruhsaYtTXDWIdFIb1NDUp8guikrQXAJhfEhEvODcCm7zg5J3zY1PTvHN+6v7M9sOHu6oAQGGYTxSjkjS94O43W0Y4h/XvOYYT+s2WsanpQHAbAEoLCp6swOVeRsOMtbWb7MKJ5+LikpNfzPngrLpPn1tSytp4mXHO8d2FSz7R00PRzZ09APBjWTlCKD3jrUgkMmbjy6ubAKQrxcX/L2Dh7g0zExhOZGXnnDr9fl7hl2rCUFZ1e/LufRsvTPCOScdMxQ/XfaIYiUaHGEsjpmvE8DJl7S81Tbex3j+1pMu9DABPFeAFJwB4V/1r64FAcHvFv+7fCOxtL+w8kXtllaLZXr3p0vfXiy+UXim/2d0/RNEsa+MOErA7YgKPjrQDhMMRuVGhUCgqSRSG+X3emEcJw4pvNfnESwihY3Hxw0ZamF24UdMMAIqiIjmLHBsORx6rYLfv+/wa2angweISADBWe7tOL3d4hHP0GNkO7aAccu38uYOe6IAJgEcCfp/XMGoxMNZ3sk4/n5D42hsnU19PSzqe3NCuKVbcEL1rhbkfb25uAQBr41S91BBjOZqATxSF2QWTxf7ZFyUvp6YlHD+Rmf3hqcz3VDjZoML96+sFZz9ibdyIlfv256q6Drz011r/RsCz4j2CAAAMM9ZO0khP3CVM44RpvI8ew3rvyKa4dv5cVJLMrKWxXY3hRH17l0cUj1SBR00YcMrc2aWODcHJNIRQXt6nOmrk7dzPBefcJ9k5riV3Vua7KSkpr7yamp6RgRD66WbFESqIRKOCa0nPTrbhA2qKbsHJPnrMPuNaXvsHAC7m5/OCc4J3WLh7jNXunHNFwqHYLjqkQKVCgdXXa+pq2yorVTU1LUpl++/VLUqlqqoK+6Om+dat/DNnZJtdrah1zrla/yIem4N9e2of/rU1vU6n1+kGtFr5Y5cBrXZAqx3UaDirVbY/aWRsvPBbUycAzC56DrWuD3NCoVDMoyyLEEJxCWlvpj9Y9rhXVpGaMJBGJubxAxmkmWdisthbOrVFX339zeWreYUlGoIijcy//YZnm4sKKDkAAAAASUVORK5CYII=" nextheight="389" nextwidth="711" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><div data-type="embedly" src="https://learnweb3.io/lessons/how-ethereum-nodes-store-data-and-executes-smart-contracts/" data="{&quot;provider_url&quot;:&quot;https://learnweb3.io&quot;,&quot;description&quot;:&quot;LearnWeb3 is a free platform to take you from zero to hero in Web3. Join 110k+ developers in our mission to make learning permissionless and collaborative.&quot;,&quot;title&quot;:&quot;LearnWeb3 - Become a next gen developer!&quot;,&quot;mean_alpha&quot;:251.5,&quot;thumbnail_width&quot;:1200,&quot;url&quot;:&quot;https://learnweb3.io/lessons/how-ethereum-nodes-store-data-and-executes-smart-contracts/&quot;,&quot;thumbnail_url&quot;:&quot;https://learnweb3.io/api/og.png?pageType=lesson&amp;slug=undefined&quot;,&quot;version&quot;:&quot;1.0&quot;,&quot;provider_name&quot;:&quot;LearnWeb3&quot;,&quot;type&quot;:&quot;link&quot;,&quot;thumbnail_height&quot;:630}" format="small"><div class="react-component embed my-5" data-drag-handle="true" data-node-view-wrapper="" style="white-space:normal"><a class="twitter-card-link" href="https://learnweb3.io/lessons/how-ethereum-nodes-store-data-and-executes-smart-contracts/" target="_blank" rel="noreferrer"><div class="twitter-summary"><img src="https://learnweb3.io/api/og.png?pageType=lesson&amp;slug=undefined" class="false"><div class="twitter-summary-card-text"><span>https://learnweb3.io</span><h2>LearnWeb3 - Become a next gen developer!</h2><p>LearnWeb3 is a free platform to take you from zero to hero in Web3. Join 110k+ developers in our mission to make learning permissionless and collaborative.</p></div></div></a></div></div><p>As of Mar 4th of this year it took up 274GB of storage and is growing by 2.5GB every month. This expansion directly impacts how quickly blocks can be processed. As the state grows, it takes longer to find and update the necessary information, slowing down the entire verification process. This means that over time, block verification naturally becomes slower. <strong>Therefore, the more transactions Ethereum handles, the faster the state grows, creating a snowball effect that further increases verification time.</strong></p><p>Binance Smart Chain highlights the dangers of scaling solely by increasing the transaction capacity (raising the gas limit and speeding up the blocktime). This led to an explosion in state size, making it virtually impossible for new nodes to join the network or for nodes that fell out of sync to catch up, as the time required to verify new blocks continuously increased, even with powerful hardware and a limited number of validators. This illustrates the critical need to address state growth directly as part of any effective scaling solution. (If you're curious to learn more about this issue, the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://youtu.be/fbppZY8V0LI?si=3b_dGr9PCShw8XKt&amp;t=1918"><u>Uncommon Core podcast episode </u></a>with Hasu and Jon Charbonneau offers a detailed discussion around the 32min mark.)</p><p>When you combine the state database with the history of the chain (all the blocks and transactions needed to sync a node from the very beginning), which currently sits at a 1.2TB and grows by roughly 19.3GB each month, you're looking at a lot of storage. In total, you need 2TB of storage to run a full node today. So, if you want to run a node on a budget-friendly device like a <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.amazon.com/FriendlyElec-NanoPC-T6-Internet-Routers-Ethernet/dp/B0CDQ1V3TW?th=1"><u>NanoPC T6</u></a>, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://ameridroid.com/products/rock5-model-b"><u>Radxa Rock 5B</u></a>, or <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.amazon.com/Orange-Pi-Rockchip-Frequency-Development/dp/B0C5BZLPZN?th=1"><u>Orange Pi 5 Plus</u></a>, you'll need to spend at a minimum $170-$220 for the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.newegg.com/p/3C6-0147-01WZ9"><u>computer itself</u></a>, plus another $100 for at least <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.newegg.com/fanxiang-512gb-s501q/p/0D9-00WY-000A4?Item=9SIBSAYK655821&amp;cm_sp=SP-_-2698003-_-0-_-1-_-9SIBSAYK655821-_-2TB-_-2tb-_-4"><u>2TB of storage</u></a>.&nbsp;</p><p>However, this is just the starting point. If the state and history continue to grow at the same rate, we'll hit the critical threshold of 1.8TB in just 2 to 3 years. This means that, sooner rather than later, you'd need to upgrade your storage to a pricier 4TB option, potentially costing around $300. And as the state and history keep expanding, you'd need to keep upgrading, eventually reaching a point where you'd need 8TB of storage, which can cost over $1,000! If this trend continues unchecked, running a node could eventually require a full-blown data center.</p><figure float="none" width="546px" data-type="figure" class="img-center" style="max-width: 546px;"><img src="https://storage.googleapis.com/papyrus_images/b713ab01bdaaf141ecc660a09f67a5b6.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAWCAIAAAAuOwkTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAA23RFWHRSYXcACmdlbmVyaWMgcHJvZmlsZQogICAgICA5NAo0OTQ5MmEwMDA4MDAwMDAwMDIwMDMxMDEwMjAwMDcwMDAwMDAyNjAwMDAwMDY5ODcwNDAwMDEwMDAwMDAyZTAwMDAwMDAwMDAwMDAwNTA2OTYzNjE3MzYxMDAwMDAyMDAwMDkwMDcwMDA0MDAwMDAwMzAzMjMyMzA4NjkyMDcwMDEyMDAwMDAwNGMwMDAwMDAwMDAwMDAwMDQxNTM0MzQ5NDkwMDAwMDA1MzYzNzI2NTY1NmU3MzY4NmY3NApC2R0+AAAEEUlEQVR4nJVVX2jbRhw+qJ+Wl6xbYAzWBdIuWyD1Qwpekz11hAx3ScbcVKN1NjcEasMSpoyJ1qN4m0azDo9VJC5UKfhBBdEErYgk2oMGKq0hqA/ucoSImvzjwgyp1+KlVdjOsW9Y57qOyZzsQxw/nX73fb/77k4HyHPYtk0IYRimvr6+ubnZ6/U2NjYyDBMIBJqamkRR7OrqAgC4XC5RFBsaGnw+n9vtBgBEIhGXy+X1egEAPp8PV4AQAshOJJNJVVUlSdJ1PRaLqapqWZYsyxBCwzB4nhcEASGkKIqmaaIoBgIBy7JoviAIuq5XEZYEEEKJREKW5e1crvxUpWKnol1hOYAQ0sAwDF3XDcNACJUEIISKooyOjlKiXH4b45ztAGNcbss95VdCCiw70tl5oqWlua2tze/3Dw4Out3uurq6jo4OWZZLArTe9VRKGR+fvnGDtuup1Nri4nrqIQ2cOOW8FnuWIdx88uTcmbPnA/2x8fgHXad8vo9Zlo1EIsFgyOPxmKZZvQZbT58uzM2tLi7M371r3b//X4aQ53ZJktTT041x7srP0nvvM6dPnwoGQ6yDaDRKd01RIJ1OKw6i0Sgdny8U8oUCJcIOV2VARy4vr7S3t8/DhcC5b2buzEQnrgwPDUejUUEQOI4rL1hJQNf1ZDIpSRJd3l158U4Bj8czOzt9ojN086bm9FdvipJAPB5HCNVwowpUJhQKXb78/edDP46N3aKd+UK+XEQlAM/zS0tLZH/AzvhY7Nrx48e+/W7iK06oUfsLAcuyEEKSJPE8Xyba1SLsxK2tb/f3j3waiBBS2NraqnE+igIMwyQSCYyxZVmaVnSztvVTUzIAwNPxGcb/UPY9BFiWhRDu0x+Mc0eONALQcu/e74QUaptTElBVNZPJ7JlnO+X39X348itvnez+gpDC37i02faYASHENE2O4+LxOMuyFcW+cCabzRJCLl3iDhw4+Prhk6nUmlN+MWE7t73HDAgh2WzWNE0IYSKRqDRkywElGhv7AQDQ0tr30Fql5mCM5x7MTWqTs3dmakyi+nddCTps/kHSc+xdAMDhdz66/ev0xNS1gQsDZ0fOXPjp4vVb1ye1SfU39X8IlM2BcP6NQ8X7hOJgc9snXzJfX714NS6soJWyfO0FKArQDFmWeZ5vPXr00JuNrza8VuYF4KWBEe72nV+W/7CqHM8X8pUF7TED27YRQhBCVAHbfmbbzzb/2nz85+PMRmYdoY1HG6trqxuPNtIOMg4QQvu1yLIsr9cbDoc5jmMYZmho+Hww2N3Tw7Isx3F+v5/neb/fz7JsOBymdwvHcb29vTU2+g6BdDotiqJpmrqui6KoaZqiKIIgqKpqGIYsy7RVVZV+kmVZ13VFUegp2VXgX+KLwUHmiefuAAAAAElFTkSuQmCC" nextheight="1124" nextwidth="1600" class="image-node embed"><figcaption htmlattributes="[object Object]" class="">For more on Ethereum’s state growth problem I’d highly recommend <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.paradigm.xyz/2024/03/how-to-raise-the-gas-limit-1"><u>this series from Paradigm on How to Raise the Gas Limit</u></a>.</figcaption></figure><p style="text-align: center"><strong>Ethereum's Current State Management (and Its Limitations)</strong></p><p>Ethereum's current state is stored in a data structure called a Merkle Patricia Tree. This tree-like structure organizes all the account balances, contract code, and storage data. Each leaf represents an account's state. These leaf hashes are then combined in pairs and hashed, forming higher-level branches. This process continues, creating a cascade of hashes until a single root hash emerges, representing the entire state.&nbsp;</p><p>This structure offers several benefits. First, it ensures data integrity: any change to even a single account's state will result in a different root hash, making tampering immediately evident. Second, it enables efficient verification: instead of downloading the entire state, you can prove a specific piece of data's validity by presenting a Merkle Proof.&nbsp;</p><p>A Merkle proof is a set of hashes that can verify a specific piece of data belongs to a larger dataset. It leverages the tree structure, where data is hashed and combined hierarchically into a single root hash. The proof includes the data's hash and a path of sibling hashes that allows recalculation of the root hash, confirming the data's inclusion. In Ethereum, a Merkle proof allows you to verify specific information about an account or smart contract without downloading the entire blockchain's state.</p><figure float="none" width="790px" data-type="figure" class="img-center" style="max-width: 790px;"><img src="https://storage.googleapis.com/papyrus_images/662bda4339e09e5d31b4df8ba8ae099d.png" alt="Merkle Tree | Inevitable Ethereum" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAPCAIAAAAK4lpAAAAACXBIWXMAAAsTAAALEwEAmpwYAAAD70lEQVR4nHVTbUxbBRS9MXGJ0U0zYpSF8c/4EaPx134YFTNRHMzhzJwmi4vL4jYTkjGELZlMxEXEmJmAbAUcBVp4bd9rHwyCIpRV2MLHnAHCYLbz0YBdt1L62vJohQ2Oua9PdJsmJ8155957bt+5LVH6dgOZO2lzPm3MoXWv0mPbKD2PNmTTo9vomT38uC6LHsrm0sYcSnuDyYNbuZqRT0+8x+KGbHpgK6Xl0ON59MjrtGmHYcsdGfm0aUeB2d0+fiPnpO3lE9a91V0fn3XnVUq05eChup59p7tzTjqeKzm7p6qT8j6ltz/7qK4ns8B0sK6HdpW3DPuzPheeOlL3dFH9W5XO4/ZB2l5KaW/S5p3sTPSSgdcKny2opnfLaHc55R5N3//N+n1fU2Y+Pb+Xco8y312eceBbyiqg7CNbPqml3OKMA6foyffphQ/pxUO0q+y+DyronRM8nl1ItIXuf4Vt15edS4GKHXRYoCIHFYlU7NQ/JSpto+OyXrJxqdBGJSIdk+iwSEUy95TK/HhMphIXT5U4qchOJeLDZR2GrQdIYQC4oJPeZfQtoW8Z7hX06foaPGDFA5z/F/cA7gT6VXhUJmuGKZAthhTEGOQEBBXCpDYZx2QM1qklqwqXBrveIGmoC8A0y9zhm/zR22vzh0W92uBRhkZ8F4e8DR5FiLKPpBm25EqAkYQlCvM8Kn1sIelj1QpOKWiOoFXjHjkBcxD1AchJdPwG90SiZRomFRVenJmFQ2PU+FE5iaYwWiPc70roC5xJtIQwFMMP/lvtyu1UQU5CCKNrZqV75nZ/BLYIK8aCBBx/oj6Egatq50Vf55Bf1KtyEjYVp3+/fEYZsUWuNYa4kxfICVhCaPdjaBFOhVNKiU0hdAYwuABRuXsBjwTh+mV+cGbVNRaxhI0FLRGI8YgjGnJE5y36CIkap9wQQM0sHElUKewraZBiMAfwnV8Xp9EYvCMiSUNDEFV/QFzmwcYAnDFI+nsbmf/NSVBxKconVW6hTVnxLsK7AM8cLszh6gJ8Scj+Fd8ipuIYWeDzmIN8HiE84Yyeb08Om0evTY1Ojw5fGRgLWtU7FqRAksZZV4yh1s85mBTmQhjWML4aXTXp4ZgUfDm66lD/iaghiNpZ1F/nzhovvrgEYe5ua2OBPYbuONquozcOaQ7dKjpuoDOKrgiL3VFDPBfET4vsnoqIoV/CFoU9qjaHgtLCqj32Pwv6w/g1joklSNO4HMcVDT0huG9iLI7xJBy6OKHhZxXfB9Gs35OPpP92m26iNTxuj0xY5wK22H9F5ErAojKa5/l/YZlnIkRhVQ2+JnLE93xBUYMlwkj99u59g78AH0EAI3rZBZ8AAAAASUVORK5CYII=" nextheight="723" nextwidth="1536" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><div data-type="embedly" src="https://inevitableeth.com/home/concepts/merkle-tree" data="{&quot;provider_url&quot;:&quot;https://inevitableeth.com&quot;,&quot;description&quot;:&quot;Applying a hash function takes data (of arbitrary contents and size) and reduces it to a unique, compact string. Every input produces a unique output, even if two inputs are nearly identical. A Merkle Tree uses hashing to build a data structure that allows for quick, efficient, verifiable proof that a transaction was included in a much larger data set.&quot;,&quot;title&quot;:&quot;Merkle Tree&quot;,&quot;thumbnail_width&quot;:1536,&quot;url&quot;:&quot;https://inevitableeth.com/home/concepts/merkle-tree&quot;,&quot;thumbnail_url&quot;:&quot;https://inevitableeth.com/merkle-tree-banner.png&quot;,&quot;version&quot;:&quot;1.0&quot;,&quot;provider_name&quot;:&quot;Inevitable Ethereum&quot;,&quot;type&quot;:&quot;link&quot;,&quot;thumbnail_height&quot;:723}" format="small"><div class="react-component embed my-5" data-drag-handle="true" data-node-view-wrapper="" style="white-space:normal"><a class="twitter-card-link" href="https://inevitableeth.com/home/concepts/merkle-tree" target="_blank" rel="noreferrer"><div class="twitter-summary"><img src="https://inevitableeth.com/merkle-tree-banner.png" class="false"><div class="twitter-summary-card-text"><span>https://inevitableeth.com</span><h2>Merkle Tree</h2><p>Applying a hash function takes data (of arbitrary contents and size) and reduces it to a unique, compact string. Every input produces a unique output, even if two inputs are nearly identical. A Merkle Tree uses hashing to build a data structure that allows for quick, efficient, verifiable proof that a transaction was included in a much larger data set.</p></div></div></a></div></div><p>When a new block arrives, it has a list of proposed transactions and a new state root. Nodes, each maintaining a copy of the current state in a Merkle tree, verify each transaction. They ensure senders have sufficient funds, execute smart contract logic, and update their local state tree accordingly. After processing all transactions, the node recalculates the state root by hashing the updated tree. This recalculated root is then compared to the one provided in the block header. A match confirms the block's validity, proving that the validator who proposed the block executed the transactions correctly and didn't attempt any fraudulent activity.&nbsp;</p><p>This process works well, but it needs to scale up. The current bottleneck is when the node needs to access and update the state. This requires reading and writing data to the hard drive, which has a limited input/output operations per second capacity. As the state grows, the number of required input/output operations increases, slowing down the entire verification process.&nbsp;</p><p><strong>This creates a compounding issue – the more transactions Ethereum handles, the faster the state grows, further increasing verification time.</strong>&nbsp;</p><p>Even the fastest NVMe SSDs have a maximum capacity, which translates into a theoretical limit on the number of transactions Ethereum can process per second. Eventually, the growing state will exceed even the fastest drive's capacity, acting as a "brick wall" that limits Ethereum's transaction throughput.&nbsp;</p><p>In addition to their large hard drives, nodes also have a faster type of memory called RAM for storing temporary data. Think of RAM like a super fast scratchpad for the computer to jot down notes while it's working. Accessing and updating information in RAM is lightning fast compared to the hard drive. The catch is that RAM is much smaller, while most Ethereum nodes today have 2TB of storage space, their RAM is usually only 32GB or 64GB.</p><p style="text-align: center"><strong>The Key to Unlocking Ethereum's Speed and Scalability</strong></p><p>Verkle trees are a game-changer because they allow nodes to verify blocks primarily using this fast RAM, barely touching the slower hard drive. Now, you might be thinking, "Hold on, don't nodes need the entire Ethereum state stored on their hard drive to verify transactions?" With Verkle trees, the answer is surprisingly no. They make it possible for nodes to operate without storing the state, a concept known as "statelessness."</p><p>Stateless clients represent a future for Ethereum where nodes no longer need to store the blockchain's entire state. Instead, they rely on compact proofs (Merkle or Verkle, more on this later), delivered alongside each block as a "witness." These witnesses essentially vouch for the accuracy of the specific data needed to verify the block's transactions. This streamlined approach allows nodes to do their job using primarily their fast RAM, with minimal storage requirements.</p><p>For example, if Alice sends Bob some ETH, the witness would include proof of Alice's and Bob's account balances. A stateless client can independently validate this transaction by checking these proofs and simulating the transaction to ensure it matches the new state root in the block header. <strong>This process is estimated to be 3-10 times faster than the current method of verifying blocks, which requires retrieving and updating state data from a node's hard drive.</strong> This speedup opens the possibility of increasing the gas limit by a factor of 3 to 10, leading to a corresponding increase in the blockchain's throughput.</p><p>However, for stateless Ethereum to truly work, the current Merkle tree structure needs to be replaced with Verkle trees. Merkle proofs are simply too big when dealing with Ethereum's massive (and growing) state.&nbsp;</p><p>Unlike Merkle trees, which use multiple branches and hashes to represent each piece of data, Verkle trees use a more compact structure based on vector commitments. You can picture it like a wider, shorter tree, meaning there are fewer levels to traverse when creating a proof, and the proof size stays consistent even as the state grows. This results in dramatically smaller proofs, making the "stateless" client vision a practical reality.&nbsp;</p><p>Verkle trees achieve their magic through some seriously impressive cryptography. While the inner workings might seem like Jedi magic to most of us (myself included!), the key takeaway is that Verkle trees enable drastically smaller proofs compared to Merkle trees. While <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.youtube.com/watch?v=b1m_PTVxD-s&amp;t=2919s"><u>Merkle proofs for a block can easily exceed 10MB, and in the worst case, reach up to a whopping 400MB</u></a>, <strong>Verkle proofs are mere kilobytes in size! </strong>A fun fact about Verkle Trees is that John Kuszmaul designed them in 2018 while still in high school.</p><figure float="none" width="532px" data-type="figure" class="img-center" style="max-width: 532px;"><img src="https://storage.googleapis.com/papyrus_images/ea151d6f1299b9a250d9088b2508fc02.png" alt="Verkle Tree | Inevitable Ethereum" blurdataurl="data:image/png;base64,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" nextheight="1013" nextwidth="1200" class="image-node embed"><figcaption htmlattributes="[object Object]" class=""><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://inevitableeth.com/home/concepts/verkle-tree"><u>https://inevitableeth.com/home/concepts/verkle-tree</u></a>, for more on the cryptography behind verkle trees visit <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="http://verkle.info"><u>verkle.info</u></a> for many resources on this.</figcaption></figure><p>While stateless nodes are theoretically possible with Merkle proofs, they're impractical in reality. For stateless operation to work efficiently, the witness size must be very small, on the order of kilobytes, aka the size of Verkle proofs. Merkle proofs can exceed the capacity of RAM and make it difficult to transmit them across the network quickly enough for validators to process within the 12 second block time.</p><p style="text-align: center"><strong>Ethereum's Modular Future</strong></p><p>If regular nodes aren't storing the state, who is? With PBS, the responsibility of building blocks is offloaded to specialized entities called builders. These builders run powerful machines designed to handle the heavy lifting of generating Verkle proofs and maintaining a full copy of the Ethereum state. This division of labor allows builders to focus solely on constructing blocks, including creating the Verkle proof witnesses. Meanwhile, validators can specialize on efficiently verifying the validity of these blocks using the compact Verkle proofs provided by the builders. This modular approach will rely on other entities like archive nodes, RPC services, and block explorers to play a role in holding and serving the state to users, always accompanied by a cryptographic proof to ensure the correctness of the information provided.</p><figure float="none" width="675px" data-type="figure" class="img-center" style="max-width: 675px;"><img src="https://storage.googleapis.com/papyrus_images/7c8993c4a1b63c22ab93bb4c47deff1f.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAdCAIAAABE/PnQAAAACXBIWXMAAAsTAAALEwEAmpwYAAADYklEQVR4nLWWLZSrOBTHMZVVCMyIGkQNJiYmJgZTE4PCjEHFVKFiMFVRKFRMVBQKFYVCjUKhouKqUKjuWe4ub173nbbz3uxfcHJCwu/e3I8Q3P5nBQ/eLctyu936vuecV6vO57PWuqqqpmmEEGVZCiG8978JAI3jKISQUlpr67puVimljDFaaynlnwJAy7JIKRFCjLEsy9I0PRwOTdNsjv4+YFn3E0LCMEQIJUlyPB7DMKSU7vf7aZoeb3/VA2ttURRxHO92uyAIMMZBEBRFMc/zNwCqNbxZlgVBQAhBCBFCMMbnVY+deAnQtu3lcun73lqbZZnWuu/7YRiklEII59yXAcuyzPO8/Ktt8na7cc7btn0a23vA49XLJ5IQouu6u8lXAfD03uerLpcLY6woiuv1ur2FgtgAn4377+AHoCgKjDHkX/BQcRwnSSKlvN1u8zxP0+Sc89475+Z59t6DNT8BvPfH4xGWtm2rtR6GIQzDKIriOA6CIMuytm2NMW3beu+NMYfDAY4LkPv9Po5jxhgYoZS6ByRJ4r2fpgnyL0mSsiwZY2maIoTiOKaU5nleFAUk1W63G8exrmu2aqvtuq6v16tSajvGvwHTNHHOtdZKKSEEpVRKCRblec4Y67quXdV1nVKqLEuoamNMFEWn0ynLMs55HMd1XUNVGmN+AMZxhK4yjuP7+/vxeATDOefQGPI8L8uyqipCCDia53lVVVprhNDhcMAYU0rDMMQYgx9a618AhmHI8xzCeD6fMcZpmu5XJUnSdZ21FgKLV2mt31eVZck5xxhzziH9fvJgmiYAOueklIwxzrlSCiGU5znGGI4Y3IdlsEBK+fHxYa2F1DCrnHP3HjjnqqoahqHv+7ZtnXPTqnEch2GA8TYzjqMxpixLiDbYLoSoqmq7grTWWyn8UwfTNFlru64zxiilmqapVzXrAG4YuGSUUqfT6WkTvS+01+W9h2RdHuoXgMcbQNt5frnZPdWyLNAGhmGo6/pzu/0GwLJ+pWmaLMu2IqeUvuLES4BhGLTW8FdhjKnrWinVdZ3WGgroTwHWWqjSKIoIIfv9nhByOp3CMMyy7BsA3vsoiqCtpmkKjLe3N+jBjwP+HABXBaUUIUQpjaIInoyx0ypCyIOy+EIWbTnz2d6nifQXzzaEDtO2578AAAAASUVORK5CYII=" nextheight="838" nextwidth="917" class="image-node embed"><figcaption htmlattributes="[object Object]" class="">Simplified Version<br></figcaption></figure><p style="text-align: center"><strong>Potential Alternatives to Verkle Trees</strong></p><p>While Verkle trees are a promising solution, Ethereum is not strictly bound to them. The ultimate goal is to develop the most efficient stateless clients by keeping the database simple, SNARK-friendly, and capable of creating small state proofs and the community is exploring other alternatives solutions including:</p><ul><li><p>Binary trees: Potentially wrapped in a STARK to reduce proof sizes.&nbsp;</p></li><li><p>SHA256-based approaches: Known for safety but slower to prove.&nbsp;</p></li><li><p>Lattice-based hash functions: Arithmetically simple and prover-friendly, offering compact proofs.</p></li></ul><p>Ethereum remains open to adopting the best available cryptographic structure to achieve efficient stateless clients and true scalability. For more specific details of each potential alternative check out this <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://x.com/VitalikButerin/status/1817408883897593911"><u>tweet from Vitalik</u></a>.</p><p style="text-align: center"><strong>Timeline and Transition</strong></p><p>However, it's important to note that this future isn't imminent. While Verkle trees are a significant development, their integration into Ethereum mainnet will be a gradual process. They are not going to be included in the upcoming Prague-Electra hardfork, which is likely to be activated in early to mid 2025. Instead, <strong>the current roadmap suggests that Verkle trees (or a potential alternative) are more likely to be included in the Osaka-F star hardfork, tentatively scheduled for early 2026</strong>. This timeline, however, is subject to change as development progresses and the community aligns on priorities. There's still a lot of testing that needs to be done to ensure a smooth and secure transition. Switching to a new data structure like Verkle trees carries inherent risks, and the Ethereum community is committed to ensuring this change is implemented safely and responsibly. For more on the technical details of the transition see this <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://notes.ethereum.org/@parithosh/verkle-transition"><u>document</u></a> or this <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.google.com/presentation/d/1bSiz9Y32_loeyWzGoSRbanNvFd5vLgH5PlK2QXY90JA/edit#slide=id.g1ec44dccf71_0_8"><u>presentation</u></a>.</p><p>Welcome to the endgame, wen stateless.</p>]]></content:encoded>
            <author>chaskin@newsletter.paragraph.com (Jason Chaskin)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/4601cdcf624e93438dced07de6b743fc.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Just Another Restaking Explainer]]></title>
            <link>https://paragraph.com/@chaskin/just-another-restaking-explainer</link>
            <guid>x12ObVCEf6wWVnUvqkDI</guid>
            <pubDate>Thu, 16 May 2024 16:49:05 GMT</pubDate>
            <description><![CDATA[Restaking is a new method for securing blockchain infrastructure projects by leveraging the value already in the Ethereum network. It's transforming the landscape of decentralized security and introducing novel ways to incentivize participation and ensure the reliability of essential services.]]></description>
            <content:encoded><![CDATA[<p style="text-align: center"><strong>What is Restaking</strong></p><p>At its core, restaking helps developers build secure infrastructure projects (like oracles, bridges, or DA solutions) by tapping into the massive amount of value already secured within the Ethereum network. It allows developers to design their own proof of stake systems inside smart contracts. These smart contracts determine how much cryptocurrency participants must stake, the rewards for running the project correctly, and the penalties for misbehavior.&nbsp;</p><p>Think of restaking services as a miniature version of Ethereum with the slashing conditions enforced by a smart contract.&nbsp;Just like Ethereum needs to update its ledger and stay secure, so do projects built on it.&nbsp;This is achieved through PoS: participants lock up cryptocurrency as a guarantee of good behavior. This limits the number of participants who can update the project and provides strong security. Those misbehaving risk losing their stake (slashing), while those who help the project run smoothly earn rewards. The total amount of cryptocurrency staked determines the project's economic security, making it costly for anyone to attack. </p><p>Restaking applies the same security principles as PoS blockchains to other kinds of projects. Developers set requirements within smart contracts, such as how much cryptocurrency must be staked, the rewards for good behavior, and penalties for acting maliciously. This allows them to tap into the existing security of Ethereum, which includes both staked ETH and the ability to opt into these projects while still validating Ethereum. Without restaking, developers would need to bootstrap their own economic security, a slow process. This usually involves launching their own tokens, attracting users to buy and stake them, and gradually building up a substantial value locked to deter attacks. It's a challenging path, especially when dealing with a new and potentially volatile token. Some projects, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://blog.chain.link/what-is-a-chainlink-node-operator/">like Chainlink</a>, rely on the reputation of their node operators to ensure security. While this can be effective to a degree, it ultimately relies on trust rather than verifiable economic incentives.</p><p>Restaking changes the game entirely. It lets developers leverage the value secured on Ethereum right from the start. This means tapping into not only the ~$100bn of staked ETH securing the Ethereum network itself, but also ERC20 assets within the Ethereum ecosystem, worth hundreds of billions more. This is a seismic shift. Projects that previously could only dream of achieving robust security levels can now access it practically overnight. It's like going from building a small neighborhood watch to having the entire national guard at your disposal.</p><p>Consider the example of oracle networks. Before restaking, Chainlink had a dominant position due to its established reputation and network of node operators. However, restaking enables the creation of oracle networks where nodes have both their reputation <em>and</em> significant capital on the line. This poses a real threat to incumbents like Chainlink, as new projects can quickly achieve greater levels of security, disrupting the existing landscape and fostering greater competition. An application's security is only as secure as its weakest link. In many cases that link is its price oracle. This drastically increases the economic security of the oracle, and as a result, the security of the entire app.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/e72d2581630332bdbd03c60bc6322705.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>If a developer wants to build restaking services they need to code the node software to run these services as well as design the PoS consensus and encode it into an Ethereum smart contract. Users can then decide via the economic incentives if they want to run that particular service. If they decide they do they simply send coins, or "restake" their Beacon Chain ETH, to the restaking staking smart contract and run the node of the service.</p><p>Restaking could also run more like delegated PoS (this is how EigenLayer works) where there's a separation between stakers (who provide tokens to lock up) and operators (who run the technical side of things). On the system's UI you'll see a list of professional node operators, how much is currently delegated to them, and their fees. You simply click on an operator, choose how much to delegate, and they run the software on your behalf.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/535b717750f26236f1bec07da6e6c053.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class="">EigenLayer interface for the operator <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="http://P2P.org">P2P.org</a>. It shows the total value of delegated assets, the services they are registered to operate nodes for, and an option for users to delegate their assets to them.</figcaption></figure><p>Users evaluate restaking services, considering the economic incentives (potential rewards vs. slashing risks) and the technical requirements (node software, hardware) to decide if they want to run them. If interested, they can either directly "restake" their Beacon Chain ETH or stake their ERC20s into the service's smart contract and run the node themselves, or delegate their stake to a professional operator, depending on the restaking platform's design.</p><p>This restaking ecosystem functions much like a marketplace, mirroring how node operators choose which blockchains to support. Just as operators evaluate different blockchains based on factors like the staking token's potential, rewards, slashing risks, and node requirements, they now have the same choices with restaking services. The key difference is that restaking happens entirely through smart contracts on Ethereum and can be managed through a single user interface. Also, depending on the design of the restaking service, you might not even need to buy their native token. Instead, you can often use ETH or other ERC20 tokens directly.</p><p>To "restake" your Beacon Chain ETH, you need to set this up when you initially become a validator. Instead of using a standard withdrawal address, you create a specialized restaking contract and link it to your validator. This allows you to allocate portions of your staked ETH to other restaking services. When you decide to withdraw your ETH from being a validator on the Beacon Chain, the restaking smart contract will assess your performance. If you've acted honestly, you'll receive additional rewards. However, if you've engaged in malicious behavior, you could face slashing penalties.</p><p style="text-align: center"><strong>Is it Risky?</strong></p><p>You might be wondering how you can use the same 32 ETH that's securing Ethereum to secure other things. Isn't that spreading yourself too thin or even worse, recreating the financial instruments that caused the 2008 financial crisis, where the same underlying assets were repackaged and resold multiple times, amplifying risk? The key difference is that restaking doesn't involve creating new financial products or hiding risk. Your ETH remains on the Beacon Chain, securing the Ethereum network. By opting into restaking, you simply take on additional responsibilities, such as running nodes for oracles or data availability solutions. You're not removing your ETH from its core duty, you're extending its usefulness. While there might be some overlap between Ethereum validators and restaking operators, restaking itself doesn't add to your Ethereum validator tasks.</p><p>To clarify with an example: Imagine there’s $100bn worth of staked Ethereum securing the Ethereum protocol. Now, let’s say half of those running Ethereum nodes have additional capacity and choose to opt into running other services like zkTLS verifiers, oracles, zk-coprocessors, DA layers, etc. They would only opt in if they have the computing capacity, otherwise, it would be economically irrational, as they could be slashed on both Ethereum and the new services if their hardware fails. As a result, the same $100bn in staked ETH is now not only securing Ethereum but also providing economic security for these additional services. This maximizes the efficiency of the staked ETH, allowing it to secure multiple layers of the ecosystem simultaneously.</p><p>The risks of restaking are primarily managed through slashing. If you don't meet the requirements of the restaking service you're supporting, you could lose some of your staked ETH. In a worst-case scenario, if slashing reduces your ETH below the validator threshold, you'll be removed as a validator. Think of it like this: you're already working hard to secure Ethereum. Restaking lets you make your ETH even more productive, earning extra rewards while contributing to other vital services. It's a way to increase your impact, but it comes with the responsibility to maintain high performance across all your roles. </p><p>Restaking isn't without risks. A major concern is the potential for a mass slashing event on the restaking layer. If many validators get slashed simultaneously, they could be ejected from the Beacon Chain, significantly reducing Ethereum's overall security and potentially creating pressure for a social layer fork to resolve the issue. Additionally, there's a risk of collusion among restaking operators. We'll discuss how EigenLayer and the community are actively working to mitigate these risks later.</p><p style="text-align: center"><strong>State of Restaking</strong></p><p>EigenLayer, the first live restaking platform on Ethereum, launched deposits on December 19th, 2023. While native ETH restaking (ETH also used for Ethereum validation) was uncapped, Liquid Staking Token deposits initially had limits to ensure system stability. These limits have been gradually lifted and removed entirely as of April 16th, 2024. Despite these early limits, demand remains high, and the system is cautiously scaling. Current TVL is ~$15bn.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/5da3042b01ba62749f629d360320f339.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class=""><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://tokenterminal.com/terminal/projects/eigenlayer"><u>Token Terminal EigenLayer Dashboard</u></a></figcaption></figure><p>Before exploring EigenLayer further, let's define a few key terms:&nbsp;</p><ul><li><p><strong>Operators:</strong> Entities that handle the technical aspects of <strong>Actively Validated Services (AVSs)</strong>, which are infrastructure projects built on EigenLayer.&nbsp;</p></li><li><p><strong>Delegators (or Restakers): </strong>Individuals who choose to stake their cryptocurrency (ETH or LSTs) to support specific AVSs. In doing so, they can potentially earn rewards or have their coins be slashed depending on if the operator is malicious.</p></li></ul><p>EigenLayer launched on mainnet on April 9th, 2024, with EigenDA (an AVS developed by Eigen Labs) as the first AVS. At launch, payments to operators and slashing are not live. They planned to be implemented later this year once the protocol is more mature. Once slashing is live, if a service is run incorrectly, anyone can submit proof, and the smart contract will slash the staked currency. Therefore the slashing condition needs to be objective. EigenLayer is experimenting using it's EIGEN token for subjective slashing conditions but that's beyond the scope of this post. A veto committee, composed of stakers, operators, and AVS developers, will serve as a safeguard during the early stages of slashing. They will be able to reverse slashing decisions from non-malicious errors. This helps reduce risk for stakers and operators while AVSs are being refined.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/c5017d58397e60a72ff75fbf50a9aac7.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class="">Over 61.1% of EigenLayer's TVL comes from native ETH used for Ethereum validation. LSTs make up the remainder, led by Lido's stETH at 21.5% of the total TVL.</figcaption></figure><p style="text-align: center"><strong>Some Current Eligible AVSs to Receive Stake</strong></p><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.eigenlayer.xyz/eigenda/overview"><strong>EigenDA</strong></a><strong>: </strong>A data availability solution for Ethereum rollups and other applications.&nbsp;</p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://brevis.network/"><strong>Brevis coChain</strong></a><strong>:</strong> Allows smart contracts to access onchain historical data and customizable trustless computations, enabling data-driven DeFi, zkBridges, and more.</p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.altlayer.io/altlayer-documentation/restaked-rollups/mach-for-faster-finality"><strong>AltLayer MACH</strong></a><strong>:</strong> Provides fast finality for rollups on Optimism and Arbitrum, improving transaction confirmation times.</p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://xter.io/"><strong>Xterio Mach</strong></a><strong>:</strong> Supports Web3 game development, offering player-driven experiences built on decentralized infrastructure.</p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.eoracle.io/"><strong>eoracle</strong></a><strong>: </strong>A oracle network, enabling offchain data feeds for smart contracts.&nbsp;</p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.lagrange.dev/state-committees"><strong>Lagrange State Committees</strong></a><strong>: </strong>Introduces ZK light clients to optimistic rollups, improving their security and efficiency.</p></li></ul><p style="text-align: center"><strong>Risks</strong></p><p>Restaking introduces several potential risks to the Ethereum ecosystem, including:</p><ul><li><p><strong>Compromised Neutrality:</strong> Adding responsibilities to Ethereum validators could jeopardize Ethereum's core principle as a neutral base layer. Pressure to intervene in external service failures might lead to social layer forks, undermining trust in Ethereum.</p></li><li><p><strong>"Too Big to Fail" Dynamics:</strong> Reliance on forks to resolve issues could favor large projects, as they have more leverage to influence such decisions. This risks centralizing the ecosystem and harming innovation.</p></li><li><p><strong>Increased Staking Pool Centralization:</strong> EigenLayer's rewards structure may further incentivize staking pools, potentially leading to a few pools controlling significant portions of staked ETH. This weakens decentralization.</p></li><li><p><strong>Complex Risk for Delegators:</strong> Assessing the risks of AVSs and operators is difficult for delegators. This could lead to uninformed decisions, increasing the potential for both centralization and slashing events.</p></li><li><p><strong>Collusion Potential:</strong> Coordinated attacks by colluding operators could target several AVSs simultaneously and undermine the system's security model.</p></li></ul><p>EigenLayer and the Ethereum community are mitigating these risks by:</p><ul><li><p><strong>Prioritizing Contained AVSs:</strong> Supporting AVSs designed to minimize the impact on the broader Ethereum ecosystem.</p></li><li><p><strong>User-Friendly Risk Tools: </strong>Developing tools and education to help delegators properly assess risks.</p></li><li><p><strong>Collusion Monitoring: </strong>Monitoring restaking patterns to identify collusion attempts.</p></li><li><p><strong>Veto Committee:</strong> Temporary safety against unintended slashing in early-stage AVSs.</p></li></ul><p style="text-align: center"><strong>Liquid Restaking Protocols</strong></p><p>Instead of delegating directly through EigenLayer's UI, users can opt to use LRT (Liquid Restaking Token) protocols. These protocols simplify restaking. You deposit your ETH or supported LSTs into an LRT protocol. The protocol pools these deposits and, upon reaching increments of 32 ETH, uses them to spin up new validators. These validators then participate in both Ethereum validation and opt into restaking on EigenLayer. As these validators earn rewards from both traditional staking (Beacon Chain ETH and LSTs) and securing AVSs, the value of your LRT (representing your stake in the pool) increases. LRTs can also often be used within DeFi protocols while your underlying stake continues to earn rewards. EigenLayer currently has a 7 day withdrawal window to ensure accurate rewards and/or slashing calculations. LRT protocols may offer immediate withdrawal options, assuming there's sufficient liquidity available within the protocol's pool. It's also typically much cheaper (gas wise) to deposit your tokens into an LRT protocol rather than directly through EigenLayer.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/15907f6cc8c307eed37ea3f51c379c11.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class=""><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://defillama.com/protocols/Liquid%20Restaking"><u>DeFi Llama Liquid Restating Dashboard</u></a></figcaption></figure><p>There's currently $10.6bn of value locked in Liquid Restaking protocols, with different protocols choosing to support different AVSs on top of their Ethereum validation duties. Some LRT protocols are even building their own AVSs. One LST provider predicts an additional 0.5% yield from running AVSs on top of traditional staking rewards, “would be nice”. For more on the specifics of each LRT protocol, I'd recommend <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.youtube.com/watch?v=80PO-2yG6Q0"><u>this Bankless episode</u></a>.</p>]]></content:encoded>
            <author>chaskin@newsletter.paragraph.com (Jason Chaskin)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/eb64cb50db04aa01e5344dde21d8f63f.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Private Transactions: Where MEV and The Public Mempool Go to Die]]></title>
            <link>https://paragraph.com/@chaskin/private-transactions-where-mev-and-the-public-mempool-go-to-die</link>
            <guid>BAVUKgFi2fFbrJZCscI3</guid>
            <pubDate>Wed, 17 Apr 2024 15:05:11 GMT</pubDate>
            <description><![CDATA[The public mempool, the traditional gateway for Ethereum transactions, is declining due to MEV. The community has responded with innovative solutions. You can redesign applications to optimize transactions before hitting the mempool, minimizing MEV risk. Or, you can submit transactions directly, byp]]></description>
            <content:encoded><![CDATA[<p><em>Thanks to Alex Stokes for suggesting this topic and discussion about it.</em></p><p>The Ethereum public mempool, the traditional gateway for all transactions, is facing a decline in usage. The reason is the rise of MEV, where sophisticated actors can profit from transactions while they're pending. In response, the community have devised innovative ways to mitigate the negative effects of MEV. One strategy involves redesigning applications to delay sending transactions to the public mempool until potential MEV is minimized. This is achieved through offchain transaction optimization, and currently, 22% of swaps use these redesigned applications. Additionally, users are increasingly opting for private transactions, completely bypassing the public mempool. They do this to either avoid MEV entirely or get its value returned to them. Currently, about 10% of transactions use this method. I believe both trends will intensify. <strong>The future likely lies in MEV-optimized applications seamlessly integrated with private transactions, maximizing user benefit. Ultimately, the public mempool may become a niche tool primarily used for transactions requiring the highest level of censorship resistance, even if it means suffering the negative consequences of MEV.</strong></p><p>Don't worry if that introduction seemed confusing, I'll break everything down and explain it in a clear way 🫡 </p><p>In this post I’ll explain: </p><ul><li><p>How the Ethereum transaction process originally worked. </p></li><li><p>Why MEV led to the creation of new transaction pathways. </p></li><li><p>How new applications are designed to minimize MEV. </p></li><li><p>Methods for bypassing the public mempool via private transactions (private RPCs, OFAs). </p></li><li><p>The role of L2s and future Ethereum upgrades. </p></li><li><p>Why the public mempool will only have a niche role for censorship resistance.</p></li></ul><p>Let's start by giving an overview of how the transaction supply chain originally worked and briefly go over what MEV is and how it changed everything. Originally there was only one way for a transaction to land onchain, your wallet would format your transaction, and you'd sign and broadcast it to an Ethereum node (either your own or a service like Infura or Alchemy). These nodes would gossip the transaction to their connected peers, creating a network wide pool of pending transactions called the public mempool. You can view the current live public mempool <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.ethernow.xyz/mempool/all"><u>here</u></a>. In PoW, miners would then fill blocks with the highest gas-paying transactions and compete to find the "golden nonce" to propose the block. However, the public mempool's transparency creates an issue. While your transaction awaits confirmation, it's visible to everyone, including sophisticated actors who can exploit this visibility for profit, leaving the sender of the transaction worse off. This is called MEV, and because of it the transaction landscape had to be changed.</p><p>In PoS, the validator that’s randomly selected to propose a block has a temporary monopoly over the transactions that go into a block and can extract higher yields than just issuance and gas fees. This is done by strategically reordering, including, or excluding transactions to benefit themselves. This poses a serious risk: if one actor becomes exceptionally good at MEV extraction, they could attract a disproportionate amount of validator stake. They could create a staking pool, offering higher yields to stakers and thereby attracting more stake. This would lead to significant centralization within the validator set and undermine Ethereum's core principle of trustlessness.</p><p>To combat this, the transaction supply chain was redesigned with proposer-builder separation (PBS). While the exact workings of PBS aren't crucial for this post, it's important to understand that any validator can now also run a piece of software created by Flashbots called <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://github.com/flashbots/mev-boost">MEV-Boost</a>, giving them access to sophisticated entities called builders who create blocks and bid to have their blocks included onchain by the randomly selected validator. There’s also an entity in the supply chain called searchers that specialize in finding profitable MEV opportunities and bid to have their bundles included in the builders' blocks. However, PBS doesn't address the ways builders can exploit the public mempool to extract MEV from users. In fact, it further entrenches MEV in the ecosystem, since running MEV-Boost is economically rational for validators, more users are likely to feel the consequences of MEV. If you do want a deeper understanding of PBS, you can refer to my post: <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://paragraph.xyz/@chaskinonchain/ethereum-proposer-builder-separation-past,-present,-and-future"><u>Ethereum Proposer Builder Separation: Past, Present, and Future</u></a>.</p><p>The public mempool remains a prime target for searchers. These sophisticated actors analyze pending transactions and can insert their own transactions to profit at the expense of users –&nbsp; think sandwich attacks, DEX/CEX arbitrage, or exploiting offchain knowledge about NFTs. With <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://mevboost.pics/"><u>around 90% of validators running MEV-Boost</u></a> it's clear that MEV remains a major issue for users. But this doesn't mean users and developers have been passive. Far from it, they've been actively developing strategies to counter MEV's negative effects.</p><p>The playbook for users to avoid the negative effects of MEV is simple: avoid the public mempool. There are two main approaches to accomplish this, which can also be used together for maximum benefit. The first is to use “MEV-optimized” applications where you express and sign your intent offchain (e.g., the trade you want to make). This intent is analyzed and only submitted to the public mempool (potentially as multiple optimized trades) when it minimizes MEV risk. The second strategy is to send your transaction directly to a builder, bypassing the public mempool entirely. This limits searchers' ability to exploit your transaction. The MEV-optimized applications I previously introduced could also submit their transactions directly to builders for even greater MEV protection. Let's break these down further.</p><p>All transactions included in L1 blocks via the public mempool are vulnerable to MEV. Ethereum's 12 second block times create a window for exploitation, but some applications are particularly prone to MEV extraction. AMMs, particularly those designed like Uniswap V2, are major sources of MEV. In fact, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://explore.flashbots.net/"><u>98.85% of extracted MEV has come from just three AMMs: Uniswap V2 (63.4%), Balancer V1 (19.39%), and Uniswap V3 (16.06%)</u></a>. Their design allows searchers to profit from slippage. In simplified terms, slippage is the difference between your desired swap price and the actual executed price. When you submit a swap transaction to the public mempool, searchers can manipulate the order to ensure you receive the worst possible price within your specified limit, profiting from this price difference. However, there are app designs that mitigate this issue by using offchain intents to optimize transactions before they hit the public mempool.</p><p>These swapping applications that limit MEV are known as DEX aggregators. While their specific designs vary (like 1inch, Matcha, or the upcoming UniswapX), the overall principle is the same: you express your trading intent offchain and it’s analyzed and executed onchain in a way that minimizes slippage and MEV risk. There are two common approaches. The first is smart routing, where you submit your intent (e.g., swap 1 ETH for 3,500 USDC) to a server. It analyzes liquidity across multiple AMMs and devises an optimal trade route, potentially splitting your order across exchanges for the best price. The goal is to minimize potential slippage, making MEV extraction unprofitable for searchers. The second approach is offchain order matching, used by systems like CoW Swap. Here decentralized "solvers" match buyers and sellers offchain, and then execute these matched orders onchain in batches to save gas costs. Think a decentralized order book. Both methods introduce some degree of trust in the offchain components, as they could theoretically fail to execute your order or go offline. Despite this tradeoff, DEX aggregators are gaining popularity, currently representing <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://dune.com/kolerbear/dex-aggregator-share-of-volume"><u>22% of total DEX volume</u></a>. This share is likely to grow as users become more aware of the price benefits compared to swapping directly on a single AMM, where they often pay higher costs due to additional fees (like the Uniswap frontend fee), slippage, and hidden MEV costs. We can expect further innovation in MEV-optimized app design, building on the foundation laid by these early examples.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/6726d096bf0b099b6bc1ae4bf8c5ce74.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class=""><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://dune.com/megsdevs/dex-aggregator-volumes">Dex Aggregator Volumes</a></figcaption></figure><p>Now let's break down the second way users can avoid the public mempool: private transactions. These transactions capitalize on the fact that builders now create 90% of Ethereum blocks. Instead of broadcasting your transaction to the public mempool, you send it directly to a builder or group of builders. There are two main approaches within private transactions: private RPCs and OFAs (Order Flow Auctions).</p><p>An example of a private RPC is Flashbots Protect. Unlike broadcasting transactions to the public mempool, Protect submits them directly to selected builders, shielding them from the view of frontrunning searchers. Builders may share limited transaction details with certain searchers to facilitate inclusion, but this information is insufficient for frontrunning and restricts them to backrunning strategies only. Since its inception, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://dune.com/flashbots/flashbots-protect-mevshare"><u>Protect has protected over 13 million transactions and has processed nearly $30 billion in DEX trading volume</u></a>.</p><p>Flashbots Protect further benefits users with MEV-Share, an integrated Order Flow Auction (OFA, I’ll explain OFAs in more detail in the next paragraph). MEV-Share auctions backrunning opportunities among searchers, returning a significant portion of the MEV extracted from your transaction. The trade-off is that limiting the number of builders or the amount of back run MEV you tolerate can potentially slow down your transaction's inclusion onchain. <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://dune.com/flashbots/flashbots-protect-mevshare"><u>MEV-Share has refunded over over 360 ETH across 10.5k transactions</u></a>.&nbsp;</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/0360f56296602cdc3fe30b5273ce61b1.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class="">Loving the memes on this <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://dune.com/flashbots/flashbots-protect-mevshare"><u>dashboard</u></a> from Flashbots</figcaption></figure><p>OFAs build upon the concept of a private RPC and add an auction component. The defining characteristic of OFAs is that they aim to refund most of the MEV extracted from your transaction back to you. Users submit their orders (transactions or intents) to an auctioneer, where MEV searchers compete to execute them. While searchers can still use MEV strategies, competition within the auction drives them to bid aggressively, allowing the bulk of the MEV proceeds to flow back to you. With MEV-Boost, most of the value extracted from MEV flowed to validators, but OFAs shift this dynamic to benefit the users who generate the value. This realignment is generally considered a more fair outcome. For example, consider a large swap on Uniswap where you want to trade 100 ETH for 350,000 USDC. If submitted directly, MEV bots could manipulate the order to cause significant slippage, potentially resulting in you receiving only 320,000 USDC. However, in an OFA, searchers will compete to execute this trade, bidding up the amount of slippage they're willing to return to you. This competition could result in bids where searchers offer to return, say, $29,000 back to you (minus fees taken by the auctioneer). As a result, you might end up receiving 349,000 USDC (320,000 from the swap and 29,000 as an MEV refund), dramatically reducing the negative impact of MEV. OFAs are a relatively new concept and are still under development. While originally pioneered in 2021 by the now-closed project Rook, they are currently offered in various forms by projects like <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://uma.xyz/oval"><u>UMA's Oval</u></a> and Flashbots' <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.flashbots.net/flashbots-protect/mev-share"><u>MEV-Share</u></a>. Continued innovation will likely bring greater refinement to OFA models and potentially address challenges like centralization or potential trust assumptions.</p><p>Currently, around 10% of transactions are sent privately, bypassing the public mempool. You can see this trend on <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="http://mempool.pics"><u>mempool.pics</u></a>. I believe this number will continue to grow. With the financial incentives of MEV refunds or avoidance, why would users choose to expose their transactions on the public mempool? It's a matter of increasing awareness and improving the designs of OFAs and private RPCs. In the long term, I envision MEV-optimized apps like DEX aggregators integrating with private RPCs and/or OFAs to further benefit users. While they aim to minimize MEV, it can't be fully eliminated, so returning the remaining MEV to users (via OFAs) is a logical next step.</p><img src="https://storage.googleapis.com/papyrus_images/1b2eac7645756411c248413e8928a38d.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAWCAIAAAAuOwkTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFM0lEQVR4nJVVW2zbVBg+DITERas2FYkHKpAqTYzBtk7rlaRrt/HIXuAFhAQIgcQDAyaEhoQGYqK7tF2TOAldu160TJpUbS2zSkaVJUsbZ2maObfGTeu67pKljp3kxG1uTi9ZkHNtisTF+vT7O8efz+f/P7Z/EA6HIYSLFDU9PY1hZhOGeQjCaDTq9XqrdcZqncFxfEKn83rnLRbL1JQp/D8PwLIsz/M4jg8MDQ8MDqpVqrtarQJRdFy40NfXd0NzQ6vVdnV1GfT6/v5+uVweCYdCHFsEl0OJlDgbDocKBvkThDCZTArrG0ImG09vpTPZ9Ww2lckKOWxms7H0lpDJpjNZPiHwCWE1sc4nBLiWgGvJPPhEKromAsZTfEKIwGiFQYjjrDa7zTDuGJHjt5A8HhYJfguxjyrFOILYR9W5odox2uvRaua0Q/MT1+fuDrvHB93ogAsd8IwP2kd/8y+4ch6hggHLrKxEYlj/jxcOgCuNQNYiRnku9jSJUSTNoLu+cPXyEXD78wPzN88TY0rHCOJFexnjTe7BCIuNRGZQGlVQZi1cS4Q4rpQBC+Pp6eHz3c1AfRwo2oCqHSBtQFmEOHOyQNTHQXcj0J87NWm47/e6Z60Wwja9FnwcZZY5ej7K+EPEdMDzIBJdLWcQjUZc80t3Lp1WtAB5q7gQsi0qi0QhLXC5BNz64rC2vxPXXMQ1F7FrP9k0Hdi1n/WqH7Brv0zKT9OWPwsZQAhJklyiFpObWZumo7NefHbR45i4ELIN+Ukx5gSIFKgkQNECFG+LQKQAkQClVETXEeBCB/jURohjAc/zJgwjZmeD0fg95VnZ3zJAiisWjLelVRjmuCzHZa1AfRJ0NQL3+FDZwGazLVGLy8HIBPJ9T3PhznKJjlWYlfzKw6K+kGWb+C64x4dWE+uiAYTQ7XYvkgtCRixRd33Fncp8TXJLiNte6VQqV0FWFF8RMxgsZAAhdDqd9BK1FOC0sjOylopdlVduw78ib9C5IwOv17vi97HRuPHquZ6msk5RKvS26peeVNUOZJKKDPJXFTtKVPoO+NTmjObXznpxo5DcuvLcpslbCxFpAz2SAi9NlsQiaQXdUqA8AS7XA9d2A5blYDjkWXyEXvpKJQFX23dC3irGvhOgtzjT2yZGRFrWqNtFj7wMaQZz2iEYT5cz4ILBWDozNXzx7CFw+uiuMw273nvjhQ8PVb3/5ouf1D3/7oG9n9Y9+8HB3af2V9XVvlJbU7PvtVcbal+ural55/Xqrxt2fXP0qS/rwMeHn/vsIPi24ZmP9gHsjiaW2laiIMuup2LfdajB0/tBdaOIvS2gqgnsaRFR1SzyainYLQFVElDdliNSsEcqDvc2gOomUN0Aqo6CPU3gpSYA3pJfRzeFZJAtGuR/qDojht7HdWb7mM6M6swGiwPVW9AJk8Hi+MNoRXWY3ozrzTZ0YvKeyWYw47/fNehMMzqz87YOG9OZdRbXHb15TIdNTD2kaB+EkfLvOhqNkiTpcbsyG0k+GnE78USMF5IxwmUPc+ymkCRmXcGA/8nWBkUuUOTCk62NFb/PS3g2hSQMc24nLsRXU8lVwuWMcMH1VAyWOlq+25DkIkHMFXvnDMMwKwyDYWafz8+yrNPpoullLhRyOF3zJBkRv02PhyAiEFIUZbc7WJbz+XwmzBwIrOQLXm6Z+RNN0wzDQAhpmvb5/BDCQCBAURSEkGEYmqYhhCzLkiSZ15MkybIshHD50aNAIMDzvP/x47xsZ0/+h35dUv8XsoOXDP4Cl5MAxnPwcX4AAAAASUVORK5CYII=" nextheight="496" nextwidth="710" class="image-node embed"><p>So, is the public mempool dead? Not entirely. There's more to consider, especially with Ethereum's rollup-centric roadmap. How do L2s and future upgrades factor into this equation?</p><p>When you submit a transaction on an L2, it's typically forwarded from an RPC service like Alchemy or Infura to the L2's centralized sequencer. If your transaction has sufficient gas, the sequencer will bundle it with others and submit the batch to L1 to update the L2's state. Depending on the design of the rollup it's mempool can be public (queried through the RPC service) or private (visible only to the sequencer itself). However, regardless of the mempool's visibility, the sequencer has full control over transaction ordering, creating the potential for MEV extraction. However, to date, L2 sequencers have generally honored their commitments to avoid this practice. But even if the sequencer chooses not to extract MEV on L2 itself, if their mempool is public, searchers may still be able to leverage information from the mempool to extract MEV on L1. While this centralized sequencer model reduces MEV on the L2, it also creates a significant risk of censorship.</p><p>Centralized sequencers can censor transactions. This was demonstrated during a recent hack on an application built on the Blast blockchain on March 27th. The hacker stole $63M, but Blast's sequencer blocked the hacker's transactions, preventing them from cashing out and moving the tokens off the rollup. Left with no other option, the hacker surrendered their private key to the Blast team. The Blast team then used this private key to submit and process a transaction (on behalf of the hacker) that recovered the stolen funds. While this example highlights how censorship can work in the protocol's favor, it also underscores the risks of centralization. It weakens the system's credible neutrality. Long-term, a reliance on centralized sequencers poses significant risks, especially on the regulatory side.</p><p>While the future is uncertain, many L2s will likely move towards decentralizing the sequencer role. This decentralization, even if not achieving the same level of permissionlessness as Ethereum validation, remains crucial for credible neutrality. However, it also reintroduces MEV risks. How MEV will evolve in this new landscape is unclear, but we can build off of the lessons we've learned on L1. The development and use of apps that minimize MEV leakage will undoubtedly continue to rise. As a user, preference will always lean towards systems that offer protection from excessive MEV extraction. L2s understand this, and I anticipate they will design systems that limit public mempool use and incorporate MEV redistribution or auction mechanisms similar to those on L1. Additionally, the “private transaction space” is continuing to innovate, with solutions like <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://writings.flashbots.net/mevm-suave-centauri-and-beyond"><u>Flashbots SUAVE</u></a> potentially playing a significant role in shaping the future of L2 MEV mitigation and harnessing.</p><p>It's important to remember that all of this is speculation. Another way rollups could potentially decentralize the sequencer is to have a permissioned sequencer set controlled by the rollup's DAO. DAOs could have the power to kick sequencers off the set if they're caught extracting MEV or censoring transactions. The future of decentralizing the sequencer remains an open question, and different rollups will likely approach this problem in different ways. If this problem interests you, I'd recommend checking out <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://community.starknet.io/t/starknet-decentralized-protocol-i-introduction/2671/5"><u>StarkNet's community forums</u></a> where they're tackling this problem in the open and accepting community input.</p><p>There's a specific type of rollup with a unique design that deserves its own analysis: Based Rollups. Many in the Ethereum community, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://ethresear.ch/t/based-rollups-superpowers-from-l1-sequencing/15016"><u>including Justin Drake</u></a>, see them as the maximally credible neutral solution for L2s, potentially addressing the sequencer centralization challenge I was just describing. These rollups leverage Ethereum's existing transaction supply chain for sequencing and proposing L2 blocks. L1 block builders take on the role of what current L2 sequencers do, ordering L2 transactions and submitting blocks (along with proofs, if applicable) to update the rollup's state on the L1 smart contract.&nbsp; The exact implementation of the transaction supply chain, including the presence of a public or private mempool, varies across Based Rollup construction. Taiko, the first Based Rollup, will launch with a public mempool similar to Ethereum's. This simplifies the launch process, but reintroduces MEV risks. When you send a transaction on Taiko, it goes to a Taiko node for verification and then is broadcasted to other Taiko nodes, creating a public mempool that L1 builders can query. Long-term, I believe Based Rollups will evolve away from public mempools to further mitigate MEV. They might adopt private RPC approaches, implement OFAs, or utilize systems like Flashbots SUAVE, which offers a form of encrypted mempool that significantly differs from the fully transparent public model.</p><p>If you stopped reading here you might think the public mempool is as good as dead due to MEV risks. Well, the public mempool's role will actually evolve, serving a specific, less frequent, but vital purpose: maximizing censorship resistance. For the absolute highest guarantee of transaction inclusion using the public mempool is the best option. Transactions sent via private RPCs bypass the public mempool entirely, meaning validators who don't run MEV-Boost and outsource block building will never see them. While this is currently a minority (around 10% of validators), these validators do not censor at all and simply include the transactions that pay the highest gas price in a block.&nbsp;</p><p>Currently, a majority of relays (entities that pass blocks and bids from builders to validators) engage in censorship, refusing to forward blocks containing transactions from OFAC sanctioned addresses. If you want to send a transaction from one of those addresses and use a private RPC to avoid the public mempool, validators who don't run MEV-Boost won't see it. In this scenario, you'll rely on a non-censoring relay winning the proposed block, potentially leading to a longer wait time. While a non-censoring relay will likely include your transaction eventually, submitting it to the public mempool would generally lead to faster inclusion as it's visible to validators who don’t run MEV-Boost in addition to all the builders. Additionally, there's the risk of relays that currently don’t censor also adopting censorship. Ultimately, the public mempool remains the strongest tool for maximizing censorship resistance. If you're sending a transaction from an address that faces potential censorship, accepting the negative effects of MEV might be a necessary trade-off to ensure timely inclusion, or in the worst case, inclusion at all.</p><p>Ethereum's future upgrades might significantly impact public mempool usage. One exciting proposal gaining traction is <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://eips.ethereum.org/EIPS/eip-7547"><u>inclusion lists</u></a>, this upgrade might be included in the upcoming Pectra hard fork. This <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://hackmd.io/@ttsao/ByO9D-Uaa"><u>aims to strengthen censorship resistance</u></a> by giving MEV-Boost running validators more control over transaction selection. Essentially, blocks would include a new "inclusion list" specifying transactions that must be included in the next block. If the next block doesn't contain all the transactions in the inclusion list then the block is invalid. This enforces a certain level of compliance among validators. The transactions on these lists would come from the public mempool, potentially solidifying its role as a censorship resistance tool.</p><p>It's important to note that Ethereum client implementations could offer customizable options for censorship. Certain clients may allow users to configure filtering mechanisms to prevent certain transactions from being included in inclusion lists. Despite this potential for optional client-level censorship, the very existence of inclusion lists forces builders to respect them. Validators defying inclusion lists risk having their blocks rejected, leading to missed rewards. This economic incentive, along with the likely large presence of non-censoring clients, helps mitigate censorship, uphold resistance principles, and strengthen the public mempool's role as a place for transactions needing maximum censorship resistance.</p><p>Another potential change to Ethereum's transaction flow is the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://ethresear.ch/t/execution-tickets/17944"><u>Execution Tickets</u></a> upgrade. This upgrade offers various benefits like <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://warpcast.com/chaskin.eth/0xcdef2cc8"><u>smoother validator rewards, improved trustlessness for liquid staking protocols, L1 preconfirmations for Based Rollups, an easy to implement MEV burn, and more</u></a>. However, our main concern is how it affects the public mempool. Execution Tickets change the system by removing validators ability to build blocks locally. It introduces an inprotocol lottery system that does two things: it sells "tickets" granting holders a chance to propose the transaction list for a block, and it randomly selects winning tickets. Holders of winning tickets can propose a block and their ticket is consumed. This change eliminates the previous advantage of the public mempool where a non-MEV-Boost validator could locally build and propose blocks in a credibly neutral way. However, Execution Tickets will still work with inclusion lists. Validators will still publish their inclusion lists, and the following execution ticket winner must include those transactions or their block is invalid. Therefore, the public mempool retains its value as a censorship resistance tool. If a transaction is in the public mempool it’s likely to be included in an inclusion list, guaranteeing its inclusion in a future valid block.</p><p>Regardless of the future of Ethereum, whether users are on L1 or L2, which upgrades are included, or continued reliance on existing infrastructure, one trend is certain: MEV-optimized applications and private transactions will continue to rise. Users will increasingly seek out DEX aggregators, and private RPCs / OFAs, either individually or combined, to minimize MEV's impact. These advancements and further innovations will empower users and come close to <strong>eradicating the negative consequences of MEV for the vast majority</strong>.</p><p>However, the public mempool won't disappear entirely. It will evolve from a universal gateway to a niche tool, crucial for a specific use case: guaranteed censorship resistance. A small portion of users, prioritizing the fastest possible onchain inclusion for their “transaction facing potential censorship” over MEV minimization, will continue to leverage the public mempool. Here, transactions are visible to everyone. This transparency comes at a cost in the form of potential MEV extraction, but it prioritizes the core principle of censorship resistance.</p>]]></content:encoded>
            <author>chaskin@newsletter.paragraph.com (Jason Chaskin)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/10b7285fd682055f26ec32dc6ffd0af2.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[From Abstract to Accessible: Ethereum's Journey Towards Programmable Accounts]]></title>
            <link>https://paragraph.com/@chaskin/from-abstract-to-accessible-ethereums-journey-towards-programmable-accounts</link>
            <guid>Itdo6rCHt8EUqIWHkgrI</guid>
            <pubDate>Mon, 04 Dec 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[A guide exploring ERC-4337 and how it changes Ethereum's account system by introducing smart contract accounts, offering enhanced security and user flexibility over traditional EOAs. This piece also dives into future account related developments in Ethereum]]></description>
            <content:encoded><![CDATA[<h3><strong>Introduction</strong></h3><p>Unless you've been living under a rock (who knows, maybe even Patrick is excited about it), you've probably heard about account abstraction and ERC-4337, or at least noticed the excitement surrounding it. With ERC-4337, Vitalik's original vision for accounts can finally be realized. He initially aimed to build a system with native account abstraction, but after 1.5 years of initial development, he was forced to ship Ethereum without it due to community pressure. Now, with ERC-4337 live, we can fully appreciate the benefits of having our accounts as smart contracts, a significant shift from what they've been since Ethereum's inception.</p><p>For the remainder of this piece, I'll refer to smart contract accounts simply as smart accounts. These smart accounts allow you to program your desired verification rules as well as execution calls. This functionality means you can sign transactions with biometric methods like Face ID, encode multiple contract calls in a single action (such as approve and swap), enable social recovery methods, and facilitate pull payments like authorizing Netflix to withdraw 10 USDC a month. You can also set specific rules for your keys, such as allowing someone to trade a certain amount of tokens on your behalf without the ability to move NFTs or USDC, among other functionalities.</p><p>However, to truly grasp the workings and implications of account abstraction, it's essential first to understand how Ethereum accounts and transactions functioned before the rise of ERC-4337. And that's where our journey begins.</p><h2 style="text-align: center"><strong>Ethereum Initially</strong></h2><p>In Ethereum, an account represents a participant with a unique address, capable of holding ETH. There are two types of accounts:</p><ul><li><p>Externally Owned Account (EOA): Controlled by individuals or entities who possess the corresponding private key. EOAs are capable of initiating transactions directly, such as transferring ETH, interacting with smart contracts, or deploying new contracts.</p></li><li><p>Contract Account: Automated agents, known as smart contracts, that are deployed on the Ethereum network. They are governed by their embedded code and do not possess private keys. Unlike EOAs, Contract Accounts cannot initiate transactions on their own. They require an external trigger, a transaction initiated by an EOA or another contract, to perform actions defined in their code.</p></li></ul><h3><strong>EOA Overview</strong></h3><p>Transactions must originate from an EOA and they are directly controlled through its private key. Possession of this key allows an individual (or entity) to sign transactions, effectively authorizing actions such as transferring ETH or interacting with smart contracts. This signature is the digital proof that the transaction has been authorized by the holder of the private key associated with the account address from which the transaction is sent. In these transactions, the corresponding public address, which is derived from the private key, is used as the <code>from</code> field in the transaction object. When an Ethereum full node receives a transaction from its peer, it needs to validate the transaction's signature. They are able to take the transaction and its signature and output the address that signed that transaction. If the outputted address does not match the <code>from</code> address, the transaction is immediately rejected, effectively blocking unauthorized transactions on the network. The <code>from</code> address is also the public address that serves as the account's visible identifier on the blockchain, enabling other participants to send funds to it. Anyone can create a transaction with the <code>from</code> address being any address. For instance, I could create a transaction where the <code>from</code> address is Vitalik's address. However, if you can't sign the transaction using the corresponding private key, the transaction will immediately be rejected. Therefore, ownership of an EOA's private key means complete control over the account and its funds.&nbsp;</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/e61ad588f74cd91b4fdef8e1da20a308.jpg" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><h4><strong>“Creating” An EOA</strong></h4><p>Creating an EOA on the Ethereum network is a bit of a misnomer. Rather than creating a new account in the traditional sense, generating a new EOA is more about gaining access to a specific address within Ethereum's vast, pre-existing address space. This process is straightforward and free of charge. Your Ethereum node can easily set up a new account upon request. The first step is generating a private key, a unique, random, 256-bit number. The chances of duplicating a private key are virtually nonexistent, equal to finding a specific atom within the observable universe. Here’s the enormity of that number for perspective: 115,792,089,237,316,195,423,570,985,008,687,907,853,269,984,665,640,564,039,457,584,007,913,129,639,936. Even with the entire global population generating a billion keys every second, the probability of a repeat within our universe's lifespan is minuscule.</p><p>Using cryptographic algorithms, a public key is derived from the private key. Ethereum, like Bitcoin, uses the Elliptic Curve Digital Signature Algorithm (ECDSA) with the secp256k1 curve. The process is a one way street: producing a public key from a private one is easy and cheap, whereas the reverse is nearly impossible with today's technology (aka until quantum computing arrives). The public key is a 512-bit figure, formed by two 256-bit coordinates on the elliptic curve. This deterministic process ensures the same private key always results in the same public key. The Ethereum account address is then created using the Keccak-256 hashing algorithm, which processes the public key to produce a 256-bit hash. The unique Ethereum address is formed from the last 160 bits (20 bytes) of this hash. In Ethereum's design, all possible addresses theoretically exist within its vast address space. It's possible to send ETH to an address for which no private key has yet been generated. Remarkably, if a private key for that address is later created, the individual who generated it would gain access to the sent assets.</p><p>For those interested in a deeper dive of the cryptography involved, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://www.youtube.com/watch?v=dCvB-mhkT0w">Elliptic Curve Cryptography Overview</a> and <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://www.youtube.com/watch?v=za9azzh4v9A">The Discrete Logarithm Problem</a> videos provide an excellent breakdown of how the cryptography works and why it remains secure.</p><h3><strong>Contract Account Overview</strong></h3><p>Contract accounts, commonly known as smart contracts, differ significantly from EOAs. While EOAs are controlled by individuals through private keys, contract accounts are governed by predetermined code and lack private keys. Contract accounts are created and deployed on Ethereum through a transaction initiated by an EOA. The deployed code, written in a programming language such as Solidity, is then compiled and executed by the EVM.</p><p>Every time a contract account receives a transaction, either from an EOA or another contract, its code is executed by the EVM. These accounts maintain an internal state, a record of data like balances and ownership details, which can be altered according to the rules set in the contract's code. For instance, a DeFi application or a token contract like ERC-20 are examples of contract accounts, each with its unique set of rules and functionalities.</p><p>The embedded code in contract accounts often includes validation rules that define the conditions for successful transactions or function executions. If a transaction or function call does not meet these predefined rules, the contract will automatically revert the transaction. For example, a smart contract might have a rule that only allows the contract owner to withdraw funds. If someone else tries to invoke the withdrawal function, the contract will check against its ownership condition, fail the validation, and the transaction will revert, ensuring the assets remain secure.</p><h4><strong>Creating a Contract Account</strong></h4><p>Creating (deploying) a contract account from an EOA costs a gas fee, reflecting the computational resources required to update the Ethereum network with the new contract's code and state. There are two different ways to create a contract account. The first, and standard method, is by using the <code>CREATE</code> opcode. It's executed in Solidity using the syntax <code>new ContractName()</code>. The contract's address generated through this method is determined by two factors: the creator's address and their transaction count, also known as nonce. However, the exact address of the contract remains unknown until the transaction is confirmed, due to the nonce changing with each transaction the creator makes. </p><p>The process for determining the contract address using the <code>CREATE</code> opcode can be illustrated through the following pseudo-code: </p><pre class="dont-break-out text-sm md:text-base"><code class="language-javascript">rlpEncoded = RLP(senderAddress, nonce); 
hash = keccak256(rlpEncoded); 
contractAddress = '0x' + last20Bytes(hash);</code></pre><p>* RLP stands for Recursive Length Prefix, a serialization method used in Ethereum.</p><p>The other method is using the <code>CREATE2 </code>opcode to allow for more predictable contract address generation. This method can be executed in Solidity using <code>new ContractName{salt: salt}()</code>, where salt is a parameter defined by the user. The contract address in this case is derived from a combination of the sender's address, the salt, and the contract's initialization code. </p><p>The pseudo-code for the <code>CREATE2</code> opcode looks something like this:</p><pre class="dont-break-out text-sm md:text-base"><code class="language-javascript">hash = keccak256(0xff ++ senderAddress ++ salt ++ keccak256(init_code)); 
contractAddress = '0x' + last20Bytes(hash);</code></pre><p> * init_code refers to the smart contract's bytecode.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/510034ba4c045df2cd9aa5d032f260fa.jpg" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><h3><strong>Accounts in the EVM</strong></h3><p>In the EVM, every account is associated with four fields:</p><ul><li><p><strong>Nonce:</strong> For EOAs, this counts the number of transactions sent. For contract accounts, it represents the number of contracts created. The nonce prevents replay attacks by ensuring each transaction is unique.</p></li><li><p><strong>Balance:</strong> The amount of Ether in the account, measured in wei. There are 1e+18 wei in one ETH, with wei being the smallest denomination of Ether.</p></li></ul><p><strong>Fields Specific to Contract Accounts:</strong></p><ul><li><p><strong>CodeHash:</strong> The immutable hash of the EVM code that defines a contract account's functions and behavior. In EOAs, this is a hash of an empty string, reflecting the absence of executable code.</p></li><li><p><strong>StorageRoot:</strong> Known as the storage hash, it's derived from the root node of a Merkle Patricia trie, a data structure for mapping keys to values. This is used by contract accounts for data storage. EOAs, which do not store data in this manner, have a constant value representing an empty trie.</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/47c22f38c1ba1e21a541c0f6dfc78aef.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><h3><strong>Transactions Overview</strong></h3><p>Transactions are actions that change the Ethereum's network state. All Ethereum nodes agree on this state and share transactions that change it. When a block with new transactions is confirmed, it updates the network's agreed upon state.</p><p>Ethereum Transaction Structure:</p><ul><li><p><strong>From:</strong> The sender's Ethereum address (EOA).</p></li><li><p><strong>To (Recipient):</strong> The receiving address. ETH is transferred to EOAs, or it triggers actions in contract accounts.</p></li><li><p><strong>Value:</strong> Amount of ETH being transferred, in wei.</p></li><li><p><strong>Gas Limit:</strong> The highest gas amount the transaction can use.</p></li><li><p><strong>MaxPriorityFeePerGas:</strong> The extra fee given to miners or validators.</p></li><li><p><strong>MaxFeePerGas:</strong> The maximum fee per gas the sender is willing to pay, inclusive of the base fee and priority fee.</p></li><li><p><strong>Nonce:</strong> A sequential number tied to the sender's address, indicating the number of transactions sent.</p></li><li><p><strong>Input Data: </strong>Used for calling contract functions, sending info, or deploying contracts.</p></li><li><p><strong>Signature (v,r,s):</strong> Added after the transaction is signed, confirming its authenticity.</p></li></ul><p>A sample transaction for sending 0.01 ETH from one address to another would look like this:</p><pre class="dont-break-out text-sm md:text-base"><code class="language-javascript">{&nbsp;
&nbsp;&nbsp;"from": "0xEA674fdDe714fd979de3EdF0F56AA9716B898ec8",&nbsp;
&nbsp;&nbsp;"to": "0xac03bb73b6a9e108530aff4df5077c2b3d481e5a",&nbsp;
&nbsp;&nbsp;"gasLimit": "21000",&nbsp;
&nbsp;&nbsp;"maxFeePerGas": "300",&nbsp;
&nbsp;&nbsp;"maxPriorityFeePerGas": "10",&nbsp;
&nbsp;&nbsp;"nonce": "0",&nbsp;
&nbsp;&nbsp;"value": "10000000000000000",&nbsp;
&nbsp;&nbsp;"inputData": "",&nbsp;
&nbsp;&nbsp;"v": "0x1b",&nbsp;
&nbsp;&nbsp;"r": "0xb31c...1f",&nbsp;
&nbsp;&nbsp;"s": "0xc1b9...4e"&nbsp;
}</code></pre><p>The signature components (v, r, s) confirm the sender authorized the transaction. Once the signed transaction is shared with the network and validated by nodes, it can be added to the blockchain. The next section will detail these validation checks.</p><h3><strong>Life Cycle of A Transaction</strong></h3><p><strong>Simple ETH Transfer</strong></p><p>The journey of a simple ETH transaction begins with the creation of a transaction object by your wallet software. </p><p>An example transaction object for sending 1 ETH could look like this:</p><pre class="dont-break-out text-sm md:text-base"><code class="language-javascript">{
&nbsp;&nbsp;"from": "0xEA674fdDe714fd979de3EdF0F56AA9716B898ec8",
&nbsp;&nbsp;"to": "0xac03bb73b6a9e108530aff4df5077c2b3d481e5a",
&nbsp;&nbsp;"gasLimit": "21000",
&nbsp;&nbsp;"maxFeePerGas": "300",
&nbsp;&nbsp;"maxPriorityFeePerGas": "10",
&nbsp;&nbsp;"nonce": "0",
&nbsp;&nbsp;"value": "1000000000000000000",
&nbsp;&nbsp;"inputData": "",&nbsp;
}</code></pre><p>The next step is signing the transaction. To sign it you hash the transaction object and then sign this hash with the sender's private key using the Elliptic Curve Digital Signature Algorithm (ECDSA) on the secp256k1 curve. The resulting signature, comprising 'v', 'r', and 's' values, is appended to the transaction, forming the signed transaction. Once signed, the Ethereum wallet or interface prepares the transaction for broadcast on the Ethereum network. This typically involves serializing the transaction into a raw hexadecimal format and then sending it to an Ethereum full node, often through an Ethereum client like Geth or a service like Infura.</p><p>Ethereum nodes, upon receiving a transaction, perform a series of checks to verify its authenticity and viability. These checks include signature verification against the sender's address, matching the nonce with the sender's account nonce, ensuring the gas limit is appropriate, confirming the sender's balance can cover the transaction value and gas cost, verifying the gas price, and checking that the transaction format adheres to Ethereum's standards. If a transaction passes these checks, the node adds it to its local mempool, a holding area for transactions before they are included in a block. The node then propagates the transaction to other nodes in the network. </p><p>Finally, once a transaction is included in a validated block and the block is accepted by the network, the transaction achieves confirmation and finality. The Ethereum blockchain updates to reflect the state change resulting from the transaction, modifying the involved parties' ETH balances accordingly.</p><p>The key thing I want you to take away from this lifecycle is that <strong>executing an ETH transaction requires proving ownership of the sender's address through the private key</strong>. This proof is validated by nodes offchain via signature verification. Once validated and processed, the transaction alters the blockchain's state, updating the ETH balances of those involved.</p><p><strong>Smart Contract Interactions</strong></p><p>Interacting with a smart contract is different from basic ETH transfers in a number of ways. One key difference is the utilization of the <code>inputData</code> field within the transaction object. This field is used to encode both the function call and any necessary arguments required by the function being called. The first four bytes of this <code>inputData</code> field are dedicated to the function selector. This selector is the hash of the function's signature (for example, <code>transfer(address,uint256)</code>), and it determines which function within the contract will be called. Following the function selector, the arguments to the function are provided in an ABI-encoded format, each of these arguments is padded to 32 bytes.</p><p>Here’s an example of a transaction object calling a smart contract function:</p><pre class="dont-break-out text-sm md:text-base"><code class="language-javascript">{ 
&nbsp;&nbsp;"from": "0xEA674fdDe714fd979de3EdF0F56AA9716B898ec8", 
&nbsp;&nbsp;"to": "0xContractAddressHere", 
&nbsp;&nbsp;"gasLimit": "HigherThan21000", 
&nbsp;&nbsp;"maxFeePerGas": "AppropriateFee", 
&nbsp;&nbsp;"maxPriorityFeePerGas": "AppropriateTip", 
&nbsp;&nbsp;"nonce": "TransactionCount", 
&nbsp;&nbsp;"value": "AmountOfETHToSend (can be 0)", 
&nbsp;&nbsp;"inputData": "FunctionCallData",
&nbsp;&nbsp;"v": "0x1b",&nbsp;
&nbsp;&nbsp;"r": "0xb31c...1f",&nbsp;
&nbsp;&nbsp;"s": "0xc1b9...4e"&nbsp;
}</code></pre><p>When a transaction is sent to a smart contract, Ethereum nodes validate the signature, ensuring ownership of the sender's address through the private key, and then they run the transaction through the EVM to execute it. The smart contract's code determines whether the transaction is valid. If any of the contract's conditions are not met, the EVM reverts all state updates made during the transaction's execution. However, the sender still incurs the gas costs associated with processing the transaction, reflecting the computational resources used up until the point of failure.</p><h4>Smart Contract Example - Multi-Signature Wallet:</h4><img src="https://storage.googleapis.com/papyrus_images/0a366164824d7ec62ba9510b4f234b0a.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAANCAIAAABHKvtLAAAACXBIWXMAAAsTAAALEwEAmpwYAAACkElEQVR4nKWSXWvTUBzGg1jqaF3T06Q5eevJy5I0bZoubdOl6YtN1Xare5/swpePMJkbq3VzDgbitZc6UIfgJgMvd+lH8FZBED+D14LSZmOK2FGEH//znOfiPPD8D/bl89fjD8cvDo729g/39g/6HO69efefvHx79Oz5q+8/fmJzXj1nCwRDjoRC4SgIR/CRUCgQDF4IBALB4MVA4GJfBC+NDEXo8iiGYWvdx9hE1UsgtDA/NXdz3lu8XV++22hMFnKuXShrxrjhVDJOVU2leSQkRIlHoj/PRRpTcBDb2n2KVWoeBRnIIY5HEELIsJDhWJZnWR5yPIsEFgkMx/f9M3yH4fh/wSMhPBrpbO9ipUpNUWXXzaWypmYVM0XHzKYUw0o7lbFkyg/oI/ozIUrnvv5HQLlWhwxdckuNZtMoOAWvlbbGDaec81pG0U1adtKyJc3QbUc1c5plq4bFI2G4AN8iIENBOk5RFKQhhH0BIaT7B30q4Mn1vJZ+r+iKokrTNxrNdqs0OeO0l7yZhXK1bDdnvcVbmaKjmnlJ0yXNUM2CYliqmVcNa4gdlGt1koKymtQzpiDLSNF8BEWTNF1QNFnPIFlBsiLrpp8ka/pwSxYkQUsqkGFYUWZFKSGKCPn/R2Q47rS0Xns9TfXagwwDGW5AzFlA1bsqj0lT7UZ7btZtticmF7z55Xrrut2cvrZ0xy3V8zk3Y+YUI2sUS4ZTSVq24VT0bJ5HwgCQJOMAdHeeYOns+EgoDOI0BWkcABzEcEBGYiROkIAgACAJEkZBHAexaByCOI0TZE8Q5GgkMoAoiGEYtrLRxV4fvu9s7qx3t+9tPFztbK12tu53Nn18/bd/woNHA1jf3FlZ63789O0XmJb9ULxevxgAAAAASUVORK5CYII=" nextheight="406" nextwidth="1008" class="image-node embed"><img src="https://storage.googleapis.com/papyrus_images/17ac7d1f2eae01ef5fc0afcb2df353b3.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAGCAIAAAAt7QuIAAAACXBIWXMAAAsTAAALEwEAmpwYAAABr0lEQVR4nGP4/Obzuk2L++bPa2jtaerqb+nub+zogzF6Wjr6Gjv6Wrr7Wzp6wWQfiIFCYnJBqL1nUmlNw+e//xkqCosMDOQlFSRFRETFJSSFRMRFxcSFhQWEhIXEJSRFxcQkJEQFhYUFRCX4hEQFRCWExCUERSVEJKUFRcWFxSWFxSVhXAkIV1hcUkhcQkxGjoGBobGjhyE5M0dDV9srJNw9ONInKDA1JcorMNgzLMLK1dnJ09PVL9gz0MfWzd3OP8IpOErP1EpD30RNx0DPyk5N11Db3ErPykbTwFjP3EbLyFTTyEzTyEzP3FpD30Tfyk5ETLylu58hKj5ZTkUtNKfYJzXPLyE9LK80OCXHPyIjICjOztZeX9/I0MxaXlVNWlZOXllZSlpGXEJSUkoaTopLSEpIScFJuIi0rCw7JzfIgtDIWF5eDhVVZQlFNRkVDUkVDRkVDQV5ZUVZVVkZZREJCSVNPREJCXZOTnZOTk4ubi5eXmQSmQtBEDafgCADA0NpTQPDqYu3isprSyvri8trEKiyFoJKK+uKyqtLK+sqahtJQtUNLUXl1U/efgEAUxqk15Pn92oAAAAASUVORK5CYII=" nextheight="181" nextwidth="1011" class="image-node embed"><p>In this multi-signature wallet contract, the <code>confirmTransaction</code> function includes several checks:</p><ul><li><p><code>onlyOwner</code>: Ensures only wallet owners can call the function.</p></li><li><p><code>txExists</code>: Verifies the existence of the transaction.</p></li><li><p><code>notExecuted</code>: Prevents double execution of a transaction.</p></li><li><p><code>notConfirmed</code>: Stops an owner from confirming the same transaction multiple times.</p></li></ul><p>Successful completion of these checks leads to a state update in the contract, reflecting the confirmation. If the required number of confirmations is reached, the transaction executes.&nbsp;</p><p>In summary, both simple ETH transfers and smart contract interactions require proof of ownership via the private key associated with the <code>from</code> address. Transactions on the Ethereum network are authenticated this way, it's a non-customizable process. However, smart contracts can be designed to include onchain verifications as determined by the contract's code.</p><h3><strong>Limitations with the Initial Account and Transaction System</strong></h3><p>The initial account and transaction system faced limitations. One being that this setup restricted transaction verification to using ECDSA on the secp256k1 curve, which only checks the transaction's <code>from</code> address against the signature. While it's possible to add verification rules into smart contracts, ideally, accounts themselves would have this same customizability. Another limitation was that a single transaction could only call one smart contract and execute just one of its functions, rather than allowing multiple actions to be encoded in one transaction. Furthermore, there was no built in system for an address to cover the gas fees for another user's transaction, either for free or in return for a different token.</p><p>To begin addressing these issues, Ethereum needed to transition toward a system where contract accounts can initiate transactions. Contract accounts in this system would need two important functions: one to verify that the person sending the transaction is indeed authorized to use the account, and another to execute the transaction's intended actions. This change primarily solves the programmable account problem, allowing for the integration of various verification rules within the accounts. As an example, just as the developer implemented predefined checks in the Multi-Signature contract discussed in the previous section, users can now encode similar rules for their own accounts. For instance, users could create contract accounts with rules to prevent transactions over a certain amount within a specific time frame. If such a transaction is attempted, network nodes would reject it. Contract accounts could also be set to perform specific actions after each transaction, like automatically donating to Gitcoin. Additionally, these accounts would enable native multi-signature features and social recovery options, improving security and user experience. However, even further modifications to the EVM would be needed to fully address the challenges of executing multiple actions in a single transaction and enabling one user to pay for another's transaction fees.</p><h2 style="text-align: center"><strong>ERC-4337</strong></h2><h3><strong>How to Fix the System</strong></h3><p>There have been a number of EIPs that have been proposed to guide this process. Vitalik gave a detailed overview of the history and development of account abstraction in Ethereum, including the early ideas, various EIPs that were considered but not implemented, and where we stand today, in his presentation at ETH CC. For those interested in a deeper understanding of this journey, you can watch his presentation <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://www.youtube.com/watch?v=iLf8qpOmxQc">here</a>.</p><p>This transition towards account abstraction is complex and requires thorough testing to ensure the network's stability. Considering Ethereum's crucial role in finance, art, and other sectors, any significant disruptions could have wide reaching impacts. The Ethereum Core Developers had been focusing on the successful implementation of the Merge, transitioning Ethereum to a proof of stake. Their current areas of focus includes scaling solutions like Proto-Danksharding and Danksharding, and other initiatives such as stateless clients and Verkle trees. The core devs are already operating at full capacity and face challenges in managing the additional workload required for implementing account abstraction.</p><p>With that in mind, the Ethereum community introduced ERC-4337, a standard that is already operational on the network. This standard enables the benefits of account abstraction immediately, without requiring modifications to the EVM. It does so by introducing a "user intent layer" that works upstream of the current transaction process. This layer, coupled with a new set of standards to follow and a new entry point smart contract (I'll explain this contract in detail later), brings the benefits of account abstraction to Ethereum without modifying the underlying protocol.</p><p>Layer 2 solutions are actively exploring account abstraction as well. For example, zkSync has already integrated account abstraction into their protocol. Ethereum's modular roadmap allows for Layer 2s to experiment with modifying the EVM without permission from the base layer. Additionally, other proposals suggest incorporating a different account abstraction architecture into various Layer 2 solutions. As these solutions mature and demonstrate their security and effectiveness, they present a model that could be adopted by Ethereum Mainnet in the future. Meanwhile, ERC-4337 serves as a crucial intermediary, providing the immediate benefits of account abstraction.</p><h3><strong>ERC-4337 Components</strong></h3><p>Although the EVM remains unchanged, ERC-4337 adds new elements to Ethereum, changing how transactions are created and handled. Let's break down these components:</p><ul><li><p><strong>User Operations (UserOps): </strong>Similar to transactions, UserOps are objects that represent what a user wants to do. They're structured with fields like sender, nonce (for anti-replay and salt in first-time account creation), initCode (for deploying the smart account if it doesn't exist), callData (the execution data), gas limits for different phases, fees, paymaster data (for gas fee sponsorship), and the signature.</p></li><li><p><strong>Bundlers:</strong> They are nodes that collect, simulate, bundle, and submit UserOps onchain. Currently, UserOps are sent directly to bundlers, but future plans include gathering them from a specialized mempool. Bundlers simulate these operations to make sure they will be valid onchain, bundle, and send them as a single transaction to the EntryPoint Contract.</p></li><li><p><strong>EntryPoint Contract: </strong> This contract handles the bundled UserOps. It verifies each UserOp, ensuring the smart accounts involved meet the required conditions. Successful verification leads to the execution phase. The EntryPoint Contract also manages gas use and compensates bundlers, as they cover the initial gas costs from their accounts.</p></li><li><p><strong>Account Contracts (Smart Accounts):</strong> These are user owned smart contract wallets. Wallet developers must implement functions in these contracts for verification and processing transactions.</p></li><li><p><strong>Factory Contract:</strong> Used in setting up new wallets. It uses the <code>initCode</code> from a UserOp to create the wallet, using the <code>CREATE2</code> opcode for predictable addresses.</p></li><li><p><strong>Paymaster Contracts:</strong> Optional contracts that can sponsor transaction fees for Account Contracts, allowing fees to be paid in ERC-20 tokens or for free rather than ETH.</p></li><li><p><strong>Aggregator Contract</strong>: Designed to lower Layer 2 costs by verifying multiple UserOps with a single BLS signature, thus reducing data size. No aggregator contracts are in production yet.</p></li></ul><img src="https://storage.googleapis.com/papyrus_images/4bcaac1eaff008890773cf3e49ce9a68..svg" alt="Architecture Overview" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAQCAIAAAD4YuoOAAAACXBIWXMAAAsTAAALEwEAmpwYAAACY0lEQVR4nGNgYNWhLWKggwXm4WWlE1ZVTFpdOmHVjPXHczsWV0xa3bVod0LtjImrDvYv39+1aHf9jA0U+EDDPaV+ZtXUtbr+OeGlE7oW7Q4u6EmqnaXinuqR1mQfW+WWVB+Y103AID5TBglnBjE7KJJ0ZWDVg1qg7ZtdNmFV56Jdr3//f/v3//WXvzOa5yXVztp78fnu808uPPm2+uB1BiUnAhZIezCImEraxkrZxyu5pkBFoD5QcDAMLGA2DPDJalNwTjIPL9P2zWYQM9f2zbaOrvDLauc2CyFgOocBo1UFA4e+lH08g74fuylYPcgT1IpklXAGCUcGOW8GrSgG3RgGtTAGGU8GEWuYBYJmINvgwSfhBJWT8UQSdAQFMasOg4QLiA0Xl/aASgmagXQJWoGQsCVIitMIZgHELzK2Gl6ZDAoOILa8H4NBJgOHAYO2D4OGO6txIIOYOcgs1QgGaW+QoKYnKNy0fUCmWJaDjFMMYZCxY1B1A8WWkhODhCXIYqgF0u4MSk5GQYXKrqmg+NH1YZDxAGngNAIpVXYBaRMxBSkTBztZ2ppB05NBxhbkGj5TBqNckAXKocyGAeI2MQIWEQz6fiBZhAV8pqhB5AzyI8RiMeQgAmuAMJCTI0jWhUHQHKRR2h0UsJKuoHBGBBHlSDUSFAHS7mD/eYAtcAZZSTUL+IwZTIpZjQOFrKLYTUPEbKJB8SFmC7NAKZTBKMMnq80stMQgsAAUB2TYIeHIIGAEjltLUIQJGCLFgYQTg0ooq3GggEWEkFUUKALJsIDTCBRKItag+AMlU1tQIqRDaQoA5djK/mcMr2EAAAAASUVORK5CYII=" nextheight="512" nextwidth="1024" class="image-node embed"><p>The EntryPoint contract is central to ERC-4337. There's a single, official version of this contract used across all EVM chains. If there needs to be any changes to it, a new contract has to be deployed. The current EntryPoint contract can be found at the address <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://etherscan.io/address/0x5ff137d4b0fdcd49dca30c7cf57e578a026d2789">0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789</a>. While the EntryPoint contract remains consistent, other contracts like smart accounts, Paymasters, and Factorys offer flexibility for customization. Developers can tailor these contracts to their specific requirements, provided they follow the guidelines of ERC-4337.</p><p>In the next part of the post, we'll explore the lifecycle of a UserOp under ERC-4337, from the initial setup of a new smart account to the detailed process of verifying and executing a UserOp. This walkthrough will cover multiple scenarios including one where gas costs are sponsored by a paymaster. We'll dive into the functions and interactions of key components in this system: the EntryPoint, Smart Account, Paymaster, and Factory.</p><p>I recommend pulling up the Ethereum Foundation's repository related to ERC-4337 as you read along. It's available <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://github.com/eth-infinitism/account-abstraction">here</a> and features sample contracts like <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://github.com/eth-infinitism/account-abstraction/blob/674b1f51164e641a18d5c141895bab9c96a68e9d/contracts/samples/SimpleAccount.sol#L4">SimpleAccount.sol</a>, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://github.com/eth-infinitism/account-abstraction/blob/develop/contracts/core/EntryPoint.sol">EntryPoint.sol</a>, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://github.com/eth-infinitism/account-abstraction/blob/674b1f51164e641a18d5c141895bab9c96a68e9d/contracts/samples/DepositPaymaster.sol">DepositPaymaster.sol</a>, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://github.com/eth-infinitism/account-abstraction/blob/674b1f51164e641a18d5c141895bab9c96a68e9d/contracts/samples/TokenPaymaster.sol">TokenPaymaster.sol</a>, and <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://github.com/eth-infinitism/account-abstraction/blob/develop/contracts/samples/SimpleAccountFactory.sol">SimpleAccountFactory.sol</a>. Reviewing these contracts while I walkthrough the examples will really help with your understand of the ERC-4337 framework's mechanisms and interactions.</p><p>The examples we're going to cover, utilize sample contracts provided by the Ethereum Foundation and Biconomy, to service as an example of specific instances of how ERC-4337 can be implemented. However, it's important to understand that both smart accounts and paymasters in ERC-4337 offer a high degree of customization. They are not limited to predefined structures or functionalities but can be tailored to meet diverse verification and execution requirements. <br>In these simple examples, the smart account will have just one owner, whose signing key is an EOA verified using ECDSA with the secp256k1 curve. There will also be no special modules (I'll explain what modules are later), it will solely execute the intended action in the UserOp and nothing more.</p><h3><strong>Deploying a Smart Account</strong></h3><p>In order to send a transaction from a smart account in ERC-4337 you actually have to have a smart account deployed. Your smart account wallet software will handle the setup details like potentially offering options like setting account owners and recovery agents. In our example, the smart account will only have one owner. To start the deployment process you'd interact with the wallet interface, where a UserOp is crafted, signed, and sent to a Bundler.</p><p>Before accepting a UserOp, bundlers verify its authenticity and viability. They use an RPC method called <code>simulateValidation</code> to simulate calling the EntryPoint contract. This validation ensures that the UserOp's signature is correct and that it can cover its fees. Invalid UserOps are dropped from the Bundler's mempool. Bundlers then aggregate multiple valid UserOps from its mempool and send them as a batch to the EntryPoint’s handleOps function, using their EOA. Since they are using their EOA, they have to pay the gas for this execution. They are later reimbursed for this gas cost, plus receive an additional fee, but it's important to note that they initially front the gas.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/43b2dd202c9c43b79ff098e68fc7045a.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class="">Follow the process steps in numerical order</figcaption></figure><p>The <code>initCode</code> field of the UserOp is used for encoding deployment information of a new smart account. The first 20 bytes of <code>initCode</code> are the address of the Factory Contract this UserOp wants to use to deploy their smart account. If this field is not empty, the EntryPoint attempts to call out to this Factory Contract to begin the smart account deployment process. This contract's role is to deploy new Smart Accounts, using the <code>CREATE2</code> opcode for predictable address generation. The Factory Contract stores the bytecode of the smart account as a state variable to assist in deployment. The Factory Contract using the <code>CREATE2</code> opcode, inputs this bytecode, the owner's signer public address (in our case EOA), and an optional salt (which is the <code>nonce</code> in the UserOp) to deploy a new smart account. To ensure consistency, the wallet interface precomputes the new account's address and includes it in the UserOp's sender field. If the actual and precomputed addresses don't match, the UserOp is reverted. If the deployment was successful the EntryPoint will emit an <code>AccountDeployed</code> event.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/cde1c39cd504108b866219af7b84a0b0.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>Example UserOp for Smart Account Deployment:</p><pre class="dont-break-out text-sm md:text-base"><code class="language-javascript">{
&nbsp;&nbsp;"sender": computedAddress, // Address of the new smart account, computed offline
&nbsp;&nbsp;"nonce": 0, // For a new account, the nonce is an optional salt
&nbsp;&nbsp;"callData": "", // Empty for deployment&nbsp;
&nbsp;&nbsp;"callGasLimit": 1000000, // Estimated gas limit for deployment&nbsp;
&nbsp;&nbsp;"verificationGasLimit": 50000, // Gas limit for verification process&nbsp;
&nbsp;&nbsp;"preVerificationGas": 21000, // Basic transaction gas cost&nbsp;
&nbsp;&nbsp;"maxFeePerGas": 1000000000000, // Current network gas price&nbsp;
&nbsp;&nbsp;"maxPriorityFeePerGas": 1e9, // 1 Gwei, example priority fee&nbsp;
&nbsp;&nbsp;"paymasterAndData": 0x0…, // Zero address if not using a paymaster&nbsp;
&nbsp;&nbsp;signature: "0xEOAOwnerSignature", // Signature from the account owner (offchain signing process)&nbsp;
&nbsp;&nbsp;"initCode": deploymentCode // Factory address and constructor arguments for the new account&nbsp;
}</code></pre><p>Bundlers use their EOAs to send UserOps to the EntryPoint and they need to be compensated for the gas used in that transaction and paid an additional fee for their services. This is paid by either the smart account or a sponsoring paymaster. Smart accounts or paymasters deposit ETH in the EntryPoint contract to cover these costs. If there's insufficient deposit ETH during execution, the EntryPoint withdraws the required amount from the respective contract (smart account or paymaster) and then compensates the Bundler. If at any stage, the contract lacks sufficient ETH to cover the fee, the UserOp is reverted.</p><p>The fee payment process for deploying a smart account works as follows:</p><ul><li><p>Direct ETH Transfer: By using the <code>CREATE2</code> opcode's deterministic nature users can send ETH directly to this precomputed address before the actual smart account is deployed. Upon deployment, the smart account will already possess ETH, enabling the EntryPoint to withdraw the required amount from the smart account.</p></li><li><p>Paymaster Sponsorship: The gas costs are funded by a paymaster. In this case, the paymaster's address and relevant information are specified in the <code>paymasterAndData</code> field. The paymaster contract has specific rules set up to determine whether it will sponsor gas for a particular smart account.</p></li></ul><p>In our example, since there isn't a sponsoring paymaster involved, it would be necessary to precompute the address of the smart account beforehand and prefund it with some ETH. This prefunding is for covering the costs of the bundler's services. By doing so, when the smart account is deployed using <code>CREATE2</code>, it already has the necessary ETH balance. This allows the EntryPoint to directly use these funds to compensate the bundler for processing the transaction. From the user's perspective, the smart account wallet software will handles this technical process, often providing a straightforward option like a button to easily pre-fund their smart account.</p><p><strong>Summary of Key Steps:</strong></p><ol><li><p><strong>Prefunding the Smart Account</strong>: Before any actions, the smart account must be precomputed and pre-funded with ETH to cover the costs of the bundler's services.</p></li><li><p><strong>Forming UserOps: </strong>UserOps are formed in the wallet interface to represent the intended actions for deploying the smart account, signed, and sent to Bundlers.&nbsp;</p></li><li><p><strong>Validation and Processing by Bundlers:</strong> Bundlers validate offchain the UserOps for authenticity and viability using an RPC method, and aggregate the valid UserOps.&nbsp;</p></li><li><p><strong>Sending UserOps to EntryPoint: </strong>The aggregated UserOps are sent to the EntryPoint contract’s <code>handleOps</code> function by the Bundlers using their EOAs.&nbsp;</p></li><li><p><strong>Deploying through Factory Contract: </strong>The <code>initCode</code> in UserOps directs the EntryPoint to use the Factory Contract, which use the <code>CREATE2</code> opcode, to deploy new smart accounts.&nbsp;</p></li><li><p><strong>Precomputed Address Consistency Check: </strong>The EntryPoint checks the precomputed address in the UserOp against the actual deployed smart account address. A mismatch means the UserOp is reverted.&nbsp;</p></li><li><p><strong>Deployment Confirmation Event:</strong> The EntryPoint emits an <code>AccountDeployed</code> event upon successful deployment of the smart account.&nbsp;</p></li><li><p><strong>Gas Cost Management: </strong>Bundlers are reimbursed for their gas costs in processing and sending UserOps to the EntryPoint. This reimbursement is either from the smart account's funds or a paymaster's sponsorship.&nbsp;</p></li></ol><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/463fabc7180708bf440935a4a00d4b8a.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><h3><strong>Verifying and Executing a UserOp From Smart Account</strong></h3><p>With a smart account deployed, let's explore the process of verifying and executing a UserOp from it. As an example, consider a scenario where you want to approve UniSwap to spend 0.01 WETH and then swap that 0.01 WETH for 20 DAI. From a user perspective, if you have 0.01 WETH in your smart account and sufficient ETH deposited in the EntryPoint to cover the gas fees, the process is straightforward. You simply click a button, sign the transaction with the EOA designated as the owner of your smart account in your wallet interface, and then wait for the UserOp to be processed. With just one click, you've both approved and swapped. You'll see your WETH gone and a new DAI balance in your smart account. There's a lot happening behind the scenes, so let's break it down.</p><p>Initially, the UserOp is formed by the application's frontend and the user's account abstraction wallet software. This object includes necessary details such as the smart account's address, nonce, calldata, gas limits, and the signature from the smart account's owner.</p><p> The UserOp might look like:&nbsp;</p><pre class="dont-break-out text-sm md:text-base"><code class="language-javascript">{&nbsp;
&nbsp;&nbsp;"sender": "0xSmartAccountAddress",&nbsp;
&nbsp;&nbsp;"nonce": 1, // Current nonce of the smart account&nbsp;
&nbsp;&nbsp;"callData": "0xEncodedToCallExecutebatchWithEncodedWETHAddressValueCallDataToCallApproveAndEncodedUniSwapAddressValueCallDataToCallSwap", // Encoded calldata to call the executeBatch function that will execute approve and swap operations&nbsp;
&nbsp;&nbsp;"callGasLimit": 500000,
&nbsp;&nbsp;"verificationGasLimit": 50000,
&nbsp;&nbsp;"preVerificationGas": 21000,
&nbsp;&nbsp;"maxFeePerGas": 100000000000,
&nbsp;&nbsp;"maxPriorityFeePerGas": 2000000000,
&nbsp;&nbsp;"paymasterAndData": "0x0…", // No paymaster used (zero address)&nbsp;
&nbsp;&nbsp;"signature": "0xEOAOwnerSignature" // Signature from the EOA owner of the smart account&nbsp;
};&nbsp;</code></pre><p>From a high-level perspective, the <code>callData</code> is a bytes array that the smart account is set up to parse and decode. In our example it contains three items. The first item is to call the <code>executeBatch</code> function on the smart account. The next is to call the ERC20 contract, to approve UniSwap to spend 0.01 WETH. The last item is to execute a swap transaction on UniSwap, where 0.01 WETH is exchanged for DAI. The smart account, upon receiving this <code>callData</code>, first processes the approval transaction with the ERC20 token and then carries out the swap operation on UniSwap, ensuring that both actions are completed in the intended order within a single UserOp. We'll go through how this works in more detail later in this section.</p><p>Going back to our example, as before, the bundler uses an RPC method to call the <code>simulateValidation</code> function of the EntryPoint locally before sending the UserOp to the EntryPoint. This step again checks whether the signature on the UserOp is authentic and if the operation has the necessary funds to be executed. Upon passing the initial validation, along with other initial validation UserOps, the bundler sends the bundle to the <code>handleOps</code> function on the EntryPoint.</p><figure src="https://storage.googleapis.com/papyrus_images/fab517552bd6134ec6b9170691d81b65.png" float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/fab517552bd6134ec6b9170691d81b65.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>Verifying and executing a UserOp, begins with looping through the bundle of UserOps ensuring each UserOp has enough funds to cover its operation and passing its specific validation checks.</p><p>Initially, the system calculates the necessary prefund amount (an estimate of total amount the user needs to pay the bundler) for the UserOp. An internal function, <code>_validateAccountPrepayment</code>, then assesses whether the smart account associated with the UserOp has sufficient ETH deposited in the EntryPoint to cover the prefund amount. If the deposited ETH meets the required amount, the <code>missingAccountFunds</code> variable is set to zero. Otherwise, the function computes any shortfall and assigns this value to <code>missingAccountFunds</code>.</p><p>This step is followed by calling the <code>validateUserOp</code> function on the smart account. This function verifies that the call is made by the EntryPoint and validates the signature using the <code>validateSignature</code><em> </em>method<em>. </em>In our case <code>validateSignature</code> checks if the signature (UserOp.Signature) originates from the EOA that owns the account. If the signature doesn't match, it returns <code>SIG_VALIDATION_FAILED</code> instead of causing a transaction failure.</p><p>The process also includes nonce verification to ensure transaction order and prevent replay attacks. If additional funds are needed to meet the prefund requirement, the function attempts to transfer the necessary ETH from the smart account to the EntryPoint. This step does not cause a revert in the case of insufficient funds in the smart account, as this is addressed subsequently in the EntryPoint.</p><p>After these validation checks, the EntryPoint rechecks if the smart account's deposit meets the prefund amount. If the deposit still falls short, despite the attempted top-up, the UserOp is reverted. This process ensures each UserOp is thoroughly vetted for both funding and authenticity before execution.</p><img src="https://storage.googleapis.com/papyrus_images/e5f7cd65de7546f7f2f60c8d95b26f08.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAHCAIAAADmsdgtAAAACXBIWXMAAAsTAAALEwEAmpwYAAABmElEQVR4nG2Sr/KtIBDHeYOTbvAJjsVioZxksZgoJpLJQqOQSCYaBROJtImEyUTzAXwC02mm07hzZX7OmfndT9phd9nv/kFSyrquy2e5rmtK6TzPlFKM0Tl3nufn80n/w1pb1zUhhFK67/u36zgOIcQwDJzzfd+RtVZKKYSIMeaIJYTZGKXUbIxzjlJaPkty0bYtxlgpxRjruo4QwhhzzhFCugsAEEKUz/L1epXPkjGGpJQAYK3VWs/GWGuVUksI+74DgPd+NkZKqZSapkkIobWWUhZFkb/AGFNKq6r6c4EQGsfRWtv3/TRNzjmEMa6qqq5rzvkwDO3F4/EoiiIHNU1DCGmapuu6tm2HYXDOPS4QQlVVjeOYy3POlVJZFmNMa+29R5RSjHHTNFrre755Au5iCWEJAQCWELz3Swh5bZxzQkjf9+M4fq8KAG77X4FpmrZtm42Zjblf3+93SmnbtuM4fm/4OI4sue/7LPnzQ06/rwMA0GzMtm3WWu99zo8xAkCWn0O/yQVmY/JMtNb5Om5v7nhd19zxX0ifnVlHUOwJAAAAAElFTkSuQmCC" nextheight="225" nextwidth="1095" class="image-node embed"><p>In the EntryPoint contract's <code>handleOps</code> function, each UserOp is individually processed. In typical smart contract scenarios, a revert would cause the entire transaction to fail and halt all subsequent actions. However, the handleOps function is designed differently for handling UserOps. Here, if a UserOp fails during the validation or execution phase, the contract captures this failure and proceeds to the next operation. This functionality is made possible through Solidity's try and catch blocks, allowing the system to isolate and manage individual failures without impacting other operations.</p><p>Once the UserOps have passed the validation phase, they move into the execution phase. This phase involves looping through the array of verified UserOps and calling the EntryPoint’s <code>_executeUserOp</code> function for each one. A critical function within this phase is <code>innerHandleOp</code>, which executes a low-level call to the Smart Account, using the <code>callData</code> provided in the UserOp. The <code>callData</code> dictates which functions to execute and their respective inputs. In our specific scenario, it is encoded to call our <code>executeBatch</code> function with the following inputs:</p><ul><li><p>dest: An array of addresses (the WETH and UniSwap addresses)</p></li><li><p>value: an empty array</p></li><li><p>func: an array that calls the approve function to permit UniSwap to spend 0.01 WETH, followed by the swap function to exchange 0.01 WETH for DAI. </p></li></ul><p>The <code>executeBatch</code> function starts by ensuring that the call originates from the EntryPoint or the account owner. It then verifies the alignment of the lengths of the destination addresses (dest), values (value), and function calls and inputs (func). Then the function makes calls to the specified smart contracts. This function appears as follows:</p><pre class="dont-break-out text-sm md:text-base"><code class="language-javascript">function executeBatch(address[] calldata dest, uint256[] calldata value, bytes[] calldata func) external {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_requireFromEntryPointOrOwner();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;require(dest.length == func.length &amp;&amp; (value.length == 0 || value.length == func.length), "wrong array lengths");
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (value.length == 0) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (uint256 i = 0; i &lt; dest.length; i++) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_call(dest[i], 0, func[i]);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} else {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (uint256 i = 0; i &lt; dest.length; i++) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_call(dest[i], value[i], func[i]);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;}</code></pre><p>In our example, the smart account executes two specific transactions:</p><ol><li><p><strong>Approving UniSwap to Spend 0.01 WETH on the DAI contract</strong></p></li><li><p><strong>Swapping 0.01 WETH for 20 DAI on the UniSwap contract</strong></p></li></ol><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/d5622f4c2868c5ff1ae904ecf98ca277.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>As the EntryPoint contract processes each of these UserOps, it keeps track of the gas consumed for each operation. This tracking includes all UserOps, whether they are executed successfully or end up reverting. The EntryPoint contract also keeps an up to date record of the deposit amounts for each involved smart account and any paymaster contracts. Once all UserOps in the batch are processed, the EntryPoint contract concludes the operation with the <code>_compensate</code> function. This function takes the total gas used for processing the entire batch of UserOps and    transfers this amount from the EntryPoint to the Bundler.</p><p><strong>Summary of Key Steps:</strong></p><ol><li><p><strong>UserOp Formation:</strong> The application's frontend and the user's account abstraction wallet create the UserOp, including essential details like the smart account's address, nonce, calldata, gas limits, and owner's signature.&nbsp;</p></li><li><p><strong>Validation by Bundler: </strong>Using the RPC method <code>simulateValidation</code>, the bundler locally authenticates the signature and ensure the UserOp is funded.&nbsp;</p></li><li><p><strong>Bundler Sends to EntryPoint:</strong> After initial validation, the bundler sends the UserOp batch to the EntryPoint's <code>handleOps</code> function.&nbsp;</p></li><li><p><strong>Prefund Assessment: </strong>The EntryPoint calculates the necessary prefund for the UserOp and checks if the smart account has sufficient deposited ETH.&nbsp;</p></li><li><p><strong>Signature and Nonce Verification: </strong>The EntryPoint validates the signature and nonce of the UserOp, ensuring authenticity and preventing replay attacks.&nbsp;</p></li><li><p><strong>Funding Shortfall Check: </strong>If additional funds are needed, the EntryPoint attempts to transfer the required ETH from the smart account.&nbsp;</p></li><li><p><strong>UserOp Processing:</strong> Each UserOp is individually processed in the EntryPoint, isolating failures and allowing continuous operation through try and catch blocks.&nbsp;</p></li><li><p><strong>Execution Phase: </strong>The EntryPoint loops through verified UserOps, executing each one using the executeBatch function.&nbsp;</p></li><li><p><strong>Specific Transactions Execution: </strong>The smart account executes the intended transactions, like approving and swapping.&nbsp;</p></li><li><p><strong>Bundler Refunded : </strong>Bundlers are reimbursed for their gas costs in processing and sending UserOps to the EntryPoint from the smart account's deposit in the EntryPoint</p></li></ol><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/1b1a57820af8145d21632d281c230388.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><h3><strong>Using a Paymaster To Pay For Gas</strong></h3><p>In this scenario, we explore how a paymaster can sponsor the gas fees required for minting an NFT. This allows users to mint NFTs without paying any gas fees. The process from the users standpoint is straightforward: users click a mint button, and the transaction is processed with the gas fees covered by the paymaster.</p><p>The journey begins with the user's account abstraction wallet and the application's frontend collaborating to create a UserOp. This UserOp contains essential information such as the smart account's address, the current nonce, and the encoded instructions for the NFT minting operation. Additionally, it includes a field, <code>paymasterAndData</code>, which carries details about the paymaster responsible for the gas fees.</p><p>An example UserOp for NFT minting might look like this:</p><pre class="dont-break-out text-sm md:text-base"><code class="language-javascript">{
&nbsp;&nbsp;"sender": "0xSmartAccountAddress", 
&nbsp;&nbsp;"nonce": 2,
&nbsp;&nbsp;"callData": "0xEncodedToCallExecuteWithEncodedMintNFTContractAddressAndMintFunction", // Encoded calldata to call execute with the NFT address and minting operation
&nbsp;&nbsp;"callGasLimit": 500000, 
&nbsp;&nbsp;"verificationGasLimit": 50000,
&nbsp;&nbsp;"preVerificationGas: 21000,
&nbsp;&nbsp;"maxFeePerGas": 100000000000,
&nbsp;&nbsp;"maxPriorityFeePerGas": 2000000000,
&nbsp;&nbsp;"paymasterAndData": "0xPaymasterAddressEncodedValidUntilValidAfterSignature", // Paymaster info, including address, timestamps, and signature
&nbsp;&nbsp;"signature": "0xEOAOwnerSignature"
};</code></pre><p>The <code>paymasterAndData</code> contains the paymaster's address and additional data like valid timestamps and a signature. This signature, generated offchain by a service trusted by the paymaster, confirms the agreement to sponsor this operation. The valid timestamps in <code>paymasterAndData</code> indicate when the operation is permitted.</p><p>The UserOp is sent to a bundler, which verifies the operation's authenticity and the paymaster's commitment to cover the fees. After passing validation, the UserOp is bundled with others and sent to the EntryPoint's <code>handleOps</code> function.</p><p>It begins with the <code>_validateAccountPrepayment</code> function to determine if the user's ETH deposit in the EntryPoint or the use of a paymaster is sufficient for the required prepayment amount. Since a paymaster is utilized in this case, no additional transfer of ETH is needed from the user's account. The procedure then advances to the signature and nonce verification phase. This involves the use of the <code>validateUserOp</code> function on the smart account, which verifies the origin of the call from the EntryPoint, confirms the matching of the signature to the smart account’s owner, checks the nonce, and assesses if any extra ETH transfer is necessary. In this scenario, the presence of the paymaster eliminates the need for an additional transfer.&nbsp;</p><p>Next, the <code>handleOps</code> function extracts the paymaster's address from the <code>paymasterAndData</code> field, which comprises the initial 20 bytes. If the paymaster is not set to the zero address, the <code>_validatePaymasterPrepayment</code> function is internally called. This function checks the sufficiency of the Paymaster's ETH deposit for the prepayment amount. If the paymaster's deposit is insufficient, the UserOp is immediately reverted.</p><p>After that, the EntryPoint calls the <code>validatePaymasterUserOp</code> function on the paymaster. This function's primary role is to validate the eligibility of a UserOperation for gas fee sponsorship by the paymaster. It begins by parsing the <code>paymasterAndData</code> field of the UserOp to extract <code>validUntil</code> and <code>validAfter</code> timestamps and a <code>signature</code>. A unique hash is created from the contents of the UserOp, including these timestamps. This hash is then used in Ethereum's standard message signing process, and ECDSA recovery is used to ensure that the provided signature matches the paymaster's owner. If the signatures do not match, indicating a lack of authorization by the paymaster, the function returns a <code>SIG_VALIDATION_FAILED</code> error, indicating that the operation cannot proceed under this paymaster's sponsorship. This function returns a context, an empty string in this scenario, which doesn't play a role currently but will in the next scenario, along with the paymaster's details.</p><img src="https://storage.googleapis.com/papyrus_images/8b011869f0ee1c41f533d7414d43f0f9.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAHCAIAAADmsdgtAAAACXBIWXMAAAsTAAALEwEAmpwYAAABrklEQVR4nE3RkbP0MBAA8M6cnVUeHLx/4OSgUqhUTgonoUKpUKqEI6VIKBKqhCKRo9BKKBQplUpHkVKo33zNzJv7QWY3yezuJBkA9H3fdd2yLMdxxBj3fVdKGWP2UwghBTHGEEKM0VpLKeWcCyH2fT++xBgBgHM+TZNS6vP5ZAAgpeScO+fSJQBQSr3fb601Y6yqqqZp2rZFCNV1zRijlBJCGGNCCAAYx7Esy7quMcbGGEppSvu+N8b8b5DqzvPMOU8rAHjv53lOzfRJSpm6juOIEOq6jhAipUxHSinOuZQyxkgIGYbBe78sS4YxLoqiLEvG2DRNhBCE0O/v7/P5JIS0bfs8vV6vpmkQQoyxpmmqqiqKou/7v/kSa+1xHM45rXUIwXufCSGklBhjrXW6JKUkhHDOtdbbtoUQPqcUOOfmeWaMYYyFEOlh08+lBgDgnPMnAMiMMcdxhBD+Zkk738G3fd/fJyGEMUYIgRDK8/zxeGCMp2m63++Xy+V6veZ5TinNnHPqtK5rKrEsC5zSTvySUmutO1lrvffbtjnn1nX13g/D8HO63W5Zlo3j+A+cQcT1bTaYCQAAAABJRU5ErkJggg==" nextheight="413" nextwidth="1777" class="image-node embed"><p>Assuming the UserOp passes the paymaster's validation, the <code>handleOps</code> function proceeds to the execution stage. It follows similar steps to the previous example by calling into the smart account, which then interacts with the NFT contract to mint the NFT. The difference in this scenario is that the <code>callData</code> is now encoded to call the smart account's <code>execute</code> function rather than <code>executeBatch</code>, as there's only one operation to execute: the minting of the NFT.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/d52d4fdf77dc25d868cf4baed414608e.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>Finally, the <code>handleOps</code> function concludes by compensating the bundler for the gas used in the process.</p><p><strong>Summary of Key Steps:</strong></p><ol><li><p><strong>UserOp Formation:</strong> The account abstraction wallet and application frontend collaborate to create a UserOp, containing the smart account's address, nonce, encoded NFT minting instructions, <code>paymasterAndData</code> details, etc.&nbsp;</p></li><li><p><strong>UserOp Verification by Bundler: </strong>The bundler locally verifies the authenticity and viability of the UserOp.&nbsp;</p></li><li><p><strong>Bundler Submission to EntryPoint: </strong>After local validation, the bundler sends the UserOp to the EntryPoint contract's <code>handleOps</code> function.&nbsp;</p></li><li><p><strong>Signature and Nonce Verification: </strong>The <code>validateUserOp</code> function on the smart account verifies that the signature matches the smart account's owner, and the nonce is unique.</p></li><li><p><strong>Paymaster Verification: </strong>The EntryPoint extracts the paymaster's address from <code>paymasterAndData</code> and validates the paymaster's deposit is sufficient through the <code>_validatePaymasterPrepayment</code> function.</p></li><li><p><strong>Paymaster UserOp Authorization: </strong>The EntryPoint calls the <code>validatePaymasterUserOp</code> function on the paymaster contract to confirm sponsorship eligibility for the UserOp.</p></li><li><p><strong>Execution of NFT Minting: </strong>Assuming successful validation, the EntryPoint contract calls the smart account's execute function, which interacts with the NFT contract to mint the NFT.&nbsp;</p></li><li><p><strong>Compensation of Bundler: </strong>After successful execution, the EntryPoint concludes by compensating the bundler for the gas used in processing the transaction.</p></li></ol><img src="https://storage.googleapis.com/papyrus_images/4928962d172bc1608ee6cac6d192805e.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAHCAIAAADmsdgtAAAACXBIWXMAAAsTAAALEwEAmpwYAAABrklEQVR4nHXSIbOlIBQHcL/BphtusRjeLRaLhWShmOwmksVGIZ1EslG8ifQSiYTJZDORaDTSbSYbbxZ2087+AsMww2H+51Borfu+J4SEEGKM931776dpklJ+Ph9r7WbMcRzneR6J955zPgzDOI6Mseu6vPc2ue/bWssY6/seY7wsi7W2UEp57zdjtNYxRmut1jokADCOY1VVCKFhGBBCdV33fS+lXBIpJQC0bds0TVVVGGOlFAA0TdO2Led83/fiva5aayklIQRj/Pp6TdNEKQWA97rmWiLhnG/GSCkxxkVRlGVJCNmM2YyhyZns+17XddM0OXExDMPr6/V4PBhj3nshRL7fdV1OQCnNT87zTCnt+36aJoRQ13U8EULkBwBgWZbzPAFACOGc01r/adH397dSKsbonDvP01obQhBCvNd1TnKJHOg4Ds45pVRrrZTa910IoZQKIWitCSFlWSKE5nn+neC9rnkGmzExxhCCUiqPBADySilljM3znFuUWw8AecM5RwiRBGNcluXz+fyVLMtS5K/inLuTGON1XZ8k/sf1j3zunKOUVlVV/yWl/AFb5Yprp73sbgAAAABJRU5ErkJggg==" nextheight="347" nextwidth="1514" class="image-node embed"><h3><strong>Paymaster Allowing Users To Pay With ERC-20s</strong></h3><p>In contrast to the previous examples where transactions were funded using ETH or covered for free by the paymaster, this scenario explores a paymaster setup that allows users to pay for gas with ERC-20 tokens.</p><p>Here's a high-level overview of how this differs from previous methods:&nbsp;</p><ol><li><p><strong>ERC-20 Token Charge for Gas: </strong>Users pay for gas in ERC-20 tokens, calculated based on the ETH equivalent of the gas cost plus any markup by the paymaster.</p></li><li><p><strong>ETH Deposit Maintenance by Paymaster: </strong>The paymaster maintains an ETH deposit in the EntryPoint contract to cover actual gas costs, despite accepting ERC-20 tokens from users.</p></li><li><p><strong>Batched Transaction Process (Approve Paymaster):&nbsp;</strong></p><ol><li><p>Initially, users approve the paymaster to spend their ERC-20 tokens. This approval is necessary for the paymaster to subsequently transfer the tokens from the user's account.&nbsp;</p></li><li><p>Following the approval, the next transactions in the batch execute the user's intended onchain activities.</p></li></ol></li><li><p><strong>Token Amount Calculation, Balance Check, and Context Returned in </strong><code>_validatePaymasterUserOp</code><strong>:&nbsp;</strong></p><ol><li><p>Following signature verification, this function determines the required ERC-20 token amount to cover gas fees, considering necessary ETH prepayment and additional charges</p></li><li><p>It checks if the user's account has enough of the ERC-20 token (fee token) to cover the calculated charge.</p></li><li><p>Returns a Context with essential transaction details, including the required token amount.</p></li></ol></li><li><p><strong>Post-Operation (</strong><code>postOp</code><strong>) Processing on Paymaster including Fee Transfer</strong>:&nbsp;</p><ol><li><p>The function begins by decoding the context. It extracts key data such as the user's account, the fee token, and pricing details.&nbsp;</p></li><li><p>Next, it calculates the effective exchange rate for converting the gas costs to fee tokens, which is done using either the data provided in the context or by fetching new data from an oracle aggregator.&nbsp;</p></li><li><p>Following this, the function calculates the charge amount. This involves converting the actual gas cost into the equivalent amount in fee tokens and then applying the price markup.&nbsp;</p></li><li><p>Finally, the function transfers the calculated charge from the user's account to the designated fee receiver.</p></li></ol></li></ol><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/f6054ee00468ecaa24f500ae81002c7d.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>It's important to note that the approach described above reflects <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://github.com/bcnmy/biconomy-paymasters/blob/main/contracts/token/BiconomyTokenPaymaster.sol">Biconomy's specific implementation of a token paymaster</a>. However, paymaster contracts can be tailored to a developer's requirements as long as they comply with ERC-4337 standards, offering various levels of customization in terms of how fees are calculated, processed, and collected.</p><h3><strong>Customization and Flexibility in ERC-4337</strong></h3><h4><strong>Smart Accounts</strong></h4><p>In ERC-4337, each smart account is required to include the <code>validateUserOp</code> function. Developers have the flexibility to implement various types of verification logic within this function, depending on their specific requirements. The <code>validateUserOp</code> function should either confirm successful verification by returning a '0' or to indicate a failure in the verification process by returning a specific error reason, such as <code>SIG_VALIDATION_FAILED</code>, to the EntryPoint.</p><p>Following the verification process, if a UserOp is successfully validated, the smart account is then responsible for executing the actions specified in the UserOp's <code>callData</code>. Additionally, developers can program the smart account to perform other actions during the execution phase.</p><h4><strong>Advanced Functionality in Smart Accounts</strong></h4><p>Smart accounts in ERC-4337 can incorporate a variety of advanced functionalities that extend beyond basic transaction validation and execution. These advanced functionalities, referred to as modules, can be easily integrated into smart accounts. I will cover these modules in detail in a later section, where I discuss an ERC that proposes a standardization for them.</p><p>One such module is the use of session keys, which allow users to temporarily delegate transaction signing authority for specific activities, like granting a game permission to sign on their behalf for a set period. Another intriguing module is the implementation of subscription models. Users can program their smart accounts to handle recurring payments, such as a monthly subscription fee to services like Netflix where Netflix can pull x amount of coins per month and no more. For financial management and security, smart accounts can also enforce spending limits. Users can set a cap on the amount of money or value of assets that can be transacted monthly, providing control over their financial activities. Asset protection is another vital module. Users can set rules in their smart accounts to safeguard valuable assets. Any transaction attempting to transfer these protected assets, like a Pudgy Penguin NFT, would be automatically reverted. Additionally, role based access control in smart accounts allows for the creation of specific roles with defined permissions for specific signing key holders. For example, a role can be established for trading on a particular UniSwap pair with restrictions on the percentage of profits the key holder can access.</p><p>You might be wondering, can't these features already be implemented with EOA meta-transactions or pre-approved batch signatures? The answer is yes, but there are distinct advantages to using smart account modules. These modules enable onchain verification of conditions and allow for the simultaneous use of multiple relayers. In contrast, other methods might require giving up control of your EOA private key or relying on a second party's countersignature, which introduces potential risks of censorship or denial-of-service issues.</p><h4><strong>Paymasters</strong></h4><p>Paymasters in ERC-4337 are required to have a <code>validatePaymasterUserOp</code> function, to authorize users to use the paymaster. Additionally, they may include a <code>postOp</code> function to manage tasks after the operation, such as transferring ERC-20 fee tokens from the user or refilling the EntryPoint contract with ETH.</p><p>The design of paymasters allows for customized fee sponsorship. Developers can create paymasters that cover transaction fees in exchange for ERC-20 tokens, offer free transactions under certain conditions, or implement tiered fee structures based on user behavior. This flexibility enables the development of various business models within the Ethereum ecosystem.</p><p>For instance, paymasters can offer transaction fee discounts for specific token holders, or create loyalty based fee coverage programs. They can also adapt to dynamic pricing models that respond to market conditions or user engagement, providing innovative ways to manage transaction fees.</p><h4><strong>Social Recovery and Multi-Signature Smart Accounts</strong></h4><p>Social recovery in smart accounts introduces a user friendly approach to account recovery, mitigating the risks associated with traditional methods like relying solely on a seed phrase. Users appoint trusted contacts such as friends, family members, or trusted institutions as recovery agents within their smart account. This setup eliminates the worry of losing access to assets due to lost or forgotten seed phrases.</p><p>The recovery process operates on a consensus model. For account recovery to be initiated, a majority or a predefined number of these appointed agents must agree and provide their signatures, effectively authorizing the recovery action. This approach ensures that recovery is not solely dependent on a single individual's decision.</p><p>Smart accounts offer the flexibility to set specific criteria or conditions for recovery activation. These could include time delays, location based triggers, or other predetermined conditions, adding a layer of control and customization to the recovery process.&nbsp; Smart account wallets should offer users straightforward options to select their recovery agents and define the conditions for account recovery.&nbsp;</p><p>Similar to Gnosis Safes but now, these multi-signature smart accounts are treated as first class citizens, eliminating the worry of them being a pain to work with. These accounts requires multiple signatures from a predefined group of addresses for a UserOp to be executed. It's particularly beneficial for organizations or joint accounts where consensus is needed for transactions or just to beef up your security. This collective authorization approach enhances security by distributing control, making unauthorized access more difficult.</p><h4><strong>Diverse Validation (Signing) Methods</strong></h4><p>Before the introduction of ERC-4337, verifying the authenticity of a transaction required signing an EOA using the ECDSA on the secp256k1 curve. Now, you have the flexibility to sign your transaction using any method you prefer, enhancing security, user experience, and aligning with various use cases. These validation methods can even be plugged in as modules to your smart account after it's already deployed. Some examples include:</p><p><strong>Passkey-Based Systems with Secure Enclave Integration: </strong>Utilizing biometric features like Face ID or fingerprints, this method enables transactions to be signed through biometric authentication. By generating cryptographic signatures within a device's secure enclave, triggered by biometric authentication, this method significantly reduces the exposure of private keys. This ensures that the key material never leaves the secure hardware, providing a robust layer of security against external threats. A key distinction is that passkeys utilize ECDSA on the secp256r1 curve. In your smart account's <code>validateUserOp</code> function, a prewritten function can now be used to verify signatures made with this method. I will cover passkeys in detail in a later section about an EIP that proposes a new precompile aimed at reducing the gas cost for verifying the secp256r1 curve used by passkeys.</p><p><strong>MPC (Multi-Party Computation)</strong>: Enables multiple parties, each holding a portion of private data, to collaboratively compute a function without disclosing their individual inputs. In the context of account abstraction, MPC is used for the secure generation and management of signing keys. The private key in MPC is divided and distributed among various parties, and these shares are combined to create a complete signing key only when authorized. There are various MPC providers, differing in the number of nodes holding a key shard, cryptographic methods for key recreation, and authorization options for key recreation. Some providers allow users to authorize the recreation of their key for transaction signing through methods like email verification with a magic link or by signing in with an OAuth-enabled web2 provider such as Gmail, Facebook, or Twitter.</p><p><strong>Quantum-Resistant Algorithms</strong>: With advancements in quantum computing, there is a growing need for quantum-resistant cryptographic algorithms. These algorithms are designed to be secure against the potential future threat of quantum computers, providing a more forward looking approach to transaction signing.</p><h3><strong>Aggregator Contract</strong></h3><p>When users transact on a Layer 2, they incur a gas fee. This fee is composed of two parts: the cost to execute the transaction itself and the cost to post transaction data back to Mainnet. The latter represents the bulk of the expenses, accounting for approximately 95% of the total fee charged to users. As Mainnet continues to upgrade, incorporating features like Proto-Danksharding, a solution for more efficient temporary data posting, and Danksharding, which enables nodes to verify complete data submission through probabilistic checks, we can expect these data posting costs to decrease. Nevertheless, the aim is to further reduce Layer 2 costs.</p><p>ERC-4337 introduces an approach to alleviate this by minimizing the amount of data Layer 2 networks need to post when using ERC-4337. It leverages an Aggregator Contract, which effectively handles verifying multiple UserOps. Traditionally, each UserOp would require its own signature, often around 65 bytes or more, contributing significantly to the data footprint and, consequently, the cost. However, the Aggregator Contract simplifies this process by removing the need to include a signature field in each UserOp. Instead, the aggregator contract collects a batch of transactions and validates them with a single, combined signature using BLS cryptography. This BLS signature is considerably shorter than the cumulative total of individual UserOp signatures. Since Layer 2 networks pay Mainnet to post this data, the aggregation of signatures into a single, concise BLS signature translates into substantial savings.</p><p>To utilize this feature, bundlers have an extra responsibility. They must collect the individual signatures from various user operations and merge them into a single BLS signature. Following this step, they can compile multiple sets of aggregated user operations, with each set bearing one BLS signature. However, instead of using the standard <code>handleOps</code> function on the EntryPoint contract, they must call a different function called <code>handleAggregatedOps</code> designed for this purpose.</p><p>The rest of the process largely mirrors the standard ERC-4337 process, with a notable difference during the verification stage. During this phase, instead of contacting each user's smart account one by one for validation, the system consults the aggregator contract specified in the <code>UserOpsPerAggregator</code> struct. The aggregator contract, then, verifies the batch of transactions collectively, which streamlines the operation.</p><h2 style="text-align: center"><strong>The Future</strong></h2><h3><strong>EIP-7212: </strong>Implementing WebAuthn Standards in Ethereum</h3><p>WebAuthn, developed by the FIDO Alliance and the World Wide Web Consortium (W3C), is a web standard for secure, passwordless authentication. It enables users to log in to websites with biometrics, mobile devices, or FIDO security keys, enhancing security and simplifying the login process. During registration, a user's device generates a public-private key pair, similar to creating an Ethereum EOA, with the public key sent to the website's server and the private key retained securely on the device. For login, the website requests authentication, and the device signs a challenge with the private key, proving identity without a password.</p><p>Passkeys are a user authentication method based on the WebAuthn standard. One place to store them when using an Apple device is using iCloud Keychain. When a user signs in via iCloud, it becomes possible to recover their Passkeys. However, while iCloud Keychain is secure, it doesn't offer hardware-level security. The private key is briefly copied in plain text into the system memory, creating a potential attack surface. If an app is compromised, there's a risk to the key. Alternatively, Passkeys can be secured using the iPhone's Secure Enclave, an isolated microchip within Apple's chips designed for secure data and operations. The private key is securely generated and stored in the Secure Enclave, ensuring it never leaves the hardware. This means that using biometrics to access a Passkey stored in the Secure Enclave offers maximum safety, though it trades off ease of recovery.</p><p>You might be thinking, "This sounds great, we can use the Secure Enclave to hold our Passkeys, authenticate them with Face ID, and then sign transactions using a passkey, which are verified by an account abstraction wallet." However, it's not that simple. When I mentioned, "During registration, a user's device generates a public-private key pair, similar to creating an Ethereum EOA," I used the word 'similar' intentionally. It's a comparable process but not exactly the same. You might not recall, but earlier in this post, I mentioned that Ethereum, like Bitcoin, uses the ECDSA with the secp256k1 elliptic curve to generate its public-private key pairs. In contrast, the WebAuthn standard employs a different elliptic curve, known as secp256r1, for generating its public-private key pairs.</p><p>A problem arises because verifying signatures on the secp256k1 curve is one of the nine precompiled contracts in the EVM, but this isn't the case for the secp256r1 curve. A precompiled contract is a special type of contract, integrated directly into the EVM, instead of being user written and deployed. These contracts offer cheaper gas costing functions for specific operations than if the same functionalities were executed through smart contracts. Among these is the <code>ecrecover</code> function. It processes the signature and the message to return the signer's address. However, <code>ecrecover</code> is compatible only with the secp256k1 curve and not the secp256r1, which is used in passkeys. Being a precompiled contract, the cost of using <code>ecrecover</code> is relatively low, at about 3k gas.</p><p>EIP-7212 proposes making the verification of signatures on the secp256r1 curve as efficient as on the secp256k1 curve by incorporating it into a precompiled contract. Initially, the Clave team, who co-authored the EIP, found that using Solidity for verifying keys on the secp256r1 curve cost around 400k gas. Optimizations later reduced this to roughly 70k gas. However, it's important to note that each public key requires its unique set of pre-computed data, tailored to its mathematical properties, to optimize signature verification. Thus, the pre-computation and deployment are specific to each key. To verify signatures from a different public key, new pre-computation and a new contract deployment are necessary, which is notably gas intensive, costing about 3.2 million gas. For a deeper understanding of the need for pre-compilation and redeployment, I recommend listening to the Web3 Galaxy Brain episode featuring the Daimo Team, the other half of the EIP-7212 authors, available <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://web3galaxybrain.com/episode/DC-Posch-and-Nalin-Bhardwaj-Founders-of-Daimo">here</a>. Alternative methods for verifying signatures on the secp256r1 curve exist, including SNARK-based approaches and various Solidity implementations. Nonetheless, the overarching issue remains the same: verifying signatures on the secp256r1 curve within the EVM is highly gas consuming, and EIP-7212 aims to make it as cost effective as verifying signatures on the secp256k1 curve.</p><p>The EIP seems like an obvious choice to include in the protocol, and guest after guest on Web3 Galaxy Brain seem to agree. If we're aiming for a web2-like user experience, making signature verification for biometric keys as affordable as for EOAs is essential. However, Vitalik has expressed caution about adding new precompiled contracts. In his blog post titled <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://vitalik.ca/general/2023/09/30/enshrinement.html">“Should Ethereum be okay with enshrining more things in the protocol?”</a>. He pointed out that previous precompiles, like RIPEMD and BLAKE, haven't been used as much as expected, suggesting we should learn from that. Whether this EIP will be included in the protocol remains uncertain, but it's definitely one to watch closely.</p><h3><strong>ERC-6900: Modular Smart Contract Accounts and Modules</strong></h3><p>As you now know, if you’ve made it this far, ERC-4337 introduces custom logic in the validation and execution stages of a transaction. It features modules like session keys, subscriptions, spending limits, and role-based access control. Currently, these modules vary across different smart account providers, creating uncertainty about module compatibility and potential duplication of development efforts. For example, imagine this situation: You visit Alchemy’s smart account interface and set up your new smart account. You also install a module from Alchemy that restricts you from spending more than 10 ETH in a single transaction. Later, you decide to try the Obvious Wallet interface to interact with your smart account, similar to how you might export your private key from Metamask to Rainbow for EOAs. However, when you use the Obvious Wallet interface to access your smart account, you find that the module you installed with Alchemy doesn’t work, and you can spend over 10 ETH in a transaction. This is because Obvious Wallet doesn’t recognize the module from Alchemy. Right now, if you're a developer wanting to create modules, you either get locked into developing for one wallet interface or you have to make separate modules with the same functionality, each compatible with a different wallet interface.</p><p>ERC-6900 aims to standardize these modules, simplifying the creation and management of them for developers. This would lead to a more streamlined user experience, as developers could create modules usable across any compliant smart account interface, reducing their workload and enhancing data portability. The standard splits the smart account into more modular components. At its base, the smart account remains simple, but users can add modules to enhance functionality. These modules come in three types:</p><ul><li><p>Validation Functions: Check whether the person or entity trying to use the smart account is authorized to do so</p></li><li><p>Execution Functions:  The core functions that dictate what the smart account actually does when it's used</p></li><li><p>Hooks: Additional pieces of logic that execute before or after the validation or execution functions</p></li></ul><p>Typically, smart accounts are accessed through the EntryPoint contract, though this isn't the only method. Owners of smart accounts, whether they are EOAs or other smart contracts, have the option to bypass the <code>validateUserOp</code> function. They can choose to directly invoke functions for executing transactions onchain. ERC-6900 is designed to support both these access methods. As a result, it defines more specific categories of validation functions, execution functions, and hooks to cater to these varied approaches. The diagram below illustrates all these specific types of functions. Following the diagram, I will provide a detailed definition of each, along with multiple examples to demonstrate their use and functionality:</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/02de632dd114d8eb5495006381e0abe0.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p><strong>User Operation Validation Functions:</strong> Handle the validation of user operations in smart contract accounts. They are the main validators for ensuring the transaction complies with the contract's rules.</p><ul><li><p>Examples:&nbsp;</p><ul><li><p>Passkey Secured Account: A User Operation Validation Function confirms the correct passkey for each transaction.</p></li><li><p>DeFi Credit: A function checks transaction criteria for Buy Now Pay Later services.</p></li></ul></li></ul></li><li><p><strong>Runtime Validation Functions: </strong>Executed just before the main execution step of a modular account function, particularly for calls that are not made through a UserOp (like direct smart contract interactions).</p><ul><li><p>Example:&nbsp;</p><ul><li><p>Check whether the caller trying to modify important settings is indeed the account owner or a designated admin. If the caller is not authorized, the function would prevent the execution of the update.</p></li><li><p>Virtual Cold Storage feature: A Runtime Validation Function could verify high security measures (like 2FA or multi-sig) are met before allowing transactions with certain assets</p></li></ul></li></ul></li><li><p><strong>Execution Function: </strong>Defines the main execution step of a function for a modular account.</p><ul><li><p>Example:</p><ul><li><p>A function that performs a token transfer from the smart contract account to another address.</p></li><li><p>Dollar-Cost Averaging: The Execution Function would periodically execute buy orders for a specified cryptocurrency, following a user defined investment strategy.</p></li></ul></li></ul></li><li><p><strong>Pre User Operation Validation Hook Functions: </strong>Run before the main user operation validation functions. They are used for setting preconditions or carrying out initial assessments that might impact the validation process.</p><ul><li><p>Example:&nbsp;</p><ul><li><p>Daily Transaction Limit: Checks whether the total value of transactions initiated from the account on that day has already reached the preset limit.</p></li><li><p>Timed Unlock: Verifies if the current date surpasses a predefined unlock date</p></li></ul></li></ul></li><li><p><strong>Pre Runtime Validation Hook Functions: </strong>Executed before the runtime validation functions, setting up preliminary conditions or checks for the validation process.</p><ul><li><p>Example:&nbsp;</p><ul><li><p>In automated trading, a function could check current market conditions or a "trading suspension" flag. If active, it prevents the trade execution</p></li><li><p>For an Exploit Detection system, a Pre Runtime Validation Hook Function might check real-time security alerts. If an exploit is detected in the protocol being interacted with, it blocks the transaction to protect the user.</p></li></ul></li></ul></li><li><p><strong>Pre Execution Hook Functions: </strong>Run just before the main execution step of a transaction or operation in a smart contract account. They can perform preliminary actions or computations and optionally pass data to post execution hooks.</p><ul><li><p>Example:</p><ul><li><p>In Crowdfunding: Check if the campaign has reached its funding goal before allowing a new contribution. If the goal is already met, the function might either reject the transaction or redirect the funds to a different function.&nbsp;</p></li><li><p>Automated Token Trading: A function that analyzes market conditions using external oracles before execution.</p></li></ul></li></ul></li><li><p><strong>Post Execution Hook Functions: </strong> Executed after the main execution step of a transaction or operation. They can handle cleanup, state resetting, or further processing based on the outcome of the execution and data received from pre execution hooks.</p><ul><li><p>Example:&nbsp;</p><ul><li><p>In Crowdfunding: Responsible for sending a thank you message or a digital reward to the contributor after their contribution is successfully processed.</p></li><li><p>NFT Rental service: Handle the transfer of NFT access rights back to the owner after the rental period ends, ensuring the NFT is returned automatically.</p></li></ul></li></ul></li></ul><p>These examples just scratch the surface of functionality developers can create using modules. For more inspiration, the Rhinestone team has compiled a list of ideas <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://rhinestone.notion.site/Module-ideas-for-developer-inspo-338100a2c99540f490472b8aa839da11">here</a>. To understand the specific formatting requirements for modules, you can refer to the ERC documentation <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://eips.ethereum.org/EIPS/eip-6900">here</a>. Keep in mind that this standard is still a work in progress. Modular account abstraction teams are actively refining the specifications, so it's important to stay updated with the latest information online.</p><p>Biconomy and Rhinestone are launching the Module Store, an app store for modules, backed by the Rhinestone Protocol. This protocol facilitates the lifecycle of smart account modules, from development to installation and monetization. The Module Store aims to ensure interoperability, security, and ease of use for modules. Starting in Q1 of 2024, all dapps and wallets built on Biconomy’s embedded smart account framework will have access to the Module Store. This marketplace will feature smart account modules, developed by various creators and secured by a network of auditors, offering a seamless plug-and-play solution for dapp developers. For further details on the store, you can read the announcement <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out" href="https://www.biconomy.io/post/biconomy-and-rhinestone-team-up-to-launch-the-first-module-store-for-account-abstraction">here</a>.</p><h3><strong>Managing Smart Accounts Across Different Chains</strong></h3><p>In a future where Layer 2s are widely used and everyone has smart accounts, we encounter a significant challenge. If you wish to change the keys controlling your smart account on one L2, you currently have to repeat this process individually on each L2 you use. For example, if your smart account is managed by four EOAs and you decide to remove one, this change has to be implemented separately on each L2. </p><h4><strong>Vitalik’s Keystore Proposal</strong></h4><p>To solve this, Vitalik has suggested a Keystore Contract for each user, which could be located on either L1 or L2. This Keystore Contract would keep a record of your valid signing keys and the rules for changing them. Your smart account would then always reference the Keystore Contract to verify the current valid signing keys. Vitalik discusses various methods for this, including secure cross-chain message transmission, choosing the best proof methods, ensuring privacy, and more. For an in depth understanding, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://vitalik.ca/general/2023/06/20/deeperdive.html">you can read his full post</a>.</p><h4><strong>Module Solution</strong></h4><p>The Multichain Validation Module developed by Biconomy offers a solution for managing smart accounts across various blockchain networks and rollups. It allows for the authorization of multiple operations on different chains with a single user signature. This is achieved by using Merkle Trees to combine multiple UserOp hashes into one Merkle Root, which the user signs. This method enables actions such as deploying and configuring smart accounts on several chains or issuing session keys with different permissions across chains, using just one signature. The module employs a trust model similar to the general ERC-4337 flow, where users must trust the app generating the Merkle Root to not include any malicious UserOp hashes. <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://www.biconomy.io/post/multchain-validation-smart-account-module">For more</a>.</p><h3><strong>ERC-1271: Verifying Signatures from Smart Contracts (Accounts)</strong></h3><p>There are times when a user signs a transaction offchain, and then someone else, like another user or a relayer, submits the signed message on behalf of the user onchain. For example, imagine a user wants to buy a specific Pudgy Penguin NFT for 3 ETH on OpenSea. They sign a message about this offer offchain and send it to OpenSea's servers. Later, when the owner of the Pudgy Penguin decides to accept this offer, they use the signed message and their signature to instruct the OpenSea contract to complete the purchase. Another scenario could involve a DeFi app offering gasless transactions for their users. In this case, users sign messages offchain for actions like trades or loan requests, then send these signed messages to the DeFi protocol's servers, which subsequently submits them to the blockchain, covering the gas fees. In both these situations, and others similar, the traditional method of handling signed messages onchain, before the introduction of ERC-1271, involved using the <code>ecrecover</code> precompile function in Solidity. <code>ecrecover</code> takes the signature and message and returns the signer's address. However, this method has its limitations, as it works only with transactions signed by EOAs and not with those originating from smart contracts (which is what smart accounts technically are).</p><p>ERC-1271 is a crucial standard for fully realizing the benefits of account abstraction. Although smart accounts are now first class citizens in the EVM with ERC-4337, this alone isn't sufficient if smart contract developers continue to use <code>ecrecover</code> for signature validation. Unlike EOAs, smart contracts don't have private keys and therefore can't create standard Ethereum signatures. ERC-1271 enables smart contracts to 'sign' data. ERC-1271 allows them to define their own criteria for what constitutes a valid signature. <strong>A smart contract following ERC-1271 includes a </strong><code>isValidSignature</code><strong> function.</strong> When another contract needs to confirm a signature claiming to be from a specific smart contract, they call its <code>isValidSignature</code> function inputting the data's hash and the signature.  <strong>If the isValidSignature function deems the signature valid, it returns a special value, 0x1626ba7e. Otherwise, it should return a different value, such as 0xffffffff. </strong>This function contains custom logic to determine the validity of a given signature, which can vary based on the contract. For instance, a multi-signature contract might verify if the signature matches any of its approved signers. Or it could involve calling other functions within the contract, examining the contract's own state, or even interacting with external contracts to assess a signature's validity.</p><p>Let's revisit the OpenSea Pudgy Penguin example to clarify how this process works. Suppose a user has a smart account where Face-ID passkeys act as the signer. When this user decides to make an offer to buy a Pudgy Penguin NFT for 3 ETH, they create a commitment or instruction stating, "I agree to buy this NFT for 3 ETH." This commitment is signed using their Face ID and both the commitment and signature are submitted to OpenSea's servers. Later, when the current owner of the NFT decides to accept this offer, OpenSea begins processing the transaction. This involves interacting with the buyer's smart account. The smart account has an <code>isValidSignature</code> function, which is compliant with the ERC-1271 standard. This contract's <code>isValidSignature</code> function would be similar in functionality to ecrecover, but in this case, it would most likely call out to an external contract (or, perhaps by the time you're reading this, EIP-7212 has been implemented and there's a precompile to verify signatures made by passkeys), inputting the message and signature and outputting a public key. This external function would use ECDSA on the secp256r1 curve. If the output matches the public key stored in the smart account, it will return 0x1626ba7e, signaling that the signature is indeed valid. Once verified, OpenSea executes the transaction on the blockchain. This action transfers the NFT from the seller to the buyer and moves 3 ETH from the buyer's wallet to the seller.</p><h3>Enshrining Account Abstraction</h3><p>ERC-4337 offers a significant advancement in Ethereum's functionality, but it's not without its drawbacks. One of the main challenges is that existing users cannot seamlessly transition from their current EOAs to this new system. They would need to transfer all assets and activities from their EOAs to smart accoun. Additionally, using ERC-4337 costs more gas than the traditional method – approximately 42k for basic user actions, which is nearly double the 21k needed for standard transactions. It also reduces effectiveness of anti-censorship methods like crLists, depends on fewer nodes, and uses of unconventional methods such as <code>eth_sendRawTransactionConditional</code>. Another compatibility issue arises with <code>tx.origin</code> or contracts dependent on it, as ERC-4337 uses the address of a bundler. Given these considerations, it’s essential to explore different proposals and implementations that could integrate an account abstraction solution directly into the Ethereum protocol. In the following sections, we'll dives into these alternatives and their potential to enhance Ethereum's user experience.</p><h4><strong>RIP-7560: </strong>Integrating Account Abstraction into EVM-like Rollups</h4><p>RIP stands for Rollup Improvement Proposal (yes, I know, we're not great at naming in Ethereumland, get used to it). It's different from EIPs in that RIPs propose upgrades specifically for EVM-like rollups. Rollups can more easily upgrade their protocol compared to Ethereum's base layer, which is stricter and undergoes extensive testing to minimize the risk of bugs. In a sense, rollups can use RIPs to 'test' new upgrades for Mainnet. Successful implementations on rollups might later be adopted by the base layer. This particular RIP, proposed by Vitalik and others, aims to integrate account abstraction directly into the protocol, rather than as an upstream layer like in ERC-4337. It addresses some issues with ERC-4337 <strong>while facilitating an easy transition from ERC-4337 to RIP-7560.</strong> </p><p>This proposal introduces a new transaction type, that looks similar to a User Operation, named <code>AA_TX_TYPE</code>. This type includes several fields, including chainId, sender, nonce, builderFee, callData, paymasterData, deployerData, maxPriorityFeePerGas, maxFeePerGas, validationGasLimit, paymasterGasLimit, callGasLimit, accessList, and signature. It also proposes a new approach to managing nonces for smart accounts with a two-dimensional system utilizing a <code>key</code> and a <code>sequence</code> value. The <code>NonceManager</code>, a dedicated contract, administers this system, tracking these nonces to ensure their correct application.</p><p>Here’s process for nonce verification:</p><ol><li><p>Initiate a transaction from your smart account and select a key that categorizes the transaction.</p></li><li><p>Check the current sequence value for that key using the <code>NonceManager</code>.&nbsp;</p></li><li><p>Submit your transaction with the chosen key and the next sequential value.</p></li><li><p>The <code>NonceManager</code> verifies if the sequence value is correct (the next in line for that key) and then increments it for subsequent transactions.</p></li></ol><p>Here’s the flow to verify and execute a transaction:</p><ol><li><p>Validation Phase:</p><ol><li><p><strong>Nonce Validation and Increment:</strong> Updates the transaction count for an account.</p></li><li><p><strong>Sender Deployment: </strong>If it's the sender's first time, in this step a new smart account is deployed.</p></li><li><p><strong>Sender Validation:</strong> Ensures the transaction details are accurate and validates signature.</p></li><li><p><strong>Paymaster Validation </strong>(Optional): A paymaster, if involved, validates its role in the transaction.</p></li></ol></li><li><p>Execution Phase:&nbsp;</p><ol><li><p><strong>Sender Execution: </strong>Carries out the planned actions of the transaction.</p></li><li><p><strong>Paymaster Post-Transaction</strong> (Optional): The paymaster, if part of the transaction, carries out any needed actions after the transaction is done.</p></li></ol></li></ol><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/897efefc1b9d88fb5a24fba703442ce4.webp" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>This RIP, while currently not fully detailed in every aspect, is essentially a proposal to incorporate the advantages of account abstraction into a rollup. It aims for a smooth transition from the existing ERC-4337 standard. I only gave you a high-level overview here, not touching on every aspect of the RIP. To get a deeper understanding of the proposal, you can read the complete RIP at this <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://github.com/ethereum/RIPs/blob/e3bead34f1bcf1aa37fd51923ad99a77b801775c/RIPS/rip-7560.md#execution-layer-transaction-validation">GitHub link</a>. For the most recent updates on this proposal, keep an eye on the discussion thread at the Ethereum Magicians forum, available <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://ethereum-magicians.org/t/rip-7560-native-account-abstraction/16664">here</a>.</p><h4><strong>zkSync Native Implementation</strong></h4><p>zkSync is an EVM compatible Layer 2 rollup. Unlike EVM equivalent rollups that closely mirror the Mainnet EVM, zkSync made specific design choices that slightly modify their virtual machine. These adjustments not only make its bytecode more SNARK-friendly but also allow for the inclusion of features absent in Ethereum's base layer. One notable feature is the native implementation of account abstraction. zkSync has already integrated smart accounts and paymasters, similar to what we're familiar with, but built directly into its protocol.</p><p>Similar to RIP-7560, zkSync also had to come up with a method for verifying the nonces of smart accounts. Their solution allows users to select any 256-bit number as a nonce, with the stipulation that each nonce can be used only once. To enforce this, they utilize an external contract named the <code>NonceHolder</code>. For developers working with zkSync, it is recommended to adhere to the account and paymaster interfaces as specified by zkSync.</p><p>Accounts on zkSync are required to implement specific methods. Here's a breakdown of them and their functionality:</p><ul><li><p><strong>validateTransaction</strong>: Used during the transaction's validation phase. It sets the rules for programmable verification of transactions. If a transaction fails these verification rules, this method must revert the transaction.</p></li><li><p><strong>payForTransaction</strong> or <strong>prepareForPaymaster</strong>:</p><ul><li><p><strong>payForTransaction</strong>: Used when a transaction does not involve a paymaster. Accounts should implement it to manage the transaction fees themselves.</p></li><li><p><strong>prepareForPaymaster</strong>: Called when a transaction involves a paymaster. If it executes without reverting, the system proceeds to call the paymaster’s <code>validateAndPayForPaymasterTransaction</code> method, passing along the necessary data.</p></li></ul></li><li><p><strong>executeTransaction</strong>: Executes the actual transaction as per the defined instructions.</p></li><li><p><strong>executeTransactionFromOutside </strong>(Optional, but Recommended): Allows external entities to initiate transactions from the account. This functionality is similar to the standard Ethereum model, where an EOA can initate transactions from a smart contract.</p></li></ul><p>For paymasters, the following methods are necessary:</p><ul><li><p><strong>validateAndPayForPaymasterTransaction</strong>: Used to determine whether the paymaster is willing to cover the costs of a specific transaction. If the paymaster agrees to pay, it must transfer an amount no less than <code>tx.gasprice * tx.gasLimit</code> to the operator. Additionally, the method should return a 'context', which is used by the <code>postTransaction</code> method, provided the latter is implemented.</p></li></ul><ul><li><p><strong>postTransaction</strong> (Optional): Called after the transaction has been executed. It's used for any additional logic or actions the paymaster may need to perform post-transaction. This could include steps like cleanup or bookkeeping.</p></li></ul><p>Here's an explanation of each step in the transaction flow:</p><ol><li><p>Validation Step:</p><ol><li><p><strong>Nonce Check</strong>: The system first checks the transaction's nonce using the <code>NonceHolder</code>. It confirms the nonce hasn't been used before.</p></li><li><p><strong>validateTransaction Method</strong>: The system calls the <code>validateTransaction</code> method of the account involved to validate the signature. If this method does not revert, the process moves forward.</p></li><li><p><strong>Nonce Usage Verification</strong>: After the validation, the <code>NonceManager</code> marks the nonce as used, updating its status in the system.</p></li><li><p><strong>Fee Payment (Without Paymaster)</strong>: For transactions that don't involve a paymaster, the <code>payForTransaction</code> method of the account is called to handle the transaction fees.</p></li><li><p><strong>Fee Payment (With Paymaster)</strong>: If a paymaster is involved in the transaction, the system first calls the <code>prepareForPaymaster</code> method of the sender's account. If successful, the system then proceeds to call the <code>validateAndPayForPaymasterTransaction</code> method of the paymaster.</p></li><li><p><strong>Bootloader Fee Verification</strong>: The system checks whether the bootloader (responsible for transaction execution) has received the required transaction fees, calculated as <code>tx.gasPrice * tx.gasLimit</code>. If the fees are appropriately received, the transaction successfully passes the validation phase.</p></li></ol></li><li><p>Execution Step:</p><ol><li><p><strong>executeTransaction Method</strong>: The system executes the <code>executeTransaction</code> method of the account, which contains the actual logic of the transaction.</p></li><li><p><strong>Post-Transaction (With Paymaster)</strong>: For transactions involving a paymaster, the <code>postTransaction</code> method of the paymaster is called. This step is typically used for refunding any unused gas to the sender, especially relevant when transaction fees are paid in ERC-20 tokens rather than ETH.</p></li></ol></li></ol><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/675658d4fe30c312bf2ad9d0277e94ca.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/d85e7c027c104903677ad52ab9fe3c0b.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><h4><strong>EIP-3074</strong></h4><p>EIP-3074 is still in the review phase and aims to introduce two new opcodes to the EVM that will allow smart contracts to send transactions in the context of an EOA. Essentially, this means that when these new opcodes are used, a smart contract can send a message or call another smart contract, and it will appear as if the message is coming from an EOA, not from the calling smart contract. This is a significant change because it means you don't need a smart contract account to perform these actions. You can simply use what's known as an invoker contract, which is a straightforward, secure type of smart contract that can execute transactions on behalf of your account. EIP-3074 doesn't create a new type of transaction, it simply adds two new opcodes to the EVM.</p><p>To illustrate how it works from a high level, here's a walkthrough of a simple example. In a ERC-20 contract, the transfer function might look like this:</p><pre class="dont-break-out text-sm md:text-base"><code class="language-javascript">function transfer(address _to, uint256 _value) public returns (bool success) {
&nbsp;&nbsp;require(balances[msg.sender] &gt;= _value);
&nbsp;&nbsp;balances[msg.sender] -= _value;
&nbsp;&nbsp;balances[_t0] += _value;
&nbsp;&nbsp;balances[recipient] = _balances[recipient].add(amount);
&nbsp;&nbsp;emit Transfer(msg.sender, _to, _value);
&nbsp;&nbsp;return true;
}</code></pre><p>With EIP-3074, you can sign a message from your EOA indicating a desire to transfer tokens. This signed message is sent onchain to your invoker contract. The invoker contract then executes the actions, which include calling the transfer function of the ERC-20 contract. Normally, <code>msg.sender</code> in the ERC-20 contract's transfer function would refer to the invoker contract. However, EIP-3074 changes this: <code>msg.sender</code> can be set to your EOA, even though the call to the ERC-20 contract is made by the invoker contract. This allows you to transfer tokens from your EOA by calling the ERC-20 contract through your invoker contract, changing the traditional understanding of <code>msg.sender</code>. Therefore, In this system users don't need to transfer assets out of their EOAs to take advantage of it.</p><p>The two new opcodes in EIP-3074 are <code>AUTH</code> and <code>AUTHCALL</code>. <code>AUTH</code> is used to set up a special kind of permission using a digital signature, specifically an ECDSA signature. This process establishes an <code>authorized</code> context in the EVM for a particular user account. To use <code>AUTH</code>, a signature and a hashed message, known as a commit, are required. The EVM uses this information to identify the signer of the message, and this signer's address is marked as <code>authorized</code>.</p><p>Following this, <code>AUTHCALL</code> comes into play. It allows transactions or messages to be sent as if they are coming from the authorized user account, not the smart contract that is actually initiating the action. It's similar to the <code>call</code> opcode, but it sets the authorized context address as the <code>msg.sender</code>. This is a major shift because it means that the actions look like they are coming from a regular user's EOA rather than from a smart contract. When another smart contract receives a message or transaction and checks the sender (using <code>msg.sender</code>), it sees the address of the authorized EOA, not the smart contract that made the call. This mechanism allows smart contracts, known as invokers, to perform actions that were previously exclusive to user accounts, allowing a lot of the benefits of account abstraction to be unlocked.</p><p>A basic flow to send one or more transactions looks like this:</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/b8ce8876928650c53dd8270cf4bf3329.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>Under the EIP-3074 system, who sends a transaction to a contract is not important as long as the signature from the EOA is valid. This flexibility allows a transaction to be sent by someone else or a different account, not just the account owner. However, it's important to note that currently, you can't use EIP-3074 to send ETH directly from an EOA. This limitation is due to the need to maintain certain key assumptions in the Ethereum network, like how a transaction's validity is determined. Instead, any ETH involved in these transactions comes from the balance of the invoker, the smart contract initiating the action. Although you can't directly send ETH from an EOA using EIP-3074, you can still transfer ETH to the invoker contract. The invoker can then use this ETH as needed for the transactions it handles. For more information, you can read the full EIP post <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out" href="https://eips.ethereum.org/EIPS/eip-3074">here</a> and follow the subsequent Ethereum Magicians discussion <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out" href="https://ethereum-magicians.org/t/eip-3074-auth-and-authcall-opcodes/4880">here</a>.</p><h3><strong>Conclusion</strong></h3><p>Hopefully, you now have a solid understanding of Ethereum's accounts and transactions. We've looked at how they worked before ERC-4337, how they function with the adoption of ERC-4337, and what the future holds for account abstraction. It's been a challenging journey toward account abstraction. Sometimes, I wonder how the Ethereum user experience might have looked if Vitalik and the other founders had managed to launch Ethereum with built-in account abstraction, as they originally intended. Looking at zk-Sync's clean and straightforward in-protocol implementation of account abstraction, it's clear what could have been. However, the developers are already stretched thin, and I'm grateful for ERC-4337, despite its complexities, for bringing us the benefits of account abstraction today.</p><p>The development of Ethereum is thrilling to me, and I can't imagine dedicating my time to anything else. Just last year, Ethereum accomplished a monumental technological feat by transitioning from proof of work to proof of stake. Next year, the protocol is set to scale like never before, introducing a new dedicated temporary dataspace for rollups. This change will significantly reduce the cost of transactions on layer two. Meanwhile, the user experience is undergoing a major transformation. ERC-4337 is live, and now it's about building applications that leverage it. I'm excited for the next wave of users who won't have to worry about writing down 12 words on a piece of paper or needing to click multiple times just to swap tokens. A new era has arrived, and it's time to start building.</p>]]></content:encoded>
            <author>chaskin@newsletter.paragraph.com (Jason Chaskin)</author>
        </item>
        <item>
            <title><![CDATA[Ethereum Proposer-Builder Separation: Past, Present, and Future]]></title>
            <link>https://paragraph.com/@chaskin/ethereum-proposer-builder-separation-past,-present,-and-future</link>
            <guid>wMT3hvDiq9NV0YIxQj7p</guid>
            <pubDate>Mon, 18 Sep 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[MEV's Impact on Block Building and Ethereum's Shifting Landscape to Fight it's Negative/Centralizing Externalities]]></description>
            <content:encoded><![CDATA[<p><em>Note: Originally published on September 18, 2023 on </em><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out" href="https://mirror.xyz/0x218932707a30bE62Ef8559d32d954863933b412f/MhJM9li409wxuOSYaw5EcLjUQoLSx5iYZXZNgMZU4uM"><em><u>Mirror</u></em></a><em>.</em></p><h2 style="text-align: start"><strong>Part 1: How We Got Here</strong></h2><p style="text-align: start">Ethereum was initially designed with the idea that a single party would handle the entire process of block creation. This entailed aggregating transactions from the mempool, crafting the block header, and either finding the golden nonce in proof of work or simply signing the block header in proof of stake. For its initial years, block building was straightforward: mining nodes pulled transactions from their mempool, ordered them based on gas price, which signifies the computational work of each transaction, and stayed within the gas limit per block. However, with the rise of decentralized finance (DeFi), this approach to block building has undergone significant changes.</p><img src="https://storage.googleapis.com/papyrus_images/9bc3996b0c0f78e1fca75349c7ac8d69.jpg" alt="" blurdataurl="data:image/png;base64,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" nextheight="417" nextwidth="625" class="image-node embed"><h3 style="text-align: start"><strong><em>The Centralizing Threat of MEV</em></strong></h3><p style="text-align: start">In DeFi, the sequence in which transactions are ordered can make a big difference. Let's say there's a transaction waiting in the mempool that aims to swap 1 ETH for BITCOIN (I'm talking about HarryPotterObamaSonic10Inu, of course) on UniSwap. The amount of BITCOIN you'd receive is based on the current ETH to BITCOIN ratio in the UniSwap pool. If someone else’s transaction, swapping 2 ETH for BITCOIN, gets processed right before yours does, you'll end up with fewer BITCOIN because the ETH to BITCOIN ratio has changed. Given the significance of transaction order, and miners control this ordering, it led to the emergence of what we call MEV, or Miner/Maximal Extractable Value. MEV represents the potential profit a miner can make by choosing which transactions to include, exclude, or rearrange.</p><p style="text-align: start">MEV might seem harmless at first. Heck, it could even appear as a booster for network security, more incentives for mining or validating, right? Besides the usual block rewards and transaction fees, now there's MEV up for grabs. But the reality is far from harmless. If left uncontrolled, MEV could become a potent centralizing force. Here's a story to illustrate this: Imagine you've just got wind of this MEV game and hear that validators are raking in more than 10% APR because of it. Tempting, right? You're all in! So, you send your 32 ETH to the staking contract and kick off a validator node. But wait a minute... You're only seeing a 4% return. When your turn to propose a block comes around, the transactions simply line up by their gas price. No MEV magic. You're not armed with the intricate algorithms and tactics to mine that MEV gold. Without the know-how, you're stuck with the default: ordering transactions by gas price.</p><p style="text-align: start">Here's where the centralizing pull kicks in. Even if you're a quant, your simple computer, maybe a raspberry pi, doesn't hold a candle to their supercomputers running next level MEV extraction plays. The obvious end game here is to turn off your validator and instead send your ETH to these super powered setups that promise a share of the MEV pie. Fast forward, and you might see a handful of these behemoths essentially running the network, a truly unsettling centralized outcome. If this is where things head, then Ethereum's foundational goals have failed. A network dominated by a select few might as well be a centralized database at that point.</p><h3 style="text-align: start"><strong><em>The Birth of Flashbots</em></strong></h3><p style="text-align: start">Phil Daian, a Ph.D. student at Cornell with a specialization in smart contract security, was among the early identifiers of the MEV issue. In August 2017, he published a blog titled <em>"The Cost of Decentralization in 0x and EtherDelta."</em> This blog was inspired by the front-running vulnerabilities he identified during the 0x ICO.</p><p style="text-align: start">Front-running involves spotting a transaction in the mempool that aims to swap Token A for Token B. A front-runner then programmatically initiates a similar transaction that offers a higher gas price. This strategy ensures that the front-runner's transaction is processed before the original one. After the initial transaction is processed, the front-runner can immediately trade Token B back for Token A, ending up with a larger quantity of Token A than they began with. This tactic is sometimes called a <em>sandwich attack</em>, as the user's transaction gets sandwiched between two transactions initiated by the front-runner. As a result, while the front-runner gains profit, the individual behind the original transaction receives less of Token B. While sandwich attacks are common, there are various strategies individuals can use to extract MEV effectively.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/09bd901dd39ddd3583514307665afab6.jpg" class="image-node embed"><figcaption htmlattributes="[object Object]" class="">Visualizing the Sandwich Attack: How Front-runners Profit at the Expense of Others</figcaption></figure><p style="text-align: start">During the ICO boom, Phil and a team deployed a bot that earned about a million dollars annually. After sharing their methodology in the blog post I mentioned earlier, several similar bots emerged, creating a competitive landscape where bots would outbid each other's gas prices to achieve transaction priority. This prompted Phil to deploy nodes globally, capturing real time transactional data. This research culminated in his famous <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://arxiv.org/abs/1904.05234"><u>"Flash Boys 2.0" paper</u></a>, which delved deep into the MEV challenges caused by decentralized exchanges.</p><p style="text-align: start">Here's a fun related story Phil shared when he was a guest on the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://www.youtube.com/watch?v=s6SC87TOu4k"><u>Chopping Block</u></a>. When Hayden Adams, the founder of UniSwap, shared his design for what's now the most popular decentralized exchange on <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="http://ethresear.ch">ethresear.ch</a>. Phil immediately messaged his concerns to both Vitalik and Hayden. Phil believed that UniSwap's design would cause a significant amount of MEV, making it a prime target for exploitation and putting users at risk of transaction reordering and sandwich attacks. Vitalik responded suggesting that these could just be looked at as an additional fee mechanism to use the blockchain. Phil was so pissed at this response and he thought powerful financial entities like Goldman Sachs would come in and eat retails lunch just like the current financial system. However, with time, Phil has come around to Vitalik’s perspective (all praise lord Vitalik).</p><p style="text-align: start">Recognizing the importance and challenges of the MEV space, Phil co-founded Flashbots, a company focused on research and solutions in the MEV arena. Flashbots realized that MEV is going to exist and Flashbots it’s mission to make sure that the existence of MEV doesn’t lead to a system where being a bad person or creating negative externalities is both better for you individually and is more profitable than being a good actor. An example of this is in TradFi, the most profitable strategies often involves exploiting the system's edges. Also Flashbots thought that there might be a way to harness the energy of MEV for the users and to subsidize people who secure the network and also to subsidize transactions on the network to get people better prices to give people the execution they want in these systems. If designed right, MEV could be part of what makes crypto outperform traditional systems.</p><h3 style="text-align: start"><strong><em>Harnessing MEV: The Role of Auctions and Proposer-Builder Separation</em></strong></h3><p style="text-align: start">Flashbots recognized that miners' monopoly over transaction ordering was a valuable resource. Their first step to democratizing MEV involved creating an auction system for transaction ordering rights. This led to the creation of MEV GETH, which first introduced the concept of proposer-builder separation (PBS). Ethereum Foundation's Barnabé Monnot describes PBS as: “A design philosophy where protocol participants might use third-party services during their consensus duties.” Up until this point, miners had complete control: they decided on the transaction order, did the hashing, and then added the block. But MEV GETH switched things up. It introduced outside actors, called searchers, who paid for the right to have their bundle of transactions included in the miners block.</p><p style="text-align: start">With MEV GETH, miners had a new endpoint. They could receive transaction bundles optimized for MEV from searchers. Each bundle would also contain a transaction that provided miners a fee, incentivizing them to select this particular bundle. Naturally, miners chose the bundle offering the highest fee. When searchers compete for MEV opportunities in the public mempool, their bids naturally escalate due to this competition. This competition ensures that miners receive the lion's share of MEV benefits.</p><p style="text-align: start">Let's break this down with an example: Imagine Alice is a searcher and spots an arbitrage opportunity between two decentralized exchanges. She could profit 0.07 ETH by buying Token X on UniSwap and then immediately selling it on SushiSwap for a higher price. So she creates a transaction bundle optimized for the 0.07 ETH MEV opportunity and is willing to pay a miner 0.05 ETH to prioritize her transactions in the next block. Bob, another searcher, identifies the same opportunity. He constructs a similar bundle but offers a 0.06 ETH payment to miners for the same privilege. Alice and Bob both send their MEV optimized transaction bundles to miners. On the other end, a miner receives these bundles and has to decide which one to include in the next block. Naturally, the miner chooses Bob's bundle due to the higher fee offered, ensuring the miner reaps maximum benefit. It's a win-win situation. The miner captures the majority of the MEV opportunity, receiving 0.06 ETH out of the 0.07 ETH opportunity. Meanwhile, the searcher secures a net profit of 0.01 ETH, which they otherwise wouldn't have been able to obtain. The essence of the MEV GETH mechanism is this competitive bidding. Alice and Bob compete against each other, offering incentives to the miner, thus ensuring the miner captures a significant portion of the MEV benefits.</p><p style="text-align: start">However, if they simply opened up an endpoint for anyone to send the miners bundles, malicious actors might exploit this openness to overload their system, potentially launching a DOS attack. To address this vulnerability, Flashbots introduced the Flashbots Relay. This relay serves a crucial filtering role: it assesses incoming transaction bundles based on their potential profitability for miners, the validity of the transactions, and the offered fee. Only the optimal bundles are then forwarded to the miners. This method does introduce a level of centralization, as the process is dependent on the Flashbots Relay to screen out undesirable or potentially harmful traffic. Interestingly enough, a level of PBS already existed between the mining pool operator and their workers. Typically, the operator constructed the block body, including the bundles sent from the relays, hashed the block header once, and dispatched it to workers to continue hashing and find the golden nonce.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/655ac6b728cd5e90aac4cc151f8e255f.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class="">Overview of MEV GETH: The journey from search to transaction bundle inclusion in the miner's block</figcaption></figure><h2 style="text-align: start"><strong>Part Two: The Current Landscape</strong></h2><p style="text-align: start">When Ethereum transitioned from Proof of Work (PoW) to Proof of Stake (PoS), the landscape of transaction validation and block proposal significantly changed. While PoW relied on miners and computational power (hash rate) to validate and add new blocks to the blockchain, PoS shifted this responsibility to validators who would <em>stake</em> their ETH to become block proposers.</p><p style="text-align: start">MEV GETH was being used by nearly all the mining pools, but with Ethereum transitioning to PoS, the system required modifications. PoS was designed to accommodate solo stakers: individual validators operating on low resource devices like a Raspberry Pi. PoS was designed with the goal of ensuring a balanced landscape: whether you're a solo staker or part of a substantial staking pool, there would be no inherent advantage in the validation process for any participant. Prior to the PoS transition, a few mining pools dominated the hash rate. This allowed for a trusted relationship between these pools and the Flashbots Relay. Any dishonest actions, such as a mining pool stealing MEV from a searcher, could jeopardize this relationship. Say a miner received a bundle with a sandwich attack from a searcher. If the miner further sandwiched the searcher with their own transactions, it would bring short term gain, but it would sever ties with Flashbots, costing them future MEV earnings because they would lose access to the Flashbots Relay.</p><h3 style="text-align: start"><strong><em>Introducing MEV Boost</em></strong></h3><p style="text-align: start">Solo stakers, unlike large mining pools, might not have long term motivations to maintain trust. In certain scenarios, they could find it more profitable to exploit the MEV from a builder and subsequently disappear from the network. This action would result in them being fully slashed, losing all 32 ETH, but in some cases, the potential profit from stealing the MEV can outweigh this loss. This indeed occurred in April, when a rogue validator swiped $20M from a sandwich bot before shutting down their validator. <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://eigenphi.substack.com/p/how-did-a-malicious-validator-steal"><u>Further reading on this incident</u></a>.</p><p style="text-align: start">In response to this new attack vector, Flashbots rolled out MEV Boost, a system designed for an environment with solo stakers.</p><p style="text-align: start">The Mechanics of MEV Boost:</p><ol><li><p><strong>Relays:</strong> Unlike the previous system where only Flashbots acted as the relay, MEV Boost democratizes this. Now, anyone can serve as a relay, broadening participation and security. Flashbots has also open-sourced their relayer code.</p></li><li><p><strong>Builders:</strong> A new role emerges - the Builder. These entities collect transaction bundles from searchers and combine them into complete blocks.</p></li><li><p><strong>Auction System:</strong> Builders make bids to include their full block and submit them to the relays. The relays perform a crucial verification step to ensure block validity.</p></li><li><p><strong>Validator Interaction:</strong> The relays forward the highest bid, along with the respective block header, they receive from the competing builders to the validator who’s turn it is to propose a block to the Ethereum network.</p></li><li><p><strong>Block Commitment:</strong> The designated validator signs the block header, which is a commitment. Once signed, they are bound to that block. If they attempt to sign a another block that would be seen as a malicious act and they would be slashed.</p></li><li><p><strong>Final Proposal:</strong> With a commitment in place, the relay sends the full block details to the validator, and it’s formally proposal to the network.</p></li></ol><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/74b5b886b3c4b354d124067ef83b7138.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class="">The MEV Boost process</figcaption></figure><p style="text-align: start">This setup introduces trust issues:</p><ul><li><p><strong>Builder-Relay Trust:</strong> Builders need to trust that relays won't steal their MEV. Consider a scenario where a relay, after receiving a block from a builder, swaps out the builder's address in a sandwich transaction for its own. Then they pass manipulated header on to the proposer.</p></li><li><p><strong>Proposer-Relay Trust:</strong> Proposers, on the other hand, must trust that the block headers they sign are valid. Proposing an invalid block would result in the forfeiting the block rewards since the network would reject such a block.</p></li></ul><p style="text-align: start">PBS designs see a recurring challenge: while interactions between the proposer and transaction ordering actors are a given, there's a clear need for a mechanism where:</p><ol><li><p>Proposers can commit to a builder's block without knowing its contents but remain assured of the block's validity.</p></li><li><p>Builders can safely send their block to the proposer, confident that their MEV won’t be stolen.</p></li></ol><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/c438e2422558750cd1e72218c8cd715c.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class="">MEV Boost trust assumptions</figcaption></figure><p style="text-align: start">Before diving deeper into MEV Boost, it's essential to understand the default way Ethereum creates blocks without the use of MEV Boost. This setup hinges on the collaboration between a validators Execution Client and Consensus Client. When a transaction is received by the Execution Client, it checks the format, adds it to its mempool, but doesn't process it. Simultaneously, the Consensus Client handles the PoS consensus, picking a validator to create the next block. The selected validator's Execution Client then arranges transactions by gas price into a new block, which is then forwarded to the Consensus Client and put forth to the network. Other validators attest to the block's accuracy, and once verified, it becomes the chain's newest link.</p><p style="text-align: start">This process changes if the validator opts to use MEV Boost. Validators integrating MEV Boost do so with their consensus client. When they're up to propose a block, they don't rely on their Execution Client anymore and instead connect to a network of relays. Validators can choose which relays to connect to.</p><p style="text-align: start">MEV Boost is optional, but 95% of validators are utilizing it. Essentially almost every validator, except those run by Vitalik, are delegating block building to a third party. This delegation indicates that a core function of the Ethereum protocol, block building, is now primarily conducted outside of the Ethereum system itself. One key player in this setup is the relay and their role somewhat contrasts with Ethereum's foundational principles. Presently, there are around 9 active relays, but only 6 of them have &gt;9% share of blocks relayed.</p><img src="https://storage.googleapis.com/papyrus_images/c8daab04b6915e1ab377dbe9ed0111a9.png" alt="Breakdown of Top Relays and Builders by Market Share in the past 7d. Source: https://www.relayscan.io/" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAMCAIAAACMdijuAAAACXBIWXMAAAsTAAALEwEAmpwYAAAC/UlEQVR4nFVSQYscRRitkwQi4j8IuQh6EREkgi7xrjkJgoiIBiH/xySKh6A7eFB0dzMhspHs5rAgYqYzzjbd2w5dKWsrleoUVVPdU9Npq/ZLyXRpsz6+Q1NdX733vfchdPEKeuVD9PxF9EJfZzbWdXYDPfc2On8JvfU5OvceOvcuevUj9OZl23bOebRxBb3+CXrtY/TGp+jlD9Y3z/YtZzbQi++sD89fQi+9v/514TP0051fr23uXB3dvD4aXx3dGt97cPvgcGc/2d5Lbh8cbm7vff39z1t3f78+Go/3JwDwLIStX377cjT+6rtbX3yzdeOH3Z39ZKjxvemNH3e/3d7bvnv/2ubN3YMpWjZ1rWW7rFf1otZP2mX9d9eG/7BsTG10AKgX6mm7CiEAQLtaLZRUUqxs/QxOwv9hFrppjHdOSQHgEKXHkySZzQ4nk+TBdHpUFI8475zvnHf+5C96XBR/rtqneX5UVU/iE8fs0f1kkiRTjB86511/eWjB+OExY0u7+mM2WxiDjDFCCMYYpVQI0XVdlAkAIQStNaXUe88Ya5rmX43rlseMsaqqmqaJl0+3aK299xjjtm2RECLLsnkPAPDeO+d8DwCoqooQ4pzDGGutI0FVVVmWlWWZ53lRFLPZjHMOAM65EALv4b0vS9w0DeKcZ1l2lOdpmmZZluc55zyE4JwDAKUUIaTrurIslVKRQAgxmUzSNNVaR00RkYD28N4XRbEmiCYwxgghuAch5HEvIYRgrRVCAIAQwhgTCZRSw/eAwSKllJQSADjna4s452maEkKaptFaqx7R2SGD0OuSUsa3OOfz+VxKGd0oMaaUxokjAWMMACil6wmklGVZcs6NMTHhQdHpCSilg2ohRFEUhJD5fE4IEUJUVRUziytQVVUIgTFmrUVKqbIscYmLopBSDvFGdF0XD4UQ1tpIbIzBvWqMcYz3tEXW2piNEGJtUVyJokfcCmvt6eg45845SukQctyLNE3zPM+yjFIKcDIoixM457IsM8b8AzG918LnlHmeAAAAAElFTkSuQmCC" nextheight="450" nextwidth="1177" class="image-node embed"><p>Breakdown of Top Relays and Builders by Market Share in the past 7d. Source: <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://www.relayscan.io/">https://www.relayscan.io/</a></p><p style="text-align: start">Trust becomes an issue since the relationship between the relays and the builder and the relay and the validator isn't trustless. There's also a concern about censorship resistance. Relays, during their auctions, have the discretion to determine the validity of blocks. This discretion allows them to exclude blocks with transactions linked to sanctioned addresses. A case in point is when the OFAC Tornado Cash sanctions happened some relays exercised this power. Recent data shows that 38% of blocks in the past week adhered to OFAC guidelines due to such relay imposed censorship.</p><img src="https://storage.googleapis.com/papyrus_images/c3669287102e821b04c32a2a07464516.png" alt="" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAJCAIAAADcu7ldAAAACXBIWXMAAAsTAAALEwEAmpwYAAAClUlEQVR4nHXTTU8TQRjA8Wlp2e7O7Lx2d2ZZSqHb3RZKkUh5Kxja8iqIlFIaiREMiUQP6k2FQOLFMwfjRzFqgn4DDyZ68VN48eRhTaughvjPL0+e08xlBsBelSgMGPk+07FMhHAnhJAlRI9Stm07jiOEsGw71Z+WUiqlhBCqk9NJSskYw/8JEEooo22EUIwpxowQqOt+Pr++uTlfrdY3NrZ3btVmr91utirztdriwsrq6p293fmlperiQqO51Wg2M55nIEgYxZTg9kGEdmpfEEcIXGaao5RWhW1ls2rAG2I98cqItjzmY9tPOjnp+sJpVJfLg1c8JovuQB/iGEQI6CKgi4EuHUQBANFo1EQIzDH+SKgDYd/nf9wT9glXz4XzOOns5335rJE+3et/eVcdNtTxtjpuqaNm+vSB+2JXHW46Jy11tCWf3Pzt6Y3+h82Dvf3tVosxBl5xNywGYd4PB7P/yPs/ctmwkPo6O1kP39XDt/XwTWe58Loz39fDs878cO5sLfwYfvv+6ctnW0oQUDpL2RTj04z9rczFNGfTJqsEnK1NoLUyXpsyVyfp+oy5OomvT9H1GX15Ij43fK4QrxTbS2VYzYxMjU+USiXOOdAQiugoqqMoRBGEIhACCEEiAWKxLgSBZhZLsVLQN9TrF9PZQiozERRyTrqYzo75g750CYhfMAEwQZSBmBGJRUAk0a0xygAhBEuLKAsnuZJScO4olckF07U5y7ZsziixIDIZZ5qh64bendB0w9AMXUskdGhgQtoogRDy8SERZKAUWCaxTJrKwoQATIkR9OpBCqecgXS/ZVme5+Wvjq7sbDluj1LKdXuktLOexxgjl/r12AkhUEu4K2WnXOzO9aKMAz23/bc4+wkXypRk3wUteQAAAABJRU5ErkJggg==" nextheight="274" nextwidth="943" class="image-node embed"><h2 style="text-align: start"><strong>Part Three: Looking Ahead</strong></h2><p style="text-align: start">Ethereum is devising a strategy to reincorporate the processes currently operating outside its core protocol. The goal is to mandate that proposers obtain blocks from builders, essentially letting the protocol handle the relay's current duties. The relay system as it stands has its vulnerabilities. For instance, a relay might not properly validate a block, misverify the builder's bid in relation to the payment intended for the proposer, or even delay or fail in block delivery. On top of this, running a relay doesn't come cheap. As of now, there's a lack of a sustainable funding model for them. The Ultrasound Relay, the most utilized relay, says its operating costs are estimated to be between 70k-80k euros annually, and that's excluding other expenses like software maintenance. Relays currently operate as public utilities.</p><p style="text-align: start">It's also worth noting that since MEV Boost is external software developed by a company (Flashbots) it isn't as rigorously tested as software within the protocol. This was evident with the Prism client post the Shapella upgrade: an integration bug with MEV Boost caused issues with the proposer's signature, leading to missed slots and slashing. The goal of integrating this process into the Ethereum protocol is to address these challenges, ensuring that even if an agreement between the proposer and builder falls apart, the proposer remains reimbursed. So, if a builder provides a faulty block, the proposer still gets the full bid, leaving the builder to bear the consequences. While the specifics of this integration, referred to as ePBS (enshrined proposer-builder separation), are still being researched, and possibly a couple of years from realization, there are already many different ideas of how it could possibly look.</p><h3 style="text-align: start"><strong><em>How to Enshrine Proposer-Builder Separation</em></strong></h3><p style="text-align: start">To understand potential ePBS implementations, it's essential to first understand some basic components of Ethereum’s PoS algorithm. In Ethereum time is segmented into 12 second intervals called slots. 32 of these slots come together to form an epoch. In each slot, a validator is randomly selected to propose a block. Simultaneously, a committee is designated to attest to the validity of the block they deem compliant with Ethereum's PoS fork choice rules, ideally attesting to the most recently proposed block as the blockchain's head. If a block isn't proposed in the given slot, then 4 seconds in, the attesting validators attest to the previous block.</p><p style="text-align: start">Now, onto ePBS designs. The most favored model spans two slots. First there’s a bidding phase, where builders send their bids to the validators. Then Slot 1 begins with the proposer picking a bid and committing to it by publishing a block that commits to that builder’s bid. A group of attestors then cast their vote in favor of this block, ensuring its place in the chain. In Slot 2, the builders see the bid that was committed in the proposer's committed block and the attestations on it. Recognizing the proposer's irreversible commitment, the builder whose bid was selected releases their block and is assured that their MEV can’t be stolen. Finally, attestors validate this new block.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/b91795bd2eea90313fff7446b3bd00ec.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class="">"Two-slot" ePBS design</figcaption></figure><p style="text-align: start">A newly released model is similar to the two slot approach but introduces a payload-timeliness committee. First, a builder's bid is selected and committed to by the proposer, and then the committee of validators gives its attestation. Subsequently, the builder reveals the block's payload (its transactions), and the payload-timeliness committee confirms that the payload was provided on time and its validity. The other differences between these two methods lie in the specifics of Ethereum's Proof of Stake operations, but that's beyond the scope of this post.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/eb1f96f742f54c2116b71fc6dee965f7.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class="">ePBS design with a Payload-Timeliness Committee</figcaption></figure><p style="text-align: start">Another design revolves around the concept of a slot auction. Here builders, during their bid, commit to a slot in the epoch without specifying the block. They essentially pledge to create a block during their allocated slot, offering a certain price to do so. This offers adaptability, especially for cross domain MEV which requires real time action.</p><p style="text-align: start">So far all the ePBS designs grant the builder full control over the block's transactions. A potential workaround is the use of an inclusion list. This list, sent by the proposer to the builder, ideally all the transactions currently in the mempool or doesn’t have to be, contains transactions that must be part of the builders block if there’s space. If the builder's block is full, they must indicate so, affirming they acknowledged the list. Such a method strengthens the network censorship resistance. If a builder wants to censor a transaction it will become difficult and costly to do so over time. Due to EIP 1559, consecutively filled blocks will cause the base fee to exponentially rise. Therefore if a builder continually censors a transaction by filling up a block with dummy transactions, the escalating costs make this infeasible overtime.</p><p style="text-align: start">There might be instances where the proposer wants to have some influence on block creation. Another ePBS feature might involve the proposer making a section of the block (either the start or end) and delegating the remainder to a builder. All of these designs and features aren't mutually exclusive, it's more about balancing their benefits and drawbacks.</p><h3 style="text-align: start"><strong><em>The Optimistic Relaying Approach</em></strong></h3><p style="text-align: start">Another take on ePBS leverages our existing trusted relays. The idea is to incrementally reduce the responsibilities of the relay until it primarily serves as an optimizer, rather than a crucial component. In its first phase, we shed the relay's duty of verifying block validity. This greatly reduces the cost of running a relay as there’s no longer a need for block simulation to ensure its validity. Plus, it streamlines the relay’s role, shaving off about 100 to 200 milliseconds of latency in their communications with the proposers and builders. So, how do we ensure the proposer gets their payment if a block turns out to be invalid? The builders would be mandated to post collateral, equal to their bid, when they bid. If the block is invalid, the collateral covers the payment the proposer would've received. This concept is termed Optimistic Relaying V1.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/a84cd8e6ae2cf7f8eea3660be279958d.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class="">Optimistic Relaying V1</figcaption></figure><p style="text-align: start">Pushing optimistic relaying a step further to V2, we can eliminate the relay’s need to download the block, reducing another 50 to 100 milliseconds of latency. The same assurances apply: if a block never downloads, the builder's collateral pays up.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/d9ab00502f7b9e97f2b949c59f5657cc.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class="">Optimistic Relaying V2</figcaption></figure><p style="text-align: start">Ultimately, the end game for Optimistic Relaying starts looking a lot like the payload-timeliness committee model I touched on earlier. Here’s the sequence: Builders submit their bids on a peer to peer layer. The proposer accepts a bid and follows up with a signed header. Then, the builder rolls out the block. At this stage, the relay's sole job is overseeing the peer to peer layer mempool, basically clocking when different activities occur. The relay's role becomes super lightweight, it just needs to keep tabs on the mempool. It makes the relay operate a lot like the payload-timeliness committee. All these steps build towards a future where the relay is replaced by the payload-timeliness committee, streamlining the entire protocol.</p><img src="https://storage.googleapis.com/papyrus_images/6a519b2c15528017bb9954d7de47df3d.png" alt="" blurdataurl="data:image/png;base64,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" nextheight="818" nextwidth="1076" class="image-node embed"><h3 style="text-align: start"><strong><em>Leveraging Builders for Additional Protocol Enhancements</em></strong></h3><p style="text-align: start">PBS emerged as a response by Flashbots to the centralizing effects of MEV, aiming to attempt to harness MEV for positive outcomes. Given the new role in Ethereum specializing in block building, there's an opportunity for these entities to act like supercomputers, contrasting the lightweight validators. Protocol designs are surfacing that capitalize on these powerful builders. The idea is to keep validators uncomplicated and straightforward (some might even say <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://www.youtube.com/watch?v=ymVd2Ch7wBc&amp;t=22820s"><u>cucks</u></a>), while builders, having no such restrictions, can function at a much higher computational level. A primary application for these enhanced builders is for scaling.</p><p style="text-align: start">Ethereum Researcher Dankrad Feist’s Danksharding design suggests that these high resource intensive builders can construct one big block that contains all the data. That data is then segmented and committed to by multiple KZG commitments. Constructing this block requires considerable resources, but validating them is relatively inexpensive. Lightweight validators can then apply Data Availability Sampling to inspect a small section of the block and be nearly certain of the entire dataset's accessibility, yielding an added ~16x boost in data throughput from Proto-Danksharding. The intricacies of Danksharding are complicated and not covered here, but the key point is that these advanced builders can be delegated additional roles to further enhance the network.</p><p style="text-align: start">Another idea to take advantage of the builders is the potential realization of based rollups. A few years back, Vitalik discussed rollup sequencing models, coining the term for one of them <em>Total Anarchy</em>, in which anyone can publish a rollup block and the first sequence that hits the chain is the official block. This approach had many drawbacks, like onchain spam and ambiguity over the winning sequence. However, Justin Drake's recent article on <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://ethresear.ch/t/based-rollups-superpowers-from-l1-sequencing/15016"><u>based rollups</u></a> highlighted a more efficient strategy taking advantage of the builders. In this model, the builder on layer one functions as the rollup sequencer, cherry picking the optimal sequence to include onchain. This ensures only the optimal sequences are incorporated.</p><p style="text-align: start">Beyond rollups, the introduction of powerful builders can spur other innovative structures, like stateless clients. They empower nodes to operate as usual but without the baggage of preserving outdated states. These allow the nodes to be more lightweight and hinge on the builder's ability to generate specific cryptographic proofs.</p><h3 style="text-align: start"><strong><em>PEPC: Protocol-Enforced Proposer Commitments</em></strong></h3><p style="text-align: start">Protocol-enforced proposer commitments (PEPC, pronounced pepsi) is a concept introduced by Ethereum Foundation researcher Barnabé Monnot in October 2022. You can delve deeper into Barnabé's original post <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://ethresear.ch/t/unbundling-pbs-towards-protocol-enforced-proposer-commitments-pepc/13879?u=barnabe"><u>here</u></a>. At its core, PEPC aims to grant proposers a greater say in block building, that they’ve lost by selling the entire task to specialized builders. In PEPC, proposers can add extra conditions for a block to be deemed valid, apart from the usual Ethereum requirements. If a block fails to meet any of these extra conditions, it's considered invalid, and attestors should reject it. This is different from EigenLayer commitments where validators with extra commitments either lose some staked ETH for noncompliance or get rewarded for fulfilling them. However, the block remains valid regardless of these commitments.</p><p style="text-align: start">Imagine Alice is a proposer in the Ethereum network. With PEPC, Alice has the flexibility to make a specific commitment for the upcoming block. She could commit that her block will contain at least three transactions pertaining to a particular smart contract, and she's willing to allocate 70% of the block's gas for these. She communicates this commitment, and it becomes part of her block's validity conditions. Now, Bob, a Builder, sees Alice's commitment. He packages together a bundle of transactions fitting Alice's criteria and sends it her way. If Alice's block, after being constructed, aligns with her commitment (i.e., contains the specified transactions consuming the designated gas), then the block is deemed valid and can be added to the blockchain. If not, Alice's block won't be accepted, ensuring that she adheres to her declared commitments.</p><p style="text-align: start">One key difference between ePBS and PEPC lies in the commitments nature. In ePBS, proposers and Builders follow a fixed, uniform procedure. It's a kind of one size fits all approach. A proposer commits to a specific block hash, and the builder then produces a matching payload. However, PEPC introduces variety. Each proposer can set unique conditions, offering a lot more flexibility. It's crucial to note that PEPC's existence depends on ePBS, they complement each other. The exact workings of PEPC are still under discussion and research.</p><h3 style="text-align: start"><strong><em>Conclusion</em></strong></h3><p style="text-align: start">PBS isn't a specific implementation, it's a design philosophy. It says that there are incentives for the division of labor and that protocol actors will delegate some responsibilities to more specialized external entities. The protocol's aim is to offer a reliable, as trustless as possible interface to ensure this delegation is smooth, fair, and inclusive. Without this, some actors might have an edge, leading to the centralization issues first observed with MEV before the PBS era. At its core, PBS emphasizes fairness and decentralization. While the exact elements to be integrated into the protocol will be seen in future Ethereum updates, Ethereum’s overarching goal remains clear: accessible, open, trustworthy stateful computing, overseen by a decentralized group of lightweight validators.</p><h2 style="text-align: start"><strong>Resources for Deeper Understanding</strong></h2><div data-type="youtube" videoid="WnYroGZc47c">
      <div class="youtube-player" data-id="WnYroGZc47c" style="background-image: url('https://i.ytimg.com/vi/WnYroGZc47c/hqdefault.jpg'); background-size: cover; background-position: center">
        <a href="https://www.youtube.com/watch?v=WnYroGZc47c">
          <img src="https://paragraph.xyz/editor/youtube/play.png" class="play">
        </a>
      </div></div><div data-type="youtube" videoid="Ub8V7lILb_Q">
      <div class="youtube-player" data-id="Ub8V7lILb_Q" style="background-image: url('https://i.ytimg.com/vi/Ub8V7lILb_Q/hqdefault.jpg'); background-size: cover; background-position: center">
        <a href="https://www.youtube.com/watch?v=Ub8V7lILb_Q">
          <img src="https://paragraph.xyz/editor/youtube/play.png" class="play">
        </a>
      </div></div><div data-type="youtube" videoid="_8DkRO60fvw">
      <div class="youtube-player" data-id="_8DkRO60fvw" style="background-image: url('https://i.ytimg.com/vi/_8DkRO60fvw/hqdefault.jpg'); background-size: cover; background-position: center">
        <a href="https://www.youtube.com/watch?v=_8DkRO60fvw">
          <img src="https://paragraph.xyz/editor/youtube/play.png" class="play">
        </a>
      </div></div><div data-type="embedly" src="https://notes.ethereum.org/@vbuterin/pbs_censorship_resistance" data="{&quot;provider_url&quot;:&quot;https://notes.ethereum.org&quot;,&quot;description&quot;:&quot;State of research: increasing censorship resistance of transactions under proposer/builder separat&quot;,&quot;title&quot;:&quot;State of research: increasing censorship resistance of transactions under proposer/builder separation (PBS) - HackMD&quot;,&quot;thumbnail_width&quot;:420,&quot;url&quot;:&quot;https://notes.ethereum.org/@vbuterin/pbs_censorship_resistance&quot;,&quot;thumbnail_url&quot;:&quot;https://avatars.githubusercontent.com/u/2230894?s=400&quot;,&quot;version&quot;:&quot;1.0&quot;,&quot;provider_name&quot;:&quot;HackMD&quot;,&quot;type&quot;:&quot;link&quot;,&quot;thumbnail_height&quot;:420}" format="small"><div class="react-component embed my-5" data-drag-handle="true" data-node-view-wrapper="" style="white-space:normal"><a class="twitter-card-link" href="https://notes.ethereum.org/@vbuterin/pbs_censorship_resistance" target="_blank" rel="noreferrer"><div class="twitter-summary"><img src="https://avatars.githubusercontent.com/u/2230894?s=400" class="false"><div class="twitter-summary-card-text"><span>https://notes.ethereum.org</span><h2>State of research: increasing censorship resistance of transactions under proposer/builder separation (PBS) - HackMD</h2><p>State of research: increasing censorship resistance of transactions under proposer/builder separat</p></div></div></a></div></div><div data-type="embedly" src="https://ethresear.ch/t/proposer-block-builder-separation-friendly-fee-market-designs/9725" data="{&quot;provider_url&quot;:&quot;https://ethresear.ch&quot;,&quot;description&quot;:&quot;Special thanks to Justin Drake and the Flashbots team for feedback and discussion. A major risk threatening the ongoing decentralization of consensus networks is the economics around miner extractable value (MEV), sophisticated tricks to extract profit from the ability to choose the contents of the next block.&quot;,&quot;title&quot;:&quot;Proposer/block builder separation-friendly fee market designs&quot;,&quot;mean_alpha&quot;:190.085449219,&quot;author_name&quot;:&quot;vbuterin&quot;,&quot;thumbnail_width&quot;:512,&quot;url&quot;:&quot;https://ethresear.ch/t/proposer-block-builder-separation-friendly-fee-market-designs/9725&quot;,&quot;thumbnail_url&quot;:&quot;https://ethresear.ch/uploads/default/original/2X/6/6097a53a28665397488e4a3ae79aa3c6384d6cc3.png&quot;,&quot;author_url&quot;:&quot;https://ethresear.ch/u/vbuterin&quot;,&quot;version&quot;:&quot;1.0&quot;,&quot;provider_name&quot;:&quot;Ethereum Research&quot;,&quot;type&quot;:&quot;link&quot;,&quot;thumbnail_height&quot;:512}" format="small"><div class="react-component embed my-5" data-drag-handle="true" data-node-view-wrapper="" style="white-space:normal"><a class="twitter-card-link" href="https://ethresear.ch/t/proposer-block-builder-separation-friendly-fee-market-designs/9725" target="_blank" rel="noreferrer"><div class="twitter-summary"><img src="https://ethresear.ch/uploads/default/original/2X/6/6097a53a28665397488e4a3ae79aa3c6384d6cc3.png" class="false"><div class="twitter-summary-card-text"><span>https://ethresear.ch</span><h2>Proposer/block builder separation-friendly fee market designs</h2><p>Special thanks to Justin Drake and the Flashbots team for feedback and discussion. A major risk threatening the ongoing decentralization of consensus networks is the economics around miner extractable value (MEV), sophisticated tricks to extract profit from the ability to choose the contents of the next block.</p></div></div></a></div></div><div data-type="embedly" src="https://arxiv.org/abs/2305.19037" data="{&quot;provider_url&quot;:&quot;https://arxiv.org&quot;,&quot;description&quot;:&quot;With Ethereum's transition from Proof-of-Work to Proof-of-Stake in September 2022 came another paradigm shift, the Proposer-Builder Separation (PBS) scheme. PBS was introduced to decouple the roles of selecting and ordering transactions in a block (i.e., the builder), from those validating its contents and proposing the block to the network as the new head of the blockchain (i.e., the proposer).&quot;,&quot;title&quot;:&quot;Ethereum's Proposer-Builder Separation: Promises and Realities&quot;,&quot;thumbnail_width&quot;:1200,&quot;url&quot;:&quot;https://arxiv.org/abs/2305.19037&quot;,&quot;thumbnail_url&quot;:&quot;https://static.arxiv.org/static/browse/0.3.4/images/arxiv-logo-fb.png&quot;,&quot;version&quot;:&quot;1.0&quot;,&quot;provider_name&quot;:&quot;arXiv.org&quot;,&quot;type&quot;:&quot;link&quot;,&quot;thumbnail_height&quot;:700}" format="small"><div class="react-component embed my-5" data-drag-handle="true" data-node-view-wrapper="" style="white-space:normal"><a class="twitter-card-link" href="https://arxiv.org/abs/2305.19037" target="_blank" rel="noreferrer"><div class="twitter-summary"><img src="https://static.arxiv.org/static/browse/0.3.4/images/arxiv-logo-fb.png" class="false"><div class="twitter-summary-card-text"><span>https://arxiv.org</span><h2>Ethereum's Proposer-Builder Separation: Promises and Realities</h2><p>With Ethereum's transition from Proof-of-Work to Proof-of-Stake in September 2022 came another paradigm shift, the Proposer-Builder Separation (PBS) scheme. PBS was introduced to decouple the roles of selecting and ordering transactions in a block (i.e., the builder), from those validating its contents and proposing the block to the network as the new head of the blockchain (i.e., the proposer).</p></div></div></a></div></div><div data-type="embedly" src="https://arxiv.org/pdf/2305.19037.pdf" data="{&quot;provider_url&quot;:&quot;https://arxiv.org&quot;,&quot;version&quot;:&quot;1.0&quot;,&quot;height&quot;:780,&quot;width&quot;:600,&quot;html&quot;:&quot;<iframe loading=\&quot;lazy\&quot; src=\&quot;https://drive.google.com/viewerng/viewer?url=https%3A//arxiv.org/pdf/2305.19037.pdf&amp;embedded=true\&quot; width=\&quot;600\&quot; height=\&quot;780\&quot; style=\&quot;border: none;\&quot;></iframe>&quot;,&quot;provider_name&quot;:&quot;Arxiv&quot;,&quot;type&quot;:&quot;rich&quot;}" format="iframe"><div class="react-component embed my-5" data-drag-handle="true" data-node-view-wrapper="" style="white-space:normal"><a class="twitter-card-link" href="https://arxiv.org/pdf/2305.19037.pdf" target="_blank" rel="noreferrer"><div class="twitter-summary-large-image"><div class="twitter-summary-card-text"><span>https://arxiv.org</span><h2></h2><p></p></div></div></a></div></div><p></p>]]></content:encoded>
            <author>chaskin@newsletter.paragraph.com (Jason Chaskin)</author>
        </item>
        <item>
            <title><![CDATA[Could Proto-Danksharding Make Ethereum Transactions Free? What You Need to Know]]></title>
            <link>https://paragraph.com/@chaskin/could-proto-danksharding-make-ethereum-transactions-free-what-you-need-to-know</link>
            <guid>Phj9RK1HwkdcMOCXbvMd</guid>
            <pubDate>Thu, 07 Sep 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[Understanding Proto-Danksharding's Role in Expanding Network Throughput and Reshaping Application Possibilities, Redefining the Blockchain Trilemma Balance]]></description>
            <content:encoded><![CDATA[<p><em>Note: Originally published on September 7, 2023 on </em><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://mirror.xyz/0x218932707a30bE62Ef8559d32d954863933b412f/t_yyifH2RjGAW3IzbOsMJMHTZ8V9LxVYRizWLFEPNso"><em><u>Mirror</u></em></a><em>.</em></p><p>We are on the cusp of a revolutionary shift in the Ethereum landscape. Applications once considered unfeasible due to the network's limited throughput are about to become viable. The tradeoff between scalability, decentralization, and security, known as the blockchain trilemma, has long been a characteristic of blockchain networks. Ethereum chose to prioritize decentralization and security, amassing nearly 1 million validators and making a 51% attack prohibitively expensive (it would cost over $40 billion). However, this focus came at the cost of scalability. During peak usage, Ethereum transaction fees have soared to over $300. Even in the depths of a bear market, interacting with a smart contract could cost several dollars. Vitalik Buterin once famously stated that "the internet of money should not cost more than 5 cents per transaction." Fortunately, Ethereum has been striving for scalable solutions since its inception.</p><p style="text-align: start">The Ethereum Foundation has been contemplating various sharding designs since 2016, with the first phase of data sharding slated for implementation in the coming months. According to Justin Drake, a researcher at the Ethereum Foundation, Layer 2 rollups may soon be so inexpensive that companies operating their sequencers could absorb the costs, making transactions free for users.</p><blockquote><p><strong>Note</strong>: Assuming you're familiar with how rollups work, this article will dig into Proto-Danksharding (PDS), its role in scaling Ethereum, and why its implications are not yet fully understood. If you're not familiar with rollups, you may want to pause and read my earlier post on the topic <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://mirror.xyz/0x218932707a30bE62Ef8559d32d954863933b412f/Eh2pmfCMZKqsnJ3m6AOIRc4MGNhlXcSPkB4NbPjS6eM"><u>here</u></a>.</p></blockquote><p style="text-align: start">Ethereum's final form envisions a data layer where rollups can post temporary data, secure in the knowledge that a global network of nodes and cryptoeconomic security protecting it. The word temporary might have made you pause, but yes, the days of a freshly initiated Ethereum node having access to the complete transaction history are numbered. PDS introduces a new space for rollups to post data and the pruning historical data is crucial for achieving low cost rollup fees and is a feature of PDS. This data pruning occurs after approximately 18 days (4096 epochs), which is more than adequate for both major types of rollups to fully function. Specifically, optimistic rollups only require data to be available for one week to finalize the state, while zk-rollups allow for immediate fund withdrawals. This 18 day period ensures that anyone can download the data if they want to. Additionally, it's worth noting that preserving historical data operates on a 1-of-n assumption, meaning you only need one entity among all possible options, be it rollups or block explorers, to retain this data to make it accessible in the future.</p><p style="text-align: start">Currently rollups use calldata to post their data, and each Ethereum block contains about 10 KB used for calldata. In PDS, each message of data that a rollup wants to post is termed a blob. Each blob holds approximately 125 KB of data. With a targeted inclusion of 3 blobs per block and a maximum capacity of 6 blobs, this implies that on average, each block will contain about 375 KB of data. This is a substantial increase, a 37.5x jump, compared to the 10 KB used for calldata today and it's worth noting that not all of that calldata is utilized by rollups. The reason for this dramatic data increase, without significantly ramping up hardware requirements, lies in the transitory nature of data storage. Nodes will need slightly more storage to store these data blobs for the 18 days, but the storage doesn't perpetually expand with the progression of the chain due to the pruning mechanism.</p><h2 style="text-align: start"><strong>How PDS Works Technically</strong></h2><p style="text-align: start">In PDS, a new transaction type is introduced within the execution client (EVM), known as a blob-carry transaction. When rollups aim to post new data, they must perform two separate steps. First, they initiate a blob-carry transaction that includes the conventional transaction components like the sender, receiver, nonce, and gas bid along with two new fields specifically designed to facilitate data posting. The first of these new fields is max_fee_per_blob_gas, which is the bid that the sender is willing to pay to post their data blob. The second field, called blob_version_hashes, is essentially a list of hashes of the blobs to be posted. A single transaction can post multiple blobs.</p><p style="text-align: start">These data blobs are a new transaction type on the execution chain. However, they don't add extra tasks for the execution process. The EVM looks only at the commitment tied to these blobs. In PDS, consensus clients fully download these data blobs. Instead of being fully packed into the Beacon block body, the blobs are simply referenced there. Their contents are sent separately, like a “sidecar” accompanying the main data. Each block in PDS has one such blob sidecar that is downloaded in full.</p><p style="text-align: start">Instead of using a straightforward hashing approach to commit to the data, PDS employs a more intricate process. The data is first transformed into a polynomial, and then a Kate commitment (KZG) is generated for it. Finally, this commitment is hashed. While this procedure might sound complicated, it's not merely for robust cryptographic assurance. It's a necessary step for future upgrades aimed at facilitating Danksharding. The polynomial and KZG processes lay the groundwork for these upcoming features. If you're intrigued by the specifics of these cryptographic techniques, additional resources will be provided at the end of this article.</p><pre class="dont-break-out text-sm md:text-base"><code>Sample Blob-Carry Transaction

{ 
"transaction_type": "blob-carry",
"sender": "0xAbcd1234...",
"receiver": "0xDef5678...", 
"nonce": 42,
"gas_bid": 100000,
"max_fee_per_blob_gas": 2000,
"blob_version_hashes": [ "0x019f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a", "0x011679091c5a880faf6fb5e6087eb1b3c3a77f5a4d7f8f0a4d4a478e0484368f" 
], 
"signature": "0x1f67d0..." 
} </code></pre><h2 style="text-align: start"><strong>Blob Gas: A New Fee Market in Ethereum’s PDS</strong></h2><p style="text-align: start">PDS introduces a separate fee market exclusively for blobs, independent of the primary Ethereum fee market. This means that if the main Ethereum layer is congested, let's say due to a surge in transactions for the latest meme coin AnimeButtPirate69Inu, the blob fee market remains unaffected. Blob pricing follows a mechanism resembling EIP-1559, using a unit called blob gas. The cost of blob gas is dynamically calculated based on a running tally of excess blobs, those exceeding the target of 3 blobs per block. While each block aims to include 3 blobs, there's a hard limit of 6 blobs per block. A header field in each block keeps track of how many blobs have been included over or under the target. This tally then serves as an input to an exponential function that determines the price of blob gas for the subsequent block. In essence, the function is designed to make it increasingly costly to include additional blobs, helping to maintain an average close to the intended target of 3 blobs per block.</p><p style="text-align: start">Let's consider a simplified Ethereum universe where we have just 5 blocks to look at:</p><h3 style="text-align: start"><strong>Block 1:</strong></h3><ul><li><p><strong>3 blobs included</strong></p></li><li><p><strong>Running Tally of Excess Blobs:</strong> 0 (since it matches the target of 3)</p></li><li><p><strong>Blob Gas Price:</strong> Low (determined by a function of the tally, which is 0)</p></li></ul><h3 style="text-align: start"><strong>Block 2:</strong></h3><ul><li><p><strong>4 blobs included</strong></p></li><li><p><strong>Running Tally of Excess Blobs:</strong> 1 (1 more than the target)</p></li><li><p><strong>Blob Gas Price:</strong> Slightly Higher (the tally is now 1, so the function increases the price a bit)</p></li></ul><h3 style="text-align: start"><strong>Block 3:</strong></h3><ul><li><p><strong>6 blobs included (the maximum burst limit)</strong></p></li><li><p><strong>Running Tally of Excess Blobs:</strong> 4 (3 more than the target, adding to the existing 1)</p></li><li><p><strong>Blob Gas Price:</strong> Higher (now the tally is 4, and the function makes it much more expensive)</p></li></ul><h3 style="text-align: start"><strong>Block 4:</strong></h3><ul><li><p><strong>2 blobs included</strong></p></li><li><p><strong>Running Tally of Excess Blobs:</strong> 3 (1 less than the target, reducing the existing 4)</p></li><li><p><strong>Blob Gas Price:</strong> Moderately High (the tally is reduced to 3, so the function adjusts the price downward but it's still high)</p></li></ul><h3 style="text-align: start"><strong>Block 5:</strong></h3><ul><li><p><strong>1 blob included</strong></p></li><li><p><strong>Running Tally of Excess Blobs:</strong> 1 (2 less than the target, reducing the existing 3)</p></li><li><p><strong>Blob Gas Price:</strong> Lower (the tally is now 1, so the function makes it cheaper)</p></li></ul><p style="text-align: start">PDS introduces an entirely new resource, complete with its own separate fee market. Initially, this resource is unlikely to be fully consumed, leading to exceptionally low fees required for rollups to access it. As a result, transactions could potentially be free for the first 6 to 12 months following its introduction. This is because posting a blob may be so inexpensive that rollups can afford to subsidize the fees for their users.</p><h2 style="text-align: start"><strong>The Impact</strong></h2><p style="text-align: start">The impact of PDS goes far beyond just making transactions cheaper. This isn't some minor adjustment, it’s unlocking a whole new level of possibilities on the blockchain. Think about it: tipping someone a few cents for a helpful online comment or leaving a review (attestation) could become as easy as clicking a button. Artists won't have to worry about high fees when they create new NFTs. But that's just scratching the surface. PDS makes it possible for completely new types of apps to exist. Decentralized social media platforms could become far more user friendly, removing the financial barriers that kept people away. Real time voting systems on the blockchain could turn into a reality, making decentralized governance more feasible than ever. Even in the world of finance, we could see the rise of platforms for high frequency trading that are fully decentralized. Remarkably, all of this can be achieved on a highly decentralized network, safeguarded by millions globally including solo stakers and full nodes operating on devices as simple as Raspberry Pis. Just a short while ago, such a vision was deemed unattainable.</p><p style="text-align: start">I often reflect on a talk by Vitalik where he emphasizes the same point I'm highlighting. We should begin conceptualizing and creating apps today that might seem impractical now, but will become viable in a few months when transactions become 100x (or more or free) affordable.</p><div data-type="youtube" videoid="rp3cDq2LiBM">
      <div class="youtube-player" data-id="rp3cDq2LiBM" style="background-image: url('https://i.ytimg.com/vi/rp3cDq2LiBM/hqdefault.jpg'); background-size: cover; background-position: center">
        <a href="https://www.youtube.com/watch?v=rp3cDq2LiBM">
          <img src="https://paragraph.xyz/editor/youtube/play.png" class="play">
        </a>
      </div></div><h2 style="text-align: start"><strong>Conclusion</strong></h2><p style="text-align: start">But let's not forget, this is just the beginning. PDS is a stepping stone towards the ambitious goal of full danksharding, which aims to further increase the amount of data that can be posted. In essence, some of the promises of blockchain technology that seemed too ambitious in 2017 and 2018 may have simply been ahead of their time.</p><h2><strong>Additional Resources</strong></h2><div data-type="embedly" src="https://domothy.com/blobspace/" data="{&quot;provider_url&quot;:&quot;https://domothy.com&quot;,&quot;description&quot;:&quot;Introduction&quot;,&quot;title&quot;:&quot;Blobspace 101&quot;,&quot;url&quot;:&quot;https://domothy.com/blobspace/&quot;,&quot;author_name&quot;:&quot;domothy&quot;,&quot;thumbnail_url&quot;:&quot;https://domothy.com/images/blob/encoded.png&quot;,&quot;thumbnail_width&quot;:448,&quot;version&quot;:&quot;1.0&quot;,&quot;provider_name&quot;:&quot;Domothy&quot;,&quot;type&quot;:&quot;link&quot;,&quot;thumbnail_height&quot;:344}" format="small"><div class="react-component embed my-5" data-drag-handle="true" data-node-view-wrapper="" style="white-space:normal"><a class="twitter-card-link" href="https://domothy.com/blobspace/" target="_blank" rel="noreferrer"><div class="twitter-summary"><img src="https://domothy.com/images/blob/encoded.png" class="false"><div class="twitter-summary-card-text"><span>https://domothy.com</span><h2>Blobspace 101</h2><p>Introduction</p></div></div></a></div></div><div data-type="embedly" src="https://members.delphidigital.io/reports/the-hitchhikers-guide-to-ethereum/#proto-danksharding-eip-4844" data="{&quot;provider_url&quot;:&quot;https://members.delphidigital.io&quot;,&quot;description&quot;:&quot;Ethereum's roadmap is a lot to keep track of. This is your technical crash-course on everything from danksharding to KZGs to statelessness and so much more.&quot;,&quot;title&quot;:&quot;The Hitchhiker's Guide to Ethereum - Delphi Digital&quot;,&quot;thumbnail_width&quot;:1024,&quot;url&quot;:&quot;https://members.delphidigital.io/reports/the-hitchhikers-guide-to-ethereum&quot;,&quot;thumbnail_url&quot;:&quot;https://storage.googleapis.com/members-portal-bucket/uploads/2022/05/Ethereum-Hitchhikers-1024x576.png&quot;,&quot;version&quot;:&quot;1.0&quot;,&quot;provider_name&quot;:&quot;Delphi Digital&quot;,&quot;type&quot;:&quot;link&quot;,&quot;thumbnail_height&quot;:576}" format="small"><div class="react-component embed my-5" data-drag-handle="true" data-node-view-wrapper="" style="white-space:normal"><a class="twitter-card-link" href="https://members.delphidigital.io/reports/the-hitchhikers-guide-to-ethereum/#proto-danksharding-eip-4844" target="_blank" rel="noreferrer"><div class="twitter-summary"><img src="https://storage.googleapis.com/members-portal-bucket/uploads/2022/05/Ethereum-Hitchhikers-1024x576.png" class="false"><div class="twitter-summary-card-text"><span>https://members.delphidigital.io</span><h2>The Hitchhiker's Guide to Ethereum - Delphi Digital</h2><p>Ethereum's roadmap is a lot to keep track of. This is your technical crash-course on everything from danksharding to KZGs to statelessness and so much more.</p></div></div></a></div></div><div data-type="embedly" src="https://notes.ethereum.org/@vbuterin/proto_danksharding_faq" data="{&quot;provider_url&quot;:&quot;https://notes.ethereum.org&quot;,&quot;description&quot;:&quot;Proto-Danksharding FAQ [TOC] ## What is Danksharding? Danksharding is the new sharding design p&quot;,&quot;title&quot;:&quot;Proto-Danksharding FAQ - HackMD&quot;,&quot;thumbnail_width&quot;:420,&quot;url&quot;:&quot;https://notes.ethereum.org/@vbuterin/proto_danksharding_faq&quot;,&quot;thumbnail_url&quot;:&quot;https://avatars.githubusercontent.com/u/2230894?s=400&quot;,&quot;version&quot;:&quot;1.0&quot;,&quot;provider_name&quot;:&quot;HackMD&quot;,&quot;type&quot;:&quot;link&quot;,&quot;thumbnail_height&quot;:420}" format="small"><div class="react-component embed my-5" data-drag-handle="true" data-node-view-wrapper="" style="white-space:normal"><a class="twitter-card-link" href="https://notes.ethereum.org/@vbuterin/proto_danksharding_faq" target="_blank" rel="noreferrer"><div class="twitter-summary"><img src="https://avatars.githubusercontent.com/u/2230894?s=400" class="false"><div class="twitter-summary-card-text"><span>https://notes.ethereum.org</span><h2>Proto-Danksharding FAQ - HackMD</h2><p>Proto-Danksharding FAQ [TOC] ## What is Danksharding? Danksharding is the new sharding design p</p></div></div></a></div></div><div data-type="youtube" videoid="8L2C6RDMV9Q">
      <div class="youtube-player" data-id="8L2C6RDMV9Q" style="background-image: url('https://i.ytimg.com/vi/8L2C6RDMV9Q/hqdefault.jpg'); background-size: cover; background-position: center">
        <a href="https://www.youtube.com/watch?v=8L2C6RDMV9Q">
          <img src="https://paragraph.xyz/editor/youtube/play.png" class="play">
        </a>
      </div></div><div data-type="youtube" videoid="6_NXxcGe7Ts">
      <div class="youtube-player" data-id="6_NXxcGe7Ts" style="background-image: url('https://i.ytimg.com/vi/6_NXxcGe7Ts/hqdefault.jpg'); background-size: cover; background-position: center">
        <a href="https://www.youtube.com/watch?v=6_NXxcGe7Ts">
          <img src="https://paragraph.xyz/editor/youtube/play.png" class="play">
        </a>
      </div></div><p style="text-align: start"></p><p></p>]]></content:encoded>
            <author>chaskin@newsletter.paragraph.com (Jason Chaskin)</author>
        </item>
        <item>
            <title><![CDATA[Rollups: A Guide You Can Actually Understand]]></title>
            <link>https://paragraph.com/@chaskin/rollups-a-guide-you-can-actually-understand</link>
            <guid>78aDCUtr32Etrp55EZGm</guid>
            <pubDate>Mon, 14 Aug 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[A Guide to Creating an 'Only Fans' Style Application. Learn how to use Sismo Connect Server Library to validate NFT ownership and offer user-specific discounts, while maintaining privacy with Zero-Knowledge Proofs]]></description>
            <content:encoded><![CDATA[<p><em>Note: Originally published on August 14, 2023 on </em><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out" href="https://mirror.xyz/0x218932707a30bE62Ef8559d32d954863933b412f/Eh2pmfCMZKqsnJ3m6AOIRc4MGNhlXcSPkB4NbPjS6eM"><em><u>Mirror</u></em></a><em>.</em></p><p>Rollups this, rollups that – you've probably know that they're a way to scale Ethereum, but what exactly is a rollup? How does it work in a technical sense that's still accessible to understand? That's what this post aims to explain.</p><h3 style="text-align: start"><strong>Overview of Rollups</strong></h3><p style="text-align: start">Ethereum currently allows a maximum of 30M gas per block, which comes out to around 25 transactions per second. In essence, rollups enable more transactions to fit into an Ethereum block without increasing the gas limit. They achieve this by allowing computation (actually executing the transaction, which is very gas expensive) to occur offchain.</p><p style="text-align: start">To understand how rollups work, imagine that there are two rollup transactions in a batch of 50 that get sent to a L1 smart contract. In the first transaction, address 0x123 calls a Uniswap contract with 10 ETH as the input. In the second transaction, address 0x456 calls an Aave smart contract with 100 DAI as the input. If these transactions were to occur directly on L1, the validators and full nodes on the network would need to run these transactions through the EVM (Ethereum Virtual Machine) to get the output. This process of running transactions through the EVM is highly resource intensive, and it's one of the reasons why Ethereum blocks can only contain a limited number of transactions.</p><p style="text-align: start">Rollups process these transactions through a virtual machine (not necessarily the EVM) off L1 and then summarize the results in a compact form. For example, they would post to their L1 smart contract something like: '0x123 calls a Uniswap contract with 10 ETH as the input and the output is 100 USDC to 0x123,’ and '0x456 calls an Aave smart contract with 100 DAI as the input and the output is 50 LINK to 0x456.’ These summaries are presented as blobs of data. In theory, if you are someone simply observing their smart contract and seeing this data blob come in, you wouldn't know whether that's the correct output. Rollups then use proofs, either zk or fraud, to ensure that the execution of the transactions was done correctly.</p><p style="text-align: start">In a rollup, several transactions are bundled and compressed into one single transaction on Ethereum Mainnet (for example, '0x789 calls a Compound contract with 20 ETH as the input and the output is 200 DAI to 0x789,' '0x321 calls a Sushiswap contract with 50 ETH as the input and the output is 500 LINK to 0x321,' '0x654 calls a MakerDAO contract with 30 DAI as the input and the output is 5 ETH to 0x654', …). This single L1 transaction contains all the necessary information about the multiple offchain transactions, including a summary of the current state of the rollup as a merkle root. A merkle root is a cryptographic way to keep track of the current state of something in a condensed form, encapsulating large amounts of data into a single hash. All rollups use one smart contract on Ethereum Mainnet to maintain the rollup state, hold the ETH sent to bridge to the rollup, and allow for an emergency escape from the smart contract, which I will explain later.</p><p style="text-align: start">The calldata of the smart contract is where they post the compressed transactions and state roots. In a normal smart contract, the calldata is a specific area used to indicate which function you want to call and with what arguments, essentially conveying the details of the interaction with the smart contract. However, rollups use the calldata in their Ethereum L1 smart contracts differently. They utilize it as a data blob to post their transactions and state roots, enabling a more compact and efficient representation of offchain activities.</p><p style="text-align: start">To interact with a rollup, a user sends a transaction to the rollup's sequencer node. The transaction is then placed in the sequencer's mempool, where it waits to be executed, ordered with other transactions, and summarized before being sent to L1. To update the rollup state as transactions are made, the sequencer sends details about all their transactions to their L1 smart contract. This includes transaction information you’d find on Etherscan, such as the sender, recipient, value, outcome, etc., along with an updated state root. Since all the transaction information needed to update the new state is posted to L1, in theory, anyone watching the smart contract could execute the transactions themselves and recompute the state. By performing much of the computation offchain and then posting the results to the Ethereum Mainnet, rollups greatly enhance scalability and efficiency, enabling more robust and responsive decentralized applications.</p><h3 style="text-align: start"><strong>Verifying Correctness: Proofs</strong></h3><p style="text-align: start">Since computation is done offchain by the rollup, verification of correctness becomes crucial. The system must ensure that the rollup nodes process transactions correctly and can't include fake ones. This is where proofs come into play.</p><p style="text-align: start"><strong>ZK Proofs:</strong> These are straightforward. When a ZK rollup sends a transaction to its L1 smart contract, it includes the compressed multiple transactions information, the new state root, and a zk-proof. The zk-proof verifies the handling of the transactions and confirms the updated state is valid.</p><p style="text-align: start"><strong>Fraud Proofs:</strong> This involves economic games. Optimistic rollup nodes need to stake some ETH, essentially saying, "If I'm lying and you prove it, you get my stake." It relies on people examining the L1 smart contract and recreating the state's transition. If fraud is found, they can initiate a fraud proof game by also staking some ETH. If the rollup is found to be lying, the accuser receives the rollups stake, and if wrong, they lose their posted stake. Optimistic rollups depend on at least one person checking the chain, and transactions are not considered final until a week has passed, allowing time for the fraud-checking game.</p><p style="text-align: start">You may have heard the term 'Data Availability' before. Essentially, this means that the complete transaction information and state roots need to be posted and visible for a sufficient amount of time, allowing people to recreate the state if necessary. This requirement is an essential aspect of both ZK rollups and optimistic rollups, ensuring that the information is accessible and transparent for validation purposes.</p><h3 style="text-align: start"><strong>What Happens When a Rollup Goes Offline?</strong></h3><p style="text-align: start">Rollups not only need to post data onchain to summarize transactions but also to ensure data availability in case the rollup's server goes offline. In such a situation, having the data onchain enables the generation of inclusion proofs, allowing users to safely withdraw their funds from the rollup back to L1. This data posting mechanism is critical for maintaining a secure and trusted environment, making it possible for users to interact with rollups without fear of losing access to their assets.</p><h3 style="text-align: start"><strong>Upgradable Multisig Contracts and Associated Risks</strong></h3><p style="text-align: start">For most rollups, the L1 smart contract is currently an upgradable multisig contract. This presents an obvious risk, as changes to the contract could potentially lead to unintended consequences or vulnerabilities within the rollup. Teams are actively working to mitigate this risk, with various strategies being employed to ensure that the contract remains secure and functions as intended. One of the most popular methods currently in use involves allowing token holders to vote on changes to the smart contract. By incorporating a governance mechanism where token holders have a say, it brings a degree of decentralization and community oversight to the process. Decisions are not made unilaterally but must pass through a democratic process, where token holders' voices are heard.</p><p style="text-align: start">Furthermore, to add an additional layer of safety, many projects implement a time delay on decisions. If a change to the smart contract is approved, it does not take effect immediately. This delay provides a window of opportunity for those who disagree with the decision to exit the system. If you are against a decision, you have the time to withdraw your funds and disengage from the rollup, reducing your exposure to any potential negative impact from the change. This approach to governance and the implementation of time delays are seen as robust safeguards, balancing the need for flexibility and upgradability in the smart contract with the necessity to protect users and maintain trust in the rollup system.</p><h3 style="text-align: start"><strong>Sequencer Decentralization</strong></h3><p style="text-align: start">The discussion around decentralizing the sequencer is gaining momentum. Sequencer decentralization is vital for censorship resistance. Currently, if a sole sequencer ignores your transaction, you can submit a request back to L1 using a merkle proof. What this entails is providing proof to the smart contract that you possess ETH within the rollup and that you want it sent back to your EOA (Ethereum Address) on L1. While this option is positive, the objective in decentralizing the sequencer is to minimize its power to censor transactions.</p><p style="text-align: start">Fraud proofs already ensure that there are no invalid state transitions, so rollups don't require thousands of nodes like Ethereum Mainnet does. The goal is to have the minimum amount of nodes (sequencers) necessary to prevent transaction censorship. By keeping this number low, the UX of the rollup can remain high, the whole purpose they exist in the first place. A small number of trusted, whitelisted sequencers, approved by token holders may be an acceptable compromise to keep costs low, given the security benefits from the L1. While anyone can be a validator on Ethereum Mainnet, rollups need not follow the same model. Some rollup teams might be awaiting EIP 4844, an improvement to Ethereum that is likely to be implemented later this year or early next. Which will allow for more space for rollups to post data, potentially increasing scalability by 10x and mitigating the effects of additional sequencers.</p><h3 style="text-align: start"><strong>Conclusion</strong></h3><p style="text-align: start">Rollups have emerged as an exciting and innovative solution to some of Ethereum's most pressing challenges. By enabling offchain computation, they significantly increase the network's efficiency and scalability, making decentralized applications more robust and responsive. The integration of mechanisms like fraud proofs, governance strategies, and sequencer decentralization ensures that the system maintains a high level of trust, transparency, and community oversight. As the technology continues to evolve, rollups may very well become a fundamental aspect of Ethereum's growth and success. By understanding the intricacies of how they function, we can better appreciate the remarkable strides being made in the world of decentralized finance and blockchain technology.</p><h3 style="text-align: start"><strong>Glossary</strong></h3><ul><li><p><strong>Rollup</strong>: A Layer 2 scaling solution that enables more transactions on Ethereum by performing computation offchain and then posting the results to the Ethereum Mainnet.</p></li><li><p><strong>Gas</strong>: A measure of computational work on Ethereum, required to process transactions.</p></li><li><p><strong>EVM</strong>: Short for Ethereum Virtual Machine, a decentralized computer that runs on the Ethereum network, executing smart contracts and processing transactions.</p></li><li><p><strong>Merkle Root</strong>: A hash that summarizes a large set of data, allowing for efficient and secure verification of contents within that data set.</p></li><li><p><strong>Calldata</strong>: A specific area in a smart contract that typically indicates the function being called and its arguments. In the context of rollups, this area is used to post transaction data, the state root, and, in the case of ZK rollups, the accompanying zk-proof.</p></li><li><p><strong>Sequencer</strong>: In the context of rollups, a node that orders and transactions and sends compressed details to the L1 smart contract.</p></li><li><p><strong>ZK Proofs</strong>: Short for Zero-Knowledge Proofs, a cryptographic method that verifies the validity of a transaction without revealing any information about the transaction itself. In the context of zk-rollups, ZK Proofs are used to post a concise proof that all the transactions and the new state transition are valid.</p></li><li><p><strong>Fraud Proofs</strong>: A system of checks and incentives to ensure that rollup nodes process transactions correctly and honestly.</p></li><li><p><strong>Data Availability</strong>: The requirement that complete transaction information and state roots are posted and visible for a sufficient amount of time for validation purposes.</p></li><li><p><strong>Multisig Contract</strong>: A smart contract that requires multiple signatories to approve changes or transactions.</p></li><li><p><strong>EOA</strong>: Externally Owned Account, an account controlled by a private key on Ethereum.</p></li><li><p><strong>EIP 4844</strong>: A proposed Ethereum Improvement Proposal that will have an impact on rollup scalability.</p></li></ul><p></p>]]></content:encoded>
            <author>chaskin@newsletter.paragraph.com (Jason Chaskin)</author>
        </item>
        <item>
            <title><![CDATA[Sismo Connect Offchain Tutorial - Code a Private Mini Only Fans Application]]></title>
            <link>https://paragraph.com/@chaskin/sismo-connect-offchain-tutorial-code-a-private-mini-only-fans-application</link>
            <guid>Wl90xXk4kCZlKP6mOvrf</guid>
            <pubDate>Thu, 03 Aug 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[Note: Originally published on August 3, 2023 on Mirror.1. OverviewThe aim of this tutorial is to demonstrate how to use the Sismo Connect Server Libr...]]></description>
            <content:encoded><![CDATA[<p><em>Note: Originally published on August 3, 2023 on </em><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out" href="https://mirror.xyz/0x218932707a30bE62Ef8559d32d954863933b412f/heGFJLFwC91RK4_ePicV_zaV8tn_eyBb7YK4JYfgrWY"><em><u>Mirror</u></em></a><em>.</em></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/b05c80b8722ef0ecdcac949f5d9380fb.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><h2 style="text-align: start"><strong>1. Overview</strong></h2><p style="text-align: start">The aim of this tutorial is to demonstrate how to use the Sismo Connect Server Library to create a mini private "Only Fans" application. The main feature you're aiming for is to validate if a user owns a certain NFT (Pudgy Penguins, in this case) and offer them a discount based on their holdings. This project preserves user privacy and security using Zero-Knowledge Proofs (ZK Proofs) and offchain verification.</p><p style="text-align: start">Note: For a comprehensive understanding, we recommend users watch the YouTube video linked in the tutorial. If you're seeking the full code, it's available on my GitHub repository.</p><div data-type="youtube" videoid="iWkzggY4BzE">
      <div class="youtube-player" data-id="iWkzggY4BzE" style="background-image: url('https://i.ytimg.com/vi/iWkzggY4BzE/hqdefault.jpg'); background-size: cover; background-position: center">
        <a href="https://www.youtube.com/watch?v=iWkzggY4BzE">
          <img src="https://paragraph.xyz/editor/youtube/play.png" class="play">
        </a>
      </div></div><div data-type="embedly" src="https://github.com/ChaskinOnChain/sismo_offchain_only_penguins" data="{&quot;provider_url&quot;:&quot;https://github.com&quot;,&quot;description&quot;:&quot;Contribute to ChaskinOnChain/sismo_offchain_only_penguins development by creating an account on GitHub.&quot;,&quot;title&quot;:&quot;GitHub - ChaskinOnChain/sismo_offchain_only_penguins&quot;,&quot;mean_alpha&quot;:251.02,&quot;author_name&quot;:&quot;ChaskinOnChain&quot;,&quot;thumbnail_width&quot;:1200,&quot;url&quot;:&quot;https://github.com/ChaskinOnChain/sismo_offchain_only_penguins&quot;,&quot;thumbnail_url&quot;:&quot;https://opengraph.githubassets.com/a85dbba1c7a1a5c88247582b80429a859aaa2b5dd4f04295f8bfc19292d600d2/ChaskinOnChain/sismo_offchain_only_penguins&quot;,&quot;author_url&quot;:&quot;https://github.com/ChaskinOnChain&quot;,&quot;version&quot;:&quot;1.0&quot;,&quot;provider_name&quot;:&quot;GitHub&quot;,&quot;type&quot;:&quot;link&quot;,&quot;thumbnail_height&quot;:600}" format="small"><div class="react-component embed my-5" data-drag-handle="true" data-node-view-wrapper="" style="white-space:normal"><a class="twitter-card-link" href="https://github.com/ChaskinOnChain/sismo_offchain_only_penguins" target="_blank" rel="noreferrer"><div class="twitter-summary"><img src="https://opengraph.githubassets.com/a85dbba1c7a1a5c88247582b80429a859aaa2b5dd4f04295f8bfc19292d600d2/ChaskinOnChain/sismo_offchain_only_penguins" class="false"><div class="twitter-summary-card-text"><span>https://github.com</span><h2>GitHub - ChaskinOnChain/sismo_offchain_only_penguins</h2><p>Contribute to ChaskinOnChain/sismo_offchain_only_penguins development by creating an account on GitHub.</p></div></div></a></div></div><h2 style="text-align: start"><strong>2. Prerequisites</strong></h2><ul><li><p>Node.js</p></li><li><p>Npm</p></li><li><p>MetaMask browser extension</p></li></ul><h2 style="text-align: start"><strong>3. Installation and Database Setup</strong></h2><h3 style="text-align: start"><strong>Clone the Tutorial Repository</strong></h3><p style="text-align: start">This step involves retrieving the application source code from GitHub:</p><p style="text-align: start"><strong>Clone the Repository:</strong> <code>git clone https://github.com/ChaskinOnChain/sismo_offchain_only_penguins.git</code></p><p style="text-align: start"><strong>Navigate into the Directory:</strong> <code>cd sismo_offchain_only_penguins</code></p><p style="text-align: start"><strong>Checkout the Specific Commit:</strong> <code>git checkout fee4c374be8839fe305a5a5b1c8d53d9c276d06a</code></p><p style="text-align: start">This ensures you're working on the same codebase version as described in the tutorial.</p><h3 style="text-align: start"><strong>Install Dependencies</strong></h3><p style="text-align: start">Your application relies on various libraries and packages, primarily from the Next.js framework:</p><p style="text-align: start">Install Next.js Dependencies: <code>npm i</code></p><p style="text-align: start">This command fetches and installs all necessary dependencies as mentioned in the package.json file of the cloned repository.</p><h3 style="text-align: start"><strong>Database Setup on PlanetScale</strong></h3><p style="text-align: start">The heart of most applications is the database. Here's how to set it up on PlanetScale:</p><ul><li><p><strong>Access the Platform:</strong></p><ul><li><p>Go to PlanetScale's website.</p></li></ul></li><li><p><strong>Account Setup:</strong></p><ul><li><p>If you're new to PlanetScale, sign up. Otherwise, log in.</p></li></ul></li><li><p><strong>Creating a Database:</strong></p><ul><li><p>Click on "See how PlanetScale works."</p></li><li><p>This tutorial essentially acts as a guide for beginners.</p></li><li><p>Keep progressing through the tutorial steps by pressing the presented buttons.</p></li><li><p>When prompted to create a database, name it appropriately (for example, onlypenguins).</p></li><li><p>Choose the 'Hobby' tier, which is free.</p></li></ul></li><li><p><strong>Database Connection Setup:</strong></p><ul><li><p>Once your database is ready, you'll see an option saying "Ready to connect to your database?".</p></li><li><p>Click on it and then click "create Password."</p></li><li><p>For the connection method, ensure "Connect with Prisma" is selected. Click on .env and subsequently click on the clipboard icon.</p></li><li><p>This action copies the connection string, which looks like DATABASE_URL=”mysql://…”.</p></li></ul></li><li><p><strong>Configure Connection in Your Local Environment:</strong> Switch back to your code editor. In the root directory of your cloned repository, create a .env file. Paste the copied DATABASE_URL connection string into this file.</p></li></ul><p style="text-align: start">This .env file stores sensitive environment variables, in this case, the connection string for your database.</p><h3 style="text-align: start"><strong>Update Database with Prisma:</strong></h3><ul><li><p>Next, you want your local setup to recognize and structure the database accordingly.</p></li><li><p>To produce the Prisma Client from your Prisma schema for type-safe database access: <code>npx prisma generate</code></p></li><li><p>To update the database schema to match your Prisma schema without using migrations: <code>npx prisma db push</code></p></li></ul><h2 style="text-align: start"><strong>4. Launching the Local Application</strong></h2><p style="text-align: start">After completing the installation and database setup, you are set to launch the application locally and interact with its integrated features.</p><ul><li><p><strong>Run the Application:</strong> <code>npm run dev</code></p><ul><li><p>This command initiates the Next.js application. The app has preset server routes located in app/api/verify/route.ts and app/api/paid/route.ts. Once the command is executed, the application should be accessible on your local machine.</p></li></ul></li><li><p><strong>Access the Application:</strong></p><ul><li><p>Using any web browser, visit <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="http://localhost:3000/"><u>http://localhost:3000</u></a>. Here, you'll experience the tutorial application in action, already integrated with Sismo Connect.</p></li></ul></li><li><p><strong>Experiment with the Local App:</strong></p><ul><li><p>The application comes with Sismo Connect integration. To personalize the experience:</p><ul><li><p>Navigate to the Sismo.tsx file located in app/components/.</p></li><li><p>In this file, find line 28, where you'll see an address parameter. Change this 'to' address to your own Ethereum address. This modification ensures that any transactions (payments) made within the app will be directed to your personal address.</p></li><li><p>Reminder: Always make sure you are on a testnet when experimenting with such changes. This way, you avoid unnecessary expenses of real Ether (ETH).</p></li></ul></li></ul></li><li><p><strong>Enjoy Your Subscription:</strong></p><ul><li><p>After making the necessary modifications and ensuring you're on a testnet, go ahead and try subscribing to "Only Penguins".</p></li></ul></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/b7c95a1377e9ee683fd4e6c8c002e334.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class="">By the end of this process, congratulations are in order – you've successfully subscribed to Only Penguins using the tutorial app!</figcaption></figure><ul><li><p><strong>Dive Deeper:</strong></p><ul><li><p>With the basic setup and operations out of the way, you can now delve deeper into how Sismo Connect is integrated within the application. The tutorial likely offers insights into the workings behind the scenes and ways to further refine and expand the integration.</p></li></ul></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/721071ccbec71342b51618b2962a199b.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><h2 style="text-align: start"><strong>5. Sismo Connect Configuration</strong></h2><h3 style="text-align: start"><strong>Configuring Sismo Connect in Your Application:</strong></h3><ul><li><p><strong>Access the Configuration File:</strong></p><ul><li><p>Navigate to <code>app/components/Sismo.tsx</code> in your application.</p></li></ul></li><li><p><strong>Setting Up Application in the Sismo Factory:</strong></p><ul><li><p>If you wish to use Sismo Connect in your application, it's essential to first set up an application within the Sismo Factory.</p></li><li><p>Obtain the unique <code>appId</code> for your application from the Sismo Factory.</p></li><li><p>For those unfamiliar with this process, there's a <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://docs.sismo.io/sismo-docs/build-with-sismo-connect/tutorials/create-a-sismo-connect-app"><u>tutorial available here</u></a>. However, for the sake of this tutorial, we're utilizing an already defined <code>appId</code> which is <code>0xbffb8652509c7e27e0b0485beade19c2</code>.</p></li></ul></li><li><p><strong>Integration using the Library:</strong></p><ul><li><p>The library, <code>@sismo-core/sismo-connect-react</code>, considerably simplifies the integration of Sismo Connect. It includes a convenient React button that facilitates the request for proofs of user data.</p></li><li><p>This button is designed to uphold user privacy, ensuring only necessary data is accessed without compromising sensitive information.</p></li></ul></li></ul><h2 style="text-align: start"><strong>6. Sismo Connect React Button Configuration</strong></h2><h3 style="text-align: start"><strong>Configuring the Button for User Data Proof Requests</strong></h3><p style="text-align: start">This button serves as an essential bridge allowing your application to interact with the Sismo Connect and request proofs.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/c91903bcd587a6cf77413b9744d63e2b.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class="">Sismo Connect React button</figcaption></figure><ul><li><p><strong>Button Configuration:</strong></p><ul><li><p>In your application, locate the Sismo Connect configuration that employs the <code>appId</code> obtained from the Sismo Factory. If you're unfamiliar with this configuration, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://docs.sismo.io/sismo-docs/build-with-sismo-connect/technical-documentation/sismo-connect-configuration"><u>refer to this configuration guide</u></a>.</p></li></ul></li><li><p><strong>Proof Request Mechanism:</strong></p><ul><li><p><strong>Auth Mechanism:</strong> The <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://docs.sismo.io/sismo-docs/build-with-sismo-connect/technical-documentation/auths"><u>auths</u></a> attribute facilitates the generation of proofs validating a user's specific vault id. <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://docs.sismo.io/sismo-docs/build-with-sismo-connect/technical-documentation/vault-and-proof-identifiers"><u>Delve deeper into the concept of vault ids here</u></a>.</p></li><li><p><strong>Handling Responses:</strong> The <code>onResponse</code> attribute outlines how the application should react upon acquiring the proof. For instance, in this tutorial, once a proof is received, the server situated at <code>/api/verify</code> is invoked with the proof being sent as the body. The server then ascertains the presence of the user's vault and acts accordingly: retrieving an existing user's vault id and payment status or creating a new user record.</p></li></ul></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/9180fcc8f284c7ea0f6b786031415a78.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p><strong>Optional Discounts Based on Pudgy Penguin Ownership:</strong></p><ul><li><p>The objective here is to present users with a discount depending on their Pudgy Penguins ownership. Specifically, a discount rate of 0.001ETH is applied for each Pudgy Penguin token they possess in the account with the most Pudgy Penguin tokens. This discount considers all accounts in the user's vault, not necessarily the one executing the payment.</p></li><li><p>To implement this, begin by sourcing a proof from the user's account possessing the highest number of Pudgy Penguin tokens. Acquire the proof by identifying the <code>groupId</code> of the "Pudgy Penguins Nft Holders" group on the Sismo Factory <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://factory.sismo.io/groups-explorer?search=pudgy+penguin"><u>here</u></a> and subsequently initiating a claim request. Within your application's <code>SismoConnectButton</code> component, introduce a new <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://docs.sismo.io/sismo-docs/build-with-sismo-connect/technical-documentation/claims"><u>claims</u></a> prop. This prop should encapsulate details of the Pudgy Penguin ownership claim: This prop should define the specifics of the Pudgy Penguin ownership claim. In the object for this prop, you'll be configuring several properties:</p><ul><li><p><code>groupId</code>: Set this to the variable <code>pudgyPenguinsGroupId</code> which represents the identifier of the Pudgy Penguin group on the Sismo Factory.</p></li><li><p><code>claimType</code>: Configure this to <code>ClaimType.GTE</code>, which stands for "greater than or equal to". This type ensures the proof validates that the user has at least a specified number of tokens.</p></li><li><p><code>isOptional</code>: Set this to true, implying that the claim is not mandatory for the user to provide.</p></li><li><p><code>value</code>: Configure this to 1, indicating that the proof should validate the user has at least one Pudgy Penguin token.</p></li><li><p><code>isSelectableByUser</code>: This is set to true to grant users discretion in revealing the quantity of their tokens. For instance, some users may be major Pudgy Penguin holders, and disclosing the entirety of their tokens might inadvertently reveal their identity. By making this selectable, you allow users to choose the specific amount they wish to reveal, but they must disclose at least one token.</p></li></ul></li></ul></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/4f679aa7224b6d8f7d24b884d1f78b80.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><p style="text-align: start">This configuration ensures a flexible and user-centric approach to revealing Pudgy Penguin token holdings, balancing between utility and user privacy.</p><ul><li><p><strong>Impersonating Vaults for Demo Purposes:</strong></p><ul><li><p>For demonstration objectives, this tutorial suggests populating the data vault with specific addresses that you might not own. Sismo Connect simplifies the impersonation of such accounts. Within the <code>SismoConnectButton</code>'s configuration (<code>config</code> object), introduce a <code>vault</code> key paired with another object named <code>impersonate</code>. This object should house an array of addresses for demonstration purposes. Examples include Ethereum addresses in hex format, ENS names, and social media handles (like Twitter or GitHub) with a suitable prefix.</p></li><li><p>As an illustration, let's integrate <code>nansen.eth</code> and <code>jebus.eth</code> into our vault - renowned Ethereum accounts with substantial Pudgy Penguin ownership.</p></li></ul></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/6e6f5835687b9f327b6c53ed46d698b6.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/5eebfb784cdbc14f92b321b96f72e003.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><p style="text-align: start"><span data-name="warning" class="emoji" data-type="emoji">⚠</span> <strong>Caution:</strong> Prior to deploying in a production setting, ensure all impersonated accounts are duly removed. Post impersonation, it becomes necessary for our database to monitor the number of tokens the user opts to reveal. The server extracts this value from the proof and relays this information to the frontend, which we'll further detail in upcoming backend amendments.</p><h2 style="text-align: start"><strong>7. Backend Database Updates</strong></h2><h3 style="text-align: start"><strong>Reflecting Token Ownership in the Database</strong></h3><p style="text-align: start">The application's backend needs to account for the token ownership of each user. This requires updating the database schema.</p><p style="text-align: start"><strong>Steps:</strong></p><ul><li><p><strong>Schema Update:</strong></p><ul><li><p>Navigate to <code>prisma/schema.prisma</code>. Update the User model to include a new entry for token numbers.</p></li><li><p>This will keep track of how many tokens a user has chosen to reveal.</p></li></ul></li><li><p><strong>Update Database with Prisma:</strong></p><ul><li><p>Run the commands <code>npx prisma generate</code> and <code>npx prisma db push</code> to reflect changes in the database.</p></li></ul></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/5eebfb784cdbc14f92b321b96f72e003.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>Located at app/prisma/schema.prisma</p><h2 style="text-align: start"><strong>8. Server-side Verification: Processing and Verifying the ZK Proofs</strong></h2><p style="text-align: start">The server is responsible for verifying the Zero-Knowledge (ZK) proof submitted by the front-end. Here's a step-by-step guide to achieve this:</p><p style="text-align: start"><strong>Steps:</strong></p><ul><li><p><strong>Setup Sismo Connect for Server:</strong></p><ul><li><p>Navigate to <code>app/api/verify/route.ts</code>. Utilize the <code>sismo-connect-server</code> package, which facilitates server-side proof verification. The process for setting up on the server is akin to what's done on the front-end:</p><ul><li><p>Initialize the <code>sismoConnect</code> variable by assigning it to <code>SismoConnect</code> from the package.</p></li><li><p>Feed it an object that contains the configuration (which includes your <code>appId</code> and the vault impersonation details, if any) that mirrors the front-end setup.</p></li></ul></li></ul></li><li><p><strong>ZK Proof Verification:</strong></p><ul><li><p>Using the <code>sismoConnect</code> variable, invoke the <code>verify</code> function. Supply it with the ZK proof (or response) obtained from the front-end. Also provide an object containing additional setup details (like auths and claims) that were used when creating the front-end.</p><ul><li><p>It's imperative that this server-side setup aligns with the front-end to ensure accurate proof verification. Any discrepancy can result in the proof getting rejected.</p></li></ul></li></ul></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/1ea50ed4c6c34eca43122e847e946cc7.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p><strong>Data Extraction:</strong></p><ul><li><p>From the results of the verification, you can retrieve the <code>vaultId</code>. To extract the number of tokens the user opts to reveal, use <code>result.claims[0].value</code>.</p></li><li><p>Given that the token claim is optional, a user might choose not to submit one. They might refrain from doing so either because they don't possess tokens or they might not want the discount. Hence, set the <code>tokens</code> variable dynamically: assign it to zero if no claim is presented, or assign it the revealed token value if there's a claim.</p></li></ul></li><li><p><strong>User Database Update &amp; Response:</strong></p><ul><li><p>Augment the <code>create</code> function to incorporate the <code>tokens</code> value, enabling it to be saved in your database.</p></li><li><p>Subsequently, return the <code>tokens</code> value to the front-end for further processing or display.</p></li></ul></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/5738d23a7769794c85328df6c1f48c12.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class="">Part of the rest of the API route from above</figcaption></figure><blockquote><p><strong>Note:</strong> If you deploy the Impersonation Mode, the <code>vaultId</code> will be randomized. This means a distinct user will be stored in the database each time a subscription is made. Always remember to handle this mode judiciously to prevent unwanted discrepancies.</p></blockquote><h3 style="text-align: start"><strong>9. Final Frontend Integration: Adjusting Payment Logic for Discounts</strong></h3><p style="text-align: start">To ensure a seamless user experience, you need to adjust the frontend to dynamically incorporate any potential discounts for NFT holders. Here's how to achieve this:</p><p style="text-align: start"><strong>Steps:</strong></p><ul><li><p><strong>Update Payment Logic:</strong></p><ul><li><p>Navigate to <code>Sismo.tsx</code> located in <code>app/components/Sismo.tsx</code>.</p></li><li><p>Given that the number of tokens is stored as a state variable, you can dynamically adjust the price. Specifically, for each token the user owns, you'll provide a saving of 0.001ETH.</p></li><li><p>In the <code>subscribe</code> function, right after <code>setLoading(true)</code>, introduce a constant <code>price</code> variable. It should be defined as:</p><pre class="dont-break-out text-sm md:text-base"><code>const price = Math.max(0.1 - (tokens || 0) * 0.001, 0)</code></pre><p>This equation adjusts the price based on the discount, but will cap the price at a minimum of 0, especially for users who own 100 tokens or more.</p></li><li><p>Now, adapt the payment function to use this dynamic price. Convert the price to the appropriate format using:</p><pre class="dont-break-out text-sm md:text-base"><code>parseEther(price.toString())</code></pre></li></ul></li><li><p><strong>Display Discounts:</strong></p><ul><li><p>If a user is authenticated, integrate an <code>h4</code> HTML element just above the button. This element will display the quantity of tokens the user has unveiled, the savings they've achieved, and their adjusted total payment.</p></li></ul></li></ul><img src="https://storage.googleapis.com/papyrus_images/d910eda92908e728647bb6528dca318a.png" alt="" blurdataurl="data:image/png;base64,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" nextheight="548" nextwidth="726" class="image-node embed"><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/0d932361a82c38103729b090ef50e150.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><h3 style="text-align: start"><strong>10. Recap and Conclusion</strong></h3><p style="text-align: start">The integration process is complete!</p><p style="text-align: start">In summary, an offchain Sismo Connect integration involves:</p><ul><li><p>Creating an App in the Sismo Factory: The primary goal here is to obtain the crucial <code>appId</code>.</p></li><li><p>Configuring Sismo Connect: This configuration must be done both on the frontend and the server. You'll use the obtained <code>appId</code> and, if required, enable the "impersonation mode" with selected accounts. This makes testing more straightforward.</p></li><li><p>React Button Configuration: Set up the React button. Determine which proofs you need to request from your users.</p></li><li><p>API Creation for Proof Verification: You'll need to set up an API that can verify user proofs offchain.</p></li></ul><p style="text-align: start">And with that, we've reached the finish line. Congratulations! <span data-name="party" class="emoji" data-type="emoji">🎉</span></p><p style="text-align: start">To recap, you've transformed a straightforward request for <code>vaultId</code> into a more sophisticated multi-request system that includes <code>vaultId</code> + group membership. This transformation lets you craft a mini "Only Fans" style platform that offers optional discounts derived from privately-aggregated data. Most importantly, every request made respects user privacy. At no point is the user's Ethereum address ever shared or exposed, all thanks to the data aggregation capabilities of Sismo's Data Vault.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/b876b51233e2fce4f8e9643c69d6ea58.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class="">Sismo's Mascot Ziki</figcaption></figure><p></p>]]></content:encoded>
            <author>chaskin@newsletter.paragraph.com (Jason Chaskin)</author>
        </item>
        <item>
            <title><![CDATA[Harness AI to Land Your Dream Job or Risk Replacement: The Choice is Yours]]></title>
            <link>https://paragraph.com/@chaskin/harness-ai-to-land-your-dream-job-or-risk-replacement-the-choice-is-yours</link>
            <guid>yJEHCLrDm3eBlABzHOpp</guid>
            <pubDate>Mon, 29 May 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[Explore how ChatGPT, within six months of launch, has become an important tool in personal tutoring and career preparation]]></description>
            <content:encoded><![CDATA[<p><em>Note: Originally published on May 29, 2023 on </em><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out" href="https://mirror.xyz/0x218932707a30bE62Ef8559d32d954863933b412f/ALlJtXbcbIA1VD7TE4pOmf12tagf1f7lHP2dlvLLWWM"><em><u>Mirror</u></em></a><em>.</em></p><p>Six months have elapsed since OpenAI released ChatGPT. As an open-access online chatbot, ChatGPT enables users to pose questions and seek content. Within two months of its public launch in late November 2022, ChatGPT exceeded 100 million monthly users, thus setting a record as the fastest-growing web application globally. This sparked an intense discussion about AI, with OpenAI's CEO, Sam Altman, even addressing the topic in front of Congress earlier this month. The world buzzes with speculation and debate, focusing particularly on the potential for AI to induce massive job losses due to the productivity surge that large language models (LLMs) could instigate. While this long-term concern may have some basis, I contend that in the short term, this technology will not merely refrain from replacing you but will also assist you in acquiring the skills for your dream job.</p><p style="text-align: start">For a reasonable investment of $20 per month, individuals worldwide can now benefit from a personal tutor, equipped with knowledge on virtually every internet topic. This tutor can provide practice problems, simplify intricate concepts, critique your work, devise a lesson plan, and offer much more. Since its launch, I've been utilizing it as my tutor, and it has proven to be a game-changing resource. The self-taught software development journey I embarked on a year and a half ago would have been considerably more streamlined and fruitful had this tool been available from the beginning.</p><p style="text-align: start">According to a survey conducted by the Pew Research Center in March, while about 58% of U.S. adults are aware of ChatGPT, only 14% have given it a try. This is a largely untapped resource offering substantial opportunities that most people are overlooking. By seizing this opportunity, you'll position yourself advantageously in your pursuit of your dream job.</p><img src="https://storage.googleapis.com/papyrus_images/dea872a0152e833c427cf924f6a25662.jpg" alt="" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAANCAIAAABHKvtLAAAACXBIWXMAAAsTAAALEwEAmpwYAAADNklEQVR4nH1UTU8TURR9MRqNJm5MNO6MG3+AG6ML1hpNNIqJJioGNEENAY1UBeVL+0EpDOXDWCitKc3gVLSCoKitlbTpoK2CNIKCw8cwg1Kp2IKWmb5e0z6sisJZTe5955137j0ZxDCMwWBQq9XDw8MAIEnSl+lp+BvRaLSjo6Ozs7O9rT0YDJKiJOF3gZzZ2UcYA0AclgCampoSRZHjuHA4DADKG9fXrFohCAIA4CQVAGKyLAjCBD/B83w0Gk22JABwPs0qzlnX53UnK7HU+b8EUl+kPSkKeWezjcamPwX+REyWJUkircfMA1XmsfvmegCQZRn+B4R/gZABYOeuNIQWhPEvDYwx6fq9nuqreU+bb3ofMndM+pLs9Lv12nhiYvNtd+nx0ZFFL/vtINVYv2EzQohMDP9j4tvMV4/j8cdAb4e1tjHjeC7a1JCb6XlwWxgfqSvKY184lhQg1XGeR0n8+P59qSkBQDzp5t7uMwaE9Gjbfd0VWnWxz/0sQYkllpEiLhb48H6QCISmvywjAPFEbGZGJhrRFgNaOej2hkKfcAwvt4NodB4AbK3tRGBh7rHfGyKYm5sbGxsTBIEfHfuKcduxAgNa3Us/iczHBJ4XRZHneXKAsBIXBYPB1tbWrq4ul+v5BUXB2o1bz+UpXC4XTdM2my0UChExQhgaGqJp2kpbTSaTqkp5JP9wumJvrjb7emWZRq0xGo0URZnNZrvdTkKBBgYGHA4HRVEmk4miqgoLr9ZQ1ImTWRSlNxobyzUalmU5jpOkRPCJEsuyarXKYrZkl5xKL95/sTJHUXO+rL6oWl9drtFotVqapsPh8IIDnU7X0NBgtVrtdrviUkHO+QstLS0VuqqMzNOKy9domrZYLAzDRCIRAOA4zul02mw2vV6vVCrLSkvzawoNt6y3qpovl5dU6CvqamtTDrq7u2OyvDBrABCFiT37Dl4pVpGXmi0tBw4dJT+P1A5EUfR6vR6Ph2VZt9v1sqe/s6u4idmuqt9RVJf2+tWbnpc9Pt8rn8/ndDr9fj/GOBFHYl+SpEgi+3FyXSDQ/7avd7kgQRziEOCKRidNn0NP+oby56W5f1P0E7LB/XtARUlnAAAAAElFTkSuQmCC" nextheight="500" nextwidth="1229" class="image-node embed"><p style="text-align: start">To provide a clear picture of my learning process using ChatGPT, let's take the example of learning to code backend servers. I start by watching a YouTube tutorial on the subject, taking notes on a second monitor with ChatGPT ready for questions. As I progress through the tutorial, any doubt or question that arises is promptly posed to ChatGPT for a simple explanation. If the first explanation is insufficient, I delve deeper with follow-up questions until I've grasped the concept. Once the tutorial ends, the practical application of the skills I've just learned begins.</p><p style="text-align: start">Before I dive into the coding itself, I use ChatGPT to craft multiple-choice questions that gradually increase in difficulty, fortifying my comprehension and readiness for the tasks ahead. Whenever I confront difficulties or need additional clarification, ChatGPT serves as my go-to resource. Moving on to the practical phase, I request ChatGPT to come up with a simple project for me to code. But it doesn't stop there; ChatGPT assists in devising an outline or a roadmap to approach the problem efficiently. This approach ensures a systematic process in problem-solving, critical in coding. Once prepared, I transition into the coding phase. If I encounter an error, need guidance, or a code review, ChatGPT is at the ready. After I finish my coding, a review session with ChatGPT is mandatory—it invariably offers feedback to improve my work. If I need further practice, I ask ChatGPT for a more challenging problem, continuing this iterative and responsive learning process to ensure my steady progress.</p><p style="text-align: start">The emergence of powerful AI tools like ChatGPT brings us to a crossroads. We find ourselves faced with an important decision, one that could have significant ramifications for our personal and professional lives. On one hand, there is the fearful narrative of job loss due to AI-driven automation, which, while plausible, overlooks the other side of the coin: the untapped potential of these tools as tremendous facilitators of growth and learning. By embracing AI like ChatGPT, we can turn a potential threat into an invaluable ally. Instead of succumbing to AI-induced job loss, we can utilize these tools to enhance our skills and secure our dream jobs. The choice is indeed ours</p><p style="text-align: start"><strong>Screenshots of Interactions with ChatGPT:</strong></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/927990a503089415d70f3daaad165635.jpg" class="image-node embed"><figcaption htmlattributes="[object Object]" class="">A demonstration of ChatGPT's ability to break down a topic with a simple easy-to-understand explanation</figcaption></figure><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/4d6066aca0d0b2fcef6eaf081e0bd7de.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class="">ChatGPT guiding the learning process with multiple-choice questions to bolster understanding of backend server coding</figcaption></figure><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/c042a834d9d830e8eb64661fe1667432.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class="">A session with ChatGPT performing a thorough code review, offering invaluable suggestions for code improvement.</figcaption></figure><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/e740ed0a1532df60abd889b16e6fef15.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class="">Requesting and receiving a new backend project challenge from ChatGPT, keeping the learning journey engaging and progressive</figcaption></figure><p></p>]]></content:encoded>
            <author>chaskin@newsletter.paragraph.com (Jason Chaskin)</author>
        </item>
        <item>
            <title><![CDATA[Lens Protocol: The Future of Social Media]]></title>
            <link>https://paragraph.com/@chaskin/lens-protocol-the-future-of-social-media</link>
            <guid>J2Mo2NgzMRwa1DuZgrzR</guid>
            <pubDate>Sun, 02 Apr 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[Lens Protocol is transforming social media by giving users control over their data and fostering a new era of innovation and creator monetization.]]></description>
            <content:encoded><![CDATA[<p><em>Note: Originally published on April 2, 2023 on </em><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out" href="https://mirror.xyz/0x218932707a30bE62Ef8559d32d954863933b412f/FE3r8P9I7pvtJUWLgcuGyfV58TIbEhWsC1fa_1bDwq4"><em><u>Mirror</u></em></a><em>.</em></p><p>Imagine owning all your social media data, seamlessly importing it from one app to another. No more losing followers when switching platforms or getting locked out by a site's whims. Welcome to the power of Web3 social media—a game-changer for creators. You can carry your followers, posts, and comments with you while monetizing your content like never before.</p><p>Dive into how Lens Protocol, a Web3 social protocol, is shaking up the social media landscape. Traditional platforms like Twitter, Facebook, and Instagram control both their web applications and underlying databases, leaving user data at their mercy. Web3 social media disrupts this model by giving users control of their data on a decentralized database. Built on smart contracts deployed on Ethereum's Polygon sidechain, Lens Protocol enables anyone to create applications that interact with its smart contracts, accessing and using data stored on the blockchain. This results in permissionless, public data available for anyone to use in their apps.</p><p>This open accessibility introduces a new level of competition, as anyone can build a web application that interacts with the database. Social media giants like Facebook, Twitter, and Instagram have remained relatively unchanged because they've dominated the market without needing to innovate. Web3 social media, however, forces companies to continuously improve their products or risk being outpaced by new competitors. This constant competition drives innovation and ensures a better user experience.</p><p>Creating a profile on Lens involves using smart contracts to generate a token storing your profile information. Your wallet owns this token, giving you full control over your data—a stark contrast to platforms like Facebook. One significant advantage of this new model is the ability for creators to retain their followers, even when switching platforms. Picture a creator with 5 million Vine followers. As the platform fades and TikTok emerges, they don't have to start from scratch. With Lens Protocol, they can log in and retain all 5 million followers, maintaining their brand momentum.</p><p>Lens Protocol's modularity unlocks creative freedom, allowing users to customize their posts and how they can be collected. Content creators can tokenize their work, introducing scarcity and additional revenue streams. For example, Taylor Swift could tokenize an announcement for her upcoming comeback tour, limiting the supply to 10 collectible posts at $100 each. Fans would likely pay far more than $100 to collect that post, generating a new monetization form for creators. Users can set rules about who can follow them, creating a Patreon or OnlyFans-style platform without a single company controlling it.</p><p>But there's a catch. Building an app on Lens Protocol isn't as simple as directly interacting with the blockchain. Instead, the team combines a Web2 stack with the blockchain layer. Reading data from Lens involves accessing their internal database, powered by PostgreSQL, Redis, and GraphQL. Writing data still happens directly on the blockchain, but you need to ensure your interactions are in the correct format for Lens' "indexer" (smart contract event listener). You might question Lens' centralization, given the use of an internal database. While Lens' database gets all of its data from the blockchain, it's worth pondering whether this setup offers the same security level as a DeFi app or if it's more susceptible to hacking. Answers depend on your perspective and concerns. As for speed, transactions can take 2+ minutes to finalize, even on the Polygon sidechain, which may raise short-term scalability concerns.</p><p>In conclusion, Lens Protocol revolutionizes social media by empowering users to own their data, decentralize storage, and foster openness and collaboration among applications. This user-centric approach provides creators with innovative ways to monetize their work and connect with audiences. Lens Protocol paves the way for a more equitable, transparent, and flexible digital landscape, shaping the future of social media.</p>]]></content:encoded>
            <author>chaskin@newsletter.paragraph.com (Jason Chaskin)</author>
        </item>
        <item>
            <title><![CDATA[Raindrop, Airdrop]]></title>
            <link>https://paragraph.com/@chaskin/raindrop,-airdrop</link>
            <guid>Hj2PGObAg3y3u37q8hzo</guid>
            <pubDate>Wed, 22 Mar 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[Learn how the airdrops are changing the dynamics of value creation and sharing in cryptocurrency, empowering users as stakeholders]]></description>
            <content:encoded><![CDATA[<p><em>Note: Originally published on March 22, 2023 on </em><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out" href="https://mirror.xyz/0x218932707a30bE62Ef8559d32d954863933b412f/63iRuodHFrB1_mXG88Zu_CELsfQ15UVit-ilFtByp8M"><em><u>Mirror</u></em></a><em>.</em></p><p>First, I would like to begin this post by paying tribute to Takeoff. RIP and thank you for inspiring the title of this piece. As the Arbitrum airdrop is set to launch tomorrow, I wanted to create a post explaining the concept of an airdrop and its significance. Most cryptocurrency companies generate revenue by utilizing a token that enables token holders to vote on company decisions. This establishes a flat, democratic structure where each token represents a vote. A unique aspect of tokens is the practice of distributing them to early adopters through a process known as an "airdrop."</p><p>Since the blockchain is public, companies can identify addresses using their product and directly send tokens to those users. Arbitrum, a layer 2 solution on Ethereum, is airdropping 11.62% of its total tokens to early users. Users will receive tokens simply for trying out the product. At a predetermined block number, a smart contract will allow eligible users to claim ARB tokens based on the specific criteria set by the project developers. This method of rewarding early adopters is made possible by the transparent nature of blockchain technology, which allows companies to identify users and airdrop tokens directly to them.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/0b0dd747c19bc85b8dc86192a52e7ba8.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class="">The initial token allocation for the ARB token, launching tomorrow, will see Arbitrum users receiving 11.62% of the total supply</figcaption></figure><p>Why is the concept of airdrops important? To understand this, let's first take a look at how companies traditionally distribute value to their users in conventional markets, such as through equity. The company's ownership starts with the founders, who then sell a portion of the company to venture capitalists, and eventually, some shares are offered to the public through an initial public offering.</p><p>For instance, consider Uber. When you first used Uber, it was likely due to a friend sending you a $10 referral link. If you enjoyed the service, you continued using it. For just $10, Uber could potentially retain you as a customer, reaping various benefits. Your usage data helps the company pitch to VCs for more funding, while your continued use allows them to test new features, all at the cost of a mere $10 referral bonus. Users' first opportunity to acquire equity in a product they've been using for a long time comes late in the company's life cycle during its IPO, and they often face the risk of being dump on by insiders.</p><p>Now, imagine if instead of a $10 bonus, early Uber drivers and riders received company shares for being early adopters and testers of the product. This is how airdrops work in the crypto space. Users receive tokens that represent a stake in the project, and as they use the platform more, the more tokens they can potentially receive. Take the example of Arbitrum. When it went live, many people wanted to test all the dApps on the platform for various reasons, including the possibility of an airdrop. The fact that Arbitrum built a good product kept users in the ecosystem, and they were ultimately rewarded with tokens.</p><p>Airdrops enable crypto companies to align their interests with those of their users, fostering a stronger sense of commitment and engagement. Users are incentivized not only to try new products and services but also to continue using and supporting them, as they stand to benefit from the project's success. This creates a win-win situation, where both the company and its users share the upside of the project's growth and development. Consider a scenario where there are two different Ubers—one offers a $10 discount on your first ride, while the other provides a possibility of earning equity in Uber through an airdrop. Which app would you choose to use?</p><p>Furthermore, tokens distributed through airdrops are often more evenly spread across a broader user base, ensuring a more decentralized network. A more decentralized network can result in increased security, resilience, and fairness within the ecosystem. Instead of venture capitalists or wealthy individuals holding a majority of the equity and upside, a wider range of participants can benefit from the project's success. In conclusion, airdrops present a transformative approach to rewarding early adopters in the crypto space, fostering stronger commitment and engagement while aligning the interests of both companies and their users.</p><img src="https://storage.googleapis.com/papyrus_images/c8022a14f8b1a3faf136cbebde0bb9ad.png" alt="" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAARCAIAAAAzPjmrAAAACXBIWXMAAAsTAAALEwEAmpwYAAAEgklEQVR4nIWUXW/TZhTHndh5/O7Hduz48ZPETmI7dl4bmjbvbZOmTds0FJppwMQ2Xje1SEMa0i7GZ0GbtCsG0tCQ+AQTGuIOaVz3ZsCG2EdgmpJU4UVsOxeWZR39f/qf/zkmQtMiSTISiQAAGJYVBFGEMlRUVTN0A8ctJygtnqi1V9cH3cGwtzXqrG81Omu19upCreGXyrbjGTguKyrLsizDAgBIkgxPiyRJYqY+A9A0zXKcIEIJKmo0phsmSqRs1w/K1aX2Wmd96+xnX1y7fnN89nKru1WpNcvVupcvJtKuhrAkKxzPAwAiAFAUNQOEw2Fijpo4oGmO4wURQiUa1VEMYTPpZIJS/kSrUl87OT7/1fVvt7f3lpdb3d6w2enlKstuUDCtjKYjSVZ4QWBolqIiFEXNTbwBgGMHxwAthg2cNC0nnS0GlcZCoz/aP/9Rf3iht7OSL2OEC+V6UKqnvJyZdHTDhEqUFyDDspFIZK4+AYRCobcdsBwvSrKiatHpfCw35+SXgsX2cmdrY2P/k/b48+b6Sq4SR9jO+H65brkBfgMQGfr/AaIIFUVDhmlh27PcnFeolZa7i6u7F7unv+7vnqm2dopVP2FnnCA40Up5+SkAQyXKCfA9QCgUOgaEw2GKoiYZ8JIkq6qOUTxlWp7lFlK5aqnR3z1/cOnijZt75w6am6PiUtkNCtXVXLllu/nJiGImlFWOh4Bm/hMA5gDTwDa2vFS2Um70K81+vli3vfLmcvtab3sx7ZkxJMtRSZKhrKJERothCaocLwBAzwGzA/hXgG5aOO0nMnlNR/F4CsoxDbnNjQun++MgE6BkoCiIZTgAAMtygihJUGE5HgB6vqNvAPMYJt3TDCYAbGPbx7afdJaypZ6KfAUV/fUrzZ0Dr7gS9+oKRJKMOB4yDMewnCjJLMdHACAp8gOA42OeXPKkVdZM3bRNO4vsvGrmoObCmC9o2YXaqXahpRiZuFeHWkpS47xoMKzE0CwvvBPAXHbuIBQmSYqKzFrhZE2xaQdQS5G0zEME9SwfC3abO8OFdtrKGsmyrMRFiBhBBUCMROhpAMx783nHwSwGZnIIk0NTY/FY3OUEnRUNHiJatnLu4sXBmVpQX/Ly2LAEDgpCdDYiAGhF1hVFjwDwtvr7gOPFIgiSpGhWZLjo9DMIU5Iiou1iI49djmKTsp5FSYWXSJIiiInC7BkOhWcvHwYQBGGaaDAY7O+PV1a7nU53ONzrr292e5vLi/Ublw+ufnphsLM3Hn882BgcXv1y2N/otNq7o5Nra73R7slTp06PRqPBYJMGYI4hZhUKhQRR4aB56crBw4e/fP/Dndt3fvr5/v2/Xr168uTJ06e/3br13fMXz1/88eLBgwf37t07Ojp6/ffrH2/fPjw8fPnyz6Ojo7t37z769dHvz549fvw4yBVD4ckf+1idIAiGk2KJwPLqXr7W6OwMz33T6u4hAzmOl067nudjHHcdx89XvPIaMrHnZTOO57peNBpNJpOO42CMTdPM+vmgUFX1hCDpgBZm6v8AwZnIGQzG0x0AAAAASUVORK5CYII=" nextheight="388" nextwidth="720" class="image-node embed"><p></p>]]></content:encoded>
            <author>chaskin@newsletter.paragraph.com (Jason Chaskin)</author>
        </item>
        <item>
            <title><![CDATA[Freedom - do you really care?]]></title>
            <link>https://paragraph.com/@chaskin/freedom-do-you-really-care</link>
            <guid>7GKLWuriBMPOdBq9Edjc</guid>
            <pubDate>Fri, 17 Mar 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[How blockchain and cryptocurrencies offer a new paradigm of decentralized ownership and financial liberty in the digital age]]></description>
            <content:encoded><![CDATA[<p><em>Note: Originally published on March 17, 2023 on </em><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://mirror.xyz/0x218932707a30bE62Ef8559d32d954863933b412f/jImpyV3IERI6q7IcmqshX6QmS5fP7Ncx0A8RIAcZXhY"><em><u>Mirror</u></em></a><em>.</em></p><p>Countless articles discuss why blockchains embody freedom technology, but I want to offer my distinct perspective. Our story starts with the first financial crisis in 2008, as we might be navigating a second one now. When depositing money in a bank, your banking app displays your balance, but did you know the entire sum isn't physically in the bank? Before 2008, large banks needed to hold only 10% of these funds. However, since the COVID pandemic, this requirement has dropped to 0%. Theoretically, if everyone requested their money back, the bank couldn't provide it.</p><p style="text-align: start">Satoshi Nakamoto believed there must be a better way. The first block of Bitcoin includes the message, "The Times 03/Jan/2009 Chancellor on brink of second bailout for banks." For the first time in the digital age, you can genuinely own something online without a third party – Bitcoin and this asset is available to anyone.</p><p style="text-align: start">Before exploring the blockchain world, I didn't realize the numerous restrictions on asset ownership for Americans and people globally. In the US, individuals earning less than $200k cannot invest in private companies, hedge funds, venture capital funds, and some real estate investments. Internationally, the list expands. While Americans enjoy the US dollar's stability, not everyone can access it. Some countries enforce currency controls, limiting foreign currency purchases or investments in US stocks, bonds, or mutual funds. Others necessitate regulatory approval or impose higher taxes on foreign investments. Bitcoin provides a universally accessible asset without ownership disputes. Issues like disagreements over country recognition, such as Israel and Palestine, don't apply to the Bitcoin network. Anyone can run a Bitcoin node, view the blockchain, and verify ownership, ensuring a truly fair and unrestricted system.</p><p style="text-align: start">This asset, Bitcoin, can never be subject to hyperinflation. It’s written in it’s code that there will only ever be 21 million in existence. Inflation is wreaking havoc across the globe, eroding people's purchasing power, exacerbating economic inequality, and causing the cost of living to soar. This makes it difficult for individuals and families to afford basic necessities, pushing them into poverty and hindering their ability to achieve financial stability. Countries like Zimbabwe and Venezuela have experienced hyperinflation, while G20 nations such as Turkey and Argentina have seen their currencies inflate over 80% annually. Bitcoin offers an alternative that cannot be inflated away, providing a potential safeguard against such economic turmoil.</p><p style="text-align: start">Another aspect worth considering is international payments. Traditional methods, like Western Union, require fees of $20-30 and take weeks to process. Bitcoin doesn't differentiate between sending to a nearby computer or a company across the globe. For a small fee, transactions complete within 30 minutes to an hour without a third party.</p><p style="text-align: start">The US government, through an entity called OFAC, prohibits interaction with countries like Iran. If you attempt to send money to support female protesters there, your payment will be blocked. However, this limitation does not apply to Bitcoin, as it enables transactions that cannot be censored or blocked by any government authority. We rely on Venmo, Cash App, and PayPal, which can become problematic. The Canadian trucker protest demonstrated that governments can seize one's freedom to transact. This sets a precedent where individuals can lose their transactional freedom without due process. On the Bitcoin network, such scenarios are impossible, preserving our freedom to transact – a liberty we surrendered when transitioning online.</p><p style="text-align: start">However, Bitcoin consumes significant energy to maintain the network and is limited in programmability, only allowing sending and receiving. Bitcoin paved the way for Ethereum, a more versatile and energy-efficient option.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/ce028b0e48fd198cd6910fe3a51d5f66.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class="">Hal Finney was the first individual to receive a Bitcoin transaction. As a committed cypherpunk, he passionately advocated for the implementation of privacy-enhancing technology on the internet. Although some speculate that he may have been Satoshi Nakamoto, the true identity of Bitcoin's creator remains uncertain. Hal passed away in 2014.</figcaption></figure><img src="https://storage.googleapis.com/papyrus_images/a1ece76a7295696407a0a4389c74bca6.png" alt="" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAgCAIAAABywqTfAAAACXBIWXMAAAsTAAALEwEAmpwYAAAEiUlEQVR4nI2VfUwTdxjHf3PLXiNhxE10Ecl0sGWSTIcJkegmMVmm0+k2nNmmhOwfSJQZdSx1dbIAlfBSYilMyKSU0h5QGjZeCihXCyuvjvfS6xAsFArtKIXyclx7/O639Ro6LBV2ef64l9/nnu/zfX7PHaAR2jRImiZpSDrp9Y/ApiSNUG9fn1CYYzJbIEKLDgcF4f/laQgRQpkpP78GQGHBLwihFei6tTlPsev6B3X8rKwTkRGHw96OCt9fJi/Hysq6enoYdgG9Mc8g9ECtlkql31+7lsrjpfB4bW1t4qIilUq1OU+6CkfFxUXvhe4JCngl/K03I94NjTwQ9uN1jpbQM2xp0CcPEXK9nuWVtTX+AOx9FoQ8D3YDsB0ATYsGsTDDLvPmXapYz6z2eT6mkFVgMdGndwEQ/DLYBcCFLz/XEoTbRd88QojVhSYmTR+fO1VzrzIvO/NVAIK2PvMSAFcT4uEamPHiFx2OQb1ep9PpCH1Rya9RUftlmLRMXn782IcfHT0cc+Er7aAW+eQpNunk9DSfz4+Li8NxnMe7VVtbm5aWJhAIOjofCjIzc9Mzhx8ZZm2zaBVm1vK0q2Z7iUyWyuPV1deLRCKxpPiuSCQrLRWJxRKprKent69Pa52ZYSUwvuv/22abs9tnZmZGDAa8qXnYaJyctnZ292kJ/diU2WyzOdi+eOdn2IDuYP2DCM0ukRRNk07nPLk8Ty5PWW1W+7yH/I93N9wdni3ghAwFGbY0ZslBLzno2SWSdNKeTE/hIXSyQUPocI0tO7k0XHK4Ttw2e/OMRz+EK6x4k9lSWVcj+02BEHLQtBO6SK8N6oNfpqg5u51BSIpJg0N2HgjfRzwi5hYWZ2ZnnXBlPcys1b8CYUNDg1wu/72qKukmNz7+2+gvPr2dk1WhUCiVyomJCXd1PvyjVy8EAkFsbCyfz8cwTCQSSTFMKBRiGFZTW6dqbSVp2is548UPDQ3pCH1KavLr/s8F+m15P2z33uCdZ785zbl8MTryUIta7bV5Ge/+s+b9NUQEbnvRD4CtW0D27XSRpPDQwT3HdwScCgoaHR93DS9N+/ZvhfWfcjo+OXk0NHRHWNgbBtOw/E7BOwHgSKD/PgCwYrFLwtN4ZjUklYKcglt5RcmV90vPHvkgEIBgALYBwOX8MEgQZovFUwhYzyOEOD9dKldILl46z+NxMzL4HA4nO4uvkCuEQiGO403NzZvwN5IvF4rzklKv5ORmCwU5xyIOfv3ZmcSEBC73enV1dX9//0Y8g1CBJL29R4NV5v6p7VTWKoMBCPF7YTsASTe5JHt4RhCs51cgk383o3ugI68wvbu33TJtjYs5f+7kicQr3z1Qq3x8f5gng4ZMenZSS9cf5VWFihoMIYSr8BuJV1WNjYM63drm+eCRa3JhSXnp0KgBb1J3DfRDhO6pm/Pv5FdgZRpNi9v8jfJDhOpx/LFxvLm1bWzCtEBRmvaOzu4+5f3G1oddJEU9kd9stVpsNtLp9LzV/dsbmzANjRimrNYFyjEyajROTg0Q+sdjxrXJ/+X/AVb1liQuYHRhAAAAAElFTkSuQmCC" nextheight="530" nextwidth="356" class="image-node embed"><p style="text-align: start">Ethereum provides all the benefits of Bitcoin, along with several additional features. First, let's discuss the energy consumption and security of Ethereum compared to Bitcoin. Proof of Stake (the consensus algorithm the network uses for coordination) consumes 99.988% less energy than Proof of Work (used by Bitcoin). Gold mining uses 240 annual TWh, Bitcoin 130, YouTube 244, while Ethereum consumes only 0.0026. As of March 16, 2023, Ethereum is also more resistant to 51% attacks (an attack where someone could hijack the network). To carry out such an attack on Ethereum, you'd need to spend $103 billion, while attacking Bitcoin would cost around $53 billion, almost half the price.</p><p style="text-align: start">The most significant innovation Ethereum introduced is programmable money. For the first time, you have all the benefits of Bitcoin, plus the ability to create apps that use your funds. Anyone can develop a decentralized app (dApp) and deploy it to the Ethereum network for users to interact with. These dApps enable the exchange of digital assets (money or NFTs) based on specified conditions. Just as we've programmed apps to perform tasks when buttons are clicked, the same can be done with money without the use of a third party.</p><p style="text-align: start">So far, people have created tokens (custom currencies for various purposes), borrowing/lending platforms (decentralized protocols allowing users to earn interest on deposits and borrow assets), decentralized exchanges (DEXes, which enable direct wallet-based token trading), and non-fungible tokens (NFTs, unique digital assets) among others. It might seem unnecessary for those with access to traditional financial services, but 1.7 billion people worldwide lack banking access. For them, the ability to securely access USD via USDC and earn interest through platforms like Aave and Compound represents a revolutionary shift in financial opportunities.</p><p style="text-align: start">Even for people in developed countries like the United States, using dApps can be a more straightforward and efficient alternative to traditional financial services. Opening a high-yield savings account can be complicated and time-consuming, with unclear terms and conditions. On the other hand, using a dApp to earn yield is as simple as connecting your wallet, depositing funds in a borrowing/lending protocol, and withdrawing your assets whenever you want.</p><p style="text-align: start">As the world becomes increasingly digital, there are three potential outcomes in terms of currency: company-specific tokens (e.g., Amazon or Meta bucks), Central Bank Digital Currencies (CBDCs), or cryptocurrencies. The first two options can result in individuals being "debanked" for various reasons, whereas the latter provides more freedom. Which option do you think offers the most liberty?</p><p style="text-align: start">The world is becoming more centralized, and people can be banned with just the click of a button. Consider the taxi industry a decade ago – a decentralized sector with little knowledge about its customers. You just paid some cash and hopped in the yellow cab. While Uber and Lyft revolutionized transportation, a future dictator could easily ban people from these platforms, but not from traditional taxis. This principle also applies to Facebook, Apple, Amazon, and Microsoft. While these businesses have created trillions of dollars in value, they are vulnerable to being hijacked by those with malicious intent. For instance, upon the request of the Chinese government, Apple restricted the ability of Chinese protesters opposing COVID lockdowns to use the AirDrop feature for sharing information about the protests.</p><p style="text-align: start">Before concluding, let's touch on NFTs. Society often struggles to adequately compensate creative professionals, despite the joy and value they bring to our lives. NFTs offer artists a new way to generate additional income. They can create digital collectibles or exclusive content, fostering a direct connection with their fans and supporters. By offering limited editions and personalized experiences, artists can build loyalty and encourage long-term patronage. Additionally, when an NFT is resold on a secondary market, creators can receive royalties, ensuring continued income from their work.</p><p style="text-align: start">Cryptocurrencies and NFTs have introduced unprecedented levels of freedom into society. These innovations enable individuals worldwide to utilize programmable money as they deem appropriate, regardless of their location. Just as there is no CEO governing email usage due to the immense power it would concentrate, the same principle should apply to digital currency. Nevertheless, this future is not a foregone conclusion, and I am committed to contributing my efforts to make it a reality.</p>]]></content:encoded>
            <author>chaskin@newsletter.paragraph.com (Jason Chaskin)</author>
        </item>
    </channel>
</rss>