Sebastien Guillemot
sebastiengllmt.bsky.social
Sebastien Guillemot
@sebastiengllmt.bsky.social
Co-founder of @PaimaStudios / @dcspark_io

Focus: game development & cryptography
Recently thinking that maybe game engines should ship default terminal multiplexer configs

Lots of times running the engine requires setting up multiple terminal window and it would be nice to have some pre-configured

Experimenting with this idea for our engine
June 8, 2025 at 11:57 PM
When a user wants to update the public state, they
✖ don't reveal their private state
✅do prove something happened in their private state to allow them to update the public state

ex: prove you did something to earn 50 points (not revealing it's because you built a building)
February 2, 2025 at 10:11 PM
For example, you can represent a strategy game as some small amount of public information (ex: points, etc.)

And players have some private state (their position in the map, how much gold they have, etc.)
February 2, 2025 at 10:11 PM
(3) Midnight

Midnight, instead, keeps track of a public chain (a bit more similar to Bitcoin)

However, each user in Midnight has their own private state that is never shared with the rest of the blockchain
February 2, 2025 at 10:11 PM
However, I skipped an important part: what happens to the data of smart contracts?

Unlike public blockchains, the data is not kept around in the blocks! Everything just gets compressed into a proof
February 2, 2025 at 10:11 PM
So in Mina, by just a very simple concept of modelling ZK proofs of "functions" that you can "compose"

we automatically are able to build this super succinct blockchain like we wanted!
February 2, 2025 at 10:11 PM
Transactions are combining proofs of multiple functions

Blocks are just combining proofs of multiple txs

A blockchain is just combining proofs of multiple blocks!
February 2, 2025 at 10:11 PM
Note that functions can call other functions (function "composition")

In our example, to prove "foo", we need to prove "bar" first

but remember: we know how to combine proofs together! So combining the proof of "bar" into a proof of "foo" is easy!
February 2, 2025 at 10:11 PM
But how do we generate ZK proofs of smart contracts?

Well, you can think of smart contracts as a list of functions

So all we really need is a way to generate "proofs" of a function (which, fortunately, is a very well studied problem with known solutions)
February 2, 2025 at 10:11 PM
As we saw earlier, we can combine proofs

So this means we can now combine everything into just a single proof of the genesis block to the latest block!
February 2, 2025 at 10:11 PM
(2) Mina

Similar to how we "proved Waldo exists", what if we instead "prove" there exists a block transitions

AKA, given block A, prove there exists some set of transactions that give you block B as a result

Now, ever transition is a ZK proof
February 2, 2025 at 10:11 PM
(1) Regular chains

If you want to know the state of Bitcoin, you often need to sync the full Bitcoin blockchain to get full security

However, this takes a lot of space on your device which isn't ideal. It's worse on chains like Ethereum, and even worse on Solana
February 2, 2025 at 10:11 PM
Mina & Midnight both use a technique called "recursive SNARKs" that allows you to combine proofs together

Conceptually, you can think of revealing you know the location of multiple Waldos across different pages at the same time
February 2, 2025 at 10:11 PM
To show both are possible, imagine a "Where's Waldo" game

How to prove to your friend you found Waldo without spoiling the game for them?

Answer: Cover the entire book with a big sheet of paper, and cut a small hole exactly where Waldo is
February 2, 2025 at 10:11 PM
"ZK" stands for "Zero Knowledge Cryptography". It's a technique that gives you at least one of two things:

- Private computation (required for RWA, gaming, some DeFi apps)
- Massive compression (useful for L2s, bridges, data-heavy use-cases)

Midnight & Mina give both
February 2, 2025 at 10:11 PM
every time I find a project I'd be interested in leveraging

> please don't be written in some bs language
> please don't be written in some bs language
> please don't be written in some bs language

the project's Github page
January 12, 2025 at 1:16 AM
This means that every color generated by our tool can also be used to generate a great Material Design color scheme !

This makes it super easy to have not just one color per system in your app,
But even generate colorful dashboards and subcomponents that feel color-aligned!
December 1, 2024 at 9:48 PM
Material Design has a recommendation for which color to use to create your color palette: its saturation should be above "48"

and for brightness 68,69,70

no matter which color you pick, there exists a choice with saturation above 48🤯
December 1, 2024 at 9:48 PM
In fact, brightness levels 68, 69 and 70 are the only brightness levels with a special property!

Many Anrdoid apps and websites use a design system called material design created by Google

It allows creating beautiful color schemes for your app on a color (ex: your brand color)
December 1, 2024 at 9:48 PM
Great! So now we know which brightness to pick!

and it gives us these beautiful colors, all while having a consistent brightness!
December 1, 2024 at 9:48 PM
So fast forwarding with some math details, it means we can use this fact to compute the entropy of every brightness level

which gives the graph below, and we can see brightness=69 maximizes entropy!

And remember, max entropy → closet to the uniform distribution from earlier!
December 1, 2024 at 9:48 PM
How is this related?

For a given brightness (ex: below), how likely is a color to be red? (it's probability)

Well it's represented by this simple division

number of red colors
----------------------
total number of colors
December 1, 2024 at 9:48 PM
To answer this, we'll have to pull out some math!

You might remember from high school that you can map probabilities according to certain shapes (I promise this will be related)

The simplest one is the uniform probability: all elements are equally likely to occur
December 1, 2024 at 9:48 PM
Fortunately (and really unexpectedly!) some brightnesses are almost perfectly distributed!

This means that for these brightnesses, no matter which color you pick, you can get a really nice-looking version of it

But which brightness is the most distributed?
December 1, 2024 at 9:48 PM
Great! But the animation shows us another glaring issue: some brightnesses have more colors than others!

This is really bad for us, because it means if we want to pick a bright color, we basically only have the choice between yellow and green
December 1, 2024 at 9:48 PM