TLDR: ERC-4626 เป็นมาตรฐานสำหรับโทเค็นห้องนิรภัยก่อนเปิดตัว ERC-4626 แต่ละห้องนิรภัยมีข้อกำหนดเฉพาะและรายละเอียดการใช้งานของตัวเอง สิ่งนี้ทำให้การผสานรวมทำได้ยาก เกิดข้อผิดพลาดได้ง่าย และสิ้นเปลืองทรัพยากรERC-4626 พยายามแก้ปัญหานี้ด้วยข้อกำหนดมาตรฐานเพื่อลดความพยายามในการผสานรวมและสร้างรูปแบบการใช้งานที่สอดคล้องและแข็งแกร่งยิ่งขึ้น เช่นเดียวกับ ERC-20### ERC-4626 คืออะไร?ERC-4626 เป็นมาตรฐานที่ปรับปรุงพารามิเตอร์ทางเทคนิคของห้องเก็บผลผลิต มี API มาตรฐานสำหรับ Yield Vault ที่แสดงถึงการแชร์ของโทเค็น ERC-20 เดียวห้องนิรภัยแบบโทเค็นกลายเป็นรูปแบบที่พบเห็นได้ทั่วไปใน DeFi ผู้รวบรวมผลตอบแทน ตลาดให้กู้ยืม อนุพันธ์ที่เดิมพัน และ dApps อื่น ๆ อีกมากมายใช้ประโยชน์จากห้องนิรภัยโทเค็น ตัวอย่างของ tokenized vault ได้แก่ Yearn และ Balancer ในฐานะผู้รวบรวมผลตอบแทน Yearn Vault ช่วยให้ผู้ใช้สามารถฝากสินทรัพย์ดิจิทัลและรับผลตอบแทน Balancer เป็นผู้จัดการพอร์ตโฟลิโออัตโนมัติและผู้ให้บริการสภาพคล่องที่อาศัยห้องนิรภัยเป็นแกนหลักของตรรกะทางธุรกิจ ห้องนิรภัยเหล่านี้จัดการโทเค็นในพูลต่างๆ ในขณะเดียวกัน พวกเขาแยกการจัดการโทเค็นออกจากตรรกะของพูลเองโปรโตคอลช่วยเพิ่มสภาพคล่องและความยืดหยุ่นโดยการทำโทเค็นห้องนิรภัย ห้องนิรภัยแบบโทเค็นช่วยให้ทำธุรกรรมและใช้สินทรัพย์บนแพลตฟอร์ม DeFi ได้ง่าย นอกจากนี้ยังช่วยให้สามารถสร้างผลิตภัณฑ์ทางการเงินที่หลากหลายและเชื่อมโยงถึงกันได้ อุตสาหกรรมนี้สนับสนุนกระบวนทัศน์นี้ ซึ่งมักเรียกกันว่า "เลโก้เงิน"อย่างไรก็ตาม ความสามารถในการจัดองค์ประกอบโดยปราศจากความสามารถในการปรับตัวที่เหมาะสมหรือการสร้างมาตรฐานทำให้เกิดความท้าทาย ไม่เพียงแต่จะทำให้นักพัฒนาปฏิบัติตามมาตรฐานอุตสาหกรรมอย่าง ERC-20 ได้ยากเท่านั้น แต่ยังทำให้นักพัฒนาหน้าใหม่สับสนอีกด้วย หากไม่มีการปรับเปลี่ยนหรือกำหนดมาตรฐานอย่างเหมาะสม จะเป็นการยากที่จะตรวจสอบการเปลี่ยนแปลงใหม่และยืนยันรายละเอียดการใช้งานของการผสานรวมดังนั้น ERC-4626 จึงได้รับการเสนอเพื่อแก้ปัญหานี้และทำให้การผสานรวมง่ายขึ้น ในขณะเดียวกันก็ช่วยให้ผู้เข้าร่วม DeFi สามารถนำข้อกำหนดของห้องนิรภัยแบบรวมที่มีความปลอดภัยและแข็งแกร่งมาใช้ได้ในที่สุด สิ่งนี้จะลดพื้นผิวการโจมตีที่เป็นไปได้ของโปรโตคอลในขณะที่รวมโทเค็นข้ามโปรโตคอลต่างๆ### ปัญหาด้านความปลอดภัยใดที่ ERC-4626 สามารถป้องกันได้ด้วยการจัดเตรียมมาตรฐานแบบครบวงจร ERC-4626 เร่งการสร้างการรวมข้ามโปรโตคอล นอกจากนี้ มาตรฐานที่คุ้นเคยและสอดคล้องกันยังช่วยให้นักพัฒนาเข้าใจได้ง่ายขึ้น ซึ่งช่วยลดโอกาสที่จะเกิดข้อผิดพลาดในการเขียนโค้ด สิ่งนี้จะช่วยป้องกันปัญหาด้านความสามารถในการจัดองค์ประกอบ การกำหนดมาตรฐานยังช่วยป้องกันไม่ให้เกิดความซ้ำซ้อน เนื่องจากชุมชนจำเป็นต้องออกแบบห้องนิรภัยเพียงครั้งเดียว แทนที่จะออกแบบทีละรายการสำหรับแต่ละโปรโตคอล เนื่องจากความพยายามในการออกแบบนี้มักเกิดข้อผิดพลาดได้ง่าย จึงช่วยหลีกเลี่ยงการทำซ้ำข้อบกพร่องของการออกแบบที่เป็นที่ยอมรับแต่แพร่หลายเราจะนำเสนอกรณีศึกษาสองกรณีที่นี่เพื่อแสดงให้เห็นว่าปัญหาใดที่ ERC-4626 สามารถป้องกันได้####งานราศรีทุนโทเค็นมูลค่าประมาณ 11 ล้านดอลลาร์ถูกขโมยจาก Rari Capital ซึ่งเทียบเท่ากับ 60% ของเงินผู้ใช้ทั้งหมดในกลุ่ม Ethereum ของ Rari Capitalโดยรวมแล้ว Rari Capital ถูกแฮ็กเนื่องจากการปรับใช้ข้ามโปรโตคอลที่ไม่ปลอดภัย กลุ่ม Ethereum นำ ETH เข้าสู่สัญญาโทเค็น ibETH ของ Alpha Finance เป็นกลยุทธ์การส่งออก กลยุทธ์เฉพาะนี้ติดตามมูลค่าของอัตราแลกเปลี่ยน ibETH/ETH ผ่านสัญญาและสูตรบางอย่าง (โดยเฉพาะ ฟังก์ชัน ibETH.totalETH / ibETH.totalSupply) ซึ่งอาจมีผลลัพธ์ที่ผิดพลาดในสถานการณ์การโจมตีนี้ เช่น เมื่อเรียก ibETH.work ( ) ฟังก์ชัน มูลค่าหนี้อาจสูงเกินจริงผู้โจมตีสามารถทำให้ Rari Fund Manager หมดได้โดยการเรียกใช้ฟังก์ชันฝากและถอนซ้ำๆ ในสัญญา RariFundManager ฟังก์ชันฝากและถอนจำเป็นต้องได้รับยอดคงเหลือของพูลเพื่อคำนวณจำนวนโทเค็น REPT ที่จะออกให้แก่ผู้โทร หรือจำนวน ETH ที่จะออกให้แก่ผู้เรียก การดำเนินการนี้จะเรียกฟังก์ชัน getBalance ของพูลอัลฟ่า เรียกสัญญา ibETH และฟังก์ชัน totalETH Rari ไม่ทราบถึงความเป็นไปได้ในการจัดการกับฟังก์ชันนี้มีฟังก์ชั่นอื่นในสัญญา ibETH: ibETH.work ฟังก์ชันนี้สามารถเรียกใช้สัญญาใด ๆ ที่ผู้ใช้กำหนด ซึ่งช่วยให้ฟังก์ชันการฝากและถอนของ Rari สามารถกลับเข้ามาใหม่และเรียกได้หลายครั้งฟังก์ชันการทำงานเป็นฟังก์ชันที่ต้องชำระ ซึ่งหมายความว่าผู้ใช้สามารถควบคุมจำนวน ETH ในสัญญา ibETH ผ่านฟังก์ชันการทำงาน ซึ่งจะเป็นการเปลี่ยนค่าที่ส่งคืนโดยฟังก์ชัน totalETH ยิ่งไปกว่านั้น ฟังก์ชันการทำงานยังรองรับการเรียกสัญญาอื่นๆ เช่น RariFundManagerด้วยฟังก์ชันนี้ ผู้โจมตีสามารถส่ง ETH อีกครั้งและเพิ่มยอดรวม ETH ในสัญญา ibETH และในขณะเดียวกันก็โทรถอนในสัญญา RariFundManager เพื่อแลกสินทรัพย์มากขึ้นเหตุการณ์นี้เน้นให้เห็นถึงความเสี่ยงที่สำคัญที่เกิดจากการผสานรวมที่ไม่เพียงพอและการออกแบบที่เข้ากันไม่ได้ในสัญญา DeFi โดยเน้นย้ำว่ามาตรฐานเช่น ERC-4626 สามารถป้องกันการโจมตีดังกล่าวได้อย่างไรโดยเพิ่มชั้นความปลอดภัยและการคาดการณ์ที่สำคัญ และส่งเสริมพฤติกรรมที่เหมือนกันและความเข้าใจซึ่งกันและกัน####คดีไฟแนนซ์ครีมCream Finance ประสบกับการโจมตีที่ซับซ้อนซึ่งใช้ประโยชน์จากจุดอ่อนพื้นฐานสองประการในแพลตฟอร์ม: ออราเคิลผสมที่ถูกควบคุมและการจัดหาโทเค็นที่ไม่ได้จำกัด ส่วนสำคัญของการโจมตีคือการจัดการผสม oracle ซึ่งส่งผลต่อการรับรู้มูลค่าของโทเค็น yUSD เมื่อผู้โจมตีส่งโทเค็น Yearn 4-Curve จำนวนมากไปยังห้องนิรภัย yUSD เขาเปลี่ยนอัตราแลกเปลี่ยนที่รายงานโดยห้องนิรภัย และดังนั้นจึงส่งผลกระทบต่อมูลค่าการรับรู้ของโทเค็น yUSD ไปยังออราเคิลด้วยบทเรียนสำคัญที่นี่คือออราเคิลราคาที่แข็งแกร่งและควบคุมไม่ได้มีความสำคัญต่อความเสถียรของโปรโตคอล DeFi ออราเคิลราคาถัวเฉลี่ยถ่วงน้ำหนักตามเวลา (TWAP) สามารถช่วยป้องกันการแฮ็กดังกล่าวได้ เนื่องจากมีความยืดหยุ่นมากกว่าต่อการเปลี่ยนแปลงราคาอย่างกะทันหันปัญหาเหล่านี้และรูปแบบการออกแบบที่เปราะบางอื่นๆ สามารถบรรเทาลงได้ด้วยการใช้ ERC-4626 อย่างระมัดระวัง### ความเสี่ยงด้านความปลอดภัยที่อาจเกิดขึ้นใน ERC-4626มีการแลกเปลี่ยนบางอย่างกับการใช้โปรโตคอลใหม่อยู่เสมอ สำหรับตู้เก็บโทเค็น อาจมีปัญหาที่อาจเกิดขึ้นในการรวมเข้ากับสัญญาอัจฉริยะที่ต้องให้ความสนใจเป็นพิเศษ#### จัดการโทเค็นค่าธรรมเนียมการโอนหากห้องนิรภัยได้รับการออกแบบมาเพื่อรองรับโทเค็น feeOnTransfer ให้ตรวจสอบว่าจำนวนเงินและการแบ่งปันในห้องนิรภัยนั้นอยู่ในช่วงที่คาดไว้เมื่อทำการโอนสินทรัพย์#### การใช้ตัวแปรทศนิยมอย่างเหมาะสมแม้ว่าฟังก์ชัน converterTo ไม่จำเป็นต้องใช้ตัวแปรทศนิยมของห้องนิรภัย EIP-4626 แต่ก็ยังแนะนำอย่างยิ่งให้สะท้อนทศนิยมของโทเค็นพื้นฐานหากเป็นไปได้ แนวทางปฏิบัตินี้ช่วยขจัดแหล่งที่มาของความสับสนและทำให้การรวมระบบง่ายขึ้นสำหรับผู้ใช้ส่วนหน้าและผู้ใช้นอกเครือข่ายต่างๆ#### การปัดเศษตามข้อมูลจำเพาะ ผู้ใช้ vault ควรทราบว่าต้องใช้ทิศทางการปัดเศษที่เจาะจงและตรงกันข้ามในวิธีการที่ไม่แน่นอนและมุมมองที่แตกต่างกัน เนื่องจากจะปลอดภัยกว่าที่จะจัดลำดับความสำคัญของ vault เองเหนือผู้ใช้ในระหว่างการคำนวณ:- หากกำลังคำนวณจำนวนหุ้นที่จะออกให้แก่ผู้ใช้ตามจำนวนโทเค็นอ้างอิงที่พวกเขาเสนอ หรือหากกำลังดำเนินการเพื่อโอนหุ้นเฉพาะของโทเค็นอ้างอิงให้กับผู้ใช้ ควรปัดเศษลง- หากกำลังคำนวณจำนวนหุ้นที่ผู้ใช้ต้องให้เพื่อให้ได้โทเค็นฐานจำนวนหนึ่ง หรือหากกำลังคำนวณจำนวนโทเค็นพื้นฐานที่ผู้ใช้ต้องให้เพื่อให้ได้จำนวนหุ้นที่แน่นอน ควร ถูกปัดขึ้นโดยที่ทิศทางการปัดเศษที่ต้องการจะไม่ชัดเจนคือฟังก์ชัน converterTo เพื่อให้มั่นใจถึงความสอดคล้องในการใช้งานห้องนิรภัย EIP-4626 ทั้งหมด ให้ระบุว่าฟังก์ชันเหล่านี้ต้องปัดเศษลงเสมอ ผู้รวมระบบสามารถเลียนแบบเวอร์ชันการปัดเศษได้เอง เช่น โดยการเพิ่ม Wei ลงในผลลัพธ์จำนวนสินทรัพย์อ้างอิงที่ผู้ใช้ได้รับจากการแลกเงินเดิมพันในห้องนิรภัย (previewRedeem) อาจแตกต่างกันอย่างมากจากจำนวนเงินที่ต้องจ่ายเพื่อออกเงินเดิมพันจำนวนเท่ากัน (previewMint) ความแตกต่างเหล่านี้อาจมีขนาดเล็ก (เช่น เนื่องจากข้อผิดพลาดในการปัดเศษ) หรือมาก (เช่น ห้องนิรภัยใช้ค่าธรรมเนียมการถอนหรือฝาก) ดังนั้น ผู้ประกอบควรระมัดระวังในการใช้ฟังก์ชันการแสดงตัวอย่างที่เหมาะสมกับกรณีการใช้งานของตนมากที่สุด และอย่าคิดว่าฟังก์ชันเหล่านี้ใช้แทนกันได้#### แทนที่การทำงานหลักเพื่อใช้งานหรือขยายฟังก์ชันการทำงานที่ต้องการ ขอแนะนำให้ใช้ hooks ที่มีอยู่แทนการเปลี่ยนฟังก์ชันการทำงานหลัก แนวทางปฏิบัตินี้ช่วยให้มั่นใจถึงเส้นทางที่จัดการได้มากขึ้นสำหรับการทดสอบและตรวจสอบโค้ดอย่างมีประสิทธิภาพ#### ไม่มีส่วนแบ่งข้อมูลจำเพาะดั้งเดิมสำหรับ ERC-4626 ไม่ได้สรุปวิธีจัดการกรณีเข้ามุมที่ไม่มีการใช้ร่วมกันในห้องนิรภัย และไม่ว่าห้องนิรภัยควรทำงานตามปกติหรือย้อนกลับ นี่อาจเป็นที่มาของความสับสนและข้อผิดพลาด#### ห้องนิรภัยเป็นออราเคิลราคาสำหรับความเสี่ยงของการโจมตีการจัดการราคาของ Oracle ค่าที่ส่งกลับโดยวิธีการแสดงตัวอย่างเหล่านี้จะใกล้เคียงกับความถูกต้องมากที่สุด ด้วยเหตุนี้จึงสามารถทำงานได้โดยการเปลี่ยนเงื่อนไขบนเครือข่ายและไม่ปลอดภัยเสมอไปที่จะใช้เป็นออราเคิลด้านราคา ข้อมูลจำเพาะ ERC-4626 รวมถึงวิธีการแปลงและวิธี TotalAssets ที่ช่วยให้ไม่แม่นยำ ดังนั้นจึงสามารถนำไปใช้เป็นออราเคิลราคาที่มีประสิทธิภาพ ตัวอย่างเช่น เมื่อแปลงระหว่างสินทรัพย์และหุ้น การใช้ราคาถัวเฉลี่ยถ่วงน้ำหนักตามเวลาเพื่อใช้วิธีแปลงนั้นถูกต้อง#### ปัญหาการดำเนินการที่เป็นรูปธรรมผู้รวมระบบต้องตรวจสอบการใช้งาน tokenized vault ก่อนการรวมเพิ่มเติม เนื่องจากอาจมีการใช้งานที่เป็นอันตรายซึ่งดูเหมือนว่าจะเป็นไปตามข้อกำหนดเฉพาะของอินเทอร์เฟซ แต่ฟังก์ชันหลักประกอบด้วยข้อกำหนดการออกแบบที่แตกต่างกันโดยสิ้นเชิง#### การเข้าถึง EOA โดยตรงหากต้องเข้าถึงห้องนิรภัยโดยตรง การใช้งานจำเป็นต้องมีคุณลักษณะที่สามารถใช้เพื่อรองรับการสูญเสียการเลื่อนหลุดหรือขีดจำกัดการฝาก/ถอนโดยไม่ตั้งใจ ซึ่งแตกต่างจากสัญญาอัจฉริยะ EOA ไม่มีกลไกความปลอดภัยสำหรับการย้อนกลับของธุรกรรม หากไม่ได้ผลลัพธ์ที่แม่นยำเมื่อเรียกใช้ฟังก์ชันหลัก จะไม่มีทางย้อนกลับได้#### ห้องนิรภัยแบบขยายเมื่อมีผู้เล่นจำนวนมากขึ้นเริ่มนำมาตรฐาน ERC-4626 มาใช้ เราจะเห็นส่วนขยายเพิ่มเติมสำหรับมาตรฐานนี้ ตัวอย่างเช่น Superform ได้พัฒนาส่วนขยาย Multi Vault รุ่นทดลองที่รองรับการใช้การคำนวณที่แตกต่างกันภายในสัญญา Vault เดียว ยิ่งมีการดำเนินการที่ผิดไปจากมาตรฐานเดิมมากเท่าใด ก็ยิ่งมีโอกาสเกิดช่องโหว่ใหม่มากขึ้นเท่านั้น นักพัฒนาและผู้ตรวจสอบสามารถค้นหาตัวเลือกที่ดีที่สุดตามกรณีการใช้งานเพื่อกำหนดมูลค่าจริงที่มีความเสี่ยงสิ่งสำคัญคือต้องสังเกตว่าไม่ใช่ส่วนเพิ่มที่เล็กที่สุดของแต่ละโปรโตคอลที่นำไปสู่เหตุการณ์ภัยพิบัติ แต่เป็นผลรวมของโปรโตคอลเหล่านั้นเมื่อรวมเข้าด้วยกันเวกเตอร์การโจมตีที่อาจเกิดขึ้นที่กล่าวถึงข้างต้นเป็นประเด็นที่มีการกล่าวถึงมากขึ้นเกี่ยวกับมาตรฐาน ERC-4626 เมื่อการยอมรับเพิ่มขึ้น เราจะสำรวจกรณีการใช้งานการใช้งานเพิ่มเติม และสถานการณ์ที่เหมาะสมมากขึ้นสำหรับการรวมเข้ากับห้องนิรภัย ERC-4626
ทำความเข้าใจ ERC-4626 ในบทความเดียว: มาตรฐานใหม่สำหรับ DeFi tokenized vault
TLDR: ERC-4626 เป็นมาตรฐานสำหรับโทเค็นห้องนิรภัย
ก่อนเปิดตัว ERC-4626 แต่ละห้องนิรภัยมีข้อกำหนดเฉพาะและรายละเอียดการใช้งานของตัวเอง สิ่งนี้ทำให้การผสานรวมทำได้ยาก เกิดข้อผิดพลาดได้ง่าย และสิ้นเปลืองทรัพยากร
ERC-4626 พยายามแก้ปัญหานี้ด้วยข้อกำหนดมาตรฐานเพื่อลดความพยายามในการผสานรวมและสร้างรูปแบบการใช้งานที่สอดคล้องและแข็งแกร่งยิ่งขึ้น เช่นเดียวกับ ERC-20
ERC-4626 คืออะไร?
ERC-4626 เป็นมาตรฐานที่ปรับปรุงพารามิเตอร์ทางเทคนิคของห้องเก็บผลผลิต มี API มาตรฐานสำหรับ Yield Vault ที่แสดงถึงการแชร์ของโทเค็น ERC-20 เดียว
ห้องนิรภัยแบบโทเค็นกลายเป็นรูปแบบที่พบเห็นได้ทั่วไปใน DeFi ผู้รวบรวมผลตอบแทน ตลาดให้กู้ยืม อนุพันธ์ที่เดิมพัน และ dApps อื่น ๆ อีกมากมายใช้ประโยชน์จากห้องนิรภัยโทเค็น ตัวอย่างของ tokenized vault ได้แก่ Yearn และ Balancer ในฐานะผู้รวบรวมผลตอบแทน Yearn Vault ช่วยให้ผู้ใช้สามารถฝากสินทรัพย์ดิจิทัลและรับผลตอบแทน Balancer เป็นผู้จัดการพอร์ตโฟลิโออัตโนมัติและผู้ให้บริการสภาพคล่องที่อาศัยห้องนิรภัยเป็นแกนหลักของตรรกะทางธุรกิจ ห้องนิรภัยเหล่านี้จัดการโทเค็นในพูลต่างๆ ในขณะเดียวกัน พวกเขาแยกการจัดการโทเค็นออกจากตรรกะของพูลเอง
โปรโตคอลช่วยเพิ่มสภาพคล่องและความยืดหยุ่นโดยการทำโทเค็นห้องนิรภัย ห้องนิรภัยแบบโทเค็นช่วยให้ทำธุรกรรมและใช้สินทรัพย์บนแพลตฟอร์ม DeFi ได้ง่าย นอกจากนี้ยังช่วยให้สามารถสร้างผลิตภัณฑ์ทางการเงินที่หลากหลายและเชื่อมโยงถึงกันได้ อุตสาหกรรมนี้สนับสนุนกระบวนทัศน์นี้ ซึ่งมักเรียกกันว่า "เลโก้เงิน"
อย่างไรก็ตาม ความสามารถในการจัดองค์ประกอบโดยปราศจากความสามารถในการปรับตัวที่เหมาะสมหรือการสร้างมาตรฐานทำให้เกิดความท้าทาย ไม่เพียงแต่จะทำให้นักพัฒนาปฏิบัติตามมาตรฐานอุตสาหกรรมอย่าง ERC-20 ได้ยากเท่านั้น แต่ยังทำให้นักพัฒนาหน้าใหม่สับสนอีกด้วย หากไม่มีการปรับเปลี่ยนหรือกำหนดมาตรฐานอย่างเหมาะสม จะเป็นการยากที่จะตรวจสอบการเปลี่ยนแปลงใหม่และยืนยันรายละเอียดการใช้งานของการผสานรวม
ดังนั้น ERC-4626 จึงได้รับการเสนอเพื่อแก้ปัญหานี้และทำให้การผสานรวมง่ายขึ้น ในขณะเดียวกันก็ช่วยให้ผู้เข้าร่วม DeFi สามารถนำข้อกำหนดของห้องนิรภัยแบบรวมที่มีความปลอดภัยและแข็งแกร่งมาใช้ได้ในที่สุด สิ่งนี้จะลดพื้นผิวการโจมตีที่เป็นไปได้ของโปรโตคอลในขณะที่รวมโทเค็นข้ามโปรโตคอลต่างๆ
ปัญหาด้านความปลอดภัยใดที่ ERC-4626 สามารถป้องกันได้
ด้วยการจัดเตรียมมาตรฐานแบบครบวงจร ERC-4626 เร่งการสร้างการรวมข้ามโปรโตคอล นอกจากนี้ มาตรฐานที่คุ้นเคยและสอดคล้องกันยังช่วยให้นักพัฒนาเข้าใจได้ง่ายขึ้น ซึ่งช่วยลดโอกาสที่จะเกิดข้อผิดพลาดในการเขียนโค้ด สิ่งนี้จะช่วยป้องกันปัญหาด้านความสามารถในการจัดองค์ประกอบ การกำหนดมาตรฐานยังช่วยป้องกันไม่ให้เกิดความซ้ำซ้อน เนื่องจากชุมชนจำเป็นต้องออกแบบห้องนิรภัยเพียงครั้งเดียว แทนที่จะออกแบบทีละรายการสำหรับแต่ละโปรโตคอล เนื่องจากความพยายามในการออกแบบนี้มักเกิดข้อผิดพลาดได้ง่าย จึงช่วยหลีกเลี่ยงการทำซ้ำข้อบกพร่องของการออกแบบที่เป็นที่ยอมรับแต่แพร่หลาย
เราจะนำเสนอกรณีศึกษาสองกรณีที่นี่เพื่อแสดงให้เห็นว่าปัญหาใดที่ ERC-4626 สามารถป้องกันได้
####งานราศรีทุน
โทเค็นมูลค่าประมาณ 11 ล้านดอลลาร์ถูกขโมยจาก Rari Capital ซึ่งเทียบเท่ากับ 60% ของเงินผู้ใช้ทั้งหมดในกลุ่ม Ethereum ของ Rari Capital
โดยรวมแล้ว Rari Capital ถูกแฮ็กเนื่องจากการปรับใช้ข้ามโปรโตคอลที่ไม่ปลอดภัย กลุ่ม Ethereum นำ ETH เข้าสู่สัญญาโทเค็น ibETH ของ Alpha Finance เป็นกลยุทธ์การส่งออก กลยุทธ์เฉพาะนี้ติดตามมูลค่าของอัตราแลกเปลี่ยน ibETH/ETH ผ่านสัญญาและสูตรบางอย่าง (โดยเฉพาะ ฟังก์ชัน ibETH.totalETH / ibETH.totalSupply) ซึ่งอาจมีผลลัพธ์ที่ผิดพลาดในสถานการณ์การโจมตีนี้ เช่น เมื่อเรียก ibETH.work ( ) ฟังก์ชัน มูลค่าหนี้อาจสูงเกินจริง
ผู้โจมตีสามารถทำให้ Rari Fund Manager หมดได้โดยการเรียกใช้ฟังก์ชันฝากและถอนซ้ำๆ ในสัญญา RariFundManager ฟังก์ชันฝากและถอนจำเป็นต้องได้รับยอดคงเหลือของพูลเพื่อคำนวณจำนวนโทเค็น REPT ที่จะออกให้แก่ผู้โทร หรือจำนวน ETH ที่จะออกให้แก่ผู้เรียก การดำเนินการนี้จะเรียกฟังก์ชัน getBalance ของพูลอัลฟ่า เรียกสัญญา ibETH และฟังก์ชัน totalETH Rari ไม่ทราบถึงความเป็นไปได้ในการจัดการกับฟังก์ชันนี้
มีฟังก์ชั่นอื่นในสัญญา ibETH: ibETH.work ฟังก์ชันนี้สามารถเรียกใช้สัญญาใด ๆ ที่ผู้ใช้กำหนด ซึ่งช่วยให้ฟังก์ชันการฝากและถอนของ Rari สามารถกลับเข้ามาใหม่และเรียกได้หลายครั้ง
ฟังก์ชันการทำงานเป็นฟังก์ชันที่ต้องชำระ ซึ่งหมายความว่าผู้ใช้สามารถควบคุมจำนวน ETH ในสัญญา ibETH ผ่านฟังก์ชันการทำงาน ซึ่งจะเป็นการเปลี่ยนค่าที่ส่งคืนโดยฟังก์ชัน totalETH ยิ่งไปกว่านั้น ฟังก์ชันการทำงานยังรองรับการเรียกสัญญาอื่นๆ เช่น RariFundManager
ด้วยฟังก์ชันนี้ ผู้โจมตีสามารถส่ง ETH อีกครั้งและเพิ่มยอดรวม ETH ในสัญญา ibETH และในขณะเดียวกันก็โทรถอนในสัญญา RariFundManager เพื่อแลกสินทรัพย์มากขึ้น
เหตุการณ์นี้เน้นให้เห็นถึงความเสี่ยงที่สำคัญที่เกิดจากการผสานรวมที่ไม่เพียงพอและการออกแบบที่เข้ากันไม่ได้ในสัญญา DeFi โดยเน้นย้ำว่ามาตรฐานเช่น ERC-4626 สามารถป้องกันการโจมตีดังกล่าวได้อย่างไรโดยเพิ่มชั้นความปลอดภัยและการคาดการณ์ที่สำคัญ และส่งเสริมพฤติกรรมที่เหมือนกันและความเข้าใจซึ่งกันและกัน
####คดีไฟแนนซ์ครีม
Cream Finance ประสบกับการโจมตีที่ซับซ้อนซึ่งใช้ประโยชน์จากจุดอ่อนพื้นฐานสองประการในแพลตฟอร์ม: ออราเคิลผสมที่ถูกควบคุมและการจัดหาโทเค็นที่ไม่ได้จำกัด ส่วนสำคัญของการโจมตีคือการจัดการผสม oracle ซึ่งส่งผลต่อการรับรู้มูลค่าของโทเค็น yUSD เมื่อผู้โจมตีส่งโทเค็น Yearn 4-Curve จำนวนมากไปยังห้องนิรภัย yUSD เขาเปลี่ยนอัตราแลกเปลี่ยนที่รายงานโดยห้องนิรภัย และดังนั้นจึงส่งผลกระทบต่อมูลค่าการรับรู้ของโทเค็น yUSD ไปยังออราเคิลด้วย
บทเรียนสำคัญที่นี่คือออราเคิลราคาที่แข็งแกร่งและควบคุมไม่ได้มีความสำคัญต่อความเสถียรของโปรโตคอล DeFi ออราเคิลราคาถัวเฉลี่ยถ่วงน้ำหนักตามเวลา (TWAP) สามารถช่วยป้องกันการแฮ็กดังกล่าวได้ เนื่องจากมีความยืดหยุ่นมากกว่าต่อการเปลี่ยนแปลงราคาอย่างกะทันหัน
ปัญหาเหล่านี้และรูปแบบการออกแบบที่เปราะบางอื่นๆ สามารถบรรเทาลงได้ด้วยการใช้ ERC-4626 อย่างระมัดระวัง
ความเสี่ยงด้านความปลอดภัยที่อาจเกิดขึ้นใน ERC-4626
มีการแลกเปลี่ยนบางอย่างกับการใช้โปรโตคอลใหม่อยู่เสมอ สำหรับตู้เก็บโทเค็น อาจมีปัญหาที่อาจเกิดขึ้นในการรวมเข้ากับสัญญาอัจฉริยะที่ต้องให้ความสนใจเป็นพิเศษ
จัดการโทเค็นค่าธรรมเนียมการโอน
หากห้องนิรภัยได้รับการออกแบบมาเพื่อรองรับโทเค็น feeOnTransfer ให้ตรวจสอบว่าจำนวนเงินและการแบ่งปันในห้องนิรภัยนั้นอยู่ในช่วงที่คาดไว้เมื่อทำการโอนสินทรัพย์
การใช้ตัวแปรทศนิยมอย่างเหมาะสม
แม้ว่าฟังก์ชัน converterTo ไม่จำเป็นต้องใช้ตัวแปรทศนิยมของห้องนิรภัย EIP-4626 แต่ก็ยังแนะนำอย่างยิ่งให้สะท้อนทศนิยมของโทเค็นพื้นฐานหากเป็นไปได้ แนวทางปฏิบัตินี้ช่วยขจัดแหล่งที่มาของความสับสนและทำให้การรวมระบบง่ายขึ้นสำหรับผู้ใช้ส่วนหน้าและผู้ใช้นอกเครือข่ายต่างๆ
การปัดเศษ
ตามข้อมูลจำเพาะ ผู้ใช้ vault ควรทราบว่าต้องใช้ทิศทางการปัดเศษที่เจาะจงและตรงกันข้ามในวิธีการที่ไม่แน่นอนและมุมมองที่แตกต่างกัน เนื่องจากจะปลอดภัยกว่าที่จะจัดลำดับความสำคัญของ vault เองเหนือผู้ใช้ในระหว่างการคำนวณ:
หากกำลังคำนวณจำนวนหุ้นที่จะออกให้แก่ผู้ใช้ตามจำนวนโทเค็นอ้างอิงที่พวกเขาเสนอ หรือหากกำลังดำเนินการเพื่อโอนหุ้นเฉพาะของโทเค็นอ้างอิงให้กับผู้ใช้ ควรปัดเศษลง
หากกำลังคำนวณจำนวนหุ้นที่ผู้ใช้ต้องให้เพื่อให้ได้โทเค็นฐานจำนวนหนึ่ง หรือหากกำลังคำนวณจำนวนโทเค็นพื้นฐานที่ผู้ใช้ต้องให้เพื่อให้ได้จำนวนหุ้นที่แน่นอน ควร ถูกปัดขึ้น
โดยที่ทิศทางการปัดเศษที่ต้องการจะไม่ชัดเจนคือฟังก์ชัน converterTo เพื่อให้มั่นใจถึงความสอดคล้องในการใช้งานห้องนิรภัย EIP-4626 ทั้งหมด ให้ระบุว่าฟังก์ชันเหล่านี้ต้องปัดเศษลงเสมอ ผู้รวมระบบสามารถเลียนแบบเวอร์ชันการปัดเศษได้เอง เช่น โดยการเพิ่ม Wei ลงในผลลัพธ์
จำนวนสินทรัพย์อ้างอิงที่ผู้ใช้ได้รับจากการแลกเงินเดิมพันในห้องนิรภัย (previewRedeem) อาจแตกต่างกันอย่างมากจากจำนวนเงินที่ต้องจ่ายเพื่อออกเงินเดิมพันจำนวนเท่ากัน (previewMint) ความแตกต่างเหล่านี้อาจมีขนาดเล็ก (เช่น เนื่องจากข้อผิดพลาดในการปัดเศษ) หรือมาก (เช่น ห้องนิรภัยใช้ค่าธรรมเนียมการถอนหรือฝาก) ดังนั้น ผู้ประกอบควรระมัดระวังในการใช้ฟังก์ชันการแสดงตัวอย่างที่เหมาะสมกับกรณีการใช้งานของตนมากที่สุด และอย่าคิดว่าฟังก์ชันเหล่านี้ใช้แทนกันได้
แทนที่การทำงานหลัก
เพื่อใช้งานหรือขยายฟังก์ชันการทำงานที่ต้องการ ขอแนะนำให้ใช้ hooks ที่มีอยู่แทนการเปลี่ยนฟังก์ชันการทำงานหลัก แนวทางปฏิบัตินี้ช่วยให้มั่นใจถึงเส้นทางที่จัดการได้มากขึ้นสำหรับการทดสอบและตรวจสอบโค้ดอย่างมีประสิทธิภาพ
ไม่มีส่วนแบ่ง
ข้อมูลจำเพาะดั้งเดิมสำหรับ ERC-4626 ไม่ได้สรุปวิธีจัดการกรณีเข้ามุมที่ไม่มีการใช้ร่วมกันในห้องนิรภัย และไม่ว่าห้องนิรภัยควรทำงานตามปกติหรือย้อนกลับ นี่อาจเป็นที่มาของความสับสนและข้อผิดพลาด
ห้องนิรภัยเป็นออราเคิลราคา
สำหรับความเสี่ยงของการโจมตีการจัดการราคาของ Oracle ค่าที่ส่งกลับโดยวิธีการแสดงตัวอย่างเหล่านี้จะใกล้เคียงกับความถูกต้องมากที่สุด ด้วยเหตุนี้จึงสามารถทำงานได้โดยการเปลี่ยนเงื่อนไขบนเครือข่ายและไม่ปลอดภัยเสมอไปที่จะใช้เป็นออราเคิลด้านราคา ข้อมูลจำเพาะ ERC-4626 รวมถึงวิธีการแปลงและวิธี TotalAssets ที่ช่วยให้ไม่แม่นยำ ดังนั้นจึงสามารถนำไปใช้เป็นออราเคิลราคาที่มีประสิทธิภาพ ตัวอย่างเช่น เมื่อแปลงระหว่างสินทรัพย์และหุ้น การใช้ราคาถัวเฉลี่ยถ่วงน้ำหนักตามเวลาเพื่อใช้วิธีแปลงนั้นถูกต้อง
ปัญหาการดำเนินการที่เป็นรูปธรรม
ผู้รวมระบบต้องตรวจสอบการใช้งาน tokenized vault ก่อนการรวมเพิ่มเติม เนื่องจากอาจมีการใช้งานที่เป็นอันตรายซึ่งดูเหมือนว่าจะเป็นไปตามข้อกำหนดเฉพาะของอินเทอร์เฟซ แต่ฟังก์ชันหลักประกอบด้วยข้อกำหนดการออกแบบที่แตกต่างกันโดยสิ้นเชิง
การเข้าถึง EOA โดยตรง
หากต้องเข้าถึงห้องนิรภัยโดยตรง การใช้งานจำเป็นต้องมีคุณลักษณะที่สามารถใช้เพื่อรองรับการสูญเสียการเลื่อนหลุดหรือขีดจำกัดการฝาก/ถอนโดยไม่ตั้งใจ ซึ่งแตกต่างจากสัญญาอัจฉริยะ EOA ไม่มีกลไกความปลอดภัยสำหรับการย้อนกลับของธุรกรรม หากไม่ได้ผลลัพธ์ที่แม่นยำเมื่อเรียกใช้ฟังก์ชันหลัก จะไม่มีทางย้อนกลับได้
ห้องนิรภัยแบบขยาย
เมื่อมีผู้เล่นจำนวนมากขึ้นเริ่มนำมาตรฐาน ERC-4626 มาใช้ เราจะเห็นส่วนขยายเพิ่มเติมสำหรับมาตรฐานนี้ ตัวอย่างเช่น Superform ได้พัฒนาส่วนขยาย Multi Vault รุ่นทดลองที่รองรับการใช้การคำนวณที่แตกต่างกันภายในสัญญา Vault เดียว ยิ่งมีการดำเนินการที่ผิดไปจากมาตรฐานเดิมมากเท่าใด ก็ยิ่งมีโอกาสเกิดช่องโหว่ใหม่มากขึ้นเท่านั้น นักพัฒนาและผู้ตรวจสอบสามารถค้นหาตัวเลือกที่ดีที่สุดตามกรณีการใช้งานเพื่อกำหนดมูลค่าจริงที่มีความเสี่ยง
สิ่งสำคัญคือต้องสังเกตว่าไม่ใช่ส่วนเพิ่มที่เล็กที่สุดของแต่ละโปรโตคอลที่นำไปสู่เหตุการณ์ภัยพิบัติ แต่เป็นผลรวมของโปรโตคอลเหล่านั้นเมื่อรวมเข้าด้วยกัน
เวกเตอร์การโจมตีที่อาจเกิดขึ้นที่กล่าวถึงข้างต้นเป็นประเด็นที่มีการกล่าวถึงมากขึ้นเกี่ยวกับมาตรฐาน ERC-4626 เมื่อการยอมรับเพิ่มขึ้น เราจะสำรวจกรณีการใช้งานการใช้งานเพิ่มเติม และสถานการณ์ที่เหมาะสมมากขึ้นสำหรับการรวมเข้ากับห้องนิรภัย ERC-4626