SharkTeam: การวิเคราะห์ซอร์สโค้ด UniswapX
หลักการออกแบบ
UniswapX มุ่งหวังที่จะแก้ไขปัญหานี้โดยการว่าจ้างความซับซ้อนในการกำหนดเส้นทางให้กับเครือข่ายแบบเปิดของตัวเติมบุคคลที่สาม จากนั้นจะแข่งขันเพื่อเติมค่าสวอปโดยใช้สภาพคล่องบนเชน เช่น กลุ่ม AMM หรือสินค้าคงคลังส่วนตัวของพวกเขาเอง
ด้วย UniswapX ผู้แลกเปลี่ยนจะสามารถใช้อินเทอร์เฟซ Uniswap โดยไม่ต้องกังวลว่าจะได้รับราคาที่ดีที่สุดหรือไม่ และธุรกรรมจะถูกบันทึกและชำระแบบออนไลน์อย่างโปร่งใสเสมอ คำสั่งซื้อทั้งหมดได้รับการสนับสนุนโดย Uniswap Smart Order Router ซึ่งบังคับให้ตัวเติมแข่งขันกับ Uniswap v1, v2, v3 และ v4 เมื่อเปิดตัวแล้ว
ชื่อระดับแรก
ข้อได้เปรียบ
รับราคาที่ดีขึ้นโดยการรวบรวมแหล่งสภาพคล่อง การแลกเปลี่ยนแบบไม่มีก๊าซ
ป้องกัน MEV (ค่าที่สามารถแยกได้สูงสุด)
ในอีกไม่กี่เดือนข้างหน้า UniswapX จะขยายไปสู่การแลกเปลี่ยนข้ามสายโซ่แบบไร้ก๊าซ
ชื่อระดับแรก
หลักการทำงาน
ขั้นแรก สมมติว่า Alice (ผู้แลกเปลี่ยน) ต้องการแลกเปลี่ยน 1 ETH เป็น USDC อลิซขอคำพูดจาก (ผู้ที่อาจเติม) Bob, Charlie และ Danielle:
Bob เสนอที่จะซื้อ ETH ของ Alice ในราคา 1,000 USDC
ตอนนี้ Charlie มี 999 USDC
แดเนียลมี 998 USDC
อลิซยังสามารถแปลง 1 ETH ของเธอเป็น 997 USDC ได้โดยตรงผ่าน Uniswap v 3
อลิซยอมรับข้อเสนอของ Bob 1,000 USDC และลงนามในคำสั่ง
คำสั่งซื้อประกอบด้วยมูลค่าสูงสุด (กำหนดโดยราคาเสนอของ Bob ที่ 1,000 USDC) และมูลค่าขั้นต่ำ 997 USDC (กำหนดโดย Uniswap Smart Order Router API)
Bob สามารถใช้ USDC ของเขาเองหรือกำหนดเส้นทาง 1 ETH ของ Alice ไปยังสถานที่สภาพคล่องบนเชนต่างๆ (โปรโตคอล Uniswap, Sushiswap ฯลฯ) เพื่อเติมเต็มคำสั่งของ Alice
Bob ตัดสินใจใช้ USDC ของเขาเองเพื่อทำตามคำสั่งของ Alice และส่ง Alice 1,000 USDC เพื่อแลกกับ 1 ETH ของเธอ
หาก Bob ตัดสินใจละทิ้งข้อเสนอของเขา อลิซก็ไม่จำเป็นต้องส่งคำสั่งซื้อและลายเซ็นใหม่
แต่คำสั่งซื้อที่มีอยู่ของเธอจะต่ออายุโดยอัตโนมัติ โดยเสนอ 1 ETH ให้กับใครก็ตามที่สามารถมอบ 999 USDC ให้เธอเป็นการตอบแทน
ผ่านไปหนึ่งบล็อกแล้ว และตอนนี้ทั้ง Charlie และ Danielle (และฟิลเลอร์อื่นๆ ที่เข้าร่วมในระบบ UniswapX) ไม่เต็มใจที่จะเติมคำสั่งซื้อของ Alice ที่ 999 USDC หลังจากบล็อก Ethereum อื่น (12 วินาที) หมดอายุ 1 ETH ของ Alice จะสามารถแลกเปลี่ยนเป็น 998 USDC
ในนามของ Alice Danielle ส่ง 1 ETH ของ Alice ไปยัง Uniswap v 3 และ Sushiswap คืน 998 USDC ให้กับ Alice และเก็บเอาต์พุต 1 USDC ที่เหลือไว้สำหรับตัวเธอเอง
ชื่อระดับแรก
ขั้นตอนการทำธุรกรรม
UniswapX เป็นโปรโตคอลการแลกเปลี่ยนแบบกระจายอำนาจที่ใช้สัญญาอนุญาตโทเค็น Permit 2 เพื่อแนะนำฟังก์ชันการอนุญาตและการถ่ายโอนตามลายเซ็นสำหรับโทเค็น ERC 20 ใด ๆ นอกจากนี้ UniswapX ยังใช้สัญญา Reactor สำหรับการชำระบัญชีแบบออนไลน์ สัญญาเครื่องปฏิกรณ์มีหน้าที่ตรวจสอบว่าธุรกรรมเป็นไปตามพารามิเตอร์ที่ผู้ใช้ระบุและสามารถยกเลิกธุรกรรมที่ไม่ตรงตามเกณฑ์ได้ หากต้องการเข้าร่วมในธุรกรรม UniswapX ผู้แปลงจะต้องอนุญาตสัญญา Permit 2 ก่อน
แทนที่จะสร้างและส่งธุรกรรมด้วยตนเอง ผู้แปลงจะลงนามในใบสั่งธุรกรรม โดยระบุพารามิเตอร์ต่อไปนี้:
ป้อนโทเค็น (จ่ายโทเค็น)
โทเค็นเอาท์พุต (รับโทเค็น)
ปริมาณอินพุต (เอาต์พุต)
จำนวนเอาต์พุตเริ่มต้น (อินพุต)
ปริมาณเอาต์พุตขั้นต่ำ (อินพุต)
ฟังก์ชั่นการสลายตัว
ระยะเวลาไถ่ถอน
อนุญาตสัญญา UniswapX Reactor เพื่อใช้โทเค็นในนามของสัญญา
คำสั่งซื้อเหล่านี้ได้รับจากผู้ค้นหา MEV, ผู้ดูแลสภาพคล่อง และ/หรือตัวแทนออนไลน์อื่นๆ (เรียกรวมกันว่าฟิลเลอร์) และส่งคำสั่งซื้อเหล่านี้ไปยังสัญญาเครื่องปฏิกรณ์ โดยการส่งคำสั่งซื้อของผู้เปลี่ยนในห่วงโซ่ ผู้เติมคำสั่งซื้อจะชำระค่าธรรมเนียมแก๊สในนามของผู้เปลี่ยน ค่าธรรมเนียมเหล่านี้จะสะท้อนให้เห็นในราคาดำเนินการเพื่อชดเชยค่าน้ำมัน
UniswapX ไม่ได้กำหนดวิธีที่ตัวเติมคำสั่งซื้อเติมคำสั่งซื้อของผู้เปลี่ยน สภาพคล่องอาจมาจากกลุ่มสภาพคล่องบนเครือข่ายบน Uniswap หรือการแลกเปลี่ยนแบบกระจายอำนาจอื่นๆ แหล่งสภาพคล่องนอกเครือข่าย หรือหนังสือคำสั่ง UniswapX อื่นๆ คำสั่งซื้อหลายรายการสามารถรวมเข้าด้วยกันเป็นธุรกรรมเดียวกันได้ และการดำเนินการอื่นๆ ก็สามารถดำเนินการแบบออนไลน์แบบอะตอมมิกได้
ชื่อระดับแรก

การวิเคราะห์ซอร์สโค้ดที่สำคัญ

เนื่องจากผู้เติมจำเป็นต้องส่งก๊าซแทนตัวแลกเปลี่ยน จึงเป็นไปได้ที่จะลดการสูญเสียค่าธรรมเนียมการจัดการที่เกิดจากธุรกรรมโดยการดำเนินการตามคำสั่งซื้อเป็นชุด

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


สัญญาใช้ฟังก์ชันตรวจสอบเพื่อตรวจสอบว่าฟิลเลอร์คือฟิลเลอร์ที่ระบุสำหรับคำสั่งซื้อ

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

หากผู้เติมเลือกที่จะใช้ตำแหน่งส่วนตัวของเขาเพื่อดำเนินการคำสั่งซื้อให้เสร็จสิ้น โทเค็นจะถูกโอนโดยตรงจากที่อยู่ของผู้เติมไปยังที่อยู่ของผู้แลกเปลี่ยน
วิสัยทัศน์ของ SharkTeam คือการรักษาความปลอดภัยให้กับโลกของ Web 3 อย่างเต็มรูปแบบ ทีมงานประกอบด้วยผู้เชี่ยวชาญด้านความปลอดภัยที่มีประสบการณ์และนักวิจัยอาวุโสจากทั่วทุกมุมโลก พวกเขามีความเชี่ยวชาญในทฤษฎีพื้นฐานของบล็อคเชนและสัญญาอัจฉริยะ และให้บริการต่างๆ รวมถึงการตรวจสอบสัญญาอัจฉริยะ การวิเคราะห์ออนไลน์ และการตอบสนองฉุกเฉิน ได้สร้างความสัมพันธ์ความร่วมมือระยะยาวกับผู้เล่นหลักในด้านต่างๆ ของระบบนิเวศบล็อกเชน เช่น Polkadot, Moonbeam, polygon, OKC, Huobi Global, imToken, ChainIDE เป็นต้น

About Us
วิสัยทัศน์ของ SharkTeam คือการรักษาความปลอดภัยให้กับโลกของ Web 3 อย่างเต็มรูปแบบ ทีมงานประกอบด้วยผู้เชี่ยวชาญด้านความปลอดภัยที่มีประสบการณ์และนักวิจัยอาวุโสจากทั่วทุกมุมโลก พวกเขามีความเชี่ยวชาญในทฤษฎีพื้นฐานของบล็อคเชนและสัญญาอัจฉริยะ และให้บริการต่างๆ รวมถึงการตรวจสอบสัญญาอัจฉริยะ การวิเคราะห์ออนไลน์ และการตอบสนองฉุกเฉิน ได้สร้างความสัมพันธ์ความร่วมมือระยะยาวกับผู้เล่นหลักในด้านต่างๆ ของระบบนิเวศบล็อกเชน เช่น Polkadot, Moonbeam, polygon, OKC, Huobi Global, imToken, ChainIDE เป็นต้น
เว็บไซต์อย่างเป็นทางการ: https://www.sharkteam.org


