Cover photo

zksync Era !!! zkEVM Type 4 ตัวแรกที่เปิด Mainnet

zkSync Era เปิดตัว Mainnet

เมื่อวันที่ 24/03/2566 zkSync ได้ทำการเปิดตัว Mainnet (Zksync Era) เป็นที่เรียบร้อยหลังจากที่ก่อนหน้านี้มีการเปิดให้ Project ลงทะเบียน และ ไปลองรันทดสอบบน Mainnet โดยบทความนี้จะเป็นการอธิบายเกี่ยวกับ zkSync ที่กำลังเป็นที่จับตามองในเรื่องของช่วย Ethereum ในการ Scale อีกวิธีที่เรียกว่า zk-rollup

zk-rollups คืออะไร???

เป็น L2 scaling solution ชนิดหนึ่ง ในทางเทคนิค zk-rollups จะใช้ Cryptographic Validity proofs เพื่อทำให้ Ethereum สามารถตรวจสอบธุรกรรมที่ถูกส่งมาจาก rollups ว่าทำการ excecuted ถูกต้องหรือไม่ โดยการประมวลผลจะใช้สมการคณิตศาตร์เพื่อหาผลลัพธ์ของธุรกรรม (โดยใช้ Cryptographic proof ที่เรียกว่า SNARKS) และ TTF (Time to finality) จะเร็วกว่า Optimistic rollups ที่ใช้ Fraud proof ที่มีเงื่อนไขที่เรียกว่า “challenge period” อยู่ที่ประมาณ 7 วัน ตัวอย่าง หากเราใช้ Bridge Official ของ OP เวลาเรา Bridge เหรียญกลับมาจะต้องรอ 7 วันถึงจะสามารถ Claim บน Mainnet ได้ แต่ zk-rollups เราจะสามารถ Claim ได้เลยหากธุรกรรม Finality เรียบร้อยแล้ว (ระยะเวลาอยู่ที่ประมาณ 15นาที ถึง 3 ชั่วโมง)

zk-proof (validity proof) คืออะไร ??

คือการที่ Prover (ผู้พิสูจน์) สามารถพิสูจน์ความจริงได้โดยที่ไม่เปิดเผยข้อมูลหรือเปิดเผย input กับ verifier (ผู้ตรวจสอบ) หมายความว่า zk-proof สามารถประมวลผลธุรกรรมได้โดยอย่างถูกต้องโดยที่ไม่ต้องเปิดเผยรายละเอียดของธุรกรรมนั้นๆเลย

zkEVM ???

zkEVM คือ virtual machine ที่สามารถ Execute smart contracts ของ Ethereum (ภาษา Solidity) ได้ และ สามารถเข้ากันได้กับ zero-knowledge proofs ซึ่งสามารถนำ Codebase ที่เราใช้บน Ethereum มาใช้ได้ด้วยการ Modify เล็กน้อย (ขึ้นอยู่กับความ Compatible)

zk trilemma !!!

สิ่งที่ท้าทายในการทำ zk-rollups มากๆเลยคือ โดยปกติแล้ว EVM ไม่ได้ถูกสร้่างมาเพื่อประมวลผล Zk-proof ซึ่งทำให้เกิด Trade-off ระหว่าง Performance กับ Compatibility ของ EVM ซึ่งหมายความว่า zk จะประมวลผลได้มีประสิทธิภาพมากเท่าไหร่จะขึ้นอยู่กับความ Compatibility ของ EVM (ยิ่งน้อย Performance จะยิ่งสูง) หรือ อีกนัยนึงคือ EVM-equivalent จะใช้งานง่าย และ friendly กับ Developer มากกว่า แต่มันจะลดประสิทธิภาพในการสร้าง proof (ทำให้สร้างได้ช้าลงนั้นเอง) โดย นาย Vitalik ได้แบ่ง zkEVM อย่างเป็น 4 ประเภท ซึ่งประเภทที่ 1 คือ ใกล้เคียงกับความเป็น EVM-equivalent ส่วนประเภทที่ 4 จะห่างจากความเป็น EVM-equivalent ที่สุด (เป็นแค่ EVM-compatible)

ขอบคุณภาพ https://vitalik.ca/general/2022/08/04/zkevm.html
ขอบคุณภาพ https://vitalik.ca/general/2022/08/04/zkevm.html

ประเภทของ zkEVM ที่แต่ละทีมเลือกใช้ดังนี้

ขอบคุณภาพ https://whitewash.substack.com/p/the-battle-of-zkevms
ขอบคุณภาพ https://whitewash.substack.com/p/the-battle-of-zkevms

zkSync Era !!!!!

zkSync เป็น zkEVM Type 4 (EVM-compatible) ซึ่งพึ่งจะเปิดตัว Mainnet เมื่อวันที่ 24 มีนาคม ที่ผ่านมานี้ (เป็นช่วง Alpha) ทาง zkSync ก็ให้ความสำคัญกับเรื่อง Security เป็นอย่างดีโดยมีการ Audit กับ OpenZeppelin (Auditor เจ้าดัง) เพื่อความปลอดภัย แต่ด้วยความที่เป็นช่วงเปิดตัวแรกๆยังไม่ได้ผ่านการ battle-tested (พิสูจน์ตัวเอง) มากนัก เพื่อความปลอดภัย และ แก้ปัญหาได้ทันช่วงแรก ทางทีมจะสามารถ Upgrade protocol ได้ทันที หากเจอบัคที่จะทำให้เกิดความเสียหาย โดยจะมี Security Council หากเป็นกรณีฉุกเฉิน Secuirty Council สามารถ Approve เพื่อทำการ Upgrade ได้

องค์ประกอบ และ Features ต่างๆ

The operator carries out all essential ZK rollup functions.

คือ Operator หรือ Sequencers (ในที่นี้น่าจะเป็นความหมายเดียวกัน) ทำการรวบรวมธุรกรรม, ทำการสร้าง Block บน L2, ทำการสร้าง Cryptographic proof (SNARKS) จากนั้นทำการบันทึก Data (Calldata) และ Validity proof บน L1 โดยจะแตกต่างกับ Polygon zkEVM ที่แยก Sequencers กับ Validator (โดย Polygon จะให้ Sequencers batches ธุรกรรม จากนั้น Aggregators จะ confirm batches นั้น เรียกว่า POE หรือ Proof of efficiency)

Yul and LLVM compilers

คือ zksync จะใช้ Compiler แปลง Solidity เป็น bytecode ที่สามารถเข้ากันได้กับ Designed ของ zkEVM ทำให้ Supported Developer tooling ต่างๆ (แต่ไม่มี Debuggers) ส่วน LLVM (Low-level virtual machine) คือ Tooling ที่ทำให้แปลงภาษาต่างๆ เป็นภาษากลาง เพื่อนำไปใช้งานต่อ โดย Yul และ Zinc compiler ใช้ LLVM เป็น Middle-end กับ Back-end ซึ่งทำให้เพิ่มประสิทธิภาพของ Code ได้ (Code Optimizations)

ขอบคุณภาพจาก https://blog.matter-labs.io/zksync-2-0-hello-ethereum-ca48588de179
ขอบคุณภาพจาก https://blog.matter-labs.io/zksync-2-0-hello-ethereum-ca48588de179

Native AA (Account Abstraction)

Ethereum จะมี account อยู่ 2 แบบ คือ

  1. EOA (Externally owned account) ซึ่งจะควบคุมโดยคนที่มี Private key

  2. Contract account คือการ Deploy smart contract ลงบน Networks ซึ่งถูกควบคุมโดย Code ซึ่งบน zksync จะเป็น native AA ซึ่งจะสามารถทำธุรกรรมแบบเดียวกับ EOA แต่ implement logic โดยใช้ smart contract หมายถึงทำการที่เราควบคุมเงินโดยใช้ Private key เหมือนเดิม แต่เราเอาข้อดีของ Smart contract มาใช้ เช่น execution mutiple calls คือการที่ execute คำสั่งเพียงแค่คลิกเดียว (ตัวอย่างอาจจะทำการ Approve, swap, revoke ในทีเดียว)

zkPorter is one of the largest and most important features of zkSync Era

zkPorter คือ Data availability layer ของ zkEVM (User และ Developer สามารถเลือกได้ว่าจะเก็บ Data-onchain หรือ off-chain) ซึ่งเราปฎิเสธไม่ได้เลยว่า คอขวดเรื่องการ Scaling ของ Ethereum มีปัญหาเรื่อง DA หากเราต้องการความ Security ที่สูงที่สุด และ ก็ตามมาที่ค่าใช้จ่ายที่สูง แต่ด้วย Use-case บางอย่างที่อาจจะไม่ต้องการ Security จัดๆ ก็อาจจะเลือกใช้ zkPorter เช่น พวก Gaming (โดยอาจจะเก็บข้อมูลที่เกี่ยวกับเงินๆทองๆ On-chain ส่วนข้อมูลอื่นๆ Off-chain) โดยจากข้อมูล zkPorter จะใช้ระบบ POS ซึ่งจะใช้เหรียญของ zkSync สรุปง่ายๆมันคือ Volition นั้นแหละ (เป็นลูกผสมระหว่าง zk-rollup กับ Validium)

ขอบคุณภาพจาก https://twitter.com/StarkWareLtd/status/1272139969742635008
ขอบคุณภาพจาก https://twitter.com/StarkWareLtd/status/1272139969742635008
ขอบคุณภาพจาก https://blog.matter-labs.io/zkporter-a-breakthrough-in-l2-scaling-ed5e48842fbf
ขอบคุณภาพจาก https://blog.matter-labs.io/zkporter-a-breakthrough-in-l2-scaling-ed5e48842fbf

Both parts of the ZK rollup will remain interoperable with each other.

การทำงานร่วมกันของ Zk-rollup กับ zkPorter จะรื่นไหลไร้รอยต่อ ในมุมของผู้ใช้งานความแตกต่างเดียวของมันคือ ค่าธรรมเนียม ของ zkPorter มันจะถูกกว่า

ขอบคุณภาพจาก https://docs.zksync.io/zkevm/#how-scalable-is-a-zk-rollup
ขอบคุณภาพจาก https://docs.zksync.io/zkevm/#how-scalable-is-a-zk-rollup

Token hint ?????

Airdrop เป็นของคู่กับเชนเปิดใหม่ และ คาดว่า zkSync ก็คงจะแจกเช่นเดียวกันแต่ไม่รู้ว่าจะแจกยังไง ตอนไหน แต่จากการให้สัมภาษณ์ ของ Steve Newcomb เป็น Chief Product Officer and Chief Marketing Officer ที่ Matter Labs พูดว่า Investor และ ทีม จะได้สัดส่วน Token ⅓ ส่วนที่เหลือประมาณ ⅔ จะ Distibute ให้กับ Community และ Ecosystem อ้างอิง นาทีที่ 44:49

Hyperchain !!!!

zkSync ต้องการจะสร้างให้ตัวเองเป็น Base chain และให้ Chain อื่นๆมาสร้าง on top (Hyperchain หรือ L3) โดย Chain ที่สร้างบน zkSync จะต้องใช้ SDK framework เดียวกับ zkSync เพื่อให้สามารถทำงานร่วมกันได้แบบไร้รอยต่อโดยใช้ Hyper-bridge (เขาขิงว่าโอนย้ายระหว่างเชนเหมือน Transfer ธรรมดา) ส่วน zkSync (L2) จะทำหน้าที่รับ Verifer contract และ ส่งไปให้ L1 อีกที (คือการใช้ Recursive proofs) โดยวิธีนี้จะทำให้ Scale ได้มากขึ้นแบบมหาศาล

ขอบคุณภาพจาก https://blog.matter-labs.io/zksync-l3-pathfinder-to-hit-testnet-in-q1-2023-367a425592db
ขอบคุณภาพจาก https://blog.matter-labs.io/zksync-l3-pathfinder-to-hit-testnet-in-q1-2023-367a425592db
ขอบคุณภาพจาก https://era.zksync.io/docs/dev/fundamentals/hyperscaling.html#what-are-hyperchains
ขอบคุณภาพจาก https://era.zksync.io/docs/dev/fundamentals/hyperscaling.html#what-are-hyperchains
ขอบคุณภาพจาก https://medium.com/starkware/fractal-scaling-from-l2-to-l3-7fe238ecfb4f
ขอบคุณภาพจาก https://medium.com/starkware/fractal-scaling-from-l2-to-l3-7fe238ecfb4f

Risks:

ความเสี่ยงโดยรวมของ zkSync มีอะไรบ้างไปดูกัน

Zero Knowledge technology ยังเป็นอะไรที่ใหม่, มีความซับซ้อนสูงมาก โดยมันยังไม่ได้ผ่านการใช้งานมานาน โอกาสที่จะมีบัคสูงมาก และ Zk ไม่ได้ถูก Design เพื่อให้เข้ากับ EVM ตั้งแต่แรก แถมยิ่งอยู่ในช่วงเริ่มต้นบัคเยอะเป็นเรื่องปกติ (ความเป็นจริงการมีบัคเยอะมันไม่ควรเป็นเรื่องปกติ)

SNARKs ไม่ได้เป็น quantum resistant เราอาจจะเคยได้ยินว่า การมาของ quantum computer มีพลังการประมวลผลสูงมาก ซึ่งมากพอที่จะทำลาย SNARKs ได้ ซึ่งในอนาคต ซึ่งต่างจาก STARKs ที่เป็น quantum resistant

มีคู่แข่งหลายเจ้าที่ค่อนข้างน่ากลัว ทั้ง Polygon zkEVM , Scroll, Starknet, Taiko ซึ่งต้องมาดูกันว่าใครจะชนะ

Regulation risks : การที่ zk สามารถทำเกี่ยวกับ Privacy ได้ เป็นข้อที่ควรระวังอย่างมาก ซึ่งแน่นอน รัฐบาล ไม่ถูกใจสิ่งนี้

สรุป

zkSync ยังอยู่ในช่วงเริ่มต้น และ เทคโนโลยี ของ zkEVM มีการพัฒนาได้รวดเร็วกว่าที่หลายๆคนคาดคิดไว้ และ มีความซับซ้อนอย่างมาก (๋Justin Drake เคยบอกว่า zkEVM เป็นอะไรที่ซับซ้อนมาก อ้างอิง นาทีที่ 55:05) แต่หนึ่งในความโหดจัดของ zk-rollup ของ หากมี 2 zk-rollup ขึ้นไป จะสามารถทำสิ่งที่เรียกว่า Synchronous composiblity ตัวอย่างเพื่อให้เห็นภาพมากขึ้น มี Dex aggregator ตัวนึงชื่อว่า 1inch ซึ่งปกติจะทำได้แค่ดึง liquidity จาก platform อื่นใน เชนเดียวกันได้เท่านั้น แต่กรณีของ zk-rollup จะดึง liquidity จาก zk-rollup ตัวอื่นมาได้ หลังจาก Implement Proto-Danksharding หรือ Danksharding อ้างอิง นาทีที่ 43:22 จะได้ยิน นาย Ryan Sean Adam กับ David Hoffman พูดว่า Bullish !!!!! แต่ช่วงเริ่มต้น Bug มันก็จะเยอะๆหน่อย และ ทำให้เห็นเลยว่า Optimistic rollup พร้อมกว่าจริงๆในช่วงนี้ แต่ส่วนตัวคิดว่า zk-rollup เป็น Technology end-game ที่จะช่วยการ Scaling ของ Ethereum น่าจะพัฒนาต่อไปได้อีกไกลแน่นอน

แหล่งข้อมูล

https://whitewash.substack.com/p/the-battle-of-zkevms https://louround.substack.com/p/zksync-45e?r=1z82lz https://docs.zksync.io/zkevm/#what-is-a-zk-rollup https://era.zksync.io/docs/dev/fundamentals/hyperscaling.html#what-are-hyperchains https://medium.com/starkware/fractal-scaling-from-l2-to-l3-7fe238ecfb4f https://www.youtube.com/watch?v=28Y0_E5zkYw https://www.youtube.com/watch?v=QkZUlqetTRA&t=4626s https://www.youtube.com/watch?v=ln-DzXNfTGE&t=5845s https://docs.zksync.io/dev/contracts/#zinc https://blog.matter-labs.io/zksync-l3-pathfinder-to-hit-testnet-in-q1-2023-367a425592db