He sent ETH to the WETH contract, received WETH as expected.
Then he wanted to do the reverse and sent WETH, but will not receive anything, because you're supposed to swap your WETH to ETH in exchanges like Uniswap, or call the "withdraw" function in the contract.
For contracts that want to only work with ERC-20 tokens, you use WETH, which comes from a contract that takes 1 eth and gives you 1 WETH.
A known problem with ERC-20 tokens is that transferring them to a contract that isn't made to access them is equivalent to burning them. You should almost never transfer ERC-20 to a smart contract. You instead use approve to give the smart contract permission to withdraw, then call the function you want to receive and tell it to make the withdraw (the contract will internally call transferFrom).
I think it would be like writing "applications" in the early 90s in Visual Basic and then reading something about web applications and saying "I was involved in applications and none of this makes sense to me". That's because it's a different domain, with some similarities but many differences.
Edit: Changed "crypto" to "cryptocurrency" to differentiate from a different general problem with how the shorthand already had a different meaning.
Ignoring that, it's nuts that the best practice is "send a little money, and see if it works". Apparently they don't even have a working transaction simulator that just runs the relevant logic on your laptop so you can see what it will do.
There is nothing magical here. It's a bit like avoiding the checksums that IBAN has, and then complaining that IBAN is broken. Most people interact with WETH via UIs, but for some reason this user chose not to, and got severely burned because of it.
Things that require expertise usually requires one to know acronyms and how things works underneath, the cryptocurrency space is no different.
Now I don't know what you do for a living, but it certainly isn't cryptocurrencies. I'm sure there are more industries you don't work with on a day-to-day basis, and when people who are in those industries talk with each other on a technical level, you'll see the same amount of jargon. That's just part of expertise in a subject.
For example, two of my friends are chemists, and sometimes they talk chemistry stuff when we're having dinners and stuff. Of course I don't understand most of the stuff they are saying, but I'm not gonna claim "chemistry" is "magical knowledge" just because I don't understand it, so I'm not sure why you would about cryptocurrencies.
Despite the protestations of advocates, this kind of thing is a major hurdle to adoption.
but yes, I find myself thinking the same with many things. especially when the disciples seem irritatingly proud of their "knowledge" which actually is just a collection of arbitrary and anti intuitive rules.
It's hard to reconcile my experiences with trying to get users to understand and use relatively simple things with the inscrutable nature of the crypto space. Crypto is overflowing with unwieldy acronyms and punishing rakes to step on. And yet, people are putting massive amounts of money into this?
If you're going to slush a cool half mil around, you should really have absolutely basic litteracy of how this stuff works -- just how you should have the same litteracy about the banking system if you're going to half a mil there too. Or hire people who do.
"Just as trying to think up startup ideas tends to produce bad ones, working on things that could be dismissed as "toys" often produces good ones. When something is described as a toy, that means it has everything an idea needs except being important. It's cool; users love it; it just doesn't matter."
* there's a smart contract to which you can send ETH (directly), it sends WETH back
* however the inverse operation (WETH -> ETH) is not done by sending the WETH, you're supposed to call a special conversion function of the contract
I guess the smart contract only looks for ETH in its wallet (at its address), it ignores the WETH entirely, and thus the WETH become inaccessible.
So the contract is a deposit ATM where you can deposit cash and it spits out a bank check, but if you deposit a bank check it just shreds the check.
Or a currency conversion machine where you can shove USDs in the slot to get EURs, but if you shove EURs in, to the shredder they go,
I don't go to a geneticist and go "the problem with genetics is I have no idea what any of it means".
But yeah who has the time...
Not entirely sure what point you're trying to make here.
Or, in other words: the exact same thing happens to my 80 year old grandmother when I explain about my android phone.
Doesn't make the device any less useful.
There are a few stories on the ThisIsMoney (UK's Daily Mail's money rag) front page right now about relatively convincing and sophisticated scams where people were robbed of thousands.
The average person isn't ready for the risk of crypto.
https://www.thisismoney.co.uk/money/beatthescammers/article-...
https://www.thisismoney.co.uk/money/beatthescammers/article-...
Maybe a bit like enterprise software, just add another abstraction layer...
"Gas" is one of those concepts where I have to relearn what it is every time I read about it but never can retain it for very long. (See also Big O notation.)
Say what you will about the primitiveness of Bitcoin and other early coins but at least they're quite a bit more comprehensible.
This was an early adopter that just got around to experimenting and didnt even try to keep up with how things work now.
Also at least with european banking, if you wringly send money to another account, it is also gone forever. A lot of scams regarding old people build up on this. We do not need to buy google play store vouchers like the americans tonget scammed.
As ERC-20 runs on top of ETH, it requires gas (paid in ETH) to execute the contract. But ETH itself is not ERC-20 compatible (after all, it's just the base layer; there's no "ETH contract"), so some folks came up with the idea of wrapping ETH into an ERC-20-compatible contract, thus giving birth to WETH.
The advantage is that now ETH (in the form of WETH) can now provide interoperability with the rest of the standardized tokens, including staking, lending, or anything else implemented via a contract. Pure non-wrapped ETH would never give you that; basically you can send your ETH to someone, and that's it.
Now, the weak link is that you're relying on the trustworthiness and the quality of the implementation of the contract, which - more often than not - is questionable. The WETH contract itself is pretty simple, with only 62 lines of code [3]. But one may argue it's overly simplistic, and they failed to implement basic safeguards, like sending WETH to itself, which is what caused OP to lose half a million dollars.
The other side of the argument is that WETh contract was simple by design. Every line of code in Solidity requires gas to execute, so adding even a basic checking to protect against what OP did would have increased the cost by millions of dollars in aggregate fees for everyone else, besides potentially introducing the risk of attacks or additional bugs.
Given that only ~250 WETH transactions[4] (out of 5,562,041 total tx), made the mistake OP did, one could argue that the design wasn't that bad. That's a 99.9955% success rate.
(to be clear: if I were the original WETH developer, I would have added the checking, in spite of costing a few additional bucks for everyone else. But I understand why someone may have thought otherwise. Besides, it was 2017; a lot has changed since then)
[1] https://ethereum.org/en/developers/docs/standards/tokens/erc...
[2] https://www.investopedia.com/news/what-erc20-and-what-does-i...
[3] https://etherscan.io/address/0xc02aaa39b223fe8d0a0e5c4f27ead...
[4] Mentioned in the reddit thread; have not confirmed myself.
I think this more a story of poor risk management.
But they are in good company. I was on the Bear Stearns trading floor when they went bankrupt and I saw a hundred people loose their entire life savings and all their kid’s college money in a few hours. Those were licensed financial experts that were fully knowledgeable and practiced in a variety of risk mitigation techniques - which they failed to apply to their personal portfolios. The company was bought by JPMorganChase and a year later everyone that came over from Bear was gone - JPMC really just wanted the client list and their midtown office tower.
Unfortunately, practically no one uses 777 as far as I'm aware? Certainly the OG Wrapped ETH contract doesn't, and it can't be upgraded because it's immutable.
Here's the path I'd suggest:
1) If you have no basic understanding of blockchains, read Satoshi's Bitcoin original paper, and Ethereum's Yellow paper.
2) Read about ERC-20 [1][2], to understand what "tokens" really are (TLDR: basically a hashtable stored in the ethereum blockchain, containing a mapping of balances to addresses, and the expectation that you must implement a standard API to be considered an ERC-20 token)
3) Learn about Solidity. The language is dead simple if you have any programming background (preferable C, but not too different than Rust/Python/Go), although it takes some time to wrap your head around the idea that the state is stored permanently in the blockchain. There's plenty of tutorials, but I found Ivan on Tech [3] to be excellent, and Moralis Academy [4] if you want something more structured (plus they offer many other courses in this area).
Solidity documentation [5] is also excellent. And Remix IDE [6] makes it really easy to experiment and run your "hello world" solidity programs in a simulated environment, without worrying about deploying to testnet, faucets, etc.
[1] https://ethereum.org/en/developers/docs/standards/tokens/erc...
[2] https://www.investopedia.com/news/what-erc20-and-what-does-i...
[3] https://www.youtube.com/watch?v=ILw-7mplRlI&list=PLo0ddf4DBU...
[4] https://academy.moralis.io/
Like, if the contract for the ERC-20 token would, when handling a send instruction, would check whether the recipient address was a contract address or an address controlled by a keypair, and if the former, would check if the recipient had been marked (not sure if this marking would be stored as data on the recipient contract or as data on the ERC-20 contract) as being able to handle the token in question, and if not, cancel the transaction (other than gas costs).
This seems like it would prevent this kind of error (or at least, reduce the problems resulting from this kind of error to just paying the gas fees), but it would also maybe increase the gas cost of sending transactions with the ERC-20 tokens and I’m not sure whether this increased cost would be negligible or not.
Therefore anyone looking to do anything other than gain speculative wealth should stay well away.
Another one born every minute...
The Ethereum blockchain has its own money that is built right into "OS" of the blockchain. It's called ETH. Any time one program calls another, the actual function call itself can send ETH along with it. In fact, to transfer ETH from your account, you just make a function call to another account with no parameters, ignore return values, and transfer some ETH along with it.
Now it soon became apparent that this scheme left a bit to be desired:
First developers wanted to create their own moneys. ETH is hardcoded into the system, no one else can use that mechanism.
Secondly, funds can only be sent, never pulled. It turns out that it is really convenient to have funds pulled by trusted programs. It allows funds to be moved when you are not online. For example, you could make an offer to purchase something, and if the seller accepts, the money can be transferred to seller, and the whatever can be transferred to the buyer in the same atomic transaction. This also allows trusted programs to do the math for you using live market conditions.
Lastly, it's a giant security pain to actually have to call someone else's code, and give them the ability to execute right in the middle of the your code, any time code wants to transfer money. (This exact vulnerability lead to the first big hack on Ethereum.)
After a period of experimentation with people making their own money programs, the ERC20 standard was born. This standard is just a very small set of methods calls that a program has respond to in order to count as money. This isn't baked into the OS, it's just a standardized API interface between programs.
So you can call "transfer(...)" to move money, and you can call "balanceOf(...)" to find out how much money someone has etc. It works reasonably well.
The biggest ERC20 you have probably heard of is USDT / Tether. It actualy slightly predates the standardization, and so slightly doesn't match the behavior of everything else. This makes all programs that want to move money have to use a function that checks if the money is acting like USDT or acting like everything else.
Now the ecosystem has two kinds of money: ETH that works at the OS level, and everything else that works as a standard program. And these two have different security properties, and different ways of calling them. It's a pain to securely support both of them because the entire architecture of your code for working with them entirely different. And then there's the matter of not being able to pull ETH, which people often need.
So people decided to make a program that "wrapped" up ETH into and let others treat it as an ERC20 program. It's called wETH. You send the wETH program some ETH, it holds it, and it internally stores that you now have an amount of wETH to match the ETH you sent in. You can then spend it like any ERC20. Anyone can then ask the wETH program reduce the amount of wETH they hold, and give them back a matching amount of ETH.
Most new big blockchain programs, DeFi/NFT/Multichain bridges have switched over to only using ERC20's and requiring users to wrap ETH into wETH to use them. There's even talk/grumbling that the Ethereum blockchain should just provide a special interface allows someone to treat their ETH balance as ERC20.
It's like the famous quote by some dude: "A monad is just a monoid in the category of endofunctors, what's the problem?"
This user unfortunately did neither.
Is this a bug or a feature?
This machine also allows you to send these wrapped dollars to other people - it just subtracts from your balance and adds to the other person's.
What this guy did is transferring his wrapped dollars to an address no one controls instead of withdrawing as he should. This address was the machine's address, but it's not programmed to handle the balance in it's own account and it runs code that can't be upgraded, so any values sent there are lost.
In this example dollar = ETH, wrapped dollar = WETH, machine = the WETH smart contract.
The real problem here was thinking a ETH transfer (dollar bill deposit in the example) works the same as a WETH transfer (database transaction in the example).
ironically this seemingly would actually bolster the argument against Proof of Work, but its probably more convenient that people are easily swayed towards inaccurate arguments
The purpose of requiring energy to operate the network is to have something at stake when enforcing rules of the system. You could have unlimited or even arbitrary inflation of the currency while still requiring proof of work.
Hence, the rule that is being enforced by PoW here is that sending to a "wrong" address is not reversible.
This is like saying because shoes happen to be worth money (sneakers/trainers) and because people happen to speculate on the price of shoes that the future of money is shoes.
Bitcoin claims to be currency, Ether (used to pay for execution fees on Ethereum) does not.
I'm not very well versed in this stuff, but surely the tokens he sent are somewhere right.
Like if you sent $500k to a bank but put the wrong account number in, the $500k would still go _somewhere_. It might be difficult to recover, but it's not like the money just disappears.
The only way to ever fix this is to rewrite the history of the blockchain which means forking the entire ETH currency by getting all mining/record nodes to agree to it.
Long story short: Virtually unrecoverable without large coordination from the entire ETH community.
As I've said in the past, money is a technology, and this kind of override mechanism is built into the design of conventional money, but not into the design of crypto.
Hopefully this isn't the person's life savings.
Thst said, the network is a group of machines all agreeing together on what is the correct behaviour, and that can change, so while it is not impossible forever — Ethereum might release a new feature that allows people to reclaim tokens in this circumstance — it is impossible unless the majority of the network agrees (see: The DAO hack and the corresponding fork to recover funds).
But this ship has sailed for ethereum!
Imagine you ran a private currency called Mate Dollars (M$) for you and your mates to exchange with each other "off grid". You decide to introduce the concept of loans. A transaction which lends 1000M$ to MateA would look like this (in ledger[0] format):
2022-01-30 Loan to Mate A
Accounts:MateA 1000.00M$
Liabilities:MateA -1000.00M$
This a perfectly valid transaction. It sums to zero. Now Mate A can "spend" this money, maybe he buys some goods from Mate B: 2022-02-01 Goods
Accounts:MateA -500.00M$
Accounts:MateB 500.00M$
Now Mate A and Mate B both have 500 Mate Dollars.Eventually Mate A will have to pay back his loan because the bank (you) will charge interest on any current liability:
2022-02-30 Loan repayment
Accounts:MateA -1000.00M$
Liabilities:MateA 1000.00M$
Now he's paid back the loan.Now from inside the system, nothing was ever created or destroyed. But from outside the system (ie. the real world) it looks like money was "created" at "Loan to Mate A" and destroyed at "Loan repayment". From Mate B's point of view, Mate A always had that money. He doesn't know anything about the bank loan.
Between those two transactions, 1000 Mate Dollars existed, but it was just a ghost in the machine.
Replace "you" with Barclays Bank, "Mate Dollars" with Pounds Sterling and "you and your mates" with the public above and you now understand how "real" currency works. 97% of money we use is just a ghost in the machine between a bank creating it via a loan and the borrower paying it back.
So, you see, money appearing and disappearing from thin air is not a feature of crypto at all. It's just an illusion. It's what it looks like to anyone outside of the ledger (ie. everyone except the bank).
The ETH transaction is the equivalent of you (the banker) making a promise to Mate A to keep his money in an account that can never be accessed by anyone, including him:
2022-01-30 Silly transaction
Accounts:MateA -1000.00M$
Dungeon:MateA 1000.00M$
The account "Dungeon:MateA" will now always have a positive balance for as long as you keep your promise.Unlike you, the Ethereum blockchain is incapable of ever breaking this promise.
How do you store your wallet / private keys where you would be comfortable storing an amount of money that's important to you?
It feels like a bunch of consumer grade options we have are kind of flaky:
Flash drives are extremely undependable. I've had a few fail to read after sitting in a closet for a year.
SSDs can supposedly have data loss pretty quickly if left unpowered (days to months).
DVDs have decent lasting power (I have some CDs that still work after 15 years) but this makes me nervous because it's so susceptible to damage.
HDDs also make me think what would happen if it's not powered on for 5-10+ years (it's mechanical, does it use some type of oil internally to keep friction down?).
Putting it on the cloud seems risky, even with encryption at rest and now we need to backup the encryption keys.
I guess tape is still our best bet?
I would also think if you have a decent amount of crypto you'd likely want to have 3 backups in your apartment along with 3 offsite backups, perhaps lock boxes in a few different banks in different towns (or even hundreds of miles apart).Basically it still feels like a huge pain in the butt to keep digital currency secure and available. The more backups you have, the more risk you have around being compromised but the less backups you have the more susceptible you are to data loss and losing everything.
I'd want to keep it on in encrypted file but even that is sketchy if I have to have in on multiple clouds.
I don't play in this world, but if I did, I'd note that the actual keys required to define a wallet are trivially small and comparatively easily re-entered at a keyboard by hand. If you're got millions in this stuff that you need to park, delete it from the internet, print it out, and stick it in a safe.
I wouldn't. I'd give it to an insured institution in my local jurisdiction to look after. It's not a perfect solution but it doesn't rely on the horrible impermanence of IT.
With BIP-39, you are simply going to lose your wallet, eventually. It's almost inevitable. Either because you lose the 12- or 24-word passphrase, OR because someone else finds one of your backups.
I've written a decent Python implementation, here, which is simple enough to review:
A company might have a "5 of 8" multi-sig. This means that to move money, five of the eight team member accounts with keys have to agree and sign off on each transaction.
This is massively better than secret sharing - once a secret is put together, that secret then works for all time and could be stole by the person that put it together. By using multi-sigs, every new transactions has to be agreed on.
With a multi-sig, if you forgot your hardware wallet's PIN, or lost it, then other team members can remove the old account from the multi-sig and add the new account. You are back in business.
When you backup a single account's key to paper or other computers, then anyone getting access to one backup compromises the entire thing. However, with a multi-sig, an attacker would have to gain access to many of the signing account keys to steal funds.
This scheme works for individuals too. You could have a 2 of 4 multi-sig wallet, two hardware wallets that you usually use for authentication, and then two backup paper keys stored in different locations. For your normal use, you just use your two hardware wallets. If you forget a password / lose one, then you can use one of the paper wallets, plus your remaining hardware wallet to get it back. If you loose both, use both paper keys. You can also rotate the paper key backups if you want, by removing the old and adding the new.
I personally use:
- Primary -- hardware wallet with memorized PIN
- Backup -- seed phrase memorized
- Backup -- seed phrase written on paper
- Backup -- seed phrase split into pieces using Shamir's Secret Sharing, written on paper, stored with friends and family members
This has the added benefit that you can trivially create offsite backups as well: print or write another copy.
In Europe you have to go to some central bank to get such a service, I don't think medium cities branches do that.
After reading Moxie's blog post on web3 [1] I feel it is a stretch to call anything Ehtereum-based decentralized anymore when this many applications use Alchemy or Infura as providers for their Ethereum nodes.
[1] https://moxie.org/2022/01/07/web3-first-impressions.html
A bug and reversal occurred in the first few years of Bitcoin's existence that has effectively meant that Bitcoin won't reach the stated 21m coins exactly.
It's guaranteed at this point that there won't be any further reversals.
Bitcoin has the same problem, and cryptocoin enthusiasts are fooling themselves if they think that miners won't raise the 21m cap when the end of Bitcoin rewards start looming.
What if a new bug is found and someone moves all coins to some impossible address?
That's when some of them were themselves invested in the Dao...
This also lead me to this video which will now be my ‘go to’ recommendation for anyone asking about crypto and NFTs - it’s a general critique and social commentary of the issues with crypto - not specifically about this case, but I thought excellent, and the first time I think I’ve watched a 2hr vid on YouTube ‘Line goes up’ - https://youtu.be/YQ_xWvX1n9g
That seemed obvious from the first time I read the expression "code is law".
If code is law, any bug (whether in the contract itself or in the way the contract is called) fucks you irredeemably and with no recourse. I would expect any dev to shit their pants at the idea, even more so upon realising that the code in question is a half-assed brain damaged cousin of javascript, of all thing.
Contract law is one of the more mechanistic parts of the legal system, but only up to a point. There are good reasons the legal profession - even corporate law - tends to attract a different set of personality traits to software development.
The legal system is such a quagmire because figuring out what is "right" in all scenarios is anything but obvious. That's how we end up with laws we don't enforce and technical legal behavior that will still get you into trouble. But what's the alternative? Robot justices? No thanks.
If the complexity is in the nature of the problem, then smart contracts must contain all of this complexity. But how can you ever write smart contracts that are bug free and deal with every contingency?
Instead of making systems that are buggy, cold, and unforgiving we should be making systems that are more tolerant of human mistakes.
I'm not sure if issues around smart contracts are just the tooling, or developers are just rushing to push something out there; but the UX and DX is bad. I was hoping that Cardano would be a blockchain/cryptocurrency pairing that would make me interested again in this space, but their Plutus smart contracts[1] are something I wouldn't touch with a 10-foot pole. On the upside, at least testing Plutus smart contracts with QuickCheck seems to have brought improvements to QuickCheck itself[2]
[1] https://playground.plutus.iohkdev.io/
[2] https://www.youtube.com/watch?v=V9_14jjJiuQ a fun little watch for those that like Haskell
This was the related section https://youtu.be/YQ_xWvX1n9g?t=4637s that lead me down the rabbit hole of watching the whole thing
I have no connection other than stumbling across it after seeing this story today and thought the critique tied in well.
- If you're making a transfer somewhere with a large amount, do a small transfer first and verify it's working. Confirm at the receiving end before moving big sums.
- If you're calling a contract, try it with a small amount first. Verify the parameters multiple times, and verify the return values multiple times.
- If you're doing something with a huge sum of money, do it in steps instead of all-at-once. Fees won't be as big since you're already dealing with a huge sum of money anyways
- Verify verify and verify that everything went alright with the small sum before trying to do something with a big sum
- If you're tired, don't do it. Wait until you got some sleep
- If you're rushed, don't do it. Wait until you're not rushed, have a tea and think about it
- When in doubt, verify it and don't be tired
- If you're not an expert, have someone who is do verification above for you
[1]: https://www.theguardian.com/money/2019/dec/07/i-lost-my-1930...
I would modify this to
> - If you're not an expert, have someone who is do verification above in addition to you (not instead of you)
But the best way is to use a trusted contract.
The other ways are pretty absurd burdens to put on a user.
The issue is that people do like tunnels because they feel safe, and empty voids are scary. This incentives to still build and use tunnels around this void, which makes “crypto”-ness just an implementation detail not worth using as is by the masses.
Afaiu, this happens for two reasons: 1, the usual, people tend to forget assertions. 2, the new one, crypto institutions who make contracts are incentivized to omit assertions because runtime now costs serious money. They are like factories where there is no rule of safety yet.
Is the above correct, or is it a true half a million dollars mistake? You can’t trust node_modules as it seems, how can you trust piles of contracts code when there is no support, no takedowns of bad versions and no easily accessible (and decentralized?) audit?
Also, could a type system help in this case?
You can totally make a 1 digit typo while making a bank transfer that results in all the money being lost.
Perhaps you’ll recover it after years of litigation, but that’s really not guaranteed.
https://www.theguardian.com/money/2019/dec/07/i-lost-my-1930...
E: downvoted by upset bankers? :)
In the crypto case of this thread, the OP made a mistake and there's no process to fix it. 100K's lost. There's no avenue for recovery.
In the banking case of your link, the man made a mistake and was able to correct it, despite the bank working against him. 100K's lost and recovered.
In the case of the bank, it sure wasn't perfect and definitely should be better. But ultimately, the bank not only paid to recover the money, but the banking system (according to the article) is at least promising a fix for the underlying issue that a simple mistake in writing digits can lead to missending funds.
Also: crypto is touts its trustless nature as a positive. But note that trust is the lever Mr. Teich used to get Barclays to pay the cost of recovering the funds. Barclays only paid after their reputation was threatened, and of course, trust is based on reputation.
[0] https://www.psr.org.uk/publications/consultations/cp19-4-con...
Difference being that it isn't "lost" -- not in the sense of vanished from the face of the Earth, gone, ceased to exist. It's only lost to the sender, but it still exists; someone still has it. Sure, the wrong person or entity, but still: It's not gone from existence. Only CryptoCrap does that.
To everyone: If you wrongly send money to a mistyped IBAN it is gone.
Which is in fact required with cryptocurrencies using the (pure) Mimblewimble protocol.
The last time I asked Coinbase support they didn't even bother to answer me.
I was not investing, one of my contractors unilaterally decided to pay me in crypto.
Why didn't you tell him that you wanted to be paid in real money?
most users never have to deal with the WETH contract because defi platforms will automatically do the wrapping/unwrapping for you.
the vast majority of the WETH minted by this contract is used for
a) providing liquidity on DEXs (where ~ 50% tokenA and 50% tokenB are deposited to collect trading fees)
b) collateral in a lending platform (e.g. deposit WETH and borrow USDC)
c) bridged to another chain (e.g. bridge WETH to Avalanche or Solana or whatever)
Because he sent funds to a contract (a program) and not a person (a private key). The operation of the given contract (the actual program) cannot be altered, which is useful in the sense that you can inspect the contract code and make sure that it does what you want with the funds you send to it.
If you buy the wrong asset, you can sell it back and get most of your money back. There is a low friction “undo” button.
No such thing in crypto.
a) There is a company called "Applr", so I at least have something (a different stock)
b) There is no comany called "Applr", so the trade is cancelled.
This is like saying "You tried to be Applr, that doesn't exist, so you money just got blackholed".
Can't say I understand it now after reading it though.
Soon there may be a "good version" of it that replaces a big chunk of anything financial and financializes another chunk of everything else.
Or maybe not.
I understand assigning a low probability to that event, but the upside is so big that it's still a bit weird to be just a hater and not make a lottery-ticket-sized investment.
Or I guess the chance of being able to tell randos on the internet "I told you so and they never fooled me!" in a few years if it fails must be a similar-sized reward in utility.
The general consensus has spun around to being that anything crypto is a scam, elaborate ponzi/pyramid scheme, etc, etc. Bored Apes is a bit silly, NFTs could technically be used for so much more but that would require the right platform, and legislative support (ie the backing of society) to have meaning.
I think the cat is out of the bag tech-wise. I think you're right that improvements will be made - blockchain / distributed ledger / whatever you want simply exists now, and I doubt it will ever stop existing. Ignoring the tidal wave of criticism it faces now, some valid, some not, it has inherent technological advantages in cases where trustless, distributed, peer to peer transactional events need to be rigidly catalogued and visible to all participants.
I also think most of these positive advancements that will change the fabric of society yada yada, will require the profit motive to be eliminated completely, where maintaining a blockchain becomes something done for ethical or moral reasons like folding@home rather than hoping to ride the next whale's massive pump. It's kinda sad how desparate we all are for riches, billions of us but the financial incentive is the best motivator we could come up with.
But I digress. Prepare to be shouted down over the next few months / years for saying anything positive about any blockchainish-tech, it's all pretty well tarred with the same brush as NFTs and dodgey doge market manipulation at this point. It'll calm down eventually. It is what it is. Probably a well deserved critique of a concept that is still at a point equivalent to computers in the 80s vs smartphones today.
Give it time. People will find a proper use for it.
Since everyone can see this is unspendable, It's simply a donation to all other users in the form of burning coins and increasing the value of all other coins.
Houses (and crypto) are worth actual cash. Burning them doesn’t increase the value of others in any meaningful way.
But he warmed the planet for no reason.
There are no pesky externalities like "amount of EBITDA per outstanding eth", every single dollar is coming from someone buying in.
This reduced the denominator, thus increasing the value of eth.
Anyway, I thought this comment by the OP was interesting...
I thought a test transaction of sending ETH and getting WETH back was enough proof. My mistake was that I made an assumption about the reverse direction. Didn't see anywhere (including the official site) that we shouldn't directly interact with the contract and we have to use a dapp :/You have to call the `deposit` function of the smart contract (transfering ETH with it indeed).
And to withdraw your WETH as ETH, you call `withdraw`.
These calls can be made from here (power user interface! not recommended - use Uniswap instead): https://etherscan.io/address/0xc02aaa39b223fe8d0a0e5c4f27ead...
The source code of the contract is here: https://etherscan.io/address/0xc02aaa39b223fe8d0a0e5c4f27ead...
So, this is all about the ‘payable’ method, which means it is triggered by the native asset of the virtual machine.
If you look closely you’ll see there is a default anonymous function with ‘payable’ accessor method which calls the deposit() method
He’ll be okay ;)
$500K in ETH is really not that much anymore.
Of course in principle you can reverse this. Nobody is going to want to do the codework to recreate this wealth, it would cost a lot more than $500k and has consequences. I'm told some models include a way to un"oops" the signature chain but they beg so many questions.
OK. Let's be honest, the entire model begs many questions. I am sure people here will use this to both back, and belabour Etherium and contracts (as I have done, I'm not unaware how partisan I am on this)
Mark Latham, the former leader of the Labor party of Australia (he is an utterly repellent man otherwise in my view, but I admire a good writer) has a fine way with words, and referred to his opponents as "a conga line of suck holes" [0]. I've always felt this is applicable to the chain.
[0] https://en.m.wikipedia.org/wiki/Mark_Latham#Labor_member_of_...
In what country?
Instead of just saying "what address should we send this to?", they should have code which allows a "preview" of what will happen after the transfer.
After all, all the logic is there on the Blockchain, so the client can easily pop up a warning saying "what you are trying to send will be permanently unspendable. You can't so this without the --i-want-to-destroy-my-coins flag".
The preview logic could recognise various common smart contracts to give the user a better idea what the spending conditions for each are too.
Smart contracts really shouldn't be called contracts - it's a misleading analogy.
This is a problem that needs to be figured out before crypto can go mainstream.
wrapping it lets it inherit those primitives for use in other programs more easily
many programs handle the wrapping and unwrapping just-in-time behind the scenes, using a chained method call to the same contract OP used
Its pretty hard to mess up, but OP managed to
For more context I was messing around with Shapeshift back in 2018 which you generate a deposit and withdraw address for some crypto currency pair eg. LTC to Doge. I messed up this process.
These are not the words of somebody who lost half a million dollars, who in a regular non-crypto situation with a fellow person, a bank, a credit card, and so on, would be fuming at the mouth.
These are the worlds of a true believer, to a degree that this is cult-level scary considering the amount involved.
>A life-changing lesson for me
Doesn't seem like it was...
He should get in touch with his banker, either in person, on the phone, or online. If that doesn't work, escalate to the appropriate regulatory agency.
Oh, wait... crypto.
Why the heck did the guy not first did a test with 1 000 USD worth of coins instead of 500 000 USD? Once he sees everything is cool with 1 000 USD, he sends the rest. Sounds like 101 to me.
There are many more cases of this, someone else burned $300k half a year ago, in the same way.