การวิเคราะห์การโจมตีแบบ MEV สายแซนด์วิชทั้งหมด: จากการจัดลำดับไปจนถึงการแลกเปลี่ยนที่รวดเร็วในห่วงโซ่ที่อันตราย

เขียนโดย: Daii

เมื่อวันพุธที่แล้ว (12 มีนาคม) เทรดเดอร์คริปโตคนหนึ่งถูกโจมตี MEV ทำให้สูญเสียเงินไป 215,000 ดอลลาร์ในครั้งเดียว

กล่าวโดยสรุป ผู้ใช้รายนี้ตั้งใจที่จะแลกเปลี่ยนสเตบิลคอยน์ USDC มูลค่า 220,800 ดอลลาร์สหรัฐ ในสระการซื้อขาย Uniswap v3 ให้เป็น USDT มูลค่าเท่ากัน แต่กลับได้รับเพียง 5,272 USDT ทำให้ทรัพย์สินหายไปในพริบตา 215,700 ดอลลาร์สหรัฐ ภายในไม่กี่วินาที ดูภาพด้านล่าง.

ภาพด้านบนคือภาพหน้าจอของบันทึกการทำธุรกรรมในบล็อกเชน สาเหตุที่ทำให้เกิดโศกนาฏกรรมนี้คือการเผชิญกับ "การโจมตีแบบแซนด์วิช" (Sandwich Attack) ที่มีชื่อเสียงในโลกบล็อกเชน.

ผู้ที่เปิดเผยการโจมตี MEV ครั้งนี้ครั้งแรกคือ Michael (ดูภาพด้านบน) เขาอธิบายว่า:

บอท MEV ได้ทำการล่วงหน้าการทำธุรกรรมโดยการแลกเปลี่ยนสภาพคล่อง USDC ทั้งหมดออกไป หลังจากที่การทำธุรกรรมเสร็จสิ้น พวกเขาได้คืนสภาพคล่องกลับมา ผู้โจมตีได้ให้ทิปกับผู้สร้างบล็อก (bobTheBuilder) จำนวน 200,000 ดอลลาร์ และทำกำไรได้ 8,000 ดอลลาร์จากการทำธุรกรรมนี้.

เนื้อหาข้างต้นมีการพิมพ์ผิด โรบ็อตโจมตี MEV เปลี่ยนเป็น USDT จำนวนมาก ไม่ใช่ USDC.

อย่างไรก็ตาม หลังจากที่อ่านคำอธิบายและข่าวสารของเขาแล้ว คุณอาจยังรู้สึกงุนงงอยู่ดี เพราะมีคำศัพท์ใหม่มากมาย เช่น การโจมตีแบบแซนด์วิช (Sandwich Attack), การทำธุรกรรมก่อน (front-ran the tx), การนำสภาพคล่องกลับ (put back the liquidity), การให้ทิปนักสร้างบล็อก (tipped a block builder) เป็นต้น.

วันนี้เราจะใช้การโจมตี MEV นี้เป็นตัวอย่างรื้อกระบวนการทั้งหมดและนําคุณผ่านโลกมืดของ MEV

ก่อนอื่นเราต้องอธิบายว่า MEV คืออะไร

  1. MEV คืออะไร?

MEV เริ่มต้นจากการที่เรียกว่า มูลค่าเอ็กซ์แทรคแทเบิลของคนขุดแร่ (Miner Extractable Value) หมายถึงกำไรเพิ่มเติมที่คนขุดแร่สามารถได้รับจากการจัดเรียงใหม่ แทรก หรือยกเลิกการทำธุรกรรมในบล็อกเชน ซึ่งการดำเนินการดังกล่าวอาจทำให้ผู้ใช้ทั่วไปต้องจ่ายค่าใช้จ่ายที่สูงขึ้น หรือได้รับราคาธุรกรรมที่ไม่เอื้ออำนวย.

เมื่อเครือข่ายบล็อกเชนเช่น Ethereum ย้ายจากฉันทามติ Proof-of-Work (PoW) เป็นฉันทามติ Proof-of-Stake (PoS) อํานาจในการควบคุมการสั่งซื้อธุรกรรมจะเปลี่ยนจากนักขุดเป็นผู้ตรวจสอบความถูกต้อง ด้วยเหตุนี้คําศัพท์จึงได้พัฒนาจาก "Miner Extractable Value" เป็น "Maximal Extractable Value"

แม้ว่าชื่อจะเปลี่ยนไป แต่แนวคิดหลักในการดึงคุณค่าโดยการจัดการลำดับการทำธุรกรรมก็ยังคงเหมือนเดิม

เนื้อหาข้างต้นยังค่อนข้างเป็นเรื่องเฉพาะ คุณเพียงแค่ต้องจำไว้ว่า: MEV มีอยู่เพราะว่าอดีตเหมืองแร่และปัจจุบันผู้ตรวจสอบมีสิทธิ์ในการจัดลำดับธุรกรรมในหน่วยความจำ (mempool) การจัดลำดับนี้เกิดขึ้นภายในบล็อกหนึ่ง ๆ ปัจจุบัน Ethereum ใช้เวลาประมาณ 11 วินาทีในการสร้างบล็อกหนึ่ง ดังนั้นทุก ๆ 11 วินาทีจะมีการใช้อำนาจเช่นนี้เกิดขึ้น เช่นเดียวกัน การโจมตี MEV ครั้งนี้เกิดขึ้นผ่านการจัดลำดับโดยผู้ตรวจสอบ.

คลิกที่ลิงค์นี้ คุณจะเห็นเนื้อหาการทำธุรกรรมที่รวมอยู่ในบล็อกหมายเลข 22029771 ซึ่งเกี่ยวข้องกับการโจมตีในครั้งนี้ ตามภาพด้านล่าง.

โปรดทราบว่าการซื้อขายในภาพที่ 1, 2, 3 คือการโจมตี MEV ที่กล่าวถึงในตอนต้นของบทความนี้ ซึ่งลำดับนี้เป็นการจัดเรียงโดยผู้ตรวจสอบ (bobTheBuilder) ทำไมถึงทำได้แบบนี้?

  1. หลักการของ MEV

เพื่อที่จะเข้าใจหลักการทำงานของ MEV เราจำเป็นต้องเข้าใจก่อนว่าบล็อกเชนทำการบันทึกและอัปเดตข้อมูลอย่างไร

2.1 กลไกการอัปเดตสถานะบล็อกเชน

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

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

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

2.2 ผู้ตรวจสอบตัดสินใจเรียงลำดับธุรกรรม

เมื่อผู้ใช้ทำการทำธุรกรรมในเครือข่ายบล็อกเชน เช่น ธุรกรรมนี้ที่แปลง USDC เป็น USDT ผ่าน Uniswap ธุรกรรมจะถูกกระจายไปยังโหนดในเครือข่ายก่อน หลังจากการตรวจสอบเบื้องต้น ธุรกรรมนี้จะเข้าสู่พื้นที่ที่เรียกว่า "เมมพูล" (mempool) เมมพูลเปรียบเสมือนพื้นที่รอซึ่งธุรกรรมในนั้นยังไม่ได้รับการยืนยันและเพิ่มลงในบล็อกถัดไปของบล็อกเชน.

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

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

ความสามารถนี้ทำให้ผู้ตรวจสอบสามารถจัดการการทำธุรกรรมเฉพาะได้ก่อน, เลื่อนหรือยกเว้นการทำธุรกรรมอื่น ๆ, หรือแม้แต่แทรกการทำธุรกรรมของตนเองเพื่อเพิ่มผลกำไรสูงสุด.

ลำดับการทำธุรกรรมครั้งนี้ก็สำคัญเช่นกัน หากมีข้อผิดพลาดเล็กน้อยก็จะไม่สามารถโจมตีได้สำเร็จ.

2.3 การจัดเรียงการทำธุรกรรมของการโจมตี MEV ครั้งนี้

เรามาทำความเข้าใจเบื้องต้นเกี่ยวกับการโจมตี MEV ที่เกี่ยวข้องกับการทำธุรกรรม 3 รายการนี้กันก่อน:

การทำธุรกรรม 1 (ธุรกรรมแรกของผู้โจมตี): ดำเนินการก่อนธุรกรรมของเหยื่อ ธุรกรรมนี้มักมีจุดประสงค์เพื่อเพิ่มราคาของโทเคนที่เหยื่อต้องการทำธุรกรรม.

การทำธุรกรรม 2 (ธุรกรรมของเหยื่อ): ดำเนินการหลังจากการทำธุรกรรมครั้งแรกของผู้โจมตี เนื่องจากการดำเนินการก่อนหน้านี้ของผู้โจมตี ราคาที่อยู่ในพูลธุรกรรมในขณะนี้ไม่เป็นประโยชน์ต่อเหยื่อ เขาจำเป็นต้องจ่าย USDC มากขึ้นเพื่อแลกกับ USDT ที่มีค่าเท่ากัน หรือเขาอาจจะแลกได้เพียง USDT ที่น้อยลงเท่านั้น.

การทำธุรกรรม 3 (ธุรกรรมที่สองของผู้โจมตี): ดำเนินการหลังจากธุรกรรมของเหยื่อ ธุรกรรมนี้มักมีเป้าหมายเพื่อใช้ประโยชน์จากความผันผวนของราคาใหม่ที่เกิดจากธุรกรรมของเหยื่อเพื่อทำกำไร.

ในครั้งนี้ผู้ตรวจสอบการโจมตี MEV คือ bob-The-Builder.eth เขาเป็นผู้รับผิดชอบในการจัดเรียงธุรกรรมเป็นลำดับ 1, 2, 3 อย่างแน่นอน bobTheBuilder ไม่ได้ทำงานฟรีๆ เพราะเขาได้เข้าร่วมในการจัดเรียงครั้งนี้และได้รับรายได้มากกว่า 100 ETH ในขณะที่ผู้ที่เริ่มการโจมตี MEV มีรายได้เพียง 8000 ดอลลาร์เท่านั้น รายได้ของพวกเขามาจากธุรกรรมที่สองของเหยื่อ.

ในประโยคเดียว ผู้โจมตี (MEV bot) และผู้ตรวจสอบ (bobTheBuilder) ได้ร่วมมือกันทำให้เหยื่อของการทำธุรกรรมครั้งที่สองสูญเสียเงิน 215,000 ดอลลาร์ โดยผู้โจมตีได้รับ 8,000 ดอลลาร์ และผู้ตรวจสอบได้รับ 200,000 ดอลลาร์ (มากกว่า 100 ETH)

พวกเขาใช้วิธีการโจมตีที่มีชื่อที่ชัดเจนว่า "การโจมตีแบบแซนด์วิช" ด้านล่างนี้เราจะอธิบายทีละธุรกรรมเพื่อให้คุณเข้าใจอย่างถ่องแท้ว่า การโจมตีแบบแซนด์วิชที่ซับซ้อนของ MEV เป็นอย่างไร?

  1. การวิเคราะห์การโจมตีแบบแซนด์วิชทั้งหมด

เหตุผลที่เรียกว่าการโจมตีแบบแซนวิช (Sandwich Attack) ก็เพราะว่าธุรกรรมของผู้โจมตีสองรายการ (ธุรกรรม 1 และธุรกรรม 3) ถูกวางไว้ก่อนและหลังธุรกรรมของเหยื่อ (ธุรกรรม 2) ทำให้ลำดับธุรกรรมทั้งหมดมีโครงสร้างคล้ายแซนวิช (ดูที่ภาพด้านบน)

การทำธุรกรรม 1 และการทำธุรกรรม 3 มีหน้าที่ที่แตกต่างกัน กล่าวโดยสรุป การทำธุรกรรม 1 รับผิดชอบในการก่ออาชญากรรม ในขณะที่การทำธุรกรรม 3 รับผิดชอบในการเก็บเกี่ยวผลประโยชน์จากการปล้น โดยเฉพาะอย่างยิ่งกระบวนการทั้งหมดเป็นดังนี้:

3.1 การซื้อขาย 1 ซึ่งรับผิดชอบในการเพิ่มราคา USDT

คลิกที่ลิงค์การทำธุรกรรมหมายเลข 1 ในภาพด้านบน คุณจะเห็นรายละเอียดของการทำธุรกรรมหมายเลข 1 ที่ผู้โจมตีได้เพิ่มราคาของ USDT อย่างชัดเจน โดยใช้ USDC จำนวน 1865 หมื่น เพื่อแลกเปลี่ยน USDT ทั้งหมดที่มีอยู่ 1758 หมื่น ดูภาพด้านล่าง.

ในขณะนี้ สระสภาพคล่องที่เหลืออยู่มี USDC จำนวนมากและ USDT จำนวนเล็กน้อย หากอิงจากรายงานข่าวที่กล่าวว่า ก่อนการโจมตี สภาพคล่องของ Uniswap มี USDC ประมาณ 19.8 ล้านและ USDT ดังนั้นหลังจากการทำธุรกรรม 1 เสร็จสิ้น จะเหลือ USDT เพียง 2.22 ล้าน ( = 1980 - 1758 ) ขณะที่ยอด USDC จะเพิ่มขึ้นเป็นประมาณ 38.45 ล้าน ( = 1980 + 1865 ) .

ในขณะนี้อัตราการแลกเปลี่ยนระหว่าง USDC และ USDT ในสระนี้ไม่ได้อยู่ที่ 1:1 อีกต่อไป แต่เป็น 1:17 ซึ่งหมายความว่าตอนนี้ต้องใช้ USDC 17 ตัวเพื่อแลกเป็น USDT 1 ตัว อย่างไรก็ตาม อัตรานี้เป็นเพียงประมาณการ เนื่องจากสระนี้เป็น V3 และสภาพคล่องภายในไม่ถูกแจกจ่ายอย่างสม่ำเสมอ.

ยังมีอีกจุดหนึ่งที่ฉันต้องบอกคุณ จริงๆ แล้วผู้โจมตีไม่ได้ใช้ USDC จำนวน 18,650,000 ดอลลาร์ในครั้งเดียว แต่ใช้จริงๆ เพียง 1,090,000 ดอลลาร์ ซึ่งยังไม่ถึง 6% เขาทำได้อย่างไร? เมื่อเราพูดถึงการโจมตีเสร็จแล้วจะมาอธิบายรายละเอียดอีกครั้ง.

3.2 การทำธุรกรรม 2, ดำเนินการแลกเปลี่ยน 220,000 USDC เป็น USDT

คลิกที่ลิงค์การซื้อขาย 2 ในภาพด้านบนเพื่อดูภาพด้านล่างนี้.

ตามภาพด้านบน การทำธุรกรรม 2 ของเหยื่อได้รับผลกระทบจากการทำธุรกรรม 1 ทำให้ 220,000 USDC ได้รับเพียง 5,272 USDT สูญเสีย 170,000 USDT โดยไม่รู้ตัว ทำไมถึงบอกว่าไม่รู้ตัว? เพราะถ้าเหยื่อทำธุรกรรมผ่าน Uniswap เมื่อเขาส่งธุรกรรม เขาจะเห็นหน้าจอดังต่อไปนี้.

จากภาพด้านบน คุณจะเห็นว่าผู้เสียหายควรได้รับการรับประกันอย่างน้อย 220,000 บาท ผู้เสียหายได้รับเพียง 5,000 กว่า USDT เท่านั้น เนื่องจากเกิดการลื่นไถลอย่างมาก ซึ่งมากกว่า 90% อย่างไรก็ตาม Uniswap มีการจำกัดการลื่นไถลสูงสุดไว้ที่ 5.5% ตามที่แสดงในภาพด้านล่าง.

หมายความว่า หากเหยื่อทำการซื้อขายผ่านหน้าเว็บ Uniswap เขาจะต้องได้รับอย่างน้อย 208381 USDT (= 220510 * 94.5%) คุณอาจสงสัยว่าทำไมบันทึกในบล็อกเชนด้านบนถึงแสดงว่าการทำธุรกรรมนี้เกิดขึ้นใน "Uniswap V3"

เนื่องจากการทำธุรกรรมในบล็อกเชนส่วนหน้ากับส่วนหลังจะแยกจากกัน ส่วนนั้นที่กล่าวถึง "Uniswap V3" หมายถึงพูลทุน USDC-USDT ของ Uniswap ซึ่งพูลนี้เป็นสาธารณะ และส่วนหน้าของการซื้อขายใด ๆ ก็สามารถทำการซื้อขายผ่านพูลนี้ได้

ก็เพราะเหตุนี้ มีคนสงสัยว่าเหยื่อไม่ธรรมดา ไม่ใช่คนทั่วไป มิฉะนั้นจะไม่เกิดการลื่นไถลขนาดนี้ อาจจะใช้การโจมตี MEV ในการฟอกเงิน เรื่องนี้เราจะพูดถึงในภายหลัง.

3.3 การทำธุรกรรม 3, เก็บเกี่ยว + แบ่งปัน

คลิกที่ลิงค์เพื่อดูรายละเอียดการทำธุรกรรมที่ 3 ตามที่แสดงในภาพด้านบน เราจะพูดถึงการทำธุรกรรม A, B, และ C แยกกัน

การทำธุรกรรม A ฟื้นฟูสภาพคล่องในสระให้เป็นปกติ โดยใช้ 17.32 ล้าน USDT แลกคืนเป็นการทำธุรกรรม 18.6 ล้าน USDC;

การทำธุรกรรม B, การเตรียมการแบ่งปันผลกำไร, แลกเปลี่ยนรายได้บางส่วน——20.4 หมื่น USDC เป็น 105 ETH;

ทำธุรกรรม C, แบ่งปันผลกำไร, จ่าย 100.558 ETH ให้กับผู้ตรวจสอบ bob-The-Builder.eth.

ณ จุดนี้ การโจมตีแบบแซนด์วิชสิ้นสุดลงแล้ว。

ตอนนี้มาตอบคำถามที่สำคัญที่กล่าวถึงข้างต้น: ผู้โจมตีใช้ USDC จำนวน 1.09 ล้านเหรียญในการโจมตีมูลค่า 18 ล้านเหรียญได้อย่างไร?

  1. ผู้โจมตีได้ดำเนินการโจมตีพูลจำนวน 18 ล้าน USDC ได้อย่างไร

สาเหตุที่ผู้โจมตีสามารถใช้เงินต้นเพียง 1.09 ล้าน USDC เพื่อดำเนินการโจมตีในระดับ 18 ล้านดอลลาร์สหรัฐได้ก็เพราะว่ามีกลไกพิเศษและมหัศจรรย์ในโลกบล็อกเชน นั่นคือการแลกเปลี่ยนแบบฟลัชของ Uniswap V3 (Flash Swap).

4.1 ฟลัชสวอป (Flash Swap) คืออะไร?

กล่าวได้ง่ายๆ ว่า:

การแลกเปลี่ยนแบบเร่งด่วนอนุญาตให้ผู้ใช้ถอนสินทรัพย์จากพูล Uniswap ก่อน แล้วจึงใช้สินทรัพย์อื่น (หรือสินทรัพย์เดียวกันบวกค่าธรรมเนียม) เพื่อชำระคืนในธุรกรรมเดียวกัน.

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

การกู้ยืมที่ไม่มีความเสี่ยง: Uniswap อนุญาตให้ผู้ใช้สามารถถอนเงินจากสระชั่วคราวโดยไม่มีหลักประกัน (คล้ายกับการกู้ยืม) แต่ต้องชำระคืนทันทีเมื่อการทำธุรกรรมสิ้นสุดลง.

เอกลักษณ์ (Atomicity): การดำเนินการทั้งหมดจะต้องเป็นเอกลักษณ์ ต้องสำเร็จอย่างสมบูรณ์ (เงินคืน) หรือจะล้มเหลวโดยสิ้นเชิง (ย้อนกลับการทำธุรกรรม).

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

4.2 การแลกเปลี่ยนฟ้าผ่า ช่วยได้อย่างไร?

ด้านล่างนี้เราจะดูภาพและพูดคุยกันทีละขั้นตอนเพื่อทำความเข้าใจว่าการแลกเปลี่ยนฟ้าผ่าครั้งนี้เกิดขึ้นได้อย่างไร ดูภาพด้านล่าง.

F1 ผู้โจมตีได้ยืม 1.09 ล้าน USDC จาก AAVE โดยใช้ 701 WETH ของตนเอง;

F2 ผู้โจมตีเริ่มคำขอแลกเปลี่ยนแบบทันที โดยถอน USDT จำนวน 17,580,000 จากสระน้ำ Uniswap (ในขณะนั้นไม่จำเป็นต้องชำระเงินล่วงหน้า) บัญชีผู้โจมตีเพิ่มขึ้นชั่วคราว 17,580,000 USDT;

F3 ผู้โจมตีได้อย่างรวดเร็วใส่ USDT จำนวน 17.58 ล้านเหรียญเข้าสู่ Curve Pool และแลกกลับเป็น USDC จำนวน 17.55 ล้านเหรียญ บัญชีของผู้โจมตี USDT ลดลง 17.58 ล้านเหรียญ และ USDC เพิ่มขึ้น 17.55 ล้านเหรียญ จากภาพด้านล่างคุณจะเห็นว่าผู้โจมตีเลือกใช้ Curve เพราะที่นี่มีสภาพคล่องเพียงพอ โดยมี USDT มากกว่า 70.54 ล้านเหรียญ และ USDC มี 50.71 ล้านเหรียญ ซึ่งมีค่าความลื่นไหลที่ค่อนข้างต่ำ.

F4 ผู้โจมตีได้ใช้ USDC จำนวน 17.55 ล้านที่แลกมาจาก Curve บวกกับ USDC จำนวน 1.09 ล้านที่เตรียมไว้เอง (ที่ได้จากการกู้ยืม Aave) รวมเป็น 18.64 ล้าน USDC คืนให้กับ Uniswap ในครั้งเดียว ซึ่งการแลกเปลี่ยนแบบ Flash ก็เสร็จสิ้นแล้ว;

หลังจากการทำธุรกรรมนี้ (ธุรกรรม 1) ยอดเงินในบัญชีของผู้โจมตีลดลง 1.09 ล้าน USDC เนื่องจากจาก 18.64 ล้าน USDC ที่คืนให้กับ Uniswap มีเพียง 17.55 ล้าน USDC ที่แลกมาจาก Curve ส่วนที่เหลืออีก 1.09 ล้าน USDC เป็นเงินทุนของผู้โจมตีเอง.

คุณน่าจะได้พบว่า การทำธุรกรรมนี้ทำให้ผู้โจมตีสูญเสีย 1.09 ล้าน อย่างไรก็ตาม ในธุรกรรมที่ 3 ต่อมา ซึ่งใช้วิธีการแลกเปลี่ยนแบบฟ้าผ่า ไม่เพียงแต่ทำให้ได้เงินคืน 1.09 ล้าน USDC แต่ยังทำกำไรได้มากกว่า 200,000 ด้วย.

เราจะวิเคราะห์ข้อมูลของการซื้อขาย 3 ทีละขั้นตอนด้านล่างนี้

K1 ผู้โจมตี ถอน USDC 18.6 ล้านเหรียญจาก Uniswap ด้วยการแลกเปลี่ยนแบบฟ้าผ่า;

K2 ผู้โจมตีได้ใช้ส่วนหนึ่งของ USDC จำนวน 17,300,000 ที่เพิ่งถอนจาก Uniswap เพื่อแลกกลับเป็น USDT จำนวน 17,320,000;

K1 ผู้โจมตีได้คืน USDT จำนวน 17.32 ล้านที่แลกกลับจาก Curve ให้กับ Uniswap การแลกเปลี่ยนแบบทันทีเสร็จสมบูรณ์ สิ่งที่คุณต้องระวังคือ ผู้โจมตีใช้ K2 ใช้เงินเพียง 17.30 ล้าน USDC เพื่อรับ USDT จำนวน 17.32 ล้าน ในจำนวน 1.30 ล้าน (= 1,860 - 1,730) USDC ที่เหลือ มีเงินทุนของตนเอง 1.09 ล้าน ส่วนที่เหลืออีก 210,000 USDC คือกำไรจากการโจมตีในครั้งนี้.

K3 ผู้โจมตี คืนเงินต้นกลับไปยัง AAVE โดยนำ WETH ของตัวเองไป 701 และแลก USDC จำนวน 200,000 เป็น 105 ETH โดยส่ง ETH จำนวน 100.558 ให้กับผู้ตรวจสอบเป็นค่าทิป (ประมาณ 200,000 ดอลลาร์) และเก็บกำไรไว้ไม่ถึง 10,000 ดอลลาร์.

คุณอาจแปลกใจว่าทำไมผู้โจมตีจึงยินดีที่จะมอบผลกำไรสูงถึง 200,000 ดอลลาร์ให้กับผู้ตรวจสอบ?

4.3 ทำไมถึงต้องให้ "ทิป" 200,000 ดอลลาร์?

จริงๆ แล้ว นี่ไม่ใช่ความใจดี แต่เป็นเงื่อนไขที่จำเป็นสำหรับการโจมตี MEV ประเภทการโจมตีแบบแซนด์วิชที่ประสบความสำเร็จ:

แกนหลักของการโจมตีที่ประสบความสำเร็จคือการควบคุมลำดับการทำธุรกรรมอย่างแม่นยำ โดยผู้ควบคุมลำดับการทำธุรกรรมก็คือผู้ตรวจสอบ (bobTheBuilder).

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

ดังนั้น ผู้โจมตีจึงยอมเสียกำไรส่วนใหญ่เพื่อให้แน่ใจว่าการโจมตีประสบความสำเร็จ และเก็บกำไรบางส่วนไว้ให้กับตนเอง.

ต้องระบุเป็นพิเศษว่า การโจมตี MEV ก็มีต้นทุนเช่นกัน ในการแลกเปลี่ยนแบบฟลัชของ Uniswap ก็มีต้นทุน ในการซื้อขายของ Curve ก็มีต้นทุน เพียงแต่เนื่องจากอัตราค่าธรรมเนียมค่อนข้างต่ำประมาณ 0.01~0.05% จึงอาจไม่ถือว่ามีค่าเมื่อเปรียบเทียบกับสิ่งที่ได้จากการโจมตี.

สุดท้ายขอเตือนอีกครั้งว่า การป้องกันการโจมตี MEV นั้นง่ายมาก คุณเพียงแค่ต้อง: ตั้งค่าความอดทนต่อการลื่นไถลไม่ให้เกิน 1%; แบ่งการซื้อขายจำนวนมากออกเป็นหลายครั้ง ดังนั้น คุณจึงไม่จำเป็นต้องละทิ้งการซื้อขายใน DEX (การแลกเปลี่ยนแบบกระจายศูนย์) เนื่องจากกลัวการโจมตีอีกต่อไป.

บทสรุป: สัญญาณและแรงบันดาลใจในป่ามืด

เหตุการณ์การโจมตี MEV มูลค่า 215,000 ดอลลาร์นี้ ไม่ต้องสงสัยเลยว่าเป็นการแสดงออกที่โหดร้ายอีกครั้งของกฎ "ป่าแห่งความมืด" ในโลกบล็อกเชน มันเปิดเผยอย่างชัดเจนถึงเกมซับซ้อนในการใช้ช่องโหว่ของกลไกเพื่อแสวงหาผลประโยชน์ในสภาพแวดล้อมที่กระจายอำนาจและไม่ต้องขออนุญาต

จากมุมมองที่สูงขึ้น การเกิดขึ้นของ MEV เป็นการแสดงให้เห็นถึงเอฟเฟกต์ดาบสองคมของความโปร่งใสและความสามารถในการเขียนโปรแกรมของบล็อกเชน.

ในด้านหนึ่ง บันทึกการทำธุรกรรมทั้งหมดสามารถตรวจสอบได้อย่างเปิดเผย ทำให้สามารถติดตามและวิเคราะห์พฤติกรรมการโจมตีได้

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

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

เข้าใจ MEV รู้จักความเสี่ยงของมัน จึงจะสามารถเดินเรือในโลกดิจิทัลที่เต็มไปด้วยโอกาสแต่ก็แฝงไปด้วยอันตรายได้ดียิ่งขึ้น จำไว้ว่าใน "ป่าอันมืดมิด" ของบล็อกเชน มีแต่การเคารพกฎและการพัฒนาความเข้าใจเท่านั้นที่จะช่วยให้หลีกเลี่ยงการเป็นเหยื่อรายต่อไปที่ถูกกลืนกิน.

นี่คือผลลัพธ์ที่ฉันต้องการบรรลุผ่านบทความนี้เช่นกัน.

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