
Blockchain for Enterprise
People tend to overestimate how easy it is to create a blockchain. Just because you were able to deploy a network doesn’t make you an expert on blockchain. As a matter of fact, even an intern can do it in minutes. Here, try it. You know what else is easy to deploy? A webpage. Creating a blockchain is easy, and you can do it at zero cost and effort for as long as you don’t care about the design and spec of your network. Understanding the engineering constraints to design a secure and functiona...

Can They Really Sell Your Eyeball Scans? A Technical Review of World
Here I am, resurrecting my blog like a dusty necromancer coming back for one last summon. And what brought me back from the digital grave? Larpers. Everywhere. People posing as crypto 'experts' when they haven’t done the actual work of researching whatever the hekk it is they are talking about. It’s all vibes and appearances and no substance. Lately, the Orb and World has been made an antagonist in the Filipino crypto scene. And everyone suddenly became a data privacy expert and mor...

ZK Proofs Part II: ZK Maths
Standing before Danki today are ghosts of the audit reports I haven’t read and dat job hunt I’ve been meaning to do for weeks now… but in the name of mighty procrastination, let’s write something totally fun but completely unrelated to everything I needed to do: ZK maths frens. If you have no idea what this is all about and why danki is so happy as my hooves type dis post, then check out Part I. But if you’re too lazy to click… ZKP or Zero Knowledge Proofs is a cryptographic mechanism that al...
A Friendly Donkey



Blockchain for Enterprise
People tend to overestimate how easy it is to create a blockchain. Just because you were able to deploy a network doesn’t make you an expert on blockchain. As a matter of fact, even an intern can do it in minutes. Here, try it. You know what else is easy to deploy? A webpage. Creating a blockchain is easy, and you can do it at zero cost and effort for as long as you don’t care about the design and spec of your network. Understanding the engineering constraints to design a secure and functiona...

Can They Really Sell Your Eyeball Scans? A Technical Review of World
Here I am, resurrecting my blog like a dusty necromancer coming back for one last summon. And what brought me back from the digital grave? Larpers. Everywhere. People posing as crypto 'experts' when they haven’t done the actual work of researching whatever the hekk it is they are talking about. It’s all vibes and appearances and no substance. Lately, the Orb and World has been made an antagonist in the Filipino crypto scene. And everyone suddenly became a data privacy expert and mor...

ZK Proofs Part II: ZK Maths
Standing before Danki today are ghosts of the audit reports I haven’t read and dat job hunt I’ve been meaning to do for weeks now… but in the name of mighty procrastination, let’s write something totally fun but completely unrelated to everything I needed to do: ZK maths frens. If you have no idea what this is all about and why danki is so happy as my hooves type dis post, then check out Part I. But if you’re too lazy to click… ZKP or Zero Knowledge Proofs is a cryptographic mechanism that al...
A Friendly Donkey
Share Dialog
Share Dialog

Subscribe to 0xDanki ( Tin Erispe )

Subscribe to 0xDanki ( Tin Erispe )
<100 subscribers
<100 subscribers
If you’ve been here long enough, you would have already heard of the blockchain trilemma where you can only pick two out of three between security, speed, and decentralization. But that is so 2020.
Some years ago, we expect one single blockchain to perform various functions for us. For instance, Ethereum has become congested because it was juggling between validating incoming transactions, arranging them into blocks, executing them, and finally keeping all these growing records available at all times. That was a lot of tasks. And it slows down the network. So Layer 2’s and sidechains were made to decongest it by delegating the task of computation for L1s and then pushing the result of multiple transactions within a single transaction to L1.
Sounds simple. And then we ask clarifying questions like, how do these L2 solutions prove to L1 that the transaction they process is actually valid? That’s how we get to proving systems, and there are two types:
Fraud Proofs
Fraud proofs are used by optimistic rollups. Optimistic rollups just assume that all transactions are valid and pushes them to their block, which sounds a little crazy but is actually secure because there are fraud proofs. There will be a time window for anyone to challenge the block made in L2 before it becomes accepted in L1.
To challenge a transaction’s validity, anyone can compute a fraud proof which is basically a proof of mismatch between specific parts of the merkle tree and the condensed data on the merkle root. When a fraud proof is accepted, the rollup simply re-updates its state and the block builder who included the invalid transaction gets a penalty.
You gotta note that we require that data from L1 be accessible to L2 in order for challengers to produce a fraud proof.
Zero-Knowledge Proofs
Zero-knowledge rollups also bundle up transactions and summarizes their blocks to L1. But unlike fraud proofs, validity proofs don’t need a challenge period to finalize state changes. It uses zero-knowledge cryptography to prove that the changes being pushed to L1 is indeed a result of executing valid transactions made on the rollup. Once the validity proof is submitted to L1, then the state changes are instantly accepted.
Now this wouldn’t require any access to L1 data, because they are merely sending a proof of computation that happened within the zk rollup.
There are many cool ways to design a zk rollup, and there are many flavors of this cryptography to choose from (eg. SNARKS, STARKS, etc.), but I would have to write the comparison in a separate post. Hekk, I might wanna write about how a typical proving circuit in zk-rollups look like. But moving on…
You might notice that data availability is sometimes an issue if the historical transaction needs to be proven as valid by other chains. But storage in the blockchain is expensive, and nodes have to continuously store a growing history if they want to make the data available. So to give us options, we have at least three types of L2 solutions:
Rollups – a layer that executes the transactions and then sends a proof AND a record of all these processed transactions as call data to L1.
Validiums – only executes the transaction and sends a proof of validity to L1. Incredibly cheap but has a chance of locking your funds in the validium. Great use for not-so important transactions like on-chain games.
Volitions – lets the user decide whether to use a validium or a rollup for their transaction.
And then there are also sidechains whose history is separate from the L1 and has its own consensus model (they don’t do any proving to L1 and don’t inherit its security). Sidechains are merely connected to L1s by a two-way bridge that can move assets between the chains.
Ok folks, that’s the execution layer. Now people can have the option of faster transaction processing through these L2s. Although with this design we are still putting strain on L1 because it has three jobs to do: making the network agree on just one version of truth (the blockchain’s state), deciding on how to sequence the transactions, and storing all that transaction history. We’re gonna be munching on these next, but for now GN!
If you’ve been here long enough, you would have already heard of the blockchain trilemma where you can only pick two out of three between security, speed, and decentralization. But that is so 2020.
Some years ago, we expect one single blockchain to perform various functions for us. For instance, Ethereum has become congested because it was juggling between validating incoming transactions, arranging them into blocks, executing them, and finally keeping all these growing records available at all times. That was a lot of tasks. And it slows down the network. So Layer 2’s and sidechains were made to decongest it by delegating the task of computation for L1s and then pushing the result of multiple transactions within a single transaction to L1.
Sounds simple. And then we ask clarifying questions like, how do these L2 solutions prove to L1 that the transaction they process is actually valid? That’s how we get to proving systems, and there are two types:
Fraud Proofs
Fraud proofs are used by optimistic rollups. Optimistic rollups just assume that all transactions are valid and pushes them to their block, which sounds a little crazy but is actually secure because there are fraud proofs. There will be a time window for anyone to challenge the block made in L2 before it becomes accepted in L1.
To challenge a transaction’s validity, anyone can compute a fraud proof which is basically a proof of mismatch between specific parts of the merkle tree and the condensed data on the merkle root. When a fraud proof is accepted, the rollup simply re-updates its state and the block builder who included the invalid transaction gets a penalty.
You gotta note that we require that data from L1 be accessible to L2 in order for challengers to produce a fraud proof.
Zero-Knowledge Proofs
Zero-knowledge rollups also bundle up transactions and summarizes their blocks to L1. But unlike fraud proofs, validity proofs don’t need a challenge period to finalize state changes. It uses zero-knowledge cryptography to prove that the changes being pushed to L1 is indeed a result of executing valid transactions made on the rollup. Once the validity proof is submitted to L1, then the state changes are instantly accepted.
Now this wouldn’t require any access to L1 data, because they are merely sending a proof of computation that happened within the zk rollup.
There are many cool ways to design a zk rollup, and there are many flavors of this cryptography to choose from (eg. SNARKS, STARKS, etc.), but I would have to write the comparison in a separate post. Hekk, I might wanna write about how a typical proving circuit in zk-rollups look like. But moving on…
You might notice that data availability is sometimes an issue if the historical transaction needs to be proven as valid by other chains. But storage in the blockchain is expensive, and nodes have to continuously store a growing history if they want to make the data available. So to give us options, we have at least three types of L2 solutions:
Rollups – a layer that executes the transactions and then sends a proof AND a record of all these processed transactions as call data to L1.
Validiums – only executes the transaction and sends a proof of validity to L1. Incredibly cheap but has a chance of locking your funds in the validium. Great use for not-so important transactions like on-chain games.
Volitions – lets the user decide whether to use a validium or a rollup for their transaction.
And then there are also sidechains whose history is separate from the L1 and has its own consensus model (they don’t do any proving to L1 and don’t inherit its security). Sidechains are merely connected to L1s by a two-way bridge that can move assets between the chains.
Ok folks, that’s the execution layer. Now people can have the option of faster transaction processing through these L2s. Although with this design we are still putting strain on L1 because it has three jobs to do: making the network agree on just one version of truth (the blockchain’s state), deciding on how to sequence the transactions, and storing all that transaction history. We’re gonna be munching on these next, but for now GN!
No activity yet