Kazuki
@kazuki
Cofounder of Glasp. I collect ideas and stories worth sharing 📚
San Francisco, CA
Joined Oct 9, 2020
1069
Following
5750
Followers
1.46k
13.53k
169.30k
future.a16z.com/the-web3-playbook-using-token-incentives-to-bootstrap-new-networks/
Dec 12, 2021
6
medium.com/sequoia-capital/engagement-drives-stickiness-drives-retention-drives-growth-3a6ac53a7a00
Dec 8, 2021
102
www.nfx.com/post/psychology-startup-growth/
Dec 7, 2021
23
www.ben-evans.com/presentations
Dec 7, 2021
1
fs.blog/albert-einstein-simplicity/
Dec 6, 2021
92
www.stephendiehl.com/blog/disconnect.html
Dec 3, 2021
91
medium.com/1kxnetwork/organization-legos-the-state-of-dao-tooling-866b6879e93e
Dec 3, 2021
21
www.mckinsey.com/business-functions/m-and-a/our-insights/capturing-cross-selling-synergies-in-ma
Dec 2, 2021
162
www.lesswrong.com/posts/T382CLwAjsy3fmecf/how-to-take-smart-notes-ahrens-2017
Dec 1, 2021
151
writingcooperative.com/zettelkasten-how-one-german-scholar-was-so-freakishly-productive-997e4e0ca125
Nov 30, 2021
233
www.nirandfar.com/how-to-manufacture-desire/
Nov 30, 2021
12
www.slideshare.net/dmc500hats/startup-metrics-for-pirates-long-version
Nov 29, 2021
2
www.bvp.com/atlas/pinterest-ipo
Nov 28, 2021
52
www.usv.com/writing/2016/08/fat-protocols/
Nov 26, 2021
12
digitalnative.substack.com/p/digital-economies-gaming-and-ip-legos
Nov 24, 2021
121
medium.com/microsoft-design/how-microsofts-human-insights-library-creates-a-living-body-of-knowledge-fff54e53f5ec
Nov 24, 2021
9
www.tesla.com/blog/all-our-patent-are-belong-you
Nov 23, 2021
4
linda.mirror.xyz/4PDBWBMpFFPVEsP5EGgg5to2AyEpEHEXasq_K0b-yYk
Nov 23, 2021
9
news.crunchbase.com/news/decacorn-startups-2021-global-record-data-charts/
Nov 23, 2021
6
constine.substack.com/p/nametagging
Nov 22, 2021
4
vitalik.ca/general/2021/01/05/rollup.html
Nov 22, 2021
331
medium.com/@VitalikButerin/the-meaning-of-decentralization-a0c92b76a274
Nov 22, 2021
18
future.a16z.com/dao-canon/
Nov 22, 2021
1
medium.com/@noah_weiss/10-traits-of-great-pms-a7776cd3d9cd
Nov 20, 2021
7
medium.com/agileinsider/how-to-evolve-as-a-product-manager-13c3e06198d4
Nov 19, 2021
5
future.a16z.com/podcasts/play-to-earn-gaming-and-how-work-is-evolving-in-web3/
Nov 19, 2021
173
jocatorres.medium.com/7-essential-characteristics-of-a-product-manager-77684e63877c
Nov 18, 2021
8
learningcenter.unc.edu/tips-and-tools/using-highlighters/
Nov 18, 2021
12
digitalnative.substack.com/p/social-tokens-and-creator-centric
Nov 18, 2021
151
digitalnative.substack.com/p/a-guide-to-gen-z-through-tiktok-trends
Nov 17, 2021
161
www.nfx.com/post/network-effects-bitcoin/
Nov 17, 2021
291
www.beondeck.com/fund-memo
Nov 17, 2021
5
read.first1000.co/p/-substack
Nov 17, 2021
161
www.nngroup.com/articles/how-users-read-on-the-web/
Nov 16, 2021
51
fs.blog/taking-notes-while-reading/
Nov 16, 2021
81
meetwaves.medium.com/the-7-biggest-reasons-why-online-communities-fail-420fc5ba566d
Nov 14, 2021
162
thoughteconomics.com/sridhar-ramaswamy/
Nov 13, 2021
144
fs.blog/lifelong-learning/
Nov 12, 2021
8
fs.blog/learning/
Nov 11, 2021
161
cdixon.org/2009/09/19/climbing-the-wrong-hill
Nov 11, 2021
2
There are two ways to scale a blockchain ecosystem. First, you can make the blockchain itself have a higher transaction capacity.
The main challenge with this technique is that blockchains with "bigger blocks" are inherently more difficult to verify and likely to become more centralized.
Second, you can change the way that you use the blockchain. Instead of putting all activity on the blockchain directly, users perform the bulk of their activity off-chain in a "layer 2" protocol.
The three major types of layer-2 scaling are state channels, Plasma and rollups.
there are limits to what channels can do. Channels cannot be used to send funds off-chain to people who are not yet participants. Channels cannot be used to represent objects that do not have a clear logical owner (eg. Uniswap). And channels, especially if used to do things more complex than simple recurring payments, require a large amount of capital to be locked up.
Plasma provides stronger properties than channels: you can send assets to participants who were never part of the system, and the capital requirements are much lower.
it comes at a cost: channels require no data whatsoever to go on chain during "normal operation", but Plasma requires each chain to publish one hash at regular intervals. Additionally, Plasma transfers are not instant: you have to wait for the interval to end and for the block to be published.
Plasma and channels share a key weakness in common: the game theory behind why they are secure relies on the idea that each object controlled by both systems has some logical "owner".
it is a deal breaker for many others (eg. Uniswap). Even systems where the state of an object can be changed without the owner's consent (eg. account-based systems, where you can increase someone's balance without their consent) do not work well with Plasma.
a large amount of "application-specific reasoning" is required in any realistic plasma or channels deployment, and it is not possible to make a plasma or channel system that just simulates the full ethereum environment (or "the EVM").
Rollups, on the other hand, are a "hybrid" layer 2 scheme. Rollups move computation (and state storage) off-chain, but keep some data per transaction on-chain.
at a very favorable ratio: whereas an Ethereum base-layer ERC20 token transfer costs ~45000 gas, an ERC20 token transfer in a rollup takes up 16 bytes of on-chain space and costs under 300 gas.
The fact that data is on-chain is key (note: putting data "on IPFS" does not work, because IPFS does not provide consensus on whether or not any given piece of data is available; the data must go on a blockchain).
Putting data on-chain and having consensus on that fact allows anyone to locally process all the operations in the rollup if they wish to, allowing them to detect fraud, initiate withdrawals, or personally start producing transaction batches.
rollups are fully general-purpose, and one can even run an EVM inside a rollup, allowing existing Ethereum applications to migrate to rollups with almost no need to write any new code.
There is a smart contract on-chain which maintains a state root: the Merkle root of the state of the rollup (meaning, the account balances, contract code, etc, that are "inside" the rollup).
Anyone can publish a batch, a collection of transactions in a highly compressed form together with the previous state root and the new state root (the Merkle root after processing the transactions). The contract checks that the previous state root in the batch matches its current state root; if it does, it switches the state root to the new state root.
If someone can submit a batch with any post-state root with no consequences, they could just transfer all the coins inside the rollup to themselves.
Optimistic rollups, which use fraud proofs: the rollup contract keeps track of its entire history of state roots and the hash of each batch.
ZK rollups, which use validity proofs: every batch includes a cryptographic proof called a ZK-SNARK (eg. using the PLONK protocol), which proves that the post-state root is the correct result of executing the batch. No matter how large the computation, the proof can be very quickly verified on-chain.
verification of a ZK-SNARK is quite computationally intensive
ZK-SNARKs are very new and mathematically complex technology
in the medium to long term ZK rollups will win out in all use cases as ZK-SNARK technology improves.
A simple Ethereum transaction (to send ETH) takes ~110 bytes. An ETH transfer on a rollup, however, takes only ~12 bytes
In the rollup, we can omit the nonce entirely, because we just recover the nonce from the pre-state
One important compression trick that is specific to ZK rollups is that if a part of a transaction is only used for verification, and is not relevant to computing the state update, then that part can be left off-chain. This cannot be done in an optimistic rollup because that data would still need to be included on-chain in case it needs to be later checked in a fraud proof
with compression tricks the scaling factor can go over 100x for almost all applications.
there is a risk that multiple participants will generate and attempt to submit batches in parallel, and only one of those batches can be successfully included. This leads to a large amount of wasted effort in generating proofs and/or wasted gas in publishing batches to chain.
On the existing Ethereum chain, the gas limit is 12.5 million, and each byte of data in a transaction costs 16 gas.
a rollup for ETH transfers requires only 12 bytes per user operation, meaning that the batch can contain up to 62,500 transactions. At an average block time of 13 seconds, this translates to ~4807 TPS (compared to 12.5 million / 21000 / 13 ~= 45 TPS for ETH transfers directly on Ethereum itself)
what if we want to go above ~1000-4000 TPS (depending on the specific use case)? Here is where eth2 data sharding comes in. The sharding proposal opens up a space of 16 MB every 12 seconds that can be filled with any data, and the system guarantees consensus on the availability of that data. This data space can be used by rollups.
Rollups are a powerful new layer-2 scaling paradigm, and are expected to be a cornerstone of Ethereum scaling in the short and medium-term future (and possibly long-term as well).
a key compromise: not trying to go fully off-chain, but instead leaving a small amount of data per transaction on-chain.