5 ms·
The author noticed that: 1/ Prices move after large trades are confirmed 2/ An variety of sandwich bots have sprung up to take advantage of this behavior by det
by dmckinno 6y ago
The author noticed that:
1/ Prices move after large trades are confirmed
2/ An variety of sandwich bots have sprung up to take advantage of this behavior by detecting the trade in the mempool (before confirmation), front running the trade with a buy order of their own, and posting a sell order for a profit after the large trade landed.
To profit from this exploitive behavior, he created a token that would trick sandwich traders into thinking a large trade was coming, but would keep their money when they tried to exit their position after the front run.
- spuz 6y agoOn which exchange can you buy and sell these "Salmonella" tokens? Why would anyone pay real money for a token without knowing who the issuer is?
- flixic 6y agoOn DEXes, or Decentralized Exchanges, you can exchange any standard-compliant token with any other token. No "listings" needed. That's why DEXes warn users to make sure they are trading the real tokens, not their fake clones.
- andypants 6y agoNormal users wouldn't be aware of this token. Sandwich bots monitor all pending transactions. The author sent transactions between his own accounts, and sandwich bots tried to take advantage.
- silentsea90 6y agoDo traders buy arbitrary tokens? This is a custom token that op created, not the ETH token, correct? I suppose sandwich traders don't mind buying salmonella because there's another buyer at the other end. This is quite interesting. I need to read up more!
- kzrdude 6y agoSo these traders didn't fully "parse" the meaning of the token, and are just assuming it's some kind of "standard"/"patterned" trade that they are used to? Somehow the real details of the transaction must be machine readable and parseable if they bother.
- skybrian 6y agoThe sandwich traders didn’t decompile the contract before calling it and instead assumed it’s like all the others, based on pattern-matching I assume. This is sort of like signing a contract without reading it. I suppose simulating what the call would do using a trial run would also work?
- SilasX 6y agoRight, don't traders have everything necessary to run the smartcontract locally (i.e. via Ethereum's virtual machine), with the input they expect it to have at the time of execution? That doesn't require decompiling, any more than I have to decompile a calculator app to verify that it gets the right answer for 2+4. If so, then yeah, sometimes judges do throw out deceptive contracts based on "gotcha" clauses with non-obvious implications the counterparty couldn't have reasonably expected. But here, it would be like if the signer had continuous access to a resource that would instantly answer any implication about any scenario they had in mind, and the signer refused to test it for even one scenario they were planning to use the contract for. I image judges being a lot less sympathetic to that kind of mistake.
- gbrits 6y agoThe deception works because the sandwich-traders are generalizing their code to 'work' for all kinds of contracts. This with the intent to just about frontrun anything that matches their pretty broad criteria. Since there's likely multiple predators operating, only the fastest one wins. This doesn't leave time to test individual contracts out locally. Or so the rationale most likely goes
- jl2718 6y agoThis is incorrect. It doesn’t detect anything. It just doesn’t send the right number of coins.
- SamBam 6y agoThe post above you was saying the sandwich bots were detecting the trade.
- jl2718 6y ago> he created a token that would trick sandwich traders into thinking a large trade was coming, but would keep their money when they tried to exit their position after the front run. The token doesn’t do anything intelligent like this. It just divides the send amount by 10 for anybody but him.
- XCSme 6y agoI am not familiar with crypto and barely understood half of the terms in the article, but shouldn't the buyer confirm again the trade if the price changes? I understand it works like this: V = victim/sandwich bot, S = Salmonella guy, X = asset (Salmonella token?). S -- purchase intent -> X ($5) V detects the intent, purchases X for $5, X price increases to $6 Now it was expected that S would still buy X at $6 (would have this normally be done automatically without confirming the increased price?). But S never pays money for X, so the ETH is now in the hands of the original Salmonella token owner (S) and the attacker is stuck with a worthless token?