Dit kan controversieel zijn, maar je transacties zouden in staat moeten zijn om terug te vechten tegen kwaadaardige sandwich validators. Ik heb een eenvoudig programma gebouwd om precies dat te doen. Je kunt tijdens runtime niet weten of slippage natuurlijke marktbeweging is of een sandwichaanval. Maar als je swap terechtkomt bij een bekende kwaadaardige validator, ben je praktisch gegarandeerd dat je wordt gesandwiched tot je maximale slippage. Dit stelt je in staat om terug te vechten. ✅ Bij een vertrouwde validator? Je transactie gaat door met je gewenste slippage (x%). ❌ Bij een kwaadaardige validator? De slippage van je transactie wordt aangepast (0%, een fractie van x%, alles wat je wilt) In plaats van alleen maar terug te draaien, kan je transactie slagen met striktere beperkingen wanneer deze in een donkerder bos draait. Wanneer je je transactie aanmaakt en ondertekent, weet je niet precies op welke validator deze zal landen, dus logica die het gedrag verandert, moet on-chain zijn. Dus hoe werkt het? Een Solana-programma kan de huidige validator niet benaderen, maar het kan de huidige slot benaderen. Het programma neemt een compacte representatie (14 bytes maar kan verder worden verminderd) om het programma in staat te stellen te controleren of de leider van de slot als kwaadaardig is gemarkeerd. Een paar manieren om het te gebruiken: (1) Je kunt het rechtstreeks invoegen als een eenvoudige instructie (<260 CU, waarvan het grootste deel het benaderen van de Clock sysvar is). Draait de hele tx terug wanneer deze op een kwaadaardige validator landt. (2) Je kunt het gebruiken om de Jupiter v6-router te omhullen. Het zal het Jupiter-programma aanroepen en dynamisch de `slippage`-waarde overschrijven, maar alleen wanneer het draait op een kwaadaardige validator. (3) Roep het rechtstreeks aan via CPI vanuit je eigen programma. De lijst van kwaadaardige validators en hun aankomende slots kan worden verkregen van onze aankomende Sandwiched[dot]me API of van je eigen gegevens. Houd er rekening mee dat dit prototype experimenteel is. Het is niet on-chain gedeployed. Ik zou graag je feedback willen ontvangen en PR's zijn welkom.
2,78K