A Typo Sent $36 Million of Crypto Into the Ether (cnet.com) 141
An anonymous reader shares a report: One of the key selling points of the blockchain is that it's immutable: Once data is processed, once a transaction occurs, it can't be undone. One of the most painful downsides to the blockchain? It's immutable. If human error causes something to be sold for the wrong price or money to be sent to the wrong place, reversing it can be difficult or even impossible. That is the unfortunate place developers of the Juno cryptocurrency find themselves. A community vote had decreed that around 3 million Juno tokens, worth around $36 million, be seized from an investor deemed to have acquired the tokens via malicious means. (This in itself was a big crypto news story.) The funds were to be sent to a wallet controlled by Juno token holders, who could vote on how it would be spent.
But a developer inadvertently copy and pasted the wrong wallet address, as reported by CoinDesk, leading to $36 million in crypto being sent to an inaccessible address. Andrea Di Michele, one of Juno's founding developers, explained to the publication that he sent the correct wallet address to the developer responsible for the transfer, as well as a hash number. Hashes connect blocks to one another in the blockchain, and at a glance hash numbers can look very similar to wallet addresses. The programmer in charge for the transfer accidentally copied and pasted the hash number, rather than the wallet address.
But a developer inadvertently copy and pasted the wrong wallet address, as reported by CoinDesk, leading to $36 million in crypto being sent to an inaccessible address. Andrea Di Michele, one of Juno's founding developers, explained to the publication that he sent the correct wallet address to the developer responsible for the transfer, as well as a hash number. Hashes connect blocks to one another in the blockchain, and at a glance hash numbers can look very similar to wallet addresses. The programmer in charge for the transfer accidentally copied and pasted the hash number, rather than the wallet address.
Comment removed (Score:5, Interesting)
Re:I'm not understanding this (Score:5, Informative)
The wallet is effectively created by the first transaction that sends the money into it. However, if you used a random public key instead of creating a proper public+private pair, tough luck brute forcing the private key from the randomly chosen public one.
Re: (Score:2)
That's not the problem (Score:2)
Any random string of bits can be used as an address to send cryptocoins to. However, to use them, ie make them go to another address (presumably in return of some service or good or other), you need to know the private key associated with the address, which in fact functions as a public key. Use the private key to sign the order to transer, stick it on the blockchain, and presto, off go the coins.
So the problem described is one of accidentally sending the coins to an address for which the private key is no
Re: (Score:2)
Re: (Score:2)
The wallet is effectively created by the first transaction that sends the money into it. However, if you used a random public key instead of creating a proper public+private pair, tough luck brute forcing the private key from the randomly chosen public one.
Yes that part is obvious, but what isn't obvious is how they "voted" to "sieze" money from a 3rd party. Unless that 3rd party was stupid enough to have his private key managed by someone else who was subject to this vote.
And honestly given how every story I hear about bitcoin seems to be centered around the dumbest stupid people imaginable I wouldn't rule it out, but is there a technical thing I'm missing here?
Re: (Score:2)
Re: (Score:2)
Ah...so now it's an Easter egg hunt. Guess they just offered $36 million to break their own encryption system, at least once.
Re:I'm not understanding this (Score:4, Informative)
Re: (Score:2)
Re: (Score:2)
It's still a problem, just a much smaller one than was implied. It's silly that it takes even a week to sort out a problem like this. Perhaps there should be some form of address verification system so they can be sure that it was delivered somewhere.
Re: (Score:3)
Yes.
If you get 51% of the network on board, you can do anything you want with the ledger. That is part of the system.
In the past when pools approached that magic number, miners moved away:
https://www.coindesk.com/marke... [coindesk.com]
I remember, in one case the pool itself took precaution.
So, basically the headline is "nothing burger". The "fix" is already in there.
Re: (Score:2)
Wallets are generated offline independent of the chain.
You can generate public/private keys in a loop all day long and have millions and millions of reserve wallets ready to go. And all of this without ever interacting with the block chain. There is no such way to detect if someone has a wallet.
But but but how do they stop someone from generating a public/private key pair if someone if already using it!?!?
THEY DO NOT. The wallet it protected only by sheer number and the odds of someone creating the same
Re: (Score:2)
However, there was a report of someone doing nothing but creating wallets and checking balances and actually hitting on an account with a balance
If there was, it was a problem/bug with the nonce source or key pair generation. Or the report is a lie
Re: (Score:2)
People used to generate shitty wallets, they would take a normal password like 'hunter2' and run it through a boring old hash function like CRC32 to generate shitty keys like '2747fc56', instead of generating cryptographically secure random keys.
Re: (Score:2)
You can generate public/private keys in a loop all day long and have millions and millions of reserve wallets ready to go.
Sounds like a good idea actually. Like the crypto version of typosquatting domains.
Re: (Score:3, Interesting)
Yes. Put it this way. I can't paste the number of Bitcoin wallets because Slashdot thinks it's ASCII art.
https://privacypros.io/btc-faq... [privacypros.io]
As long as Bitcoin uses the RIPEMD160 hash function, there are 2^160 Bitcoin addresses.
That number is: "Filter error: Looks like ascii art."
Simply dividing up that number so that each of the 7.442 billion people living on earth can have an equal number of Bitcoin addresses won’t work because there aren’t enough people living on Earth to make that number any
Re: (Score:3)
Just wait until you write a page worth of essay, and keep getting that filter error because somewhere deep in a paragraph you were so bold as to use elipises a single time.
The filtering is a fucking joke, and that's shocking for what used to be a premier technology site.
Re: (Score:2)
Hmm, I've never had problems with ellipses, unless I accidentally type more than 3 dots
Re: I'm not understanding this (Score:2)
Whereas I apparently type multiple dots often. I never knew I was so artsy
Re: (Score:2)
Comment removed (Score:5, Insightful)
Re: (Score:3)
Most money, crypto or otherwise, is held on ledgers, and has been for a loooong time. There was even an island tribe that used giant rocks collected from other islands as money. They obviously didn't carry them around with them but just recorded transactions, which was very handy when a boat carrying a bunch of the rocks sank. They just kept using them.
Banks sometimes misplace money, or send it to the wrong place too. Double entry accounting helps a lot. Many cryptocurrencies are constructed so that such th
Re: (Score:2)
> Banks sometimes misplace money, or send it to the wrong place too.
You could undo a transaction of that nature.
A better analogy would be:
This is like the Spanish fleet transferring gold bricks from the Americas to Europe... and it just sank in the deepest part of the Atlantic Ocean. We know it's there and how much but we have no way of getting it... in this lifetime.
Re: (Score:3)
Although this one seems to be different. You can undo transactions, you just have to get a majority of internet crypto freaks to agree.
Re: (Score:3)
Re: (Score:3)
I wasn't under the impression that the Yap stone currency was subject to a central authority. It seems like a fairly good analogy to cryptocurrencies: transactions are performed on an abstract ledger and represent trading of a scarce resource whose value is entirely a matter of group consensus.
Bitcoin is designed so that the only authority that can perform a transaction is whoever holds the private key for the originating wallet. You can't even refuse a bitcoin transaction. Designed that way as far as is po
Re: (Score:3)
Most money, crypto or otherwise, is held on ledgers, and has been for a loooong time.
Most money may be accounted for in ledgers, but it exists in a way that these legers are balanced. If you try to send money to a non-existent SWIFT account the transaction fails. If you try to send money a European IBAN and mistype a character the transaction won't even start since the account numbers themselves have mathematical checks for validity.
On the flip side on crypto you can type in any nonsense and it will be happily committed to a ledger and locked away by the power of math.
Re: (Score:3)
It hasn't always, in all places, been done this way. It's pretty universal now because thousands of years of experience have taught us it's a good thing to do.
Naturally when some dudes on the Internet design a new financial system purposely intended to break the old one, they toss most of that experience.
Re: (Score:2)
Re: (Score:2)
I'm not going to quote myself in reply again. Read posts before you reply.
Re: (Score:2)
Re: (Score:2, Offtopic)
If it was real money, it'd still exist in a form which could be located, identified and recovered.
On average, a bank holds a mere fraction of its actual holdings on paper. If everyone wanted to go get their money right now, the shit-uation that would unfold at every major bank would show you how "real" anything is.
Hard to lose $36 million? That doesn't even represent a rounding error in government spending bills. Incompetence can hide or lose $36 million. Corruption takes a hell of a lot more.
Re:So . . . nothing of value was lost. (Score:4, Insightful)
In the case where there is a run on a bank, whether or not that causes a larger problem depends on whether the bank can convert assets to cash without taking large losses. In the current environment that's not so terribly difficult. Banks can sell mortgages to the US government and get a lot of cash quickly.
The auto loans they've made are a bit harder. Credit card loans can't be sold quickly but banks also have access to the federal reserve's discount window and inter-bank loans.
Large, publicly-traded banks, are pretty much immune to this. Even if their customers organized to all take their money simultaneously, unless that money ended up under mattresses, it would get deposited somewhere else and the "target" bank would just go borrow money from somewhere else. Of course other borrowing mechanisms are more expensive than taking deposits so it would hurt profits, but the bank wouldn't become insolvent.
Re: (Score:2)
Isn't this a good thing? (Score:5, Insightful)
Re: (Score:2)
Re: (Score:2)
the point of crypto is to artificially constrain the supply so that the value goes up over time
I thought the point of crypto was money laundering and other criminal activities? There are also plenty of coins/tokens that don't have a supply limit. Dogecoin is one of them
That's not fair! (Score:2)
Why, there's a whole world of terrible uses for cryptocurrencies. I sure am glad the market is worth over $1.7 trillion. No way that'll ever bleed over into the larger financial markets and cause a massive recession. Nosiree.
Re: (Score:2)
HSBC has that covered already.
Re: (Score:3)
A "community vote" (Score:5, Insightful)
I've been saying this for a while, but with the centralization of crypto around mining pools and exchanges it becomes possible to do a 51% attack.
The mining pools have the means but not the motive. The exchanges bring the motive, since the exchanges interact with the broader financial markets and have an incentive to police them in a way that aligns with existing banking and finance law. Even if we all stop using fiat currency those social and political structures don't magically go away.
So what happens when an exchange decides your money is stolen property? Well, if you store it in the exchange they just seize it. But if you keep it out of there, going peer to peer (and you can find anyone who'll take it from you, since the money is now permanently locked out of the exchanges) the exchanges can just go to the mining pools and say "make it so".
Why would the mining pools do that? Well, they depend heavily on the exchanges to, well, exchange the currency their mining. Without the exchanges the pools don't have a reliable and safe place to offload their mined currency to. It's too difficult and risky to hand it out themselves. And remember, they still need cash to buy electricity, water and GPUs. Even if they can use crypto for that in the future they still need to use the "right" crypto, and many merchants would want to have an exchange in between them and someone else to protect them from taking "stolen" crypto currency.
So the pools are locked into the exchanges, the exchanges are locked into banking and finance, and both are heavily centralized due to basic market realities (successful players expand and the back of their successes, buy out competitors, smaller ones go out of business or get bought, etc, etc).
TL;DR; we've literally just recreated the banking system, with the Exchanges as the banks and the pools as the federal reserve, and a fuck ton of electricity and electronics being wasted.
Good job there.
Re: (Score:2)
If that was the point (Score:2)
It's not deregulated though (Score:2)
We're creating a finance system that's the worst of all worlds. It'll bail out the big guys while leaving small fish to twist in the wind. This is why anyone with sanity wants to kill it with fire.
Re: (Score:2)
I don't think this is a 51% attack issue. If it were then there would be zero reason they couldn't vote to recover the money.
Re: (Score:3)
Yeah, good and valid point there!
I think crypto is probably more about decentralizing things from a specific nation's government than about truly eliminating the concept that SOME entities will be able to exert some central control over it?
Ultimately, I think the majority of people feel like stolen currency, whether in the form of crypto or in the form of a central government issued/backed version, is undesirable.
The exchanges are only locked into the central government's established banking and finance sys
Re: (Score:2)
Won't happen, because Exchanges and Miners depend on their Crypto having value, it would be insane for them to destroy their own company to end up with nothing.
All cryptocurrencies will be lost eventually (Score:3)
Shit Design. (Score:5, Insightful)
"The programmer in charge for the transfer accidentally copied and pasted the hash number, rather than the wallet address."
Hashes and wallet addresses are the exact same length, and offer zero validation checks within systems?
That's not an error. That's an absolute shit design that could have prevented a $36 million dollar "oops".
Re: (Score:2)
Even if there is a technical reason why the hashes and wallets need to be the same length/format (which I don't think there is), it seems like a simple check to the chain "Hey, the Target Wallet does not currently exist in the blockchain, are you sure you wish to transfer?" would have prevented this.
Re:Shit Design. (Score:4, Interesting)
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
That's not an error. That's an absolute shit design
Define "shit design". I think the whole point of wallet addresses is that they aren't predictable and mathematically either random or generated from a passphrase. It's shit usability, but it was entirely by design for the purposes of security. Crypto morons are finding security also means protecting people from correcting mistakes.
Re: (Score:2)
It's shit design, as in an utter failure to design and validate inputs. No way in hell should a system like that be able to mistake a hash for a wallet address. One field could have been one character longer or shorter, and with proper validation would have rejected the bad/wrong input. And with a one-character modification, crypto could still retain all of the obfuscation they were selling before with addresses.
I don't care if you're making a banking app or a wordcross game. Humans making mistakes isn'
Re: (Score:2)
We knew that it was *shit* by the developer who “copy&wasted” $36M crypto transfer instruction.
What Dev would ever do that? At the crypto-level? It’s a story. An unbelievable one
Re: (Score:2)
Hate to say it, But! (Score:3)
But in reality, Was it really an oops? (Score:2)
Re: (Score:2)
"Code is Law" is dumb (Score:5, Insightful)
Another good example of why "Code is Law" is just plain dumb.
It's an attempt by people who don't like dealing with people to just somehow factor people right out of the system.
But currency is fundamentally about relationships people have with other people. Payments, debts, and all the rest don't make any sense if you somehow remove the people you are paying, the people who are paying you, the people who owe you a debt, the people you owe a debt, and all the rest from the system.
The PEOPLE are literally what it is all about. You can remove them entirely but then the entire system is pointless.
Every flaw in crypto revolves around #1. Flaws or bugs in the code. Which is basically an insoluble problem, because you just can't design a complex system in such a way that it doesn't have unexpected flaws. #2. The place where the system inevitably must interface with actual people. This is where things like the 51% attack come into play.
"Code is Law" is just plain dumb.
Re: (Score:2)
Better UI would help with such issues (Score:2)
immutable (Score:2)
Many functional languages use immutable data structures. They can still be used to convey the meaning that the programmer desires.
Just being an immutable structure should not prevent adding a new transaction that effectively amends a previous transaction. The developer clearly has some god-like powers to direct transfers, so apparently not all access to this blockchain is equal
wow (Score:2)
Safer than banks alright, where do I sign up?
Re: (Score:2)
No need to sign up. Your local elected representatives are scrambling to join in on the fun using YOUR money.
test send? (Score:4, Interesting)
May I say with full irony (Score:3)
"And nothing of value was lost" .
As I wait for a decision in the MtGox settlement, (Score:2)
Long story short, a developer screwed things up (Score:3)
First, why in the hell was a developer selected/used to copy/paste anything in this case? What possible reason could be given to do this?
Second, if this developer is this inept to a) copy/paste the wrong wallet and b) too lazy to check their work before committing, that speaks volumes about their coding abilities.
Third, HAHA!
Stolen (Score:4, Funny)
Typo? (Score:3)
Re: (Score:2)
But lets put this shit in our retirement accounts. (Score:3)
Seems totally reasonable. /s
He who holds the keys... (Score:3)
"One of the key selling points of the blockchain is that it's immutable"
Bank records are (supposedly) immutable as well. Banks don't reverse a transaction by erasing it from their journals; instead, they add an entry that undoes the original entry. The same could be done on a blockchain, except...
No single entity holds the keys to all the wallets. This is the *real* distinction between banks and the blockchain. Banks can take your money if the government tells them to do so. Nobody can take your bitcoin, because you are (hopefully) the sole holder of the key to your wallet.
So Sue (Score:2)
The programmer in charge for the transfer accidentally copied and pasted the hash number, rather than the wallet address.
So is anyone suing this programmer and/or his employer? Or is "the community" not a legal entity? If there's no organisation responsible then presumably the returns are just too low to be worth it, because what programmer is worth $36 million? Or maybe there are jurisdictional issues (responsible parties don't reside in a convenient country).
Something to think about before working in crypto. I can't imagine that liability insurance for this kind of screw-up is affordable.
Re: (Score:2)
Making a wallet generates a random public and private key.
If you could generate any wallet with a known public key of your choosing AND get the private key what the fuck kind of security would that be?
Re:make a wallet (Score:5, Funny)
I had to laugh at awwshit's comment.
Can you imagine being the one that generates a random wallet in the future, and suddenly you're worth $36 million in 2022 money!?
To me at least, it seems akin to winning the lottery.
Re: (Score:2)
Presumably the kind of security that allows an admin to do this:
$36 million, be seized from an investor deemed to have acquired the tokens via malicious means
Re: (Score:2)
That was apparently Juno's problem, not a problem with the Ethereum blockchain.
Re: (Score:2)
Re:make a wallet (Score:5, Informative)
That's quite difficult.
Basically it means searching for a valid public/private key pair that can generate a matching wallet hash. These collisions are extremely rare, and believed to be entirely theoretical at this point.
It is certainly possible to generate a matching wallet, in theory it can be done. It is possible to search all crypto keys, because the number is a valid hash eventually someone could find one. With a brute force attack you reach a 50% chance of finding one at about 10e24 attempts. The current average time to generate them on dedicated hardware is about 374 milliseconds, meaning it would take over 10^18 years for a 50% chance of finding a collision.
Said differently:
If you used today's best computers of today it will take you nearly a billion times longer than the Universe has existed to have a 50% chance of finding a match using brute force. Another billion times longer than the Universe has existed and you get to a 75% chance of finding a match. At three billion times longer than the Universe has existed, an 87.5% chance of finding a match, you're still not to the point where you're guaranteed to find it, but you probably would have.
Re: (Score:2)
If you used today's best computers of today it will take you nearly a billion times longer than the Universe has existed to have a 50% chance of finding a match using brute force. Another billion times longer than the Universe has existed and you get to a 75% chance of finding a match. At three billion times longer than the Universe has existed, an 87.5% chance of finding a match, you're still not to the point where you're guaranteed to find it, but you probably would have.
If you're searching half the hash space in 10^18 years, and /you're not somehow losing track of the ways you've created those hashes/, then in twice that time you've searched the whole hash space, and presumably found your crypto key.
Re: make a wallet (Score:2)
A 50% chance of finding any match does not mean that half the search space has been exhausted.
it is the same as the "birthday paradox", only 23 people give a 50% chance of a match, but 366 (or 367 for leap years) are needed to guarantee it. The odds above are for finding any match with 160-bit hashes typically used.
Re: (Score:3)
No, it's not the same as the birthday paradox. There, you're guaranteed a match of birthdays between /at least/ two of the people once you've reached 365 people, but with no definite guarantee for fewer than that number.
If you pick a person, find his birthday, and then compare birthdays/hashes his and the others', /THAT/ is the same as the hash search space you defined in the crypto case. In that case, you do not have 50% chance of a match after 23 people.
Re: make a wallet (Score:2)
Just so you know I was on board until the age of the universe quote. People like you were saying that about brute-forcing md5 when I was younger. Back then it was that it would take more energy than the heat of all atoms in the universe to brute force an MD5 Hash. Now we do it on our phones.
Also Game Theory looking rearward shows that my line of thinking is always correct and that it will be broken and trivial at that.
Encryption that is strong enough to beat the supercomputers is too hard for a weak phone t
Re: make a wallet (Score:2)
It was not a random string, but a valid hash of something else. Since wallet numbers are a hash as well, it looks valid to the system.
As long as wallets can be anonymous and generated by clients, the system will never be able to verify that the wallet is presently owned an accessible. Any valid hash can be used as a target, and any public key that matches the hash can spend it. The math just means it is extremely unlikely that anyone other than the key holder can match the hash. It has been a critical req
Re: (Score:2)
It sounds like they were bypassing the normal security rules in the first place, so they may have also bypassed address validation in the process.
Re: (Score:2)
> A community vote had decreed that around 3 million Juno tokens, worth around $36 million, be seized from an investor deemed to have acquired the tokens via malicious means.
The tokens can only be seized once? Or only seized from a valid wallet?
I don't know anything about the JUNO network. Why not vote for a rollback of the entire chain? Why not re-write the entire chain based on a vote?
There is a solution here and the answer to my question may not be what you think.
Re: (Score:2)
Comment removed (Score:5, Insightful)
Re: (Score:3)
Re: (Score:2)
Unless it's XMR.
Re: (Score:2)
Re: (Score:2)
We hold these bugs to be self-evident, that all code is created equal, that they are endowed, by their Programmer, with certain unalienable Wrongs, that among these are Profit, Fame, and the pursuit of unregulated finance.
Re: (Score:2)
Re: Wait, people voted to take money away? What? (Score:2)
You know people in other places vote as well ya stupid fuck
Re: (Score:2)
I came here to say this. Granted you can't pre-check if a wallet is valid, since they are created offline and not registered anywhere
However, I can't even imagine building such a system without having at least a few bytes of error-checking CRC code embedded in the wallet ID to make it very unlikely that any typo or other mistake would be treated as a valid. It's hardly rocket science, that sort of thing was a standard feature of hex-entry programs for the C64 way back in the days before the www, when you