BTC
ETH
HTX
SOL
BNB
ดูตลาด
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

เข้าใจง่ายใน 5 ขั้นตอน ใช้ช่องโหว่ DeFi ทำกำไร 360,000 ดอลลาร์สหรัฐฯ อย่างไร

CortexLabs
特邀专栏作者
2020-03-20 08:36
บทความนี้มีประมาณ 2742 คำ การอ่านทั้งหมดใช้เวลาประมาณ 4 นาที
ในบทความนี้ ฉันจะแนะนำผู้อ่านทีละขั้นตอนผ่านการดำเนินการ "แคร็ก" และให้คำอธิบายเพิ่ม
สรุปโดย AI
ขยาย
ในบทความนี้ ฉันจะแนะนำผู้อ่านทีละขั้นตอนผ่านการดำเนินการ "แคร็ก" และให้คำอธิบายเพิ่ม

เมื่อเร็ว ๆ นี้ "แฮ็กเกอร์" ใช้ Flash Loan โดยมีค่าใช้จ่ายเกือบเป็นศูนย์ ดูรายละเอียดในหมายเหตุ 1] เงินกู้ที่ให้นั้นทำเงินได้ 360,000 ดอลลาร์สหรัฐในการทำธุรกรรมครั้งเดียว (ยังมีข้อโต้แย้งมากมายว่าเหตุการณ์นี้จัดอยู่ในประเภท "การโจมตีด้วยการแฮ็ก" หรือไม่ เพราะในทางเทคนิคแล้ว "แฮ็กเกอร์" นี้ไม่ได้ทำอะไรผิดกฎหมาย) . เมื่อพิจารณาจากจำนวนผลิตภัณฑ์ DeFi ที่เกี่ยวข้องกับเหตุการณ์ "แคร็ก" นี้ หากคุณต้องการทำให้ง่ายสำหรับผู้ที่มีความเข้าใจเบื้องต้นเกี่ยวกับ DeFi คุณต้องอธิบายรายละเอียดที่เกี่ยวข้องให้ชัดเจนที่สุด ในบทความนี้ ฉันจะแนะนำผู้อ่านทีละขั้นตอนผ่านการดำเนินการ "แคร็ก" และให้คำอธิบายเพิ่มเติมในบางขั้นตอนที่สำคัญ เพื่อจะได้รู้ลึกรู้จริงว่าเหตุการณ์นี้เกิดขึ้นได้อย่างไร แทนที่จะแค่ "รู้นิดหน่อย"

ข้อความ

  • ขั้นตอนที่ 1: เงินกู้ FlashLoan: ยืม 10,000 WETH จาก dydx

ข้อความ

  • ข้อความ

  • ขั้นตอนที่ 3: การซื้อขายด้วยเลเวอเรจ dZx: 1300 WETH เติมเงินในสัญญา dZx เลเวอเรจ 5 เท่าเป็นชอร์ต การดำเนินการเฉพาะสามารถเข้าใจได้ง่ายๆ ว่าเป็นการยืม 5637.623762 WETH จาก bZx และขายใน Uniswap ผ่าน KyberSwap และการขายจะกลายเป็น 51.345576 WBTC

ขั้นตอนนี้คือการทะลุผ่านราคาของ WETH/WBTC ใน Uniswap

ในเวลานั้น ราคาปกติของ WETH/WBTC อยู่ที่ประมาณ 0.025974 และการขายขั้นนี้โดยพื้นฐานแล้วราคาของ WETH/WBTC ใน Uniswap จะอยู่ที่ 0.00910747 เกือบสามครั้ง

ข้อความ

  • ขั้นตอนที่ 4: ธุรกรรม Uniswap: ใช้ 112 BTC ที่ยืมมาจาก Compound ในขั้นตอนที่ 2 เพื่อซื้อคืน ETH ใน Uniswap และซื้อคืนรวมเป็น 6871.4127388 ETH

ข้อความ

  • ขั้นตอนที่ 5: FlashLoan ส่งคืน: มี 3200 WETH ที่ไม่ได้ใช้ใน 10,000 WETH ที่ยืมโดย FlashLoan บวกกับ 6871 WETH ที่ซื้อคืนด้วย 112 WBTC ในขั้นตอนที่ 4 รวมเป็น 10071.4127388 WETH 10,000 WETH สำหรับการคืนเงินกู้ Flash มี 71.4127388 เหลืออยู่

ณ จุดนี้ การดำเนินการทั้งหมดสิ้นสุดลงแล้ว

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

มาดูรายได้ของ Joe:

จาก 5 ขั้นตอนนี้ ดูเหมือนว่า Joe จะได้เพียง 71.4127388 WETH

แต่อย่าลืมว่า Joe ยังมีสองตำแหน่งใน Compound และ bZx

คนแรกคือการให้สินเชื่อจำนองใน Compound จำนอง 5500 WETH และให้ยืม 112 WBTC

อีกอันคือการซื้อขายโดยใช้มาร์จิ้นใน bZx โดยที่ 1300 WETH ถูกจดจำนองและขายชอร์ตด้วยเลเวอเรจ 5 เท่า มี 51.345576 WBTC ที่เหลืออยู่

เนื่องจาก bZx ใช้ราคา WETH/WBTC ใน Uniswap เป็นฟีดราคา และราคา WETH/WBTC ใน Uniswap ถูกควบคุมโดย Joe ดังนั้นตามความเข้าใจทั่วไป ตำแหน่งของ Joe ใน bZx ควรถูกชำระบัญชี แต่สถานการณ์จริงคือมีเพียง 51.345576 WBTC ที่ได้รับจากการดำเนินการขั้นตอนที่สามที่เหลืออยู่ในตำแหน่งนี้

เห็นได้ชัดว่าโจไม่ต้องการเพิกเฉยต่อตำแหน่งนี้ แม้ว่า 51.345576 WBTC ที่เหลือจะถูกหักออก (ในความเป็นจริง bZx ได้หัก 51.345576 WBTC แล้ว)

ส่วนตำแหน่งใน Compound โจสนใจมากกว่า ตามราคาปกติของ ETH/BTC ในขณะนี้คือประมาณ 0.025974 Joe ต้องการใช้เงินเพียง 4300 WETH จากตลาดเพื่อซื้อ 112 WBTC จากนั้นส่งคืนที่ Compound และคุณสามารถแลก 5500 WETH ได้ สิ่งนี้สามารถสร้างรายได้ประมาณ 1,200 WETH

ดังนั้นกำไรของ Joe ในการดำเนินการนี้ควรเป็น:

1200+ 71.4127388 = 1271.4127388 WETH。

ชื่อเรื่องรอง

แล้วปัญหาคืออะไร?

จากขั้นตอนโดยละเอียดข้างต้น ปัญหาอยู่ที่สัญญาซื้อขายมาร์จิ้นเลเวอเรจของ bZx

ก่อนอื่น bZx ใช้ราคาของ WETH/WBTC ใน Uniswap เป็นราคาฟีด และความลึกใน Uniswap ยังไม่เพียงพอ

ประการที่สอง มาร์จิ้นเลเวอเรจในการซื้อขาย bZx ไม่ว่าจะยาวหรือสั้น ตลาดสำหรับการซื้อหรือขายก็เป็น Uniswap กล่าวอีกนัยหนึ่ง bZx เองจะมีผลกระทบต่อราคาของ Uniswap

คำลงท้าย:

คำลงท้าย:

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

จุดประสงค์ของบทความนี้เป็นเพียงเพื่อให้ผู้เข้าร่วมทั่วไปในฟิลด์ cryptocurrency มีความเข้าใจเพิ่มเติมเกี่ยวกับตรรกะของผลิตภัณฑ์ DeFi และเข้าใจง่ายที่สุดเท่าที่จะเป็นไปได้

ในเวลาเดียวกัน ฉันหวังว่าทุกคนจะเห็นว่าต้นตอของเหตุการณ์นี้คืออะไร และนักพัฒนาควรเรียนรู้จากสิ่งนี้เมื่อออกแบบผลิตภัณฑ์ DeFi อื่นๆ

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

CortexLabs หมายเหตุ 1: Flash Loan ชื่อแปลตามตัวอักษรภาษาจีนคือ Flash Loan "สินเชื่อแฟลช" เป็นวิธีการเริ่มต้นธุรกรรมหลายรายการบนแพลตฟอร์มการให้ยืม DeFi ที่แตกต่างกันภายในบล็อกเดียว นั่นคือ การให้ยืมซ้ำระหว่างสินทรัพย์และหนี้สินต่างๆ "Flash Loan" เป็นวิธีการกู้ยืมที่ไม่ต้องมีหลักประกันโดยมีเงื่อนไขว่าการออกและชำระคืนเงินกู้จะต้องเสร็จสิ้นในบล็อกเดียวกันของ Ethereum ตามความเร็วการผลิตบล็อกปัจจุบันของ Ethereum จะใช้เวลาประมาณ 13 วินาที

DeFi
ยินดีต้อนรับเข้าร่วมชุมชนทางการของ Odaily
กลุ่มสมาชิก
https://t.me/Odaily_News
กลุ่มสนทนา
https://t.me/Odaily_CryptoPunk
บัญชีทางการ
https://twitter.com/OdailyChina
กลุ่มสนทนา
https://t.me/Odaily_CryptoPunk
ค้นหา
สารบัญบทความ
คลังบทความของผู้เขียน
CortexLabs
อันดับบทความร้อน
Daily
Weekly
ดาวน์โหลดแอพ Odaily พลาเน็ตเดลี่
ให้คนบางกลุ่มเข้าใจ Web3.0 ก่อน
IOS
Android