{"id":1489,"date":"2022-09-07T23:30:03","date_gmt":"2022-09-07T23:30:03","guid":{"rendered":"https:\/\/kaspa.org\/?p=1489"},"modified":"2022-09-07T23:32:15","modified_gmt":"2022-09-07T23:32:15","slug":"core-developer-series-kaspa-101-part-1","status":"publish","type":"post","link":"https:\/\/kaspa.org\/core-developer-series-kaspa-101-part-1\/","title":{"rendered":"Core Developer Series: Kaspa 101 – Part 1"},"content":{"rendered":"

The block-DAG paradigm<\/h3>\n

By: Michael Sutton, Core Developer<\/p>\n

This is a blog series explaining the fundamentals of Kaspa in simple and short language. I will assume the least possible prior knowledge, although some fundamentals in blockchain theory, specifically bitcoin, may benefit the reader.<\/p>\n

 <\/p>\n

What is Kaspa?<\/h4>\n

Kaspa is a pure PoW engine which generalizes and scales bitcoin\u2019s blockchain paradigm.<\/p>\n

 <\/p>\n

Block-DAG vs. Blockchain<\/h4>\n

The first change Kaspa introduces is the block-DAG mining paradigm. In bitcoin, miners first select the longest (or to be precise, the heaviest) chain and mine over its top-most block, aka the selected tip. Thus essentially miners do not share the full information they have \u2013 they do not share the knowledge of other non-selected chains they know of and chose not to mine over.<\/p>\n

In contrast, in the block-DAG paradigm, all information is revealed. We call it \u201cthe revelation principle\u201d. The miner references all tips he knows of. Following, any protocol can be ran to make choices over this knowledge, including for instance the longest chain rule, however the maximization of shared knowledge opens many more opportunities.<\/p>\n

In essence, by each miner mining over all known blocks, a maximal amount of time relations (e.g. this block was mined \u201cafter\u201d this block) is revealed and shared.<\/p>\n

Having each miner mine over many block tips (referencing all their hashes in its header), creates a directed graph of blocks with a link pointing from a block to each of the referenced blocks. The cryptographic irreversibility of the PoW function implies that no cycles can be created in this directed graph, making it a D<\/strong>irected A<\/strong>cyclic G<\/strong>raph.<\/p>\n

 <\/p>\n

Some block-DAG terminology<\/h4>\n

The set of blocks referenced by block B<\/strong><\/em> are parents(B)<\/em><\/strong>. The set past(B)<\/strong><\/em> is the set of blocks reachable from block B<\/em><\/strong> through a chain of parent links (coined \u201cpast\u201d because we know they existed before B<\/em><\/strong>). Note that past(B)<\/em><\/strong> is never empty since it always contains genesis which is the initial block defining the begining of the DAG. Likewise, future(B)<\/em><\/strong> is the set of blocks which B<\/em><\/strong> is reachable from. The set anticone(B)<\/em><\/strong> is the set of blocks \u201cparallel\u201d to B<\/strong><\/em>, i.e., not in its past nor in its future. Essentially no time causality information is known between B<\/em><\/strong> and blocks in anticone(B)<\/strong><\/em>. We call it \u201canticone\u201d because both past and future can be seen as \u201ccones\u201d from B<\/em><\/strong>\u2019s perspective.<\/p>\n

 <\/p>\n

Ordering a block-DAG<\/h4>\n

Before delving into the specifics of the GHOSTDAG protocol, which is the ordering protocol used by Kaspa, I\u2019ll describe a general structure for ordering a block-DAG based on any parent selection rule.<\/p>\n

Assume a parent selection function f<\/em><\/strong> mapping from each block B<\/em><\/strong> to one of its parents P<\/strong><\/em>. The sub-DAG containing only these special \u201cselected\u201d links (from every block B<\/strong><\/em> to its selected parent) is in fact a tree. Let\u2019s name a special non-existing block called \u201cvirtual\u201d, which always points at all DAG tips\/leaves. This virtual block represents the next mined block in the eyes of the local node.<\/p>\n

The mapping function f<\/em><\/strong> can be applied on virtual<\/em><\/strong> in order to select a specific DAG tip. We can then walk down starting from this tip through the \u201cselected parent\u201d links until reaching genesis. So a mapping f<\/strong><\/em> can be translated to selecting a chain C<\/strong><\/em> of blocks starting from virtual<\/em><\/strong> and ending at genesis<\/em><\/strong>.<\/p>\n

This chain can be used to deterministically order the complete DAG structure.<\/p>\n

To accomplish this task we need one more definition. Let\u2019s define the mergeset of B<\/strong><\/em>, mergeset(B)<\/strong><\/em>, to be the set of blocks that B<\/em><\/strong> merged into the DAG. Formally this is the set of blocks which are in past(B)<\/strong><\/em> but not in the past of B<\/strong><\/em>\u2019s selected parent as chosen by the mapping function f<\/em><\/strong>. It\u2019s called a merge-set because it\u2019s the set of blocks that B<\/strong><\/em> merged into the DAG from his perspective relative to its selected parent perspective.<\/p>\n

Given a chain C<\/em><\/strong> and the definition of a mergeset, we are ready to describe a complete ordering rule based on f<\/strong><\/em>. The idea is to start from genesis<\/strong><\/em> and walk up this chain, where at each chain-block we add his merge-set to the ordering. Intuitively, the chain here acts as a spine of the DAG, where the merge-sets are layers added one after the other. To see this more clearly note that from the definition of a mergeset and its relation to the proceeding chain block, it follows that all mergesets are disjoint sets and that their union covers the entire DAG.<\/p>\n

The simple pseudo-code below describes exactly this and is brought here for reference.<\/p>\n

function Order-DAG(G<\/strong><\/em>):<\/p>\n

    \n
  • let C<\/em><\/strong> be the chain obtained by applying f on DAG G as described<\/li>\n
  • ordering = []<\/li>\n
  • for block B<\/em><\/strong> in C<\/strong><\/em> walking up from genesis up to virtual\n
      \n
    • ordering.Add(mergeset(B))<\/li>\n<\/ul>\n<\/li>\n
    • return ordering<\/li>\n<\/ul>\n

       <\/p>\n

      Chain security implies robust DAG ordering<\/h4>\n

      Understanding the relation between a chain and DAG ordering helps reasoning about the relation between a chain selection protocol and the security properties required from a secure ordering protocol.<\/p>\n

      For a block-DAG representing a transaction ledger, we\u2019d like that the ordering of the DAG is \u201crobust\u201d in the sense that only a small set of blocks near the tips of the DAG might change their order. In other words, we want the ordering to \u201cstabilize\u201d for any block mined \u201cenough\u201d time ago, where enough depends on the amount of certainty required.<\/p>\n

      Because ordering is governed by a chain, it follows that if the chain is \u201crobust\u201d, i.e., does not change up to a suffix, then the DAG ordered by it is robust as well. Thus all we need now is a secure way to find a robust chain \u2013 a secure parent mapping function f<\/em><\/strong>.<\/p>\n

       <\/p>\n

      Next post in this series<\/h4>\n

      In the following post I\u2019ll write about the special parent selection function f<\/strong><\/em> = GHOSTDAG and will give more rigorous definitions for related terms used in Kaspa such as \u201cblue score\u201d, \u201cblue work\u201d, etc.<\/p>\n

      I chose to explain about the chain structure first, because I think it\u2019s crucial to understand this decomposition for getting a clear understanding of the Kaspa system. Regardless of the f<\/em><\/strong> used, this chain structure is used by our UTXO algebra infrastructure and also plays a role in the framework we implemented for supporting DAG reachability queries.<\/p>\n","protected":false},"excerpt":{"rendered":"

      The block-DAG paradigm By: Michael Sutton, Core Developer This is a blog series explaining the fundamentals of Kaspa in simple and short language. I will assume the least possible prior knowledge, although some fundamentals in blockchain theory, specifically bitcoin, may benefit the reader.   What is Kaspa? Kaspa is a pure PoW engine which generalizes […]<\/p>\n","protected":false},"author":6,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","inline_featured_image":false},"categories":[4,13],"tags":[],"yoast_head":"\nCore Developer Series: Kaspa 101 - Part 1 - Kaspa<\/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:\/\/kaspa.org\/core-developer-series-kaspa-101-part-1\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Core Developer Series: Kaspa 101 - Part 1 - Kaspa\" \/>\n<meta property=\"og:description\" content=\"The block-DAG paradigm By: Michael Sutton, Core Developer This is a blog series explaining the fundamentals of Kaspa in simple and short language. I will assume the least possible prior knowledge, although some fundamentals in blockchain theory, specifically bitcoin, may benefit the reader.   What is Kaspa? Kaspa is a pure PoW engine which generalizes […]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kaspa.org\/core-developer-series-kaspa-101-part-1\/\" \/>\n<meta property=\"og:site_name\" content=\"Kaspa\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/KaspaCurrency\" \/>\n<meta property=\"article:published_time\" content=\"2022-09-07T23:30:03+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-09-07T23:32:15+00:00\" \/>\n<meta name=\"author\" content=\"msutton\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@KaspaCurrency\" \/>\n<meta name=\"twitter:site\" content=\"@KaspaCurrency\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"msutton\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kaspa.org\/core-developer-series-kaspa-101-part-1\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kaspa.org\/core-developer-series-kaspa-101-part-1\/\"},\"author\":{\"name\":\"msutton\",\"@id\":\"https:\/\/kaspa.org\/#\/schema\/person\/410b7da972630b9c59ea32269a193e05\"},\"headline\":\"Core Developer Series: Kaspa 101 – Part 1\",\"datePublished\":\"2022-09-07T23:30:03+00:00\",\"dateModified\":\"2022-09-07T23:32:15+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kaspa.org\/core-developer-series-kaspa-101-part-1\/\"},\"wordCount\":1071,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\/\/kaspa.org\/#organization\"},\"articleSection\":[\"General\",\"Technology\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kaspa.org\/core-developer-series-kaspa-101-part-1\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kaspa.org\/core-developer-series-kaspa-101-part-1\/\",\"url\":\"https:\/\/kaspa.org\/core-developer-series-kaspa-101-part-1\/\",\"name\":\"Core Developer Series: Kaspa 101 - Part 1 - Kaspa\",\"isPartOf\":{\"@id\":\"https:\/\/kaspa.org\/#website\"},\"datePublished\":\"2022-09-07T23:30:03+00:00\",\"dateModified\":\"2022-09-07T23:32:15+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/kaspa.org\/core-developer-series-kaspa-101-part-1\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kaspa.org\/core-developer-series-kaspa-101-part-1\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kaspa.org\/core-developer-series-kaspa-101-part-1\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kaspa.org\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Core Developer Series: Kaspa 101 – Part 1\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kaspa.org\/#website\",\"url\":\"https:\/\/kaspa.org\/\",\"name\":\"Kaspa\",\"description\":\"Proof-of-Work Cryptocurrency with GHOSTDAG protocol - Maintained, with love by Community Members.\",\"publisher\":{\"@id\":\"https:\/\/kaspa.org\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kaspa.org\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kaspa.org\/#organization\",\"name\":\"Kaspa\",\"url\":\"https:\/\/kaspa.org\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/kaspa.org\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kaspa.org\/wp-content\/uploads\/2022\/08\/kaspa-1920x1280-trello.png\",\"contentUrl\":\"https:\/\/kaspa.org\/wp-content\/uploads\/2022\/08\/kaspa-1920x1280-trello.png\",\"width\":1920,\"height\":1280,\"caption\":\"Kaspa\"},\"image\":{\"@id\":\"https:\/\/kaspa.org\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/KaspaCurrency\",\"https:\/\/twitter.com\/KaspaCurrency\",\"https:\/\/t.me\/Kaspaenglish\",\"https:\/\/www.instagram.com\/kaspacurrency\/\",\"https:\/\/www.linkedin.com\/company\/kaspa-currency\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kaspa.org\/#\/schema\/person\/410b7da972630b9c59ea32269a193e05\",\"name\":\"msutton\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/kaspa.org\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/e07661c3ce98b24d1ba4378bda653ae2?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/e07661c3ce98b24d1ba4378bda653ae2?s=96&d=mm&r=g\",\"caption\":\"msutton\"},\"url\":\"https:\/\/kaspa.org\/author\/msutton\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Core Developer Series: Kaspa 101 - Part 1 - Kaspa","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:\/\/kaspa.org\/core-developer-series-kaspa-101-part-1\/","og_locale":"en_US","og_type":"article","og_title":"Core Developer Series: Kaspa 101 - Part 1 - Kaspa","og_description":"The block-DAG paradigm By: Michael Sutton, Core Developer This is a blog series explaining the fundamentals of Kaspa in simple and short language. I will assume the least possible prior knowledge, although some fundamentals in blockchain theory, specifically bitcoin, may benefit the reader.   What is Kaspa? Kaspa is a pure PoW engine which generalizes […]","og_url":"https:\/\/kaspa.org\/core-developer-series-kaspa-101-part-1\/","og_site_name":"Kaspa","article_publisher":"https:\/\/www.facebook.com\/KaspaCurrency","article_published_time":"2022-09-07T23:30:03+00:00","article_modified_time":"2022-09-07T23:32:15+00:00","author":"msutton","twitter_card":"summary_large_image","twitter_creator":"@KaspaCurrency","twitter_site":"@KaspaCurrency","twitter_misc":{"Written by":"msutton","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kaspa.org\/core-developer-series-kaspa-101-part-1\/#article","isPartOf":{"@id":"https:\/\/kaspa.org\/core-developer-series-kaspa-101-part-1\/"},"author":{"name":"msutton","@id":"https:\/\/kaspa.org\/#\/schema\/person\/410b7da972630b9c59ea32269a193e05"},"headline":"Core Developer Series: Kaspa 101 – Part 1","datePublished":"2022-09-07T23:30:03+00:00","dateModified":"2022-09-07T23:32:15+00:00","mainEntityOfPage":{"@id":"https:\/\/kaspa.org\/core-developer-series-kaspa-101-part-1\/"},"wordCount":1071,"commentCount":1,"publisher":{"@id":"https:\/\/kaspa.org\/#organization"},"articleSection":["General","Technology"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kaspa.org\/core-developer-series-kaspa-101-part-1\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kaspa.org\/core-developer-series-kaspa-101-part-1\/","url":"https:\/\/kaspa.org\/core-developer-series-kaspa-101-part-1\/","name":"Core Developer Series: Kaspa 101 - Part 1 - Kaspa","isPartOf":{"@id":"https:\/\/kaspa.org\/#website"},"datePublished":"2022-09-07T23:30:03+00:00","dateModified":"2022-09-07T23:32:15+00:00","breadcrumb":{"@id":"https:\/\/kaspa.org\/core-developer-series-kaspa-101-part-1\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kaspa.org\/core-developer-series-kaspa-101-part-1\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/kaspa.org\/core-developer-series-kaspa-101-part-1\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kaspa.org\/"},{"@type":"ListItem","position":2,"name":"Core Developer Series: Kaspa 101 – Part 1"}]},{"@type":"WebSite","@id":"https:\/\/kaspa.org\/#website","url":"https:\/\/kaspa.org\/","name":"Kaspa","description":"Proof-of-Work Cryptocurrency with GHOSTDAG protocol - Maintained, with love by Community Members.","publisher":{"@id":"https:\/\/kaspa.org\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kaspa.org\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/kaspa.org\/#organization","name":"Kaspa","url":"https:\/\/kaspa.org\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/kaspa.org\/#\/schema\/logo\/image\/","url":"https:\/\/kaspa.org\/wp-content\/uploads\/2022\/08\/kaspa-1920x1280-trello.png","contentUrl":"https:\/\/kaspa.org\/wp-content\/uploads\/2022\/08\/kaspa-1920x1280-trello.png","width":1920,"height":1280,"caption":"Kaspa"},"image":{"@id":"https:\/\/kaspa.org\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/KaspaCurrency","https:\/\/twitter.com\/KaspaCurrency","https:\/\/t.me\/Kaspaenglish","https:\/\/www.instagram.com\/kaspacurrency\/","https:\/\/www.linkedin.com\/company\/kaspa-currency\/"]},{"@type":"Person","@id":"https:\/\/kaspa.org\/#\/schema\/person\/410b7da972630b9c59ea32269a193e05","name":"msutton","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/kaspa.org\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/e07661c3ce98b24d1ba4378bda653ae2?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/e07661c3ce98b24d1ba4378bda653ae2?s=96&d=mm&r=g","caption":"msutton"},"url":"https:\/\/kaspa.org\/author\/msutton\/"}]}},"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":88,"url":"https:\/\/kaspa.org\/kaspa-what-are-we-actually-doing-here\/","url_meta":{"origin":1489,"position":0},"title":"Kaspa \u2014 What are We Actually Doing Here?","date":"November 27, 2021","format":false,"excerpt":"Shai (Deshe) Wyborski (if you are unfamiliar with Kaspa you are still welcome to read the post, or you can first check out our website and Discord server) It is astonishing to see how fast the Kaspa community is growing. But as Kaspa gains more traction and popularity, it becomes\u2026","rel":"","context":"In "General"","img":{"alt_text":"","src":"https:\/\/i0.wp.com\/kaspa.org\/wp-content\/uploads\/2022\/04\/1Z_jjZr2mp78S7ONujLmOrg.png?fit=646%2C428&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":44027,"url":"https:\/\/kaspa.org\/kaspa-where-to-part-ii\/","url_meta":{"origin":1489,"position":1},"title":"Kaspa where to (Part II)","date":"November 26, 2022","format":false,"excerpt":" \u00a0 BY: Yonatan Sompolinsky Crypto winters are warm for projects with character. Last month Michal Sutton and I published the DAGKNIGHT protocol (DK), which to\u2026","rel":"","context":"In "DAG KNIGHT"","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":44281,"url":"https:\/\/kaspa.org\/kaspa-and-the-end-of-the-trilemma\/","url_meta":{"origin":1489,"position":2},"title":"Kaspa and the End of the\u00a0Trilemma","date":"February 15, 2023","format":false,"excerpt":"The approach and solution to the blockchain trilemma. \u00a0 The Problem Cryptocurrencies have been promised to be the future of money, providing a decentralized and secure means of transferring value. However, the Blockchain Trilemma, a widely held hypothesis in the crypto community, suggests that a cryptocurrency can only excel at\u2026","rel":"","context":"In "DAG KNIGHT"","img":{"alt_text":"","src":"https:\/\/i0.wp.com\/kaspa.org\/wp-content\/uploads\/2023\/02\/0_156ymVCFHQodJAVm.jpg?fit=800%2C450&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":44279,"url":"https:\/\/kaspa.org\/blocks-per-second-vs-transactions-per-second\/","url_meta":{"origin":1489,"position":3},"title":"Blocks Per Second vs. Transactions Per\u00a0Second","date":"February 6, 2023","format":false,"excerpt":"BPS and TPS\u200a\u2014\u200awhich is more important, and what is their role in a cryptocurrency? Kaspa\u2019s BlockDAG Visualizer BPS\/TPS BPS (Blocks Per Second) measures the number of blocks added to a blockchain in a given second. A commonly used metric to evaluate the performance and scalability of a blockchain network. The\u2026","rel":"","context":"In "DAG KNIGHT"","img":{"alt_text":"","src":"https:\/\/i0.wp.com\/kaspa.org\/wp-content\/uploads\/2023\/02\/1yjl9usHZW3uAJJyTnyOl1w.png?fit=800%2C449&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":44262,"url":"https:\/\/kaspa.org\/to-the-ends-of-the-emissions\/","url_meta":{"origin":1489,"position":4},"title":"To the Ends of the Emissions","date":"February 8, 2023","format":false,"excerpt":"When Kaspa block rewards end, the fees become the rewards. You are here. Post published 02\/08\/2022.\u200a\u2014\u200aFull Emission\u00a0Schedule All good things come to an end\u2026 or do\u00a0they? The end of blockchain emissions is when the blockchain system stops generating new tokens or coins. This stop in coin production can happen for\u2026","rel":"","context":"In "General"","img":{"alt_text":"","src":"https:\/\/i0.wp.com\/kaspa.org\/wp-content\/uploads\/2023\/02\/1zJWOpXqwXygLPvIfPZy11g.png?fit=800%2C450&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":44260,"url":"https:\/\/kaspa.org\/the-dag-knight-protocol-elevating-kaspa\/","url_meta":{"origin":1489,"position":5},"title":"The DAG KNIGHT Protocol\u200a\u2014\u200aElevating Kaspa","date":"January 26, 2023","format":false,"excerpt":"Sir Knights On December 18th, 2022, Kaspa held a Community Crowdfund to raise 70 million KAS to finance the construction and implementation of the DAG KNIGHT protocol. After 12 days, on December 30th, 2022, the crowdfund met its goal entirely at the community\u2019s request. So, what is the DAG KNIGHT\u2026","rel":"","context":"In "DAG KNIGHT"","img":{"alt_text":"","src":"https:\/\/i0.wp.com\/kaspa.org\/wp-content\/uploads\/2023\/01\/0_gvYuJ5SGD3xGhW9O.jpg?fit=1024%2C512&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]}],"_links":{"self":[{"href":"https:\/\/kaspa.org\/wp-json\/wp\/v2\/posts\/1489"}],"collection":[{"href":"https:\/\/kaspa.org\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kaspa.org\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kaspa.org\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/kaspa.org\/wp-json\/wp\/v2\/comments?post=1489"}],"version-history":[{"count":3,"href":"https:\/\/kaspa.org\/wp-json\/wp\/v2\/posts\/1489\/revisions"}],"predecessor-version":[{"id":1492,"href":"https:\/\/kaspa.org\/wp-json\/wp\/v2\/posts\/1489\/revisions\/1492"}],"wp:attachment":[{"href":"https:\/\/kaspa.org\/wp-json\/wp\/v2\/media?parent=1489"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kaspa.org\/wp-json\/wp\/v2\/categories?post=1489"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kaspa.org\/wp-json\/wp\/v2\/tags?post=1489"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}