General Archives - Kaspa https://kaspa.org/category/general/ Proof-of-Work Cryptocurrency with GHOSTDAG protocol Wed, 07 Sep 2022 23:32:28 +0000 en-US hourly 1 https://i0.wp.com/kaspa.org/wp-content/uploads/2022/04/cropped-Kaspa-icon-outlined.png?fit=32%2C32&ssl=1 General Archives - Kaspa https://kaspa.org/category/general/ 32 32 205134466 Core Developer Series: Kaspa 101 – Part 1 https://kaspa.org/core-developer-series-kaspa-101-part-1/ https://kaspa.org/core-developer-series-kaspa-101-part-1/#respond Wed, 07 Sep 2022 23:30:03 +0000 https://kaspa.org/?p=1489 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 […]

The post Core Developer Series: Kaspa 101 – Part 1 appeared first on Kaspa.

]]>
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 and scales bitcoin’s blockchain paradigm.

 

Block-DAG vs. Blockchain

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 – they do not share the knowledge of other non-selected chains they know of and chose not to mine over.

In contrast, in the block-DAG paradigm, all information is revealed. We call it “the revelation principle”. 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.

In essence, by each miner mining over all known blocks, a maximal amount of time relations (e.g. this block was mined “after” this block) is revealed and shared.

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 Directed Acyclic Graph.

 

Some block-DAG terminology

The set of blocks referenced by block B are parents(B). The set past(B) is the set of blocks reachable from block B through a chain of parent links (coined “past” because we know they existed before B). Note that past(B) is never empty since it always contains genesis which is the initial block defining the begining of the DAG. Likewise, future(B) is the set of blocks which B is reachable from. The set anticone(B) is the set of blocks “parallel” to B, i.e., not in its past nor in its future. Essentially no time causality information is known between B and blocks in anticone(B). We call it “anticone” because both past and future can be seen as “cones” from B’s perspective.

 

Ordering a block-DAG

Before delving into the specifics of the GHOSTDAG protocol, which is the ordering protocol used by Kaspa, I’ll describe a general structure for ordering a block-DAG based on any parent selection rule.

Assume a parent selection function f mapping from each block B to one of its parents P. The sub-DAG containing only these special “selected” links (from every block B to its selected parent) is in fact a tree. Let’s name a special non-existing block called “virtual”, which always points at all DAG tips/leaves. This virtual block represents the next mined block in the eyes of the local node.

The mapping function f can be applied on virtual in order to select a specific DAG tip. We can then walk down starting from this tip through the “selected parent” links until reaching genesis. So a mapping f can be translated to selecting a chain C of blocks starting from virtual and ending at genesis.

This chain can be used to deterministically order the complete DAG structure.

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

Given a chain C and the definition of a mergeset, we are ready to describe a complete ordering rule based on f. The idea is to start from genesis 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.

The simple pseudo-code below describes exactly this and is brought here for reference.

function Order-DAG(G):

  • let C be the chain obtained by applying f on DAG G as described
  • ordering = []
  • for block B in C walking up from genesis up to virtual
    • ordering.Add(mergeset(B))
  • return ordering

 

Chain security implies robust DAG ordering

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.

For a block-DAG representing a transaction ledger, we’d like that the ordering of the DAG is “robust” 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 “stabilize” for any block mined “enough” time ago, where enough depends on the amount of certainty required.

Because ordering is governed by a chain, it follows that if the chain is “robust”, 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 – a secure parent mapping function f.

 

Next post in this series

In the following post I’ll write about the special parent selection function f = GHOSTDAG and will give more rigorous definitions for related terms used in Kaspa such as “blue score”, “blue work”, etc.

I chose to explain about the chain structure first, because I think it’s crucial to understand this decomposition for getting a clear understanding of the Kaspa system. Regardless of the f 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.

The post Core Developer Series: Kaspa 101 – Part 1 appeared first on Kaspa.

]]>
https://kaspa.org/core-developer-series-kaspa-101-part-1/feed/ 0 1489
Top-Tier Exchange Community Fundraising Complete! https://kaspa.org/top-tier-exchange-community-fundraising-complete/ https://kaspa.org/top-tier-exchange-community-fundraising-complete/#respond Mon, 29 Aug 2022 22:36:02 +0000 https://kaspa.org/?p=1392 We are pleased to announce that Kaspa has yet again successfully completed a community funding proposal to be listed on a soon-to-be named top-tier exchange. A funding pool of $50K in USDT was established on August 23rd, 2022 and was advertised on Kaspa’s discord and telegram servers. In less than 5 days, the $50K in […]

The post Top-Tier Exchange Community Fundraising Complete! appeared first on Kaspa.

]]>
We are pleased to announce that Kaspa has yet again successfully completed a community funding proposal to be listed on a soon-to-be named top-tier exchange. A funding pool of $50K in USDT was established on August 23rd, 2022 and was advertised on Kaspa’s discord and telegram servers. In less than 5 days, the $50K in funds have been secured entirely through community donations.  Over the course of the coming weeks, Kaspa and the exchange will be working on finalizing the implementation.  This exchange will be the 6th exchange listing for Kaspa, and will be, by far, the most well-known and utilized exchange trading Kaspa.  With over ~$1.5 billion in average volume combined with over 10 million daily visits, this exchange mark’s the next step in the evolution and adoption of Kaspa Currency.

Kaspa is the fastest, open-source, decentralized & fully scalable Layer-1 digital asset in the world, utilizing the world’s first blockDAG- a digital ledger enabling parallel blocks and instant transaction confirmation.  Kaspa, with rapid single-second block intervals, solves the speed, scalability and security trade-off which currently limits the usage of digital assets. Built by industry pioneers, led by the people.  For more information, please visit our website at www.kaspa.org or contact-us at a@kaspa.org

The post Top-Tier Exchange Community Fundraising Complete! appeared first on Kaspa.

]]>
https://kaspa.org/top-tier-exchange-community-fundraising-complete/feed/ 0 1392
Getting up to Speed on Kaspa https://kaspa.org/kaspa-highlights/ https://kaspa.org/kaspa-highlights/#respond Mon, 15 Aug 2022 16:10:46 +0000 https://kaspa.org/?p=912 The post Getting up to Speed on Kaspa appeared first on Kaspa.

]]>

Looking Back

 

Where to even start!  So much has happened in the Kaspa project since the launch of the main-net in early November 2021.  We are steadily building a vibrant and strong community as investors, developers and people, from around the globe, are realizing the true power and potential of blockDAG and our revolutionary consensus mechanism. We are seeing this play out in a few ways, starting with a rpidly growing community! Our discord is at the time of this post, up to over 6000 members, telegram over 2600, and twitter over 2000 followers.  

Our Mods are welcoming new people every single day who are curious  to learn more and eager to help the team.  The interactions that are playing out really help to validate the necessity for our 100% decentralized, fair-launched, instant confirmation, and fully scalable PoW project.  Of particular note, has been the way the community has stepped up to fund various projects via donations, whether it was for exchanges, mining tools, wallets, or kaspad development.

On the mining/network security front, things have really been heating up!  This is due in part to the tremendous support we have received from both GPU miner,  and mining pool developers.  As of today, we are now able to be mined on 4 major mining software platforms, BZminer, SRBminer, and Lolminer as well as a community developed Kaspa Miner

Miners now have the option to either solo mine to their own nodes, use public nodes, or mine as part of a trusted pool using our rapid one block per second architecture .  Currently there are 4 pools available to choose from, Acc-pool, Kaspa-Pool, Hashpool, and WoolyPooly.  Due to the ease of mining Kaspa, and the support of these developers, our hash-rate has skyrocketed up to over 38TH.  This hash-rate ensures that we have a secure and strong network to confirm transactions and keep our blockDAG safe from any attackers.  

From a buying and selling perspective, we also now have 4 exchanges which currently facilitate the trading of Kaspa.  Txbit, Exbitron, ViteX and Cryptex24 all have implemented Kaspa trading pairs, and many other exchanges are now starting to take notice of the public’s interest in our project and trading volume.  What started out as a coin that was worth ~$0.0002 ($200 per million) around the time of the main-net launch, is now worth over 7x that  value, trading at ~ $0.0014 ($1400 per millions).  While the project is not defined by the price of the asset, but rather its usage cases, it is encouraging to see the public’s overwhelming interest reflected in the market.

Looking Around

 

There is no doubt that the technology that makes Kaspa is truly revolutionary. What we have with Kaspa is a technology, architecture, and consensus mechanism that is singularly  unique, built by experts in cryptocurrency and computer science who have dedicated their lives to pushing the advancement of digital assets and finance.  To match the technological advancements that Kaspa has made, we have also started to invest in our brand, to give the project the “polish” it deserves.  This “polish” includes our new logo package, our new website which you are viewing today, and our social media accounts and creative design support.

Twitter  |  Facebook  |  Reddit  |  Instagram  |  Linkedin  

These new investments in the project are due in large part to people around the globe stepping up to help.  We have more volunteers, project advocates, and active community marketers than we could have even imagined at this point. And although we will forever remain decentralized, the organization of the community, BY the community is making the project stronger everyday.

From a development standpoint, we are in the midst of probably the biggest, and most impactful project phase ever to be conducted in the lifetime of Kaspa: The Rust Language Rewrite.  Headed by developer Michael Sutton, the code base for Kaspa, which currently is in Golang language, is being rewritten into Rust. The benefits of utilizing rust include safety, easy multi-platform development, higher speeds, quality, and better documentation. While Golang was a great initial coding language for the launch of Kaspa, the rewrite in Rust will allow Kaspa to achieve even more parallel blocks per second (think 32 blocks per second on the lower end, with an upper goal of100 or more BPS).  In addition this rewrite will also help Kaspa recruit more high-level community developers.  This is all thanks again to the tremendous support of the community that ran a funding pool that generated over 100million in Kaspa  donations for the  development of this substantial task.

Looking Ahead

 

In addition to the marketing developments and rust-rewrite, we also have launched our first ever tentative roadmap for the direction of the project, this roadmap can be seen on our new website and helps to answer questions about the direction the project is heading, and what are the important tasks, steps and milestones to get there.  A whitepaper is also planned for the end of 2022/early 2023, this document will seek to give the most detailed and cohesive review of the project’s technology, outlining usage cases and what differentiates Kaspa vs. the other blockchains that currently exist.  From a marketing standpoint we hope to continue to grow the community size on all of our platforms, obtain more exchange listings, obtain even more implementation from other mining software and pool developers, and recruit more volunteers into the project as developers, marketers, ambassadors, and advocates.

Kaspa’s launch exceeded everyone’s expectations and the potential for Kaspa’s future growth and development is a continuing source of inspiration for the team and community.

The post Getting up to Speed on Kaspa appeared first on Kaspa.

]]>
https://kaspa.org/kaspa-highlights/feed/ 0 912
Kaspa — What are We Actually Doing Here? https://kaspa.org/kaspa-what-are-we-actually-doing-here/ https://kaspa.org/kaspa-what-are-we-actually-doing-here/#respond Sat, 27 Nov 2021 20:54:18 +0000 https://kaspa.org/?p=88 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 obvious to me that most […]

The post Kaspa — What are We Actually Doing Here? appeared first on Kaspa.

]]>

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)

and 

 in 2016 (I joined the efforts two years later) . The entire following post is dedicated to describing this particular aspect of Kaspa.

 

The Nakamoto Consensus Scaling Problem

So How Can We Allow Parallel Blocks?

  1. It has to be topological: a block can not appear in the ordering before any of its parents
  2. It has to be in consensus: at any point in time all of the nodes in the network must agree on the ordering of all but a constant number of new blocks
  3. It has to be secure: a computationally inferior adversary can not revert the ordering of blocks retroactively
  4. It has to offer liveness: there should be a clear criterion for when a block is “finalized” in the sense that it will never change its place in the ordering, and every block should satisfy this criterion within a constant amount of time
  5. It has to be efficient: the problem of determining, calculating and maintaining the order should be feasible for today’s computers even in light of an ever growing DAG

PHANTOM — GHOSTDAG In an Ideal World

(This picture actually has a mistake in it, see if you can spot it 🙂 I will replace it when I have the time)
The red set forms a maximal 3-cluster in the DAG above
  1. Choose k so that most of the time the honest network does not create more than k+1 parallel blocks
  2. Find a maximal k-cluster (choose some arbitrary tie-breaking rule if there are several maximal k-clusters)
  3. Order the blocks in the maximal k-cluster via an arbitrary topological order with the following property: a block outside the chosen k-cluster will appear as late as possible, that is, either after all blocks inside the k-cluster appeared, or when the ordering reached a block in the k-cluster which has this block in its past (this leaves open to interpretation what should be done with the blocks outside the k-cluster, or whether they should appear at all)

From PHANTOM to GHOSTDAG

  1. It could not be implemented efficiently: Indeed, the problem of finding a maximal k-cluster in a given DAG is NP-complete.
  2. It is not incremental: Every time the DAG updates, the entire computation must be restarted. In particular, it requires storing the entire DAG structure.

But Why Should GHOSTDAG Be Secure?

From GHOSTDAG To Kaspa — Concluding Remarks

The post Kaspa — What are We Actually Doing Here? appeared first on Kaspa.

]]>
https://kaspa.org/kaspa-what-are-we-actually-doing-here/feed/ 0 88