สรุป AMA StarkNet x ContributionDAO

เมื่อวันที่ 28 มีนาคม 2022 ทาง Contribution DAO ได้มีจัด session ให้ความรู้เกี่ยวกับ StarkNet และยังมีช่วง AMA ร่วมกับ Henri Lieutaud ผู้เป็น developer advocate ของ StarkWare อีกด้วย ทั้งนี้ ทีมงาน Contribution DAO เลยทำการสรุปเนื้อหาในวีดีโอเพื่อให้ทุกคนมาอ่านกันครับ

โดยบทความนี้จะสรุป AMA และแบ่งเป็นสองส่วนครับ ได้แก่

  1. ช่วงการ Presentation โดยพี่อ๋อ @ratimon
  2. ช่วง AMA กับคุณ​ Henri

หากต้องการรับชมวีดีโอเต็มได้ สามารถกดดูได้ที่นี่เลยครับ ถ้าพร้อมแล้วเรามาเริ่มช่วงสรุปกันเลย

ช่วงการ Presentation โดยพี่อ๋อ @ratimon

Stark Validity Roll-Ups คืออะไร?

Stark Validity Roll-ups คือ technology ที่ใช้ในการขยายธุรกรรมบน ethereum blockchain ซึ่งถูกคิดค้นโดย Starkware ซึ่ง Starkware เป็นบริษัท start-up และ mission ของเค้าคือการนำ Scalability กับ Privacy เข้าสู่ Blockchain

Scalability

เคยสงสัยกันไหมครับว่า Blockchain ก็เกิดขึ้นมานานพอสมควรแล้ว Bitcoin เกิดขึ้นตอน 2008 Etheruem เกิดขึ้นตอน 2015 แต่ทำไมถึงยังไม่สามารถรองรับ transaction จำนวนมากไม่ได้อยู่เลย? ยกตัวอย่างเช่น Bitcoin มี  average block time อยู่ที่ 10-15 นาที ตัวเลขนี้มีความหมายว่าเมื่อเราจะทำ transaction ใดๆหรือส่งเงินให้ใคร จะใช้เวลา 10-15 นาทีในการทำธุรกรรมนั้นให้สำเร็จ แต่เมื่อเราเทียบกับระบบของธนาคาร เราสามารถทำธุรกรรมได้เพียงไม่กี่วินาที แต่ใน Blockchain เราไม่สามารถทำพร้อมกันได้ต้องทำแบบต่อคิวกัน

สาเหตุที่ blockchain ช้านั้นเป็นเพราะข้อจำกัดของตัว Blockchain เองที่หลายคนอาจจะรู้อยู่แล้วว่าทำไม เนื่องจากว่าหากเราทำธุรกรรมใน blockchain ไปแล้ว เราจะไม่สามารถเปลี่ยนแปลงหรือแก้ไขมันได้สิ่งนี้ทำให้เราสามารถอัพเกรด features ต่างๆได้ยากมาก นี่เลยเป็นเหตุผลว่าทำไมการเพิ่ม Scalabity ของ Blockchain จึงทำได้ยากมาก

แต่ในทางกลับกันหากดูทางฝั่งของธนาคาร ข้อแตกต่างคือระบบจะทำการ Delegrate ไปที่ Trusted party (Bank) โดยเราจะมอบความไว้ใจหรือความเชื่อถือให้เค้า ทำให้ระบบจะไม่ได้ทำการ verify โดย ธุรกรรมทั้งหมด โดยอาจจะทำการตั้งค่าไว้ว่าถ้ามี transaction เกินกว่าที่กำหนดจะทำการตรวจสอบ

ระบบ Delegated Accountability
ระบบ Delegated Accountability

จะเห็นได้ว่าเมื่อมีคนกลาง ระบบก็จะเร็วมาก แต่ในทางกลับกันกับ Blockchain จะใช้ระบบ Inclusive Accountability เราไม่จำเป็นต้องเชื่อใจใคร แต่เราต้องให้ Node หรือ validator ทำการ verify transaction จึงทำให้สูญเสีย Privacy กับ Scalability ไป และหากยิ่งมี Node อยู่ในระบบมากเท่าไหร่ ระบบก็จะต้องรอให้ทำการตรวจสอบให้ครบ จึงจะทำให้ใช้เวลาที่นาน

Blockchain และ Inclusive Accountability
Blockchain และ Inclusive Accountability

ในปัจจุบัน วิธีการแก้ไขปัญหา scalability ของ blockchain นั้นจะต้องยอมสูญเสียคุณสมบัติบางอย่างไปเพื่อแลกกับความสามารถในการ scale ที่สูงขึ้น ซึ่งอาจจะเป็นได้หลายแบบ แต่ส่วนใหญ่เราจะเห็นในลักษณะของการแลก decentralization เช่น BNB Chain ที่ลดจำนวน validator ลง

Blockchain trilemma คือ อย่างที่ Vitalik ได้กล่าวไว้ว่า Blockchan ใดๆก็ตามไม่สามารถมีคุณสมบัติครบทั้ง 3 อย่างจะมีได้แค่ 2 อย่างพร้อมกันเท่านั้น ซึ่งคุณสมบัติทั้งสามอย่างนั้นคือ

  1. Scalability
  2. Security
  3. Decentralization

เราจะ Scale Blockchain ได้ยังไง?

ในปัจจุบันจะมีระบบอยู่ 2 อย่างคือ Delegate accountability (ระบบธนาคาร) กับ Inclusive Accountability (Blockchain) ซึ่งระบบของธนาคารจะมีสมมติฐานว่าเราจะเชื่อใจคอมพิวเตอร์ใหญ่เพียงเครื่องเดียว จะทำให้การทำธุรกรรมใดๆ เร็วมากเพราะเราไม่ต้องคอย sync กับคอมพิวเตอร์เครื่องอื่น แต่ใน Blockchain เราต้อง verify ทุกๆธุรกรรมทำให้ระบบทำงานได้ช้า โดยวิธีการ scale จะมีหลายแบบ:

  1. Increase Scale (gas/block limit)

    การเพิ่มแก๊สไปตรงๆ หรือปรับ parameter ของ blockchain ต่างๆเช่น BNB Chain, Fantom, etc.

  2. Rollups

    1. Fraud Proof Rollups

      โดย Roll up คือเทคโนโลยีที่ทำหน้าที่มัดรวม transaction ใน Layer 2 ไปส่งต่อไปยัง Layer 1 ในรูปแบบของ call data แล้วสิ่งนี้จะทำให้ blockchain สามารถเพิ่มในส่วนของ scalability เพื่อทำให้ราคาของ gas ที่ถูกลงเพราะ data ได้ถูกบีบอัดให้เล็กลง และอย่างที่ 2 คือ computation จะไม่ต้องเกิด on chain ซึ่งหมายความอะไรที่ verify ใน L2 ไม่จำเป็นต้องไป verify ใน L1

    2. Validity Proof Rollup

      อีกรูปแบบนึงของการทำ Layer-2 Scaling โดยเราจะใช้คอมพิวเตอร์เครื่องใหญ่ (Ethereum) เพื่อสร้าง zk-proof มาให้กับ small computer (ผู้ใช้งานที่ต้องการร่วมพิสูจน์ข้อมูล) มายืนยันตัว proof อีกทีนึงเพื่อยืนยันความถูกต้อง

การ scale blockchain แบบ Increase Scale และ Fraud Proof Rollups
การ scale blockchain แบบ Increase Scale และ Fraud Proof Rollups
Validity Proofs Rollups
Validity Proofs Rollups

หลักการทำงานของ zk-STARK และ StarkNet

ตัว StarkNet เองนั้นถือเป็น Validity Proofs แบบหนึ่ง ซึ่งตัว proof ของ zk-STARK นั้นจะประกอบไปด้วยสามส่วนหลักๆ ได้แก่:

  1. Statement - การคำนวนขนาด X ได้ใช้เพื่อหาคำตอบ
  2. Prover - กลุ่มคนที่สร้าง proof ของการคำนวนบน statement (สร้างบน layer 2 ของ StarkNet)
  3. Verifier - กลุ่มคนที่คอยเช็คว่า proof นั้นถูกต้องหรือไม่ (ยืนยันบน Ethereum ด้วยการเปิด full nodes)

โดยตัว zk-STARK นั้นสามารถทำให้เกิดฟีเจอร์ได้สองอย่างได้แก่

  • ความเป็นส่วนตัว (Privacy) - ข้อมูลต่างๆของ prover นั้นจะถูกซ่อนไว้
  • ความสามารถในการสเกล (Scalability) - งานที่ใช้ในการยืนยันธุรกรรมนั้นน้อยมากๆ กล่าวคือยิ่งมีการคำนวนเกิดขึ้นจาก statement เท่าไร prover และ verifier นั้นจะใช้พลังงานในการสร้าง/ยืนยันน้อยลงเรื่อยๆ

ซึ่งสิ่งนี้ทำให้ StarkNet นั้นจะเป็นระบบที่มีการ verify ธุรกรรมโดยคนทั่วไปแทนที่จะเชื่อใจกับ big computer นั่นเอง!

Verify STARK proof, don’t trust

การทำงานของ zk-STARK
การทำงานของ zk-STARK

ช่วง AMA กับคุณ Henri

StarkWare คืออะไร?

Starkware คือ Layer 2 ที่สามารถรันคำสั่งต่างๆได้เหมือน Ethereum โดยปกติแล้วหาก Blockchain นั้นเรียกใช้ธุรกรรมหนึ่ง เราจะสามารถมั่นใจได้ว่ารันธุรกรรมนั้นได้สำเร็จถูกต้องได้ด้วยการรันธุรกรรมนั้นอีกรอบเพื่อเช็คว่ามันตรงกับข้อมูลที่ถูกส่งมาไหม

ตัวอย่างเช่น

  1. สมมุติเราสร้างโปรแกรม A
  2. เรารันโปรแกรม A ออกมา

ถ้าเราอยากจะยืนยันโปรแกรม A ว่ารันถูกต้องไหมละก็Node ก็จะต้องยืนยันด้วยการรันธุรกรรมซ้ำ และถ้าหากมี 1000 nodes แล้วการคำนวณโปรแกรม A ค่อนข้างซับซ้อนมากๆ ทุก node ก็จะต้องอาศัย resource ที่เยอะมากๆ

เพื่อมาแก้ปัญหานี้ Starknet จะแก้ปัญหาด้วยการใช้คอนเซ็ปของ Zero Knowledge Proof โดยเราจะยืนยันธุรกรรมโดยไม่ต้องรันธุรกรรมใหม่ เราจะไม่ทำแบบนั้นเพราะมันค่อนข้างเปลืองทรัพยากร แต่เราจะทำในลักษณะตามดังนี้:

สมมตุว่าเรามีธุรกรรมที่คำนวณ 1 2 3 4คุณไม่ต้องทำการรัน 1 2 3 4 ใหม่เพื่อยืนยันธุรกรรมแต่สิ่งที่คุณต้องทำก็คือเอาการคำนวณของ 1 2 3 4 ไปเช็คว่าถูกไหม ซึ่งการเช็คก็จะใช้รูปแบบของ ZK-Stark เพื่อสร้าง Proof ของการคำนวณและ ​Verify ในภายหลัง นอกจากนี้ proof size ของ ZK-Stark โตแบบ linear หมายความว่า ถ้าการคำนวณโตขึ้น 10 เท่าส่วนของการสร้าง Proof จะโตแค่ 1 เท่าเพราะมันเป็น log scale ซึ่งจะทำให้การคำนวณ scale โตขึ้นได้เยอะ และยังทำให้คนที่จะเข้ามาเป็น node ไม่จำเป็นต้องใช้คอมพิวเตอร์แรงๆ ใช้แค่ RaspberryPi สามารถใช้ในการ verify proof ตรงนี้ได้

Starkware VS zkSync

การเปรียบเทียบระหว่าง Starkware กับ ZkSync นั้นอาจจะเปรียบเทียบได้ค่อนข้างยาก เพราะ ZkSync ยังไม่ได้เปิดตัวออกมาเต็มๆและยังไม่ได้เปิดให้ใช้งานในลักษณะที่มีการ generate proof อย่างเต็มรูปแบบทำให้เปรียบเทียบได้ยาก แต่ Starknet ได้ออกมาเป็น alpha mainnet แล้วได้รับการ verify จาก Ethereum มาสักพักแล้ว ซึ่งอาจจะต้องใช้เวลาเพื่อจะได้เห็นถึงความแตกต่างก่อน นอกจากนี้ ZkSync ยังใช้ zkSNARK ในการสร้าง proof แต่ Starkware จะใช้ zkSTARK

StarkNet and Privacy

ซึ่งที่เข้าใจผิดกันมากๆคือ zk roll-up นั้นถูกออกแบบมาเพื่อ privacy แต่จริงๆแล้ว มันถูกออกแบบมาเพื่อแก้ปัญหา Scalability ไม่ใช่ Privacy และยังสามารถสร้าง feature on top อีกทีได้เพื่อความ Privacy ในตอนนี้ Starkware จะโฟกัสไปในส่วนของ Scalability ก่อน

การแก้ปัญหา Blockchain Scalability ของ Ethereum นั้น StarkWare มีความคิดเห็นอย่างไงกับการแข่งขันกันระหว่าง Layer 1 กับ Layer 2 แล้ว StarkWare จะอยู่ตรงไหน?

เราก็จะเห็น Chain ต่างๆพยายามแก้ปัญหาการ Scalability ของ Ethereum เช่น Avax,BNB,Fantom และอื่นมากมาย การที่ StarkNet เลือก Ethereum เพราะว่า มีสภาพคล่องที่สูงมีเงินหมุนเวียนสูง และยังมีจำนวนคนใช้งานที่มหาศาลอีกด้วย ทำให้ StarkWare เลือกที่จะอยู่ที่ Ethereum ไปก่อนเพราะมันมีข้อดีที่มากกว่า Chain อื่นเป็นไหนๆ

การที่ Layer 2 Scalability Roll up น่าสนใจมากกว่า Layer 1 ตัวอื่นๆเพราะเราเห็นว่า Layer 1 ต่างๆ ได้พัฒนาเล็กๆน้อยจาก Chain เดิม ตัวอย่างเช่น Chain นึงได้ทำการลด Node ให้เหลือ 21 Node แล้วไปเพิ่มจำนวน Block size แทน มันก็จะเป็นแค่การดัดแปลงเล็กๆน้อยๆ เพื่อให้ chain ดีขึ้น เวลาการที่ technology เกิดการพัฒนาจะมีการพัฒนาแบบค่อยๆปรับที่ละนิดกับ การพัฒนาแบบก้าวกระโดด ตัวอย่างเช่น Bitcoin มาเป็น Ethereum ซึ่งเกิดการพัฒนาที่ยิ่งใหญ่ ซึ่ง Zk rollup ก็ได้ถูกเชื่อว่าเป็นแบบนั้นเพราะเป็นรูปแบบการแก้ปัญหาการ Scalability แบบใหม่ที่ทำให้แก้ปัญหาเรื่องการ scale ได้ดีขึ้นโดยไม่ต้องอาศัย competation ที่เยอะแบบอันแรกแบบการแก้ไขที่ทำการคิดค้นเทคโนโลยีขึ้นมาใหม่

Ethereum เนี่ยสามารถเปรียบเทียบง่ายๆได้กับเครื่องปิ้งขนมปังที่สามารถใส่ขนมปังได้ 4 อันแต่ Starknet เนี่ยหรือ Zk Rollup สามารถเปรียบเทียบได้กับเตาอบเลยแต่ไม่ใช่เตาอบธรรมดาด้วยแต่เป็นที่สามารถทำได้หลายอย่าง จะเอาไปทำ พิซซ่า เค้ก หรือแม้แต่เครื่องปั้นดินเผา เวลาเราพูดถึง Scalability ทุกคนอาจจะคิดว่า ถ้า Scalability ดี transaction จะต้องไวสิต้องเยอะและค่า gas ที่ถูก แต่ทุกคนมักจะมองข้ามความสามารถในการ Scale ความซับซ้อนของ Smart Contact ซึ่งในปัจจุบัน Smart Contact ของ Ethereum มีความข้อจำกัดที่ค่อนข้างเยอะ การคำนวณที่จำกัดทำให้ตัวแอพพลิเคชั่นนั้นถูกจำกัด ซึ่งทาง StarkNet จะมาช่วยปลดล็อคในส่วนนี้ จะช่วยปลดล็อคความเป็นไปได้หลายๆอย่าง

คำถามจากคุณ Sippakorn Fuse:

StarkNet สามารถรองรับ Transaction pending ที่รอ pending queue ได้สูงสุดกี่ Transaction ในตอนนี้?

ในส่วนของ starknet ในปัจจุบันยังค่อนข้างช้าอยู่ อยู่ที่ประมาณ tts อยู่ที่ 0.5 tx per second สาเหตุที่เป็นแบบนี้ก็ยังเป็นไปตาม Roadmap ที่ในส่วนของ Alpha mainnet เค้าจะโฟกัสไปในส่วนของ features ก่อน เราต้องการให้ funtionaility ของ Starknet ทำงานได้หลายอย่างสามารถทำได้ทุกอย่างที่ Ethereum ทำได้ ทั้งหมดนี้จะทำสำเร็จภายในเดือนกรกฏาคมนี้ หลังจากเสร็จแล้วเค้าจะโฟกัสไปที่ในส่วนของ proof ต่างๆของธุรกรรม ซึ่งพอมันสามารถทำได้หลายๆอย่างแล้วทีมจะไปพัฒนาในส่วนของความเร็วด้วยเช่นกัน ซึ่งเค้าได้พูดไว้ว่าเค้าจะต้องเร็วกว่า Ethereum mainnet 10 เท่า ซึ่งตัวเลขนี้ได้ผ่านการคำนวณมาแล้วว่าสามารถทำได้

คำถามจากคุณ Chanatip MangKang:

เราจะรู้ได้ยังไงว่า Transaction ที่เรา verify นั้นถูกต้อง?

ในระบบ Proof ผลลัพธ์ที่ได้จะเป็นแบบ Binary จะมีแค่ถูกกับไม่ถูกไปเลยถ้ามันถูกก็คือถูกไปเลย แต่ในส่วนของ Proof นั้นมันเป็นการพิสูจน์ทางคณิตศาตร์ ซึ่งถ้าหากเกิดการ execute ไปแล้วเกิดจะได้รับการยืนยันไปแล้ว แต่ในโอกาสที่จะเกิดการ verify ผิดพลาดนั้นก็อาจจะเกิดขึ้นได้แต่น้อยมากๆ เหมือนกับการงมเข็มในมหาสมุทรเลยก็ว่าได้ ซึ่งในทางนี้ก็เพียงพอสำหรับการใข้งาน

ทิ้งท้ายจากคุณ Henri

ทางคุณ Henri ได้ฝากไว้ 2 อย่างคือ ในส่วนของ StarkNet ก็จะเป็น Smart Contact execute program ซึ่งแน่นอนว่า smart contact พวกนี้ก็อาจจะมีข้อผิดพลาดหรือ bug เกิดขึ้นได้ ในส่วนของ developer ถ้าอยากจะศึกษาใน StarkNet ก็อยากให้เตรียมตัวให้ดี อย่าพึ่งทำอะไรทีบ้าบิ่นจนเกินไป ในปัจจุบัน StarkNet ยังมีข้อจำกัดอยู่เยอะเพราะยังพึ่งเกิดขึ้นได้ไม่นาน อยากให้ทุกคนได้ลองศึกษา StarkNet ไว้เพราะยังอยู่ในช่วงที่ early มากๆและได้ความรู้ที่มีประโยชน์ในอนาคตด้วยแน่นอน


ติดตาม StarkWare ได้ที่

ติดตาม Contribution DAO


เกี่ยวกับผู้เขียน

England

สวัสดีครับทุกคน เรียกผมว่าอิงแลนด์ก็ได้นะครับ ผมค่อนข้างเป็น Crypto Enthusiast เลยก็ว่าได้ครับและตื่นเต้นกับโลกการเงินในอนาคตมากๆ โดยการเขียนพวกนี้เหมือนเป็นการที่ผมได้ทบทวนความรู้ต่างๆ จึงอยากจะมาแชร์ให้กับทุกคนด้วยเหมือนกันครับ

chompk.eth

เป็น proofreader และคนคอยอ่านและเรียบเรียงบทความอีกรอบ ทำงานด้าน AI เป็นงานประจำและศึกษา crypto เป็นอาชีพเสริม มีความสนใจทั้งในด้าน AI และ blockchain และยังหลงไหลในแนวเพลง math rock เป็นพิเศษ งานอดิเรกคือการเล่นกีต้าร์ วิ่ง ฟังเพลง และ ทำงาน ทำงาน ทำงาน

Subscribe to ContributionDAO
Receive the latest updates directly to your inbox.
Verification
This entry has been permanently stored onchain and signed by its creator.