zk-SNARK กับ zk-STARK

Chainlink Thailand
Chainlink Community
3 min readFeb 28, 2023

SNARK และ STARK เป็นเทคโนโลยี zero-knowledge proof ซึ่งช่วยให้ฝ่ายหนึ่งสามารถพิสูจน์ให้อีกฝ่ายหนึ่งเห็นว่าข้อความ (statement) นั้นเป็นความจริงโดยไม่ต้องเปิดเผยข้อมูลเพิ่มเติม

Zero-knowledge proofs (ZKP) ได้รับความสนใจอย่างมากในการนำมาใช้กับ use-case ต่างๆ สำหรับศักยภาพในการเพิ่มความปลอดภัย (security), ปกป้องความเป็นส่วนตัว (privacy) และรองรับการ scaling ด้วย Layer 2 network

ZKP ช่วยให้ฝ่ายหนึ่งพิสูจน์ให้อีกฝ่ายหนึ่งเห็นว่าข้อความนั้นเป็นความจริงโดยไม่ต้องเปิดเผยข้อมูลเพิ่มเติมใดๆ ZKP มีประโยชน์ทั้งด้านการเพิ่มความเป็นส่วนตัว (privacy) เนื่องจากวิธีนี้ลดข้อมูลที่จำเป็นต้องแบ่งปันระหว่าง party และเพิ่มความสามารถในการ scale (scalability) เนื่องจาก proof จะได้รับการตรวจสอบในความเร็วที่มากกว่าเพราะไม่จำเป็นต้องตรวจสอบข้อมูลทั้งหมด

Zero-knowledge proofs มี 2 ชนิดหลักๆ คือ SNARK และ STARK ในบทความนี้ เราจะมาดูกันว่าแต่ละแบบคืออะไร ทำงานอย่างไร และความแตกต่างที่สำคัญของทั้งสองคืออะไร

SNARK คืออะไร?

zk-SNARK ย่อมาจาก Zero-Knowledge Succinct Non-interactive Argument of Knowledge ซึ่งได้รับการพูดถึงในเอกสารปี 2012 ที่ร่วมเขียนโดย Nir Bitansky, Ran Canetti, Alessandro Chiesa และ Eran Tromer ซึ่งเทคโนโลยี SNARK ช่วยให้ฝ่ายหนึ่งพิสูจน์ให้อีกฝ่ายรู้ว่าพวกเขารู้ความลับโดยไม่ต้องเปิดเผยความลับนั้น

zk-SNARKs สามารถทำงานกับ Distributed ledger เพื่อเป็น zero-knowledge proof เพื่อเพิ่มความเป็นส่วนตัวและความสามารถในการ scale ที่มากขึ้น Application แรกที่นำ zk-SNARK มาใช้คือ Zcash โดยใช้เทคโนโลยีสำหรับการสร้างธุรกรรมที่มีความเป็นส่วนตัว (Shielded transactions) ซึ่งผู้ส่ง, ผู้รับ และจำนวนเงินจะถูกเก็บไว้เป็นส่วนตัว Shielded transactions ใน Zcash สามารถ encrypt ได้อย่างสมบูรณ์บน blockchain แต่ยังคงได้รับการตรวจสอบว่าถูกต้องตาม consensus ของ Network โดยใช้ zk-SNARK เข้ามาช่วย

คุณสมบัติที่สำคัญของ SNARK คือ วิธีการตั้งค่าที่เชื่อถือได้ (trusted setup) ตัวอย่างเช่น เหตุการณ์ที่ User ใช้ key สร้าง proof สำหรับธุรกรรมส่วนตัว (private transaction) รวมถึงวิธีการตรวจสอบ proof เหล่านั้น หากความลับตอนใช้สร้าง key ไม่ถูกทำลายทิ้งก็อาจถูกนำมาใช้สร้าง proof ปลอมได้ ในกรณีของ cryptocurrency อาจสามารถมีคนปลอมแปลงธุรกรรมหรือสร้าง Token ขึ้นมาใหม่เองได้ เนื่องจากคุณสมบัติความเป็นส่วนตัว (privacy) โดยธรรมชาติของ SNARK จึงไม่มีวิธีใดที่จะยืนยันได้ว่า proof ปลอมนั้นเป็น proof จริงหรือ proof ปลอม

ระดับความปลอดภัยของ SNARK วัดจากปริมาณงานที่ต้องทำเพื่อหา proof ที่น่าเชื่อถือของข้อความเท็จ หรือหมายความว่า SNARK จะปลอดภัยหากไม่สามารถสร้าง proof ที่น่าเชื่อถือของข้อความเท็จได้ สำหรับ SNARK ที่มีการตั้งค่าที่เชื่อถือได้ (trusted setup) จะถือว่าปลอดภัย ผู้เข้าร่วมอย่างน้อยหนึ่งคนในกระบวนการต้องสร้างและทิ้ง trapdoor (ฟังก์ชันที่ประมวลผลง่ายในทิศทางแรก แต่ยากมากๆ ในทิศทางตรงข้าม) ที่อาจลดความปลอดภัยของ SNARK ได้ ด้วยเหตุนี้ Trust setup จึงมักดำเนินการกับผู้เข้าร่วมจำนวนมากเพื่อให้ความเป็นไปได้ของเหตุการณ์นี้ต่ำ

แม้ว่า trusted setup จะจำเป็นแค่ในขั้นต้น User ที่ใช้ SNARK ต้องเชื่อมั่นว่ากระบวนการ trust setup ดำเนินไปอย่างถูกต้องและทำลายความลับเรียบร้อยทำให้จะไม่ถูกควบคุมโดยผู้เข้าร่วมในกระบวนการสร้าง การต้องเชื่อในกระบวนการสร้างเป็นพื้นที่วิพากษ์วิจารณ์ของ SNARK ว่าเป็นจุดอ่อนด้านความปลอดภัยที่อาจเกิดความเสี่ยงขึ้น

ข้อจำกัดอีกอย่างของ SNARK บางตัวคือวิธีการนี้ไม่ต่อต้านควอนตัม (ไม่เป็น quantum-resistant) ผู้คนที่เชื่อใน SNARK ให้เหตุผลว่าถ้าเมื่อไหร่ quantum computer กระทบกับความปลอดภัยของ SNARK ปัญหาที่ใหญ่กว่าคือสิ่งที่จะกระทบกับความปลอดภัยของ cryptography

STARK คืออะไร?

zk-STARK ย่อมาจาก Zero-Knowledge Scalable Transparent Argument of Knowledge และเป็นระบบ zero-knowledge proof ซึ่งได้รับการเสนอให้เป็นทางเลือกแทน SNARK ในเอกสารปี 2018 โดย Eli Ben-Sasson, Iddo Bentov, Yinon Horesh และ Michael Riabzev โดยใน paper ที่เสนอระบุไว้ว่า STARK (รวมถึง ZKP อื่น) สามารถสร้างประโยชน์ที่สำคัญให้กับสังคมได้:

“มนุษย์ต้องการให้ข้อมูลส่วนบุคคล เช่น ข้อมูลทางการแพทย์และนิติวิทยาศาสตร์ ถูกซ่อนจากสาธารณะ แต่ระบบในปัจุบันที่ช่วยรักษาความเป็นส่วนตัวอาจถูกนำไปใช้ในทางที่ผิดเพื่อปกปิดการหลอกลวงโดยสถาบันที่ได้รับมอบหมายให้ดูแลข้อมูล ทำร้ายประชาชนอย่างไม่เป็นธรรม และทำลายความไว้วางใจในสถาบันส่วนกลาง Zero-knowledge proof (ZKP) เป็น cryptographic ที่ดีสำหรับความไม่ไว้วางใจระหว่างความเป็นส่วนตัวส่วนบุคคลและความซื่อสัตย์ของสถาบัน โดยช่วยให้ดำเนินการในลักษณะที่ปลอดภัยกับความเป็นส่วนตัวส่วนบุคคล”

STARK เป็นเทคโนโลยีเบื้องหลังของ StarkWare ด้วยการทำให้ developer สามารถใช้พื้นที่ storage และการประมวลผลแบบ off-chain ได้ STARK จึงเพิ่ม scalability เนื่องจาก proof ของ STARK ที่ตรวจสอบความถูกต้องของการประมวลผลแบบ off-chain สามารถสร้างขึ้นโดยบริการ off-chain แล้วค่อยโพสต์ลงยัง On-chain

STARK ช่วยให้ blockchain ย้ายการประมวลผลไปยังผู้พิสูจน์ (STARK prover) แบบ off-line เพียงแค่เครื่องเดียว จากนั้นจึงตรวจสอบความถูกต้องของการประมวลผลเหล่านั้นโดยใช้ผู้ตรวจสอบ (STARK verifier) แบบ on-chain โดย Layer 2 network สามารถปลดล็อกประโยชน์ด้านการ scale ได้โดยการประมวลผลธุรกรรมจำนวนมากในชุดเดียวโดยใช้ STARK จากนั้นใช้การพิสูจน์ STARK เดียวเพื่อยืนยันความถูกต้องของธุรกรรมบน on-chain ธุรกรรมทั้งหมดใน batch ( กลุ่มของ tx ใน Layer 2) แชร์ต้นทุนของการดำเนินการบน on-chain ช่วยทำให้ค่า gas ของแต่ละธุรกรรมบน Layer 2 network ราคาต่ำ

เนื่องจากการสุ่มโดยผู้ตรวจสอบนั้นเป็นสาธารณะ และ proof สามารถตรวจสอบได้โดยไม่ต้องพึ่งพาพารามิเตอร์ภายนอกใดๆ STARK จึงไม่จำเป็นต้องมี trust setup ที่น่าเชื่อถือ

ความแตกต่างที่สำคัญ : SNARK กับ STARK

ทั้ง SNARK และ STARK มีข้อดีต่างกันไป ขึ้นอยู่กับ use-case การใช้งานของ user แต่ละคน

SNARK นั้นถือว่ามีประสิทธิภาพและเร็วกว่า เนื่องจากสามารถตรวจสอบ (verify) ได้ภายในเวลาไม่กี่มิลลิวินาที แต่ประสิทธิภาพนี้มาพร้อมกับ trade off บางอย่าง เนื่องจาก SNARK อาศัย trust setup ที่อ่อนแอด้านความปลอดภัย ซึ่งหมายความว่าพารามิเตอร์เริ่มต้นที่ใช้ในการ proof ต้องสร้างขึ้นในที่ปลอดภัย และการประนีประนอมของพารามิเตอร์จะส่งผลกับความปลอดภัยของระบบแบบ SNARK

STARK เสนอความปลอดภัยขั้นสูงโดยไม่ต้องมี trust setup แต่ใช้เวลาในการตรวจสอบนานกว่าและมีประสิทธิภาพน้อยกว่า STARKs มีขนาดของ proof ที่ใหญ่กว่า SNARK ซึ่งหมายความว่าการตรวจสอบ proof ของ STARK อาจใช้เวลามากกว่าและใช้ gas มากกว่า SNARK ในทางกลับกัน เนื่องจาก proof ของ STARK สามารถตรวจสอบได้โดยไม่ต้องอาศัยพารามิเตอร์ภายนอกใดๆ STARK จึงสามารถตรวจสอบได้ง่ายกว่า SNARK และ STARK ใช้ hash function ในการทำงานซึ่งถือว่ามีความทนทานต่อควอนตัม (quantum-resistant) ไม่เหมือนกัน SNARK

STARK สามารถ scale ได้และทนทานต่อควอนตัม ในขณะที่ SNARK นั้นใช้ทรัพยากรอย่างมีประสิทธิภาพมากกว่า

จากที่กล่าวมา มีเหตุผลที่ทำให้เห็นว่าในตอนแรก SNARK ได้รับการยอมรับในการใช้งานมากกว่า STARK แม้ว่าจะมีข้อเสียด้านความปลอดภัยที่อาจเกิดขึ้นจากกระบวนการ trust setup ซึ่ง SNARKs ได้รับการพัฒนามาก่อน STARK ถึง 6 ปี ทำให้ SNARK เป็นผู้นำในแง่ของการนำมาใช้งานก่อน

Scale เพิ่มขึ้นแบบก้าวกระโดดด้วย Zero-Knowledge Proof

Zero-knowledge proof เป็นเทคโนโลยีพื้นฐานสำหรับ ecosystem ของ blockchain ที่ช่วยปลดล็อกความสามารถในการ scale ได้มากขึ้น ในขณะเดียวกันก็ช่วยรักษาความเป็นส่วนตัว (privacy) ของบุคคลและความซื่อสัตย์ของสถาบัน zk-SNARKS และ zk-STARKS เป็นแนวทางระดับแนวหน้าของการปฏิวัติครั้งนี้ และทั้ง 2 ต่างก็ช่วยปลดล็อก use-case ที่หลากหลายสำหรับ public blockchain ที่ก่อนหน้านี้ไม่สามารถทำได้ สร้างแรงจูงใจในการสร้างสรรค์นวัตกรรม และช่วยทำให้เศรษฐกิจโลกที่มีประสิทธิภาพมากขึ้น

หากคุณเป็น developer และต้องการ integrate บริการที่ของ Chainlink โปรดดู documentation ของเรา ถามคำถามใน Discord หรือติดต่อผู้เชี่ยวชาญ

--

--