คู่มือสำหรับผู้เริ่มต้นในการพิสูจน์ความรู้เป็นศูนย์: ประวัติการพัฒนา การประยุกต์ และหลักการพื้นฐาน

มือใหม่1/6/2024, 7:13:44 PM
บทความนี้จะแนะนำประวัติการพัฒนาและหลักการพื้นฐานของการพิสูจน์ความรู้เป็นศูนย์อย่างเป็นระบบ

อัตราการเติบโตของโครงการพิสูจน์ความรู้เป็นศูนย์ (ZKP) ในอุตสาหกรรมบล็อกเชนในปัจจุบันนั้นน่าประหลาดใจ โดยเฉพาะอย่างยิ่งการเพิ่มขึ้นของแอปพลิเคชัน ZKP ที่ระดับการขยายและการปกป้องความเป็นส่วนตัวสองระดับ ซึ่งทำให้เราเห็นโครงการพิสูจน์ความรู้เป็นศูนย์ที่หลากหลาย เนื่องจากลักษณะทางคณิตศาสตร์ขั้นสูงสุดของ ZKP ผู้ที่ชื่นชอบการเข้ารหัสจึงจะเข้าใจ ZK ในเชิงลึกได้ยากขึ้นอย่างมาก ดังนั้นเราจึงหวังว่าจะจัดการการเปลี่ยนแปลงบางอย่างในทฤษฎี ZKP และการประยุกต์ตั้งแต่ต้น และสำรวจผลกระทบและคุณค่าต่ออุตสาหกรรม crypto กับผู้อ่าน - เรียนรู้ร่วมกันผ่านรายงานหลายฉบับ ซึ่งทำหน้าที่เป็นบทสรุปของความคิดของ HashKey ทีมวิจัยทุน. บทความนี้เป็นบทความแรกในชุด โดยจะแนะนำประวัติการพัฒนา แอปพลิเคชัน และหลักการพื้นฐานบางประการของ ZKP เป็นหลัก

1. ประวัติความเป็นมาของการพิสูจน์ความรู้เป็นศูนย์

ระบบพิสูจน์ความรู้เป็นศูนย์สมัยใหม่มีต้นกำเนิดมาจากบทความที่ตีพิมพ์ร่วมกันโดย Goldwasser, Mikali และ Rackoff: The Knowledge Complexity of Interactive Proof Systems (GMR85) ซึ่งได้รับการเสนอในปี 1985 และตีพิมพ์ในปี 1989 บทความนี้จะอธิบายเป็นหลักว่าต้องแลกเปลี่ยนความรู้มากน้อยเพียงใดหลังจากการโต้ตอบ K รอบในระบบเชิงโต้ตอบเพื่อพิสูจน์ว่าข้อความนั้นถูกต้อง หากความรู้ที่แลกเปลี่ยนสามารถทำให้เป็นศูนย์ได้ จะเรียกว่าการพิสูจน์ความรู้เป็นศูนย์ สันนิษฐานว่าผู้พิสูจน์มีทรัพยากรไม่จำกัด และผู้ตรวจสอบมีทรัพยากรจำกัดเท่านั้น ปัญหาของระบบโต้ตอบก็คือ การพิสูจน์ไม่สามารถพิสูจน์ได้ทางคณิตศาสตร์ทั้งหมด แต่ถูกต้องในแง่ความน่าจะเป็น แม้ว่าความน่าจะเป็นจะน้อยมาก (1/2^n)

ดังนั้นระบบโต้ตอบจึงไม่สมบูรณ์แบบและมีเพียงความสมบูรณ์โดยประมาณเท่านั้น ระบบไม่โต้ตอบ (NP) ที่เกิดบนพื้นฐานนี้มีความสมบูรณ์และกลายเป็นตัวเลือกที่สมบูรณ์แบบสำหรับระบบพิสูจน์ความรู้เป็นศูนย์

ระบบพิสูจน์ความรู้แบบศูนย์ในยุคแรกๆ ยังขาดประสิทธิภาพและการใช้งาน ดังนั้นจึงยังคงอยู่ที่ระดับทางทฤษฎีมาโดยตลอด จนกระทั่งช่วง 10 ปีที่ผ่านมาพวกเขาเริ่มเจริญรุ่งเรือง เมื่อวิทยาการเข้ารหัสลับมีความโดดเด่นในสกุลเงินดิจิทัล การพิสูจน์ความรู้ที่ไม่มีความรู้จึงกลายเป็นแนวหน้าและกลายเป็นทิศทางที่สำคัญ โดยเฉพาะอย่างยิ่ง การพัฒนาโปรโตคอลทั่วไปที่ไม่โต้ตอบและพิสูจน์ความรู้เป็นศูนย์โดยมีขนาดการพิสูจน์ที่จำกัดถือเป็นหนึ่งในแนวทางการสำรวจที่สำคัญที่สุด

โดยพื้นฐานแล้ว การพิสูจน์ความรู้เป็นศูนย์คือการแลกเปลี่ยนระหว่างความเร็วของการพิสูจน์ ความเร็วของการตรวจสอบ และขนาดของการพิสูจน์ โปรโตคอลที่เหมาะสมที่สุดคือการพิสูจน์ที่รวดเร็ว การตรวจสอบที่รวดเร็ว และขนาดการพิสูจน์ที่เล็ก

ความก้าวหน้าที่สำคัญที่สุดในการพิสูจน์ความรู้เป็นศูนย์คือ Arguments Zero-Knowledge ที่ใช้การจับคู่แบบสั้นซึ่งอิงจากการจับคู่แบบสั้นของ Groth ในปี 2010 ซึ่งเป็นผู้บุกเบิกทางทฤษฎีของกลุ่ม zk-SNARK ที่สำคัญที่สุดใน ZKP

การพัฒนาที่สำคัญที่สุดในการประยุกต์ใช้การพิสูจน์ความรู้เป็นศูนย์คือระบบพิสูจน์ความรู้เป็นศูนย์ที่ใช้โดย Z-cash ในปี 2558 ซึ่งปกป้องความเป็นส่วนตัวของธุรกรรมและจำนวนเงิน ต่อมาได้พัฒนาเป็นการผสมผสานระหว่าง zk-SNARK และสัญญาอัจฉริยะ และ zk-SNARK ก็เข้าสู่สถานการณ์การใช้งานที่กว้างขึ้น

ความสำเร็จทางวิชาการที่สำคัญบางประการในช่วงเวลานี้ ได้แก่ :

  1. Pinocchio (PGHR13) ในปี 2013: Pinocchio: Nearly Practical Verifiable Computation ซึ่งบีบอัดเวลาในการพิสูจน์และการตรวจสอบให้อยู่ในขอบเขตที่เกี่ยวข้อง ยังเป็นโปรโตคอลพื้นฐานที่ใช้โดย Zcash อีกด้วย
  2. Groth16 ในปี 2559: ขนาดของอาร์กิวเมนต์แบบไม่โต้ตอบที่ใช้การจับคู่ ซึ่งช่วยลดขนาดของการพิสูจน์และปรับปรุงประสิทธิภาพการตรวจสอบ ปัจจุบันเป็นอัลกอริธึมพื้นฐาน ZK ที่ใช้กันอย่างแพร่หลายที่สุด
  3. Bulletproofs (BBBPWM17) Bulletproofs: Short Proofs for Confidential Transactions และอื่นๆ ในปี 2560 ได้เสนออัลกอริธึม Bulletproof ซึ่งเป็นการพิสูจน์ความรู้เป็นศูนย์แบบไม่โต้ตอบที่สั้นมาก ซึ่งไม่จำเป็นต้องมีการตั้งค่าที่เชื่อถือได้ จะนำไปใช้กับ Monero ในอีก 6 เดือนต่อมาและเร็วมาก การผสมผสานระหว่างทฤษฎีและการประยุกต์
  4. ในปี 2018 ความสมบูรณ์ของการคำนวณ zk-STARKs (BBHR18) ที่ปรับขนาดได้ โปร่งใส และปลอดภัยหลังควอนตัม ได้เสนอโปรโตคอลอัลกอริทึม ZK-STARK ที่ไม่ต้องการการตั้งค่าที่เชื่อถือได้ นี่เป็นอีกทิศทางหนึ่งที่สะดุดตาของการพัฒนา ZK ในปัจจุบัน และยังมีพื้นฐานอยู่บนพื้นฐานนี้ StarkWare ซึ่งเป็นโครงการ ZK ที่สำคัญที่สุดได้ถือกำเนิดขึ้น

การพัฒนาอื่นๆ รวมถึง PLONK, Halo2 และอื่นๆ ถือเป็นความก้าวหน้าที่สำคัญอย่างยิ่ง และยังได้ทำการปรับปรุง zk-SNARK บางอย่างด้วย

2. คำอธิบายโดยย่อเกี่ยวกับการประยุกต์ใช้การพิสูจน์ความรู้เป็นศูนย์

การใช้งานการพิสูจน์ความรู้แบบไม่มีศูนย์ที่แพร่หลายที่สุดสองประการคือการปกป้องความเป็นส่วนตัวและการขยายขีดความสามารถ ในช่วงแรกๆ ด้วยการเปิดตัวธุรกรรมความเป็นส่วนตัวและโครงการที่มีชื่อเสียงหลายโครงการ เช่น Zcash และ Monero ธุรกรรมความเป็นส่วนตัวครั้งหนึ่งจึงกลายเป็นหมวดหมู่ที่สำคัญมาก อย่างไรก็ตาม เนื่องจากความจำเป็นในการทำธุรกรรมด้านความเป็นส่วนตัวไม่โดดเด่นเท่าที่อุตสาหกรรมคาดหวัง โครงการตัวแทนประเภทนี้จึงเริ่มชะลอตัวลง ค่อย ๆ เข้าสู่ค่ายระดับสองและสาม (ไม่ถอนตัวออกจากเวทีประวัติศาสตร์) ในระดับแอปพลิเคชัน ความต้องการในการขยายเพิ่มขึ้นจนถึงจุดที่ Ethereum 2.0 (ซึ่งเปลี่ยนชื่อเป็นเลเยอร์ฉันทามติ) ได้เปลี่ยนเป็นเส้นทางที่เน้นการสะสมรวมในปี 2020 ซีรีส์ ZK ได้กลับมาสู่ความสนใจของอุตสาหกรรมอย่างเป็นทางการและกลายเป็นจุดสนใจ

ธุรกรรมความเป็นส่วนตัว: มีหลายโครงการที่ดำเนินการธุรกรรมความเป็นส่วนตัว รวมถึง Zcash โดยใช้ SNARK, Tornado, Monero โดยใช้ bulletproof และ Dash Dash ไม่ได้ใช้ ZKP ในแง่ที่เข้มงวด แต่เป็นระบบผสมสกุลเงินที่เรียบง่ายและหยาบที่สามารถซ่อนได้เพียงที่อยู่เท่านั้น แต่ไม่ใช่จำนวนเงิน ฉันจะไม่พูดถึงมันที่นี่

ขั้นตอนการทำธุรกรรม zk-SNARK ที่ใช้โดย Zcash มีดังนี้:

ที่มา: ไขปริศนาบทบาทของ zk-SNARK ใน Zcash

  1. ขั้นตอนการตั้งค่าระบบจะสร้างคีย์พิสูจน์ (พหุนามพิสูจน์การเข้ารหัส) และคีย์ตรวจสอบ โดยใช้ฟังก์ชัน KeyGen
  2. วิธีการเข้ารหัส ECIES เฟส CPA (โครงการเข้ารหัสแบบรวม Elliptic Curve) ใช้เพื่อสร้างคีย์สาธารณะและส่วนตัว
  3. ขั้น Minting Coins คือจำนวนเหรียญใหม่ที่สร้างขึ้น ที่อยู่สาธารณะและความมุ่งมั่นของเหรียญ
  4. ในขั้นตอนการเท ใบรับรอง zk-SNARK จะถูกสร้างขึ้นและเพิ่มลงในบัญชีแยกประเภทธุรกรรมเท
  5. ในขั้นตอนการยืนยัน ผู้ตรวจสอบจะตรวจสอบว่าปริมาณธุรกรรมของ Mint และ Pour ถูกต้องหรือไม่
  6. ในระยะการรับ ผู้รับจะได้รับเหรียญ หากคุณต้องการใช้เหรียญที่ได้รับ ให้โทรไปที่ Pouring ต่อไปเพื่อสร้างการตรวจสอบยืนยัน zk-SNARK ทำซ้ำขั้นตอนที่ 4-6 ข้างต้นเพื่อทำธุรกรรมให้เสร็จสมบูรณ์

Zcash ยังมีข้อจำกัดในการใช้ความรู้เป็นศูนย์ นั่นคือมันขึ้นอยู่กับ UTXO ดังนั้นข้อมูลธุรกรรมบางส่วนจึงได้รับการป้องกันเท่านั้น ไม่ถูกปกปิดจริงๆ เนื่องจากเป็นเครือข่ายที่แยกจากกันตามการออกแบบของ Bitcoin จึงเป็นการยากที่จะขยาย (รวมกับแอปพลิเคชันอื่น ๆ ) อัตราการใช้งานจริงของการป้องกัน (นั่นคือ ธุรกรรมส่วนตัว) น้อยกว่า 10% ซึ่งแสดงว่าธุรกรรมส่วนตัวยังไม่ได้รับการขยายสำเร็จ (ตั้งแต่ปี 2202)

พูลผสมขนาดใหญ่เดี่ยวที่ Tornado ใช้นั้นมีความหลากหลายมากกว่าและอิงตามเครือข่าย "ที่ผ่านการทดสอบและทดสอบแล้ว" เช่น Ethereum Torndao เป็นกลุ่มผสมสกุลเงินโดยใช้ zk-SNARK และการตั้งค่าความน่าเชื่อถือจะขึ้นอยู่กับเอกสาร Groth 16 คุณสมบัติที่มีใน Tornado Cash ได้แก่ :

  1. เฉพาะเหรียญที่ฝากเท่านั้นที่สามารถถอนออกได้
  2. ไม่สามารถถอนเหรียญได้สองครั้ง
  3. กระบวนการพิสูจน์เชื่อมโยงกับการแจ้งเตือนการทำให้เป็นโมฆะของสกุลเงิน (Nullifier) การแฮชของหลักฐานเดียวกันแต่ Nullifier ต่างกันจะไม่อนุญาตให้ถอนเหรียญ
  4. การรักษาความปลอดภัยเป็นแบบ 126 บิต และจะไม่ถูกลดระดับลงเนื่องจากองค์ประกอบ

Vitalik กล่าวว่าเมื่อเทียบกับการขยายตัวแล้ว ความเป็นส่วนตัวก็ค่อนข้างง่ายต่อการนำไปใช้ หากสามารถสร้างโปรโตคอลขยายได้ โดยทั่วไปความเป็นส่วนตัวจะไม่เป็นปัญหา

การขยาย: การขยาย ZK สามารถทำได้บนเครือข่ายระดับแรก เช่น Mina หรือบนเครือข่ายระดับสอง ซึ่งก็คือ zk-roll up แนวคิดของ ZK roll up อาจมาจากโพสต์ของ Vitalik ในปี 2018 การปรับขนาด On-chain เป็น ~ 500 tx/วินาที ผ่านการตรวจสอบความถูกต้องของ Mass tx

ZK-rollup มีบทบาท 2 ประเภท บทบาทหนึ่งคือ Sequencer และอีกบทบาทคือ Aggregator Sequencer มีหน้าที่รับผิดชอบในการทำบรรจุภัณฑ์ และผู้รวบรวมมีหน้าที่รับผิดชอบในการรวมธุรกรรมจำนวนมากและสร้าง Rollup และสร้างหลักฐาน SNARK (อาจเป็นหลักฐานที่ไม่มีความรู้โดยอิงตามอัลกอริทึมอื่นๆ ก็ได้) การพิสูจน์นี้จะถูกเปรียบเทียบกับสถานะก่อนหน้าของ Layer1 จากนั้นอัปเดตแผนผัง Ethereum Merkle และคำนวณแผนผังสถานะใหม่

ที่มา: รูปหลายเหลี่ยม

ข้อดีและข้อเสียของการยกเลิก ZK:

  1. ข้อดี: ต้นทุนต่ำ ไม่เหมือน OP ที่จะถูกโจมตีเชิงเศรษฐกิจ ไม่จำเป็นต้องชะลอการทำธุรกรรม สามารถปกป้องความเป็นส่วนตัว และบรรลุผลขั้นสุดท้ายได้อย่างรวดเร็ว
  2. ข้อเสีย: การสร้างหลักฐาน ZK ต้องใช้การคำนวณจำนวนมาก ปัญหาด้านความปลอดภัย (SNARK ต้องการการตั้งค่าที่เชื่อถือได้) ไม่ทนต่อการโจมตีควอนตัม (SNARK, STARK สามารถ) ลำดับธุรกรรมอาจเปลี่ยนแปลงได้

ที่มา: การวิจัย Ethereum

ขึ้นอยู่กับความพร้อมใช้งานของข้อมูลและวิธีการพิสูจน์ Starkware มีแผนภาพการจำแนกประเภทแบบคลาสสิกสำหรับ L2 (ชั้นความพร้อมใช้งานของข้อมูลของ Volition สามารถเลือกได้แบบออนไลน์หรือออฟไลน์):

ที่มา: สตาร์กแวร์

โครงการรวบรวม ZK ที่มีการแข่งขันสูงที่สุดในตลาดในปัจจุบัน ได้แก่ StarkNet ของ Starkware, zkSync ของ Matterlabs และการเชื่อมต่อ Aztec ของ Aztec, Hermez และ Miden ของ Polygon, Loopring, Scroll เป็นต้น

โดยพื้นฐานแล้ว เส้นทางทางเทคนิคอยู่ที่ตัวเลือกของ SNARK (และเวอร์ชันที่ปรับปรุงแล้ว) และ STARK รวมถึงการรองรับ EVM (รวมถึงความเข้ากันได้หรือความเทียบเท่า)

  1. Aztec ได้พัฒนาโปรโตคอล SNARK ทั่วไป-โปรโตคอล Plonk Aztec3 ที่ทำงานอยู่อาจรองรับ EVM แต่ความเป็นส่วนตัวมีความสำคัญมากกว่าความเข้ากันได้ของ EVM
  2. Starnet ใช้ zk-STARK ซึ่งเป็น zkp ที่ไม่ต้องการการตั้งค่าที่เชื่อถือได้ แต่ปัจจุบันไม่รองรับ EVM และมีภาษาคอมไพเลอร์และการพัฒนาของตัวเอง
  3. zkSync ยังใช้ plonk และรองรับ EVM zkSync 2.0 เข้ากันได้กับ EVM และมี zkEVM ของตัวเอง
  4. Scroll ซึ่งเป็นการโรลอัป ZK ที่เข้ากันได้กับ EVM ทีมงานยังเป็นผู้มีส่วนร่วมสำคัญในโครงการ zkEVM ของ Ethereum Foundation

หารือเกี่ยวกับปัญหาความเข้ากันได้ของ EVM โดยย่อ:

ความเข้ากันได้ระหว่างระบบ ZK และ EVM เป็นเรื่องที่น่าปวดหัวมาโดยตลอด และโปรเจ็กต์ส่วนใหญ่จะเลือกระหว่างทั้งสอง ผู้ที่เน้นย้ำ ZK อาจสร้างเครื่องเสมือนในระบบของตนเอง และมีภาษา ZK และคอมไพเลอร์ของตัวเอง แต่สิ่งนี้จะทำให้นักพัฒนาเรียนรู้ได้ยากขึ้น และเนื่องจากโดยพื้นฐานแล้วมันไม่ใช่โอเพ่นซอร์ส จึงจะกลายเป็นกล่องดำ . โดยทั่วไปแล้ว อุตสาหกรรมในปัจจุบันมีสองทางเลือก ประการแรกคือต้องเข้ากันได้กับ opcode ของ Solidity อย่างสมบูรณ์ และอีกอย่างคือการออกแบบเครื่องเสมือนใหม่ที่เป็นมิตรกับ ZK และเข้ากันได้กับ Solidity อุตสาหกรรมไม่ได้คาดหวังการบูรณาการที่รวดเร็วเช่นนี้ตั้งแต่เริ่มต้น แต่การทำซ้ำอย่างรวดเร็วของเทคโนโลยีในปีที่ผ่านมาหรือสองปีที่ผ่านมาได้นำความเข้ากันได้ของ EVM ไปสู่อีกระดับหนึ่ง และนักพัฒนาสามารถบรรลุการโยกย้ายที่ราบรื่นในระดับหนึ่ง (นั่นคือ Ethereum หลัก chain to ZK rollup) เป็นการพัฒนาที่น่าตื่นเต้น ซึ่งจะส่งผลกระทบต่อระบบนิเวศการพัฒนาและแนวการแข่งขันของ ZK เราจะหารือเกี่ยวกับปัญหานี้โดยละเอียดในรายงานฉบับต่อๆ ไป

3. หลักการพื้นฐานของการนำ ZK SNARK ไปใช้

Goldwasser, Micali และ Rackoff เสนอว่าการพิสูจน์ความรู้เป็นศูนย์มีคุณสมบัติสามประการ:

  1. ความสมบูรณ์: ทุกคำให้การที่มีพยานที่สมเหตุสมผลสามารถตรวจสอบได้โดยผู้ตรวจสอบ
  2. ความสมบูรณ์: การเรียกร้องทุกรายการที่มีพยานที่ไม่สมเหตุสมผลเท่านั้นไม่ควรได้รับการตรวจสอบโดยผู้ตรวจสอบ
  3. Zero-knowledge: กระบวนการตรวจสอบเป็นแบบไม่มีความรู้

ดังนั้นเพื่อที่จะเข้าใจ ZKP เราจึงเริ่มต้นด้วย zk-SNARK เนื่องจากแอปพลิเคชันบล็อกเชนในปัจจุบันจำนวนมากเริ่มต้นด้วย SNARK ก่อนอื่นเรามาดู zk-SNARK กันก่อน

zk-SNARK หมายถึง: การพิสูจน์ความรู้เป็นศูนย์ (zh-SNARK) คือการพิสูจน์ความรู้เป็นศูนย์โดยสรุป ไม่มีการโต้ตอบ อาร์กิวเมนต์ของความรู้

  1. Zero Knowledge: กระบวนการพิสูจน์ไม่มีความรู้และไม่เปิดเผยข้อมูลที่ซ้ำซ้อน
  2. กระชับ: ขนาดการตรวจสอบขนาดเล็ก
  3. แบบไม่โต้ตอบ: กระบวนการที่ไม่โต้ตอบ
  4. ข้อโต้แย้ง: การคำนวณมีความน่าเชื่อถือ กล่าวคือ ผู้พิสูจน์ที่มีพลังในการคำนวณจำกัดไม่สามารถปลอมแปลงหลักฐานได้ และผู้พิสูจน์ที่มีพลังในการคำนวณไม่จำกัดก็สามารถปลอมแปลงหลักฐานได้
  5. ความรู้: ผู้พิสูจน์ไม่สามารถสร้างพารามิเตอร์และการพิสูจน์โดยไม่ทราบข้อมูลที่ถูกต้อง
  6. เป็นไปไม่ได้ที่ผู้พิสูจน์จะสร้างชุดพารามิเตอร์และการพิสูจน์โดยไม่ทราบพยาน (เช่น การป้อนข้อมูลของฟังก์ชันแฮชหรือเส้นทางเพื่อกำหนดโหนด Merkle-tree)

หลักการพิสูจน์ของ zk-SNARK ของ Groth16 มีดังนี้:

ที่มา: https://learnblockchain.cn/article/3220

ขั้นตอนคือ:

  1. แปลงปัญหาให้เป็นวงจร
  2. แผ่วงจรให้เป็น R1CS
  3. แปลงรูปแบบ R1CS เป็นรูปแบบ QAP (โปรแกรมเลขคณิตกำลังสอง)
  4. สร้างการตั้งค่าที่เชื่อถือได้และสร้างพารามิเตอร์แบบสุ่ม รวมถึง PK (คีย์การพิสูจน์) และ VK (คีย์การยืนยัน)
  5. การสร้างหลักฐานและการตรวจสอบยืนยัน zk-SNARK

ในบทความถัดไป เราจะเริ่มศึกษาหลักการและการใช้งานของ zk-SNARK ทบทวนการพัฒนา ZK-SNARK ผ่านหลายกรณี และสำรวจความสัมพันธ์กับ zk-STARK

ข้อสงวนสิทธิ์:

  1. บทความนี้พิมพ์ซ้ำจาก [HashKey Capital] ลิขสิทธิ์ทั้งหมดเป็นของผู้แต่งต้นฉบับ [HashKey Capital] หากมีการคัดค้านการพิมพ์ซ้ำนี้ โปรดติดต่อทีมงาน Gate Learn แล้วพวกเขาจะจัดการโดยเร็วที่สุด
  2. การปฏิเสธความรับผิด: มุมมองและความคิดเห็นที่แสดงในบทความนี้เป็นเพียงของผู้เขียนเท่านั้น และไม่ถือเป็นคำแนะนำในการลงทุนใดๆ
  3. การแปลบทความเป็นภาษาอื่นดำเนินการโดยทีมงาน Gate Learn เว้นแต่จะกล่าวถึง ห้ามคัดลอก แจกจ่าย หรือลอกเลียนแบบบทความที่แปลแล้ว

คู่มือสำหรับผู้เริ่มต้นในการพิสูจน์ความรู้เป็นศูนย์: ประวัติการพัฒนา การประยุกต์ และหลักการพื้นฐาน

มือใหม่1/6/2024, 7:13:44 PM
บทความนี้จะแนะนำประวัติการพัฒนาและหลักการพื้นฐานของการพิสูจน์ความรู้เป็นศูนย์อย่างเป็นระบบ

อัตราการเติบโตของโครงการพิสูจน์ความรู้เป็นศูนย์ (ZKP) ในอุตสาหกรรมบล็อกเชนในปัจจุบันนั้นน่าประหลาดใจ โดยเฉพาะอย่างยิ่งการเพิ่มขึ้นของแอปพลิเคชัน ZKP ที่ระดับการขยายและการปกป้องความเป็นส่วนตัวสองระดับ ซึ่งทำให้เราเห็นโครงการพิสูจน์ความรู้เป็นศูนย์ที่หลากหลาย เนื่องจากลักษณะทางคณิตศาสตร์ขั้นสูงสุดของ ZKP ผู้ที่ชื่นชอบการเข้ารหัสจึงจะเข้าใจ ZK ในเชิงลึกได้ยากขึ้นอย่างมาก ดังนั้นเราจึงหวังว่าจะจัดการการเปลี่ยนแปลงบางอย่างในทฤษฎี ZKP และการประยุกต์ตั้งแต่ต้น และสำรวจผลกระทบและคุณค่าต่ออุตสาหกรรม crypto กับผู้อ่าน - เรียนรู้ร่วมกันผ่านรายงานหลายฉบับ ซึ่งทำหน้าที่เป็นบทสรุปของความคิดของ HashKey ทีมวิจัยทุน. บทความนี้เป็นบทความแรกในชุด โดยจะแนะนำประวัติการพัฒนา แอปพลิเคชัน และหลักการพื้นฐานบางประการของ ZKP เป็นหลัก

1. ประวัติความเป็นมาของการพิสูจน์ความรู้เป็นศูนย์

ระบบพิสูจน์ความรู้เป็นศูนย์สมัยใหม่มีต้นกำเนิดมาจากบทความที่ตีพิมพ์ร่วมกันโดย Goldwasser, Mikali และ Rackoff: The Knowledge Complexity of Interactive Proof Systems (GMR85) ซึ่งได้รับการเสนอในปี 1985 และตีพิมพ์ในปี 1989 บทความนี้จะอธิบายเป็นหลักว่าต้องแลกเปลี่ยนความรู้มากน้อยเพียงใดหลังจากการโต้ตอบ K รอบในระบบเชิงโต้ตอบเพื่อพิสูจน์ว่าข้อความนั้นถูกต้อง หากความรู้ที่แลกเปลี่ยนสามารถทำให้เป็นศูนย์ได้ จะเรียกว่าการพิสูจน์ความรู้เป็นศูนย์ สันนิษฐานว่าผู้พิสูจน์มีทรัพยากรไม่จำกัด และผู้ตรวจสอบมีทรัพยากรจำกัดเท่านั้น ปัญหาของระบบโต้ตอบก็คือ การพิสูจน์ไม่สามารถพิสูจน์ได้ทางคณิตศาสตร์ทั้งหมด แต่ถูกต้องในแง่ความน่าจะเป็น แม้ว่าความน่าจะเป็นจะน้อยมาก (1/2^n)

ดังนั้นระบบโต้ตอบจึงไม่สมบูรณ์แบบและมีเพียงความสมบูรณ์โดยประมาณเท่านั้น ระบบไม่โต้ตอบ (NP) ที่เกิดบนพื้นฐานนี้มีความสมบูรณ์และกลายเป็นตัวเลือกที่สมบูรณ์แบบสำหรับระบบพิสูจน์ความรู้เป็นศูนย์

ระบบพิสูจน์ความรู้แบบศูนย์ในยุคแรกๆ ยังขาดประสิทธิภาพและการใช้งาน ดังนั้นจึงยังคงอยู่ที่ระดับทางทฤษฎีมาโดยตลอด จนกระทั่งช่วง 10 ปีที่ผ่านมาพวกเขาเริ่มเจริญรุ่งเรือง เมื่อวิทยาการเข้ารหัสลับมีความโดดเด่นในสกุลเงินดิจิทัล การพิสูจน์ความรู้ที่ไม่มีความรู้จึงกลายเป็นแนวหน้าและกลายเป็นทิศทางที่สำคัญ โดยเฉพาะอย่างยิ่ง การพัฒนาโปรโตคอลทั่วไปที่ไม่โต้ตอบและพิสูจน์ความรู้เป็นศูนย์โดยมีขนาดการพิสูจน์ที่จำกัดถือเป็นหนึ่งในแนวทางการสำรวจที่สำคัญที่สุด

โดยพื้นฐานแล้ว การพิสูจน์ความรู้เป็นศูนย์คือการแลกเปลี่ยนระหว่างความเร็วของการพิสูจน์ ความเร็วของการตรวจสอบ และขนาดของการพิสูจน์ โปรโตคอลที่เหมาะสมที่สุดคือการพิสูจน์ที่รวดเร็ว การตรวจสอบที่รวดเร็ว และขนาดการพิสูจน์ที่เล็ก

ความก้าวหน้าที่สำคัญที่สุดในการพิสูจน์ความรู้เป็นศูนย์คือ Arguments Zero-Knowledge ที่ใช้การจับคู่แบบสั้นซึ่งอิงจากการจับคู่แบบสั้นของ Groth ในปี 2010 ซึ่งเป็นผู้บุกเบิกทางทฤษฎีของกลุ่ม zk-SNARK ที่สำคัญที่สุดใน ZKP

การพัฒนาที่สำคัญที่สุดในการประยุกต์ใช้การพิสูจน์ความรู้เป็นศูนย์คือระบบพิสูจน์ความรู้เป็นศูนย์ที่ใช้โดย Z-cash ในปี 2558 ซึ่งปกป้องความเป็นส่วนตัวของธุรกรรมและจำนวนเงิน ต่อมาได้พัฒนาเป็นการผสมผสานระหว่าง zk-SNARK และสัญญาอัจฉริยะ และ zk-SNARK ก็เข้าสู่สถานการณ์การใช้งานที่กว้างขึ้น

ความสำเร็จทางวิชาการที่สำคัญบางประการในช่วงเวลานี้ ได้แก่ :

  1. Pinocchio (PGHR13) ในปี 2013: Pinocchio: Nearly Practical Verifiable Computation ซึ่งบีบอัดเวลาในการพิสูจน์และการตรวจสอบให้อยู่ในขอบเขตที่เกี่ยวข้อง ยังเป็นโปรโตคอลพื้นฐานที่ใช้โดย Zcash อีกด้วย
  2. Groth16 ในปี 2559: ขนาดของอาร์กิวเมนต์แบบไม่โต้ตอบที่ใช้การจับคู่ ซึ่งช่วยลดขนาดของการพิสูจน์และปรับปรุงประสิทธิภาพการตรวจสอบ ปัจจุบันเป็นอัลกอริธึมพื้นฐาน ZK ที่ใช้กันอย่างแพร่หลายที่สุด
  3. Bulletproofs (BBBPWM17) Bulletproofs: Short Proofs for Confidential Transactions และอื่นๆ ในปี 2560 ได้เสนออัลกอริธึม Bulletproof ซึ่งเป็นการพิสูจน์ความรู้เป็นศูนย์แบบไม่โต้ตอบที่สั้นมาก ซึ่งไม่จำเป็นต้องมีการตั้งค่าที่เชื่อถือได้ จะนำไปใช้กับ Monero ในอีก 6 เดือนต่อมาและเร็วมาก การผสมผสานระหว่างทฤษฎีและการประยุกต์
  4. ในปี 2018 ความสมบูรณ์ของการคำนวณ zk-STARKs (BBHR18) ที่ปรับขนาดได้ โปร่งใส และปลอดภัยหลังควอนตัม ได้เสนอโปรโตคอลอัลกอริทึม ZK-STARK ที่ไม่ต้องการการตั้งค่าที่เชื่อถือได้ นี่เป็นอีกทิศทางหนึ่งที่สะดุดตาของการพัฒนา ZK ในปัจจุบัน และยังมีพื้นฐานอยู่บนพื้นฐานนี้ StarkWare ซึ่งเป็นโครงการ ZK ที่สำคัญที่สุดได้ถือกำเนิดขึ้น

การพัฒนาอื่นๆ รวมถึง PLONK, Halo2 และอื่นๆ ถือเป็นความก้าวหน้าที่สำคัญอย่างยิ่ง และยังได้ทำการปรับปรุง zk-SNARK บางอย่างด้วย

2. คำอธิบายโดยย่อเกี่ยวกับการประยุกต์ใช้การพิสูจน์ความรู้เป็นศูนย์

การใช้งานการพิสูจน์ความรู้แบบไม่มีศูนย์ที่แพร่หลายที่สุดสองประการคือการปกป้องความเป็นส่วนตัวและการขยายขีดความสามารถ ในช่วงแรกๆ ด้วยการเปิดตัวธุรกรรมความเป็นส่วนตัวและโครงการที่มีชื่อเสียงหลายโครงการ เช่น Zcash และ Monero ธุรกรรมความเป็นส่วนตัวครั้งหนึ่งจึงกลายเป็นหมวดหมู่ที่สำคัญมาก อย่างไรก็ตาม เนื่องจากความจำเป็นในการทำธุรกรรมด้านความเป็นส่วนตัวไม่โดดเด่นเท่าที่อุตสาหกรรมคาดหวัง โครงการตัวแทนประเภทนี้จึงเริ่มชะลอตัวลง ค่อย ๆ เข้าสู่ค่ายระดับสองและสาม (ไม่ถอนตัวออกจากเวทีประวัติศาสตร์) ในระดับแอปพลิเคชัน ความต้องการในการขยายเพิ่มขึ้นจนถึงจุดที่ Ethereum 2.0 (ซึ่งเปลี่ยนชื่อเป็นเลเยอร์ฉันทามติ) ได้เปลี่ยนเป็นเส้นทางที่เน้นการสะสมรวมในปี 2020 ซีรีส์ ZK ได้กลับมาสู่ความสนใจของอุตสาหกรรมอย่างเป็นทางการและกลายเป็นจุดสนใจ

ธุรกรรมความเป็นส่วนตัว: มีหลายโครงการที่ดำเนินการธุรกรรมความเป็นส่วนตัว รวมถึง Zcash โดยใช้ SNARK, Tornado, Monero โดยใช้ bulletproof และ Dash Dash ไม่ได้ใช้ ZKP ในแง่ที่เข้มงวด แต่เป็นระบบผสมสกุลเงินที่เรียบง่ายและหยาบที่สามารถซ่อนได้เพียงที่อยู่เท่านั้น แต่ไม่ใช่จำนวนเงิน ฉันจะไม่พูดถึงมันที่นี่

ขั้นตอนการทำธุรกรรม zk-SNARK ที่ใช้โดย Zcash มีดังนี้:

ที่มา: ไขปริศนาบทบาทของ zk-SNARK ใน Zcash

  1. ขั้นตอนการตั้งค่าระบบจะสร้างคีย์พิสูจน์ (พหุนามพิสูจน์การเข้ารหัส) และคีย์ตรวจสอบ โดยใช้ฟังก์ชัน KeyGen
  2. วิธีการเข้ารหัส ECIES เฟส CPA (โครงการเข้ารหัสแบบรวม Elliptic Curve) ใช้เพื่อสร้างคีย์สาธารณะและส่วนตัว
  3. ขั้น Minting Coins คือจำนวนเหรียญใหม่ที่สร้างขึ้น ที่อยู่สาธารณะและความมุ่งมั่นของเหรียญ
  4. ในขั้นตอนการเท ใบรับรอง zk-SNARK จะถูกสร้างขึ้นและเพิ่มลงในบัญชีแยกประเภทธุรกรรมเท
  5. ในขั้นตอนการยืนยัน ผู้ตรวจสอบจะตรวจสอบว่าปริมาณธุรกรรมของ Mint และ Pour ถูกต้องหรือไม่
  6. ในระยะการรับ ผู้รับจะได้รับเหรียญ หากคุณต้องการใช้เหรียญที่ได้รับ ให้โทรไปที่ Pouring ต่อไปเพื่อสร้างการตรวจสอบยืนยัน zk-SNARK ทำซ้ำขั้นตอนที่ 4-6 ข้างต้นเพื่อทำธุรกรรมให้เสร็จสมบูรณ์

Zcash ยังมีข้อจำกัดในการใช้ความรู้เป็นศูนย์ นั่นคือมันขึ้นอยู่กับ UTXO ดังนั้นข้อมูลธุรกรรมบางส่วนจึงได้รับการป้องกันเท่านั้น ไม่ถูกปกปิดจริงๆ เนื่องจากเป็นเครือข่ายที่แยกจากกันตามการออกแบบของ Bitcoin จึงเป็นการยากที่จะขยาย (รวมกับแอปพลิเคชันอื่น ๆ ) อัตราการใช้งานจริงของการป้องกัน (นั่นคือ ธุรกรรมส่วนตัว) น้อยกว่า 10% ซึ่งแสดงว่าธุรกรรมส่วนตัวยังไม่ได้รับการขยายสำเร็จ (ตั้งแต่ปี 2202)

พูลผสมขนาดใหญ่เดี่ยวที่ Tornado ใช้นั้นมีความหลากหลายมากกว่าและอิงตามเครือข่าย "ที่ผ่านการทดสอบและทดสอบแล้ว" เช่น Ethereum Torndao เป็นกลุ่มผสมสกุลเงินโดยใช้ zk-SNARK และการตั้งค่าความน่าเชื่อถือจะขึ้นอยู่กับเอกสาร Groth 16 คุณสมบัติที่มีใน Tornado Cash ได้แก่ :

  1. เฉพาะเหรียญที่ฝากเท่านั้นที่สามารถถอนออกได้
  2. ไม่สามารถถอนเหรียญได้สองครั้ง
  3. กระบวนการพิสูจน์เชื่อมโยงกับการแจ้งเตือนการทำให้เป็นโมฆะของสกุลเงิน (Nullifier) การแฮชของหลักฐานเดียวกันแต่ Nullifier ต่างกันจะไม่อนุญาตให้ถอนเหรียญ
  4. การรักษาความปลอดภัยเป็นแบบ 126 บิต และจะไม่ถูกลดระดับลงเนื่องจากองค์ประกอบ

Vitalik กล่าวว่าเมื่อเทียบกับการขยายตัวแล้ว ความเป็นส่วนตัวก็ค่อนข้างง่ายต่อการนำไปใช้ หากสามารถสร้างโปรโตคอลขยายได้ โดยทั่วไปความเป็นส่วนตัวจะไม่เป็นปัญหา

การขยาย: การขยาย ZK สามารถทำได้บนเครือข่ายระดับแรก เช่น Mina หรือบนเครือข่ายระดับสอง ซึ่งก็คือ zk-roll up แนวคิดของ ZK roll up อาจมาจากโพสต์ของ Vitalik ในปี 2018 การปรับขนาด On-chain เป็น ~ 500 tx/วินาที ผ่านการตรวจสอบความถูกต้องของ Mass tx

ZK-rollup มีบทบาท 2 ประเภท บทบาทหนึ่งคือ Sequencer และอีกบทบาทคือ Aggregator Sequencer มีหน้าที่รับผิดชอบในการทำบรรจุภัณฑ์ และผู้รวบรวมมีหน้าที่รับผิดชอบในการรวมธุรกรรมจำนวนมากและสร้าง Rollup และสร้างหลักฐาน SNARK (อาจเป็นหลักฐานที่ไม่มีความรู้โดยอิงตามอัลกอริทึมอื่นๆ ก็ได้) การพิสูจน์นี้จะถูกเปรียบเทียบกับสถานะก่อนหน้าของ Layer1 จากนั้นอัปเดตแผนผัง Ethereum Merkle และคำนวณแผนผังสถานะใหม่

ที่มา: รูปหลายเหลี่ยม

ข้อดีและข้อเสียของการยกเลิก ZK:

  1. ข้อดี: ต้นทุนต่ำ ไม่เหมือน OP ที่จะถูกโจมตีเชิงเศรษฐกิจ ไม่จำเป็นต้องชะลอการทำธุรกรรม สามารถปกป้องความเป็นส่วนตัว และบรรลุผลขั้นสุดท้ายได้อย่างรวดเร็ว
  2. ข้อเสีย: การสร้างหลักฐาน ZK ต้องใช้การคำนวณจำนวนมาก ปัญหาด้านความปลอดภัย (SNARK ต้องการการตั้งค่าที่เชื่อถือได้) ไม่ทนต่อการโจมตีควอนตัม (SNARK, STARK สามารถ) ลำดับธุรกรรมอาจเปลี่ยนแปลงได้

ที่มา: การวิจัย Ethereum

ขึ้นอยู่กับความพร้อมใช้งานของข้อมูลและวิธีการพิสูจน์ Starkware มีแผนภาพการจำแนกประเภทแบบคลาสสิกสำหรับ L2 (ชั้นความพร้อมใช้งานของข้อมูลของ Volition สามารถเลือกได้แบบออนไลน์หรือออฟไลน์):

ที่มา: สตาร์กแวร์

โครงการรวบรวม ZK ที่มีการแข่งขันสูงที่สุดในตลาดในปัจจุบัน ได้แก่ StarkNet ของ Starkware, zkSync ของ Matterlabs และการเชื่อมต่อ Aztec ของ Aztec, Hermez และ Miden ของ Polygon, Loopring, Scroll เป็นต้น

โดยพื้นฐานแล้ว เส้นทางทางเทคนิคอยู่ที่ตัวเลือกของ SNARK (และเวอร์ชันที่ปรับปรุงแล้ว) และ STARK รวมถึงการรองรับ EVM (รวมถึงความเข้ากันได้หรือความเทียบเท่า)

  1. Aztec ได้พัฒนาโปรโตคอล SNARK ทั่วไป-โปรโตคอล Plonk Aztec3 ที่ทำงานอยู่อาจรองรับ EVM แต่ความเป็นส่วนตัวมีความสำคัญมากกว่าความเข้ากันได้ของ EVM
  2. Starnet ใช้ zk-STARK ซึ่งเป็น zkp ที่ไม่ต้องการการตั้งค่าที่เชื่อถือได้ แต่ปัจจุบันไม่รองรับ EVM และมีภาษาคอมไพเลอร์และการพัฒนาของตัวเอง
  3. zkSync ยังใช้ plonk และรองรับ EVM zkSync 2.0 เข้ากันได้กับ EVM และมี zkEVM ของตัวเอง
  4. Scroll ซึ่งเป็นการโรลอัป ZK ที่เข้ากันได้กับ EVM ทีมงานยังเป็นผู้มีส่วนร่วมสำคัญในโครงการ zkEVM ของ Ethereum Foundation

หารือเกี่ยวกับปัญหาความเข้ากันได้ของ EVM โดยย่อ:

ความเข้ากันได้ระหว่างระบบ ZK และ EVM เป็นเรื่องที่น่าปวดหัวมาโดยตลอด และโปรเจ็กต์ส่วนใหญ่จะเลือกระหว่างทั้งสอง ผู้ที่เน้นย้ำ ZK อาจสร้างเครื่องเสมือนในระบบของตนเอง และมีภาษา ZK และคอมไพเลอร์ของตัวเอง แต่สิ่งนี้จะทำให้นักพัฒนาเรียนรู้ได้ยากขึ้น และเนื่องจากโดยพื้นฐานแล้วมันไม่ใช่โอเพ่นซอร์ส จึงจะกลายเป็นกล่องดำ . โดยทั่วไปแล้ว อุตสาหกรรมในปัจจุบันมีสองทางเลือก ประการแรกคือต้องเข้ากันได้กับ opcode ของ Solidity อย่างสมบูรณ์ และอีกอย่างคือการออกแบบเครื่องเสมือนใหม่ที่เป็นมิตรกับ ZK และเข้ากันได้กับ Solidity อุตสาหกรรมไม่ได้คาดหวังการบูรณาการที่รวดเร็วเช่นนี้ตั้งแต่เริ่มต้น แต่การทำซ้ำอย่างรวดเร็วของเทคโนโลยีในปีที่ผ่านมาหรือสองปีที่ผ่านมาได้นำความเข้ากันได้ของ EVM ไปสู่อีกระดับหนึ่ง และนักพัฒนาสามารถบรรลุการโยกย้ายที่ราบรื่นในระดับหนึ่ง (นั่นคือ Ethereum หลัก chain to ZK rollup) เป็นการพัฒนาที่น่าตื่นเต้น ซึ่งจะส่งผลกระทบต่อระบบนิเวศการพัฒนาและแนวการแข่งขันของ ZK เราจะหารือเกี่ยวกับปัญหานี้โดยละเอียดในรายงานฉบับต่อๆ ไป

3. หลักการพื้นฐานของการนำ ZK SNARK ไปใช้

Goldwasser, Micali และ Rackoff เสนอว่าการพิสูจน์ความรู้เป็นศูนย์มีคุณสมบัติสามประการ:

  1. ความสมบูรณ์: ทุกคำให้การที่มีพยานที่สมเหตุสมผลสามารถตรวจสอบได้โดยผู้ตรวจสอบ
  2. ความสมบูรณ์: การเรียกร้องทุกรายการที่มีพยานที่ไม่สมเหตุสมผลเท่านั้นไม่ควรได้รับการตรวจสอบโดยผู้ตรวจสอบ
  3. Zero-knowledge: กระบวนการตรวจสอบเป็นแบบไม่มีความรู้

ดังนั้นเพื่อที่จะเข้าใจ ZKP เราจึงเริ่มต้นด้วย zk-SNARK เนื่องจากแอปพลิเคชันบล็อกเชนในปัจจุบันจำนวนมากเริ่มต้นด้วย SNARK ก่อนอื่นเรามาดู zk-SNARK กันก่อน

zk-SNARK หมายถึง: การพิสูจน์ความรู้เป็นศูนย์ (zh-SNARK) คือการพิสูจน์ความรู้เป็นศูนย์โดยสรุป ไม่มีการโต้ตอบ อาร์กิวเมนต์ของความรู้

  1. Zero Knowledge: กระบวนการพิสูจน์ไม่มีความรู้และไม่เปิดเผยข้อมูลที่ซ้ำซ้อน
  2. กระชับ: ขนาดการตรวจสอบขนาดเล็ก
  3. แบบไม่โต้ตอบ: กระบวนการที่ไม่โต้ตอบ
  4. ข้อโต้แย้ง: การคำนวณมีความน่าเชื่อถือ กล่าวคือ ผู้พิสูจน์ที่มีพลังในการคำนวณจำกัดไม่สามารถปลอมแปลงหลักฐานได้ และผู้พิสูจน์ที่มีพลังในการคำนวณไม่จำกัดก็สามารถปลอมแปลงหลักฐานได้
  5. ความรู้: ผู้พิสูจน์ไม่สามารถสร้างพารามิเตอร์และการพิสูจน์โดยไม่ทราบข้อมูลที่ถูกต้อง
  6. เป็นไปไม่ได้ที่ผู้พิสูจน์จะสร้างชุดพารามิเตอร์และการพิสูจน์โดยไม่ทราบพยาน (เช่น การป้อนข้อมูลของฟังก์ชันแฮชหรือเส้นทางเพื่อกำหนดโหนด Merkle-tree)

หลักการพิสูจน์ของ zk-SNARK ของ Groth16 มีดังนี้:

ที่มา: https://learnblockchain.cn/article/3220

ขั้นตอนคือ:

  1. แปลงปัญหาให้เป็นวงจร
  2. แผ่วงจรให้เป็น R1CS
  3. แปลงรูปแบบ R1CS เป็นรูปแบบ QAP (โปรแกรมเลขคณิตกำลังสอง)
  4. สร้างการตั้งค่าที่เชื่อถือได้และสร้างพารามิเตอร์แบบสุ่ม รวมถึง PK (คีย์การพิสูจน์) และ VK (คีย์การยืนยัน)
  5. การสร้างหลักฐานและการตรวจสอบยืนยัน zk-SNARK

ในบทความถัดไป เราจะเริ่มศึกษาหลักการและการใช้งานของ zk-SNARK ทบทวนการพัฒนา ZK-SNARK ผ่านหลายกรณี และสำรวจความสัมพันธ์กับ zk-STARK

ข้อสงวนสิทธิ์:

  1. บทความนี้พิมพ์ซ้ำจาก [HashKey Capital] ลิขสิทธิ์ทั้งหมดเป็นของผู้แต่งต้นฉบับ [HashKey Capital] หากมีการคัดค้านการพิมพ์ซ้ำนี้ โปรดติดต่อทีมงาน Gate Learn แล้วพวกเขาจะจัดการโดยเร็วที่สุด
  2. การปฏิเสธความรับผิด: มุมมองและความคิดเห็นที่แสดงในบทความนี้เป็นเพียงของผู้เขียนเท่านั้น และไม่ถือเป็นคำแนะนำในการลงทุนใดๆ
  3. การแปลบทความเป็นภาษาอื่นดำเนินการโดยทีมงาน Gate Learn เว้นแต่จะกล่าวถึง ห้ามคัดลอก แจกจ่าย หรือลอกเลียนแบบบทความที่แปลแล้ว
Начните торговать сейчас
Зарегистрируйтесь сейчас и получите ваучер на
$100
!