<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Dor on Medium]]></title>
        <description><![CDATA[Stories by Dor on Medium]]></description>
        <link>https://medium.com/@dorsmlxl?source=rss-94cbf98ca106------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*hPmHPKptC677mJ6mIDOE4w.jpeg</url>
            <title>Stories by Dor on Medium</title>
            <link>https://medium.com/@dorsmlxl?source=rss-94cbf98ca106------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sat, 14 Nov 2026 01:21:24 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@dorsmlxl/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[sim: a canvas for your ideas]]></title>
            <link>https://blog.smlxl.io/sim-a-canvas-for-your-ideas-aa80d20e6fa8?source=rss-94cbf98ca106------2</link>
            <guid isPermaLink="false">https://medium.com/p/aa80d20e6fa8</guid>
            <category><![CDATA[web3]]></category>
            <category><![CDATA[blockchain]]></category>
            <category><![CDATA[data-streaming]]></category>
            <category><![CDATA[event-driven-architecture]]></category>
            <dc:creator><![CDATA[Dor]]></dc:creator>
            <pubDate>Tue, 30 Jul 2024 17:18:52 GMT</pubDate>
            <atom:updated>2024-07-30T17:18:52.685Z</atom:updated>
            <content:encoded><![CDATA[<p>After extensive development and months of alpha testing involving some of the top developers in the space, today we are launching <a href="http://sim.io/"><strong>sim</strong></a>.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fplayer.vimeo.com%2Fvideo%2F992075742%3Fapp_id%3D122963&amp;dntp=1&amp;display_name=Vimeo&amp;url=https%3A%2F%2Fvimeo.com%2F992075742%3Fshare%3Dcopy&amp;image=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1907967742-d1bfcd212160034c1e76b61f3b671b494fcc67acda8aed4b79c30d943ec4ac42-d_1280&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=vimeo" width="1920" height="1080" frameborder="0" scrolling="no"><a href="https://medium.com/media/0ee8885f57193fdb976189b39fe2e9ca/href">https://medium.com/media/0ee8885f57193fdb976189b39fe2e9ca/href</a></iframe><p>Building applications and services that rely on real-time data, particularly on-chain, is challenging. It requires several specialist skill sets and is resource- and time-intensive. It’s especially hard to build performant apps that are on par with users’ expectations. This is true for both smaller teams and market-leading enterprises. And it is only getting more complex with rollups, sharding, DA layers, temporary storage and more. At this stage, chains and client teams are focused on writes and scalability, throughput, and decentralization. These sometimes come at the expense of readability and accessibility. <em>If you’ve ever tried to break down a complex monolith into a distributed service, you will recognize this common tradeoff.</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*eFjOHhAvQ-TR4GLU" /><figcaption>As blockchains get more complex and data volume grows, readability and accessibility become harder</figcaption></figure><p>We saw this as a challenge and an opportunity. We set out to build an EVM client specifically optimized for reads–we plan on open-sourcing it by EOY–and a streaming, storage and computation platform around it to make it easier to develop modern event-driven applications and pipelines. sim allows developers to harness the power of blockchains by easily implementing complex real-time applications and data flows that runs alongside chain execution.<strong> It’s the fastest way to build performant applications and pipelines that rely on on-chain data.</strong></p><p>Here are some examples of what people do with sim today <em>(all implemented/running in the wild by our alpha customers):</em></p><ol><li>You’re building an application (dApp) that has a real-time activity feed. You need to track and instrument multiple contracts and protocols, but you want to avoid writing brittle indexing logic, spending weeks or months building a backend for data transformations and middleware to join data for APIs.</li><li>You’re a fund/trader/searcher looking into various DeFi protocols to understand prices and activity. You want to track and instrument thousands of contracts/pools/tokens (verified or unverified) without requiring a ton of ecosystem-specific work. No problem: use our Lambda, or Patch, to get all the data you need, even if it’s not instrumented in the contract itself. All running at the tip and backfilled, available for you to use with our hosted solution or streaming to your own data infra.</li><li>You’re doing on-chain (and cross-chain) monitoring and auditing and need to scan entire blockchains for specific events. For example, you want to monitor and analyze storage writes to look for entries containing a specific address.</li></ol><p>One example we’re excited to share is <a href="https://explorer.sim.io/">sim Explorer</a> (fka <a href="https://evm.storage/">evm.storage</a>).</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*IQk-loFEBUUl3BayQYJdrg.png" /><figcaption>sim Explorer (fka. evm.storage) the fastest dev focused block explorer</figcaption></figure><p>We’ve been eating our own dogfood by building sim Explorer on sim. It’s the fastest, most in-depth, developer-focused block explorer and transaction simulator available, offering unparalleled storage tracking capabilities. It’s loved and used by thousands of developers and completely powered by sim. Want to see for yourself? Check out the <a href="https://docs.sim.io/docs/explorer-homepage">sim canvas and APIs powering the homepage</a>.</p><p>These are just a few examples and we are excited to see what you build with it.</p><p>Another way to understand sim is to consider what it augments and replaces: node providers or running your own custom node, indexers, fork/shadow instrumentations, building/operating ETL and ingestion pipelines to your database, and even building and deploying the APIs and webhooks for your services/products/users. If you so choose, it’s all fully hosted, scaled and maintained for you. Have trust issues?<em> (🙋, I can relate)</em> All good! You can use sim to instrument on-chain data and write it to your own infrastructure, or hold until the EOY release of the OSS engine. sim is built for and around builders. We’ll help you reduce costs by replacing multiple expensive vendors you’re already using, but that’s not our main goal. Our mission is to help you do things that were once impossible and get better and faster products to market faster. <strong>If you’re doing anything with blockchain data, you’ll want to give it a try.</strong></p><p>Over the next month we’ll have constant updates and sim examples, walkthroughs and technical information about how sim works. We intend to become a community where builders can share and build upon each others’ ideas and data.</p><p><strong>To get started, visit </strong><a href="http://www.sim.io/"><strong>sim.io</strong></a><strong>. Read the docs at </strong><a href="http://docs.sim.io/"><strong>docs.sim.io</strong></a><strong>. Say hello </strong><a href="https://t.me/+zw0fuNoYg39hZWRh"><strong>on Telegram</strong></a><strong> and follow us on </strong><a href="https://x.com/smlxldotio"><strong>Twitter/x </strong></a><strong>.</strong></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=aa80d20e6fa8" width="1" height="1" alt=""><hr><p><a href="https://blog.smlxl.io/sim-a-canvas-for-your-ideas-aa80d20e6fa8">sim: a canvas for your ideas</a> was originally published in <a href="https://blog.smlxl.io/">smlXL</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Making public computers more transparent, accessible, and useful]]></title>
            <link>https://blog.smlxl.io/making-public-computers-more-transparent-accessible-and-useful-57bc163bd0b2?source=rss-94cbf98ca106------2</link>
            <guid isPermaLink="false">https://medium.com/p/57bc163bd0b2</guid>
            <category><![CDATA[startup]]></category>
            <category><![CDATA[ethereum]]></category>
            <category><![CDATA[search]]></category>
            <category><![CDATA[blockchain]]></category>
            <dc:creator><![CDATA[Dor]]></dc:creator>
            <pubDate>Tue, 24 Oct 2023 13:02:49 GMT</pubDate>
            <atom:updated>2023-10-24T13:02:49.435Z</atom:updated>
            <content:encoded><![CDATA[<p>Throughout my career, I’ve worked on projects I believed were for the greater public good. When I was 14, I left school to work for Layla, a community for nightlife and music lovers in Israel. At Groupon, we helped local commerce and small businesses level the playing field with e-commerce tactics. Most recently, at Lyft, we offered shared rides and the largest (and only profitable) bikeshare systems in the world. I believe technology should be utilized for the public good, and that’s been a guiding principle in my career.</p><p>As I was looking into what I wanted to do next, at the beginning of 2021, I was talking to the smartest people I know, getting their perspectives on different spaces, problems, and opportunities; the most polarizing subject was blockchains. Naturally, this made me want to delve deeper, learn more, and develop my own point of view. What eventually drew me in, overwhelming my skepticism, was the realization that blockchains enable public computing: software and infrastructure in the public right of way, managed by the public (they are also a giant Marketplace, but we will keep that to another post). I started to dedicate my time to blockchains in June 2021 and founded smlXL (pronounced /small-X-L/ or /s-m-l-x-l/) in October.</p><p>So much of our life depends on computing, and decentralized computing has shifted paradigms. The last decade has reinforced the urgency of moving away from centralized, obfuscated, and excessively abstracted data. It’s manifested in corruption and theft of user funds at FTX; censorship of social media, including silencing government critics, as well as allegations of election fraud; and even inflation, where the US Federal Reserve has difficulty measuring money supply due to complex financial instruments.</p><p>Blockchains promise transparency and accessibility, but these benefits come at a price. As distributed systems grow more complex and opaque over time, accepting these inherent challenges is necessary to realize blockchains’ potential.</p><p>As we explored blockchains and built tools in the EVM ecosystem, our mission became even clearer: <strong>to</strong> <strong>make public computers more transparent, useful, and accessible.</strong></p><p>Paul Krugman <a href="https://web.archive.org/web/19980610100009/https://www.redherring.com/mag/issue55/economics.html">famously underestimated</a> the internet’s impact by projecting it would equate to that of fax machines. As is always the case for paradigm-shifting technologies, there were many skeptics of what Google was up to in the early days. We take a cue from Google’s original ethos: just as there was immense value in understanding each website’s context and <em>je ne sais quoi</em>, moving past merely indexing sitemaps and keywords, there will be immense value in comprehensively understanding blockchains.</p><p>Understanding every contract and account opens up endless opportunities, Here’s what the future holds:</p><ul><li><strong>Search:</strong> Imagine smart contracts as APIs, a collection of smart contracts as an application, and transaction histories as a complete record of a user’s interactions with these applications. We’ll help users find the right applications and applications find the right users.</li><li><strong>Fulfilling intents:</strong> You can “remix” and make complete applications on the fly by composing transactions that interact with a combination of contracts. A simple application of this is routing, where a user wishes to perform some operation optimally (e.g., exchanging or borrowing assets at the most favorable rates), but does not care what applications are used.</li><li><strong>User-friendly interfaces:</strong> Right now, sending transactions to blockchains and even reading state from them is clunky, let alone generating aggregated reports. It won’t be. We have been running a prototype for our blockchain LLM interface in the ChatGPT plugin store for a couple of months, and it will soon be integrated into our existing products.</li></ul><p><strong>Comprehensive semantics unlock endless opportunities, just as Google showed with the web.</strong></p><p>What do we need for the new fax machine? We’re building proprietary techniques to leverage blockchain’s determinism and transparency for rigorous analysis of EVM bytecode and contracts. Combining static and dynamic analysis, symbolic execution, instrumentation, and simulation purpose-built for blockchains, we can provide a complete and rich understanding of accounts, contracts, and their rich relationships.</p><p>In April 2022, after months of R&amp;D and prototyping to validate our proposed approach, we started to execute our vision: our instrumented Ethereum Virtual Machine (iEVM) is a proprietary EVM client implementation geared towards simulating and instrumenting blockchains.</p><p>Our iEVM has capabilities that are not available through any other EVM client. It can run in a distributed manner across multiple machines, inject custom instrumentation contracts that have special access to other contracts and state and run custom transactions in a sandboxed environment, trigger simulations based on certain conditions/hooks, and emit data that is otherwise not emitted by a normal EVM client. It also executes <strong>orders of magnitude</strong> more transactions/blocks per second than the fastest EVM chain. This means we can run high-speed simulations and do additional off-chain computations in near-real time while keeping up with the chains as they progress. We’ve paired this with minimal latency and a powerful data-streaming engine so you can extract/emit data off the iEVM and its probes, transform it, and load it to your data stores, services, and applications.</p><p>A second area we’ve invested in is our static and dynamic analysis tools; these help us classify and test contracts, generate storage layouts, identify and track key storage variables, and much more.</p><p>To continue the Google Search analogy, you can think about what we’ve built as analogous to Google’s Web crawler, their simulation/headless browser rendering capabilities, and their compute infrastructure to process the data. While Google took a “black box” approach to understanding the internet, the internet at that time was mostly static. We’re working with dynamic programs. Our approach differs from other players in the space who have defaulted to indexing logs and events and relying on manual curation. This is similar to how now obsolete search engines indexed sitemaps, tags, and human-curated taxonomies and directories alone.</p><p>These capabilities will not only enable offerings for search, routing, and data products, but they’ll introduce a new paradigm where developers can pick and choose what to offload to off-chain computations, enabling them to ship more complex applications faster and cheaper. Consider the hybrid approach: a developer builds services that maintain critical state on-chain and interact seamlessly with other contracts. But they perform related computations that don’t require the security of decentralization cheaply in an iEVM simulation.</p><p>This could be as simple as near-costless off-chain logging: 880MM logs were emitted on Ethereum alone over the last year, accounting for ~4.4% of total gas cost and ~$75MM. Developers are already trying to reduce log emissions to cut costs, but this degrades observability in products that overly rely on logs. With our infra, developers have their cake and eat it too by having as much logging as they could want at a fraction of the cost, given that they don’t have to be emitted on every Ethereum node. Observability is so central to the value of public computing–we can’t coordinate actions without a shared understanding of both history and current state.</p><p>But off-chain logging is just the tip of the iceberg. Currently, developers build their smart contracts optimizing for cost, composability, and security, but not how they’d want to consume the data in their application and services, or for ease of third-party analysis and observability. Our solution addresses that, letting developers save time and resources and create products that would be otherwise cost-prohibitive! Developers can build out entire software backends on our iEVM instances, combining real-time and historical data from multiple blockchains and off-chain sources and running complex derivations and aggregations, all of it streaming at the tip. Parts of this platform are already live in production, powering evm.storage.</p><p>Our work also enables off-chain zero-knowledge (ZK) proofs that a certain state exists across a given set of contracts at a particular block. We expect these capabilities to be increasingly important as chains further integrate zero-knowledge techniques to increase privacy and efficiency.</p><p>We launched our first product, <a href="http://evm.codes/">evm.codes</a>, last year. It’s an interactive guide for EVM opcodes, and it’s established itself as one of the go-to resources for every EVM developer.</p><p>Our latest product, <a href="http://evm.storage/">evm.storage</a>, is a first step towards blockchain search and exploration. It’s also an early showcase of our unique infrastructure capabilities; no other product provides deep insight into contract storage. With evm.storage, we are able to decode and track every Solidity contract in real-time.</p><p>While we have operated mostly in stealth, we have expanded through word of mouth and have made headway in building products that target our initial personas: developers and blockchain prosumers, and the response has been overwhelmingly positive (<em>and no, we don’t have a token.</em>)</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*esG5IYreaP9y3Wb7" /><figcaption>Cluster of twitter mentions for evm.storage/codes</figcaption></figure><p>Today, between evm.codes and evm.storage, we see about ~15k monthly active users (MAUs). Electric Capital, a notable crypto VC, estimated in <a href="https://www.developerreport.com/">a recent report</a> that there were 21k monthly active developers<em> </em>in June 2023.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*nZ2FnAscsSK4z6Xo" /><figcaption>evm.storage + evm.codes</figcaption></figure><p>While we’re thrilled with the progress, we’re more excited about what’s to come. <strong>Today, we’re announcing two major improvements to evm.storage:</strong></p><ol><li><strong>We’re expanding our coverage to unverified Solidity contracts</strong>. Until now, the public’s ability to understand a contract’s state has been at the discretion of the developer. If they don’t submit their source code to a third party, off-chain provider, there’s not much that users can see. These also aren’t edge cases–many critical contracts used in high-volume trusted applications are unverified. In the public interest, we’re also open-sourcing (under AGPL license), a critical static analysis tool that we used to generate storage layouts for unverified contracts. (<a href="https://blog.smlxl.io/announcing-bytecode-generated-storage-layouts-on-evm-storage-96761758d397">read announcement</a>)</li><li><strong>We’re launching transaction pages</strong>. If it happened on-chain, we know about it, and we’re striving to present it in a way that’s rich, intuitive, and useful. We’ll be adding traces and an invocation flow in the near future.</li></ol><p>We will continue to expand evm.storage and introduce new products building upon the unique capabilities of our iEVM, streaming data platform, and program analysis tools.</p><p><strong>Our roadmap:</strong></p><ol><li><strong>We’ll extend evm.storage coverage to all primary blockchain entities </strong>(contracts, accounts, transactions, and blocks) <strong>across primary EVM chains and testnets.</strong></li><li><strong>We’ll enable users to interact with contracts</strong>, simulate transactions, and explore simulated traces.</li><li><strong>We’ll introduce (sic), our natural language interface to blockchains,</strong> enabling users to more easily explore, interact and engage with blockchains…</li><li><strong>Introduce our paid self-serve offerings, opening our infrastructure to developers, </strong>enabling them to leverage our iEVM, off-chain computation engine, program analysis suite, and blockchain data products.</li></ol><p>We couldn’t have done this alone. When we started this journey, we raised $13.4 million in seed funding from some incredible investors–a16z crypto, Greylock, and an amazing battery of angels–and we want to thank them for enabling us to spend the time and resources to build something we believe will be truly valuable.</p><p>We are always looking for people who are passionate about our mission and products. If you want to make public computers more transparent and useful, check out our <a href="https://smlxl.io/">site</a> (launched today!) or join our <a href="https://t.me/+zw0fuNoYg39hZWRh">TG group.</a></p><p>Dor &amp; the smlXL team</p><figure><img alt="smlXL — Making public computers more transparent, accessible, and useful" src="https://cdn-images-1.medium.com/max/1024/1*Qh9eE2EC4oltVdUzJJ8ZvQ.png" /><figcaption>Making public computers more transparent, accessible, and useful</figcaption></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=57bc163bd0b2" width="1" height="1" alt=""><hr><p><a href="https://blog.smlxl.io/making-public-computers-more-transparent-accessible-and-useful-57bc163bd0b2">Making public computers more transparent, accessible, and useful</a> was originally published in <a href="https://blog.smlxl.io/">smlXL</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Announcing bytecode-generated storage layouts on evm.storage]]></title>
            <link>https://blog.smlxl.io/announcing-bytecode-generated-storage-layouts-on-evm-storage-96761758d397?source=rss-94cbf98ca106------2</link>
            <guid isPermaLink="false">https://medium.com/p/96761758d397</guid>
            <category><![CDATA[evm]]></category>
            <category><![CDATA[program-analysis]]></category>
            <category><![CDATA[blockchain]]></category>
            <category><![CDATA[ethereum]]></category>
            <dc:creator><![CDATA[Dor]]></dc:creator>
            <pubDate>Tue, 24 Oct 2023 13:02:49 GMT</pubDate>
            <atom:updated>2023-10-24T15:52:33.322Z</atom:updated>
            <content:encoded><![CDATA[<p>We’re improving visibility into unverified contracts on <a href="https://evm.storage/">evm.storage</a> by representing them with storage layouts generated from contract bytecode. We’re also open-sourcing the code for our Storage Layout Extractor.</p><p>As a company, we aim to make public computers (blockchains) more transparent, useful, and accessible. You can’t understand a machine without understanding its moving parts. For Ethereum, these are its smart contracts.</p><p>We can’t fully understand what a contract <em>really</em> does without inspecting its state, i.e., its storage slot. With<a href="http://evm.storage/"> evm.storage</a> we’ve made strides in representing storage slots and their occupying variables for verified contracts. However, our understanding will never be complete if it’s limited to verified contracts. The industry has yet to solve the problem of examining and making accessible the state of unverified contracts.</p><p>While we’ve tracked over 59MM contract deployments on Ethereum, we’re only able to present ~5MM of these with verified source code-based layouts. Of those 5MM, we see only about 500K distinct code hashes. A tremendous amount of blockchain activity runs through unverified contracts.</p><p>Today, we are excited to announce that evm.storage now provides bytecode-generated layouts for unverified Solidity contracts. This allows anyone to view and track the storage of these previously opaque contracts.</p><p><a href="https://github.com/smlxl/storage-layout-extractor">We are also open-sourcing the code (under AGPL license) for a key component: our Storage Layout Extractor tool.</a> The tool symbolically executes a contract’s bytecode to infer its storage layout. While we’re early in the tool’s lifecycle, we are quite happy with the initial results. In preliminary benchmarks, we were able to compute layouts for more than 120k contracts in under 110ms on average. At times the resulting layouts are even more accurate than those generated by solc with source code! You can read more about this in our <a href="https://blog.smlxl.io/a-deep-dive-into-our-storage-layout-extractor-51554185d8af">technical deep dive</a>.</p><p>When users land on an unverified contract in evm.storage, they will be presented with the bytecode-generated layout of that contract. It will look and feel similar to the experience for verified contracts, only without variable labels–these can’t be inferred from bytecode, and while we’re creative souls, we figured we shouldn’t make them up! A good example is Opensea’s Openstore contract, which is unverified, you can see the generated layout and storage history for mappings/variables. Raw layouts are also still available.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fplayer.vimeo.com%2Fvideo%2F877310614%3Fapp_id%3D122963&amp;dntp=1&amp;display_name=Vimeo&amp;url=https%3A%2F%2Fvimeo.com%2F877310614&amp;image=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1742770709-bdfc79948f4377139e4d3dbea8eba66f914d4b1af6be200063133a6cfba6d743-d_1280&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=vimeo" width="1920" height="975" frameborder="0" scrolling="no"><a href="https://medium.com/media/93d0ef090c6c4a2cafcc2bc4fe4a0d7d/href">https://medium.com/media/93d0ef090c6c4a2cafcc2bc4fe4a0d7d/href</a></iframe><p>One evm.storage feature we love is the ability to see the historical state of slots, variables, mapping keys, etc. This is also now supported for unverified solidity contracts, but works a bit differently. You’ll be able to immediately browse a bytecode-generated layout <em>(unless we have a bug… and, if so, please report it!)</em>. But we’ll only add this contract to our storage history processing queue upon the first user visit. The data will be made available gradually as data for this contract starts streaming from our infrastructure. While the data is backfilling, you will see a banner at the top of the contract page. This “on-demand storage tracking” setup metrics helps us prioritize unverified contracts that our users are interested in (or<em> a ploy to make you visit our site twice, thereby further inflating our sky-high usage.)</em> <strong>We track all verified contracts by default.</strong></p><p><strong><em>The backstory and details</em></strong></p><p>Given our mission, we have to support unverified contracts. At the same time, we believe that a vast majority of our users are currently interested in interacting primarily with verified Solidity contracts. So, it both had to be done and was hard to prioritize. We feel similarly about Vyper/Huff/ASM, for what it’s worth (and we will get it done). Early on, we scoped out the work required to support unverified contracts, but it lingered in our backlog.</p><p>Having experience in writing analysis tools that depend on the contract’s bytecode rather than its source code, we initially proposed a static analysis-based solution, including (roughly):</p><ul><li>Generating a Control Flow Graph (CFG) from the contract’s bytecode.</li><li>Scanning the basic blocks for storage-related opcodes (SLOAD/SSTORE).</li><li>Tracing forward and backward from the storage operations to find out the subject storage slot and its data type.</li></ul><p>As time went by, it remained hard to justify taking on this work given the opportunity cost. We also anticipated this work would have a lot of “gotchas” and edge cases. So we started looking at ways we could tackle this while minimizing the impact on our top priorities. We kept our eyes open for the right people to take this on as a project, only to stumble upon Marcin and Ara from <a href="https://reilabs.io/">Reilabs</a>. They both had experience with compilers and VMs and were into crypto. It seemed like a great match, so we contacted Reilabs and discussed embedding Ara or Marcin in a small “tiger-team.” They were excited, and Ara had availability so we got to work, picking up from where we left off. After a few conversations with Ara, we decided that it would be beneficial to take an even more ambitious approach:</p><ul><li>Disassemble the contract’s bytecode to a stream of EVM instructions (opcodes).</li><li>Symbolically execute the above stream on a custom EVM implementation that explores all reachable execution paths, i.e., take both branches in a JUMPI instruction.</li><li>For each value observed throughout execution, have the VM build a symbolic value that represents the operations performed to that particular piece of “data.”</li><li>Pass these symbolic values (trees, really) through a type-inference process and finally build a storage layout from the results.</li></ul><p>While this approach might not be suitable for other architectures that make use of registers and execute huge programs, we were confident it would work fairly well for a special architecture like the EVM as it is a simple stack machine, and the smart contracts that it executes have a strict size limit due to the network rules.</p><p>To read more about our benchmarks and technical details, please check out our<strong> </strong><a href="https://blog.smlxl.io/a-deep-dive-into-our-storage-layout-extractor-51554185d8af">technical deep-dive post </a>and the <a href="https://github.com/smlxl/storage-layout-extractor">repo</a>, and please <a href="https://t.me/+zw0fuNoYg39hZWRh">join us in our TG grou</a>p if you have any questions.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Qh9eE2EC4oltVdUzJJ8ZvQ.png" /></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=96761758d397" width="1" height="1" alt=""><hr><p><a href="https://blog.smlxl.io/announcing-bytecode-generated-storage-layouts-on-evm-storage-96761758d397">Announcing bytecode-generated storage layouts on evm.storage</a> was originally published in <a href="https://blog.smlxl.io/">smlXL</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Introducing evm.storage — Increasing transparency and accessibility for EVM contracts]]></title>
            <link>https://blog.smlxl.io/introducing-evm-storage-c9fae8055286?source=rss-94cbf98ca106------2</link>
            <guid isPermaLink="false">https://medium.com/p/c9fae8055286</guid>
            <category><![CDATA[ethereum]]></category>
            <category><![CDATA[blockchain]]></category>
            <category><![CDATA[evm]]></category>
            <dc:creator><![CDATA[Dor]]></dc:creator>
            <pubDate>Thu, 08 Jun 2023 18:02:44 GMT</pubDate>
            <atom:updated>2023-10-18T00:32:17.038Z</atom:updated>
            <content:encoded><![CDATA[<p>We’re excited to announce <a href="http://evm.storage/">evm.storage</a>, our latest product aimed at increasing transparency into the EVM.</p><p>At smlXL, our mission is to make public computers more useful, accessible and transparent. We believe that blockchains are important infrastructure. As society’s reliance on computing grows, having computers and software that can be operated, maintained, run and accessed by the public is increasingly important.</p><p>Today we’re sharing <a href="http://evm.storage/">evm.storage</a>, our latest contribution to making the EVM and its data more transparent, starting at its foundation: storage. Though blockchains remain complex systems, evm.storage is our first step toward comprehensible public infrastructure. We have a full roadmap for evm.storage and it is the first of several upcoming products, all powered by our instrumented EVM (iEVM), simulation and program analysis suite.</p><p>We hope you explore evm.storage and provide feedback on how we can further advance our mission and what areas you’d like visibility into. Progress requires collaboration; join us! And if you have any project that does not seem possible/feasible by any other blockchain data provider or not feasible to do on-chain, please reach out to us. We might be able to help — we are starting to onboard select customers.</p><h3>About evm.storage</h3><p><a href="https://evm.storage/">evm.storage</a> is designed help you dive deep into the storage of any contract on the Ethereum blockchain:</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fplayer.vimeo.com%2Fvideo%2F834502746%3Fapp_id%3D122963&amp;dntp=1&amp;display_name=Vimeo&amp;url=https%3A%2F%2Fvimeo.com%2F834502746&amp;image=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1681400548-7331ff383971abd91f5b2a9cc3be0a6a568e8ee23f57f30c39a68567e3757892-d_1280&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=vimeo" width="1920" height="1050" frameborder="0" scrolling="no"><a href="https://medium.com/media/933d50a4d179fce1e61f4baaef44f76d/href">https://medium.com/media/933d50a4d179fce1e61f4baaef44f76d/href</a></iframe><ol><li>Explore contract storage and state at any block height.</li><li>View variables as they’re defined in the contract and values presented according to their type for verified contracts, with support for solc versions as low as 0.3.6.</li><li>Explore deep, complex storage structures like nested mappings, arrays, and structs.</li><li>Review the storage history for variables that occupy a single storage slot, and some others (e.g. entries in a mapping), For instance, you’ll be able to see all changes to your balance for a given token, including corresponding transaction hashes.</li></ol><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fplayer.vimeo.com%2Fvideo%2F834502762%3Fapp_id%3D122963&amp;dntp=1&amp;display_name=Vimeo&amp;url=https%3A%2F%2Fvimeo.com%2F834502762&amp;image=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1681400449-8437e671a6bba634317406e820aa47671e5e42a44b546125ca0931de49ef500a-d_1280&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=vimeo" width="1920" height="990" frameborder="0" scrolling="no"><a href="https://medium.com/media/8b3a35387252f53a0889d768d7368aea/href">https://medium.com/media/8b3a35387252f53a0889d768d7368aea/href</a></iframe><p>Our Alpha release has some caveats:</p><ol><li><strong>Limited functionality for unverified contracts</strong>: The tool currently works best for verified contracts. For unverified contracts, we offer a raw presentation treating each slot as a variable. For now this includes unverified contracts even when their bytecode matches a verified contract, as well as those deployed by a verified factory.</li><li><strong>Limited support for contracts with Yul/inline assembly:</strong> At present, storage slots that are accessed exclusively via inline assembly will not be included in our storage map/table. This will be fixed shortly.</li><li><strong>Lots of moving parts: </strong>We will update things regularly and favor velocity of iteration over reliability. We’re still treating it as an alpha. We are also currently running on our staging machines, as we await our servers in our new DC.</li></ol><p>We invite you to report bugs and offer other feedback via our bug report feature, or by <a href="https://t.me/+zw0fuNoYg39hZWRh">joining our Telegram group</a>. We’re also planning to open-source the frontend so that users can contribute directly.</p><h3>Our Roadmap</h3><p>We are actively working on these features for evm.storage:</p><ol><li><strong>Storage layouts for unverified contracts</strong>: We are currently showing raw storage slots for unverified contracts. We’re working on enriching coverage through both static and dynamic analysis.</li><li><strong>Transaction tracer and view: </strong>Transaction view and detailed transaction traces, including rich information around SHA3/storage operations</li><li><strong>Richer information on contracts:</strong> We’re planning to enhance the contract summary with richer information that’s stored on-chain like balance, ABI, constants/immutables, and more.</li><li><strong>Contract interaction and transaction simulation</strong>: We want to empower users to interact with contracts and simulate transactions.</li><li><strong>Other EVM chains</strong>: Avalanche is next in line with Arbitrum currently planned after.</li><li><strong>Filtering, sorting and search: </strong>We’ll augment the experience with features that you’re excited about, such as search/sort/filter features for tables.</li></ol><p><strong><em>Shoutouts:</em></strong></p><p>We would like to thank Yoav Weiss, Dan Boneh, Arjun Rao, Kevin Britz, Cece Z., Patricio Palladino, Sam Ragsdale and maurelian.eth for their early impressions and feedback.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*QSgcILS_8pbs81BnkR-0fQ.png" /></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=c9fae8055286" width="1" height="1" alt=""><hr><p><a href="https://blog.smlxl.io/introducing-evm-storage-c9fae8055286">Introducing evm.storage — Increasing transparency and accessibility for EVM contracts</a> was originally published in <a href="https://blog.smlxl.io/">smlXL</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[smlXL?!?]]></title>
            <link>https://blog.smlxl.io/smlxl-cc5f44d783a4?source=rss-94cbf98ca106------2</link>
            <guid isPermaLink="false">https://medium.com/p/cc5f44d783a4</guid>
            <category><![CDATA[naming]]></category>
            <category><![CDATA[startup-lessons]]></category>
            <category><![CDATA[startup]]></category>
            <category><![CDATA[branding]]></category>
            <dc:creator><![CDATA[Dor]]></dc:creator>
            <pubDate>Thu, 09 Mar 2023 20:38:58 GMT</pubDate>
            <atom:updated>2023-10-20T14:58:58.498Z</atom:updated>
            <content:encoded><![CDATA[<p>I get asked about our name almost as often as I get asked about what we do, so while I am not going to address that just yet, I did want to shed some light on our name and save you the confusion <em>(or add to it, depending on your personality). </em>I initially decided on Comity Labs as our working name because the meaning resonated with ideas I had about Blockchains <em>(and we wouldn’t be a Crypto startup if we didn’t have “Labs” in our name at the time):</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*oKJHb_2UTi3FgIKp" /></figure><p>If you know me or worked with me, you probably heard me say that I am notoriously bad at naming. It is one of my least fav things, and I mostly opt for functional names, so I did what our team normally does when we face a hard problem, search for the experts in their fields and learn from them. We sought the help of renowned naming experts, and these experts came up with a bunch of great names, evaluation criteria, and goals, which led us to our three main naming goals: our name had to be memorable, it had to be engaging, and it had to be easy to find (<em>there are other considerations like trademarks, domains etc…</em>).</p><p>Ultimately, the names proposed didn’t feel like “us”, they felt very fungible. Coincidentally, as I was trying to make the call between keeping the name Comity Labs or going with a new name, this old <a href="https://www.amazon.com/S-M-XL-Rem-Koolhaas/dp/1885254865/ref=asc_df_1885254865/?tag=hyprod-20&amp;linkCode=df0&amp;hvadid=312166025508&amp;hvpos=&amp;hvnetw=g&amp;hvrand=5333952493814452897&amp;hvpone=&amp;hvptwo=&amp;hvqmt=&amp;hvdev=c&amp;hvdvcmdl=&amp;hvlocint=&amp;hvlocphy=9067609&amp;hvtargid=pla-434114776791&amp;psc=1">architecture book</a> popped up.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/360/0*3mugzWC6VKm1f9gk.jpeg" /></figure><p>Eighteen years ago, my roommate had this massive and distinct book at home. After checking it out, despite it NOT being an easy read at all, this book inspired me to read other more “digestible” architecture publications. These publications ranged from topics like public spaces and how people use them, how to think about materials, how to finish and use the properties of the material to your benefit instead of fighting against it, and the differences between a place and a space — topics that I am still interested in to this day. So, after discussing it with the team, and the agency (they ended up loving the name too), smlXL was born. <strong>Pronounced:</strong> /s-m-l-x-l/ OR /small-X-L/ OR however you’d like to like to.</p><p>Some reasons we like it:</p><ul><li>It is far more playful and exciting compared to a “typical startup name” that an agency would come up with; it is important to have something memorable/curious.</li><li>We find the “conflict” between small&lt;&gt;XL fun</li><li>I lived in Germany for several years and always found it cute when you say something is “BIG-small” for very small.</li><li>As an early-stage startup, we wanted a name that gives us space to explore and is not too suggestive of one product or space, we see this name as our company name, not our product name.</li><li>We are starting small but have big aspirations</li><li>We know we wanted to build different products that work across lifecycles and various types of customers.</li><li>The “sizes” (s,m,l,XL) are a “collection” we are a group of people working on data/compute running on a collection of nodes/different people.</li><li>We are opinionated about our products and solutions, but we still want you to make it your own, so choose your own “fit”</li><li>We find it unique, ambiguous, and fun, and we hope you do too!</li></ul><p>So yeah, this is everything you might ever want to know about our name, if you ever need a name for your startup, we might have a few unused professionally sourced names for you. :)</p><p>Dor</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*HrIi9UqG_hRCYYlTmsGjzA.png" /></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=cc5f44d783a4" width="1" height="1" alt=""><hr><p><a href="https://blog.smlxl.io/smlxl-cc5f44d783a4">smlXL?!?</a> was originally published in <a href="https://blog.smlxl.io/">smlXL</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Welcome to Our Blog]]></title>
            <link>https://blog.smlxl.io/welcome-to-our-blog-72023896dadd?source=rss-94cbf98ca106------2</link>
            <guid isPermaLink="false">https://medium.com/p/72023896dadd</guid>
            <category><![CDATA[evm]]></category>
            <category><![CDATA[startup]]></category>
            <category><![CDATA[ethereum]]></category>
            <category><![CDATA[blockchain]]></category>
            <category><![CDATA[computer-science]]></category>
            <dc:creator><![CDATA[Dor]]></dc:creator>
            <pubDate>Mon, 28 Nov 2022 23:52:53 GMT</pubDate>
            <atom:updated>2022-11-28T23:52:53.474Z</atom:updated>
            <content:encoded><![CDATA[<p><em>Hello from all of us at smlXL (pronounced /s-m-l-x-l/ OR /small-XL/).</em></p><p>We know there isn’t much online about us — we plan on changing that soon. We are happy to share some of the beliefs that inspire our work. We believe that computing is key to our lives. This is both hard to refute and increasingly true with each day. Having computers and software that are operated by the public and in the public right of way is incredibly and increasingly important.</p><p>However you may feel about the early implementations and applications of blockchains, blockchains are critical to enabling public computers.</p><p>The features of blockchains that allow them to operate as public computers also make them complex distributed systems, which are notoriously hard to make transparent, operate, and understand. As usual, you can’t have your cake and eat it too.</p><p>So, where do we come in? We are out to make public computers and blockchains more useful, accessible, and transparent. We’ve started by documenting and creating resources specific to EVM opcodes with <a href="http://www.evm.codes/">evm.codes</a> and plan to use this blog to share some of our research, learnings, and core technologies behind our products. We are kicking off this blog with four posts: <a href="https://blog.smlxl.io/how-does-ethereum-manage-data-3ee85263134b"><em>How Does</em> <em>Ethereum Manage Data</em></a>,<em> </em><a href="https://blog.smlxl.io/transactions-on-ethereum-5608c94f2f45"><em>Transactions on Ethereum</em></a>,<em> </em><a href="https://blog.smlxl.io/evm-contract-construction-93c98cc4ca96"><em>EVM Contracts Construction</em></a>,<em> </em>and<em> </em><a href="https://blog.smlxl.io/meta-transactions-28047138ef6d"><em>Meta-Transactions</em></a>.</p><p>Enjoy, and stay tuned for more!</p><p>All of us @ smlXL</p><p>P.S We are <a href="https://jobs.ashbyhq.com/smlxl?utm_source=blog">hiring</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=72023896dadd" width="1" height="1" alt=""><hr><p><a href="https://blog.smlxl.io/welcome-to-our-blog-72023896dadd">Welcome to Our Blog</a> was originally published in <a href="https://blog.smlxl.io/">smlXL</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
    </channel>
</rss>