10 ms·
Binance Smart Chain DeFi Project Hacked for $31M
- sillysaurusx 6y agoAccording to media reports, the Meerkat Finance team made a brief note about the hack in Telegram but have since disappeared from all social media platforms. Their website and Twitter accounts are disabled, and the Telegram group is now deleted too. Distressed users have reached out to Binance CEO Chanpeng Zhao, hoping that the CEO can track down the money. CZ has not replied to any comment on Twitter. Know that feeling. Welcome to Mt. Gox in 201x. Go stare at a lake and make peace that your money is gone. (Then post loss porn so that you can get a few internet points out of it.) By the way, as a registered member of Mt Gox, I was able to view every single claim posted by every other Mt Gox user, which was very surprising. It's essentially a giant table of confirmed claims, with 2,000 pages. You can hardly scroll more than a page before finding someone with a confirmed claim of ~1,200 BTC or so. So, take comfort that there are always bigger losses. :)
- Avalaxy 6y agoThe different is that Mt Gox was run by a wildly incompetent guy. This one was just a plain scam. Especially back in 2013/2014 I have personally managed many exchanges "disappear". The excuse was usually that they were hacked, but it was clear they were just scams where the founder ran off with the money. It highlights the importance of regulation.
- WanderPanda 6y ago* It highlights the importance of trustless systems Not your keys not your coins!
- iamben 6y agoI don't have the keys to my bank...
- hulahoof 6y agoMakes you think
- tromp 6y agoThat's fine. Your bank doesn't pretend to be decentralized. Cryptocurrencies do. And in doing so, shift the responsibility of safeguarding the keys to the user.
- iamben 6y agoI wasn't making a point about centralised or decentralised currency/money/finance? It was regarding the 'regulation' thing. Cryptocurrency is only ever going to work for John Everyman if the industry starts to mature a bit. Blaming the user when another exchange gets ripped off doesn't exactly scream 'legit', does it?
- anthony_d 6y agoCoinbase also doesn't pretend to be decentralized and the bank analogy holds pretty well for them. I'm not sure it's meaningful to say cryptocurrencies are decentralized. Decentralization is more of a social phenomenon than technical, e.g. cash is decentralized but socially we've found advantages to centralize.
- hulahoof 6y agoCash is most certainly not decentralised, unless you are using some uncommon definition of 'cash'
- asimpletune 6y agoHow is cash not decentralized? I can pay anyone anywhere for anything and I don’t need any centralized infrastructure.
- nayuki 6y agoThe issuance of gold is decentralized. The issuance of cash is centralized, unless you believe in counterfeiting. However, the transacting and storage of both cash and gold are decentralized.
- intricatedetail 6y agoDon't we already have laws against fraud? Unless by regulation you mean preempting any chance of someone running a scam?
- intotheabyss 6y agoThis is BSC we're talking about here. All Binance needs to do is blacklist those funds, after-all, they control the consensus of their network.
- tiku 6y agoCan they blacklist addresses/funds directly on the blockchain itself with smart contracts?
- qqii 6y agoSince it is assumed that Binance owns the validator they could simply blacklist the address from ever making transactions.
- londons_explore 6y agoI assume that before they can do that these funds will go through a bunch of other smart contracts, be swapped for monero, mixed a bunch of times and eventually cashed out.
- leppr 6y agoYou seem to mix-up "smart contracts" and the platform on which they run. On BSC, Binance effectively controls all smart contracts, since they control the chain itself. And given that all bridges with the outside world are also centralized in a way, the only way for the scammers to cash out would have been to swap before anyone notices.
- qqii 6y agoIf you're interested you can follow the funds yourself: https://bscscan.com/address/0x9542966f1114eaa5859201aa8d34358bfedbfa79 https://bscscan.com/address/0x9542966f1114eaa5859201aa8d3435... As far as I know BSC doesn't have any mixers, nor aomtic swaps exchanges.
- suifbwish 6y ago
- simonebrunozzi 6y agoIf it's indeed a scam, people that lost their money should pool some money, hire a law firm, and sue.
- AuryGlenz 6y agoI lost quite a bit on btc-e, but in that case our government stole it.
- ArtTimeInvestor 6y agoThe article makes it sound like a smart contract was hacked. Which is not possible under a "code is law" perspective. Will be interesting to see what really happened.
- bombcar 6y agoGiven that all forms of communication with the team are dead, it sounds like a standard exit scam to me.
- ArtTimeInvestor 6y agoYou mean they put a backdoor into their smart contract? Or did they hold the money off chain?
- deweller 6y agoIt wasn't a back door. They modified the smart contract and drained the crypto. > The hackers implemented a change in the ownership of the smart contract address.
- ArtTimeInvestor 6y agoSmart contracts are immutable. How do you mean they "changed" it? What is "ownership" of a smart contract?
- jcfrei 6y agoYou can write smart contracts which are upgradable (by moving the assets/tokens to a new address with new code). The upgrade to a different contract can either be triggered by votes or by the author depending on the setup.
- qqii 6y agoThis is incorrect, unless you can argue that they were so incompitent they wrote '0' instead of 'O' on line 304: bytes32 slot = ADMIN_SL0T; https://bscscan.com/address/0x7e0c621ea9f7afd5b86a50b0942eaee68b04a61c#code https://bscscan.com/address/0x7e0c621ea9f7afd5b86a50b0942eae... These kind of rug pulls are more uncommon but not rare, they give the developers some level of plausible deniability. Even so their actions after speak volumes.
- koolba 6y agoI bet there is likely more people working on stealing from these defi projects than people creating them. Probably more capital efficient too.
- deweller 6y agoI expect you are right. But the hostile environment does eventually promote better security and safety practices.
- hiq 6y agoOnly insofar as Darwinism comes into play and vulnerabilities kill unsecure projects. It doesn't look like new projects are safer than older ones.
- rodiger 6y agoThis was a rug-pull, not a hack. The actual hacks you'll see today are significantly different from those of last summer so there's been some measurable progress.
- hiq 6y ago> This was a rug-pull, not a hack. Who the attacker is does not matter. This comment seems to describe the vulnerability (intentionally implemented, but again, it doesn't matter) as a homoglyph attack: https://news.ycombinator.com/item?id=26358767 https://news.ycombinator.com/item?id=26358767 Homoglyph attacks are not new. Even for Solidity, they are at least 4 years old: https://github.com/Arachnid/uscc/tree/master/submissions-2017/marcogiglio https://github.com/Arachnid/uscc/tree/master/submissions-201... > // The e in the 'refunds' string is the unicode char U+0435, also known as Cyrillic small ie > uint weiAmount = balances['rеfunds'][msg.sender]; (from the README) > The actual hacks you'll see today are significantly different from those of last summer so there's been some measurable progress. They might or might not be different, the fact remains that they have gained little in sophistication, which would be a more relevant measure of progress. As I mentioned in another comment, this is not the kind of flaw that would have passed a diligent 3rd party audit, and yet the thieves got $31M from it.
- DigitalSea 6y agoI have no knowledge of the attack nor am I familiar with how it happened, but it sounds like the founders could possibly be involved in this.
- qqii 6y agoI found it strange that the title and beginning of the article reffered to this as a "hack" instead of what the test of the article suggests - a rug pull by the developers themselves. Since everything has been scrubbed the only suggested that they've been hacked comes from a cropped screenshot of their telegram channel which I found in this article: https://obelisk.medium.com/meerkat-finance-and-the-0-that-was-worth-31m-769d9321d245 https://obelisk.medium.com/meerkat-finance-and-the-0-that-wa... The article also clearly shows in the smart contact that this was premeditated. Edit: It's also important for context to note that 31 Million TVL (Total Value Locked) isn't low but isn't high for a DeFi project. You can get a sense of the TVLs by looking at other projects on Ethereum ($39B total https://defipulse.com/ https://defipulse.com/) and the Binance Smart Chain ($9B total https://www.defistation.io/ https://www.defistation.io/)
- qqii 6y agoIn short the backdoor is the following: bytes32 internal constant ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103; // this is the getter function _admin() internal view returns (address adm) { bytes32 slot = ADMIN_SLOT; assembly { // return the memory at slot adm := sload(slot) } } // notice the 0 and the different, off by 1 hash bytes32 internal constant ADMIN_SL0T = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6102; // this is the setter, this doesn't set the same value as the getter, in effect the admin cannot be changed function _setAdmin(address newAdmin) internal { bytes32 slot = ADMIN_SL0T; assembly { // set the memory at slot to the value of newAdmin sstore(slot, newAdmin) } } https://bscscan.com/address/0x7e0c621ea9f7afd5b86a50b0942eaee68b04a61c#code https://bscscan.com/address/0x7e0c621ea9f7afd5b86a50b0942eae... Then when you (indirectly) call _setAdmin you can pretend that you no longer have powers to upgrade the contract.
- sillysaurusx 6y agoI was ready to make fun of this, but damn, that's fairly clever. (Readers, be sure to read the actual code: https://bscscan.com/address/0x7e0c621ea9f7afd5b86a50b0942eaee68b04a61c#code https://bscscan.com/address/0x7e0c621ea9f7afd5b86a50b0942eae...) A casual glance through the code won't show anything amiss. The ADMIN_SLOT and ADMIN_SL0T are defined in very different places. SL0T is also the closet fake character you could use, except maybe ADM1N_SLOT. Then when you (indirectly) call _setAdmin you can pretend that you no longer have powers to upgrade the contract. I know nothing about smart contracts, though, so, question: why is that a backdoor? What does it mean?
- deleted 6y ago[deleted]
- StavrosK 6y ago"Hey if you give me $100 I'll invest it for you" "OK, here" "Oh oops someone stole it, that's too bad for you, oh well bye!"
- suifbwish 6y agoUsually it works better if you are looking for someone to invest in. You have to find the projects that need your money because only scammers and sales people are good at reaching you otherwise.
- jcpham2 6y agoI still think smart contracts are pretty stupid for your everyday person that wants their government to make them whole when they get fleeced. The whole idea of contract in a legal sense is a human construct. The age old bitcoin joke is that loans are gifts. I’ve used bitcoin for a decade and never touched binance. Mt. Gox creditor never bothered filing a claim either. I could tell you stories about 10 other domains and sites that were trusted that did the same thing. Not your keys, not your coins; not in funny internet money land.
- qqii 6y agoSmart contacts doesn't prevent people from investing in ponzi schemes. What smart contracts do provide is a stricter framework to express guarantees. A good example of a real, everyday use case for smart contracts is NBA Top Shot. Unlike regular collectable the smart contact guarantees the company cannot decide to manufacture more of a rare item, it allows verification of the supply and traded value. A lending contract like Aave simply formalises the economic contracts behind lending. By doing so it can provide stricter guarantees about enforcement. It's not so much of a contract but a strict set of bindings that the EVM will enforce. If you've stayed away from binance perhaps you've used or hear of atomic swaps? They're especially smart contacts that aren't tied to any chain. A strict set of rules and moves to guarentee that the contract of swapping is withheld by both parties.
- leppr 6y agoDoesn't diminish your point in itself, but NBA Top Shot is a bad example since it runs on a centralized chain (Flow) and even recently had drama about a user being locked from withdrawing their funds [1]. There are tons of ways trust assumptions about smart contracts can be misunderstood. The current general education level about crypto seems similar to when snake oil sellers where sprinkling "artifical intelligence" in their products to make them "smarter". A drip of "blockchain" and suddenly your product is "trustless". [1]: https://defited.medium.com/my-centralized-experience-dapper-3d3e3a99cbd7 https://defited.medium.com/my-centralized-experience-dapper-...
- 6y ago
- casi 6y agoHighly recommend https://www.rekt.news/ https://www.rekt.news/ for reports on crypto hacks and rugs.
- YuccaGloriosa 6y agoBinance website states : What are the advantages of DeFi Staking? 1.Easy to use: You don't need to manage private keys, acquire resources, make trades, or perform other complicated tasks to participate in DeFi Staking. Binance's one-stop service allows users to obtain generous online rewards without having to keep an on-chain wallet. 2. Funds are safe: Binance selects only the best DeFi projects in the industry and monitors the DeFi system in real-time while it's running in order to reduce the risks associated with such projects. Then go on to say : Does Binance bear the losses if an on-chain contract is attacked during DeFi Staking? No. Binance only acts as a platform to showcase projects and provide users with related services, such as accessing funds on behalf of the user and distributing earnings, etc. Binance does not bear any liability for losses incurred as a result of on-chain contract security. --- So if you don't have the keys, and there aren't liable, that's a bit messed up.
- rodiger 6y agoLiability is a legal umbrella- I'm fairly confident they will at the very least freeze these funds (which isn't much for rug-pulled users but it's something). It's a federated network so well within their ability.
- alasdair_ 6y ago“Funds are safe” seems like a pretty good basis for a lawsuit.
- ksdnjweusdnkl21 6y agoSince the OP didn't include a link I'm assuming "Binance one-stop platform" is a vetted subset of all Binance Smart Chain platforms. In the case of this article I'm pretty sure Binance has not endorsed the "hacked" platform. I think the BSC is an open network and anyone can create their own smartcontracts in there. A popular new platform on BSC goosedefi has been forked hundreds of times, and most of them have failed within days with either developers or early users dumping the price. It's a big risk putting your money on any of these platforms, most of them are basically elaborate ponzi schemes promising big APR but leaves people bagholding a worthless token. A very few lucky platforms with good developers go on and become stable established defi platforms like sushiswap.
- rasz 6y ago> provide services allowing for users to leverage their position while staking yes, this totally sounds not made up
- eternalny1 6y agoFascinating that using a 0 (zero) instead of an O let them backdoor this. function _setAdmin(address newAdmin) internal { bytes32 slot = ADMIN_SL0T; assembly { sstore(slot, newAdmin) } } https://obelisk.medium.com/meerkat-finance-and-the-0-that-was-worth-31m-769d9321d245 https://obelisk.medium.com/meerkat-finance-and-the-0-that-wa...
- TacticalCoder 6y agoSo basically an homograph attack, in this case to dodge code reviews? This reminds me of Bruce Schneier's article "Unicode is too complex to ever be secure", except in this case ASCII too apparently ; ) Which makes me wonder: for such sensitive programming languages, shouldn't the specs be much more restrictive and for example only allow 'A' to 'Z' in variable names, no digits, no lowercases, etc.?
- dane-pgp 6y agoOr shouldn't there be a linter as part of the standard tooling which warns if there are two variables or functions with similar looking names? It could also check for similar looking hex strings, which would have caught the off-by-one hashes.
- okareaman 6y agoyet another Bernie Madoff coin, as in they made off with my money
- X6S1x6Okd1st 6y agoIt looks like it's an "upgradable contact" that means the admin can do whatever they want with funds you send there. No exploit or hack needed to lose your funds. Really I'd say that project just isn't DeFI, but an on chain hedge fund. DeFI is usually non custodial meaning that the creator doesn't have the ability to touch your funds.
- qqii 6y agoThe exploit is pretending to time lock your admin powers whilst still retaining them.
- timdaub 6y agoShameless plug, I have a pet project that rates assets by their risk of getting rug pulled: https://rugpullindex.com https://rugpullindex.com It's only working for a small set of pools right now.