Sebastien Guillemot
@sebastiengllmt.bsky.social
Co-founder of @PaimaStudios / @dcspark_io
Focus: game development & cryptography
Focus: game development & cryptography
These projects continue to evolve over time
Mina working to solve the data issue in very clever ways (future thread/video)
Midnight has some interesting R&D on function composition
So I'm excited to see both continue to grow!
Mina working to solve the data issue in very clever ways (future thread/video)
Midnight has some interesting R&D on function composition
So I'm excited to see both continue to grow!
February 2, 2025 at 10:11 PM
These projects continue to evolve over time
Mina working to solve the data issue in very clever ways (future thread/video)
Midnight has some interesting R&D on function composition
So I'm excited to see both continue to grow!
Mina working to solve the data issue in very clever ways (future thread/video)
Midnight has some interesting R&D on function composition
So I'm excited to see both continue to grow!
So both Mina and Midnight provide similar functionality
But they implement it very different ways, both with trade-offs!
They're both cleverly engineered, which is why we've followed both of them closely 👍
But they implement it very different ways, both with trade-offs!
They're both cleverly engineered, which is why we've followed both of them closely 👍
February 2, 2025 at 10:11 PM
So both Mina and Midnight provide similar functionality
But they implement it very different ways, both with trade-offs!
They're both cleverly engineered, which is why we've followed both of them closely 👍
But they implement it very different ways, both with trade-offs!
They're both cleverly engineered, which is why we've followed both of them closely 👍
Midnight, by thinking of data & variables as the primitive (instead of function composition), makes it easy to write data-heavy apps!
You can build
- games (secret information)
- RWAs (only reveal regulatory-relevant info)
- DeFi (don't reveal your position right away)
and more
You can build
- games (secret information)
- RWAs (only reveal regulatory-relevant info)
- DeFi (don't reveal your position right away)
and more
February 2, 2025 at 10:11 PM
Midnight, by thinking of data & variables as the primitive (instead of function composition), makes it easy to write data-heavy apps!
You can build
- games (secret information)
- RWAs (only reveal regulatory-relevant info)
- DeFi (don't reveal your position right away)
and more
You can build
- games (secret information)
- RWAs (only reveal regulatory-relevant info)
- DeFi (don't reveal your position right away)
and more
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)
✖ 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
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)
✖ 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)
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.)
And players have some private state (their position in the map, how much gold they have, etc.)
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.)
And players have some private state (their position in the map, how much gold they have, etc.)
(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
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
(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
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
Need data? You need to fetch it from elsewhere (ex: somebody whose node kept a backup)
You can still prove the data somebody gives you is correct (since you know the latest block, aka what the end result should be)
but it makes data-heavy dApps on Mina bit hard to build
You can still prove the data somebody gives you is correct (since you know the latest block, aka what the end result should be)
but it makes data-heavy dApps on Mina bit hard to build
February 2, 2025 at 10:11 PM
Need data? You need to fetch it from elsewhere (ex: somebody whose node kept a backup)
You can still prove the data somebody gives you is correct (since you know the latest block, aka what the end result should be)
but it makes data-heavy dApps on Mina bit hard to build
You can still prove the data somebody gives you is correct (since you know the latest block, aka what the end result should be)
but it makes data-heavy dApps on Mina bit hard to build
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
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
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
Unlike public blockchains, the data is not kept around in the blocks! Everything just gets compressed into a proof
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!
we automatically are able to build this super succinct blockchain like we wanted!
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!
we automatically are able to build this super succinct blockchain like we wanted!
Transactions are combining proofs of multiple functions
Blocks are just combining proofs of multiple txs
A blockchain is just combining proofs of multiple blocks!
Blocks are just combining proofs of multiple txs
A blockchain is just combining proofs of multiple blocks!
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!
Blocks are just combining proofs of multiple txs
A blockchain is just combining proofs of multiple blocks!
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!
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
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!
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!
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)
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
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)
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)
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!
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
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!
So this means we can now combine everything into just a single proof of the genesis block to the latest block!
(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
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
(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
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
(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
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
(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
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
We'll explain how Mina & Midnight use these in three steps:
1. How do regular chains work
2. How does Mina work
3. How does Midnight work
1. How do regular chains work
2. How does Mina work
3. How does Midnight work
February 2, 2025 at 10:11 PM
We'll explain how Mina & Midnight use these in three steps:
1. How do regular chains work
2. How does Mina work
3. How does Midnight work
1. How do regular chains work
2. How does Mina work
3. How does Midnight work
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
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
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
Conceptually, you can think of revealing you know the location of multiple Waldos across different pages at the same time
This gives you a way to show two things:
1. Privacy: you know where Waldo is (without revealing to your friend, as they can't see the rest of the book other than your small hole)
2. Compression: You've proven Waldo exists by only showing a small amount of info (a small hole)
1. Privacy: you know where Waldo is (without revealing to your friend, as they can't see the rest of the book other than your small hole)
2. Compression: You've proven Waldo exists by only showing a small amount of info (a small hole)
February 2, 2025 at 10:11 PM
This gives you a way to show two things:
1. Privacy: you know where Waldo is (without revealing to your friend, as they can't see the rest of the book other than your small hole)
2. Compression: You've proven Waldo exists by only showing a small amount of info (a small hole)
1. Privacy: you know where Waldo is (without revealing to your friend, as they can't see the rest of the book other than your small hole)
2. Compression: You've proven Waldo exists by only showing a small amount of info (a small hole)
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
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
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
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
"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
- 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
"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
- Private computation (required for RWA, gaming, some DeFi apps)
- Massive compression (useful for L2s, bridges, data-heavy use-cases)
Midnight & Mina give both
It was super fun to learn about color theory, and very satisfying that it tied multiple fields of math together with delightfully surprising results
Hope you enjoyed reading this as much as I enjoyed writing it!
Hope you enjoyed reading this as much as I enjoyed writing it!
December 1, 2024 at 9:48 PM
It was super fun to learn about color theory, and very satisfying that it tied multiple fields of math together with delightfully surprising results
Hope you enjoyed reading this as much as I enjoyed writing it!
Hope you enjoyed reading this as much as I enjoyed writing it!