Escaping the Dark Forest(samczsun.com) |
Escaping the Dark Forest(samczsun.com) |
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 ?
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 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?
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.
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.
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.
The 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.
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?
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.
Here they actually managed to save the funds.
Note that a marketplace contract like this isn't the only kind of smart contract; it's not the case that all smart contracts have the potential for front-running vulnerabilities. For example, there are smart contracts that do things like manage community funds and require people to vote on how the funds are spent, which don't do anything that could be vulnerable to front-running.
I agree. Due to specialized compute taking over mining and economies of scale most cryptocurrencies don't do what they say and are manipulated by their big pools (like this) consistently.
Did you pay attention to the recent Bloomberg article about cryptocurrencies being the best gaining asset class of 2020, or the article about the $2 trillion dollars worth of laundered money being done using traditional USD and banks? And how much money was laundered through Bitcoin again? A money that is very hard to hide. Bitcoin has smart contracting so it would appear you're just regurgitating things you've read rather than reaching into an in-dept knowledge on this subject.
And tulips were the best gaining asset class of 1636. The existence of speculation is not proof of the soundness of the underlying asset.
> trillion dollars worth of laundered money being done using traditional USD
The difference being that I have firsthand knowledge of honest economic activity being conducted with USD. I see practically zero evidence of cryptocurrencies being used in any honest economic activity, other than speculation.
> Bitcoin has smart contracting
Yes, but my understanding is that Ethereum can handle much more complex contracts.
Well, at least it's used for business! Do people use eth for meatspace transactions, at all?
Need more reasons?
Also, there are patterns where the user needs to confirm that yes they want to use the new version.
There are also systems of insurance on contracts.
Not following here, instead of process you mean no requirement to do so? The process is pretty clear and simple, there's a few different frameworks being built for smart contract formal verification along with the traditional methods working fine.
What was the last bit of code you wrote or used that was formally verified?
https://sci-hub.se/https://ieeexplore.ieee.org/document/8905...
If anyone could just replace an address and execute a profitable transaction by being first on existing contracts, surely miners would be doing it already, no?
To a large degree not yet.
They don't need to understand anything really except how to deposit 5000+ in a reputable exchange. I think this makes up most successful crypto investors.
https://www.forbes.com/sites/michaeldelcastillo/2020/08/06/v...
I know what you mean by "no underlying assets" but I'd say it's arguable. Does BTC (WBTC) have value? By this time it seems like it does. There are also billions of dollars of "stablecoins" on the network. Are they a valid underlying asset? So far it seems like they are... Things have no underlying value until they all of a sudden do, I think that's the story of Bitcoin. A story of value too.
no one is responsible, that's the whole point. The thing runs by itself and game theory keeps it afloat - not a group of people. Else it's just like a company.
That said, the protocol isn't finished and you have people involved in maintaining and upgrading the protocol. Which is in no way forced down upon everyone: once they have an update everyone is free to choose to run it or not.
These people have influence (you could argue too much) about the future of the protocol.
> if your arbitrage trade takes away too much money from an account belong the core devs
This is not why these decisions were made at all, because some core dev instested in the DAO.
I don't see that as equal to "rich".
Another possibility is that you have a high risk tolerance as well as an uncommon knack for this sort of thing that most people don’t have.
In total, I did this with about 40 different farms. There was a time when there were several new ones every day. For a while it was pretty much a 24/7 job as maximizing apy required constantly jumping to some new hype. I was constantly afraid of depositing into a contract that would allow the owner to steal everything, but the worst I noticed were locking bugs + two contracts that allowed the owner to mint infinite tokens (of these two, only one used it to clean the liquidity pool).
The list of farms in that reddit post is obsolete (I think only sushiswap is still running, but with low roi), in general this particular way of making money has run its course.
There is a line from a movie ...
"Short everything that guy has touched"
Ding ding. Which is why returns won't last as the information asymmetry curve is flattened.
If you want to dabble in crypto, make a Coinbase account and go 50/50 BTC and ETH, and don't sell until you retire.
If you want to play with the fast money Defi, then you need to do a lot of self-study and learning.
The decision-making and communities of Ethereum (this goes both for the clients, the blockchain, the foundation and the larger community) looks completely different today compared to 2015. There has been a lot of lessons learnt, debate and churn since.
If they same thing happened today, it'd play out completely differently.
See the Parity Multisig hack, for one.
Finally, it's a stretch to call the dao hack "arbitrage trade".
It is absolutely not. It is exactly the same from the value judgments of the ETH project, specifically "Code is Law". The DAO specifically went as far as endorsing that the software execution takes precedence over the reading of the English functionality spec.
The ETH system, but the core values of ETH, should do exactly what your arb contract specifies, and exactly what the DAO contracts specify, even and especially if that's not what the writer originally intended. To selectively reneg on that principle would be wrong for the same reason as doing it on an arb contract.
> the simultaneous purchase and sale of the same securities, commodities, or foreign exchange in different markets to profit from unequal prices.
What’s being bought and sold? Who’s the counterparty?
I’m not arguing right and wrong, just that you can’t call any permissionless extraction of value from a contract “arbitrage trade”.
And again, incorrectly assuming that 1) it somehow sets a precedent 2) the people making the decision then are the same that would be making it today 3) the overlapping people would make the same decision today as then 4) the EF and core devs have a strong authority on these matters
There’s always ETC if you want to stay on the timeline where the DAO hack executed as specified without being overridden. No one forced anyone to fork.
So yes, it is crazy and complex and difficult, but the rewards are vast for those that dare enter the world.
Timing markets at the hour level is fraught with risk and cannot generally be done without information not known to the broader market.
A major disservice, doubly so in a risky space like cryptocurrency and on a public forum. This really just makes the space seem even less trustworthy.
How that value is earned and calculated are interesting questions.
Not directly, but to a hypothetical criminal with millions of USD in illegally obtained currency investing into tokens, hyping said tokens (including, of course, giveaways) and then selling tokens on a peak could look quite compelling. I presume typically laundering loses money, but in this case it could even be possible to make a profit.
I believe it’s more than fair to request specifics since we can’t know whether poster’s solvency depends on a token appreciating in value—after all, if it does, what’s a better way to maintain token value than promise millions on a public forum?