I'm stunned that they had that much cryptocoin online to be stolen. Why didn't they put it in "cold storage" and only some information in the database which says how much each customer had?
OTOH I heard that the culprits didn't steal the private keys of the affected customers. If this is true the stolen cryptocoins are worthless.
> OTOH I heard that the culprits didn't steal the private keys of the affected customers. If this is true the stolen cryptocoins are worthless.
You’re misunderstanding where these coins were taken from/are now. Of course they did not get access to customer private keys, because in an exchange there isn’t really such a thing. You’re trusting the exchange to hold the coins for you, and they get put into a shared wallet that they manage with the exchange’s key.
Even if they did not have access to the exchange’s private keys and only got access to some API that let them execute the transfers, it doesn’t matter anyway, as the attackers transferred the coins into new addresses with keys controlled by them, so they’re free to move them now.
…well, mostly, the stolen USDC and USDT coins got frozen by the issuers, but those are not really decentralized as much as they are built on top of decentralized infrastructure.
Each customer's funds aren't keep in individual wallets. It's pooled into a wallet controlled by the exchange.
Exchanges do put most of the assets in a cold storage. Binance has $155B in assets and handles $14B of trade volume in 24 hours so not all of it are in a cold storage.
https://coinmarketcap.com/exchanges/binance/
AFAIK they gained access to a DevOps guy's laptop with too many privileges and just made a bunch of withdrawals into their own wallets, so they have their keys.
The only hope is that most of it gets frozen in some way or another, but if even only 1% gets through they'll still have made about $65M
This makes no sense to me. Why would a DevOps developer have access to the customer accounts including their private keys?
How can you "freeze" Bitcoin transactions? If you have the private keys you can always make transfers etc.
If they get away with $6.5 Billion Binance is done for. There's no way they'll be able to repay their customers.
Most exchanges don't use a single wallet per user, but have a small pool of wallets that all their customers share, and they just do the bookkeeping of the balances of each account. That lets them group many transactions together into a single larger transaction, or avoid a transaction entirely if it's between two users on their exchange.
So that pool of wallets that stores all their customers funds needs to be managed by the exchange somehow, meaning there's going to be some sysadmins/devs/etc that have access to parts of the system that deal with those wallets, and possibly also the keys to those wallets (which it looks like was the case here).
It's unlikely an engineer would have direct access to anything. That should be at least behind multisig. But you never know, people do dumb shit and there might have been critical private keys mounted in some random container from a subsystem made 6 years ago that was never replaced or tracked because it never made noise.
I don't work at Binance, but having been in that exact situation (SRE @ Crypto company with lots of assets, attacked by North Koreans), I'm guessing DevOps guy gave access to some CI/CD, `kubectl exec` what have you which allowed attackers to play with APIs, some settlement mechanic, some smart contract update pipeline. You don't really have to attack wallets if something less secure controls them. This really could stem from nothing, excessive permissions in a GitHub token can go very leveraged properly.
It's so crazy. As a user, you need to triple authenticate with all sorts of gates to withdraw money but here's a dev guy who can just magically, without any secondary authorizations (as far as I can tell), transfer billions. No devops/sys admin should have access to live wallets with real funds
Its more possible devops guys had access to something like AWS secrets or API tokens or some tool that generates API tokens or access to CI/CD which could grab access to one of the above
1) The coins belonged to customers, but were in Binance wallets (thus under control of Binance) - that's how exchanges work. You send them your coins, then you can trade.
2) You can't freeze Bitcoin transactions (well, the crypto bros running it could if their majority wanted to, but they don't want to), but some of the stolen coins were stablecoins like USDT and USDC.
And fiat-backed stablecoins are ipso facto centralised (someone needs to 1) take receipt of fiat and issue coins against that, 2) custody that fiat and hold on to it reliably, and 3) return the fiat when given back the coins). You can then with the private key send the coins back to the issuer, but the issuer can refuse to give you the fiat.
However, many stable coin smart contracts are even more powerful: they give the issuer an authorized control account that can add a wallet address to a blacklist. The contract checks that list whenever someone tries to move the token; if the address is blocked, it rejects the transfer. Then the balance can’t be moved.
There’s a small difference: USDC blocks transfers both to and from a blacklisted address. USDT generally blocks the address from sending USDT, though it may still receive USDT. Tether’s contract also has a separate function that can destroy tokens held at a blacklisted address; that is distinct from simply freezing them. Note that when they destroy tokens, Tether keeps the cash - so it's a transfer from the criminals (or whoever held the tokens) to Tether. (Tether can then re-issue the coins and hand them back to law enforcement or the victim, but that's a separate step.)
It's probably less that he had "access" and more like it maintained some underlying systems.