{"id":7523,"date":"2025-01-19T15:12:39","date_gmt":"2025-01-19T14:12:39","guid":{"rendered":"https:\/\/wsj-crypto.com\/?p=7523"},"modified":"2025-01-19T15:12:39","modified_gmt":"2025-01-19T14:12:39","slug":"unveiling-the-witness-specification-your-essential-guide-to-the-1-x-files","status":"publish","type":"post","link":"https:\/\/wsj-crypto.com\/index.php\/2025\/01\/19\/unveiling-the-witness-specification-your-essential-guide-to-the-1-x-files\/","title":{"rendered":"Unveiling the Witness Specification: Your Essential Guide to the 1.x Files"},"content":{"rendered":"<p> &#8220;`html<br \/>\n<\/p>\n<div id=\"\">\n<p class=\"chakra-text css-gi02ar\">Given that many of us have a bit more available time, I believed this would be an excellent chance to engage with a subject that may be somewhat dull and laborious, yet remains quite essential to the Stateless Ethereum initiative: grasping the formal Witness Specification.<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">Like the commander of the Battleship in StarCraft, we will adopt a steady pace. The witness specification is not a particularly <!-- --><strong>intricate<!-- --><\/strong> concept, but it is indeed very <!-- --><strong>profound<!-- --><\/strong>. That profundity can be slightly intimidating, yet it is certainly worthwhile to delve into, as it will yield insights that, perhaps to your enthusiastic delight, stretch well beyond the sphere of blockchains, or even the realm of software!<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">By the conclusion of this introductory guide, you should possess at least a foundational confidence in your capability to comprehend what the formal Stateless Ethereum <!-- --><a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-ug8vf0\" href=\"https:\/\/github.com\/ethereum\/stateless-ethereum-specs\/blob\/master\/witness.md\">Witness Specification<!-- --><\/a> entails. I will also aim to make it a bit more <!-- --><em class=\"chakra-text css-0\">entertaining<!-- --><\/em>.<!-- --><\/p>\n<p><!-- --><\/p>\n<h2 class=\"chakra-heading css-1w54o5f\" id=\"recap-what-you-need-to-know-about-state\">Recap: What you must understand about State<!-- --><\/h2>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">Stateless Ethereum is, of course, somewhat of a mischaracterization, as the state is genuinely at the core of this entire endeavor. Specifically, the aim is to discover a way to make retaining a copy of the entire Ethereum state an <!-- --><strong>optional<!-- --><\/strong> requirement. If you haven&#8217;t been keeping up with this series, it might be worth checking out <!-- --><a class=\"chakra-link css-ug8vf0\" href=\"https:\/\/blog.ethereum.org\/2019\/12\/30\/eth1x-files-state-of-stateless-ethereum\">my previous primer<!-- --><\/a> on the status of stateless Ethereum. I\u2019ll provide a brief TL;DR here, though. Feel free to skim if you reckon you&#8217;ve already grasped this topic quite well.<!-- --><\/p>\n<p><!-- --><\/p>\n<blockquote class=\"chakra-code css-1cl98my\"><p>\n<!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">The complete \u2018state\u2019 of Ethereum encapsulates the current condition of all accounts and balances, along with the collective memories of all smart contracts that have been deployed and are operational within the EVM. Each finalized block in the chain possesses one and only one state, which is unanimously acknowledged by all participants within the network. That state is modified and updated with each new block that is incorporated into the chain.<!-- --><\/p>\n<p><!-- --><\/p><\/blockquote>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">The Ethereum State is represented <!-- --><em class=\"chakra-text css-0\">in silico<!-- --><\/em> as a <!-- --><strong>Merkle-Patricia Trie<!-- --><\/strong>: a hashed data structure that arranges each singular piece of information (e.g., an account balance) into one extensive interconnected unit that can be verified for uniqueness. The complete state trie is too gargantuan to visualize, but here&#8217;s a &#8216;toy model&#8217; that will be useful when we address witnesses:<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">Like enchanting cryptographic caterpillars, the accounts and code of smart contracts reside in the leaves and branches of this tree, which through successive hashing ultimately results in a single <!-- --><strong>root hash<!-- --><\/strong>. If you wish to ascertain that two copies of a state trie are identical, you can merely compare the root hashes. Sustaining relatively secure and indisputable consensus over one &#8216;canonical&#8217; state is the essence of what a blockchain is crafted to achieve.<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">To submit a transaction for inclusion in the next block, or to verify that a specific modification is coherent with the last incorporated block, Ethereum nodes must maintain a thorough copy of the state and repeatedly re-compute the root hash. Stateless Ethereum introduces a series of alterations that will eliminate this necessity by introducing what is known as a &#8216;witness&#8217;.<!-- --><\/p>\n<p><!-- --><\/p>\n<h2 class=\"chakra-heading css-1w54o5f\" id=\"a-witness-sketch\">A Witness Overview<!-- --><\/h2>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">Before we delve into the witness specification, it will be beneficial to have an intuitive grasp of what a witness signifies. Again, a more comprehensive explanation can be found in the post regarding the Ethereum state linked above.<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">A witness is akin to a cheat sheet for an unaware (stateless) student (client). It comprises merely the essential information needed to clear the exam (submit a valid state change for inclusion in the subsequent block). Instead of poring over the entire textbook (maintaining a copy of the current state), the uninformed student (stateless client) requests a friend (full node) for a crib sheet to submit their responses.<!-- --><\/p>\n<p><!-- --><\/p>\n<blockquote class=\"chakra-code css-1cl98my\"><p>\n<!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">In very abstract terms, a witness provides all of the necessary hashes within a state trie, coupled with certain \u2018structural\u2019 information regarding the location of those hashes in the trie. This allows an \u2018unaware\u2019 node to incorporate new transactions into its state and to compute a new root hash locally \u2013 without necessitating them to download an entire copy of the state trie.<!-- --><\/p>\n<p><!-- --><\/p><\/blockquote>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">Let\u2019s transition from the cartoonish notion to a more tangible illustration. Here is a &#8220;real&#8221; depiction of a witness:<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\"><img decoding=\"async\" alt=\"witness-hex\" src=\"https:\/\/raw.githubusercontent.com\/ledgerwatch\/ledgerwatch.github.io\/master\/state_hex_5790928.dot.png\" class=\"chakra-image css-hw6q2r\"\/><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">I suggest opening this image in a new tab to allow you to zoom in and truly appreciate it. This witness was chosen due to its relatively small size and ease of feature identification. Each tiny square in this image denotes a single &#8216;nibble&#8217;, or half of a byte, and you can confirm that yourself by counting the number of squares you traverse, starting from the root and arriving at an Ether balance (you should count 64). While we examine this image, note the substantial segment of code within one of the transactions that must be included for a contract call &#8212; code constitutes a considerably large portion of the witness, and could be diminished by code merkleization (which we\u2019ll investigate on another occasion).<!-- --><\/p>\n<p><!-- --><\/p>\n<h2 class=\"chakra-heading css-1w54o5f\" id=\"some-formalities\">Some Formalities<!-- --><\/h2>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">One of the fundamental unique characteristics of Ethereum as a protocol is its <!-- --><em class=\"chakra-text css-0\">autonomy<!-- --><\/em> from any particular implementation. This is why, rather than having just one <!-- --><em class=\"chakra-text css-0\">official<!-- --><\/em> client as seen in Bitcoin, Ethereum comprises several entirely distinct versions of clients. These clients, crafted in various programming languages, must comply with <!-- --><a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-ug8vf0\" href=\"https:\/\/ethereum.github.io\/yellowpaper\/paper.pdf\">The Ethereum Yellow Paper<!-- --><\/a>, which elucidates in much more formal terms how <!-- --><em class=\"chakra-text css-0\">any<!-- --><\/em> client should function to partake in the Ethereum protocol. This ensures that a developer creating a client for Ethereum does not encounter any ambiguity within the system.<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">The Witness Specification aims to fulfill this exact purpose: to offer an <!-- --><strong>unequivocal<!-- --><\/strong> description of what a witness is, which will facilitate its implementation across any language, for all clients. If and when Stateless Ethereum gains traction, the witness specification&#8230;<br \/>\n&#8220;`can be incorporated into the Yellow Paper as an annex.<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">When we utilize the term <!-- --><strong>unambiguous<!-- --><\/strong> in this instance, it signifies something more robust than what you might mean in everyday language. It&#8217;s not merely that the formal specification is just a highly detailed account of what a witness is and how it functions. It implies that, ideally, there exists <!-- --><strong>precisely one way<!-- --><\/strong> to describe a specific witness. In other words, if you conform to the formal specification, it would be <!-- --><strong>unfeasible<!-- --><\/strong> for you to create an implementation for Stateless Ethereum that produces witnesses distinct from any other implementation also adhering to the stipulations. This is crucial, because the witness is intended to (optimistically) evolve into a new foundation of the Ethereum protocol; it must be valid inherently.<!-- --><\/p>\n<p><!-- --><\/p>\n<h2 class=\"chakra-heading css-1w54o5f\" id=\"a-matter-of-semantics-and-syntax\">A Question of Semantics (and Syntax)<!-- --><\/h2>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">While &#8216;blockchain development&#8217; often connotes something fresh and exhilarating, it should be noted that a significant portion is rooted in much older and wiser disciplines of computing, cryptography, and formal reasoning. This truly manifests in the Witness Specification! To comprehend its functionality, we must be comfortable with some of the technical jargon, and to achieve that, we will need to make a brief diversion into linguistics and formal language theories.<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">Recite the following two sentences aloud, paying special attention to your intonation and rhythm:<!-- --><\/p>\n<p><!-- --><\/p>\n<ul role=\"list\" class=\"css-1onhfjo\">\n<li class=\"css-cvpopp\"><em class=\"chakra-text css-0\">furiously sleep ideas green colorless<!-- --><\/em><\/li>\n<li class=\"css-cvpopp\"><em class=\"chakra-text css-0\">colorless green ideas sleep furiously<!-- --><\/em><\/li>\n<\/ul>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">I wager the first sentence came out feeling somewhat mechanical, with flat emphasis and a pause after each term. In contrast, the second sentence likely felt more natural, albeit somewhat whimsical. Even though it didn&#8217;t truly <!-- --><em class=\"chakra-text css-0\">convey any meaning<!-- --><\/em>, the second sentence <!-- --><em class=\"chakra-text css-0\">made sense<!-- --><\/em> in a manner that the first did not. This serves as an intuition pump to focus on the contrast between <!-- --><strong>Syntax<!-- --><\/strong> and <!-- --><strong>Semantics<!-- --><\/strong>. If you&#8217;re a speaker of English, you have an understanding of what the words <!-- --><em class=\"chakra-text css-0\">denote<!-- --><\/em> (their semantic content), but that was largely irrelevant here; what you noticed was a difference between legitimate and illegitimate grammar (their syntax).<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">This illustrative sentence originates from <!-- --><a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-ug8vf0\" href=\"https:\/\/chomsky.info\/wp-content\/uploads\/195609-.pdf\">a 1956 paper<!-- --><\/a> by Noam Chomsky, a name you may recognize. Although he is currently known as a significant political and social theorist, Chomsky&#8217;s initial contributions as a scholar were in the realm of logic and linguistics, and within this document, he established one of the most beneficial classification systems for formal languages.<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">Chomsky focused on the mathematical depiction of grammar, how languages can be categorized based on their grammatical rules, and what traits those categories possess. One such trait pertinent to us is <!-- --><em class=\"chakra-text css-0\">syntactic ambiguity<!-- --><\/em>.<!-- --><\/p>\n<p><!-- --><\/p>\n<h2 class=\"chakra-heading css-1w54o5f\" id=\"ambiguous-buffalo\">Ambiguous Buffalo<!-- --><\/h2>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">Consider the grammatically accurate sentence &#8220;<!-- --><em class=\"chakra-text css-0\">Buffalo buffalo Buffalo buffalo buffalo buffalo Buffalo buffalo.<!-- --><\/em>&#8221; &#8212; this classic example showcases just how ambiguous English syntax rules can be. If you understand that, depending on the scenario, the term &#8216;buffalo&#8217; can function as a verb (to intimidate), an adjective (from Buffalo, NY), or a noun (a bison), you can interpret the sentence based on the contextual placement of each word.<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">We could also rephrase entirely using different terms and distinct sentences: &#8220;Are you familiar with those NY bison that the other NY bison intimidate? Well, they intimidate, also. To be precise, they intimidate NY bison.&#8221;<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">But if we wish to eliminate the ambiguity while still confining our terminology to just &#8216;buffalo&#8217;, and maintain it as a single sentence? It is feasible, yet we need to slightly adjust the rules of English. Our new &#8220;language&#8221; will be more precise. One approach to accomplish that is to mark each word to clarify its part of speech, like this:<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\"><span class=\"chakra-text css-ons8vw\">Buffalo{pn} buffalo{n} Buffalo{pn} buffalo{n} buffalo{v} buffalo{v} Buffalo{pn} buffalo{n}<\/span><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">Perhaps that is still not entirely clear for the reader. To enhance clarity, let\u2019s utilize a bit of <!-- --><em class=\"chakra-text css-0\">substitution<!-- --><\/em> to help us group some of these &#8220;buffalo&#8221; together. Any bison from Buffalo, NY is fundamentally just one specific instance of what we could define as a &#8220;noun phrase&#8221;, or <!-- --><span class=\"chakra-text css-ons8vw\"><np\/><\/span>. We can substitute <!-- --><span class=\"chakra-text css-ons8vw\"><np\/><\/span> into the sentence whenever we encounter the string <!-- --><span class=\"chakra-text css-ons8vw\">Buffalo{pn} buffalo{n}<\/span>. Since we\u2019re aiming for a more formal approach, we might opt to use a shorthand notation for this and other forthcoming substitution rules, by stating:<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\"><span class=\"chakra-text css-ons8vw\"><np> ::= Buffalo{pn} buffalo{n}<\/np><\/span><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">where <!-- --><span class=\"chakra-text css-ons8vw\">::=<\/span> signifies &#8220;What is on the left side can be replaced by what is on the right side&#8221;. Significantly, we don\u2019t want this relationship to be reversible; imagine how frustrated the Boulder buffalo would become!<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">Implementing our substitution rule to the complete sentence, it would transform to:<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\"><span class=\"chakra-text css-ons8vw\"><np> <np> buffalo{v} buffalo{v} <np\/><\/np><\/np><\/span><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">Now, this remains somewhat perplexing, because in this sentence there lurks a clever relative clause, which becomes much clearer by inserting the word &#8216;that&#8217; into the first portion of our sentence, i.e. <!-- --><span class=\"chakra-text css-ons8vw\"><np> *that* <np> buffalo{v}&#8230;<\/np><\/np><\/span>.<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">Therefore, let us create a substitution rule that consolidates the relative clause into <!-- --><span class=\"chakra-text css-ons8vw\"><rc\/><\/span>, and assert:<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\"><span class=\"chakra-text css-ons8vw\"><rc> ::= <np> buffalo{v}<\/np><\/rc><\/span><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">Moreover, since a relative clause merely provides further clarification about a noun phrase, the two combined are equivalent to just another noun phrase:<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\"><span class=\"chakra-text css-ons8vw\"><np> ::= <np><rc\/><\/np><\/np><\/span><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">With these rules defined and applied, we can articulate the sentence as:<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\"><span class=\"chakra-text css-ons8vw\"><np> buffalo{v} <np\/><\/np><\/span><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">That appears quite impressive, and really gets at the central connection this amusing statement conveys: One specific group of bison frightening another group of bison.<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">We&#8217;ve progressed this far, so why not go all the way? Whenever &#8216;buffalo&#8217; as a verb comes before a noun, we could designate that as a verb phrase, or <!-- --><span class=\"chakra-text css-ons8vw\"><vp\/><\/span>, and establish a rule:<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\"><span class=\"chakra-text css-ons8vw\"><vp> ::= buffalo{v}<np\/><\/vp><\/span><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">And with this, we have our single complete valid statement, which we could refer to as <!-- --><span class=\"chakra-text css-ons8vw\">S<\/span>:<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\"><span class=\"chakra-text css-ons8vw\">S ::= <np><vp\/><\/np><\/span><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">What we&#8217;ve accomplished here might be better depicted visually:<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\"><img decoding=\"async\" alt=\"buffalo\" src=\"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/2\/2c\/Buffalo_sentence_1_parse_tree.svg\/2880px-Buffalo_sentence_1_parse_tree.svg.png\" class=\"chakra-image css-hw6q2r\"\/><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">That structure looks intriguingly familiar, doesn&#8217;t it?<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">The buffalo illustration is a bit absurd and not particularly rigorous, but it&#8217;s close enough to illustrate what&#8217;s happening with the strange mathematical language of the Witness Specification, which I have quite slyly brought up in my discourse about buffalo. It&#8217;s referred to as <!-- --><a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-ug8vf0\" href=\"https:\/\/en.wikipedia.org\/wiki\/Backus%E2%80%93Naur_form\">Backus-Naur form<!-- --><\/a> notation, and it&#8217;s frequently utilized in formal specifications like this, across a range of real-world situations.<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">The &#8216;substitution guidelines&#8217; we established for our restricted English language facilitated ensuring that, given a herd of &#8220;buffalo&#8221;, we could formulate a &#8216;valid&#8217; sentence without needing to know anything <!-- --><em class=\"chakra-text css-0\">about the meaning of the word buffalo in reality<!-- --><\/em>. In the classification first clarified by Chomsky, a language that has sufficiently precise rules of grammar that allow you to achieve this is termed a <!-- --><em class=\"chakra-text css-0\">context-free<!-- --><\/em> language.<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">More critically, the guidelines guarantee that for every <!-- --><em class=\"chakra-text css-0\">possible<!-- --><\/em> sentence made up of the word(s) <!-- --><span class=\"chakra-text css-ons8vw\">buffalon<\/span>, there exists one and only one method to construct the data structure shown in the tree diagram above. Clarity FTW!<!-- --><\/p>\n<p><!-- --><\/p>\n<h2 class=\"chakra-heading css-1w54o5f\" id=\"go-forth-and-read-the-spec\">Proceed and Explore the Spec<!-- --><\/h2>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">Witnesses are fundamentally just a single extensive object, encoded into a byte array. From the (anthropomorphic) viewpoint of a stateless client, that array of bytes might resemble a lengthy sentence composed of very similar looking words. As long as all clients adhere to the same set of rules, the byte array should translate into one and only one hashed data structure, regardless of how the implementation decides to represent it in memory or on disk.<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">The production rules, detailed in section 3.2, are somewhat more intricate and significantly less instinctive than those we utilized for our toy example, but the essence remains very much the same: To be <!-- --><strong>unambiguous<!-- --><\/strong> directives for a stateless client (or a developer crafting a client) to follow and be <!-- --><em class=\"chakra-text css-0\">confident<!-- --><\/em> that they&#8217;re getting it correct.<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">I&#8217;ve skimmed over quite a bit within this discussion, and the rabbit hole of formal languages extends much deeper, to be sure. My intent here was simply to provide enough of an introduction and foundation to overcome that initial hurdle of comprehension. Now that you&#8217;ve surmounted that challenge, it&#8217;s time to open Wikipedia and tackle the rest on your own!<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">As always, if you have feedback, inquiries, or topic requests, please @gichiba or @JHancock on Twitter.<!-- --><\/p>\n<\/div>\n<p><br \/>\n<br \/><a href=\"https:\/\/blog.ethereum.org\/en\/2020\/05\/04\/eth1x-witness-primer\">Source link <\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8220;`html Given that many of us have a bit more available time, I believed this would be an excellent chance to engage with a subject that may be somewhat dull and laborious, yet remains quite essential to the Stateless Ethereum initiative: grasping the formal Witness Specification. Like the commander of the Battleship in StarCraft, we<\/p>\n","protected":false},"author":3,"featured_media":7163,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23],"tags":[923],"class_list":["post-7523","post","type-post","status-publish","format-standard","has-post-thumbnail","category-ethereum","tag-return-a-list-of-comma-separated-tags-from-this-title-the-1-x-files-a-primer-for-the-witness-specification"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Unveiling the Witness Specification: Your Essential Guide to the 1.x Files - WSJ-Crypto<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/wsj-crypto.com\/index.php\/2025\/01\/19\/unveiling-the-witness-specification-your-essential-guide-to-the-1-x-files\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Unveiling the Witness Specification: Your Essential Guide to the 1.x Files - WSJ-Crypto\" \/>\n<meta property=\"og:description\" content=\"&#8220;`html Given that many of us have a bit more available time, I believed this would be an excellent chance to engage with a subject that may be somewhat dull and laborious, yet remains quite essential to the Stateless Ethereum initiative: grasping the formal Witness Specification. Like the commander of the Battleship in StarCraft, we\" \/>\n<meta property=\"og:url\" content=\"https:\/\/wsj-crypto.com\/index.php\/2025\/01\/19\/unveiling-the-witness-specification-your-essential-guide-to-the-1-x-files\/\" \/>\n<meta property=\"og:site_name\" content=\"WSJ-Crypto\" \/>\n<meta property=\"article:published_time\" content=\"2025-01-19T14:12:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/wsj-crypto.com\/wp-content\/uploads\/2025\/01\/the1xfiles-black.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1400\" \/>\n\t<meta property=\"og:image:height\" content=\"550\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"wsjcrypto\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"wsjcrypto\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/wsj-crypto.com\/index.php\/2025\/01\/19\/unveiling-the-witness-specification-your-essential-guide-to-the-1-x-files\/\",\"url\":\"https:\/\/wsj-crypto.com\/index.php\/2025\/01\/19\/unveiling-the-witness-specification-your-essential-guide-to-the-1-x-files\/\",\"name\":\"Unveiling the Witness Specification: Your Essential Guide to the 1.x Files - WSJ-Crypto\",\"isPartOf\":{\"@id\":\"https:\/\/wsj-crypto.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/wsj-crypto.com\/index.php\/2025\/01\/19\/unveiling-the-witness-specification-your-essential-guide-to-the-1-x-files\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/wsj-crypto.com\/index.php\/2025\/01\/19\/unveiling-the-witness-specification-your-essential-guide-to-the-1-x-files\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/wsj-crypto.com\/wp-content\/uploads\/2025\/01\/the1xfiles-black.png\",\"datePublished\":\"2025-01-19T14:12:39+00:00\",\"author\":{\"@id\":\"https:\/\/wsj-crypto.com\/#\/schema\/person\/88a93723b30416db1a352d5a0096c4a7\"},\"breadcrumb\":{\"@id\":\"https:\/\/wsj-crypto.com\/index.php\/2025\/01\/19\/unveiling-the-witness-specification-your-essential-guide-to-the-1-x-files\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/wsj-crypto.com\/index.php\/2025\/01\/19\/unveiling-the-witness-specification-your-essential-guide-to-the-1-x-files\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/wsj-crypto.com\/index.php\/2025\/01\/19\/unveiling-the-witness-specification-your-essential-guide-to-the-1-x-files\/#primaryimage\",\"url\":\"https:\/\/wsj-crypto.com\/wp-content\/uploads\/2025\/01\/the1xfiles-black.png\",\"contentUrl\":\"https:\/\/wsj-crypto.com\/wp-content\/uploads\/2025\/01\/the1xfiles-black.png\",\"width\":1400,\"height\":550},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/wsj-crypto.com\/index.php\/2025\/01\/19\/unveiling-the-witness-specification-your-essential-guide-to-the-1-x-files\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/wsj-crypto.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Unveiling the Witness Specification: Your Essential Guide to the 1.x Files\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/wsj-crypto.com\/#website\",\"url\":\"https:\/\/wsj-crypto.com\/\",\"name\":\"WSJ-Crypto\",\"description\":\"Just Another Crypto News Website\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/wsj-crypto.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/wsj-crypto.com\/#\/schema\/person\/88a93723b30416db1a352d5a0096c4a7\",\"name\":\"wsjcrypto\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/wsj-crypto.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/86fe8af82ea089646d6639ca2f87e0243d8688d957bd8e3ec22ec3c457cc16d4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/86fe8af82ea089646d6639ca2f87e0243d8688d957bd8e3ec22ec3c457cc16d4?s=96&d=mm&r=g\",\"caption\":\"wsjcrypto\"},\"url\":\"https:\/\/wsj-crypto.com\/index.php\/author\/wsjcrypto\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Unveiling the Witness Specification: Your Essential Guide to the 1.x Files - WSJ-Crypto","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/wsj-crypto.com\/index.php\/2025\/01\/19\/unveiling-the-witness-specification-your-essential-guide-to-the-1-x-files\/","og_locale":"it_IT","og_type":"article","og_title":"Unveiling the Witness Specification: Your Essential Guide to the 1.x Files - WSJ-Crypto","og_description":"&#8220;`html Given that many of us have a bit more available time, I believed this would be an excellent chance to engage with a subject that may be somewhat dull and laborious, yet remains quite essential to the Stateless Ethereum initiative: grasping the formal Witness Specification. Like the commander of the Battleship in StarCraft, we","og_url":"https:\/\/wsj-crypto.com\/index.php\/2025\/01\/19\/unveiling-the-witness-specification-your-essential-guide-to-the-1-x-files\/","og_site_name":"WSJ-Crypto","article_published_time":"2025-01-19T14:12:39+00:00","og_image":[{"width":1400,"height":550,"url":"https:\/\/wsj-crypto.com\/wp-content\/uploads\/2025\/01\/the1xfiles-black.png","type":"image\/png"}],"author":"wsjcrypto","twitter_card":"summary_large_image","twitter_misc":{"Scritto da":"wsjcrypto","Tempo di lettura stimato":"11 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/wsj-crypto.com\/index.php\/2025\/01\/19\/unveiling-the-witness-specification-your-essential-guide-to-the-1-x-files\/","url":"https:\/\/wsj-crypto.com\/index.php\/2025\/01\/19\/unveiling-the-witness-specification-your-essential-guide-to-the-1-x-files\/","name":"Unveiling the Witness Specification: Your Essential Guide to the 1.x Files - WSJ-Crypto","isPartOf":{"@id":"https:\/\/wsj-crypto.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/wsj-crypto.com\/index.php\/2025\/01\/19\/unveiling-the-witness-specification-your-essential-guide-to-the-1-x-files\/#primaryimage"},"image":{"@id":"https:\/\/wsj-crypto.com\/index.php\/2025\/01\/19\/unveiling-the-witness-specification-your-essential-guide-to-the-1-x-files\/#primaryimage"},"thumbnailUrl":"https:\/\/wsj-crypto.com\/wp-content\/uploads\/2025\/01\/the1xfiles-black.png","datePublished":"2025-01-19T14:12:39+00:00","author":{"@id":"https:\/\/wsj-crypto.com\/#\/schema\/person\/88a93723b30416db1a352d5a0096c4a7"},"breadcrumb":{"@id":"https:\/\/wsj-crypto.com\/index.php\/2025\/01\/19\/unveiling-the-witness-specification-your-essential-guide-to-the-1-x-files\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/wsj-crypto.com\/index.php\/2025\/01\/19\/unveiling-the-witness-specification-your-essential-guide-to-the-1-x-files\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/wsj-crypto.com\/index.php\/2025\/01\/19\/unveiling-the-witness-specification-your-essential-guide-to-the-1-x-files\/#primaryimage","url":"https:\/\/wsj-crypto.com\/wp-content\/uploads\/2025\/01\/the1xfiles-black.png","contentUrl":"https:\/\/wsj-crypto.com\/wp-content\/uploads\/2025\/01\/the1xfiles-black.png","width":1400,"height":550},{"@type":"BreadcrumbList","@id":"https:\/\/wsj-crypto.com\/index.php\/2025\/01\/19\/unveiling-the-witness-specification-your-essential-guide-to-the-1-x-files\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/wsj-crypto.com\/"},{"@type":"ListItem","position":2,"name":"Unveiling the Witness Specification: Your Essential Guide to the 1.x Files"}]},{"@type":"WebSite","@id":"https:\/\/wsj-crypto.com\/#website","url":"https:\/\/wsj-crypto.com\/","name":"WSJ-Crypto","description":"Just Another Crypto News Website","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/wsj-crypto.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Person","@id":"https:\/\/wsj-crypto.com\/#\/schema\/person\/88a93723b30416db1a352d5a0096c4a7","name":"wsjcrypto","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/wsj-crypto.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/86fe8af82ea089646d6639ca2f87e0243d8688d957bd8e3ec22ec3c457cc16d4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/86fe8af82ea089646d6639ca2f87e0243d8688d957bd8e3ec22ec3c457cc16d4?s=96&d=mm&r=g","caption":"wsjcrypto"},"url":"https:\/\/wsj-crypto.com\/index.php\/author\/wsjcrypto\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/wsj-crypto.com\/index.php\/wp-json\/wp\/v2\/posts\/7523","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wsj-crypto.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wsj-crypto.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wsj-crypto.com\/index.php\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/wsj-crypto.com\/index.php\/wp-json\/wp\/v2\/comments?post=7523"}],"version-history":[{"count":2,"href":"https:\/\/wsj-crypto.com\/index.php\/wp-json\/wp\/v2\/posts\/7523\/revisions"}],"predecessor-version":[{"id":7525,"href":"https:\/\/wsj-crypto.com\/index.php\/wp-json\/wp\/v2\/posts\/7523\/revisions\/7525"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wsj-crypto.com\/index.php\/wp-json\/wp\/v2\/media\/7163"}],"wp:attachment":[{"href":"https:\/\/wsj-crypto.com\/index.php\/wp-json\/wp\/v2\/media?parent=7523"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wsj-crypto.com\/index.php\/wp-json\/wp\/v2\/categories?post=7523"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wsj-crypto.com\/index.php\/wp-json\/wp\/v2\/tags?post=7523"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}