@hus_qyi
iAccount based inSweden
About this account
- Account based in
- Sweden
- Connected via
- Sweden Android App
Account-level information from X, not a live location or the device used for a specific post.
Hacker, futurist and tech enthusiast interested in distributed systems and the nature of existence.
Joined November 2018
- Tweets5.1K
- Following367
- Followers30.1K
- Likes1.4K
Pinned Tweet
So, let's cut straight to the chase and talk about an actual theory of everything!
Today, a child can explain the changing of seasons - not because they're better at Ptolemaic mathematics than ancient astronomers, but because we found a better "story" to explain our observations (the Earth tilting as it orbits the Sun is simpler than calculating epicycles).
Over the last century, our scientific theories have become remarkably accurate at predicting phenomena, yet our deeper understanding of nature hasn't kept pace. Instead of things becoming more clear, physics seems to produce ever more mysteries. We've accepted that only the most brilliant minds thinking in the most abstract ways, can make sense of the world - and even they seem to have given up, treating 'shut up and calculate' as wisdom rather than an admission of failure.
What if they are wrong? Science was meant to be our path to enlightenment - a methodological quest to understand our place in the cosmos. Yet somewhere along the way, we settled for mere prediction over understanding, concluding that life itself was just a cosmic accident. This retreat from science's original mission has left us with sophisticated equations devoid of meaning or purpose.
Perhaps a theory of everything will not just be another mathematical formula, but a second Copernican revolution - a profound shift in perspective that reveals how science, philosophy and even spirituality are all telling the same tale about the very nature of reality.
After recent breakthroughs in machine learning and artificial intelligence, we finally have all the puzzle pieces to construct a single holistic story about the universe that explains everything - from quantum mechanics to the emergence of life, from the self-organization of market-driven economies to the large scale structures of the cosmos.
Join me on an intellectual adventure trying to answer some of humanity's longest-standing and most profound questions around the nature of existence: reverse-engineering-nature.c…
Featuring ideas from: Ruth Kastner (@rekastner), Stephen Wolfram (@stephen_wolfram), Mike McCulloch (@memcculloch), Michael Levin (@drmichaellevin), Jeremy England (@lifelikephysics), Gerald Pollack (@4thphasewater), Lee Cronin (@leecronin), Roger Penrose (@penrose), Stuart Hameroff (@StuartHameroff), Karl Friston, Ernst Mach, Paul Dirac, Adam Smith and Plato
A lot of people think what makes Kaspa unique is the technology.
But the technology is really the consequence of a deeper philosophical difference.
Most crypto projects ask: How can we maximize performance without sacrificing decentralization?
Kaspa asks: How can we maximize decentralization without sacrificing performance?
That slight inversion of priorities changes everything.
It changes what the system optimizes for, which tradeoffs are acceptable, and ultimately what kind of threat model matters.
Kaspa and in particular the upcoming DAGKnight fork are built around the idea that a decentralized monetary network should remain resilient even under extreme failure scenarios like global infrastructure disruption, war, or other large-scale breakdowns.
Because fast digital coordination should not force people to choose between trusting a small group of node operators over a small group of banks.
For many applications, that distinction may not matter.
But for the applications where credible neutrality, censorship resistance, and resilience matter most, that ideological edge is the product.
Kaspa does not merely compete at the technological level.
It competes at the philosophical level and the technology is just the downstream consequence of following that philosophy to the end.
Hey guys,
It's been a while since my last post, and I feel almost bad for not posting anything for such a long time 🙈
Unfortunately, I caught a really nasty infection on my way home from the KAS meetup and have been stuck in bed with a high fever and brain fog for the last few weeks.
I'm still not completely back to normal, but since I'm finally starting to have a bit more energy, I wanted to use the opportunity to share some thoughts about the meetup, because I think it will turn out to have been extremely influential for the future of Kaspa.
For anybody who doesn't know what I'm talking about: about 3.5 weeks ago, KAS organized an internal meetup between core contributors (and some additional community developers) at an undisclosed location in Europe.
When I first learned about the plans for this meetup, I didn't really know what to expect.
I've been to developer meetups before, but those were traditionally very narrow and task-focused. E.g. you got a team together to work on a specific problem that was difficult enough to deserve the shared attention of everyone involved.
In the case of Kaspa, however, we have relatively small and independent teams working on a number of different topics in parallel, such as vprogs, covenants, SilverScript, Argent, etc.
There are, of course, interfaces between these topics, but they all have their own independent designs and problem spaces.
This independence of developers is one of Kaspa's biggest strengths, but it also creates a situation where not everybody is always fully up to speed with what is happening elsewhere in the project.
For me personally, this is probably the biggest obstacle to becoming an effective communicator.
To feel confident discussing things publicly, I need to develop a deeper understanding and intuition for the subject. And that requires knowing not only the final design or code, but also the roads that weren't taken and the mountains that had to be climbed along the way.
What Kaspa really needed, wasn't a narrow, task-focused meetup, but a broad, vision-building one: something that connected the dots and allowed the different teams to develop a deeper understanding of each other's work, and ultimately see how all of it fits together as a coherent whole.
And the reason I'm telling you all of this is that this is exactly what the meetup turned into.
A week of open sessions and discussions covering the different development efforts, giving everyone the opportunity to build that deeper shared understanding.
I think it was a huge success!
I'll write a little more over the coming days about specific topics like Argent (which I really like), but I also have quite a lot to catch up on after being sick for so long.
@Max143672 did a really good job working through a lot of the open tasks around vprogs, and I now have a lot of code to review :'P
Tomorrow it's finally time for the first community hangout!
Kaspa Under the Hood: Setting the Stage for vProgs
Grab a beer, coffee, tea, or whatever keeps you going, and join us for the first regular Kaspa community hangout.
We will start with a high-level presentation of the upcoming vProgs architecture and Kaspa’s next stages of development. Since the architecture is extensive, this first session is meant to set the stage for future deep dives.
The presentation is meant to be accessible to people with different technical backgrounds. We will take things step by step, build up the necessary context, and gradually develop a shared understanding of Kaspa’s architecture, trade-offs, and long-term vision.
After that, we will move into a relaxed open discussion where people can ask questions, share ideas, and talk about anything interesting: Kaspa, decentralized infrastructure, incentives, technology, philosophy, or the future of humanity.
Bring your ideas and questions, grab a drink, and join the conversation!
discord.com/events/599153230…
That's a really good question, but it's hard to answer in a single tweet because our mission is quite extensive, and it requires a lot of background knowledge to really understand what sets Kaspa apart.
Currently, a lot of people see Kaspa as “Bitcoin’s crazy little brother” that improves time-to-finality by leveraging the benefits of DAG-based consensus protocols without accepting their traditional drawbacks, such as decreased decentralization or a limited validator set.
This perception is somewhat accurate, but it falls short of conveying the full picture, because Kaspa’s vision extends far beyond just trying to be a better Bitcoin.
Anyone willing to study Kaspa and its broader vision will discover similarities to nearly all major existing DLT designs: from Bitcoin, to Ethereum, to Solana, Sui, Celestia, and beyond.
My personal view is that “research” in the DLT space is approaching a point of convergence. We increasingly understand how to push distributed systems close to the limits of what physics permits. The frontier is no longer only about raw throughput or faster finality. The attention is shifting toward game theory, incentives, sequencing, MEV, alignment, and how to build systems where the economic incentives of users, builders, miners, validators, applications, and infrastructure providers do not work against each other.
That is why debates like based rollups versus arbitrary sequencing, shared sequencing, MEV mitigation, proposer-builder separation, and execution-layer incentives matter so much. These are not niche technical details. They determine whether a network can remain neutral, decentralized, and aligned while scaling to global usage.
And this is where I think Kaspa is pushing the boundaries in a very important way.
Kaspa is not merely trying to be “fast.” The goal is to build an L1 where speed, decentralization, security, and incentives are aligned at the base layer. A system that does not scale by hiding complexity behind trusted committees, privileged sequencers, centralized validator sets, or opaque coordination mechanisms, but instead tries to preserve the spirit of proof-of-work while extending what an L1 can realistically do.
Because Kaspa arrived later than many other major projects, it does not carry the same degree of technological debt. It can absorb lessons from Bitcoin, Ethereum, rollups, modular blockchains, high-throughput monolithic chains, DAG research, MEV research, and the broader history of decentralized systems, and combine those lessons into something more optimal.
To me, that is what Kaspa is building: not just a faster blockchain, but a more incentive-aligned decentralized infrastructure layer.
But this also creates a different challenge.
Kaspa’s biggest problem today is not its technology. It is the lack of centralized coordination around communicating the vision. And because Kaspa is a grass-roots movement, that responsibility does not belong to a marketing department, or a single leadership team. It belongs to the community.
That also means the community has a different role to play.
There will always be holders who are mainly interested in price, and that is completely fine. But there also need to be people who are here because they want to use the technology to build a different future. People who care about the architecture, the incentives, the open questions, the trade-offs, and the long-term trajectory of decentralized infrastructure.
I am one of those people.
I am not interested in DLTs merely as a way to generate wealth. I am interested in them because I believe they can change the trajectory of humanity as a whole.
For that reason, I want to use this opportunity to announce a regular community hangout where we discuss the current state of development, the open questions, and where we can align our vision together.
The first session will be on Tuesday, June 9th, 2026.
We will talk about the vProgs framework, how the codebase works, what sets Kaspa apart, where we improve on existing solutions, and what still needs to be done. The goal is for this to become a regular, possibly bi-weekly, event where we as a community come together to discuss the future and understand the technology.
Eventually, we can invite people from other projects as well, but the main focus at the beginning will be explaining and communicating how things work under the hood.
There is still a lot of work to be done, and I do not want to waste precious time. So the first sessions may feel a little improvised, but we can improve as we go.
The important thing is that we start.
So mark the date: Tuesday, June 9th, 2026.
That's a really good question, but it's hard to answer in a single tweet because our mission is quite extensive, and it requires a lot of background knowledge to really understand what sets Kaspa apart.
Currently, a lot of people see Kaspa as “Bitcoin’s crazy little brother” that improves time-to-finality by leveraging the benefits of DAG-based consensus protocols without accepting their traditional drawbacks, such as decreased decentralization or a limited validator set.
This perception is somewhat accurate, but it falls short of conveying the full picture, because Kaspa’s vision extends far beyond just trying to be a better Bitcoin.
Anyone willing to study Kaspa and its broader vision will discover similarities to nearly all major existing DLT designs: from Bitcoin, to Ethereum, to Solana, Sui, Celestia, and beyond.
My personal view is that “research” in the DLT space is approaching a point of convergence. We increasingly understand how to push distributed systems close to the limits of what physics permits. The frontier is no longer only about raw throughput or faster finality. The attention is shifting toward game theory, incentives, sequencing, MEV, alignment, and how to build systems where the economic incentives of users, builders, miners, validators, applications, and infrastructure providers do not work against each other.
That is why debates like based rollups versus arbitrary sequencing, shared sequencing, MEV mitigation, proposer-builder separation, and execution-layer incentives matter so much. These are not niche technical details. They determine whether a network can remain neutral, decentralized, and aligned while scaling to global usage.
And this is where I think Kaspa is pushing the boundaries in a very important way.
Kaspa is not merely trying to be “fast.” The goal is to build an L1 where speed, decentralization, security, and incentives are aligned at the base layer. A system that does not scale by hiding complexity behind trusted committees, privileged sequencers, centralized validator sets, or opaque coordination mechanisms, but instead tries to preserve the spirit of proof-of-work while extending what an L1 can realistically do.
Because Kaspa arrived later than many other major projects, it does not carry the same degree of technological debt. It can absorb lessons from Bitcoin, Ethereum, rollups, modular blockchains, high-throughput monolithic chains, DAG research, MEV research, and the broader history of decentralized systems, and combine those lessons into something more optimal.
To me, that is what Kaspa is building: not just a faster blockchain, but a more incentive-aligned decentralized infrastructure layer.
But this also creates a different challenge.
Kaspa’s biggest problem today is not its technology. It is the lack of centralized coordination around communicating the vision. And because Kaspa is a grass-roots movement, that responsibility does not belong to a marketing department, or a single leadership team. It belongs to the community.
That also means the community has a different role to play.
There will always be holders who are mainly interested in price, and that is completely fine. But there also need to be people who are here because they want to use the technology to build a different future. People who care about the architecture, the incentives, the open questions, the trade-offs, and the long-term trajectory of decentralized infrastructure.
I am one of those people.
I am not interested in DLTs merely as a way to generate wealth. I am interested in them because I believe they can change the trajectory of humanity as a whole.
For that reason, I want to use this opportunity to announce a regular community hangout where we discuss the current state of development, the open questions, and where we can align our vision together.
The first session will be on Tuesday, June 9th, 2026.
We will talk about the vProgs framework, how the codebase works, what sets Kaspa apart, where we improve on existing solutions, and what still needs to be done. The goal is for this to become a regular, possibly bi-weekly, event where we as a community come together to discuss the future and understand the technology.
Eventually, we can invite people from other projects as well, but the main focus at the beginning will be explaining and communicating how things work under the hood.
There is still a lot of work to be done, and I do not want to waste precious time. So the first sessions may feel a little improvised, but we can improve as we go.
The important thing is that we start.
So mark the date: Tuesday, June 9th, 2026.
Hey @hus_qy I'm very curious of something. How would you answer the question #1 "What are they building?"
What is your opinion on what Kaspa is building?
Here is the draft for the spec of the mentioned change (including the corresponding algorithms for guests to efficiently prove periods of inactivity with sublinear complexity): github.com/kaspanet/vprogs/b…
Quick TN10/Toccata update from @michaelsuttonil
"As part of the final ZK audit, we found a few Groth16 verifier hardening fixes that should be included before #Toccata is finalized for mainnet. PR #1013 adds this activation-gated hardening: stricter Groth16 input/VK/proof handling, plus per-public-input pricing. Together, these prevent worst-case constructions that could exceed our 10ms-per-block benchmarking target.
We are also adding one last SMT polish, suggested by @hus_qy and Max during final review while building the vprogs/based-apps infrastructure. Each seqcommit includes a context hash with block-related info; we want to add an inactivity_shortcut link there to the seqcommit from F-time back. This lets inactivity proofs hop through these shortcuts instead of walking long linear paths, while also avoiding a dependency inside the zk guest on the exact inactivity threshold.
Since these changes are consensus-facing, they need to go through a fast TN10 HF/release cycle before we finalize Toccata for mainnet. The work is expected to complete in the next 1-2 days, followed by a fast TN10 activation cycle with up to 24h of prep time.
After that, the finalized logic will be PRed back into Toccata without the special TN10 activation scaffolding, and mainnet activation can move forward."
I think the questions @hashdag raised are not necessarily only tied to technological challenges but are also more of a "mindset issue".
People have to understand that they can do incredible things with these emerging tools that have never been done before.
Crypto needs to turn from a collection of bag holders, hunting for yield, into a group of people that actually want to change the world!
That should be the message of Kaspa - not digital anarchy but a full blown digital society that interfaces with the real world in as many meaningful ways as possible and that has a shared vision of the future.
It's fine to generate wealth along the way but we should also be aware of the amount of agency we have as a collective to just do things.
Replying to @Radical_Ed_Bad
You are absolutely right: tools alone are not enough.
What you also need is a unifying mission - a stag worth hunting together - and it cannot just be a product, a memecoin or a financial instrument. It has to point beyond finance and beyond economic settlement.
That is why I do not think the real opportunity here is simply to build better tools for coordination. It is to build mission-driven institutions that can coordinate people around questions and goals that existing structures struggle to hold.
I think I have already identified the stag I personally want to hunt: properly exploring the possibility that cognition is a scale-free process in our cosmos.
A growing number of scientists and researchers are beginning to take this idea seriously. But the work lives in the cracks between established fields - AI, philosophy, physics, cosmology, biology, economics, and perhaps even some form of spirituality - which makes collaboration unusually hard and costly.
The people best positioned to push it forward are usually too busy doing the actual work to also build the social infrastructure needed to coordinate the field in a persistent and goal-directed way.
There are of course people like Dr. Michael Levin trying to connect the dots by organizing conferences and conversations across disciplines. But efforts like these are still relatively isolated, often revolve around key individuals, and lack a persistent address that others can turn to if they want to follow the work, contribute, or collaborate.
And if this movement keeps growing, the coordination burden on those individuals will only increase.
That is exactly why I think a distributed institution dedicated to this mission could matter - something like a Cognitive Cosmos Institute: a persistent coordination layer for people working on these questions, and potentially even a new channel for funding outside the established structures of academia.
Maybe it fails. Maybe people think the whole idea is nonsense.
But I believe we are at a unique moment in the development of our species. We now have tools that are still radically underutilized when it comes to building mission-driven institutions.
I think people generally underestimate how much agency they actually have.
Sometimes you can just do things. And it is up to us to build the tools that empower people to do exactly that.
I just got back from my Easter trip visiting family, and one of the first things I made time for was listening to Yonatan’s Oxford Union speech. I think he absolutely nailed it: youtube.com/watch?v=VIZGKoIa…
If there is one thing we can learn from our progress in AI, it is that intelligent behavior emerges when many components explore degrees of freedom and converge, through distributed constraint resolution, into coherent and stable patterns.
The modern world has connected an enormous number of people and given us unimaginable freedom, but it still lacks a credible way to enforce shared constraints.
The result is a crisis of responsibility at every scale of society: from cyberbullying to former superpowers chasing old glory through war, to leaders blaming the weakest members of society for national decline, or even killing their own citizens to preserve power.
At the same time, our capacity to inflict harm on one another has become increasingly asymmetric. Small actors can now create disproportionately large disruptions, and conflicts no longer remain local. They send shockwaves through the emerging superorganism we call humanity.
The age in which we could dominate one another and still produce a stable world is coming to an end. The only serious path forward is collaboration.
People may feel pessimistic about the future, but I think we are approaching an inflection point. Even the old superpowers are beginning to learn this lesson the hard way.
The American Dream of "I can make it" is gradually giving way to the realization that individual prosperity depends on collective wellbeing, and that we can build far larger and more meaningful things when we share a common dream.
That is why I am excited about DLTs, and Kaspa in particular.
Not because I see them as safe havens for hiding wealth from corrupt governments in some dystopian future, or because I want people to get rich by selling to later participants.
But because I believe DLTs can offer a superior foundation for large-scale human coordination: one that is more neutral and reliable than traditional models based on force and mutual deterrence.
In that world, wealth is not the goal in itself, but a byproduct of coordinating around shared missions, empowering people to contribute, and aligning incentives toward common outcomes.
The future is not about building better products. It is about building better protocols: systems that allow human beings to coordinate meaningfully at larger scales than ever before.
For the first time in human history, we have the tools to build institutions that are not bound to territory, yet can still provide structural coherence without having to fight wars to establish their legitimacy.
What we need now is a group of people bold enough to take that mission seriously.
I personally think that constraints drive innovation and the faster Kaspa needs to look for a viable economic model to displace shrinking block rewards, the earlier we can discuss the really interesting things like uPoW.
Replying to @Plinz
The biggest problem I have with Orch OR is that it conflates consciousness with cognition.
If we define "choice" as the context-sensitive actualization of one concrete behavior from a structured set of possibilities that extremizes some variational principle, then quantum mechanics looks like a very strong formal model of that pattern.
Intelligent behavior emerges when components explore degrees of freedom and converge through distributed constraint resolution into coherent, goal-stabilizing patterns.
A goal is any attractor that is robust under perturbations at the timescale of interest and not necessarily a representation of future states.
Our universe is not made of smaller and smaller objects but larger and larger processes and we shouldn't ask which objects are conscious but which kind of processes generate a persistent "point of view".
But if nature was scaling a form of proto-agency, then physics should be about the composition and geometry of possibility spaces ... right?
This doesn't rule out the possibility that microtubules are relevant for consciousness or that some primitive form of awareness or valence are primal but it feels like Orch OR is putting the cart before the horse which makes it very hard to engage with it in a structured way.
Replying to @kuda_ch @michaelsuttonil
The full vprogs vision of composable zk-based apps requires essentially 4 major building blocks:
1. You need a runtime that can efficiently drive state transitions.
2. You need a way to prove the activity of that runtime.
3. You need a way to settle those proofs on the L1 using covenants.
4. You need a "meta-program" that can invoke and orchestrate user-deployed guests for composability while enforcing certain constraints.
We are currently working on step 3. which will already enable programmability but interactions between apps have to go through the L1.
The full vprogs vision of synchronously composable based apps will only be achieved once we advance to step 4.
It's hard to say how long things will take but so far it took a few weeks for each milestone so I would expect a similar rate of progress.
Okay, it's time for a little update:
I just finished the work on the zero knowledge part of the vprogs framework, which introduces the ability to prove arbitrary computation.
It consists of the following 8 PRs that gradually introduce the necessary features:
1. ZK-framework preparations (github.com/kaspanet/vprogs/p…):
This PR cleans up the scheduler and storage layers, extends the build tooling with workspace-wide dependency checking, adds the ability to publish artifacts for transactions and batches (which will later hold the proofs), renames some core types for clarity, and introduces lifecycle events on the Processor trait that allow a VM to hook into key scheduler events like batch creation, commit, shutdown, and rollback.
2. Core Codec (github.com/kaspanet/vprogs/p…):
This PR introduces a lightweight encoding library for ZK wire formats.
In a zkVM guest, every byte operation contributes to the proof cost, so the codec is designed to reinterpret data in-place rather than copying it.
It includes zero-copy binary decoding (Reader, Bits) and sorted-unique encoding for deterministic key ordering. It is built for no_std so it runs inside zkVM guests.
3. Core SMT (github.com/kaspanet/vprogs/p…):
To prove state transitions, we need cryptographic state commitments. This PR adds a versioned Sparse Merkle Tree that produces a single root hash representing the entire state.
It includes all state-of-the-art optimizations: shortcut leaves at higher tree levels to avoid full-depth paths for sparse regions, multi-proof compression that shares sibling hashes across multiple keys, and compact topology bit-packing to minimize proof size.
It integrates into the existing storage and scheduler layers so that every batch commit updates the authenticated state root, while rollback and pruning maintain tree consistency.
4. ZK ABI (github.com/kaspanet/vprogs/p…):
Defines the wire format for communication between the host and zkVM guest programs, establishing a universal language for proof composition. It specifies how inputs, outputs, and journals are structured for two levels of proving: the transaction processor, which proves individual transaction execution against a set of resources, and the batch processor, which aggregates transaction proofs and proves the resulting state root transition.
Because the ABI is backend-agnostic and no_std compatible, any zkVM backend can directly use it (non-Rust zkVMs would need to reimplement the ABI in their language).
5. ZK Transaction Prover (github.com/kaspanet/vprogs/p…):
Introduces the transaction proving worker, which receives serialized execution contexts via the ABI wire format and submits them to a backend-specific prover on a dedicated thread. The Backend trait abstracts the actual proof generation, so different zkVM backends can be swapped without changing the pipeline.
6. ZK Batch Prover (github.com/kaspanet/vprogs/p…):
Introduces the batch proving worker, which collects the individual transaction proof artifacts, pairs them with an SMT proof covering the batch's resources, and submits the combined input to a backend-specific batch prover. The result is a single proof attesting to the entire batch's state root transition.
Like the transaction prover, the Backend trait abstracts proof generation so different zkVM backends can be swapped without changing the pipeline.
7. ZK VM (github.com/kaspanet/vprogs/p…):
Wires everything together by implementing the scheduler's Processor trait with ZK proving support. The VM hooks into the lifecycle events introduced in PR 1 to feed executed transactions into the transaction prover and batches into the batch prover.
Proving is optional and configurable - it can be disabled entirely, run at the transaction level only, or run the full batch proving pipeline.
8. ZK Backend RISC0 (github.com/kaspanet/vprogs/p…):
Provides the first concrete zkVM backend using risc0. It implements the transaction and batch Backend traits, includes two pre-compiled guest programs (one for transaction processing, one for batch aggregation), and ships with an integration test suite that verifies the full pipeline end-to-end - from transaction execution through batch proof generation to state root verification.
TL;DR:
While the early version of the framework focused on maximizing the parallelizability of execution, this feature focuses on extending this capability to maximizing the parallelizability of proof production.
If you're a builder: this is the first version of the framework that lets you write guest programs with a Solana-like API (resources, instructions, program contexts) and have them proven in a zkVM.
The current milestone uses a single hardcoded guest program - composability across multiple programs and bridging assets in and out of the L1 are part of the upcoming milestones, but if you're eager to start tinkering, the execution and proving pipeline is fully functional and provides a minimal environment to build and test guest logic today.
Once we add user-deployed guests, they will move one logical layer down: the current transaction processor will become a hardcoded-circuit that handles invocation and access delegation to user programs, similar to how SUI handles programmable transactions (including linear type safety at the program boundary).
In practice, this means guest programs will be invoked with a very similar API but scoped to a subset of resources, so the basic programming model won't change. Note that guests currently handle their own access authentication (e.g. signature checks) - the framework will eventually manage this automatically.
If you want to contribute, two areas where community involvement would be especially impactful:
- An Anchor-like DSL for writing guest programs -- the ABI is stable enough to build on, and a good developer experience layer would make this accessible to a much wider audience.
- A second zkVM backend (e.g. SP1) - the Backend traits are designed for this, and a second implementation would prove out the abstraction.
One thing I find particularly interesting in the context of PoW: the block hash provides an unpredictable, unbiasable random input that is revealed after transaction sequencing.
This gives guest programs native access to on-chain randomness without oracles or additional infrastructure - something traditionally hard to achieve in smart contract platforms.
PS: I am also planning to start with the promised regular hangouts but since I will visit my family over easter and want to get a better understanding of the open questions next week (it's good to have some problems to wrestle during that slower time 😅), I decided to start with that once I am back (12th of April).
Generally speaking, is there a day that people would prefer for these hangouts? I guess monday would be bad as there is already another community event (write your preferences in the comments if you have a strong opinion).
Today there is a bigger update because there are 3 new PRs that are ready for review.
The first one (github.com/kaspanet/vprogs/p…) fixes some bugs and introduces the SchedulerState which unifies the way we expose shared state in our framework.
The second one (github.com/kaspanet/vprogs/p…) introduces the node-framework which builds on top of the first PR and introduces a generic platform for building L2 nodes that ingest data from the Kaspa L1 to produce state changes (and eventually proofs) of the L2-execution.
The third one (github.com/kaspanet/vprogs/p…) introduces the node-vprogs-cli - an actual binary that can be executed and that follows the L1 to execute transactions in a concrete VM.
The binary is designed to support compile-time modularity, which means that by updating a single line in the backend.rs we can swap out both, the storage and the VM.
A VM is defined by three functions:
1. A pre_process_block function which extracts the relevant L2 transactions from the L1 chainblock.
2. A process_transaction function which executes a single transaction (within its scope) and produces execution-results.
3. A post_process_block function which takes the execution results of the individual transactions and stitches them together into an aggegrated proof structure which can be settled on the L1.
All steps are parallelized as much as the underlying causal structure permits.
I still have a few chores on my todo-list and there are still a few missing parts (like syncing from state that we didn't actively witness) but this is pretty much as far as we get without re-integrating with the covenants on L1, so the next steps will be to actually design the concrete framework for settling state transitions on the L1 (and consequently syncing from it).
I suspect that this will require a little bit of back and forth between the two development efforts but we are getting to the point where things start to get interesting.
Here is the next one: github.com/kaspanet/vprogs/p…
This PR mirrors the Checkpoint related changes, we previously introduced in the Scheduler in the L1 bridge, so both components can speak the same "language" before connecting them in the node framework.
It also introduces a ChainBlockMetadata type that contains relevant metadata about each ChainBlock that gets passed through to the L2 execution.
It currently only contains the hash as an additional identifier and the blue score for rollback depth detection but we will add more data as it becomes necessary.
Another PR is ready for review / comments: github.com/kaspanet/vprogs/p…
This one introduces a coordination mechanism between rollback and pruning which are two independent processes that need to make sure that they don't interfere with each other - e.g. if we try to rollback then the pruning should pause if the rollback target is within its pruning range or the rollback should abort if the data is already gone).
In theory something like that should never happen as we only prune things that are way beyond the "point of no return" for rollbacks but to make the L2 node bullet proof, we need to handle all edge cases (even the ones that have an astronomically low chance of ever happening).
PS: I am planning to split the pruning worker into a manager and a worker to have a better separation of concerns but since this is one of the dependencies for the upcoming node-framework, I think it makes sense to merge this as soon as possible and tackle the cleanup in a separate PR after the node-framework is ready.
Hans Moog retweeted
Kaspa’s covenant stack is converging on a shared goal: make real L1 apps approachable, and make secure design the default rather than an expert-only art.
tl;dr
Two layers are landing in tandem:
(i) Top of stack: a high-level language that makes covenant authoring feel like “writing apps”, not “fighting script”
(ii) Base of stack: a consensus primitive that makes stateful covenants practical at scale, without recursive lineage proofs
Silverscript was just announced as Kaspa’s first high-level covenant language/compiler, targeting local-state apps in the UTXO model. Complementing that tooling is KIP-20: Covenant IDs.
The strategic role of KIP-20: UTXO already ties “rules own state” locally via the spending script. The difficulty is carrying that relation temporally across transitions in a local-compute model, without turning every spend into a recursive “prove my ancestors” witness construction.
KIP-20 tightens that temporal linkage at the consensus layer by introducing a covenant_id tracked by consensus. Result: stateful designs no longer depend on parent or grandparent transaction witnesses as a lineage workaround. They become first-class citizens: covenant identity and lineage are native, so designing secure stateful schemes becomes simpler and more robust.
The broader theme is security-by-construction: Approachability isn’t just syntax. It is making it easy to write covenants that correctly validate state transitions, and hard to accidentally ship an insecure scheme. The compiler/scheme connection is still wip, but the direction is clear: have the compiler generate transition logic, then wrap it in schematic code that enforces a declared covenant pattern.
For now, Silverscript’s covenants/sdk folder is the best reference for how these pieces should meet from my pov. I am planning a longer overview tying together the various recent components.
Spec: github.com/michaelsutton/kip…
PR: github.com/kaspanet/kips/pul…
What did I tell you my friends?
The idea of a cognitive cosmos is spreading and what is fascinating is that it's not spreading from a particular source (it's not based on self-replication).
I never heard of Vitaly Vanchurin before and I am pretty sure he didn't read my essay about the self-optimizing universe (reverse-engineering-nature.c…) and yet we are telling almost the exact same story about the nature of reality!
I say the cosmos is searching for causal closure / trying to maximize the amount of self-interactions and he says the universe likes to be observed (that's basically the same statement).
The reason why this happens is the same reason why we have Celsius and Fahrenheit. If the conditions are right then ideas "condense into existence" in the same way as atoms form in a cooling plasma.
It happens simultaneously at multiple locations and we will see that a lot of existing theories from FEP, over the work in non-equilibrium dynamics to the concept of dissipative adaptation will ultimately turn out to be parts of the same meta-story - a searching cosmos whose primary building block is not an object but a transaction (an "indivisible stochastic process" that is computationally irreducible).
The difference between life and inanimate matter is not that one has agency and the other one has not but that one is able to self-replicate and the other one relies on things to "condensate into structural alignment".
@vanchurin I would really like to have a word with you - maybe you have time for a call at some point?
What if physics is just the universe learning? Most Theories of Everything episodes are mind‑bending for their math, physics, philosophy, or consciousness implications. This one hits all four simultaneously. Professor Vitaly Vanchurin joins me to argue the cosmos isn't just modeled by neural networks—it literally is one. Learning dynamics aren't a metaphor for physics; they are the physics. Vanchurin shows why we need a three‑way unification: quantum mechanics, general relativity, and observers.
The next PR is ready for review / comments: github.com/kaspanet/vprogs/p…
After building the L1 bridge to read data from the base layer, this PR now prepares the scheduler to links it's own artifacts (computational results and eventually proofs) to the artifacts of the L1 by associating a generic piece of BatchMetadata with each executed Batch.
This will be used by the upcoming node-framework to connect the two components in a transparent way where each produced effect can be mapped back to its source + context on the L1.
Instead of addressing executed batches purely by their index, we now address them as a combination of index + metadata - a Checkpoint which transparently maps to the subset of L2 activity contained in a ChainBlock on L1.
Here is the next PR: github.com/kaspanet/vprogs/p…
It adds the discussed denoising for the L1 signal via a reorg filter.
The filter uses a halving-based mechanism: observed reorg depths accumulate into a threshold that halves every period, creating a stable oscillation around the network's typical reorg depth. Setting:
config.with_reorg_filter_halving_period(Duration::from_secs(3600))
means you'll see roughly one reorg per hour in steady state.
I just wrote a response to a question in Telegram about the role of push / pull based communication in the bridge and I figured I could also post a copy here since it explains some of the rationals behind the bridge design (beware - it's a long text 😅):
When you want to receive information from an L1 Kaspa node, then you essentially have two forms of communication:
1. push based communcation (the server calls you and tells you what happened)
2. pull based communication (you call the server and ask it for information)
Push based communication is usually better because you don't need to constantly ask if something happened but get notified instead (which reduces the communication overhead).
Think of the following example: You planned a surprise dinner for your girlfriend and really need to know if she will make it home in time or if she got stuck in traffic. You could call her every minute to ask if she got stuck or you just negotiate that she will call you as soon as something unexpected happens.
The second option is clearly more efficient than the first one because if she never gets stuck in traffic then nobody ever wastes a single call (you only need to react if there is something to react to) and it is usually also faster because you don't have to wait one minute for the next call to learn about updates.
So the question was why the bridge uses both push-based and pull-based communication instead of relying purely on push notifications.
The core issue is that push-based notifications usually arrive as incremental updates. Going back to the girlfriend example, this would be like her sending messages such as "I turned left", "I accelerated" or "I turned right". On their own, these updates don't mean much unless you already have enough context to interpret them. If you don't know where she started or what route she's on, those messages are essentially meaningless.
In theory, that context can be reconstructed by carefully tracking every single update and maintaining a local model of what is happening. In practice, however, this quickly becomes problematic. You would need fairly complex logic on the consuming side to mirror each action and state transition, which effectively forces you to re-implement a large part of the L1 logic just to make sense of the updates. On top of that, updates can get lost. Maybe your phone has no reception for a moment or you're busy and miss a call. Once that happens, your local context is broken.
To recover from such situations, you are inevitably forced to also support pull-based communication where you can explicitly ask for the missing information and catch up. But this introduces yet another layer of complexity: if you are requesting historical or missing data at the same time as you are receiving real-time updates, you now need to understand exactly where the two streams meet. You have to decide when to stop relying on pulled data, when to resume trusting pushed updates and how to stitch both views together into one consistent picture. All of this is non-trivial, requires a significant amount of code and makes data ingestion much more complicated.
Because following the L1 is such a common use case, Kaspa recently introduced a specialized pull-based API tailored exactly for this purpose. You can think of it as a hotline: you call it, state your request and receive all the information you need in a single, structured response, instead of having to piece together context from many small incremental messages.
To avoid reinventing the wheel and to improve maintainability, the bridge makes use of this new pull-based API to retrieve the information it needs for its operation. At the same time, it does not simply poll the server at fixed intervals. Instead, it combines both communication styles: the server notifies the bridge when something relevant changes, and the bridge then calls the hotline to retrieve the corresponding details in a clean and structured way. This approach combines the benefits of both worlds and avoids unnecessary delays.
There is, however, one specific drawback. Because Kaspa supports reorgs - where the perceived virtual chain can temporarily oscillate between different states - it can happen that the bridge requests the same information multiple times from the hotline. This is a natural consequence of always asking for the "latest" view, even if parts of that view were already seen before. The claim was that by avoiding the hotline and relying purely on push-based updates, it would be possible to save this ambiguous traffic and reconstruct a valid perception of L1 activity locally.
To explain my perspective on this, imagine the bridge as a person sitting in a room with a big window, holding a phone. He receives calls from the server, knows the hotline number and is trained to communicate reliably - he knows what to ask if the phone stops working for a while or if he steps away briefly. This person then abstracts all of that complexity away by holding up clear, readable signs in front of the window for others to observe. From the outside, what really matters is the interface: how the window looks, what the signs look like, and that this room exists at all.
Once these interfaces toward L2 are defined, the exact behavior of the person inside the room becomes an implementation detail. We can later update how he operates internally - for example, making him rely more on incremental updates and only call the hotline when absolutely necessary to save bandwidth in the presence of frequent reorgs.
That is one possible approach, but in my opinion it is not even the best one. An L2 does not have the same requirements as an L1 node. An L1 node needs to track what might happen in order to reach consensus, whereas an L2 is usually interested in what did happen. Instead of mirroring the L1 as closely as possible - including all the short-lived fluctuations at the tip - it is often far more useful for an L2 to work with a stable perception of reality. This reduces wasted work on events that will later be discarded due to reorgs and avoids inefficient, speculative execution in favor of maximally efficient execution.
So rather than turning the worker behind the window into an expert that mirrors the server in every detail, we can teach him something else: how long it typically takes for the perception of the chain to stabilize. Instead of always requesting the full latest history from the hotline, we can instruct him to only request the stable part. This removes the need for ambiguous data transmission just as effectively, but with orders of magnitude less code. At the same time, the bridge naturally becomes a kind of high-pass filter that removes unnecessary noise before it ever reaches the observers in front of the window.
TL;DR: Just because we have a functioning room today does not mean we cannot adjust the behavior of the worker tomorrow. Mirroring everything as closely as possible is not necessarily the desired outcome. We should try to leverage existing interfaces and capabilities instead of re-implementing large parts of the logic another time.
The real goal is to arrive at a working solution as quickly as possible, with minimal and robust code, without getting lost in micro-optimizations that prevent us from seeing higher-level improvements - such as a worker whose behavior is guided by a self-tuning hysteresis mechanism rather than by raw unstable L1 signals.
To tie all of this back to the early example: I see the final role of the bridge as a little intelligent agent that tells me only what is really relevant for me (if my girlfriend will be late) instead of telling me about every turn of the car.
PS: This is the kind of stuff I would like to discuss in the hangouts (maybe in a bit more detail).