โดย: Zooko Wilcox, Jason McGee และ Taylor Hornby จาก Shielded Labs
สรุป
Shielded Labs กำลังทำงานร่วมกับ The Zcash Foundation, Tachyon Group, Valar Group และ Zcash Open Development Lab (ZODL) ในข้อเสนอที่เรียกว่า "Ironwood" เพื่อฟื้นฟูความสามารถของผู้ใช้ในการตรวจสอบความถูกต้องของปริมาณ Zcash ที่หมุนเวียนอยู่ในระบบ
สัปดาห์ที่แล้ว มีการค้นพบ ช่องโหว่การปลอมแปลงที่สำคัญ ใน Orchard pool ของ Zcash ช่องโหว่ดังกล่าวได้รับการแก้ไขผ่านการอัปเกรดเครือข่ายฉุกเฉินที่ประสานงานโดย ZODL และผู้มีส่วนร่วมในระบบนิเวศอื่นๆ และเสร็จสมบูรณ์ในวันที่ 2 มิถุนายน
แม้ว่าเราเชื่อว่าไม่น่าจะมีการใช้ประโยชน์จากช่องโหว่นี้ (ด้วยเหตุผลที่ระบุไว้ใน การเปิดเผยข้อมูล ของเรา) แต่คุณสมบัติความเป็นส่วนตัวของ Orchard ทำให้ผู้ใช้ไม่สามารถตรวจสอบสิ่งนั้นได้ด้วยตนเอง
Ironwood จะช่วยให้ผู้ใช้สามารถตรวจสอบได้ว่าปริมาณ Zcash ที่หมุนเวียนอยู่นั้นถูกต้อง ผู้ใช้จะได้รับความสามารถนี้ทันทีเมื่อ Ironwood เปิดใช้งาน โดยเพียงแค่รวมยอดคงเหลือของ pool ที่ใช้งานอยู่ พวกเขาไม่จำเป็นต้องใช้เหตุผลเกี่ยวกับแรงจูงใจหรือการกระทำของผู้อื่น หรือรอการย้ายข้อมูลจาก Orchard pool เพื่อตรวจสอบว่าปริมาณ Zcash ที่หมุนเวียนทั้งหมดถูกต้อง
Ironwood
วัตถุประสงค์ของ Ironwood คือการฟื้นฟูความสามารถของผู้ใช้ Zcash แต่ละคนในการตรวจสอบความสมบูรณ์ของปริมาณ Zcash ความสามารถในการตรวจสอบนี้ถูกบั่นทอนลงเนื่องจากการมีอยู่ของช่องโหว่การปลอมแปลง ทันทีที่เปิดใช้งาน ผู้ใช้จะสามารถตรวจสอบได้อย่างอิสระว่าปริมาณ Zcash ที่หมุนเวียนอยู่นั้นถูกต้อง เพียงแค่รันโหนด
เพื่อให้บรรลุเป้าหมายนี้ Ironwood จะ:
- สร้าง shielded pool ใหม่โดยใช้วงจร Orchard ที่แก้ไขช่องโหว่การปลอมแปลงล่าสุดแล้ว
- ปฏิเสธธุรกรรมใดๆ ที่สร้าง output ใหม่ใน Orchard pool เก่าว่าไม่ถูกต้อง
- เพิ่มความมั่นใจเกี่ยวกับโค้ดเบส โดยใช้เทคนิคต่างๆ เช่น การตรวจสอบความปลอดภัยด้วย AI และการพิสูจน์อย่างเป็นทางการ (formal verification) ทั้งหมดนี้มุ่งหวังเพื่อให้แน่ใจว่าไม่มีข้อบกพร่องในการปลอมแปลงเพิ่มเติม
เหตุผลที่ Ironwood ใช้ได้ผล
Ironwood เปลี่ยนแปลงสิ่งที่สามารถเกิดขึ้นได้ภายใน Orchard pool
เมื่อเปิดใช้งาน ธุรกรรมใดๆ ที่สร้าง output ใหม่ใน Orchard pool จะถูกปฏิเสธ ซึ่งหมายความว่า ZEC จะไม่สามารถหมุนเวียนภายใน pool นั้นต่อไปได้อีก จากจุดนั้นเป็นต้นไป เงินทุนใน Orchard pool จะสามารถเคลื่อนย้ายได้โดยการออกจาก pool ผ่าน turnstile เท่านั้น
Turnstiles เป็นกลไกการบัญชีบนเชนของ Zcash สำหรับการโอนระหว่าง pool พวกมันติดตามว่า ZEC เข้าและออกจากแต่ละ pool เท่าใด และปฏิเสธธุรกรรมใดๆ ที่พยายามจะย้าย ZEC ออกมากกว่าที่เข้ามาอย่างถูกต้อง
กฎเหล่านี้รวมกันหมายความว่าผู้ใช้ไม่จำเป็นต้องรอให้เงินทุน Orchard ทั้งหมดหรือบางส่วนย้ายออก ทันทีที่ Ironwood เปิดใช้งาน ผู้ใช้สามารถตรวจสอบจากกฎฉันทามติได้ว่า ZEC ที่หมุนเวียนอยู่ไม่เกินจำนวนที่ถูกต้อง ซึ่งให้การรับประกันความถูกต้องของปริมาณ Zcash ที่หมุนเวียนได้ทันทีและไม่ต้องไว้ใจใคร ZEC ส่วนเกินไม่สามารถหมุนเวียนอย่างลับๆ ระหว่างผู้ใช้ Orchard pool ได้ และไม่สามารถหลบหนีไปยัง pool อื่นได้
การสร้างหลักฐานว่าช่องโหว่ถูกใช้ประโยชน์หรือไม่
Ironwood อาจให้หลักฐานว่าช่องโหว่ Orchard เคยถูกใช้ประโยชน์หรือไม่ แต่การบรรลุวัตถุประสงค์นั้นไม่ได้ขึ้นอยู่กับว่าหลักฐานดังกล่าวจะปรากฏหรือไม่
เมื่อผู้ใช้ย้ายเงินทุนจาก Orchard pool ที่มีอยู่ไปยัง pool ใหม่ ผู้ปลอมแปลงสมมุติต้องเผชิญกับทางเลือก: พยายามย้ายเงินปลอมและเสี่ยงที่จะเปิดเผยการมีอยู่ของมัน หรือทิ้งมันไว้และเสี่ยงที่จะไม่สามารถย้ายมันได้ในอนาคต
สิ่งนี้สร้างผลลัพธ์ที่เป็นไปได้สองประการ:
ผลลัพธ์ A: ไม่มี ZEC ส่วนเกินพยายามออกจาก Orchard pool ที่มีอยู่ นี่จะเป็นหลักฐานที่ชัดเจนว่าช่องโหว่ไม่เคยถูกใช้ประโยชน์ เนื่องจากผู้ปลอมแปลงจะมีแรงจูงใจอย่างมากในการย้ายเงินปลอมก่อนที่ผู้ใช้ที่ถูกต้องจะทำการย้ายข้อมูลเสร็จสิ้น
ผลลัพธ์ B: ZEC ส่วนเกินพยายามออกจาก Orchard pool ที่มีอยู่ ในกรณีนี้ เงินส่วนเกินจะไม่สามารถออกจาก pool ได้และจะถูกทำลายอย่างมีประสิทธิภาพ น่าเสียดายที่นี่เป็นสิ่งจำเป็นเพื่อรักษาปริมาณหมุนเวียนปัจจุบันในทุก pool นอกจากนี้ยังจะให้หลักฐานที่ตรวจสอบได้ต่อสาธารณะว่ามีการปลอมแปลงเกิดขึ้น เนื่องจากเราเชื่อว่าช่องโหว่ไม่ได้ถูกใช้ประโยชน์ เราจึงคิดว่าผลลัพธ์นี้ไม่น่าเป็นไปได้
กระเป๋าเงิน (Wallets)
เราขอแนะนำให้กระเป๋าเงินทั้งหมดที่รองรับ Orchard pool ที่มีอยู่ เพิ่มการรองรับ pool ใหม่
กระเป๋าเงินควรยังคงรองรับ Orchard pool ที่มีอยู่ตามปกติจนกว่า Ironwood จะเปิดใช้งาน จากนั้นจึงย้ายเงินทุนของผู้ใช้จาก Orchard pool ที่มีอยู่ไปยัง pool ใหม่ แม้ว่าการย้ายข้อมูลจะมีผลกระทบต่อความเป็นส่วนตัว (กล่าวคือ มันเปิดเผยจำนวน ZEC ที่โอนและเวลาที่ทำการโอน) แต่เราเชื่อว่าผลกระทบต่อความเป็นส่วนตัวของผู้ใช้อยู่ในระดับปานกลางและสามารถบรรเทาเพิ่มเติมได้โดยพฤติกรรมของกระเป๋าเงิน
ผู้รับ Orchard ที่มีอยู่ (เช่น ที่อยู่) ยังคงใช้ได้และไม่จำเป็นต้องเปลี่ยน ZEC ที่ส่งไปยังผู้รับ Orchard ที่สร้างขึ้นก่อนการเปิดใช้งาน Ironwood จะได้รับเป็น ZEC ใน pool ใหม่โดยอัตโนมัติ
ระยะเวลา
เช่นเดียวกับการอัปเกรดเครือข่ายส่วนใหญ่ Ironwood จะต้องมีการพัฒนา ทดสอบ ตรวจสอบ และประสานงานทั่วทั้งระบบนิเวศ ประสบการณ์แสดงให้เห็นว่างานนี้มักใช้เวลานานกว่าที่คาดไว้ ดังนั้นเราเชื่อว่าควรระมัดระวังเมื่อพูดถึงกำหนดเวลา ดีกว่าสัญญาเกินจริงและส่งมอบได้น้อย
แหล่งที่มาของความไม่แน่นอนอีกประการหนึ่งคือการเลิกใช้งาน zcashd ที่กำลังดำเนินอยู่ แม้ว่า Shielded Labs จะไม่ได้มีส่วนร่วมโดยตรงในความพยายามนั้น แต่การย้ายการแลกเปลี่ยน, mining pools, กระเป๋าเงิน และผู้ให้บริการโครงสร้างพื้นฐานอื่นๆ ไปยัง Zebra อาจส่งผลต่อระยะเวลาของการอัปเกรดเครือข่ายนี้
เราคาดว่าจะมีความเข้าใจที่ดีขึ้นเกี่ยวกับกำหนดการเมื่อแผนการดำเนินงานมีความสมบูรณ์มากขึ้นและการหารือยังคงดำเนินต่อไป
บทสรุป
เราต้องการเน้นย้ำว่าเราเชื่อว่าการใช้ประโยชน์จากช่องโหว่ Orchard ก่อนหน้านี้ไม่น่าเป็นไปได้ แต่ผู้ใช้ไม่ควรต้องเชื่อถือการประเมินของเราหรือของใครอื่น เมื่อพูดถึงความสมบูรณ์ของปริมาณ Zcash
Ironwood ได้รับการออกแบบมาเพื่อฟื้นฟูการรับประกันปริมาณ Zcash ที่หมุนเวียน ซึ่งทุกคนสามารถตรวจสอบได้ด้วยตนเอง ไม่ว่าช่องโหว่จะเคยถูกใช้ประโยชน์หรือไม่ เป้าหมายก็เหมือนกัน: ทำให้ความสมบูรณ์ของปริมาณ Zcash เป็นสิ่งที่สามารถตรวจสอบได้
เราเชื่อว่า Ironwood เป็นเส้นทางที่ดีที่สุดและรอคอยที่จะหารือเกี่ยวกับข้อเสนอนี้กับชุมชน Zcash
กิตติกรรมประกาศ
ขอขอบคุณ Sean Bowe, Dev Ojha, David Campbell, Alex Bornstein, Nate Wilcox, Kris Nuttycombe, Vitalik Buterin, Balaji Srinivasan, Taylor Hornby, Josh Swihart และ Tatyana สำหรับการตรวจสอบและข้อเสนอแนะ ขอขอบคุณ Kris Nuttycombe เป็นพิเศษสำหรับการแนะนำให้การอัปเกรด Ironwood ปิดการใช้งานธุรกรรมที่สร้าง outputs ใน Orchard pool เก่า ซึ่งกลายเป็นสิ่งสำคัญสำหรับ Ironwood ในการบรรลุเป้าหมาย





