اضغط على ESC للإغلاق

برمجة بوت Anti-MEV Stealth Swap: دليل Flashbots و Node.js

  • Sying Yu
  • أبريل 26, 2026
  • 1 دقيقة قراءة

في مدونة أكاديمية EXMON، سبق وتكلمنا عن كيف تقوم بوتات الـ MEV "بسرقة" المستخدمين العاديين في "الغابة المظلمة" للميمبول (mempool). اليوم، ننتقل للجانب العملي ونضع حجر الأساس لأداتنا الخاصة. هدفنا هو تعلم كيفية إرسال المعاملات بعيداً عن الميمبول العام، مباشرة إلى المدققين (validators).

1. مفهوم الـ Bundles: ليش هي أضمن؟

عادةً، لما ترسل معاملتك، تروح لـ mempool — وهو باختصار قائمة انتظار عامة. هناك الكل يشوفها: من العقد العادية (nodes) إلى بوتات الـ MEV المفترسة. البوتات هذي تحلل المعاملة، وإذا شافت فيها ربح (مثل عملية swap كبيرة)، تنفذ عليك "هجوم الساندوتش" (sandwich attack).

Flashbots تقدم حل بديل وهو Bundles (الحزم). وهي عبارة عن حزمة من معاملة واحدة أو أكثر، يتم تسليمها مباشرة للمدققين من خلال سيرفر ترحيل (relay) خاص.

أهم مميزات الـ bundles:

  • السرية التامة: معاملتك ما تظهر أبداً في الميمبول العام. العالم ما يدري عنها إلا لما يتم تضمينها فعلياً في البلوك. كذا البوتات ما تلحق تسوي أي ردة فعل.
  • الذرية (Atomicity): إما تتنفذ كل المعاملات اللي في الحزمة، أو ما يتنفذ منها ولا شيء. هذا يلغي مخاطرة إن صفقتك تتم بشكل جزئي أو بظروف سيئة.
  • ما تدفع إذا فشلت: إذا ما انقبلت الحزمة في البلوك (مثلاً بسبب سعر غاز منخفض)، ما تدفع أي رسوم على المعاملة الفاشلة (Revert).

 

2. تجهيز البنية التحتية

عشان نبدأ شغل، نحتاج شيئين: الوصول إلى عقدة (node) إيثيريوم، ومفتاحين خاصين (private keys).

ليش نحتاج مفتاحين؟

  • SENDER_PRIVATE_KEY: هذي محفظتك الأساسية، اللي فيها الرصيد للتبديل (swap) وعملات الـ ETH لدفع الغاز.
  • FLASHBOTS_AUTH_KEY: هذا نعتبره "مفتاح الهوية". لازم يكون لمحفظة جديدة وفاضية تماماً. Flashbots تستخدمه عشان تبني "سمعتك" (reputation) كمرسل. لو قعدت ترسل حزم "سبام" أو سيئة، المفتاح هذا بيدخل القائمة السوداء، بس فلوسك في المحفظة الأساسية بتظل بأمان.

إعداد البيئة

أنشئ ملف .env في المجلد الرئيسي لمشروعك:

ETH_RPC_URL=https://eth-mainnet.g.alchemy.com/v2/YOUR_API_KEY
SENDER_PRIVATE_KEY=مفتاحك_الأساسي_هنا
FLASHBOTS_AUTH_KEY=مفتاح_السمعة_الفاضي

 

3. تشغيل الـ Stealth-Provider

راح نستخدم TypeScript، ومكتبة Ethers.js v6، والمكتبة الرسمية لـ Flashbots SDK.

ثبّت المكتبات المطلوبة: npm install ethers @flashbots/ethers-provider-bundle dotenv

هذا هو الكود الخاص بتجهيز وتشغيل الأداة:

import { ethers } from "ethers";
import { FlashbotsBundleProvider } from "@flashbots/ethers-provider-bundle";
import * as dotenv from "dotenv";
dotenv.config();

async function initStealthProvider() {
    // 1. الاتصال بنود قياسي (Alchemy/Infura)
    const provider = new ethers.JsonRpcProvider(process.env.ETH_RPC_URL);

    // 2. تجهيز المحافظ
    const wallet = new ethers.Wallet(process.env.SENDER_PRIVATE_KEY!, provider);
    const authSigner = new ethers.Wallet(process.env.FLASHBOTS_AUTH_KEY!, provider);

    // 3. إنشاء مزود Flashbots
    // هذا هو النفق الخاص فينا مباشرة للمدققين
    const flashbotsProvider = await FlashbotsBundleProvider.create(
        provider, 
        authSigner,
        "https://relay.flashbots.net", // عنوان الريلاي للشبكة الرئيسية
        "mainnet"
    );

    return { wallet, flashbotsProvider, provider };
}

async function main() {
    try {
        const { wallet, flashbotsProvider } = await initStealthProvider();
        console.log("--- Stealth Infrastructure Ready ---");
        console.log(`Main Wallet: ${wallet.address}`);
        console.log(`Relay: https://relay.flashbots.net`);
    } catch (error) {
        console.error("فشل في التشغيل:", error);
    }
}

main();

 

شو اللي سويناه الحين؟

في هذي المرحلة، بنينا "خط اتصال آمن". إحنا مو بس نتصل بالبلوكشين، إحنا قاعدين نسجل دخولنا في شبكة Flashbots بشكل رسمي.

ملاحظة مهمة: الـ Flashbots هو في الأساس نظام مزاد. عشان المدقق يختار الحزمة حقتك، لازم تكون مربحة له أكثر من غيرها. في الجزء الجاي، بنتعلم كيف نحسب الرسوم صح ونجهز معاملة التبديل (Swap) عبر Uniswap V3 اللي ما بيقدر أي بوت يشم خبر عنها.

في المقال القادم: تجهيز الـ Bundle، محاكاة المعاملة، وكيف نتخطى فحص الرصيد.

Sying Yu

I am a blockchain developer specializing in building secure, scalable, and innovative decentralized solutions. My expertise covers smart contracts, payment systems, and integrating crypto with fiat to optimize financial workflows. I thrive on creating modern, efficient tools for the evolving digital economy....

شاركنا برأيك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها *