sasha.computer 👋💻️

sasha.computer 👋💻️

Sasha

I blog about tech, learning, and my various interests.

Latest Posts

In part II, we covered the executor. The executor's main responsibility is to generate an execution trace of the program we want to prove. Before we can get to "proof of correct execution", we need a way to represent "correct execution";...
The ExecutorIn the first part of the series, we ended with a question in mind: "Starting with any arbitrary program X, how can I create a zero-knowledge proof of X's correct execution?" Before we can create a proof of correct execution,...
Part I## Why R0VM?RISC Zero's zkVM, known as R0VM, is really clever, like really really clever.To find out why, let's start with a question: "How do we prove a program ran correctly without having to run that whole program ourselves?" I...
Today I realised something important about how I learn: I've attempted to learn a ton of stuff throughout my life, some more successfully than others. My default image of "real learning" has always been sitting at a desk, grinding...
I'm not the biggest flashcard maniac, but there have been times in my life where they have proven very useful; learning a new language, learning physics concepts and equations to help make more topics more "automatic" in my brain etc....
Yesterday, I made the grand old mistake of catching up with an old friend; the heady combination of the first spring rays of much awaited UK sunshine and the joyous walks through Hyde park led me to consume more than one beer. I barely...
In the process of figuring out what I wanted to write about today, I did my usual strategy of searching and asking chatGPT to riff on some ideas I’ve had over the past few days. I’ve had an idea to do a series something to the likes of...
High-level programming languages allow you to store information as variables, define reusable functions, handle file operations, and perform tasks through loops and conditionals. These languages are designed to be understandable by...
Let's break down Rust's concept of ownership with a simple example: fn main() { let s1 = String::from("Hello"); // s1 owns "Hello" let s2 = s1; // Ownership moves from s1 to s2 // println!("{}, world!", s1); // Error: s1 no longer valid...
Source material: 30 Reflections Connor Leahy’s recent reflections on turning 30 are excellent—thought-provoking enough that I found myself both agreeing and disagreeing strongly with certain points. One aspect that always puzzles me is...
Search Random