การยืมบน Ethereum: การเปรียบเทียบวิวัฒนาการทางสถาปัตยกรรมของ MakerDAO, Yield, Aave, Compound และ Euler

กลาง12/31/2023, 1:08:06 PM
บทความนี้วิเคราะห์กลไกการให้ยืมและการออกแบบสถาปัตยกรรมของโปรโตคอลต่างๆ และยังตรวจสอบจุดแข็งและจุดอ่อนของแนวทางต่างๆ รวมถึงความท้าทายที่อุตสาหกรรมต้องเผชิญ
https://gimg.gateimg.com/learn/53eb85646c26a1c715cfba335dbae53deb39b590.jpg

การยืมเป็นรากฐานสำคัญของแอปพลิเคชันบล็อกเชนที่ใช้ Ethereum ด้วย สินทรัพย์หลายพันล้านที่ถูกยืมออกไป การทำความเข้าใจวิธีการทำงานของการยืมจึงเป็นสิ่งสำคัญสำหรับนักพัฒนา สถาปนิก หรือนักวิจัย

เช่นเดียวกับวิวัฒนาการของกระบวนทัศน์การเขียนโปรแกรม แอปพลิเคชัน DeFi เหล่านี้มีการออกแบบสถาปัตยกรรมที่หลากหลาย ซึ่งสะท้อนถึงลำดับความสำคัญที่เปลี่ยนแปลงไป ตั้งแต่ความปลอดภัยไปจนถึงประสิทธิภาพและประสบการณ์ผู้ใช้

การวิเคราะห์นี้จะพิจารณาสถาปัตยกรรมของแอปพลิเคชันต่างๆ เช่น MakerDAO, Compound, Aave, Euler และ Yield เราจะเน้นย้ำถึงนวัตกรรมที่สำคัญและรูปแบบการออกแบบ ซึ่งเป็นบทเรียนที่สำคัญสำหรับการพัฒนาแอปพลิเคชันการให้กู้ยืมในอนาคต

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

การกู้ยืมใน DeFi

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

อย่างไรก็ตามยังมีสิ่งที่จับได้

มูลค่าหลักประกันจะต้องสูงกว่ามูลค่าเงินกู้ตามอัตรากำไรที่กำหนดไว้เสมอ

หากมูลค่าหลักประกันต่ำกว่านี้ เงินกู้จะ ถูกชำระบัญชี

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

การสมัครขอกู้ยืมทั้งหมดตามโครงสร้างทางการเงินนี้จำเป็นต้องมี Building Block เดียวกัน ซึ่งสามารถจัดเรียงได้หลายวิธี:

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

ขั้นตอนการยืมใน MakerDAO แอปพลิเคชันทั้งหมดใช้ขั้นตอนและฟังก์ชันเดียวกัน

การยืมและการให้ยืมถือได้ว่าเป็นคุณลักษณะที่แยกจากกัน ใน DeFi เราพบทั้งสองคุณสมบัติในแอปพลิเคชันยืมส่วนใหญ่ แต่ไม่ได้รวมเข้าด้วยกันอย่างดีเสมอไป

ใน Compound คือ Aave และ Euler อัตราดอกเบี้ยสำหรับผู้กู้และผู้ให้กู้มีความสัมพันธ์กันภายใน ที่จริงแล้วนั่นคือสิ่งที่ทำให้แอปพลิเคชันเหล่านั้นทำงานโดยมีการแทรกแซงน้อยที่สุด

ในทางกลับกัน MakerDAO และ Yield เป็นผู้ริเริ่มสินทรัพย์ที่พวกเขาให้ยืมแก่ผู้ยืม

พวกเขาไม่ต้องการให้ผู้ใช้จัดหาสินทรัพย์เพื่อให้ผู้ใช้รายอื่นสามารถยืมได้

บทความนี้จะเน้นไปที่การยืมแบบ on-chain และส่วนใหญ่จะไม่สนใจการให้ยืม การกู้ยืมมีความซับซ้อนมากขึ้นเนื่องจากข้อกำหนดหลักประกัน และการทำความเข้าใจรูปแบบการยืมมักจะปลดล็อกความเข้าใจที่ดีขึ้นของโปรโตคอลทั้งหมด

วิวัฒนาการทางสถาปัตยกรรมของ MakerDAO

โลโก้ MakerDAO

MakerDAO ซึ่งเก่าแก่ในแง่ของ Ethereum เปิดตัวในรูปแบบปัจจุบันในเดือนพฤศจิกายน 2019 และมี หลักประกันอยู่ที่ 4.95 พันล้านดอลลาร์ แม้จะมีสถาปัตยกรรมแบบโมดูลาร์ที่มีสัญญาที่แตกต่างกันสำหรับทุกฟังก์ชันและคำศัพท์เฉพาะทาง แต่ก็ยังง่ายต่อการเข้าใจและตรวจสอบ

ฟังก์ชันคลังใน MakerDAO ได้รับการจัดการโดยสัญญา เข้าร่วม

มี สัญญาแยกต่างหาก สำหรับแต่ละโทเค็นที่ได้รับอนุมัติเป็นสินทรัพย์หลักประกัน

ในทางตรงกันข้าม MakerDAO ไม่มี DAI ใด ๆ ซึ่งเป็นสินทรัพย์ที่ยืม

แต่เป็นเพียงการ สร้างเหรียญกษาปณ์และเผา DAI ตามต้องการ

การบัญชีได้รับการจัดการภายในสัญญา vat.sol Joins จะอัพเดตสัญญานี้ เมื่อหลักประกันเข้าหรือออกจากระบบ หากผู้ใช้ยืม ผู้ใช้จะ โต้ตอบกับสัญญา vat.sol โดยตรง

การดำเนินการนี้จะอัปเดตยอดหนี้ของผู้ใช้และอนุญาตให้พวกเขาสร้าง DAI ที่ DAI Join

ในการชำระคืน ผู้ใช้เขียน DAI ใน DAI Join จากนั้นกระบวนการนี้จะอัปเดต Vat เพื่อให้ผู้ใช้สามารถชำระคืนเงินกู้ได้

นอกจากนี้ สัญญา vat.sol ยังทำหน้าที่เป็นกลไก การบริหารความเสี่ยง รักษาขีดจำกัดการกู้ยืมทั่วโลก กำหนดเกณฑ์ขั้นต่ำต่อผู้ใช้ และดูแลอัตราส่วนหลักประกัน

เมื่อมีการเปลี่ยนแปลงยอดหนี้หรือหลักประกันของผู้ใช้ สัญญา vat.sol จะประเมินทั้งอัตราและทันที

สิ่งเหล่านี้หมายถึงอัตราดอกเบี้ยตามหลักประกันที่ใช้และอัตราส่วนราคา DAI ต่อหลักประกันที่มีอยู่ สิ่งที่น่าสนใจคือ ค่าเหล่านี้จะถูกป้อนเข้าสู่สัญญา vat.sol โดยสัญญา MakerDAO อื่นๆ ซึ่งเป็นวิธีการที่แตกต่างจากแอปพลิเคชันอื่นๆ ส่วนใหญ่

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

ด้วยเหตุนี้จึงอาจดูแปลกตา มีค่าใช้จ่ายสูงและใช้งานยาก

อย่างไรก็ตาม สินทรัพย์จำนวนมหาศาลที่บริษัทจัดการและบันทึกการดำเนินงานโดยไม่มีการละเมิดที่สำคัญยังเน้นย้ำถึงการออกแบบและการดำเนินการที่แข็งแกร่ง

ไฮไลท์:

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

วิวัฒนาการทางสถาปัตยกรรมของพิธีสารผลผลิต

อัตราผลตอบแทน v1 ทำหน้าที่เป็นข้อพิสูจน์แนวคิดสำหรับอัตราคงที่โดยใช้ YieldSpace เวอร์ชันนี้สร้างกลไกหนี้ที่มีหลักประกันไว้บน MakerDAO อย่างไรก็ตาม Yield v1 มีราคาแพงในการใช้งานและท้าทายในการเพิ่มฟีเจอร์ใหม่ๆ

เมื่อตระหนักถึงศักยภาพของ YieldSpace เราจึงเปลี่ยนไปสู่การพัฒนา Yield v2 อย่างรวดเร็ว ยังคงได้รับแรงบันดาลใจจาก MakerDAO แต่ตอนนี้เป็นอิสระอย่างสมบูรณ์ Yield v2 เปิดตัวในเดือนตุลาคม 2021 Yield v2 ให้ความสำคัญกับต้นทุนก๊าซที่ลดลงและประสบการณ์ผู้ใช้ที่ได้รับการปรับปรุง

ขั้นตอนการยืมใน Yield v2 ซึ่งได้รับอิทธิพลอย่างมากจาก MakerDAO

การตรวจสอบการบัญชี การบริหารความเสี่ยง และหลักประกันทั้งหมดถูกรวมเข้าเป็นสัญญาเดียว: Cauldron แนวทางของ Mirroring MakerDAO เราได้กระจายฟังก์ชันคลังข้ามสัญญา Join ซึ่งแต่ละสัญญามีไว้สำหรับสินทรัพย์เฉพาะ

เราได้ปรับปรุงการบูรณาการ Oracle ของเรา โดยผสาน Oracle ราคาและอัตราดอกเบี้ยเข้ากับ อินเทอร์เฟซทั่วไป เรากลับรายการ oracle flow จาก MakerDAO เพื่อให้ Cauldron ปรึกษา oracles ตามที่จำเป็นสำหรับการตรวจสอบหลักประกัน ตามความรู้ของฉัน นี่เป็นขั้นตอนที่ต้องการในทุกที่ ยกเว้น MakerDAO

การเบี่ยงเบนที่สำคัญอีกประการหนึ่งจากแนวทางของ MakerDAO คือการที่เราแนะนำ Ladle สัญญานี้ทำหน้าที่เป็นตัวกลางระหว่างผู้ใช้กับผลตอบแทน มีการควบคุมคลังและการบัญชีอย่างกว้างขวาง แต่กลับให้ความยืดหยุ่นอย่างมากสำหรับการพัฒนาคุณลักษณะ

โดยสรุป การยืมใน Yield v2 ทำงานดังนี้

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

วิวัฒนาการทางสถาปัตยกรรมของการเงินแบบผสม

เวอร์ชันแรกของ Compound คือ Proof-of-Concept ซึ่งแสดงให้เห็นว่าตลาดเงินสามารถสร้างขึ้นได้บน Ethereum ด้วยเหตุนี้ การออกแบบจึงให้ความสำคัญกับความเรียบง่ายเป็นหลัก สัญญา MoneyMarket.sol สรุปการทำงานทั้งหมด รวมถึงการกู้ยืม

ขั้นตอนการยืมใน Compound v1. เรียบง่ายแต่มีประสิทธิภาพ

  • งานด้านการเงิน การบัญชี และการบริหารความเสี่ยง เช่น การตรวจสอบหลักประกัน จะถูกรวมเป็นสัญญาเดียว
  • สัญญานี้จะดึงราคาจาก Oracles แต่กำหนดอัตราดอกเบี้ยตามการใช้สินทรัพย์
  • ผู้ใช้โต้ตอบกับสัญญานี้แต่เพียงผู้เดียว แม้ว่าจะต้องโทรแยกกันเพื่อจัดหาหลักประกันและยืมสินทรัพย์

สารประกอบ v2

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

จาก เอกสารไวท์เปเปอร์ และโครงสร้าง เห็นได้ชัดว่าเป้าหมายหลักของ Compound v2 คือการใช้ มาตรฐาน ERC20 เพื่อแสดงสถานะการให้กู้ยืม สิ่งนี้ทำให้มั่นใจได้ถึงความสามารถในการประกอบ ทำให้ผู้ใช้สามารถให้ยืมกับ Compound จากนั้นใช้ตำแหน่งที่มีดอกเบี้ยเหล่านั้นในแอปพลิเคชันบล็อกเชนอื่น ๆ

สิ่งที่น่าสนใจคือ whitepaper ไม่ได้เน้นย้ำว่า Compound v2 ได้รวม รางวัล ไว้ในสัญญาอัจฉริยะของตน เมื่อพิจารณาถึงการละเว้นนี้ ผลกระทบอันใหญ่หลวงของคุณลักษณะนี้อาจไม่ได้รับการคาดการณ์ล่วงหน้า

ขั้นตอนการยืมใน Compound v2 การโจมตีครั้งแรกในตำแหน่งการให้กู้ยืมแบบโทเค็น

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

สารประกอบ v3

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

ขั้นตอนการยืมใน Compound v3 (Comet) กลับไปสู่พื้นฐาน กลับไปสู่ความปลอดภัย ด้วย UX ที่ดีกว่า

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

คุณสมบัติที่เกี่ยวข้องอื่นๆ ที่กล่าวถึงใน บันทึกประจำรุ่น ได้แก่:

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

สิ่งที่น่าสนใจคือ Compound v3 สะท้อนสถาปัตยกรรมของ Compound v1 โดยมีสัญญาฉบับเดียวที่จัดการฟังก์ชันทั้งหมดสำหรับสินทรัพย์ที่ยืมได้แต่ละรายการ คุณสมบัติเด่นอื่นๆ ได้แก่:

  • สามารถยืมได้เฉพาะสินทรัพย์ที่ให้ยืมเท่านั้น ทรัพย์สินหลักประกันไม่สามารถ
  • หลักประกันไม่ให้ผลตอบแทนใน Compound v3

การห้ามยืมหลักประกันช่วยเพิ่มความปลอดภัยให้กับผู้ฝากหลักประกัน สิ่งนี้จะลดโอกาสที่ข้อผิดพลาดในการกำกับดูแลหรือการโจมตีโดยเจตนาจะเป็นอันตรายต่อหลักประกัน

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

สมมติว่าพวกเขาจะจัดการระดับสภาพคล่องที่ใกล้เคียงกันสำหรับ v3 การไม่อนุญาตให้ยืมหลักประกันจะทำให้แอปพลิเคชันปลอดภัย ซึ่งเป็นหนึ่งในเป้าหมายหลักของ v3

จากมุมมองทางสถาปัตยกรรม:

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

วิวัฒนาการทางสถาปัตยกรรมของ Aave

Aave v1 เปิดตัวในเดือนตุลาคม 2019 ต่อจาก ETHLend แทนที่จะใช้แนวทางแบบเพียร์ทูเพียร์ของ ETHLend Aave v1 ได้แนะนำกลุ่มสภาพคล่องที่ใช้ร่วมกัน

ขั้นตอนการยืมใน Aave v1. สภาพคล่องรวมหมายถึงประสิทธิภาพทางการเงินและการคำนวณ

เช่นเดียวกับใน Yield v2 สัญญาเราเตอร์ ยังยึดตรรกะทางธุรกิจไว้ด้วย LendingPoolCore ใช้ฟังก์ชันการบัญชี การบริหารความเสี่ยง และการเงิน การรวมคลังในสัญญาเดียวเป็นจุดที่แตกต่างจาก Compound v2

การตัดสินใจทิ้งการตรวจสอบหลักประกันไว้ใน สัญญาของตัวเอง ซึ่งถูกเรียกจากเราเตอร์และไม่ใช่สัญญาทางบัญชีดูเหมือนจะอ่อนแอ แต่อาจเหมาะสมกับวัตถุประสงค์เนื่องจาก Aave v2 เปิดตัวเพียงสองปีหลังจากการเปิดตัว v1

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

อาฟ v2

Aave v2 เปิดตัวในเดือนธันวาคม 2021 แม้ว่าจะยังคงคุณสมบัติที่คล้ายกับ Aave v1 ไว้ แต่ก็มีสถาปัตยกรรมที่ได้รับการปรับปรุงและเรียบง่ายกว่าเมื่อเปรียบเทียบกับทั้ง Aave v1 และ Compound v2 ในการเปิดตัวครั้งนี้ Aave ยังได้แนะนำ aTokens (คล้ายกับ cTokens ของ Compound) และ vTokens ซึ่งเป็นตัวแทนของหนี้โทเค็น

Aave v2 มีสถาปัตยกรรมที่สะอาดตาและมีโทเค็นเต็มรูปแบบ

คุณลักษณะบางอย่างจาก Aave v1 ซึ่งมีการใช้งานจำกัด ถูกละไว้เพื่อความเรียบง่าย ปัญหาใน Aave v1 เช่น การแสดงที่ซับซ้อนของดอกเบี้ยค้างรับ ได้รับการแก้ไขแล้วใน Aave v2

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

อาฟ v3

Aave v3 เปิดตัวในเดือนมกราคม 2023 พร้อมรองรับหลายเชนและฟีเจอร์อื่นๆ ส่วนเพิ่มเติมเหล่านี้จะไม่เปลี่ยนแปลงสถาปัตยกรรมหลัก การอัปเดตนี้ยังมีการปรับปรุงการจัดการความเสี่ยงและประสิทธิภาพการใช้ก๊าซอีกด้วย

แม้จะมีความก้าวหน้ามากมาย แต่สำหรับจุดประสงค์ของการศึกษานี้ Aave v3 ก็ไม่ได้แตกต่างอย่างมีนัยสำคัญจาก Aave v2 ในความเป็นจริง อาจบ่งบอกว่าสถาปัตยกรรมของ Aave v2 ยังคงแข็งแกร่งในปี 2023

วิวัฒนาการทางสถาปัตยกรรมของออยเลอร์

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

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

แม้ว่าสัญญาฉบับหนึ่งจะจัดเก็บข้อมูลสินทรัพย์ การบัญชี และการบริหารความเสี่ยงทั้งหมด แต่ยังคงมี eToken สำหรับหลักประกันและการกู้ยืม และ dToken สำหรับหนี้ ซึ่งคล้ายกับ Aave v2 อย่างไรก็ตาม สัญญาโทเค็นเหล่านี้เป็นเพียงมุมมองของสัญญาการจัดเก็บข้อมูลส่วนกลาง

  • สัญญา การจัดเก็บ จะจัดการตัวแปรทางบัญชี
  • สัญญา BaseLogic ทำหน้าที่เป็นคลังข้อมูล
  • สัญญา RiskManager จะดูแลตัวแปรและหน้าที่การบริหารความเสี่ยง รวมถึงการตรวจสอบหลักประกัน

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

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

ออยเลอร์ถูกแฮ็กสิบห้าเดือนหลังจากการเปิดตัว และหกเดือนหลังจากการอัปเกรดทำให้เกิดช่องโหว่ที่ถูกโจมตี

ฉันไม่คิดว่าสถาปัตยกรรมเสาหินมีส่วนทำให้ทรัพย์สินหมดไป แต่เป็นการกำกับดูแลการอัปเดตโค้ดไม่เพียงพอ

บทสรุป

การทำงานหนักเสร็จสิ้นแล้ว มาทบทวนสิ่งที่เราเรียนรู้กันดีกว่า

แอปพลิเคชัน Ethereum ในยุคแรก ๆ เช่น MakerDAO, Compound และ Aave แสดงให้เห็นถึงศักยภาพของการกู้ยืมที่มีหลักประกันมากเกินไปบน Ethereum เมื่อการพิสูจน์แนวคิดเหล่านี้ประสบความสำเร็จแล้ว จุดสนใจก็เปลี่ยนไปเป็นการแนะนำคุณสมบัติใหม่ๆ ที่หลากหลายเพื่อคว้าส่วนแบ่งตลาด เวอร์ชันหลังๆ ของ Compound และ Aave นำเสนอการทำฟาร์มที่ให้ผลผลิต ความสามารถในการประกอบรวม และสภาพคล่องที่รวบรวมไว้ ซึ่งเติบโตขึ้นโดยเฉพาะในช่วงสภาวะตลาดกระทิง

การพัฒนาที่สำคัญคือการแนะนำตำแหน่งการให้กู้ยืมแบบโทเค็นของ Compound v2 ซึ่งทำให้ตำแหน่งเหล่านี้ได้รับการยอมรับว่าเป็นสินทรัพย์มาตรฐานโดยแอปพลิเคชันอื่นๆ Aave v2 และ Euler ก้าวไปอีกขั้นด้วยการใช้สถานะหนี้แบบโทเค็น ซึ่งประโยชน์ในวงกว้างยังคงเป็นประเด็นถกเถียงอยู่

ต้นทุนก๊าซที่สูงกลายเป็นข้อกังวลหลักในช่วงตลาดกระทิง ส่งผลให้ประสบการณ์ผู้ใช้มีการปรับเปลี่ยนตามที่เห็นใน Yield v2, Aave v2 และ Euler สัญญาเราเตอร์และการใช้งานแบบเสาหินช่วยลดต้นทุนที่ผู้ใช้เกิดขึ้นสำหรับการทำธุรกรรม อย่างไรก็ตาม สิ่งนี้มาพร้อมกับค่าใช้จ่ายที่ซับซ้อนมากขึ้นและส่งผลให้โค้ดมีความเสี่ยงมากขึ้น

ดูเหมือนว่า Compound v3 จะสร้างแบบอย่าง โดยให้ความสำคัญกับความปลอดภัยมากกว่าประสิทธิภาพทางการเงิน มันแตกต่างจากโมเดลรวมสภาพคล่องแบบดั้งเดิมเพื่อป้องกันการแฮ็กที่อาจเกิดขึ้นได้ดียิ่งขึ้น การเพิ่มขึ้นของเครือข่าย L2 ซึ่งต้นทุนก๊าซเริ่มลดลงเล็กน้อย มีแนวโน้มที่จะกำหนดรูปแบบการออกแบบแอปพลิเคชันการกู้ยืมที่มีหลักประกันในอนาคต

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

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

ขอบคุณสำหรับการอ่านและขอให้โชคดี

ขอขอบคุณ Calnix สำหรับการทบทวนและแก้ไขบทความนี้

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

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

การยืมบน Ethereum: การเปรียบเทียบวิวัฒนาการทางสถาปัตยกรรมของ MakerDAO, Yield, Aave, Compound และ Euler

กลาง12/31/2023, 1:08:06 PM
บทความนี้วิเคราะห์กลไกการให้ยืมและการออกแบบสถาปัตยกรรมของโปรโตคอลต่างๆ และยังตรวจสอบจุดแข็งและจุดอ่อนของแนวทางต่างๆ รวมถึงความท้าทายที่อุตสาหกรรมต้องเผชิญ

การยืมเป็นรากฐานสำคัญของแอปพลิเคชันบล็อกเชนที่ใช้ Ethereum ด้วย สินทรัพย์หลายพันล้านที่ถูกยืมออกไป การทำความเข้าใจวิธีการทำงานของการยืมจึงเป็นสิ่งสำคัญสำหรับนักพัฒนา สถาปนิก หรือนักวิจัย

เช่นเดียวกับวิวัฒนาการของกระบวนทัศน์การเขียนโปรแกรม แอปพลิเคชัน DeFi เหล่านี้มีการออกแบบสถาปัตยกรรมที่หลากหลาย ซึ่งสะท้อนถึงลำดับความสำคัญที่เปลี่ยนแปลงไป ตั้งแต่ความปลอดภัยไปจนถึงประสิทธิภาพและประสบการณ์ผู้ใช้

การวิเคราะห์นี้จะพิจารณาสถาปัตยกรรมของแอปพลิเคชันต่างๆ เช่น MakerDAO, Compound, Aave, Euler และ Yield เราจะเน้นย้ำถึงนวัตกรรมที่สำคัญและรูปแบบการออกแบบ ซึ่งเป็นบทเรียนที่สำคัญสำหรับการพัฒนาแอปพลิเคชันการให้กู้ยืมในอนาคต

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

การกู้ยืมใน DeFi

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

อย่างไรก็ตามยังมีสิ่งที่จับได้

มูลค่าหลักประกันจะต้องสูงกว่ามูลค่าเงินกู้ตามอัตรากำไรที่กำหนดไว้เสมอ

หากมูลค่าหลักประกันต่ำกว่านี้ เงินกู้จะ ถูกชำระบัญชี

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

การสมัครขอกู้ยืมทั้งหมดตามโครงสร้างทางการเงินนี้จำเป็นต้องมี Building Block เดียวกัน ซึ่งสามารถจัดเรียงได้หลายวิธี:

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

ขั้นตอนการยืมใน MakerDAO แอปพลิเคชันทั้งหมดใช้ขั้นตอนและฟังก์ชันเดียวกัน

การยืมและการให้ยืมถือได้ว่าเป็นคุณลักษณะที่แยกจากกัน ใน DeFi เราพบทั้งสองคุณสมบัติในแอปพลิเคชันยืมส่วนใหญ่ แต่ไม่ได้รวมเข้าด้วยกันอย่างดีเสมอไป

ใน Compound คือ Aave และ Euler อัตราดอกเบี้ยสำหรับผู้กู้และผู้ให้กู้มีความสัมพันธ์กันภายใน ที่จริงแล้วนั่นคือสิ่งที่ทำให้แอปพลิเคชันเหล่านั้นทำงานโดยมีการแทรกแซงน้อยที่สุด

ในทางกลับกัน MakerDAO และ Yield เป็นผู้ริเริ่มสินทรัพย์ที่พวกเขาให้ยืมแก่ผู้ยืม

พวกเขาไม่ต้องการให้ผู้ใช้จัดหาสินทรัพย์เพื่อให้ผู้ใช้รายอื่นสามารถยืมได้

บทความนี้จะเน้นไปที่การยืมแบบ on-chain และส่วนใหญ่จะไม่สนใจการให้ยืม การกู้ยืมมีความซับซ้อนมากขึ้นเนื่องจากข้อกำหนดหลักประกัน และการทำความเข้าใจรูปแบบการยืมมักจะปลดล็อกความเข้าใจที่ดีขึ้นของโปรโตคอลทั้งหมด

วิวัฒนาการทางสถาปัตยกรรมของ MakerDAO

โลโก้ MakerDAO

MakerDAO ซึ่งเก่าแก่ในแง่ของ Ethereum เปิดตัวในรูปแบบปัจจุบันในเดือนพฤศจิกายน 2019 และมี หลักประกันอยู่ที่ 4.95 พันล้านดอลลาร์ แม้จะมีสถาปัตยกรรมแบบโมดูลาร์ที่มีสัญญาที่แตกต่างกันสำหรับทุกฟังก์ชันและคำศัพท์เฉพาะทาง แต่ก็ยังง่ายต่อการเข้าใจและตรวจสอบ

ฟังก์ชันคลังใน MakerDAO ได้รับการจัดการโดยสัญญา เข้าร่วม

มี สัญญาแยกต่างหาก สำหรับแต่ละโทเค็นที่ได้รับอนุมัติเป็นสินทรัพย์หลักประกัน

ในทางตรงกันข้าม MakerDAO ไม่มี DAI ใด ๆ ซึ่งเป็นสินทรัพย์ที่ยืม

แต่เป็นเพียงการ สร้างเหรียญกษาปณ์และเผา DAI ตามต้องการ

การบัญชีได้รับการจัดการภายในสัญญา vat.sol Joins จะอัพเดตสัญญานี้ เมื่อหลักประกันเข้าหรือออกจากระบบ หากผู้ใช้ยืม ผู้ใช้จะ โต้ตอบกับสัญญา vat.sol โดยตรง

การดำเนินการนี้จะอัปเดตยอดหนี้ของผู้ใช้และอนุญาตให้พวกเขาสร้าง DAI ที่ DAI Join

ในการชำระคืน ผู้ใช้เขียน DAI ใน DAI Join จากนั้นกระบวนการนี้จะอัปเดต Vat เพื่อให้ผู้ใช้สามารถชำระคืนเงินกู้ได้

นอกจากนี้ สัญญา vat.sol ยังทำหน้าที่เป็นกลไก การบริหารความเสี่ยง รักษาขีดจำกัดการกู้ยืมทั่วโลก กำหนดเกณฑ์ขั้นต่ำต่อผู้ใช้ และดูแลอัตราส่วนหลักประกัน

เมื่อมีการเปลี่ยนแปลงยอดหนี้หรือหลักประกันของผู้ใช้ สัญญา vat.sol จะประเมินทั้งอัตราและทันที

สิ่งเหล่านี้หมายถึงอัตราดอกเบี้ยตามหลักประกันที่ใช้และอัตราส่วนราคา DAI ต่อหลักประกันที่มีอยู่ สิ่งที่น่าสนใจคือ ค่าเหล่านี้จะถูกป้อนเข้าสู่สัญญา vat.sol โดยสัญญา MakerDAO อื่นๆ ซึ่งเป็นวิธีการที่แตกต่างจากแอปพลิเคชันอื่นๆ ส่วนใหญ่

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

ด้วยเหตุนี้จึงอาจดูแปลกตา มีค่าใช้จ่ายสูงและใช้งานยาก

อย่างไรก็ตาม สินทรัพย์จำนวนมหาศาลที่บริษัทจัดการและบันทึกการดำเนินงานโดยไม่มีการละเมิดที่สำคัญยังเน้นย้ำถึงการออกแบบและการดำเนินการที่แข็งแกร่ง

ไฮไลท์:

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

วิวัฒนาการทางสถาปัตยกรรมของพิธีสารผลผลิต

อัตราผลตอบแทน v1 ทำหน้าที่เป็นข้อพิสูจน์แนวคิดสำหรับอัตราคงที่โดยใช้ YieldSpace เวอร์ชันนี้สร้างกลไกหนี้ที่มีหลักประกันไว้บน MakerDAO อย่างไรก็ตาม Yield v1 มีราคาแพงในการใช้งานและท้าทายในการเพิ่มฟีเจอร์ใหม่ๆ

เมื่อตระหนักถึงศักยภาพของ YieldSpace เราจึงเปลี่ยนไปสู่การพัฒนา Yield v2 อย่างรวดเร็ว ยังคงได้รับแรงบันดาลใจจาก MakerDAO แต่ตอนนี้เป็นอิสระอย่างสมบูรณ์ Yield v2 เปิดตัวในเดือนตุลาคม 2021 Yield v2 ให้ความสำคัญกับต้นทุนก๊าซที่ลดลงและประสบการณ์ผู้ใช้ที่ได้รับการปรับปรุง

ขั้นตอนการยืมใน Yield v2 ซึ่งได้รับอิทธิพลอย่างมากจาก MakerDAO

การตรวจสอบการบัญชี การบริหารความเสี่ยง และหลักประกันทั้งหมดถูกรวมเข้าเป็นสัญญาเดียว: Cauldron แนวทางของ Mirroring MakerDAO เราได้กระจายฟังก์ชันคลังข้ามสัญญา Join ซึ่งแต่ละสัญญามีไว้สำหรับสินทรัพย์เฉพาะ

เราได้ปรับปรุงการบูรณาการ Oracle ของเรา โดยผสาน Oracle ราคาและอัตราดอกเบี้ยเข้ากับ อินเทอร์เฟซทั่วไป เรากลับรายการ oracle flow จาก MakerDAO เพื่อให้ Cauldron ปรึกษา oracles ตามที่จำเป็นสำหรับการตรวจสอบหลักประกัน ตามความรู้ของฉัน นี่เป็นขั้นตอนที่ต้องการในทุกที่ ยกเว้น MakerDAO

การเบี่ยงเบนที่สำคัญอีกประการหนึ่งจากแนวทางของ MakerDAO คือการที่เราแนะนำ Ladle สัญญานี้ทำหน้าที่เป็นตัวกลางระหว่างผู้ใช้กับผลตอบแทน มีการควบคุมคลังและการบัญชีอย่างกว้างขวาง แต่กลับให้ความยืดหยุ่นอย่างมากสำหรับการพัฒนาคุณลักษณะ

โดยสรุป การยืมใน Yield v2 ทำงานดังนี้

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

วิวัฒนาการทางสถาปัตยกรรมของการเงินแบบผสม

เวอร์ชันแรกของ Compound คือ Proof-of-Concept ซึ่งแสดงให้เห็นว่าตลาดเงินสามารถสร้างขึ้นได้บน Ethereum ด้วยเหตุนี้ การออกแบบจึงให้ความสำคัญกับความเรียบง่ายเป็นหลัก สัญญา MoneyMarket.sol สรุปการทำงานทั้งหมด รวมถึงการกู้ยืม

ขั้นตอนการยืมใน Compound v1. เรียบง่ายแต่มีประสิทธิภาพ

  • งานด้านการเงิน การบัญชี และการบริหารความเสี่ยง เช่น การตรวจสอบหลักประกัน จะถูกรวมเป็นสัญญาเดียว
  • สัญญานี้จะดึงราคาจาก Oracles แต่กำหนดอัตราดอกเบี้ยตามการใช้สินทรัพย์
  • ผู้ใช้โต้ตอบกับสัญญานี้แต่เพียงผู้เดียว แม้ว่าจะต้องโทรแยกกันเพื่อจัดหาหลักประกันและยืมสินทรัพย์

สารประกอบ v2

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

จาก เอกสารไวท์เปเปอร์ และโครงสร้าง เห็นได้ชัดว่าเป้าหมายหลักของ Compound v2 คือการใช้ มาตรฐาน ERC20 เพื่อแสดงสถานะการให้กู้ยืม สิ่งนี้ทำให้มั่นใจได้ถึงความสามารถในการประกอบ ทำให้ผู้ใช้สามารถให้ยืมกับ Compound จากนั้นใช้ตำแหน่งที่มีดอกเบี้ยเหล่านั้นในแอปพลิเคชันบล็อกเชนอื่น ๆ

สิ่งที่น่าสนใจคือ whitepaper ไม่ได้เน้นย้ำว่า Compound v2 ได้รวม รางวัล ไว้ในสัญญาอัจฉริยะของตน เมื่อพิจารณาถึงการละเว้นนี้ ผลกระทบอันใหญ่หลวงของคุณลักษณะนี้อาจไม่ได้รับการคาดการณ์ล่วงหน้า

ขั้นตอนการยืมใน Compound v2 การโจมตีครั้งแรกในตำแหน่งการให้กู้ยืมแบบโทเค็น

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

สารประกอบ v3

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

ขั้นตอนการยืมใน Compound v3 (Comet) กลับไปสู่พื้นฐาน กลับไปสู่ความปลอดภัย ด้วย UX ที่ดีกว่า

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

คุณสมบัติที่เกี่ยวข้องอื่นๆ ที่กล่าวถึงใน บันทึกประจำรุ่น ได้แก่:

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

สิ่งที่น่าสนใจคือ Compound v3 สะท้อนสถาปัตยกรรมของ Compound v1 โดยมีสัญญาฉบับเดียวที่จัดการฟังก์ชันทั้งหมดสำหรับสินทรัพย์ที่ยืมได้แต่ละรายการ คุณสมบัติเด่นอื่นๆ ได้แก่:

  • สามารถยืมได้เฉพาะสินทรัพย์ที่ให้ยืมเท่านั้น ทรัพย์สินหลักประกันไม่สามารถ
  • หลักประกันไม่ให้ผลตอบแทนใน Compound v3

การห้ามยืมหลักประกันช่วยเพิ่มความปลอดภัยให้กับผู้ฝากหลักประกัน สิ่งนี้จะลดโอกาสที่ข้อผิดพลาดในการกำกับดูแลหรือการโจมตีโดยเจตนาจะเป็นอันตรายต่อหลักประกัน

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

สมมติว่าพวกเขาจะจัดการระดับสภาพคล่องที่ใกล้เคียงกันสำหรับ v3 การไม่อนุญาตให้ยืมหลักประกันจะทำให้แอปพลิเคชันปลอดภัย ซึ่งเป็นหนึ่งในเป้าหมายหลักของ v3

จากมุมมองทางสถาปัตยกรรม:

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

วิวัฒนาการทางสถาปัตยกรรมของ Aave

Aave v1 เปิดตัวในเดือนตุลาคม 2019 ต่อจาก ETHLend แทนที่จะใช้แนวทางแบบเพียร์ทูเพียร์ของ ETHLend Aave v1 ได้แนะนำกลุ่มสภาพคล่องที่ใช้ร่วมกัน

ขั้นตอนการยืมใน Aave v1. สภาพคล่องรวมหมายถึงประสิทธิภาพทางการเงินและการคำนวณ

เช่นเดียวกับใน Yield v2 สัญญาเราเตอร์ ยังยึดตรรกะทางธุรกิจไว้ด้วย LendingPoolCore ใช้ฟังก์ชันการบัญชี การบริหารความเสี่ยง และการเงิน การรวมคลังในสัญญาเดียวเป็นจุดที่แตกต่างจาก Compound v2

การตัดสินใจทิ้งการตรวจสอบหลักประกันไว้ใน สัญญาของตัวเอง ซึ่งถูกเรียกจากเราเตอร์และไม่ใช่สัญญาทางบัญชีดูเหมือนจะอ่อนแอ แต่อาจเหมาะสมกับวัตถุประสงค์เนื่องจาก Aave v2 เปิดตัวเพียงสองปีหลังจากการเปิดตัว v1

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

อาฟ v2

Aave v2 เปิดตัวในเดือนธันวาคม 2021 แม้ว่าจะยังคงคุณสมบัติที่คล้ายกับ Aave v1 ไว้ แต่ก็มีสถาปัตยกรรมที่ได้รับการปรับปรุงและเรียบง่ายกว่าเมื่อเปรียบเทียบกับทั้ง Aave v1 และ Compound v2 ในการเปิดตัวครั้งนี้ Aave ยังได้แนะนำ aTokens (คล้ายกับ cTokens ของ Compound) และ vTokens ซึ่งเป็นตัวแทนของหนี้โทเค็น

Aave v2 มีสถาปัตยกรรมที่สะอาดตาและมีโทเค็นเต็มรูปแบบ

คุณลักษณะบางอย่างจาก Aave v1 ซึ่งมีการใช้งานจำกัด ถูกละไว้เพื่อความเรียบง่าย ปัญหาใน Aave v1 เช่น การแสดงที่ซับซ้อนของดอกเบี้ยค้างรับ ได้รับการแก้ไขแล้วใน Aave v2

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

อาฟ v3

Aave v3 เปิดตัวในเดือนมกราคม 2023 พร้อมรองรับหลายเชนและฟีเจอร์อื่นๆ ส่วนเพิ่มเติมเหล่านี้จะไม่เปลี่ยนแปลงสถาปัตยกรรมหลัก การอัปเดตนี้ยังมีการปรับปรุงการจัดการความเสี่ยงและประสิทธิภาพการใช้ก๊าซอีกด้วย

แม้จะมีความก้าวหน้ามากมาย แต่สำหรับจุดประสงค์ของการศึกษานี้ Aave v3 ก็ไม่ได้แตกต่างอย่างมีนัยสำคัญจาก Aave v2 ในความเป็นจริง อาจบ่งบอกว่าสถาปัตยกรรมของ Aave v2 ยังคงแข็งแกร่งในปี 2023

วิวัฒนาการทางสถาปัตยกรรมของออยเลอร์

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

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

แม้ว่าสัญญาฉบับหนึ่งจะจัดเก็บข้อมูลสินทรัพย์ การบัญชี และการบริหารความเสี่ยงทั้งหมด แต่ยังคงมี eToken สำหรับหลักประกันและการกู้ยืม และ dToken สำหรับหนี้ ซึ่งคล้ายกับ Aave v2 อย่างไรก็ตาม สัญญาโทเค็นเหล่านี้เป็นเพียงมุมมองของสัญญาการจัดเก็บข้อมูลส่วนกลาง

  • สัญญา การจัดเก็บ จะจัดการตัวแปรทางบัญชี
  • สัญญา BaseLogic ทำหน้าที่เป็นคลังข้อมูล
  • สัญญา RiskManager จะดูแลตัวแปรและหน้าที่การบริหารความเสี่ยง รวมถึงการตรวจสอบหลักประกัน

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

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

ออยเลอร์ถูกแฮ็กสิบห้าเดือนหลังจากการเปิดตัว และหกเดือนหลังจากการอัปเกรดทำให้เกิดช่องโหว่ที่ถูกโจมตี

ฉันไม่คิดว่าสถาปัตยกรรมเสาหินมีส่วนทำให้ทรัพย์สินหมดไป แต่เป็นการกำกับดูแลการอัปเดตโค้ดไม่เพียงพอ

บทสรุป

การทำงานหนักเสร็จสิ้นแล้ว มาทบทวนสิ่งที่เราเรียนรู้กันดีกว่า

แอปพลิเคชัน Ethereum ในยุคแรก ๆ เช่น MakerDAO, Compound และ Aave แสดงให้เห็นถึงศักยภาพของการกู้ยืมที่มีหลักประกันมากเกินไปบน Ethereum เมื่อการพิสูจน์แนวคิดเหล่านี้ประสบความสำเร็จแล้ว จุดสนใจก็เปลี่ยนไปเป็นการแนะนำคุณสมบัติใหม่ๆ ที่หลากหลายเพื่อคว้าส่วนแบ่งตลาด เวอร์ชันหลังๆ ของ Compound และ Aave นำเสนอการทำฟาร์มที่ให้ผลผลิต ความสามารถในการประกอบรวม และสภาพคล่องที่รวบรวมไว้ ซึ่งเติบโตขึ้นโดยเฉพาะในช่วงสภาวะตลาดกระทิง

การพัฒนาที่สำคัญคือการแนะนำตำแหน่งการให้กู้ยืมแบบโทเค็นของ Compound v2 ซึ่งทำให้ตำแหน่งเหล่านี้ได้รับการยอมรับว่าเป็นสินทรัพย์มาตรฐานโดยแอปพลิเคชันอื่นๆ Aave v2 และ Euler ก้าวไปอีกขั้นด้วยการใช้สถานะหนี้แบบโทเค็น ซึ่งประโยชน์ในวงกว้างยังคงเป็นประเด็นถกเถียงอยู่

ต้นทุนก๊าซที่สูงกลายเป็นข้อกังวลหลักในช่วงตลาดกระทิง ส่งผลให้ประสบการณ์ผู้ใช้มีการปรับเปลี่ยนตามที่เห็นใน Yield v2, Aave v2 และ Euler สัญญาเราเตอร์และการใช้งานแบบเสาหินช่วยลดต้นทุนที่ผู้ใช้เกิดขึ้นสำหรับการทำธุรกรรม อย่างไรก็ตาม สิ่งนี้มาพร้อมกับค่าใช้จ่ายที่ซับซ้อนมากขึ้นและส่งผลให้โค้ดมีความเสี่ยงมากขึ้น

ดูเหมือนว่า Compound v3 จะสร้างแบบอย่าง โดยให้ความสำคัญกับความปลอดภัยมากกว่าประสิทธิภาพทางการเงิน มันแตกต่างจากโมเดลรวมสภาพคล่องแบบดั้งเดิมเพื่อป้องกันการแฮ็กที่อาจเกิดขึ้นได้ดียิ่งขึ้น การเพิ่มขึ้นของเครือข่าย L2 ซึ่งต้นทุนก๊าซเริ่มลดลงเล็กน้อย มีแนวโน้มที่จะกำหนดรูปแบบการออกแบบแอปพลิเคชันการกู้ยืมที่มีหลักประกันในอนาคต

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

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

ขอบคุณสำหรับการอ่านและขอให้โชคดี

ขอขอบคุณ Calnix สำหรับการทบทวนและแก้ไขบทความนี้

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

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