บทความขนาดยาวล่าสุดของ V God: CEX ใช้เทคโนโลยีเพื่อพิสูจน์ความบริสุทธิ์ได้อย่างไร
บทความนี้มาจาก Vitalik Buterinบทความนี้มาจาก

เรียบเรียงโดย Katie Koo นักแปล Odaily
โพสต์นี้จะกล่าวถึงกระบวนการในการพยายามทำให้ CEX เข้าใกล้ระบบไร้ความน่าเชื่อถือไปอีกขั้น ข้อจำกัดของเทคโนโลยีเหล่านี้ และโซลูชันบางอย่างและแนวคิดที่ทรงพลังกว่าที่อาศัยเทคโนโลยีขั้นสูง เช่น ZK-SNARK
ชื่อเรื่องรอง
งบดุลและ Merkle Trees: ข้อพิสูจน์แบบดั้งเดิมของการละลาย
ความพยายามอย่างเร็วที่สุดโดยการแลกเปลี่ยนเพื่อพิสูจน์ด้วยการเข้ารหัสว่าพวกเขาไม่ได้หลอกลวงผู้ใช้นั้นกลับตาลปัตร ในปี 2554 MtGox ซึ่งเป็นบริษัทแลกเปลี่ยน bitcoin ที่ใหญ่ที่สุดในขณะนั้น ได้พิสูจน์ว่าพวกเขามีเงินโดยการส่งธุรกรรมที่โอน 424,242 bitcoins ไปยังที่อยู่ที่ประกาศไว้ล่วงหน้า ในปี 2013 การอภิปรายเริ่มต้นขึ้นเกี่ยวกับวิธีจัดการกับปัญหาอีกด้านหนึ่ง: การพิสูจน์ขนาดรวมของเงินฝากของลูกค้า หากคุณพิสูจน์ได้ว่าเงินฝากของลูกค้าเท่ากับ X (หลักฐานความรับผิด) และพิสูจน์ได้ว่าคุณมีคีย์ส่วนตัวสำหรับโทเค็น X (หลักฐานสินทรัพย์) แสดงว่าคุณมีหลักฐานการละลาย - คุณพิสูจน์ได้ว่าการแลกเปลี่ยนมีเงินทุนสำหรับ จ่ายคืนผู้ฝากทั้งหมด
วิธีที่ง่ายที่สุดในการพิสูจน์เงินฝากคือเผยแพร่รายการคู่ (ชื่อผู้ใช้ ยอดเงินคงเหลือ) ผู้ใช้ทุกคนสามารถตรวจสอบได้ว่ามียอดคงเหลืออยู่ในรายการหรือไม่ ทุกคนสามารถตรวจสอบรายการทั้งหมดได้ โปรดดูที่:
ยอดคงเหลือแต่ละรายการไม่ติดลบ
ยอดรวมคือจำนวนเงินที่อ้างสิทธิ์
แน่นอนว่านี่เป็นการทำลายความเป็นส่วนตัว ดังนั้นเราสามารถเปลี่ยนโครงร่างได้เล็กน้อย:
เผยแพร่รายการของคู่ (แฮช "ชื่อผู้ใช้, เกลือ", ยอดคงเหลือ) และส่งค่าเกลือให้ผู้ใช้แต่ละคนเป็นการส่วนตัว แต่ถึงกระนั้นก็จะทำให้เกิดความสมดุลและรูปแบบการเปลี่ยนแปลงของความสมดุล
เทคนิคต้นไม้ Merkle

คำอธิบายภาพ
สีเขียว: โหนดที่เป็นตัวแทนของชาร์ลี สีน้ำเงิน: หมายถึงโหนดรุ่นที่ Charlie จะได้รับเป็นส่วนหนึ่งของการพิสูจน์ สีเหลือง: หมายถึงรูทโหนดซึ่งแสดงให้ทุกคนเห็นแบบสาธารณะ
การแลกเปลี่ยนจะส่งหลักฐานการฝากเงิน Merkel ให้กับผู้ใช้แต่ละคน จากนั้นผู้ใช้จะได้รับการรับประกันว่ายอดคงเหลือของพวกเขาถูกรวมเป็นส่วนหนึ่งของยอดรวมอย่างถูกต้อง อนุญาตที่นี่ที่นี่
ค้นหาการใช้งานโค้ดตัวอย่างอย่างง่าย
ความเป็นส่วนตัวที่รั่วไหลในการออกแบบนี้ต่ำกว่ารายการสาธารณะทั้งหมดมาก และสามารถลดลงได้อีกโดยการย้ายสาขาทุกครั้งที่มีการเผยแพร่ "รูท" แต่ก็ยังมีการรั่วไหลของความเป็นส่วนตัว: ชาร์ลีเรียนรู้ว่าใครบางคนมียอดคงเหลือ 164 ETH มีผู้ใช้สองคนที่มียอดคงเหลือรวมกันถึง 70 ETH เป็นต้น ผู้โจมตีที่ควบคุมหลายบัญชียังสามารถเรียนรู้มากมายเกี่ยวกับผู้ใช้ของการแลกเปลี่ยน

ความละเอียดอ่อนที่สำคัญของโครงการคือความเป็นไปได้ที่ยอดคงเหลือติดลบ: หากการแลกเปลี่ยนมียอดคงเหลือของลูกค้าที่ 1,390 ETH แต่มีสำรองไว้เพียง 890 ETH ให้ลองเพิ่ม -500 ETH ภายใต้บัญชีปลอมที่ใดที่หนึ่งบนยอดคงเหลือเพื่อสร้าง ฉันควรทำอย่างไร? ปรากฎว่าความเป็นไปได้นี้ไม่ได้ทำลายโครงร่าง ซึ่งเป็นเหตุผลว่าทำไมเราต้องการ Merkle sum tree เป็นพิเศษแทนที่จะเป็น Merkle tree ปกติ สมมติว่า Henry เป็นบัญชีปลอมที่ควบคุมโดยบริษัทแลกเปลี่ยน ซึ่งบริษัทแลกเปลี่ยนใส่ -500 ETH:
หากการแลกเปลี่ยนสามารถระบุมูลค่า 500 ETH ของผู้ใช้ที่พวกเขาเชื่อว่าจะไม่รบกวนการตรวจสอบหลักฐานหรือไว้วางใจเมื่อพวกเขาบ่นว่าพวกเขาไม่เคยได้รับหลักฐาน พวกเขาสามารถหลบหนีข้อสงสัยว่ามีการยักยอก อย่างไรก็ตาม การแลกเปลี่ยนยังสามารถแยกผู้ใช้เหล่านี้ออกจากแผนผังและมีผลเช่นเดียวกัน ดังนั้น โดยพื้นฐานแล้ว เทคโนโลยี Merkle tree นั้นดีพอๆ กับแผนพิสูจน์ความรับผิดชอบ หากเป้าหมายคือเพื่อให้บรรลุผลพิสูจน์ความรับผิดชอบเท่านั้น แต่คุณสมบัติความเป็นส่วนตัวยังไม่เหมาะ คุณสามารถใช้ต้นไม้ Merkle ด้วยวิธีที่ชาญฉลาดกว่า เช่น ทำให้ satoshi หรือ wei แต่ละใบแยกจากกัน แต่ท้ายที่สุดแล้ว ด้วยเทคนิคที่ทันสมัยกว่านี้ มีวิธีที่ดีกว่าในการทำเช่นนี้
ชื่อเรื่องรอง
การปรับปรุงความเป็นส่วนตัวและความทนทานโดยใช้ ZK-SNARK
สิ่งที่ง่ายที่สุดที่เราทำได้คือใส่เงินฝากของผู้ใช้ทั้งหมดลงในแผนผัง Merkle (หรือง่ายกว่านั้นคือข้อผูกมัดของ KZG) และใช้ ZK-SNARK เพื่อพิสูจน์ว่ายอดคงเหลือทั้งหมดในแผนผังไม่เป็นลบ และเพิ่มให้ดูเหมือนเป็น ค่าที่อ้างสิทธิ์บางอย่าง หากเราเพิ่มชั้นของการแฮชเพื่อความเป็นส่วนตัว สาขา Merkle (หรือหลักฐาน KZG) ที่มอบให้กับผู้ใช้แต่ละรายจะไม่เปิดเผยยอดคงเหลือของผู้ใช้รายอื่น

คำอธิบายภาพ
การใช้ข้อผูกมัดของ KZG เป็นวิธีหลีกเลี่ยงการรั่วไหลของความเป็นส่วนตัว เนื่องจากไม่จำเป็นต้องระบุ "โหนดน้องสาว" เป็นหลักฐาน และสามารถใช้ ZK-SNARK แบบธรรมดาเพื่อพิสูจน์ผลรวมของยอดคงเหลือ และยอดคงเหลือแต่ละรายการจะไม่ติดลบ

เราสามารถใช้ ZK-SNARK เฉพาะเพื่อพิสูจน์การบวกและการไม่เป็นลบของเครื่องชั่งใน KZG ข้างต้น นี่คือตัวอย่างง่ายๆ เราแนะนำพหุนามเสริม I(x) ที่ประกอบขึ้นเป็นเศษส่วนของแต่ละยอดคงเหลือ (เราถือว่ายอดคงเหลือต่ำกว่า 215) ติดตามผลรวมด้วยการหักล้างทุกๆ 16 ตำแหน่ง เฉพาะเมื่อผลรวมจริงเท่ากับผลรวมที่ประกาศเท่านั้น ผลรวมเท่านั้น เป็นศูนย์เมื่อมีการแข่งขัน ถ้า z เป็นรากที่ -128 ของเอกภาพ เราสามารถพิสูจน์สมการต่อไปนี้ได้:
ในอนาคตระยะยาว การพิสูจน์หนี้ ZK ดังกล่าวอาจใช้ไม่เพียงแต่กับเงินฝากของลูกค้าในการแลกเปลี่ยนเท่านั้น แต่ยังรวมถึงเงินกู้โดยทั่วไปด้วย ใครก็ตามที่ออกเงินกู้ให้บันทึกเป็นพหุนามหรือต้นไม้ที่มีเงินกู้ และรากของโครงสร้างนั้นจะถูกเผยแพร่บนเครือข่าย สิ่งนี้จะช่วยให้ทุกคนที่กำลังมองหาเงินกู้สามารถแสดงให้ผู้ให้กู้เห็นว่าพวกเขาไม่ได้กู้เงินอื่นมากเกินไป ท้ายที่สุดแล้ว นวัตกรรมทางกฎหมายอาจทำให้สินเชื่อที่กระทำในลักษณะนี้มีความสำคัญสูงกว่าสินเชื่อที่ไม่ได้ทำ นี้อยู่กับเราใน"Decentralized Society: การค้นหาจิตวิญญาณของ Web3"ชื่อเรื่องรอง
หลักฐานแสดงทรัพย์สิน
เวอร์ชันที่ง่ายที่สุดของ Proof of Assets คือโปรโตคอลที่เราเห็นด้านบน: เพื่อพิสูจน์ว่าคุณถือโทเค็น X คุณเพียงแค่ย้าย X โทเค็นในเวลาที่ตกลงกันไว้ล่วงหน้า หรือรวมในช่องข้อมูล "เงินเหล่านี้เป็นของ Binance" ย้าย X โทเค็น ในการทำธุรกรรมของ . เพื่อหลีกเลี่ยงการเสียค่าธรรมเนียมการทำธุรกรรม คุณสามารถลงชื่อในข้อความออฟไลน์ได้ ทั้ง Bitcoin และ Ethereum มีมาตรฐานสำหรับการลงนามข้อความนอกเครือข่าย
มีปัญหาในทางปฏิบัติสองประการเกี่ยวกับเทคนิคการพิสูจน์ทรัพย์สินอย่างง่ายนี้:
มีปัญหาในทางปฏิบัติสองประการเกี่ยวกับเทคนิคการพิสูจน์ทรัพย์สินอย่างง่ายนี้:
การจัดการกระเป๋าเงินเย็น
ด้วยเหตุผลด้านความปลอดภัย การแลกเปลี่ยนส่วนใหญ่จะเก็บเงินลูกค้าส่วนใหญ่ไว้ในกระเป๋าเงินเย็น ในคอมพิวเตอร์แบบออฟไลน์ การทำธุรกรรมจำเป็นต้องเซ็นชื่อและถ่ายโอนไปยังอินเทอร์เน็ตด้วยตนเอง การตั้งค่ากระเป๋าเงินเย็นที่ฉันเคยใช้เพื่อเก็บเงินส่วนบุคคลในอดีตจำเป็นต้องใช้คอมพิวเตอร์ออฟไลน์อย่างถาวรเพื่อสร้างรหัส QR ที่มีการทำธุรกรรมที่ลงนาม ซึ่งฉันจะสแกนด้วยโทรศัพท์ของฉัน โปรโตคอลการแลกเปลี่ยนในปัจจุบันมีความบ้าคลั่งมากขึ้น โดยมักเกี่ยวข้องกับการคำนวณหลายฝ่ายระหว่างอุปกรณ์หลายเครื่อง ในการตั้งค่านี้ การสร้างข้อความเพิ่มเติมเพื่อพิสูจน์การควบคุมที่อยู่นั้นเป็นการดำเนินการที่มีราคาแพง
การแลกเปลี่ยนสามารถใช้วิธีการต่อไปนี้:
การแลกเปลี่ยนสามารถใช้วิธีการต่อไปนี้:
สำรองที่อยู่สาธารณะสำหรับใช้งานระยะยาว การแลกเปลี่ยนจะสร้างที่อยู่สองสามแห่ง ออกหลักฐานของแต่ละที่อยู่หนึ่งครั้งเพื่อพิสูจน์ความเป็นเจ้าของ จากนั้นนำที่อยู่เหล่านั้นกลับมาใช้ใหม่ นี่เป็นตัวเลือกที่ง่ายที่สุด แม้ว่าจะเพิ่มข้อจำกัดบางประการในการปกป้องความปลอดภัยและความเป็นส่วนตัวของคุณ
มีที่อยู่มากมายเพียงพิสูจน์ไม่กี่แห่ง การแลกเปลี่ยนจะมีหลายที่อยู่และอาจใช้แต่ละที่อยู่เพียงครั้งเดียวและออกหลังจากการทำธุรกรรมครั้งเดียว ในกรณีนี้ การแลกเปลี่ยนอาจมีโปรโตคอลที่บางแอดเดรสจะถูกสุ่มเลือกเป็นครั้งคราว และต้อง "เปิด" เพื่อพิสูจน์ความเป็นเจ้าของ การแลกเปลี่ยนบางแห่งมีการดำเนินการที่คล้ายกันกับผู้ตรวจสอบอยู่แล้ว แต่โดยหลักการแล้ว เทคนิคนี้สามารถเปลี่ยนเป็นขั้นตอนอัตโนมัติได้อย่างสมบูรณ์
ตัวเลือก ZKP ที่ซับซ้อนยิ่งขึ้น ตัวอย่างเช่น การแลกเปลี่ยนสามารถตั้งค่าที่อยู่ทั้งหมดเป็น 1/2 มัลติซิก โดยที่แต่ละที่อยู่มีคีย์ส่วนตัวที่แตกต่างกัน และอีกอันหนึ่งเป็นคีย์สำรองฉุกเฉินที่ "สำคัญ" เวอร์ชันที่ปกปิดไม่ได้ ในทางใดทางหนึ่ง พื้นที่เก็บข้อมูลที่ซับซ้อนแต่ปลอดภัย เช่น เป็น 12/16 หลายลายเซ็น เพื่อรักษาความเป็นส่วนตัวและหลีกเลี่ยงการเปิดเผยที่อยู่ทั้งหมด การแลกเปลี่ยนยังสามารถเรียกใช้การพิสูจน์ที่ไม่มีความรู้ในบล็อกเชนเพื่อพิสูจน์ยอดรวมของที่อยู่ทั้งหมดบนเชนด้วยรูปแบบนี้
ข้อกังวลหลักอีกประการหนึ่งคือการป้องกันการใช้หลักประกันแบบคู่ การโอนหลักประกันไปมาระหว่างกันเพื่อพิสูจน์ปริมาณสำรองซึ่งเป็นเรื่องง่ายสำหรับการแลกเปลี่ยนที่จะทำ จะช่วยให้พวกเขาแสร้งทำเป็นละลายทั้งๆ ที่จริงๆ แล้วไม่ใช่ ตามหลักการแล้ว การพิสูจน์ความสามารถในการชำระหนี้ควรทำแบบเรียลไทม์ พร้อมการพิสูจน์ที่อัปเดตหลังจากแต่ละบล็อก หากวิธีนี้ใช้ไม่ได้ สิ่งที่ดีที่สุดรองลงมาคือการประสานงานระหว่างการแลกเปลี่ยนตามกำหนดเวลาที่แน่นอน เช่น การพิสูจน์ปริมาณสำรองทุกวันอังคาร เวลา 14.00 น. UTC
อีกวิธีหนึ่งคือการแยกหน่วยงานหนึ่งที่ดำเนินการการแลกเปลี่ยนที่จัดการ Stablecoins ที่ได้รับการสนับสนุนสินทรัพย์ (เช่น USDC) ออกจากหน่วยงานอื่นที่จัดการกระบวนการเคลื่อนย้ายเงินสดเข้าและออกระหว่างสกุลเงินดิจิตอลและระบบธนาคารแบบดั้งเดิม (USDC เอง) เนื่องจาก "ความรับผิด" ของ USDC เป็นเพียงโทเค็น ERC20 บนห่วงโซ่ การพิสูจน์ความรับผิดจึง "ฟรี" และจำเป็นต้องมีการพิสูจน์ทรัพย์สินเท่านั้น
ชื่อเรื่องรอง
โซลูชันการปรับขนาดพลาสมาและวาลิเดียม: เราจะบรรลุ CEX แบบไม่ต้องดูแลได้หรือไม่
สมมติว่าเราต้องการก้าวไปอีกขั้น: เราไม่ต้องการเพียงแค่พิสูจน์ว่าการแลกเปลี่ยนมีเงินที่จะจ่ายคืนให้กับผู้ใช้ เราต้องการป้องกันไม่ให้การแลกเปลี่ยนทันทีจากการขโมยเงินของผู้ใช้

ความพยายามครั้งใหญ่ครั้งแรกคือ Plasma ซึ่งเป็นโซลูชันการปรับขนาดที่ได้รับความนิยมในแวดวงการวิจัย Ethereum ในปี 2017 และ 2018 พลาสมาทำงานโดยแยกเครื่องชั่งออกเป็นชุดของ "โทเค็น" อิสระ โดยแต่ละโทเค็นจะถูกกำหนดเป็นดัชนีและอยู่ในตำแหน่งเฉพาะใน Merkle tree ของบล็อกพลาสมา เพื่อให้มีการโอนโทเค็นที่ถูกต้อง ธุรกรรมจำเป็นต้องวางในตำแหน่งที่ถูกต้องของแผนผังที่เผยแพร่รูทบนเครือข่าย
ไดอะแกรมที่ง่ายเกินไปของเวอร์ชันของ Plasma โทเค็นจะถูกเก็บไว้ในสัญญาอัจฉริยะที่บังคับใช้กฎของโปรโตคอลพลาสมาเมื่อถอนออก
นับตั้งแต่การอภิปรายเกี่ยวกับ Plasma เพิ่มขึ้นในปี 2018 ZK-SNARK นั้นเหมาะสำหรับกรณีการใช้งานที่เกี่ยวข้องกับการปรับขนาดมากขึ้น ดังที่เราได้กล่าวไว้ข้างต้น ZK-SNARK ได้เปลี่ยนแปลงทุกอย่าง
แนวคิดที่ทันสมัยกว่าของพลาสมาคือสิ่งที่ Starkware เรียกว่า validium: โดยพื้นฐานแล้วจะเหมือนกับ ZK-rollup ยกเว้นข้อมูลจะถูกเก็บไว้นอกเครือข่าย โครงสร้างนี้สามารถใช้ได้ในหลายกรณี ลองจินตนาการถึงสถานการณ์ใดๆ ที่เซิร์ฟเวอร์ส่วนกลางจำเป็นต้องรันโค้ดบางอย่างและพิสูจน์ว่ารันโค้ดได้อย่างถูกต้อง ในช่วงระยะเวลาที่มีผล ผู้ดำเนินการจะไม่มีทางขโมยเงินได้ แม้ว่าเงินของผู้ใช้จำนวนหนึ่งอาจติดขัดหากผู้ดำเนินการหายไป ทั้งนี้ขึ้นอยู่กับรายละเอียดการใช้งาน

CEX และ DEX ไม่ใช่เลขฐานสอง แต่ปรากฎว่ามีตัวเลือกมากมาย รวมถึงรูปแบบต่างๆ ของการรวมศูนย์แบบไฮบริด ซึ่งคุณจะได้รับข้อได้เปรียบบางอย่าง เช่น ประสิทธิภาพ แต่ก็ยังมีอุปสรรคในการเข้ารหัสจำนวนมากเพื่อป้องกันการละเมิดจากโอเปอเรเตอร์แบบรวมศูนย์
การจัดการข้อผิดพลาดของผู้ใช้ก็เป็นปัญหาใหญ่เช่นกัน ประเภทของข้อผิดพลาดที่สำคัญที่สุดคือ – จะทำอย่างไรหากผู้ใช้ลืมรหัสผ่าน ทำอุปกรณ์หาย ถูกแฮ็ก หรือเข้าถึงบัญชีไม่ได้
วิธีแก้ปัญหาระยะยาวในอุดมคติคือการพึ่งพาการดูแลตนเองด้วยความช่วยเหลือจากเทคโนโลยี เช่น multisig และกระเป๋าเงินกู้คืนโซเชียล เพื่อช่วยให้ผู้ใช้จัดการกับเหตุฉุกเฉิน แต่ในระยะสั้น มีสองทางเลือกที่ชัดเจนซึ่งมีต้นทุนและผลประโยชน์ที่แตกต่างกันอย่างมาก:

ชื่อเรื่องรอง
สรุป: มองไปในอนาคตสำหรับการแลกเปลี่ยนขั้นสูงเพิ่มเติม
ในระยะสั้น มีการแลกเปลี่ยนที่ชัดเจนสองประเภท: การแลกเปลี่ยนแบบคุมขังและการแลกเปลี่ยนแบบไม่ต้องดูแล ทุกวันนี้ ประเภทหลังเป็นเพียง DEX เช่น Uniswap และในอนาคต เราอาจเห็น CEX ที่มีเทคโนโลยีการเข้ารหัสที่จำกัด ซึ่งเงินของผู้ใช้จะถูกเก็บไว้ในรูปแบบที่คล้ายกับ Validium Smart Contract เรายังอาจเห็นการแลกเปลี่ยนกึ่งคุมขังที่เราไว้วางใจให้ทำงานกับสกุลเงิน fiat ไม่ใช่ cryptocurrencies
การแลกเปลี่ยนทั้งสองประเภทพร้อมให้ใช้งาน และวิธีที่ง่ายที่สุดในการปรับปรุงความปลอดภัยของการแลกเปลี่ยนแบบคุมขังคือการเพิ่มหลักฐานการสำรอง ซึ่งรวมถึงการพิสูจน์ทรัพย์สินและหลักฐานหนี้สิน มีความท้าทายทางเทคนิคในการสร้างโปรโตคอลที่ดีสำหรับทั้งสองอย่าง แต่เราสามารถและควรทำให้ความคืบหน้าทั้งกับซอฟต์แวร์โอเพ่นซอร์สและกระบวนการต่าง ๆ ให้มากที่สุดเท่าที่จะเป็นไปได้ เพื่อให้การแลกเปลี่ยนทั้งหมดได้รับประโยชน์


