À des fins éducatives uniquement ; ne constitue ni un conseil en investissement ni une recommandation d’investissement. Les investissements peuvent entraîner des pertes.
Réponse directe
Un RPC pour transactions privées envoie une transaction signée ou un bundle ordonné par un circuit de service restreint avant sa propagation dans le mempool public. Ce circuit peut comprendre un fournisseur RPC, un relais, des builders sélectionnés et, lorsque des indices sont divulgués, des searchers. « Privé » décrit donc la distribution initiale, et non le chiffrement, l’anonymat ou l’invisibilité aux yeux des intermédiaires.
Le service peut réduire l’exposition aux copies, au front-running ou aux attaques sandwich depuis le mempool public, mais il ne garantit ni inclusion, ni réussite dans l’EVM, ni meilleure exécution, ni remboursement MEV, ni finalité. L’accusé de réception d’un fournisseur ou le hash de transaction renvoyé prouve uniquement que la requête a atteint cette interface. Distribution aux builders, sélection du payload, inclusion dans un bloc, status du reçu, appartenance à la chaîne canonique et finalité constituent des états distincts.
Les méthodes privées ne sont pas interchangeables. Une requête individuelle eth_sendPrivateTransaction, une ancienne eth_sendBundle et une mev_sendBundle peuvent différer quant aux blocs cibles, corps ordonnés, reverts autorisés, remplacement ou annulation, sélection des builders, indices de confidentialité et règles de remboursement. Le résultat dépend de la chaîne, de l’endpoint, de la version d’API et du payload signé exacts.
Fonctionnement
Le wallet construit et signe d’abord une transaction ordinaire de la chaîne avec chain ID, nonce, destination, valeur, calldata, limite de gas et plafonds de frais EIP-1559. Le routage privé modifie le lieu où ces octets signés sont soumis ; il ne contourne ni l’ordre des nonces, ni les contrôles de solde et d’allowance, ni l’exécution du contrat, ni les règles de base fee, ni la validation par consensus. Rediffuser les mêmes octets signés conserve le hash de transaction, tandis qu’un remplacement avec le même nonce et des frais ou calldata différents produit un autre hash.
Le fournisseur peut simuler le payload par rapport à un état identifié et le distribuer à un ou plusieurs builders. La simulation dépend de cet état : soldes, stockage, valeurs d’oracles, transactions concurrentes et base fee peuvent changer avant la construction. Un builder peut omettre une transaction valide parce qu’elle est arrivée tard, payait trop peu, a perdu face à un bloc de plus grande valeur ou n’a jamais atteint le builder retenu par le proposer.
Les bundles ajoutent une politique d’exécution ordonnée. Un revert obligatoire peut rendre un bundle inéligible, tandis qu’un revert expressément autorisé peut consommer du gas et laisser subsister des changements d’état antérieurs réussis dans le bundle. Il ne s’agit pas d’un rollback atomique automatique. Les indices de confidentialité peuvent divulguer un hash, une adresse de contrat, un sélecteur de fonction, des calldata ou des logs ; un mode rapide ou un large fanout de builders accroît la portée et, généralement, le périmètre de confiance et de divulgation.
La gestion des nonces et délais exige une machine à états explicite. Une transaction privée pending peut être absente de la vue pending d’un RPC public ordinaire et bloquer les nonces suivants. L’annulation par le fournisseur arrête uniquement les futurs envois par les circuits qu’il contrôle ; elle ne peut rappeler une copie déjà partagée, diffusée publiquement ou incluse. Un remplacement avec le même nonce ou un fallback public entre en concurrence avec toutes les versions survivantes et rétablit l’exposition publique du flux d’ordres.
Suivez ce processus :
- Fixez le chain ID, le fournisseur et la version d’API ; choisissez une méthode de transaction privée individuelle ou de bundle, puis documentez les journaux du fournisseur, la distribution aux builders ou searchers, les indices de confidentialité, les reverts, les remboursements et le fallback public.
- Décodez l’intention non signée et le payload signé exacts : expéditeur, nonce, destination, valeur, calldata, allowances, limite de gas, plafonds de frais, deadline, output minimum, plage de blocs cibles et chaque élément ordonné du bundle.
- Simulez par rapport à un bloc et à un état identifiés ; testez réussite et revert, dérive d’état, slippage, variations de solde, échecs autorisés, gas total et pire résultat économiquement valide.
- Soumettez via l’endpoint prévu et conservez hash de transaction ou de bundle, ID de requête, identité d’authentification, horodatage, bloc cible ou maximal, builders, indices et payload d’origine.
- Surveillez séparément l’accusé du fournisseur, la simulation, la distribution aux builders, le nonce privé et l’expiration par rapport au reçu canonique ; actualisez les hypothèses de cible et de frais avant une nouvelle soumission.
- À la deadline, choisissez explicitement d’attendre, d’annuler, de remplacer avec le même nonce ou de divulguer par fallback public ; ne supposez jamais que l’annulation rappelle les copies et n’envoyez pas de versions contradictoires sans suivre leur concurrence.
- Rapprochez sur la bonne chaîne le
statusdu reçu, les logs, soldes, output, prix effectif du gas et remboursement ; attendez ensuite l’étatsafeoufinalizedrequis et examinez les reorgs, fuites ou écarts d’exécution inexpliqués.
Exemples
- La protection de l’output n’est pas la meilleure exécution. Un swap indique une entrée de
100,000 USDCavec un output minimum de98,800 USDC. L’exécution publique renvoie98,950 USDC, soit un écart de1,050 USDCou1.05%par rapport au pair, mais seulement150 USDCau-dessus du minimum. Le routage privé peut limiter l’observation ; il ne garantit pas un meilleur output qu’une autre place publique ou qu’une RFQ. - Limite d’inclusion EIP-1559. Une transaction utilise
180,000 gas, la base fee est de30 gwei, le plafond de priorité de2 gweiet les frais maximaux de40 gwei. Le prix effectif estmin(40, 30 + 2) = 32 gwei, donc les frais sont de180,000 x 32 = 5,760,000 gwei = 0.005760 ETH. Si la base fee d’un bloc candidat est de42 gwei, les frais maximaux de40 gweine la couvrent pas et le routage privé ne rend pas la transaction admissible dans ce bloc. - Concurrence du fallback avec le même nonce. Le payload privé
Aet le fallback publicButilisent tous deux le nonce42. Deux soumissions existent, mais la chaîne canonique ne peut consommer le nonce42qu’une fois. SiAest inclus au blocN + 2,Bdevient obsolète ; siBest inclus en premier,Adevient obsolète. Un accusé d’annulation n’est pas une annulation rétroactive et chaque copie survivante doit être suivie. - Un revert autorisé n’est pas un rollback atomique. Dans un bundle ordonné, l’approbation utilise
45,000 gaset un swap revert après120,000 gasà un prix effectif de25 gwei. Sans règle autorisant ce revert, le bundle est exclu selon la politique indiquée. Si le revert du swap est autorisé et le bundle inclus, l’approbation peut subsister, le swap astatus = 0et le coût du gas est(45,000 + 120,000) x 25 gwei = 0.004125 ETH.
Risques
- Le wallet utilise une chaîne, un fournisseur, un endpoint ou une version d’API erronés.
- Le DNS, TLS, une clé API ou l’interface RPC subissent un hameçonnage ou une compromission.
- Le fournisseur met en correspondance IP, compte, heure et données du payload signé.
- Un relais journalise, divulgue, copie ou rediffuse publiquement la transaction complète.
- Les indices de confidentialité divulguent hash, sélecteur, contrat, calldata ou logs.
- Le mode rapide ou un large fanout de builders agrandit le périmètre de confiance et de divulgation.
- Un builder ou searcher censure, copie ou exploite le flux d’ordres privé.
- La simulation utilise le mauvais bloc ou devient obsolète avant la construction.
- État du contrat, soldes, prix ou ordre changent et provoquent un revert.
- Base fee, frais maximaux ou frais de priorité rendent le payload peu attractif ou invalide.
- Un trou de nonce ou une transaction privée pending invisible bloque les nonces suivants.
- L’annulation ou le remplacement avec le même nonce perd une course temporelle.
- Un fallback public silencieux rétablit l’exposition MEV du mempool public.
- Le bloc cible, bloc maximal, timestamp ou TTL du service est mal interprété.
- L’ordre du bundle ou la politique des reverts autorisés laisse un changement d’état indésirable.
- La couverture ou la censure des builders, relais ou proposers empêche l’inclusion.
- Indisponibilité, limitation de débit ou latence du fournisseur fait manquer la fenêtre valide.
- Le routage privé est pris pour une protection contre le slippage ou une meilleure exécution.
- Le statut du reçu, les logs, soldes, frais ou remboursements sont mal rapprochés.
- Un reorg, une hypothèse prématurée de finalité ou une limite de séquenceur L2 inverse la conclusion.
Idées fausses courantes
- Privé signifie chiffré, anonyme et invisible. Le fournisseur et les parties downstream sélectionnées peuvent voir le payload complet ou les indices divulgués.
- Un RPC privé garantit l’absence de MEV et le meilleur prix. Il modifie la distribution ; limites contractuelles, comparaison des places et qualité d’exécution restent déterminantes.
- Succès RPC ou hash de transaction signifient inclusion, réussite et finalité. Accusé de réception, reçu, état EVM et finalité sont des états distincts.
- L’annulation ou le remplacement avec le même nonce sont garantis. Copies et versions concurrentes s’affrontent jusqu’à ce que l’une soit incluse ou que toutes expirent.
- Une transaction privée est automatiquement un bundle atomique. Transactions individuelles et formats de bundle différents ont des sémantiques d’ordre et de revert distinctes.
Sujets connexes
Sources
- Settings Guide - Flashbots Docs (consulté le 2026-08-13)
- JSON-RPC Endpoints - Flashbots Docs (consulté le 2026-08-13)
- Nonce Management - Flashbots Docs (consulté le 2026-08-13)
- Bundle Inclusion Troubleshooting - Flashbots Docs (consulté le 2026-08-13)
- Understanding Bundles - Flashbots Docs (consulté le 2026-08-13)
- MEV-Boost Block Proposal - Flashbots Docs (consulté le 2026-08-13)
- Transactions - ethereum.org (consulté le 2026-08-13)
- JSON-RPC API - ethereum.org (consulté le 2026-08-13)