การวิวัฒนาการของ DeFi Hooks: จากความปลอดภัยของสัญญา Uniswap V4 ถึงโปรโตคอล Artela Native

กลาง5/21/2024, 3:41:36 PM
บทความนี้อธิบายถึงแนวคิดของโมเดลโปรแกรม Hooks ซึ่งช่วยให้นักพัฒนาสามารถแทรกโค้ดที่กำหนดเองเข้าไปในเส้นทางการดำเนินการของระบบ แอปพลิเคชัน หรือไลบรารีผ่านฟังก์ชันหรือบล็อกโค้ดที่กำหนดไว้ล่วงหน้า เพิ่มประสิทธิภาพในการขยายขอบเขตและปรับแต่งของโปรแกรม Uniswap V4 นำเสนอ Hooks ผ่านฟังก์ชันต่าง ๆ เช่น ค่าธรรมเนียมแบบไดนามิก คำสั่งซื้อจำกัดราคา on-chain และตลาดผู้สร้างราคาเฉลี่ยตามเวลา ทำให้ฟังก์ชันของ DApp และประสิทธิภาพของเครือข่าย Uniswap มีประสิทธิภาพมากยิ่งขึ้น

Hooks คืออะไร

Hooks หรือโปรแกรมต่อข้อความ คือแบบจำลองการเขียนโปรแกรมที่อนุญาตให้นักพัฒนาสามารถแทรกโค้ดที่กำหนดเองเข้าไปในเส้นทางการดำเนินการของระบบ แอปพลิเคชั่น หรือไลบรารีผ่าน Hooks ซึ่งเป็นฟังก์ชันหรือบล็อกโค้ดที่กำหนดไว้ล่วงหน้า ไม่จำเป็นต้องแก้ไขโค้ดเดิม โปรแกรมต่อข้อความมักถูกใช้ในสภาพแวดล้อมและเฟรมเวิร์กต่าง ๆ อย่างเช่นระบบปฏิบัติการ เฟรมเวิร์ก และไลบรารีการพัฒนาเว็บและระบบปลั๊กอิน

โดยใช้ Hooks, นักพัฒนาสามารถเพิ่มประสิทธิภาพและความสามารถในการปรับแต่งของโปรแกรมโดยไม่จำเป็นต้องแก้ไขรหัสเดิมสำหรับทุกการเปลี่ยนแปลงหรือความต้องการในการขยาย ซึ่งช่วยให้รักษารหัสไว้สะอาดและเสถียร Hooks มีวิธีการนำมาใช้ที่สง่างามสำหรับการขยายซอฟต์แวร์และเป็นรูปแบบการเขียนโปรแกรมที่มีประโยชน์มากในการออกแบบซอฟต์แวร์

โดยเฉพาะอย่างยิ่ง AOP (Aspect-oriented Programming) ถูกเปรียบเทียบกับโปรแกรมมิ่งแบบ Hook บ่อยครั้ง AOP เป็นแบบแผนการเขียนโปรแกรมแบบโมดูลที่นำ cross-cutting concerns มาประยุกต์ และจุดมุ่งหมายคือไม่ใช่การเปลี่ยนแปลงเล็กน้อยในตรรกะธุรกิจหลัก มันเสริมหรือปรับเปลี่ยนฟังก์ชันที่จำเป็น ฉันจะไม่ขยาย AOP อย่างละเอียดที่นี่ คุณสามารถคิด AOP ในระดับการสร้างสรรค์ที่สูงกว่าโปรแกรมมิ่งแบบ HooK

Uniswap V4: การปฏิวัติของ Hooks

ในเดือนมิถุนายน 2023 ยูนิสแวปประกาศและเปิดเผยร่างร่างงานเขียนขาวเวอร์ชัน 4 ของยูนิสแวป คุณสมบัติสำคัญของยูนิสแวปเวอร์ชัน 4 คือการนำเสนอของฮุค

Hooks ได้รับการใช้งานอย่างแพร่หลายในระบบการเงิน Web2 เนื่องจากระบบเหล่านี้มักต้องการการปรับแต่งและความยืดหยุ่นที่สูง สถานการณ์ที่ปรับแต่ง เช่น เมื่อประมวลผลธุรกรรม ใช้ Hooks เพื่อแทรกตรวจสอบเพิ่มเติมก่อนและหลังการดำเนินการธุรกรรม เช่น การตรวจสอบรองทุกระดับ การตรวจความเสี่ยง และกลยุทธ์ป้องกันการฟอกเงิน (AML) สถานการณ์ที่ยืดหยุ่นรวมถึงการรวมระบบกับ API ภายนอกหรือไมโครเซอร์วิสผ่าน Hooks เพื่อขยายฟังก์ชันใหม่ในระบบการเงิน เช่น บริการการรับรองตัวตน การแปลงอัตราแลกเปลี่ยน ประตูการชำระเงิน เป็นต้น แต่การนำเสนอ Hooks เข้าสู่ DeFi ทำให้ Uniswap ได้ตั้งตัวอย่าง

Uniswap V4 Hooks เป็นหลักการสำคัญที่เป็นส่วนตัวที่ถูกสร้างขึ้นและกำหนดโดยนักพัฒนา ขณะที่พูล Likuidity ถูกสร้างขึ้น คุณสามารถเลือกผูกสัญญา Hook ได้ ภายหลัง พูล Likuidity จะเรียกสัญญา Hook ที่ผูกมาก่อนหน้าเพื่อดำเนินการที่ระบุในขั้นตอนต่าง ๆ ของวงจรชีวิต เพื่อให้มีการปรับแต่งในระดับสูง นักพัฒนาสามารถใช้ Hooks ของ Uniswap เพื่อตอบสนองต่อสถานการณ์การซื้อขายที่มีลักษณะส่วนบุคคลมากขึ้นและสร้าง DApps ที่มีฟังก์ชันที่หลากหลาย เช่น:

  • ค่าธรรมเนียมเคลื่อนไหว: ผ่าน Hooks, สระว่ายน้ำสามารถปรับค่าธรรมเนียมอย่างไดนามิก โดยอ้างอิงจากความผันผวนของตลาดหรือพารามิเตอร์อื่น ๆ เพื่อการปรับตัวที่ดียิ่งขึ้นกับเงื่อนไขของตลาด
  • การสั่งซื้อจำกัดบนเชื่อมโยง: ฮุคสามารถสร้างและดำเนินการสั่งซื้อจำกัดบนเชื่อมโยง ทำให้ผู้ใช้สามารถซื้อขายในราคาที่ระบุไว้;
  • Time Weighted Average Market Maker (TWAMM): ใช้กลไกของตะกละเพื่อสร้างพูลความเหลื่อมที่สนับสนุนกลยุทธ์ TWAMM เพื่อกระจายธุรกรรมของคำสั่งขนาดใหญ่ให้ทั่วไป ตลอดเวลา

ในปัจจุบัน Uniswap V4 รองรับกลุ่ม Hook callbacks สี่กลุ่ม แต่ละกลุ่มประกอบด้วยคู่ของ callbacks

  • ก่อนเริ่มต้น/หลังเริ่มต้น: กำหนดค่าเริ่มต้นของพูล Likwiditi;
  • beforeModifyPosition/afterModifyPosition: เพิ่ม/ลด/ลบ likwiditi;
  • ก่อนสวอพ/หลังสวอพ: แลกเปลี่ยน;
  • beforeDonate/afterDonate: การบริจาค (คุณลักษณะใหม่ที่ถูกนำเสนอโดย Uniswap V4, ทิปผู้ให้สินทรัพย์หลักฐานภายในขอบเขตการซื้อขาย)

แผนภาพต่อไปนี้แสดงกระบวนการก่อนและหลังจากสวอพฮุคตามที่นำเสนอในเอกสารขาว สามารถสังเกตเห็นได้ว่าก่อนและหลังการดำเนินการสวอพ มันจะตรวจสอบก่อนว่าธงที่สอดคล้องกับฮุคของพูลความสะดวกสบายถูกเปิดใช้งานหรือไม่ หากเปิดใช้งาน จะเรียกฟังก์ชันที่สอดคล้องกับสัญญาฮุค

เหล่าตะกั่วเหล่านี้สามารถดำเนินการก่อนที่การซื้อขายจะเริ่มต้นและหลังจากการซื้อขายจบ ทำให้สามารถใช้ฟังก์ชันที่คล้ายกับคำสั่งจำกัดบนเชนได้ ผู้ใช้วางคำสั่งจำกัดบนสัญญาตะกั่ว และจากนั้นใช้ออราเคิลที่กำหนดเองหรือที่จัดการในคอลแบ็ค afterSwap เพื่อกำหนดว่าราคาตรงตามขีดจำกัดหรือไม่ หากใช่ ธุรกรรมจะถูกดำเนิน หากไม่ใช่ ธุรกรรมจะถูกยกเลิก

Uniswap V4 เชื่อมโยง Likelihood อย่างลึกลับกับการพัฒนา DApp ผ่าน Hooks มันเสริมสร้างฟังก์ชันของ DApp และเพิ่มผลกระทบของเครือข่ายของ Uniswap ทำให้มันเป็นโครงสร้างพื้นฐานของระบบนิติบัญญัติทั้งหมด DeFi

ปัญหาด้านความปลอดภัยของ Uniswap V4 Hooks

ทีม BlockSec ได้สำรวจความเสี่ยงด้านความปลอดภัยของกลไก Hooks ใน Uniswap V4 นอกจากความจริงที่สัญญา Hook เองเป็นที่เจ็บช้ำที่ไม่ดี สัญญา Hook ที่ดีต่างหากยังมีโอกาสต่อการโจมตีได้ง่ายมาก ทีม BlockSec ได้วิเคราะห์เรื่อง Awesome Uniswap v4 Hooks repository (commit hash 3a0a444922f26605ec27a41929f3ced924af6075) และพบว่ามีโปรเจกต์ในรีพอสิทอรี่มากกว่า 30% ที่มีช่องโหว่ ช่องโหว่เหล่านี้มาจากการโต้ตอบความเสี่ยงระหว่าง Hook PoolManager และบุคคลภายนอก และสามารถแบ่งเป็นสองหมวดหลักได้

  • ปัญหาควบคุมการเข้าถึง: ปัญหาหลักคือฟังก์ชันการตอบรับใน Uniswap V4 ซึ่งควรถูกเรียกโดย PoolManager เท่านั้น และไม่สามารถเรียกโดยที่อยู่อื่น (รวมถึง EOA และสัญญา). เช่น เมื่อมีการแจกจ่ายรางวัลโดยสำคัญของพูล รางวัลอาจถูกเรียกรับได้ไม่ถูกต้องหากฟังก์ชันที่เกี่ยวข้องสามารถเรียกโดยบัญชีใดก็ตาม ดังนั้น ฮุคต้องสร้างกลไกควบคุมการเข้าถึงที่แข็งแรงโดยเฉพาะอย่างยิ่งเนื่องจากพวกเขาสามารถถูกเรียกโดยฝ่ายอื่นนอกเหนือจากพูลเอง;
  • ป้อนคำถามยืนยัน: การโจมตีหลากหลายประเภทรวมถึงการโจมตี reentrancy ที่มีชื่อเสียง มาจากการตรวจสอบข้อมูลนำเข้าไม่ถูกต้องในการประมวลผลของ Hook บางส่วนที่เป็นจุดอ่อน สถานการณ์ที่พบบ่อยที่สุดคือการเรียกใช้สัญญาภายนอกที่ไม่น่าเชื่อถือในบางฟังก์ชันหลักของ Hook โดยเพื่อโจมตี Hook เหล่านี้ที่มีช่องโหว่ ผู้โจมตีสามารถลงทะเบียน pool ทุนที่เป็นอันตรายสำหรับโทเคนปลอมของตนเอง แล้วเรียกใช้ Hook เพื่อใช้ทุน pool ดำเนินการต่าง ๆ เมื่อมีการ๒ายยายกับ pool ตรรกะโทเคนที่เป็นอันตรายจะยึดควบคุมของการไหลเพื่อมีพฤติกรรมที่ไม่พึงประสงค์

แม้จะมีการควบคุมการเข้าถึงที่จำเป็นสำหรับฟังก์ชันภายนอก/สาธารณะที่มีความสำคัญที่นำมาใช้ได้อย่างถูกต้องและพารามิเตอร์ของข้อมูลถูกตรวจสอบเพื่อลดความเสี่ยงด้านความปลอดภัยที่เกี่ยวข้องกับสองประเภทของ Hooks ด้านบน โทรมนั้นยังไม่สามารถหลีกเลี่ยงช่องโหว่ในสัญญาได้อย่างสมบูรณ์ โดยเฉพาะถ้า Hook เป็นที่สามารถอัพเกรดได้ หากสัญญาได้รับการนำมาใช้ คุณอาจพบปัญหาที่เกี่ยวข้องที่คล้ายกับช่องโหว่ UUPSUpgradeable ของ OpenZeppelin

เหตุผลอยู่ในความจริงที่ว่าการเขียนโปรแกรม Hook เพิ่มความซับซ้อนของสัญญาอัจฉริยะจึงขยายพื้นผิวการโจมตี สําหรับสัญญาอัจฉริยะทั่วไป OpenZeppelin มีชุดไลบรารีแนวทางปฏิบัติที่ดีที่สุดเพื่อให้แน่ใจว่าสัญญาที่พัฒนาขึ้นตามนั้นปลอดภัย อย่างไรก็ตามโดยพื้นฐานแล้วจะเพิ่ม "ข้อ จํากัด การใช้งานด้านความปลอดภัย" สําหรับนักพัฒนา ในการเปรียบเทียบสัญญา Hook ต้องการ "ข้อ จํากัด การใช้งานด้านความปลอดภัย" ที่เข้มงวดกว่าสัญญาปกติ ดังนั้นเพื่อให้การเขียนโปรแกรม Hook ถูกนําไปใช้อย่างกว้างขวางจําเป็นต้องมีกรอบการทํางานที่ครอบคลุม: ต้องใช้สภาพแวดล้อมการดําเนินการที่ปลอดภัยกระบวนทัศน์การเขียนโปรแกรมที่ใช้บังคับสําหรับ Hooks และข้อ จํากัด การใช้งานที่เข้มงวดขึ้น

Artela Aspect: การสนับสนุนในระดับโปรโตคอลสำหรับโปรแกรมมิ่งแบบฮุก

Uniswap V4 Hooks ถูกนำมาใช้งานผ่านสมาร์ทคอนแทรค และปัญหาด้านความปลอดภัยของมันก็เกิดจากข้อจำกัดของสมาร์ทคอนแทรคด้วย มีทางแก้ไขใดที่รองรับการเขียนโปรแกรม Hook จากระดับโปรโตคอลได้ไหม? Artela Aspect ให้เราคำตอบ!

Artela เป็นเครือข่ายบล็อกเชนชั้นที่ 1 ที่มีการเติบโตได้สูงและประสิทธิภาพสูง พร้อมทัดเป็น EVM-compatible ที่ออกแบบมาสำหรับนักพัฒนาเพื่อสร้างแอปพลิเคชันที่สามารถขยายหรือปรับแต่งได้แบบโมดูลาร์ ที่ Rich และ Scalable ซึ่งกำหนดโดย Artela โดยมีการกำหนดโมดูลที่สามารถโปรแกรมได้ใหม่เรียกว่า Aspect โดยที่นำ AOP เข้ามาในเครือข่ายบล็อกเชนอย่างนวัตกรรม Aspect ต้องระบุจุดเชื่อมต่อซี่คือ ตำแหน่งที่ Aspect ถูกดำเนินการในรอบชีวิตการประมวลผลธรรมของธุรกรรมทั้งหมด คล้ายกับ Hook's callback จุดเชื่อมต่อรวมถึง:

  • เริ่มต้นบล็อก
  • การตรวจสอบธุรกรรม
  • การดำเนินการก่อนดำเนินการ
  • โพสต์ดำเนินการ
  • บล็อก Finalize

Aspect ในปัจจุบันรองรับเฉพาะ TypeScript เท่านั้น โดยโค้ดของมันถูกคอมไพล์เป็นไบต์โค้ด WebAssembly (WASM) และนำไปใช้งานบนเครือข่าย Artela หลังจากการใช้งาน Aspect ผู้ถือสมาร์ทคอนแทรคสามารถผูกสัญญาของตนกับ Aspect ผู้ถือสมาร์ทคอนแทรคถูกกำหนดให้เป็นที่อยู่ของบัญชีภายนอก (EOA) ที่สามารถผ่านการตรวจสอบ isOwner(address) และส่งคืน (bool) ในสมาร์ทคอนแทรค

ต่อจากนี้ ธุรกรรมต่อไปที่เรียกใช้สมาร์ทคอนแทรคจะถูกจัดการโดย Aspect ตามที่แสดงในแผนภูมิด้านล่าง:

เป็นการประมวลผลขั้นโปรโตคอลระดับ Hooks Artela Aspects มีข้อได้เปรียบที่ดีมากกว่า Uniswap V4 Hooks:

Artela Aspects ใช้ WASM เพื่อดำเนินการรหัสของมัน และประสิทธิภาพในการดำเนินการสูงกว่า EVM หลายอันดับ

อย่างที่สอง Artela Aspects สามารถเชื่อมต่อช่วงชีวิตของธุรกรรมทั้งหมด ไม่ใช่เพียงตรรกะหลักของ DeFi เท่านั้น และสามารถสร้าง DApps ที่มีฟังก์ชันที่หลากหลาย

สุดท้ายและสำคัญที่สุด Artela Aspects ทำงานอย่างอิสระในสภาพแวดล้อมทรอยสุดปลอดภัย การแยกจากกันนี้ช่วยให้การดำเนินการของ Aspects จะไม่ส่งผลต่อความปลอดภัยของการดำเนินการสัญญา

การเลิกจำกัดของด้าน Artela จำกัดการเรียกกันระหว่างสัญญาตามปกติและสัญญาภายนอกอื่น ๆ แก้ไขปัญหาที่ยากลำบากของการควบคุมการเข้าถึงและการตรวจสอบข้อมูลของ Uniswap V4 Hooks สำหรับสัญญา DeFi เช่น Uniswap คุณสามารถเพลิดเพลินประสบการณ์ Hook ที่เร็วแรงและปลอดภัยโดยการติดตั้งลง Artela

สรุป

ในฐานะผู้มีส่วนร่วมที่สำคัญและผู้นำในอุตสาหกรรม DeFi ยูนิสแวปได้มีบทบาทสำคัญในการขับเคลื่อนความก้าวหน้าของอุตสาหกรรมและเสริมสร้างความสามารถ การนำเสนอของ Hooks ในยูนิสแวป V4 ถือว่าเป็นทิศทางสำหรับการพัฒนา DEX และได้รับการจำลองอย่างกระตือรือร้นโดยผู้ต่อไป

อย่างไรก็ตาม Uniswap V4 Hooks ถูก จำกัด โดย ข้อ จำกัด ที่ แตกต่าง ของ สัญญา ฉลอง โดยไม่ คำนึงถึง ว่า การออกแบบ โปรโตคอล มีความแข็งแรง แค่ไหน และ ชุดเครื่องมือ ครอบคลุม มากแค่ไหน มัน ไม่สามารถ ป้องกัน อย่าง พื้นฐาน การเรียกใช้ ร่วมกัน ระหว่าง สัญญา ฉลอง และ สัญญา ภายนอก ที่ นำเสนอ ภัยคุกคาม ใน ทาง ปลอดภัย ได้

Artela, ในฐานะเครือข่ายบล็อกเชนชั้นที่ 1 ที่เข้ากันได้กับ EVM ที่มีประสิทธิภาพสูง ออกแบบ Aspect เพื่อทำงานอิสระใน WASM ตั้งแต่เกิดขึ้นของโปรโตคอล รองรับการเขียนโปรแกรม Hook อย่างเป็นธรรมชาติ ซึ่งเสริมความปลอดภัยอย่างมาก ให้การแก้ปัญหาขั้นสูงสำหรับโปรโตคอล DeFi ที่พิจารณาความปลอดภัยเป็นสำคัญ

คำแถลง

  1. บทความนี้ชื่อเริ่มต้นเดิมว่า “Evolution of DeFi Hooks: From Uniswap V4 Contract Security to Artela Native Protocol” ถูกทำซ้ำมาจาก [ 小猪Web3]. ลิขสิทธิ์ทั้งหมดเป็นของผู้เขียนต้นฉบับ [web3 จู่]. If you have any objection to the reprint, please contact the Gate Learnทีม ทีมจะดำเนินการเร็วที่สุด

  2. คำประกาศ: มุมมองและความคิดเห็นที่แสดงในบทความนี้แทนเพียงความคิดเห็นส่วนตัวของผู้เขียนเท่านั้น และไม่เป็นการให้คำแนะนำทางด้านการลงทุนใด ๆ

  3. การแปลบทความเป็นภาษาอื่นๆ ถูกดำเนินการโดยทีม Gate Learn นอกจากที่กล่าวถึงไว้แล้ว การคัดลอก การกระจาย หรือการลอกเลียนแบบบทความที่ถูกแปลนั้นถูกห้าม

การวิวัฒนาการของ DeFi Hooks: จากความปลอดภัยของสัญญา Uniswap V4 ถึงโปรโตคอล Artela Native

กลาง5/21/2024, 3:41:36 PM
บทความนี้อธิบายถึงแนวคิดของโมเดลโปรแกรม Hooks ซึ่งช่วยให้นักพัฒนาสามารถแทรกโค้ดที่กำหนดเองเข้าไปในเส้นทางการดำเนินการของระบบ แอปพลิเคชัน หรือไลบรารีผ่านฟังก์ชันหรือบล็อกโค้ดที่กำหนดไว้ล่วงหน้า เพิ่มประสิทธิภาพในการขยายขอบเขตและปรับแต่งของโปรแกรม Uniswap V4 นำเสนอ Hooks ผ่านฟังก์ชันต่าง ๆ เช่น ค่าธรรมเนียมแบบไดนามิก คำสั่งซื้อจำกัดราคา on-chain และตลาดผู้สร้างราคาเฉลี่ยตามเวลา ทำให้ฟังก์ชันของ DApp และประสิทธิภาพของเครือข่าย Uniswap มีประสิทธิภาพมากยิ่งขึ้น

Hooks คืออะไร

Hooks หรือโปรแกรมต่อข้อความ คือแบบจำลองการเขียนโปรแกรมที่อนุญาตให้นักพัฒนาสามารถแทรกโค้ดที่กำหนดเองเข้าไปในเส้นทางการดำเนินการของระบบ แอปพลิเคชั่น หรือไลบรารีผ่าน Hooks ซึ่งเป็นฟังก์ชันหรือบล็อกโค้ดที่กำหนดไว้ล่วงหน้า ไม่จำเป็นต้องแก้ไขโค้ดเดิม โปรแกรมต่อข้อความมักถูกใช้ในสภาพแวดล้อมและเฟรมเวิร์กต่าง ๆ อย่างเช่นระบบปฏิบัติการ เฟรมเวิร์ก และไลบรารีการพัฒนาเว็บและระบบปลั๊กอิน

โดยใช้ Hooks, นักพัฒนาสามารถเพิ่มประสิทธิภาพและความสามารถในการปรับแต่งของโปรแกรมโดยไม่จำเป็นต้องแก้ไขรหัสเดิมสำหรับทุกการเปลี่ยนแปลงหรือความต้องการในการขยาย ซึ่งช่วยให้รักษารหัสไว้สะอาดและเสถียร Hooks มีวิธีการนำมาใช้ที่สง่างามสำหรับการขยายซอฟต์แวร์และเป็นรูปแบบการเขียนโปรแกรมที่มีประโยชน์มากในการออกแบบซอฟต์แวร์

โดยเฉพาะอย่างยิ่ง AOP (Aspect-oriented Programming) ถูกเปรียบเทียบกับโปรแกรมมิ่งแบบ Hook บ่อยครั้ง AOP เป็นแบบแผนการเขียนโปรแกรมแบบโมดูลที่นำ cross-cutting concerns มาประยุกต์ และจุดมุ่งหมายคือไม่ใช่การเปลี่ยนแปลงเล็กน้อยในตรรกะธุรกิจหลัก มันเสริมหรือปรับเปลี่ยนฟังก์ชันที่จำเป็น ฉันจะไม่ขยาย AOP อย่างละเอียดที่นี่ คุณสามารถคิด AOP ในระดับการสร้างสรรค์ที่สูงกว่าโปรแกรมมิ่งแบบ HooK

Uniswap V4: การปฏิวัติของ Hooks

ในเดือนมิถุนายน 2023 ยูนิสแวปประกาศและเปิดเผยร่างร่างงานเขียนขาวเวอร์ชัน 4 ของยูนิสแวป คุณสมบัติสำคัญของยูนิสแวปเวอร์ชัน 4 คือการนำเสนอของฮุค

Hooks ได้รับการใช้งานอย่างแพร่หลายในระบบการเงิน Web2 เนื่องจากระบบเหล่านี้มักต้องการการปรับแต่งและความยืดหยุ่นที่สูง สถานการณ์ที่ปรับแต่ง เช่น เมื่อประมวลผลธุรกรรม ใช้ Hooks เพื่อแทรกตรวจสอบเพิ่มเติมก่อนและหลังการดำเนินการธุรกรรม เช่น การตรวจสอบรองทุกระดับ การตรวจความเสี่ยง และกลยุทธ์ป้องกันการฟอกเงิน (AML) สถานการณ์ที่ยืดหยุ่นรวมถึงการรวมระบบกับ API ภายนอกหรือไมโครเซอร์วิสผ่าน Hooks เพื่อขยายฟังก์ชันใหม่ในระบบการเงิน เช่น บริการการรับรองตัวตน การแปลงอัตราแลกเปลี่ยน ประตูการชำระเงิน เป็นต้น แต่การนำเสนอ Hooks เข้าสู่ DeFi ทำให้ Uniswap ได้ตั้งตัวอย่าง

Uniswap V4 Hooks เป็นหลักการสำคัญที่เป็นส่วนตัวที่ถูกสร้างขึ้นและกำหนดโดยนักพัฒนา ขณะที่พูล Likuidity ถูกสร้างขึ้น คุณสามารถเลือกผูกสัญญา Hook ได้ ภายหลัง พูล Likuidity จะเรียกสัญญา Hook ที่ผูกมาก่อนหน้าเพื่อดำเนินการที่ระบุในขั้นตอนต่าง ๆ ของวงจรชีวิต เพื่อให้มีการปรับแต่งในระดับสูง นักพัฒนาสามารถใช้ Hooks ของ Uniswap เพื่อตอบสนองต่อสถานการณ์การซื้อขายที่มีลักษณะส่วนบุคคลมากขึ้นและสร้าง DApps ที่มีฟังก์ชันที่หลากหลาย เช่น:

  • ค่าธรรมเนียมเคลื่อนไหว: ผ่าน Hooks, สระว่ายน้ำสามารถปรับค่าธรรมเนียมอย่างไดนามิก โดยอ้างอิงจากความผันผวนของตลาดหรือพารามิเตอร์อื่น ๆ เพื่อการปรับตัวที่ดียิ่งขึ้นกับเงื่อนไขของตลาด
  • การสั่งซื้อจำกัดบนเชื่อมโยง: ฮุคสามารถสร้างและดำเนินการสั่งซื้อจำกัดบนเชื่อมโยง ทำให้ผู้ใช้สามารถซื้อขายในราคาที่ระบุไว้;
  • Time Weighted Average Market Maker (TWAMM): ใช้กลไกของตะกละเพื่อสร้างพูลความเหลื่อมที่สนับสนุนกลยุทธ์ TWAMM เพื่อกระจายธุรกรรมของคำสั่งขนาดใหญ่ให้ทั่วไป ตลอดเวลา

ในปัจจุบัน Uniswap V4 รองรับกลุ่ม Hook callbacks สี่กลุ่ม แต่ละกลุ่มประกอบด้วยคู่ของ callbacks

  • ก่อนเริ่มต้น/หลังเริ่มต้น: กำหนดค่าเริ่มต้นของพูล Likwiditi;
  • beforeModifyPosition/afterModifyPosition: เพิ่ม/ลด/ลบ likwiditi;
  • ก่อนสวอพ/หลังสวอพ: แลกเปลี่ยน;
  • beforeDonate/afterDonate: การบริจาค (คุณลักษณะใหม่ที่ถูกนำเสนอโดย Uniswap V4, ทิปผู้ให้สินทรัพย์หลักฐานภายในขอบเขตการซื้อขาย)

แผนภาพต่อไปนี้แสดงกระบวนการก่อนและหลังจากสวอพฮุคตามที่นำเสนอในเอกสารขาว สามารถสังเกตเห็นได้ว่าก่อนและหลังการดำเนินการสวอพ มันจะตรวจสอบก่อนว่าธงที่สอดคล้องกับฮุคของพูลความสะดวกสบายถูกเปิดใช้งานหรือไม่ หากเปิดใช้งาน จะเรียกฟังก์ชันที่สอดคล้องกับสัญญาฮุค

เหล่าตะกั่วเหล่านี้สามารถดำเนินการก่อนที่การซื้อขายจะเริ่มต้นและหลังจากการซื้อขายจบ ทำให้สามารถใช้ฟังก์ชันที่คล้ายกับคำสั่งจำกัดบนเชนได้ ผู้ใช้วางคำสั่งจำกัดบนสัญญาตะกั่ว และจากนั้นใช้ออราเคิลที่กำหนดเองหรือที่จัดการในคอลแบ็ค afterSwap เพื่อกำหนดว่าราคาตรงตามขีดจำกัดหรือไม่ หากใช่ ธุรกรรมจะถูกดำเนิน หากไม่ใช่ ธุรกรรมจะถูกยกเลิก

Uniswap V4 เชื่อมโยง Likelihood อย่างลึกลับกับการพัฒนา DApp ผ่าน Hooks มันเสริมสร้างฟังก์ชันของ DApp และเพิ่มผลกระทบของเครือข่ายของ Uniswap ทำให้มันเป็นโครงสร้างพื้นฐานของระบบนิติบัญญัติทั้งหมด DeFi

ปัญหาด้านความปลอดภัยของ Uniswap V4 Hooks

ทีม BlockSec ได้สำรวจความเสี่ยงด้านความปลอดภัยของกลไก Hooks ใน Uniswap V4 นอกจากความจริงที่สัญญา Hook เองเป็นที่เจ็บช้ำที่ไม่ดี สัญญา Hook ที่ดีต่างหากยังมีโอกาสต่อการโจมตีได้ง่ายมาก ทีม BlockSec ได้วิเคราะห์เรื่อง Awesome Uniswap v4 Hooks repository (commit hash 3a0a444922f26605ec27a41929f3ced924af6075) และพบว่ามีโปรเจกต์ในรีพอสิทอรี่มากกว่า 30% ที่มีช่องโหว่ ช่องโหว่เหล่านี้มาจากการโต้ตอบความเสี่ยงระหว่าง Hook PoolManager และบุคคลภายนอก และสามารถแบ่งเป็นสองหมวดหลักได้

  • ปัญหาควบคุมการเข้าถึง: ปัญหาหลักคือฟังก์ชันการตอบรับใน Uniswap V4 ซึ่งควรถูกเรียกโดย PoolManager เท่านั้น และไม่สามารถเรียกโดยที่อยู่อื่น (รวมถึง EOA และสัญญา). เช่น เมื่อมีการแจกจ่ายรางวัลโดยสำคัญของพูล รางวัลอาจถูกเรียกรับได้ไม่ถูกต้องหากฟังก์ชันที่เกี่ยวข้องสามารถเรียกโดยบัญชีใดก็ตาม ดังนั้น ฮุคต้องสร้างกลไกควบคุมการเข้าถึงที่แข็งแรงโดยเฉพาะอย่างยิ่งเนื่องจากพวกเขาสามารถถูกเรียกโดยฝ่ายอื่นนอกเหนือจากพูลเอง;
  • ป้อนคำถามยืนยัน: การโจมตีหลากหลายประเภทรวมถึงการโจมตี reentrancy ที่มีชื่อเสียง มาจากการตรวจสอบข้อมูลนำเข้าไม่ถูกต้องในการประมวลผลของ Hook บางส่วนที่เป็นจุดอ่อน สถานการณ์ที่พบบ่อยที่สุดคือการเรียกใช้สัญญาภายนอกที่ไม่น่าเชื่อถือในบางฟังก์ชันหลักของ Hook โดยเพื่อโจมตี Hook เหล่านี้ที่มีช่องโหว่ ผู้โจมตีสามารถลงทะเบียน pool ทุนที่เป็นอันตรายสำหรับโทเคนปลอมของตนเอง แล้วเรียกใช้ Hook เพื่อใช้ทุน pool ดำเนินการต่าง ๆ เมื่อมีการ๒ายยายกับ pool ตรรกะโทเคนที่เป็นอันตรายจะยึดควบคุมของการไหลเพื่อมีพฤติกรรมที่ไม่พึงประสงค์

แม้จะมีการควบคุมการเข้าถึงที่จำเป็นสำหรับฟังก์ชันภายนอก/สาธารณะที่มีความสำคัญที่นำมาใช้ได้อย่างถูกต้องและพารามิเตอร์ของข้อมูลถูกตรวจสอบเพื่อลดความเสี่ยงด้านความปลอดภัยที่เกี่ยวข้องกับสองประเภทของ Hooks ด้านบน โทรมนั้นยังไม่สามารถหลีกเลี่ยงช่องโหว่ในสัญญาได้อย่างสมบูรณ์ โดยเฉพาะถ้า Hook เป็นที่สามารถอัพเกรดได้ หากสัญญาได้รับการนำมาใช้ คุณอาจพบปัญหาที่เกี่ยวข้องที่คล้ายกับช่องโหว่ UUPSUpgradeable ของ OpenZeppelin

เหตุผลอยู่ในความจริงที่ว่าการเขียนโปรแกรม Hook เพิ่มความซับซ้อนของสัญญาอัจฉริยะจึงขยายพื้นผิวการโจมตี สําหรับสัญญาอัจฉริยะทั่วไป OpenZeppelin มีชุดไลบรารีแนวทางปฏิบัติที่ดีที่สุดเพื่อให้แน่ใจว่าสัญญาที่พัฒนาขึ้นตามนั้นปลอดภัย อย่างไรก็ตามโดยพื้นฐานแล้วจะเพิ่ม "ข้อ จํากัด การใช้งานด้านความปลอดภัย" สําหรับนักพัฒนา ในการเปรียบเทียบสัญญา Hook ต้องการ "ข้อ จํากัด การใช้งานด้านความปลอดภัย" ที่เข้มงวดกว่าสัญญาปกติ ดังนั้นเพื่อให้การเขียนโปรแกรม Hook ถูกนําไปใช้อย่างกว้างขวางจําเป็นต้องมีกรอบการทํางานที่ครอบคลุม: ต้องใช้สภาพแวดล้อมการดําเนินการที่ปลอดภัยกระบวนทัศน์การเขียนโปรแกรมที่ใช้บังคับสําหรับ Hooks และข้อ จํากัด การใช้งานที่เข้มงวดขึ้น

Artela Aspect: การสนับสนุนในระดับโปรโตคอลสำหรับโปรแกรมมิ่งแบบฮุก

Uniswap V4 Hooks ถูกนำมาใช้งานผ่านสมาร์ทคอนแทรค และปัญหาด้านความปลอดภัยของมันก็เกิดจากข้อจำกัดของสมาร์ทคอนแทรคด้วย มีทางแก้ไขใดที่รองรับการเขียนโปรแกรม Hook จากระดับโปรโตคอลได้ไหม? Artela Aspect ให้เราคำตอบ!

Artela เป็นเครือข่ายบล็อกเชนชั้นที่ 1 ที่มีการเติบโตได้สูงและประสิทธิภาพสูง พร้อมทัดเป็น EVM-compatible ที่ออกแบบมาสำหรับนักพัฒนาเพื่อสร้างแอปพลิเคชันที่สามารถขยายหรือปรับแต่งได้แบบโมดูลาร์ ที่ Rich และ Scalable ซึ่งกำหนดโดย Artela โดยมีการกำหนดโมดูลที่สามารถโปรแกรมได้ใหม่เรียกว่า Aspect โดยที่นำ AOP เข้ามาในเครือข่ายบล็อกเชนอย่างนวัตกรรม Aspect ต้องระบุจุดเชื่อมต่อซี่คือ ตำแหน่งที่ Aspect ถูกดำเนินการในรอบชีวิตการประมวลผลธรรมของธุรกรรมทั้งหมด คล้ายกับ Hook's callback จุดเชื่อมต่อรวมถึง:

  • เริ่มต้นบล็อก
  • การตรวจสอบธุรกรรม
  • การดำเนินการก่อนดำเนินการ
  • โพสต์ดำเนินการ
  • บล็อก Finalize

Aspect ในปัจจุบันรองรับเฉพาะ TypeScript เท่านั้น โดยโค้ดของมันถูกคอมไพล์เป็นไบต์โค้ด WebAssembly (WASM) และนำไปใช้งานบนเครือข่าย Artela หลังจากการใช้งาน Aspect ผู้ถือสมาร์ทคอนแทรคสามารถผูกสัญญาของตนกับ Aspect ผู้ถือสมาร์ทคอนแทรคถูกกำหนดให้เป็นที่อยู่ของบัญชีภายนอก (EOA) ที่สามารถผ่านการตรวจสอบ isOwner(address) และส่งคืน (bool) ในสมาร์ทคอนแทรค

ต่อจากนี้ ธุรกรรมต่อไปที่เรียกใช้สมาร์ทคอนแทรคจะถูกจัดการโดย Aspect ตามที่แสดงในแผนภูมิด้านล่าง:

เป็นการประมวลผลขั้นโปรโตคอลระดับ Hooks Artela Aspects มีข้อได้เปรียบที่ดีมากกว่า Uniswap V4 Hooks:

Artela Aspects ใช้ WASM เพื่อดำเนินการรหัสของมัน และประสิทธิภาพในการดำเนินการสูงกว่า EVM หลายอันดับ

อย่างที่สอง Artela Aspects สามารถเชื่อมต่อช่วงชีวิตของธุรกรรมทั้งหมด ไม่ใช่เพียงตรรกะหลักของ DeFi เท่านั้น และสามารถสร้าง DApps ที่มีฟังก์ชันที่หลากหลาย

สุดท้ายและสำคัญที่สุด Artela Aspects ทำงานอย่างอิสระในสภาพแวดล้อมทรอยสุดปลอดภัย การแยกจากกันนี้ช่วยให้การดำเนินการของ Aspects จะไม่ส่งผลต่อความปลอดภัยของการดำเนินการสัญญา

การเลิกจำกัดของด้าน Artela จำกัดการเรียกกันระหว่างสัญญาตามปกติและสัญญาภายนอกอื่น ๆ แก้ไขปัญหาที่ยากลำบากของการควบคุมการเข้าถึงและการตรวจสอบข้อมูลของ Uniswap V4 Hooks สำหรับสัญญา DeFi เช่น Uniswap คุณสามารถเพลิดเพลินประสบการณ์ Hook ที่เร็วแรงและปลอดภัยโดยการติดตั้งลง Artela

สรุป

ในฐานะผู้มีส่วนร่วมที่สำคัญและผู้นำในอุตสาหกรรม DeFi ยูนิสแวปได้มีบทบาทสำคัญในการขับเคลื่อนความก้าวหน้าของอุตสาหกรรมและเสริมสร้างความสามารถ การนำเสนอของ Hooks ในยูนิสแวป V4 ถือว่าเป็นทิศทางสำหรับการพัฒนา DEX และได้รับการจำลองอย่างกระตือรือร้นโดยผู้ต่อไป

อย่างไรก็ตาม Uniswap V4 Hooks ถูก จำกัด โดย ข้อ จำกัด ที่ แตกต่าง ของ สัญญา ฉลอง โดยไม่ คำนึงถึง ว่า การออกแบบ โปรโตคอล มีความแข็งแรง แค่ไหน และ ชุดเครื่องมือ ครอบคลุม มากแค่ไหน มัน ไม่สามารถ ป้องกัน อย่าง พื้นฐาน การเรียกใช้ ร่วมกัน ระหว่าง สัญญา ฉลอง และ สัญญา ภายนอก ที่ นำเสนอ ภัยคุกคาม ใน ทาง ปลอดภัย ได้

Artela, ในฐานะเครือข่ายบล็อกเชนชั้นที่ 1 ที่เข้ากันได้กับ EVM ที่มีประสิทธิภาพสูง ออกแบบ Aspect เพื่อทำงานอิสระใน WASM ตั้งแต่เกิดขึ้นของโปรโตคอล รองรับการเขียนโปรแกรม Hook อย่างเป็นธรรมชาติ ซึ่งเสริมความปลอดภัยอย่างมาก ให้การแก้ปัญหาขั้นสูงสำหรับโปรโตคอล DeFi ที่พิจารณาความปลอดภัยเป็นสำคัญ

คำแถลง

  1. บทความนี้ชื่อเริ่มต้นเดิมว่า “Evolution of DeFi Hooks: From Uniswap V4 Contract Security to Artela Native Protocol” ถูกทำซ้ำมาจาก [ 小猪Web3]. ลิขสิทธิ์ทั้งหมดเป็นของผู้เขียนต้นฉบับ [web3 จู่]. If you have any objection to the reprint, please contact the Gate Learnทีม ทีมจะดำเนินการเร็วที่สุด

  2. คำประกาศ: มุมมองและความคิดเห็นที่แสดงในบทความนี้แทนเพียงความคิดเห็นส่วนตัวของผู้เขียนเท่านั้น และไม่เป็นการให้คำแนะนำทางด้านการลงทุนใด ๆ

  3. การแปลบทความเป็นภาษาอื่นๆ ถูกดำเนินการโดยทีม Gate Learn นอกจากที่กล่าวถึงไว้แล้ว การคัดลอก การกระจาย หรือการลอกเลียนแบบบทความที่ถูกแปลนั้นถูกห้าม

Start Now
Sign up and get a
$100
Voucher!