I've been reading more about the future of blockchains. I just came across this great piece that looks at it from first principles.
The thesis is that blockchains as we currently use them are a intermediary step, towards future where computation/block production is centralised, and verifications is highly decentralised. In that world zero-knowledge proofs are the enabling technology, and would be the primary way in which we access trustless compute.
We currently use blockchains as distributed computer, with the execution environment acting like a CPU and the state acting as memory.
The computer ensures the property of trustlessness by running all transactions through all nodes in the network. That makes the network as performant as its weakest link, and seriously limits the complexity of applications leveraging trustless computing. Forget about anything that requires complex maths like ML, or many transactions like games.
One path to improvement is to increase node requirements. The problem is that raising the price of the hardware needed excludes validators, and leads to more centralisation.
Another path is to break down the computer into specialised components. That's been the Ethereum roadmap, through rollups. These are cheaper (and more centralised) execution environments that keep their own state and occasionally settle on Ethereum. They achieve scaling by bundling many transactions into a single one, posted to an L1 like Ethereum.
There are different ways to do this, but the most promising seems to be zero-knowledge proofs - they are a mathematical tool that guarantees that an given computation was performed according to a certain set of rules, without having to perform the computation again. Instead, a prover creates a mathematical proof that can then be verified much more cheaply than it would take to run the computations themselves.
Bringing it back to how we ensure trustlessness in blockchains, this creates an alternative for nodes. Instead of running all transactions, they could simply run proof verifications to the same effect, but more more cheaply. In that new architecture, state still exists on a blockchain, where all nodes store a record of it at all times. But state transactions occur as a result of computations that are executed off-chain and verified on-chain. Once all nodes have verified, state can be updated.
I like to think of this as hybrid architectures, where the computation happens offchain in a provable way, and state is available at all times to all participants. That's a model where block production is centralised, but trustlessness is guaranteed by the zero-knowledge proofs and the number of nodes (lower requirements = more nodes).
This is what Vitalik envisions in his ethereum endgame, and a future I see as increasingly probable as developer tooling brings down the costs of using proofs. At some point, using proofs becomes 100x cheaper and enables developers to build much more complex applications.
If we reach that point, zero-knowledge proofs will be the dominant mode of accessing trustless computing.
Zero-knowledge (ZK) is a technology that was invented in the mid 1980s, but really came of age in the past 4 years.
I think it deserves continued attention and wanted to articulate why I think it's an enthusing space. My thesis is that it will be a technology as important as blockchains, with a large impact both within and outside the context of crypto.
Zero-knowledge proofs' (ZKPs) are mathematical tools to verify things without revealing the underlying data e.g. a website checking your age without finding anything else about you, or proving you have a certain amount of money to a landlord without sharing sensitive financial information. They can also be used to verify that a computation has been performed according to a given set of rules, without performing the computation again.
Within crypto, that's how they are mostly used, to take infrastructure to the next level by increasing scalability. They work by aggregating transactions into a hash that is posted to the underling layer-1 blockchain. Many transactions are bundled into one, without losing trustless execution.
That increases scalability, reduces costs and increases security:
Scalability: ZKPs reduces the computational loads that goes onto L1 by aggregating transactions instead of recording each of them. They're like a compression algorithm for computations.
I held myself back from writing and publishing for the longest time because I believed I didn't have much to write about. A recent conversation helped me reframe that belief and start writing daily. The shift was to realise that the only way I'll have things to write about is to write - thinking is the outcome of writing, not the other way around.
When you start writing about your ideas you realise how flimsy they are, how fragile the assumptions you take for granted in conversations or in your inner monologue. That's because before you start writing, you haven't done much thinking. Thinking in the outcome, writing is the process.
In this piece I want to lay out how I try to write for insight. My process for writing with the purpose of thinking: noticing, struggling, and iterating.
Noticing
My siblings, mother and fiancée gifted me a camera for my 27th birthday. It's a beautiful object and I take a lot of joy in learning to use it. It's a bit of a cliche - pun intended - but it has changed the way I see things. When I walk with a camera, I notice the world in ways I wouldn't otherwise. Sometimes, I am able to capture these things in an image that others can appreciate. Most often though, I can't. The picture is blurry, the subject moved too fast for me to capture it, or the picture is fine, but they just can't see the point - it's not an interesting picture to them.
I've been reading more about the future of blockchains. I just came across this great piece that looks at it from first principles.
The thesis is that blockchains as we currently use them are a intermediary step, towards future where computation/block production is centralised, and verifications is highly decentralised. In that world zero-knowledge proofs are the enabling technology, and would be the primary way in which we access trustless compute.
We currently use blockchains as distributed computer, with the execution environment acting like a CPU and the state acting as memory.
The computer ensures the property of trustlessness by running all transactions through all nodes in the network. That makes the network as performant as its weakest link, and seriously limits the complexity of applications leveraging trustless computing. Forget about anything that requires complex maths like ML, or many transactions like games.
One path to improvement is to increase node requirements. The problem is that raising the price of the hardware needed excludes validators, and leads to more centralisation.
Another path is to break down the computer into specialised components. That's been the Ethereum roadmap, through rollups. These are cheaper (and more centralised) execution environments that keep their own state and occasionally settle on Ethereum. They achieve scaling by bundling many transactions into a single one, posted to an L1 like Ethereum.
There are different ways to do this, but the most promising seems to be zero-knowledge proofs - they are a mathematical tool that guarantees that an given computation was performed according to a certain set of rules, without having to perform the computation again. Instead, a prover creates a mathematical proof that can then be verified much more cheaply than it would take to run the computations themselves.
Bringing it back to how we ensure trustlessness in blockchains, this creates an alternative for nodes. Instead of running all transactions, they could simply run proof verifications to the same effect, but more more cheaply. In that new architecture, state still exists on a blockchain, where all nodes store a record of it at all times. But state transactions occur as a result of computations that are executed off-chain and verified on-chain. Once all nodes have verified, state can be updated.
I like to think of this as hybrid architectures, where the computation happens offchain in a provable way, and state is available at all times to all participants. That's a model where block production is centralised, but trustlessness is guaranteed by the zero-knowledge proofs and the number of nodes (lower requirements = more nodes).
This is what Vitalik envisions in his ethereum endgame, and a future I see as increasingly probable as developer tooling brings down the costs of using proofs. At some point, using proofs becomes 100x cheaper and enables developers to build much more complex applications.
If we reach that point, zero-knowledge proofs will be the dominant mode of accessing trustless computing.
Zero-knowledge (ZK) is a technology that was invented in the mid 1980s, but really came of age in the past 4 years.
I think it deserves continued attention and wanted to articulate why I think it's an enthusing space. My thesis is that it will be a technology as important as blockchains, with a large impact both within and outside the context of crypto.
Zero-knowledge proofs' (ZKPs) are mathematical tools to verify things without revealing the underlying data e.g. a website checking your age without finding anything else about you, or proving you have a certain amount of money to a landlord without sharing sensitive financial information. They can also be used to verify that a computation has been performed according to a given set of rules, without performing the computation again.
Within crypto, that's how they are mostly used, to take infrastructure to the next level by increasing scalability. They work by aggregating transactions into a hash that is posted to the underling layer-1 blockchain. Many transactions are bundled into one, without losing trustless execution.
That increases scalability, reduces costs and increases security:
Scalability: ZKPs reduces the computational loads that goes onto L1 by aggregating transactions instead of recording each of them. They're like a compression algorithm for computations.
I held myself back from writing and publishing for the longest time because I believed I didn't have much to write about. A recent conversation helped me reframe that belief and start writing daily. The shift was to realise that the only way I'll have things to write about is to write - thinking is the outcome of writing, not the other way around.
When you start writing about your ideas you realise how flimsy they are, how fragile the assumptions you take for granted in conversations or in your inner monologue. That's because before you start writing, you haven't done much thinking. Thinking in the outcome, writing is the process.
In this piece I want to lay out how I try to write for insight. My process for writing with the purpose of thinking: noticing, struggling, and iterating.
Noticing
My siblings, mother and fiancée gifted me a camera for my 27th birthday. It's a beautiful object and I take a lot of joy in learning to use it. It's a bit of a cliche - pun intended - but it has changed the way I see things. When I walk with a camera, I notice the world in ways I wouldn't otherwise. Sometimes, I am able to capture these things in an image that others can appreciate. Most often though, I can't. The picture is blurry, the subject moved too fast for me to capture it, or the picture is fine, but they just can't see the point - it's not an interesting picture to them.
one small idea
weekly (mostly) publication. I write to learn, sharing ideas and notes for what I find interesting
one small idea
weekly (mostly) publication. I write to learn, sharing ideas and notes for what I find interesting
Cost efficiency: having fewer transactions on L! reduces gas costs. ZK rollups also split the costs to verify the proof across all the transactions it contains. The cost of verifying some proofs like zk-STARKs (a type of proof) scale logarithmically to the number of transactions they aggregate: the more there are, the cheaper they get on average.
Security: Trustlessness used to be only achievable through a network of validators all replicating the same transactions. Using ZKPs means you no longer need a network of validators to achieve trustlessness in computations: the math offers strong security guarantees. Finality is also faster given that transactions can be considered final as soon as the proof has been verified.
They are the best solutions we have for the scalability problem, so much so that Ethereum is 'Starkifying' i.e. evolving to become a) a better L1 for ZK rollups (with things like the 'enshrined zkEVM') and b) gearing to leverage ZKPs at the protocol level to further improve scalability at the L1.
At maturity, it's likely we'll need very little blockchain and mostly ZKPs, with blockchains focused on data availability and consensus layers. Execution will be purely verifying proofs, unless it's for applications that requiresglobal consensus (like money or objective identity).
I don't care about crypto, why should I care?
Granted, ZK is currently only attracting crypto enthusiasts and moon math academics. But I think we should care because they are a technology that is getting to a point where it can be used to build applications that might redefine how we interact online.
They are the technology that might bring that conveniency/privacy tradeoff that's come to define the internet. ZKPs challenge the idea that it's normal to share personal information widely on the internet, for the sake of convenience. Building applications that use ZKPs introduces a spectrum of how much information we want to disclose and to whom.
You can rent a flat without having to send your bank statements to a stranger; you can borrow money without revealing all your personal financial details to an online financial institutions, you can prove past achievements without revealing your identity. For businesses and institutions it opens up the possibility of a private cloud where loads can be computed without revealing inputs to cloud providers.
These are a few, arguably low-brow, examples. The reality is that as with all early, complex and powerful technology it's hard to predict what will work. It is however easier to predict whether it will work. You typically need three ingredients: a) strong talent communities (e.g. Starknet, Risc-0, zkSync, Polygon, etc), b) significant amounts of capital, and c) distribution. I'm seeing early signs of all three.
So the design space is opening up. Some of the interesting features/possibilities it allows include:
Proving private information: e.g. salary, age, credit score, etc
Compare things without revealing them
Traceability of data without disclosing it's origin i.e. proving attribution of an hack/discovered vulnerability, pseudonymously proving achievements
Executing private transactions while keeping compliant audit trails e.g. trade execution, portfolio margining.
In short, ZKPs challenge how we build applications on the internet, what applications we can build, and how privacy can exist with blockchains. The design space is fresh, and the good ideas are ahead of us.
Seconds before biting my thumb with might
But in truth it doesn't matter what they think because I've already enjoyed the benefit of a walk with my eyes wide open: noticing beauty, hunting for interesting scenes, or creating them. The point is not the picture, it's going out with the intention to put something into focus and perhaps having the good fortune of finding something worth sharing.
When I make writing a regular practice, I read with more attention, listen to conversations better, and am more receptive to stories and metaphors in all situations. In a digital space filled with information and great conversations, I know that when I write I no longer feel like I'm drinking from the infinite internet content firehose. I am deliberate with what I choose to give my attention to, and how I engage with that content.
Reading or listening to a book or a podcast takes on a conversational quality. I am not merely absorbing the prose of a nameless figure, but I pay attention to the arguments, how I would have phrased them, whether I agree, and I notice ideas. These become the starting point of a train of thoughts that becomes my own. Reading becomes a conversation.
Thinking
What I've noticed is that it doesn't really matter what I start writing about - my thinking naturally converges on the topics I am curious about. I can choose an arbitrary starting point, and ultimately my I gravitate high-density to themes or ideas.
Once I have my starting point, a theme, an idea, a metaphor - I start pulling on it like a thread. I write a sentence, and that brings a question which then pulls my thinking in a given direction. Sometimes it leads to great and new ideas. Sometimes not, and it's fine. I'll catch it later and delete it or improve on it. This is where I typically form new ideas and connections that I wouldn't have otherwise done.
Take this piece: it started out with a title - 'How I write' - because I had been thinking about reading and writing quite a lot in the past few days. My first thought when I see that title is the question "why do I even write?" The next thought is the camera as a great analogy for how writing helps me look at things differently. And thought after thought, we eventually get to the idea of writing for insight.
The difficulty I often face at that stage is that the ideas I come up with are typically banal generalities or unfounded claims. I used to see this as evidence that I had nothing interesting to say. Now treat it as a signal that I need to keep writing until I land on something better. I once read about the metaphor of the writer's mind as a water cistern with mud at the bottom. When you turn the tap on, at first only murky water trickles. Your job as a writer is keep the tap open and let the mud go because after a while, the water becomes clear and flows in abundance (great visual explainer).
Editing - or iterating
What I've describe above is not entirely dissimilar to a self-administered Socratic process, a sort of monologue for insight. The process of giving birth to ideas is a messy one because not all ideas are equally good and well supported. That's why the third step of the process is going back to my writing with a critical eye.
I start by looking at the ideas themselves and their ordering. To evaluate individual ideas, I ask "why?" and "so what?" for each proposition. It's a forcing function to a) root your ideas in a cohesive argument, and spot where that argument is not so strong, and b) make sure the implications of a proposition are fully laid out.
The editing process is also a time to re-order ideas. Most ideas aren't new but there is much value in ordering them insights and concepts that makes sense of a given situation. To make that process easier, I write sentence by sentence - every time I am done with one, I hit enter to go to a new line. I can then evaluate each sentence on its own and re-order them when I start building paragraphs from individual sentences.
The final, and perhaps hardest phase of the editing process is bringing someone else in the document. Having a third-party's perspective on your text is a forcing function for clarity, insight, and brevity. One practice I'm working to develop is asking for specific feedback around the parts that surprise them, and those where they disagree. That helps me identity which sections are the most valuable, and those that need more work to make my point clearer and my argument more compelling.
The last part of the "editing for insight" process is a ruthless trimming of anything that doesn't serve the main point. There I'm optimising for insight to word ratio - it's the biggest predictor of the content I enjoy and aspire to create.
There's my process for writing. In truth, it's not so much a process as it is a cycle, that I try to go through at a high pace: notice interesting things and ideas, develop a point a view, and critically test it to improve it, and back to writing about the newfound ideas.
Thanks to Patrick Mayr for our conversations and the inspiration I draw from his own writing practice.
Cost efficiency: having fewer transactions on L! reduces gas costs. ZK rollups also split the costs to verify the proof across all the transactions it contains. The cost of verifying some proofs like zk-STARKs (a type of proof) scale logarithmically to the number of transactions they aggregate: the more there are, the cheaper they get on average.
Security: Trustlessness used to be only achievable through a network of validators all replicating the same transactions. Using ZKPs means you no longer need a network of validators to achieve trustlessness in computations: the math offers strong security guarantees. Finality is also faster given that transactions can be considered final as soon as the proof has been verified.
They are the best solutions we have for the scalability problem, so much so that Ethereum is 'Starkifying' i.e. evolving to become a) a better L1 for ZK rollups (with things like the 'enshrined zkEVM') and b) gearing to leverage ZKPs at the protocol level to further improve scalability at the L1.
At maturity, it's likely we'll need very little blockchain and mostly ZKPs, with blockchains focused on data availability and consensus layers. Execution will be purely verifying proofs, unless it's for applications that requiresglobal consensus (like money or objective identity).
I don't care about crypto, why should I care?
Granted, ZK is currently only attracting crypto enthusiasts and moon math academics. But I think we should care because they are a technology that is getting to a point where it can be used to build applications that might redefine how we interact online.
They are the technology that might bring that conveniency/privacy tradeoff that's come to define the internet. ZKPs challenge the idea that it's normal to share personal information widely on the internet, for the sake of convenience. Building applications that use ZKPs introduces a spectrum of how much information we want to disclose and to whom.
You can rent a flat without having to send your bank statements to a stranger; you can borrow money without revealing all your personal financial details to an online financial institutions, you can prove past achievements without revealing your identity. For businesses and institutions it opens up the possibility of a private cloud where loads can be computed without revealing inputs to cloud providers.
These are a few, arguably low-brow, examples. The reality is that as with all early, complex and powerful technology it's hard to predict what will work. It is however easier to predict whether it will work. You typically need three ingredients: a) strong talent communities (e.g. Starknet, Risc-0, zkSync, Polygon, etc), b) significant amounts of capital, and c) distribution. I'm seeing early signs of all three.
So the design space is opening up. Some of the interesting features/possibilities it allows include:
Proving private information: e.g. salary, age, credit score, etc
Compare things without revealing them
Traceability of data without disclosing it's origin i.e. proving attribution of an hack/discovered vulnerability, pseudonymously proving achievements
Executing private transactions while keeping compliant audit trails e.g. trade execution, portfolio margining.
In short, ZKPs challenge how we build applications on the internet, what applications we can build, and how privacy can exist with blockchains. The design space is fresh, and the good ideas are ahead of us.
Seconds before biting my thumb with might
But in truth it doesn't matter what they think because I've already enjoyed the benefit of a walk with my eyes wide open: noticing beauty, hunting for interesting scenes, or creating them. The point is not the picture, it's going out with the intention to put something into focus and perhaps having the good fortune of finding something worth sharing.
When I make writing a regular practice, I read with more attention, listen to conversations better, and am more receptive to stories and metaphors in all situations. In a digital space filled with information and great conversations, I know that when I write I no longer feel like I'm drinking from the infinite internet content firehose. I am deliberate with what I choose to give my attention to, and how I engage with that content.
Reading or listening to a book or a podcast takes on a conversational quality. I am not merely absorbing the prose of a nameless figure, but I pay attention to the arguments, how I would have phrased them, whether I agree, and I notice ideas. These become the starting point of a train of thoughts that becomes my own. Reading becomes a conversation.
Thinking
What I've noticed is that it doesn't really matter what I start writing about - my thinking naturally converges on the topics I am curious about. I can choose an arbitrary starting point, and ultimately my I gravitate high-density to themes or ideas.
Once I have my starting point, a theme, an idea, a metaphor - I start pulling on it like a thread. I write a sentence, and that brings a question which then pulls my thinking in a given direction. Sometimes it leads to great and new ideas. Sometimes not, and it's fine. I'll catch it later and delete it or improve on it. This is where I typically form new ideas and connections that I wouldn't have otherwise done.
Take this piece: it started out with a title - 'How I write' - because I had been thinking about reading and writing quite a lot in the past few days. My first thought when I see that title is the question "why do I even write?" The next thought is the camera as a great analogy for how writing helps me look at things differently. And thought after thought, we eventually get to the idea of writing for insight.
The difficulty I often face at that stage is that the ideas I come up with are typically banal generalities or unfounded claims. I used to see this as evidence that I had nothing interesting to say. Now treat it as a signal that I need to keep writing until I land on something better. I once read about the metaphor of the writer's mind as a water cistern with mud at the bottom. When you turn the tap on, at first only murky water trickles. Your job as a writer is keep the tap open and let the mud go because after a while, the water becomes clear and flows in abundance (great visual explainer).
Editing - or iterating
What I've describe above is not entirely dissimilar to a self-administered Socratic process, a sort of monologue for insight. The process of giving birth to ideas is a messy one because not all ideas are equally good and well supported. That's why the third step of the process is going back to my writing with a critical eye.
I start by looking at the ideas themselves and their ordering. To evaluate individual ideas, I ask "why?" and "so what?" for each proposition. It's a forcing function to a) root your ideas in a cohesive argument, and spot where that argument is not so strong, and b) make sure the implications of a proposition are fully laid out.
The editing process is also a time to re-order ideas. Most ideas aren't new but there is much value in ordering them insights and concepts that makes sense of a given situation. To make that process easier, I write sentence by sentence - every time I am done with one, I hit enter to go to a new line. I can then evaluate each sentence on its own and re-order them when I start building paragraphs from individual sentences.
The final, and perhaps hardest phase of the editing process is bringing someone else in the document. Having a third-party's perspective on your text is a forcing function for clarity, insight, and brevity. One practice I'm working to develop is asking for specific feedback around the parts that surprise them, and those where they disagree. That helps me identity which sections are the most valuable, and those that need more work to make my point clearer and my argument more compelling.
The last part of the "editing for insight" process is a ruthless trimming of anything that doesn't serve the main point. There I'm optimising for insight to word ratio - it's the biggest predictor of the content I enjoy and aspire to create.
There's my process for writing. In truth, it's not so much a process as it is a cycle, that I try to go through at a high pace: notice interesting things and ideas, develop a point a view, and critically test it to improve it, and back to writing about the newfound ideas.
Thanks to Patrick Mayr for our conversations and the inspiration I draw from his own writing practice.