باختصار، كان هذا المستخدم يرغب في تحويل عملة USDC المستقرة بقيمة 220,800 دولار إلى ما يعادلها من عملة USDT في بركة التداول Uniswap v3، لكنه حصل فقط على 5,272 USDT، حيث تبخرت أصوله في بضع ثوانٍ بمقدار 215,700 دولار، انظر الصورة أدناه.
أول من كشف عن هجوم MEV هذا هو مايكل (انظر الصورة أعلاه)، حيث شرح قائلاً:
قام بوت MEV بتنفيذ الصفقة قبل الآخرين عن طريق سحب جميع سيولة USDC. بعد تنفيذ الصفقة، أعادوا السيولة. المهاجم أعطى باني الكتل (bobTheBuilder) مبلغ 200 ألف دولار وحقق ربحًا قدره 8 آلاف دولار من هذه الصفقة.
ترجمة: يقوم روبوت 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)، وتشير إلى الأرباح الإضافية التي يمكن أن يحصل عليها المعدنون من خلال إعادة ترتيب أو إدراج أو استبعاد المعاملات في كتلة البلوكتشين. يمكن أن تؤدي هذه العمليات إلى تكبد المستخدمين العاديين تكاليف أعلى، أو الحصول على أسعار معاملات أقل فائدة.
مع تحول شبكات البلوكشين مثل إيثيريوم من آلية توافق إثبات العمل (Proof-of-Work، PoW) إلى آلية توافق إثبات الحصة (Proof-of-Stake، PoS)، انتقلت سلطة التحكم في ترتيب المعاملات من المعدنين إلى المدققين. وبالتالي، تطور المصطلح أيضًا من "قيمة قابلة للاستخراج من المعدنين" (Miner Extractable Value) إلى "قيمة قابلة للاستخراج القصوى" (Maximal Extractable Value).
على الرغم من تغير الاسم، إلا أن المفهوم الأساسي لاستخراج القيمة من خلال التلاعب في ترتيب المعاملات لا يزال كما هو.
المحتوى أعلاه لا يزال احترافيًا بعض الشيء، عليك فقط أن تتذكر: السبب وراء وجود MEV هو أن عمال المناجم السابقين، والتحقق الحاليين لديهم حق في ترتيب المعاملات في ذاكرة التجميع (mempool). يحدث هذا الترتيب داخل كتلة واحدة، والآن يتم إنتاج كتلة في الإيثريوم تقريبًا كل 11 ثانية، مما يعني أنه سيكون هناك ممارسة لهذا الحق كل 11 ثانية. وبالمثل، فإن هجوم MEV هذا تحقق أيضًا من خلال ترتيب المدققين.
انقر على هذا الرابط، ستتمكن من رؤية محتوى المعاملات الموجودة في الكتلة رقم 22029771 المتعلقة بهذا الهجوم، كما هو موضح في الصورة أدناه.
يرجى ملاحظة أن المعاملات في الصور 1 و 2 و 3 هي نفس هجوم MEV الذي تم الإشارة إليه في بداية هذه المقالة، وهذا الترتيب مرتب من قبل المدقق (bobTheBuilder). لماذا يمكن أن يكون الأمر كذلك؟
2. مبدأ MEV
لفهم كيفية عمل MEV، نحتاج أولاً إلى فهم كيفية تسجيل المعلومات وتحديثها في blockchain.
2.1 آلية تحديث حالة blockchain
يمكن اعتبار blockchain دفتر حسابات متزايد باستمرار، يسجل جميع المعاملات التي تحدث. يتم تحديد حالة هذا الدفتر، مثل رصيد كل حساب وكمية الاحتياطي من الرموز المختلفة في تجمع تداول Uniswap، من خلال المعاملات السابقة.
عندما تتم إضافة كتلة جديدة إلى سلسلة الكتل، سيتم تنفيذ جميع المعاملات الموجودة في هذه الكتلة واحدة تلو الأخرى وفقًا لترتيبها في الكتلة. مع تنفيذ كل معاملة، ستتغير الحالة العالمية لسلسلة الكتل على نحو مناسب.
أي أنه ليس ترتيب الكتل هو المهم فقط، بل ترتيب المعاملات في الكتلة أيضًا مهم. كيف يتم تحديد ترتيب المعاملات في الكتلة إذن؟
2.2 يقرر المدقق ترتيب المعاملات
عندما يقوم المستخدم بإجراء معاملة على شبكة blockchain، مثل هذه المعاملة التي يتم من خلالها تحويل USDC إلى USDT عبر Uniswap، يتم أولاً بثها إلى العقد في الشبكة. بعد التحقق الأولي، ستدخل هذه المعاملة منطقة تعرف باسم "ذاكرة التجمع" (mempool). تعتبر ذاكرة التجمع منطقة انتظار، حيث لم يتم تأكيد المعاملات الموجودة فيها وإضافتها إلى الكتلة التالية في blockchain.
كان لدى عمال المناجم السابقين (في نظام إثبات العمل) ، والآن المدققين (في نظام إثبات الحصة) الحق في اختيار المعاملات من تجمع الذاكرة وتحديد ترتيب هذه المعاملات في الكتلة التالية.
ترتيب المعاملات في كتلة أمر بالغ الأهمية. قبل الانتهاء من الكتلة وإضافتها إلى blockchain ، يتم تنفيذ المعاملات في تلك الكتلة بالترتيب الذي يحدده المدقق (على سبيل المثال ، bobTheBuilder). هذا يعني أنه إذا كانت الكتلة تحتوي على معاملات متعددة تتفاعل مع نفس مجمع المعاملات ، فإن الترتيب الذي يتم به تنفيذ هذه المعاملات سيؤثر بشكل مباشر على نتيجة كل معاملة.
تتيح هذه القدرة للمتحققين معالجة معاملات معينة بشكل أولوي، وتأخير أو استبعاد معاملات أخرى، وحتى إدراج معاملاتهم الخاصة لزيادة الأرباح.
ترتيب هذه المعاملة مهم بنفس القدر، وأي خطأ بسيط يمكن أن يجعل الهجوم غير ناجح.
2.3 ترتيب معاملات هجوم MEV هذه المرة
دعونا نتعرف بسرعة على 3 معاملات مرتبطة بهجوم MEV هذا:
الصفقة 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؟
3. تحليل كامل لهجوم السندويش
يُطلق على ما يُعرف بهجوم السندويش (Sandwich Attack) لأنه يتم وضع معاملتين للمهاجم (المعاملة 1 والمعاملة 3) قبل وبعد معاملة الضحية (المعاملة 2)، مما يجعل ترتيب المعاملات بأكمله يشبه هيكل السندويش (انظر الصورة أعلاه).
الصفقات 1 و 3 تتحملان وظائف مختلفة. ببساطة، الصفقة 1 مسؤولة عن ارتكاب الجريمة، بينما الصفقة 3 مسؤولة عن توزيع الغنائم. وبشكل أكثر تحديدًا، فإن العملية بأكملها هي كما يلي:
3.1 تجارة 1 ، مسؤولة عن رفع سعر USDT
انقر على الرابط في الصورة أعلاه لصفقة رقم 1، سترى تفاصيل الصفقة رقم 1. قام المهاجم بزيادة سعر USDT بطريقة مباشرة، حيث قام بتحويل 1865 مليون USDC وأخذ جميع الـ 1758 مليون USDT الموجودة في الداخل، انظر الصورة أدناه.
في هذه اللحظة، يحتوي حوض السيولة على كمية كبيرة من USDC وكمية صغيرة من USDT. إذا كان ما ذكرته التقارير الإخبارية صحيحًا، قبل الهجوم، كان لدى Uniswap حوالي 19.8 مليون USDC وUSDT، فإن بعد تنفيذ الصفقة 1، يتبقى في الحوض فقط 2.22 مليون USDT (=1980-1758)، بينما يرتفع رصيد USDC إلى حوالي 38.45 مليون (=1980+1865).
في هذا الوقت ، تكون نسبة التبادل بين USDC و USDT في هذا المجمع بعيدة كل البعد عن 1: 1 ، ولكن 1:17 ، مما يعني أن هناك حاجة إلى 17 USDC للتبادل مقابل 1 USDT في هذا الوقت ، ولكن هذه النسبة تقريبية فقط ، لأن هذا المجمع هو V3 ، والسيولة فيه ليست موزعة بالتساوي.
هناك نقطة أخرى أود إخبارك بها. في الواقع، لم يستخدم المهاجم 18650000 USDC دفعة واحدة، بل كانت USDC المستخدمة فعليًا 1090000، أقل من 6%. كيف فعل ذلك؟ سنشرح ذلك بمزيد من التفصيل بعد أن ننتهي من الحديث عن الهجوم.
3.2 交易 2، تنفيذ 22 ألف USDC兑换 USDT
يمكنك رؤية الصورة أدناه من خلال النقر على رابط التداول 2 في الصورة أعلاه.
كما هو موضح في الصورة أعلاه، فقد حصل الضحية على 5272 USDT فقط مقابل 220,000 USDC بسبب تأثير الصفقة 1، مما أدى إلى خسارة غير ملحوظة قدرها 170,000 USDT. لماذا نقول إنها خسارة غير ملحوظة؟ لأنه إذا كان الضحية يتداول عبر Uniswap، فسيرى الواجهة التالية عند تقديم الصفقة.
من خلال الصورة أعلاه ستكتشف أن الضحية يجب أن تحصل على 220,000 كحد أدنى. السبب في أن الضحية حصلت في النهاية على أكثر من 5000 USDT هو أن هناك انزلاقًا كبيرًا، بلغ أكثر من 90%. ومع ذلك، فإن Uniswap لديها حد أقصى افتراضي للانزلاق بنسبة 5.5%، انظر الصورة أدناه.
بمعنى أنه إذا كان الضحية يتداول من خلال واجهة Uniswap، فيجب أن يحصل على الأقل على 208381 USDT (= 220510 * 94.5%). قد تتساءل لماذا تظهر هذه المعاملة في سجل blockchain أعلاه على أنها تمت في "Uniswap V3".
لأن الواجهة الأمامية والخلفية لتداول العملات الرقمية على البلوكشين مفصولة. ما تم ذكره أعلاه "Uniswap V3" يشير إلى مجمع USDC-USDT الخاص بـ Uniswap، وهذا المجمع مفتوح، ويمكن لأي واجهة أمامية للتداول استخدام هذا المجمع للتداول.
وأيضًا بسبب هذه النقطة، يشكك البعض في أن الضحية ليست بسيطة، وليست شخصًا عاديًا، وإلا لما حدثت هذه الفجوة الكبيرة، فمن المحتمل أن تكون قد استخدمت هجوم MEV في غسيل الأموال. سنتحدث عن هذا لاحقًا.
انقر على الرابط لرؤية تفاصيل الصفقة 3، كما هو موضح في الصورة أعلاه. دعونا نتحدث عن ثلاث صفقات A و B و C.
تمت استعادة السيولة في البركة إلى وضعها الطبيعي من خلال تبادل 1732 مليون USDT مقابل 1860 مليون USDC.
تجارة ب ، إعداد تقسيم الغنائم ، تحويل جزء من الأرباح - 20.4 ألف USDC إلى 105 ETH؛
تداول C ، تقاسم الغنائم ، دفع 100.558 ETH إلى المُصادق bob-The-Builder.eth.
وبذلك، انتهت هجمات السندويتش.
الآن للإجابة على سؤال مهم ذُكر أعلاه: كيف استطاع المهاجم تحقيق هجوم بقيمة 18 مليون باستخدام 1.09 مليون USDC.
4. كيف نفذ المهاجم هجوم الحوض بقيمة 18 مليون USDC
تمكن المهاجم من تنفيذ هجوم بمستوى 18 مليون دولار باستخدام رأس مال قدره 1.09 مليون USDC فقط، وذلك بفضل وجود آلية سحرية وخاصة في عالم البلوكشين - وهو تبادل الفلاش (Flash Swap) في Uniswap V3.
4.1 ما هو التبادل الفوري (Flash Swap)؟
ببساطة:
يسمح تبادل الوميض للمستخدمين بسحب الأصول من حوض Uniswap في نفس الصفقة ثم سدادها بأصل آخر (أو نفس الأصل مع رسوم).
تسمح Uniswap بهذا النوع من "أخذ البضائع ثم الدفع" طالما تم إتمام العملية بأكملها في نفس الصفقة. يرجى ملاحظة أنه يجب أن يتم إكمالها في نفس الصفقة. تم تصميم ذلك لضمان أمان منصة Uniswap نفسها:
قروض بدون مخاطر: يسمح Uniswap للمستخدمين بسحب الأموال من المجمع مؤقتًا بدون ضمانات (شبيه بالقروض)، ولكن يجب سدادها على الفور عند انتهاء المعاملة.
الذرية (Atomicity): يجب أن تكون العملية بأكملها ذرية، إما أن تنجح بالكامل (إعادة الأموال) أو تفشل تمامًا (تراجع المعاملة).
تم تصميم تبادل البرق من أجل القيام بأرباح على السلسلة بشكل أكثر فعالية، ولكن للأسف تم استغلاله من قبل مهاجمي MEV، ليصبح أداة للتلاعب في السوق.
4.2 كيف تساعد خدمة التبادل الفوري؟
دعونا نرى الصورة ونشرحها خطوة بخطوة لفهم كيفية تنفيذ تبادل البرق في هذا الهجوم ، انظر إلى الصورة أدناه.
F1 المهاجم يستعير 1.09 مليون USDC من AAVE باستخدام 701 WETH الخاص به؛
F2 المهاجم يطلق طلب تبادل فوري، أولاً يقوم بسحب 17.58 مليون USDT من بركة Uniswap (في هذه المرحلة لا حاجة للدفع مقدماً) حساب المهاجم مؤقتاً زاد بمقدار 17.58 مليون USDT؛
سرعان ما وضع مهاجم F3 17.58 مليون USDT في تجمع Curve واستبدلها مرة أخرى ب 17.55 مليون USDC ، وانخفض حساب المهاجم USDT بمقدار 17.58 مليون وزاد USDC بمقدار 17.55 مليون. كما ترون من الرسم البياني أدناه ، اختار المهاجمون Curve بسبب السيولة الوفيرة هنا ، مع أكثر من 70.54 مليون USDT و 50.71 مليون USDC ، مع انزلاق منخفض نسبيا.
ف4 يقوم المهاجم بإعادة 17.55 مليون USDC التي تم تحويلها عبر Curve، بالإضافة إلى 1.09 مليون USDC التي كان قد أعدها مسبقًا (من عائدات اقتراض Aave)، ليصبح المجموع 18.64 مليون USDC، ويتم سدادها دفعة واحدة إلى Uniswap، وتكتمل عملية التبادل الفوري؛
بعد هذه المعاملة (المعاملة 1)، انخفض رصيد حساب المهاجم بمقدار 1.09 مليون USDC، حيث أن 18.64 مليون USDC التي تم إرجاعها إلى Uniswap كانت فقط 17.55 مليون USDC تم تحويلها من Curve، بينما 1.09 مليون USDC المتبقية هي أموال خاصة بالمهاجم.
كان يجب أن تلاحظ أن هذه الصفقة سببت خسارة للمهاجمين قدرها 1.09 مليون. ولكن الصفقة الثالثة التالية، التي تمت بنفس طريقة التبادل الفوري، لم تأخذ فقط 1.09 مليون USDC مرة أخرى، بل حققت أيضًا ربحًا يزيد عن 200 ألف.
K1 المهاجم، استخدم تبادل البرق لسحب 1860 مليون USDC في Uniswap؛
K2 المهاجم، قام باستبدال 17.3 مليون USDC، الذي تم سحبه للتو من Uniswap، ب17.32 مليون USDT؛
المهاجم K1 أعاد 1732 ألف USDT الذي حصل عليه من Curve إلى Uniswap. تم الانتهاء من عملية التبادل الفوري. يجب أن تلاحظ أن المهاجم حصل على 1732 ألف USDT مقابل 1730 ألف USDC فقط من خلال K2. من الـ 130 (= 1860-1730) ألف USDC المتبقية، هناك 109 ألف من الأموال الخاصة، والباقي 21 ألف USDC هو ربح هذه الهجوم.
K3 المهاجم، أعاد رأس المال إلى AAVE، وأخذ 701 WETH لنفسه، في نفس الوقت قام بتحويل 200,000 USDC إلى 105 ETH، وأرسل من بينها 100.558 ETH إلى المدقق كإكرامية (حوالي 200,000 دولار أمريكي)، واحتفظ لنفسه بأقل من 10,000 دولار من الأرباح.
قد تتفاجأ لماذا يكون المهاجمون مستعدين للتخلي عن أرباح تصل إلى 200,000 دولار للمتحققين؟
4.3 لماذا يجب إعطاء "إكرامية" بقيمة 200,000 دولار؟
في الحقيقة، هذه ليست كرمًا، بل هي شرط ضروري لنجاح هجوم MEV من نوع هجوم السندويتش:
إن جوهر النجاح في الهجمات هو التحكم الدقيق في ترتيب المعاملات، ومن يتحكم في ترتيب المعاملات هو المصدق (bobTheBuilder).
لا تساعد المدققون المهاجمين فقط في ضمان أن معاملات الضحية تقع بين معاملات الهجوم، بل الأهم من ذلك أن المدققين يمكنهم ضمان عدم تمكن الروبوتات المتنافسة على القيمة المضافة من التدخل أو إعاقة إتمام الهجوم بسلاسة.
لذلك، يفضل المهاجم التضحية بأغلب الأرباح لضمان نجاح الهجوم، مع الاحتفاظ ببعض الأرباح لنفسه.
يجب الإشارة إلى أن هجمات MEV لها أيضًا تكاليف، فهناك تكاليف في تبادل Uniswap الفوري، وهناك تكاليف في تداول Curve، لكن بسبب انخفاض الرسوم، والتي تبلغ حوالي 0.01~0.05٪، فإنها ليست ذات أهمية مقارنة بالأرباح الناتجة عن الهجمات.
أخيرًا، أود أن أذكرك بأن الدفاع ضد هجمات MEV بسيط جدًا، كل ما عليك فعله هو: ضبط مستوى تحمل الانزلاق، ويجب ألا يتجاوز 1٪؛ تنفيذ الصفقات الكبيرة على عدة دفعات. لذا، ليس عليك أن تتجنب التداول في DEX (البورصات اللامركزية) بسبب ذلك.
الخاتمة: التحذيرات والدروس من الغابة المظلمة
تعتبر هذه الحادثة التي بلغت قيمتها 215,000 دولار من هجمات MEV بلا شك تجسيدًا آخر قاسيًا لقانون "الغابة المظلمة" في عالم blockchain. إنها تكشف بوضوح عن الصراع المعقد الذي يختبئ فيه الاستغلال لتحقيق المكاسب من خلال الثغرات في الآليات في بيئة لامركزية وغير مصرح بها.
من منظور أعلى، فإن ظهور MEV هو تجسيد لتأثير السيف ذو الحدين لشبكة blockchain من حيث الشفافية والقابلية للبرمجة.
من ناحية، فإن جميع سجلات المعاملات متاحة للجمهور، مما يجعل من الممكن تتبع وتحليل أفعال الهجوم؛
من ناحية أخرى، توفر المنطق المعقد للعقود الذكية واليقين في تنفيذ الصفقات فرصًا للمشاركين الأذكياء.
هذا ليس مجرد سلوك قرصنة بسيط، ولكنه فهم عميق واستغلال لآلية البلوكشين الأساسية، حيث يختبر متانة تصميم البروتوكولات، ويتحدى أيضًا وعي المشاركين بالمخاطر.
إن فهم MEV ومخاطره هو المفتاح للتنقل في عالم رقمي مليء بالفرص والمخاطر. تذكر ، في "الغابة المظلمة" ل blockchain ، فقط من خلال احترام القواعد وتحسين الإدراك يمكنك تجنب أن تصبح الفريسة التالية التي يتم التهامها.
هذا هو أيضًا التأثير الذي أريد أن أحقق من خلال هذه المقالة.
المحتوى هو للمرجعية فقط، وليس دعوة أو عرضًا. لا يتم تقديم أي مشورة استثمارية أو ضريبية أو قانونية. للمزيد من الإفصاحات حول المخاطر، يُرجى الاطلاع على إخلاء المسؤولية.
تحليل شامل لهجمات ساندويتش MEV: من الترتيب إلى سلسلة الموت للتبادل الفوري
المؤلف: دايي المصدر: مرآة
الأربعاء الماضي (12 مارس) ، تم تداول أخبار عن تاجر عملات مشفرة تعرض لهجوم MEV وخسر 215000 دولار في مرة واحدة.
! d40IzkNmiRRIQY5uP5wMz1zpFo0cMqNwhmogZmhk.png
باختصار، كان هذا المستخدم يرغب في تحويل عملة USDC المستقرة بقيمة 220,800 دولار إلى ما يعادلها من عملة USDT في بركة التداول Uniswap v3، لكنه حصل فقط على 5,272 USDT، حيث تبخرت أصوله في بضع ثوانٍ بمقدار 215,700 دولار، انظر الصورة أدناه.
! yDgyTJBzWhnGWbbjWdCfwzNHy2RWfixeFPAhUl16.png
الصورة أعلاه هي لقطة شاشة للسجل على السلسلة لهذه المعاملة. السبب الجذري لهذه المأساة هو "هجوم الساندويتش" سيئ السمعة في عالم blockchain.
! kf5CcjkRVjOcv2Tj5LM63tYSNd150MXNqxzlLXgj.png
أول من كشف عن هجوم MEV هذا هو مايكل (انظر الصورة أعلاه)، حيث شرح قائلاً:
المحتوى أعلاه يحتوي على خطأ مطبعي، حيث إن روبوت هجوم 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)، وتشير إلى الأرباح الإضافية التي يمكن أن يحصل عليها المعدنون من خلال إعادة ترتيب أو إدراج أو استبعاد المعاملات في كتلة البلوكتشين. يمكن أن تؤدي هذه العمليات إلى تكبد المستخدمين العاديين تكاليف أعلى، أو الحصول على أسعار معاملات أقل فائدة.
مع تحول شبكات البلوكشين مثل إيثيريوم من آلية توافق إثبات العمل (Proof-of-Work، PoW) إلى آلية توافق إثبات الحصة (Proof-of-Stake، PoS)، انتقلت سلطة التحكم في ترتيب المعاملات من المعدنين إلى المدققين. وبالتالي، تطور المصطلح أيضًا من "قيمة قابلة للاستخراج من المعدنين" (Miner Extractable Value) إلى "قيمة قابلة للاستخراج القصوى" (Maximal Extractable Value).
على الرغم من تغير الاسم، إلا أن المفهوم الأساسي لاستخراج القيمة من خلال التلاعب في ترتيب المعاملات لا يزال كما هو.
المحتوى أعلاه لا يزال احترافيًا بعض الشيء، عليك فقط أن تتذكر: السبب وراء وجود MEV هو أن عمال المناجم السابقين، والتحقق الحاليين لديهم حق في ترتيب المعاملات في ذاكرة التجميع (mempool). يحدث هذا الترتيب داخل كتلة واحدة، والآن يتم إنتاج كتلة في الإيثريوم تقريبًا كل 11 ثانية، مما يعني أنه سيكون هناك ممارسة لهذا الحق كل 11 ثانية. وبالمثل، فإن هجوم MEV هذا تحقق أيضًا من خلال ترتيب المدققين.
انقر على هذا الرابط، ستتمكن من رؤية محتوى المعاملات الموجودة في الكتلة رقم 22029771 المتعلقة بهذا الهجوم، كما هو موضح في الصورة أدناه.
! gOBtJtdKthPSTi4uxT3qT8ZxgrXMXxlFAbOEp7RC.png
يرجى ملاحظة أن المعاملات في الصور 1 و 2 و 3 هي نفس هجوم MEV الذي تم الإشارة إليه في بداية هذه المقالة، وهذا الترتيب مرتب من قبل المدقق (bobTheBuilder). لماذا يمكن أن يكون الأمر كذلك؟
2. مبدأ MEV
لفهم كيفية عمل MEV، نحتاج أولاً إلى فهم كيفية تسجيل المعلومات وتحديثها في blockchain.
2.1 آلية تحديث حالة blockchain
يمكن اعتبار blockchain دفتر حسابات متزايد باستمرار، يسجل جميع المعاملات التي تحدث. يتم تحديد حالة هذا الدفتر، مثل رصيد كل حساب وكمية الاحتياطي من الرموز المختلفة في تجمع تداول Uniswap، من خلال المعاملات السابقة.
عندما تتم إضافة كتلة جديدة إلى سلسلة الكتل، سيتم تنفيذ جميع المعاملات الموجودة في هذه الكتلة واحدة تلو الأخرى وفقًا لترتيبها في الكتلة. مع تنفيذ كل معاملة، ستتغير الحالة العالمية لسلسلة الكتل على نحو مناسب.
أي أنه ليس ترتيب الكتل هو المهم فقط، بل ترتيب المعاملات في الكتلة أيضًا مهم. كيف يتم تحديد ترتيب المعاملات في الكتلة إذن؟
2.2 يقرر المدقق ترتيب المعاملات
عندما يقوم المستخدم بإجراء معاملة على شبكة blockchain، مثل هذه المعاملة التي يتم من خلالها تحويل USDC إلى USDT عبر Uniswap، يتم أولاً بثها إلى العقد في الشبكة. بعد التحقق الأولي، ستدخل هذه المعاملة منطقة تعرف باسم "ذاكرة التجمع" (mempool). تعتبر ذاكرة التجمع منطقة انتظار، حيث لم يتم تأكيد المعاملات الموجودة فيها وإضافتها إلى الكتلة التالية في blockchain.
كان لدى عمال المناجم السابقين (في نظام إثبات العمل) ، والآن المدققين (في نظام إثبات الحصة) الحق في اختيار المعاملات من تجمع الذاكرة وتحديد ترتيب هذه المعاملات في الكتلة التالية.
ترتيب المعاملات في كتلة أمر بالغ الأهمية. قبل الانتهاء من الكتلة وإضافتها إلى blockchain ، يتم تنفيذ المعاملات في تلك الكتلة بالترتيب الذي يحدده المدقق (على سبيل المثال ، bobTheBuilder). هذا يعني أنه إذا كانت الكتلة تحتوي على معاملات متعددة تتفاعل مع نفس مجمع المعاملات ، فإن الترتيب الذي يتم به تنفيذ هذه المعاملات سيؤثر بشكل مباشر على نتيجة كل معاملة.
تتيح هذه القدرة للمتحققين معالجة معاملات معينة بشكل أولوي، وتأخير أو استبعاد معاملات أخرى، وحتى إدراج معاملاتهم الخاصة لزيادة الأرباح.
ترتيب هذه المعاملة مهم بنفس القدر، وأي خطأ بسيط يمكن أن يجعل الهجوم غير ناجح.
2.3 ترتيب معاملات هجوم MEV هذه المرة
دعونا نتعرف بسرعة على 3 معاملات مرتبطة بهجوم MEV هذا:
! dOFw7Sh0V9EIVxqeuCZIDFbCHSXZ7Sl9JXeXJUue.png
المتحقق من هجوم 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؟
3. تحليل كامل لهجوم السندويش
يُطلق على ما يُعرف بهجوم السندويش (Sandwich Attack) لأنه يتم وضع معاملتين للمهاجم (المعاملة 1 والمعاملة 3) قبل وبعد معاملة الضحية (المعاملة 2)، مما يجعل ترتيب المعاملات بأكمله يشبه هيكل السندويش (انظر الصورة أعلاه).
الصفقات 1 و 3 تتحملان وظائف مختلفة. ببساطة، الصفقة 1 مسؤولة عن ارتكاب الجريمة، بينما الصفقة 3 مسؤولة عن توزيع الغنائم. وبشكل أكثر تحديدًا، فإن العملية بأكملها هي كما يلي:
3.1 تجارة 1 ، مسؤولة عن رفع سعر USDT
انقر على الرابط في الصورة أعلاه لصفقة رقم 1، سترى تفاصيل الصفقة رقم 1. قام المهاجم بزيادة سعر USDT بطريقة مباشرة، حيث قام بتحويل 1865 مليون USDC وأخذ جميع الـ 1758 مليون USDT الموجودة في الداخل، انظر الصورة أدناه.
! vi4i8ramCtgyZuTSNZLLVLsqry8MONxhGPRUVOsC.png
في هذه اللحظة، يحتوي حوض السيولة على كمية كبيرة من USDC وكمية صغيرة من USDT. إذا كان ما ذكرته التقارير الإخبارية صحيحًا، قبل الهجوم، كان لدى Uniswap حوالي 19.8 مليون USDC وUSDT، فإن بعد تنفيذ الصفقة 1، يتبقى في الحوض فقط 2.22 مليون USDT (=1980-1758)، بينما يرتفع رصيد USDC إلى حوالي 38.45 مليون (=1980+1865).
في هذا الوقت ، تكون نسبة التبادل بين USDC و USDT في هذا المجمع بعيدة كل البعد عن 1: 1 ، ولكن 1:17 ، مما يعني أن هناك حاجة إلى 17 USDC للتبادل مقابل 1 USDT في هذا الوقت ، ولكن هذه النسبة تقريبية فقط ، لأن هذا المجمع هو V3 ، والسيولة فيه ليست موزعة بالتساوي.
هناك نقطة أخرى أود إخبارك بها. في الواقع، لم يستخدم المهاجم 18650000 USDC دفعة واحدة، بل كانت USDC المستخدمة فعليًا 1090000، أقل من 6%. كيف فعل ذلك؟ سنشرح ذلك بمزيد من التفصيل بعد أن ننتهي من الحديث عن الهجوم.
3.2 交易 2، تنفيذ 22 ألف USDC兑换 USDT
يمكنك رؤية الصورة أدناه من خلال النقر على رابط التداول 2 في الصورة أعلاه.
! x3kBJKcYVyM44HJSUHuIxVQ1ScIutWsoZ6JuRvM7.png
كما هو موضح في الصورة أعلاه، فقد حصل الضحية على 5272 USDT فقط مقابل 220,000 USDC بسبب تأثير الصفقة 1، مما أدى إلى خسارة غير ملحوظة قدرها 170,000 USDT. لماذا نقول إنها خسارة غير ملحوظة؟ لأنه إذا كان الضحية يتداول عبر Uniswap، فسيرى الواجهة التالية عند تقديم الصفقة.
! rqLjmsxfcI06dN56OvKVyTctzoiWpvUPvCyEWYom.png
من خلال الصورة أعلاه ستكتشف أن الضحية يجب أن تحصل على 220,000 كحد أدنى. السبب في أن الضحية حصلت في النهاية على أكثر من 5000 USDT هو أن هناك انزلاقًا كبيرًا، بلغ أكثر من 90%. ومع ذلك، فإن Uniswap لديها حد أقصى افتراضي للانزلاق بنسبة 5.5%، انظر الصورة أدناه.
! Qlpu7GNLheCyBJtsy2LEgpo0vVP2oENI4sGcSiiW.png
بمعنى أنه إذا كان الضحية يتداول من خلال واجهة Uniswap، فيجب أن يحصل على الأقل على 208381 USDT (= 220510 * 94.5%). قد تتساءل لماذا تظهر هذه المعاملة في سجل blockchain أعلاه على أنها تمت في "Uniswap V3".
لأن الواجهة الأمامية والخلفية لتداول العملات الرقمية على البلوكشين مفصولة. ما تم ذكره أعلاه "Uniswap V3" يشير إلى مجمع USDC-USDT الخاص بـ Uniswap، وهذا المجمع مفتوح، ويمكن لأي واجهة أمامية للتداول استخدام هذا المجمع للتداول.
وأيضًا بسبب هذه النقطة، يشكك البعض في أن الضحية ليست بسيطة، وليست شخصًا عاديًا، وإلا لما حدثت هذه الفجوة الكبيرة، فمن المحتمل أن تكون قد استخدمت هجوم MEV في غسيل الأموال. سنتحدث عن هذا لاحقًا.
3.3 تجارة 3 ، جني + تقسيم الغنائم
! hco4wljEJ9HngbaT8S3asZcEGGNpt9HjUPoAA1ka.png
انقر على الرابط لرؤية تفاصيل الصفقة 3، كما هو موضح في الصورة أعلاه. دعونا نتحدث عن ثلاث صفقات A و B و C.
تمت استعادة السيولة في البركة إلى وضعها الطبيعي من خلال تبادل 1732 مليون USDT مقابل 1860 مليون USDC.
تجارة ب ، إعداد تقسيم الغنائم ، تحويل جزء من الأرباح - 20.4 ألف USDC إلى 105 ETH؛
تداول C ، تقاسم الغنائم ، دفع 100.558 ETH إلى المُصادق bob-The-Builder.eth.
وبذلك، انتهت هجمات السندويتش.
الآن للإجابة على سؤال مهم ذُكر أعلاه: كيف استطاع المهاجم تحقيق هجوم بقيمة 18 مليون باستخدام 1.09 مليون USDC.
4. كيف نفذ المهاجم هجوم الحوض بقيمة 18 مليون USDC
تمكن المهاجم من تنفيذ هجوم بمستوى 18 مليون دولار باستخدام رأس مال قدره 1.09 مليون USDC فقط، وذلك بفضل وجود آلية سحرية وخاصة في عالم البلوكشين - وهو تبادل الفلاش (Flash Swap) في Uniswap V3.
4.1 ما هو التبادل الفوري (Flash Swap)؟
ببساطة:
تسمح Uniswap بهذا النوع من "أخذ البضائع ثم الدفع" طالما تم إتمام العملية بأكملها في نفس الصفقة. يرجى ملاحظة أنه يجب أن يتم إكمالها في نفس الصفقة. تم تصميم ذلك لضمان أمان منصة Uniswap نفسها:
تم تصميم تبادل البرق من أجل القيام بأرباح على السلسلة بشكل أكثر فعالية، ولكن للأسف تم استغلاله من قبل مهاجمي MEV، ليصبح أداة للتلاعب في السوق.
4.2 كيف تساعد خدمة التبادل الفوري؟
دعونا نرى الصورة ونشرحها خطوة بخطوة لفهم كيفية تنفيذ تبادل البرق في هذا الهجوم ، انظر إلى الصورة أدناه.
! S6eRIwZXTXtWBU7tUaAjr9bvAm2RIPpdoyjiHnhn.png
! o1LnGSaUlzRjt7vqs5YOy0wqTRznOxzRkjVHSdEw.png
بعد هذه المعاملة (المعاملة 1)، انخفض رصيد حساب المهاجم بمقدار 1.09 مليون USDC، حيث أن 18.64 مليون USDC التي تم إرجاعها إلى Uniswap كانت فقط 17.55 مليون USDC تم تحويلها من Curve، بينما 1.09 مليون USDC المتبقية هي أموال خاصة بالمهاجم.
كان يجب أن تلاحظ أن هذه الصفقة سببت خسارة للمهاجمين قدرها 1.09 مليون. ولكن الصفقة الثالثة التالية، التي تمت بنفس طريقة التبادل الفوري، لم تأخذ فقط 1.09 مليون USDC مرة أخرى، بل حققت أيضًا ربحًا يزيد عن 200 ألف.
! oKE3vvGoW8lIISTane5LmOrh3BrDYyLV5PxHLXkM.png
دعونا نقوم بتحليل بيانات الصفقة 3 خطوة بخطوة.
قد تتفاجأ لماذا يكون المهاجمون مستعدين للتخلي عن أرباح تصل إلى 200,000 دولار للمتحققين؟
4.3 لماذا يجب إعطاء "إكرامية" بقيمة 200,000 دولار؟
في الحقيقة، هذه ليست كرمًا، بل هي شرط ضروري لنجاح هجوم MEV من نوع هجوم السندويتش:
لذلك، يفضل المهاجم التضحية بأغلب الأرباح لضمان نجاح الهجوم، مع الاحتفاظ ببعض الأرباح لنفسه.
يجب الإشارة إلى أن هجمات MEV لها أيضًا تكاليف، فهناك تكاليف في تبادل Uniswap الفوري، وهناك تكاليف في تداول Curve، لكن بسبب انخفاض الرسوم، والتي تبلغ حوالي 0.01~0.05٪، فإنها ليست ذات أهمية مقارنة بالأرباح الناتجة عن الهجمات.
أخيرًا، أود أن أذكرك بأن الدفاع ضد هجمات MEV بسيط جدًا، كل ما عليك فعله هو: ضبط مستوى تحمل الانزلاق، ويجب ألا يتجاوز 1٪؛ تنفيذ الصفقات الكبيرة على عدة دفعات. لذا، ليس عليك أن تتجنب التداول في DEX (البورصات اللامركزية) بسبب ذلك.
الخاتمة: التحذيرات والدروس من الغابة المظلمة
تعتبر هذه الحادثة التي بلغت قيمتها 215,000 دولار من هجمات MEV بلا شك تجسيدًا آخر قاسيًا لقانون "الغابة المظلمة" في عالم blockchain. إنها تكشف بوضوح عن الصراع المعقد الذي يختبئ فيه الاستغلال لتحقيق المكاسب من خلال الثغرات في الآليات في بيئة لامركزية وغير مصرح بها.
من منظور أعلى، فإن ظهور MEV هو تجسيد لتأثير السيف ذو الحدين لشبكة blockchain من حيث الشفافية والقابلية للبرمجة.
هذا ليس مجرد سلوك قرصنة بسيط، ولكنه فهم عميق واستغلال لآلية البلوكشين الأساسية، حيث يختبر متانة تصميم البروتوكولات، ويتحدى أيضًا وعي المشاركين بالمخاطر.
إن فهم MEV ومخاطره هو المفتاح للتنقل في عالم رقمي مليء بالفرص والمخاطر. تذكر ، في "الغابة المظلمة" ل blockchain ، فقط من خلال احترام القواعد وتحسين الإدراك يمكنك تجنب أن تصبح الفريسة التالية التي يتم التهامها.
هذا هو أيضًا التأثير الذي أريد أن أحقق من خلال هذه المقالة.