การล่าสัตว์ในป่าอันมืดมิดของ Ethereum: หุ่นยนต์เก็งกำไรถูกเก็งกำไร 130 ETH
หมายเหตุบรรณาธิการ: บทความนี้มาจากข้อมูล Babbitt (รหัส: bitcoin8btc)หมายเหตุบรรณาธิการ: บทความนี้มาจาก
ข้อมูล Babbitt (รหัส: bitcoin8btc)sandwich tradingข้อมูล Babbitt (รหัส: bitcoin8btc)

ผู้เขียน: CodeForcer เผยแพร่โดยได้รับอนุญาต
หมายเหตุ: สำหรับธุรกรรมการเก็งกำไรแบบแซนด์วิช Ethereum ที่เกิดขึ้นบ่อยครั้งล่าสุด (
) ผู้พัฒนา CodeForcer ได้สร้างโทเค็นล่อ ERC20 ที่เรียกว่า "Salmonella" (Salmonella) ด้วยวิธีนี้ ทำให้ได้รับผลกำไร 130 ETH ใน 24 ชั่วโมง และยังบอกเราเกี่ยวกับความมืดของเครือข่าย Ethereum Mempool การเผชิญหน้าของป่า .
นี่คือสิ่งที่ CodeForcer เขียน:
บรรดาผู้ที่ติดตามการดำเนินการ Ethereum mempool ได้สังเกตเห็นการซื้อขายแบบแซนวิชที่เพิ่มขึ้นอย่างกะทันหัน และสำหรับผู้อ่านที่ไม่เข้าใจแนวคิด การซื้อขายแบบแซนวิชเป็นกลยุทธ์ที่น่าสนใจมากซึ่งการทำธุรกรรมจะทำก่อนและหลังการทำธุรกรรมของเหยื่อ และ Arbitrage ทำได้โดยการเลื่อนหลุดที่เกิดขึ้นFlashBotsตัวอย่างเช่น เมื่อมีคนทำธุรกรรมสินทรัพย์ นักอนุญาโตตุลาการจะซื้อสินทรัพย์ตัวเดียวกันก่อนหน้าเขา (เพิ่มราคาสกุลเงินเทียม) จากนั้นรอจนกว่าอีกฝ่ายจะซื้อได้สำเร็จ และนักอนุญาโตตุลาการก็สามารถทำกำไรได้หลังจากขายมัน
กลยุทธ์นี้มีความเสี่ยงมากในอดีตเนื่องจากไม่มีการรับประกันว่าการทำธุรกรรมจะประสบความสำเร็จบน Ethereum mempool เป็นสถานที่ที่น่าสนใจมากแต่ไม่ใช่สถานที่ที่ปลอดภัย
อย่างไรก็ตามด้วย
รอการเพิ่มขึ้นของบริการ MEV (ค่าขุดที่แยกได้) ซึ่งอนุญาตให้ผู้ค้าสร้าง "ชุดแซนวิช" (ชุดแซนวิช) ซึ่งมีการดำเนินการ 3 รายการทั้งหมดหรือไม่มีการดำเนินการใดเลย ในเวลาเดียวกัน มีกิจกรรมเพิ่มขึ้นในทีมธุรกรรมการขุดที่รวม "ถุงแซนวิช" เข้ากับบล็อกที่ขุดได้โดยตรงSalmonellaการผสมผสานของนวัตกรรมทั้งสองนี้ทำให้ผู้ค้าแซนวิชมีส่วนร่วมในกิจกรรมการเก็งกำไรที่ "ปราศจากความเสี่ยง" ซึ่งทำให้ผู้คนจำนวนมากรู้สึกตื่นเต้น
แต่ในความเป็นจริง "ไร้ความเสี่ยง" ไม่ใช่ไร้ความเสี่ยงจริงๆ
เพื่อแสดงให้เห็นถึงความเสี่ยงของการเล่นเกมในเมมพูล ฉันได้สาธิตสายพันธุ์ใหม่ที่เรียกว่า "ซัลโมเนลลา" (
) ซึ่งเกี่ยวข้องกับการใช้การตั้งค่า front-running ทั่วไป แม้ว่าจุดประสงค์ของการซื้อขายแซนวิชคือการทำกำไรจากการคลาดเคลื่อนที่เกิดจากการซื้อขายของผู้อื่น จุดประสงค์ของกลยุทธ์นี้คือการลงโทษผู้แสวงประโยชน์
การวิเคราะห์บล็อกเชนอย่างรวดเร็วเผยให้เห็นว่ากลุ่มที่ชื่อว่า "Ethermine" กำลังดำเนินธุรกรรมแซนวิชส่วนใหญ่ในตลาด และหลังจากระบุเป้าหมายเริ่มต้นแล้ว ฉันก็เริ่มวิเคราะห์การตั้งค่าของพวกเขา

ในขณะที่เขียน การตั้งค่าของ Ethermine นั้นค่อนข้างพื้นฐาน อาศัยเราเตอร์ Uniswap เพื่อดำเนินการธุรกรรม และประวัติการทำธุรกรรมแสดงให้เห็นว่าธุรกรรมส่วนใหญ่ของ Ethermine เป็นธุรกรรมที่ย้อนกลับ และสัญญาอัจฉริยะของตัวมันเองยังเก็บโทเค็นของธุรกรรมที่ล้มเหลวต่างๆ ด้วยสิ่งนี้ใน ฉันตั้งใจจะสร้างสัญญา Salmonella ของฉัน
สมมติฐานของสัญญา Salmonella นั้นง่ายมาก มันเป็นโทเค็น ERC20 ปกติที่ทำงานเหมือนกับโทเค็น ERC20 อื่นๆ ในกรณีการใช้งานปกติ อย่างไรก็ตาม มีตรรกะพิเศษบางอย่างในการตรวจจับเมื่อบุคคลอื่นที่ไม่ใช่เจ้าของที่ระบุกำลังทำธุรกรรม และในกรณีดังกล่าว จะส่งคืนเพียง 10% ของจำนวนเงินที่ระบุ
ต่อไปนี้คือฟังก์ชันการถ่ายโอน "พิษ":
ฉันปรับใช้สัญญา Salmonella จากนั้นตั้งค่ากลุ่ม Uniswap อย่างง่ายที่มี Salmonella และ Ethereum จากนั้นฉันก็จำลองการคำนวณการตรวจจับการซื้อขายแซนวิชโดยใช้การค้นหาแบบไบนารี สร้างชุดของการซื้อขายล่อที่ Ethermine และผู้ค้าแซนวิชรายอื่น ๆ จะพิจารณาว่าเป็นโอกาสที่น่าสนใจ
ในท้ายที่สุด ฉันได้เขียนสถาปัตยกรรมการดำเนินการที่ช่วยให้ฉันสามารถยกเลิกธุรกรรมได้อย่างรวดเร็ว เปลี่ยนแปลงราคาน้ำมัน และรีเซ็ตสถานะของ Uniswap pools ที่ดักจับ
หลังจากเอสเปรสโซ่สองสามแก้ว ฉันก็เริ่มทำงาน ส่งธุรกรรมล่อออกไปหลายชุด ตั้งราคาให้ต่ำกว่าก๊าซในตลาดอย่างระมัดระวังเพื่อเก็บธุรกรรมไว้ใน mempool แต่ยกเลิกหากราคาเริ่มลดลง ตกลง
ภายในเวลาไม่กี่ชั่วโมง ฉันพบเป้าหมายแรกและปล้นเงิน 68 ETH จากบอทของพวกเขา และอีกไม่กี่ชั่วโมงต่อมา ฉันก็รับเงินอีก 35 ETH จากสัญญาของพวกเขา
หลังจากคืนหนึ่ง ฉันเรียกดูสัญญา Salmonella ของฉันและพบว่าการทดลองของฉันทำให้สัญญาการซื้อขายแซนด์วิชอีก 17 สัญญาว่างเปล่า แน่นอนว่าจำนวนเงินนั้นน้อยกว่า Ethermine มาก


