The article states that the purpose of these smart contracts is:
"Stake your tokens with us and you could be the next cryptocurrency millionaire"
That's an obvious scam. Anyone who gave real money to such a cause has already lost it. So why is the author giving away his time to help the scammers?
The end game of those governance tokens is for them to control the whole platform, so absolutely no changes can be made to the platform without being voted in by the token holders. All of this is enforced trustlessly on the blockchain through smart contracts. As a token holder you really own part of the platform.
This is a very powerful concept, so a lot of people are interested in buying those governance tokens outright. So what you can do is put your money in one of those platforms, receive governance tokens and sell them to people that want to buy them outright. You can make quite good money doing this.
Now a lot of projects popped up that basically had nothing to offer, yet people were still buying their governance tokens, meaning you could still make money by putting your money in there and selling those tokens to those people quick before those tokens became worthless, basically an advanced game of chicken.
So what I'm saying is not all of those 'stake your money and receive tokens' are outright scams. There are some very legitimate projects being built that give away governance tokens. Uniswap comes to mind, the most popular decentralized exchange, doing over half a billion in volume yearly. There's of course a lot more nuance and not everything works as it should yet, but there's a lot of interesting stuff being built every day.
Glad to see informed comments, BTW.
Maybe this is a good article for someone deep into crypto, but for myself, as a casual morning read - I have no idea what happened.
The situation was worse since it happened already in the mempool where the pending transactions reside.
I am dabbling a bit in the Tezos currency and environment and find this 2 language projects interesting aimed to increase safety: https://github.com/metastatedev/juvix (alpha) and https://archetype-lang.org/ Not saying it might have helped in the concrete case.
Forgive me - I thought that was tongue in cheek ? I thought the op was humorously paraphrasing some current, popular trend in ethereum contracts ?
No ? That's the actual function of these contracts ?
Can someone point me to one of these in the wild where I can see the actual pitch / advertisement ?
But I have no idea how an "investor" could read this and think they can price the risk correctly. This isn't even the wild west of finance--this is intergalactic space.
Key word trivially - some contracts are custodial, so if someone hacked the owners (or they turned out to be scammers) funds could be stolen, which arguably has a reverse Lindy effect in the beginning. Fortunately people are starting to demand at least timelocks and/or multisigs. Another risk is how well liquidations function during a price crash, for protocols that need them.
The current risk premium was and still is absurdly overestimated, but that was a good thing (for me) as without it three or even four digit APYs wouldn't last a day, but thanks to the unwarranted risk premium they lasted about 2 months. During the short peak three weeks ago it was possible to make even ~8% per day (on millions of dollars - good liquidity), completely risk free (trivial staking contracts). The great crypto bullrun of 2020 already happened and few outside of ethereum even noticed.
You will see billions flow into defi on ethereum as others realize the real level of risk too (which guarantees those astronomical returns are never going to return - but even 10% apy on dollars is good in the current environment).
To be a successful investor, you don’t necessarily have the price the risk correctly, you just have to price it better than others.
I imagine someone successfully investing in crypto can read stuff like this fluently.
I came out thinking why anyone would fuck with this gameable broken system, the more i learn about cypto the less I think of it.
My understanding:
-these bots scan the smart contracts that are waiting to be executed by the miners
-the bots find vulnerabilities (another grey area in my mind) in the contract
-the bots adjust the destination address of where the contract is supposed to send the the ethereums
-then the bots continually execute the vulnerable smart contract codeThe Dark Forest attack is possible because everyone can see all the notes on the board waiting to be processed, and everyone can simulate exactly, precisely what the really slow computer will do with a given note.
Suppose you found someone wanting to sell TSLA stock for $5 and someone wanting to buy it for $400. You would write up a note to buy it for $5 and sell it for $400, and stick it on the board. However, the moment you put the note on the board, the attackers and their automated telescopes have simulated that this note results in the holder having $395 more than they started with, and gave nothing away in return. The attacker then simulates an alternate future in which they post the note instead, and verify that they get the money. It works! So the attacker copies your note, signs it themselves, puts a much bigger wad of cash on it than you did, and slaps it up on the board.
When the operators come out, they collect the attackers note first (more cash) and by the time your note is run, the opportunity is no longer there.
Having spent much of my professional life designing and building trading systems, and despite the problems with current blockchains, I’m convinced there’s something here and blockchain technology can massively improve finance in a number of areas (cost, pace of innovation and openness/fairness of access being the big ones). What we’re looking at now on Ethereum and other platforms is a set of early experiments, and some weird (and often unsavoury) artefacts of the fact that technical research and experiments are intertwined with, and creating, financial assets and economic systems.
At my company, we’re working on the hard problems required to do this properly, and one particular area of research that we’ve contributed is a “fairness” protocol that can be added to the consensus layer of decentralised systems to provide a better alternative to ordering by fee for financial trading and that would prevent this sort of issue. We’ve published a paper describing this research at [1] if you’re interested, and a more accessible talk by the author, Klaus Kursawe, on the topic can be found at [2].
Disclaimer: my company is building a decentralised trading protocol for serious, professional use cases, and the linked research is part of our effort to achieve this mission.
What the bot does is that it checks each transaction that is waiting to be executed and simulates sending that transaction itself on a private blockchain forked from the real network. If the simulation results in a profit, it frontruns that transaction -- i.e., it sends the transaction itself for real, but bidding a higher price than the original sender did, so that its transaction will get executed rather than the the original transaction it's copying.
It doesn't need to perform any sort of vulnerability scan; it just mimics other people exploiting arbitrage or vulnerabilities and pays more to get there first.
Similarly, it doesn't need to adjust any destination addresses. It's just looking for arbitrage opportunities or vulnerabilities that will direct ether to the sender. Smart contracts are entirely capable of getting the address of the message sender, and using that as a destination to send ether to. So the bot doesn't need to adjust the transaction data at all, which would be substantially more complicated.
One day you go to get it so you load up your pickup with gold digging equipment and drive to the ranch. On the way are spotters. They see your truck has gold digging equipment. They see that the road you're going down leads to the ranch. It's obvious what you're going to do.
They load up their faster Ford Ranger and blaze down the road. You can't catch up. They have a faster car. You get there. They have taken your gold.
If you hadn't gone there, the gold was relatively safe. Maybe some day someone happens on it but realistically probably not.
But you went. By looking for it you revealed you were looking and you revealed where you were looking.
You can't take advantage of a "normal" cryptocurrency transaction this way because the "normal" transaction is like a super-minimal smart contract that's designed to pay only one hard-coded recipient. Therefore, that transaction either happens or doesn't happen, but its recipient can't be altered. Nor can you take advantage of a non-vulnerable smart contract this way, because the non-vulnerable smart contract can't be triggered to perform an action that its creators would consider inappropriate. But for a vulnerable smart contract, there's a series of events that would cause it to send value to an arbitrary address (and not in exchange for some other adequate compensatory value). It's this case where the front-runners want to find a way to swap in their own addresses for these transactions, and that's also why obfuscation could deter that -- making it hard for the front-runners to notice that that was possible.
Thus, you have white hats racing to siphon money out of a buggy, immutable contract which also happens to be worth millions of real dollars. It'd be funny if there wasn't so much real money involved.
Ethereum DeFi currently ongoing is extremely risky and insecure in the longterm for various reasons. The open smart contracting is super dangerous, the Ethereum blockchain is way too bloated, the fees are shooting up, and it was designed to be a shared computer, an EVM for running things. Bitcoin is an investment and sound money. They do not compare and don't have the same end goals.
For example, if you create a private key using something guessable [1], point a camera at a QR code [2], or make a wallet using software you didn't write yourself [3], you can expect your money to irreversibly disappear faster than you can react.
[1] https://www.wired.com/story/blockchain-bandit-ethereum-weak-...
[2] https://www.theverge.com/2013/12/23/5238764/news-anchor-rece...
[3] https://cryptonews.com/news/popular-private-key-generator-co...
Would it be Bitcoin, used for such time-honored business as drug purchases and hiring contract killers? Would it be Tether, the fiat currency for people who think that central banks are excessively transparent?
The one extra element that Ethereum brings to the table is computationally much more powerful contracts, which makes it technically intriguing, but also adds another level of scammyness and incompetence to the enterprise.
the logical conclusion is that within a few months we'll have dark pools run by miners who will process your transactions without broadcasting to mempool, in exchange for an increased gas fee. and, within a year, we'll find out that some dark pools sold order flow to those HFT's anyways, a la UBS https://sites.law.berkeley.edu/thenetwork/2015/01/29/ubs-dar...
It's just that some subset of valid transactions are exploiting vulnerabilities in poorly written contracts. In this case, you want to make dead sure that your "good" exploit runs first.
This is not usual.
Curious about the use of SparkPool to bypass the mempool and get the transactions minted directly into a block. It looks like anyone can sign up and contribute their hashrate to SparkPool. Is there a risk of malicious miners running workers in their competitors' pools and then frontrunning?
Contractors’ basic obligation: The Contractors identified in Box 1 hereby agree to use their best endeavours to salve the property specified in Box 2 and to take the property to the places stated in Box 3 or to such other place as may hereafter be agreed. If no place is inserted in Box 3 and in the absence of any subsequent agreement as to the place where the property is to be taken the Contractors shall take the property to a place of safety.
The Contractors’ remuneration and/or special compensation shall be determined by arbitration in London in the manner prescribed by Lloyd’s Salvage Arbitration Clauses in force at the date of this agreement.
That's the deal.
You need some agreed way to resolve how much the job is worth for this to work. The Lloyds Open Form is an agreement to do the job and discuss later how much it's worth. That's generally settled by insurance adjusters. It's much like the aftermath of auto accidents.
How much does the salvor get? 15% - 35% of the recovered value, reports Lloyds.[2] Of course, salvors work under tough conditions. They have to have equipment and people ready 24/7 to go somewhere and do something. That's expensive. Some classic worldwide names exited in the past decade. Mammoet and Titan both dropped out.
All this is against accidental losses, not against an adversary. Where there's an opponent, it's a much tougher problem. Marine salvage is vs. the ocean. Whether this model can be made to fit programmed contract problems or ransomware is a big question. One worth pursuing.
[1] https://www.lloyds.com/market-resources/lloyds-agency/salvag...
[2] https://www.tugadvise.com/wp-content/uploads/2015/10/lloyds-...
If you're going to use two similar looking services for something using ETH, do you go with the one by some no-name or the one created and championed by community heros?
Awesome design. It is like the opposite of what I would want to control my money in any transaction.
It also makes me wonder what type of legal battle would ensue if a blackhat were to have taken all of these funds instead, I'm not sure I've seen any public high-profile cases like that yet.
This is the consequence of programmable money; there’s no getting around it, and, in my opinion, people shouldn’t want to. Rescuing people and brands who don’t put the effort into security from the consequences of their own mistakes isn’t a net benefit.
I'm all for anonymous teams, but look at the hoops this person had to jump through just to get in touch with them to report the bug.
When you're anonymous, all you have is your brand, and theirs should have burned to the ground for this entirely preventable error.
All that "rescuing" people who have fucked up does is make the system seem more artificially reliable than it is. Providing a failsafe to people who have very deliberately and explicitly eschewed failsafes (at extreme effort and by subverting the system itself, no less) seems rather pointless and paternalistic.
i'm told things have improved since then -- can anyone who's used Solidity more recently comment on this? is it true?
this, plus the fact that putting information from the real world onto the blockchain unavoidably requires some trust, seemed like the two big problems then, and it seems like they haven't really been fixed.
About Solidity in particular - I think most people would say it's not the best. There are endeavors to develop better languages but Solidity has become quiet deeply entrenched in the Ethereum world. Everybody is busy with much more pressing issues - like scalability.
[Ethereum] only makes sense if all of the following obtain:
(a) the code is 100% bug-free (b/c accidents cannot be rewound)
(b) all code-writers are 100% honest (their code does what they say)
(c) all contract participants are 100% perfect code readers (so as to not enter into fraudulent contracts)
(Strictly speaking, only one of (b) and (c) needs to be true).
None of these conditions will ever obtain.
part of the challenge was just the inherent weirdness of the ethereum execution environment, where the functions you write can be directly called by an adversary, and they can set up their own version of the stack however they want.
it didn't seem like the language helped to mitigate the inherent difficulty however.
If writing "smart contracts" is to remain not for "anybody but very seasoned developers" how can that not seem like anything but a giant gaping hole in the conceptual abstraction itself? Do you think people say the same thing about payment processors? What do you think would happen if Stripe approached its API the same way? Sure, one is a proprietary payments processing system and the other is an entire decentralized virtual machine for contracts. I get that.
But implying that "everybody is busy with much more pressing issues" despite admitting "most people would say it's not the best" really implies a blind spot. Successful technologies end up building layers where folks who aren't "very seasoned developers" can't hurt themselves. Pretending that these layers don't exist or emerge or deliver value is omission.
The idea here is that your money is provided liquidity and you'll get paid a portion of the fees as well as some new token which can have a very high value (for a fleeting moment).
This is important to realize when looking at the crazy marketing around these projects, if it's based on uniswap you can reasonably sure your principal won't get stolen - regardless of the scammy and weird marketing.
Overall, though, I do think DeFi has potential. Every attempt to anchor blockchain stuff to the real world (supply chain validation etc) seems to founder on the fact that non-blockchain solutions already exist. Providing new functionality on the blockchain seems to be more successful.
Interacting with automated contracts is an interesting extension to that system which can make things alot more complex.
The 'dark forest' comes from a kind of man-in-the-middle attack where anyone can see the order book and exploit it, by putting their own slightly better orders in. Hence the need for co-operation with a closed order book (miner) to get the transaction in safely.