2/ @the_matter_labs: founded in late 2018 by @gluk64 & Alexandr Vlasov to focus on Eth L2 scaling; recieved grant from @ethereum foundation in March 2019
ML is "engineering team passionate about liberty, blockchain, and math"
Series B: $50m raised in Nov. 2021 led by @cdixon/@a16z. Strategic partners: @blockchain & @OKEx, etc
4/ Products: in 2019 ML launched prototype zk-rollup (zkr), followed by zkSync 1.0 in July 2020
zkSync 1.0 is app specific zkr L2 w/ focus on payments. It provides:
- low txn fees
- instant txn confirmation
- txn finality within minutes
- withdrawals to L1 after ~15 mins
5/ zkSync 2.0 is EVM compatible zkr - "zkEVM" which was originally supposed to go live on mainnet in August 2021 but delayed due to technical difficulties
Currently there is zkSync 2.0 @Uniswap fork live on testnet
6/ Environment: despite not yet having zkEVM live on mainnet, zkSync has experienced parabolic user growth over the past couple months
zkSync now has over 2x as many users as Optimism and is closing in on Arbitrum
Now let's get into the weeds 👇
7/ EVM compatibility: zkSync 1.0 was based on Groth16 SNARK proof system which limited it to app specific use cases bc trusted setup would need to be repeated for each new app (and app update)
In PLONK proof system trusted setup is done once = universal & updateable SNARK
8/ zkSync 2.0 & EVM: zkEVM aims to run 99% of contracts from Solidity & maintain behavior of contracts (not tech. 1:1)
LLVM compiler converts code to SNARK friendly code
this is done for Eth (solidity, vyper, yul) & zkSync native Zinc
result = EVM compatible & composable
9/ How zkr work: rollups move execution off-chain while maintaining per txn data on-chain; result is scale, EVM compatibility, and L1 security
Merkle tree cryptography is used to maintain and update rollup
10/ In Merkle tree each txn in block is hashed, then each pair of txn's is concatenated and hashed together until there is one hash for block; the Merkle root
11/ in rollup, smart contract on L1 maintains the Merkle root for the state of the rollup (state root) and is updated each new rollup batch
There are two ways to verify this process - fraud proof (optimistic rollup) & validity proof (zk-rollup)
12/ zkr grant ability to prove honest computation w/o providing inputs to that computation using zero-knowledge proofs (zkp) - SNARKs (zkSync) or STARKs (StarkWare)
zkp for verification is based on prover/verifier relationship discussed in part two
13/ the prover does complex computational work that results in a cryptographic proof so that the verifier can easily verify the integrity of the work using only the proof itself
14/ zkr ex: user deposits funds L1 --> L2 (zkSync) then does txn on @ZigZagExchange
cumulative txn's from users are grouped into batch by prover
to update rollup state prover submits to L1:
- root hash of new state for rollup
- zkp (SNARK)
- delta in rollup state a calldata
15/ huh?
- root hash reps. hashed batch of txn's; this combined w/ Merkle root in L1 smart contract to update rollup state
- zkp is cryptographic verification the root hash being submitted is accurate
- change in rollup state -> L1 so any user can prove ownership to L1 on own
16/ zkr efficiencies:
- publish hashed txn's in form of state root instead of all txn data
- to update rollup state root prover does computation off-chain then L1 can efficiently verify the proof itself (instead of all the computation)
17/ efficiencies cont…
- calldata is cheapest way to store data on L1 (and could become cheaper w/ EIP-4488) = data availability (DA) on-chain
net result = 100x cheaper than Eth L1 txn's
18/ zkSync 2.0: zkr are incredible but scalability is linear due to DA being on-chain (calldata sent to L1)
to exponentially scale and offer even cheaper fees (tradeoff lower security) DA can be conducted off-chain
zkr w/ off-chain DA = validium
19/ Validium in zkSync 2.0 = zkPorter
zkPorter maintains DA off-chain using a PoS system similar to many L1s
- Validators batch txn's & compute zkp then submit
- Guardians stake zkSync tokens and protect against censorship in off-chain DA
20/ Volition: zkSync 2.0 uses zkr & validium (zkPorter) to provide users choice
zkr = higher fees (but still 100x lower than L1) but more secure (L1 secure)
validium = lower fees (multiples lower than zkr) but less secure than zkr (PoS security not L1 security)
USER HAS CHOICE
21/ Progressive decentralization: currently ML does prover work but once zkSync 2.0 launches and zkSync token goes live there will be progressive decentralization until the ML team is no longer relied upon (self-sufficient system)
22/ zkSync v StarkNet: philosophically Alex G. has been focused on digital freedom and decentralization while stating he sees StarkWare as building proprietary scaling solutions
- EVM: zkSync focused on EVM compatability then native language (Zinc); StarkNet more focused on native language (Cairo) then EVM compatibility
24/ Ecosystem & Roadmap: in prep for zkSync 2.0 launch very much in infrastructure build-out = working with CEXes, L2 direct fiat on-ramps, & infrastructure integration
- @zksync has strong strategic partners w/ dApps & CEXes; fiat -> L2 and CEX -> L2 on-ramps are big deal. combined w/ dApp partnerships & infra. integrations prime zkSync 2.0 to hit the ground running
26/ conclusions cont…
- zkSync's focus on EVM compatability in ST and native Zinc in LT seems like winning strategy as it is paramount to build user base (strong user base leads to more developer engagement leading to more user engagement = flywheel effect)
27/ conclusions cont…
- Promise of decentralized future is driving user growth. Users want to be early to protocol and have opportunity to own (airdrop). Hype around zkr and promise of zkSync token creates excitement
28/ conclusions cont…
- Will zkSync's ST advantages of growing user base and ease of EVM compatibility hold up in LT compared to what many consider superior STARK technology implemented by StarkWare?
• • •
Missing some Tweet in this thread? You can try to
force a refresh
2/ The concept of a zkp came from a 1985 academic paper out of @MIT
The idea is there is a prover and a verifier - the prover can prove the truth of information to the verifier w/o revealing the information itself
3/ Technically speaking, zkp is a protocol btwn prover and verifier in which a prover can convince the verifier of the validity of a claim w/o revealing anything other than the proof itself that the claim is true