40 ms·
The collapse of the IRON stable coin
- georgyo 5y agoThis has always been the problem with smart contracts. They are infact dumb contacts. To program one you need to think about all the edge cases. The programmers here likely did want >0 here. The possibility that the thing feeding price data return zero incorrectly was higher than the price legitimately being zero in their minds. There is no court or lawyer who can interpret the spirit of the contract.
- motioncuty 5y agoDo you see no value in throwing these "dumb contracts" out there and seeing what happens? An expensive experiment for the speculators, but we got to the moon on a roman candle iterated a billion times, so I'm personally just curious about these programmable organizations of digitalized willpower.
- meowface 5y agoI agree. It's software. Lots of software sucks and is buggy and vulnerable. Sometimes mission-critical software sucks and is buggy and vulnerable and causes catastrophes when it fails. A lot of it's malware. A lot of it's inefficient and/or useless. But a lot of it's good, and more good things will come out over time. It's currently the equivalent of like 1998 in the smart contract space right now.
- thebean11 5y ago> There is no court or lawyer who can interpret the spirit of the contract. That's obviously the point, though. You are trading one set of risks for a completely different set of risks that might suit your use case much better; your counterparty being able to contest a contract in court could very well be a "bad" thing for you.
- toomuchtodo 5y ago> your counterparty being able to contest a contract in court could very well be a "bad" thing for you. Evading the law (whether the court or a regulatory body such as the SEC [civil] or DOJ [criminal]) is typically a "bad thing" for the person or people intending to or successfully doing so. https://www.sec.gov/spotlight/cybersecurity-enforcement-actions https://www.sec.gov/spotlight/cybersecurity-enforcement-acti... (SEC Cyber Enforcement Actions, control-f "blockchain" | "crypto") https://www.ropesgray.com/en/newsroom/alerts/2021/March/The-CFTC-Signals-New-Era-in-Enforcement-of-Cryptocurrency-Trading-with-Action-Against-Antivirus https://www.ropesgray.com/en/newsroom/alerts/2021/March/The-... (The CFTC Signals New Era in Enforcement of Cryptocurrency Trading with Action Against Antivirus Software Pioneer John McAfee) https://www.jdsupra.com/legalnews/doj-activity-on-cryptocurrency-a-six-1846233/ https://www.jdsupra.com/legalnews/doj-activity-on-cryptocurr... (DOJ Activity on Cryptocurrency: A Six-Month Review) https://www.reuters.com/world/us/us-court-authorizes-irs-seek-identities-taxpayers-who-have-used-cryptocurrency-2021-05-05/ https://www.reuters.com/world/us/us-court-authorizes-irs-see... (U.S. court authorizes IRS to seek identities of taxpayers who have used cryptocurrency)
- thebean11 5y agoAre you saying the only time a contract is disputed is when the other party is evading the law? Nobody abuses the legal system to screw over people without enough resources to fight in court?
- toomuchtodo 5y agoI'm saying the legal system takes authority. A smart contract doesn't avoid or override that authority. https://digitalchamber.org/wp-content/uploads/2018/02/Smart-Contracts-Legal-Primer-02.01.2018.pdf https://digitalchamber.org/wp-content/uploads/2018/02/Smart-... > Is A Smart Contract Always A Legal Contract? > No. Because a smart contract is computer code, a smart contract may represent all, part, or none of a valid legal contract under U.S. law. Smart contracts function – in whole or in part – to give effect to legal contracts. Thus, smart contracts are the programmatic means by which some or all of the terms of the legal contract are performed. It is the underlying contractual terms that are given legal effect. That legal contract and the contractual terms is what is evaluated and governed by the legal system. Smart contracts are fancy business logic snake oil salespeople are attempting to sell as the law of the land.
- jayd16 5y agoHmm. I don't think this is the first legal contract of ambiguous intent. Surely any court would decide what the proper reading is and rule in some direction.
- SamBam 5y agoWhile it's certainly true that there are plenty of legal cases that hinge on the inclusion or omission of a single comma, or a single word, or something like that, by and large the courts (and the whole system) try and sort such things out through principles such as intent and least-harm. This is particularly the case with ownership of money. If you've put money in a bank, and the bank says "sorry, due to a programming error you can't get your money back," that's on the bank. They are legally required to try and get you your money back. Similarly, legal contracts (as opposed to defi smart contracts) must contain certain elements to make them legally enforceable. These include such elements as capacity (the capacity of the signer to enter into a contract, which can take into account whether they can fully-understand the contract) and adequate consideration (whether the contract is blatantly unfair to one party). So a contract that seems reasonable but might have some complex edge-case that requires extreme fine-grain parsing or auditing to see how you might end up with no money may not be legally-enforceable at all. In the defi world, it seems like you're entering into a contract that's written in code, but there's no requirement to be able to actually parse and have the capacity to understand all the code that is written in the contract (or omitted, in the case of edge-cases the programers didn't think about). This seems like it wouldn't fly in any legal contract.
- jcpham2 5y agoI've been saying for a very long time now to anyone who chooses to listen that a contract itself is a human construct - it is both temporal and physical and has location to be relevant and useful. Without all of those properties a contract ceases to useful to a human being under all edge cases. So it is, in fact, a dumb contract. Humans want contracts that make them whole at the end of the day, that's the point of the contract: jurisdiction over the human realm.
- exporectomy 5y agoHow is that thing you've been saying relevant here or how does it lead to your 2nd paragraph? Smart contracts meet all your requirements for a contract just as PDF contracts do.
- shkkmo 5y agoI believe the point the poster was making is that "smart contract" is a misnomer and contracts comprised of code should be more realistically called "dumb contracts" since they lack the intelligence to understand and compensate for context and intent.
- missblit 5y agoThey really shouldn't be called contracts at all, since intent ("meeting of the minds") is a fundamental part of contract law. Imagine for example if a mortgage contract contained some bizarre inscrutable loophole that as-written would give the first 3rd party to notice it total control over over the house. This would of course be laughed out of court because that part of the contract wouldn't be enforcable under contract law. "Code is law" is more accurately written as "code is not law at all".
- shkkmo 5y ago> They really shouldn't be called contracts at all, since intent ("meeting of the minds") is a fundamental part of contract law. That's a really good point. They are arguably neither "smart" nor "contracts". Maybe a better term is "automated blockchain agents" or something similar?
- skybrian 5y agoThis is less about actually going to court and more about counterparties being able to give each other a bit of slack based on customs in the profession and what was “really” meant because they may need to work with each other again someday. The courts are for when negotiations fail.
- cabalamat 5y agoPrograms have bugs in. This is something programmers should be aware of!
- tigger0jk 5y agoAlso, if the price of TITAN is 0, then you really can't pay out 25 cents worth of it... It does seem correct that the contract should handle such a case differently than just trying to pay you out UNDEFINED DIVIDE BY ZERO ERROR count of TITAN
- georgyo 5y agoYou just hit the nail on the head. I did not think about that. This is the true reason they needed to special case <=0.
- phire 5y agoIf you think about it, the special case should give holders the option to withdraw the 74c of USDC without any TITAN. Clearly the programmers didn't fully think though what would would happen if TITAN reached and got stuck at zero value.
- SV_BubbleTime 5y agoThis is what I was thinking. It should be decoupled. Here are the rules for how many USDC you get and here are the conditions for your TITANs. On the TITAN there should have been a condition for over zero, and a totally separate condition/case for zero… or less than or equal to zero since we’re working on edge cases no one considered.
- runbathtime 5y agoThat is what courts are for- to interpret the spirit of a contract. There is a point where hiding deliberate pump and dumps/ fraud/ ponzi schemes through complicated tokenomics or incompetence (we couldn't predict all the edge cases) no longer is an excuse. At this point, there is really no difference between the approach to launching these half baked algo/backed stablecoins and deliberate fraud. It could be easy for a court to make the decision that the contract was designed to be complicated on purpose to hide deliberate fraud, or at least could determine the devs were recklessly incompetent and still responsible.
- xur17 5y agoThat's both a downside and an upside though - they do exactly what they say they will do. The issues occur when people don't realize exactly that they say they will do. To me it's just a different set of trade offs. Also, it's worth noting that this contract wasn't audited, a baseline practice in the industry. Most larger contracts go through multiple waves of audits, while this was apparently released with exactly 0 (so hard for me to be shocked when there are issues). > A code audit likely would have caught this (this type of bug is so common in software development, I’ve probably made it hundreds of times myself), but of course this smart contract was not audited. Only its sister-contract on the Binance Smart Chain, written in a different language, was.
- tornato7 5y agoAny experienced crypto investor knows that putting money into an unaudited contract that's less than a few months old is basically throwing that money away. There is another side to this, though, which is that protocols than have been around for a year or more without problems are quite trustworthy and become important building blocks for DeFi.
- anyfoo 5y ago> have been around for a year or more without problems > quite trustworthy As someone being used to write fixes to code that is 20 or even 30 years old, I had to chuckle.
- miracle2k 5y agoYes, but these smart contracts are often fairly short (in essence, they shift value from one ledger entry to another), and not every bug is exploitable. They are also effectively paying a bounty worth hundreds of millions of dollars if you can find an exploit. It is not unreasonable to feel increasingly confident in their safety after some time.
- oneshoe 5y agoThis is precisely why Cardano is using Haskell for their language.
- jkhdigital 5y agoYeah when I first read the Cardano stuff back in 2018, I was like "thank God someone gets it and wants to avoid the dumpster fire that is Ethereum"
- tfang17 5y agoThat's the whole point. Code is law. The alternative is our current, arcane legal system - only interpretable by lawyers who charge $600/hr.
- jnwatson 5y ago$272 million dollars could buy a lot of lawyer hours.
- Retric 5y agoSmart contracts don’t protect you from being sued. So, now you need both lawyers and programmers while still risking losing everything.
- disruptalot 5y agoNot exactly. There are plenty of anonymous projects, developers and users.
- meowface 5y agoPlus, even if they lose their anonymity, many are in places like Eastern Europe where suing them won't be so easy.
- bootlooped 5y ago"Smart contracts and cryptocurrencies - great for anonymous people in Eastern Europe who want to avoid the law, less so for other types of people" It's not an argument that's going to convert many people, but at least it's honest.
- meowface 5y agoI don't think that's generally true. It is very useful for criminals in countries that don't extradite to the US, but Many of those same people could make and were making money through other forms of cybercrime for years. Even without cryptocurrencies, new technology will always keep coming out that'll facilitate and potentiate more cybercrime. To me, the answer there is and has to be geopolitical. Whatever crime they're committing, if it's against a foreign national, they have zero fear of repercussions, and that lack of fear is totally rational because there's basically no chance they'll ever face repercussions even if their real name and address is plastered in a million places. If they knew they could be extradited, or at least sentenced to serious prison time in their own country, and that there was a significant chance of it happening if they were to be identified, then I'm convinced most of them would behave differently.
- msgilligan 5y agoSmart contracts is a horrible name. The better analogy (which has been around for years) is that they are the digital equivalent of (snack and beverage) vending machines. As with vending machines, they have their use cases, but they aren't lawyer "smart" and they certainly aren't legal contracts. I'm not sure how much trouble a better name would have saved everyone, but it might have done a better job of setting expectations.
- femto113 5y agoSo is this event the digital equivalent of the bag of chips getting stuck on the row below it or the frustrated customer shaking the machine until it falls over and squashes them?
- msgilligan 5y agoLooks like some very expensive chips got stuck in the machine.
- jkhdigital 5y ago"Self-executing contracts" removes pretty much all of the confusion
- numtel 5y agoThe vending machine analogy is exactly how smart contracts were first introduced by Nick Szabo and Vitalik Buterin. https://bitcoinmagazine.com/technical/daos-scary-part-1-self-enforcing-contracts-factum-law-1393297672 https://bitcoinmagazine.com/technical/daos-scary-part-1-self...
- dheera 5y agoNot only that, but all the hashes will probably be broken at some point in the future. We thought MD5 was the be-all end-all of hashes back then, but here we are at SHA-512 thinking it's our masterpiece. Two decades from now it will probably be obsolete.
- canadianfella 5y agoInfact
- DennisP 5y ago"Smart contract" has always been a bit of a misnomer. If they'd just called them "scripts" then people wouldn't complain about the lack of lawyers.
- jl2718 5y agoEverybody said the same thing about the 1987 automated trading crash. Get rid of those darn computers! Sorry; decentralized autonomous finance is here to stay. There will be less disasters as we go along, but they will be much bigger.
- kaliali 5y agoThis is why Cardano smart contracts will be so strong in August. The language running underneath it all is Haskell, a functional programming language where you can prove the code will work as intended. You won't have to constantly put out fires like in Solidity.
- Lucadg 5y agoSmart contracts are neither smart nor contracts. It's code which does stuff and if you want to be on the safer side of it, you allow time and liquidity to test them out. If you want to assume risks and possibly higher rewards you get in early (ape, in crypto speech). It's pretty simple. What makes it complicated is that they are called smart contracts.
- mimixco 5y agoThe classic "halting problem" in comp sci shows that no one can even determine all the edge cases, much less test for them. This is why all software has bugs and always will have bugs. The way smart contracts lock-up software and make it impossible or difficult to edit can only create more bugs and prevent them from being fixed when they're found. This is the exact opposite of how professional, enterprise software development handles updates! The lawyer problem is even worse than not being able to interpret the contract. The code isn't even a contract, legally. When conflicts arise from these deals, courts will settle them the way they always have. They won't read code and then decide that "code is law." That's something programmers made up that will also never be true.
- mimixco 5y agoPerhaps I should explain why the halting problem is an issue. In comp sci, the halting problem says we can never guarantee that, given some input, a program won't halt. "Halt" is another way of saying "stop without doing the intended thing," which is what we call a bug. One of the ways this translates to everyday debugging is that humans cannot ever know the range of all possible inputs or conditions to a program. We don't have that ability any more than we can give someone a list of all the words that can be made with the letters A-Z. If we cannot write down what all the possible inputs might be, we cannot be sure that one of them doesn't cause halting! By the same token, as useful as they are, no set of regression tests can prevent all bugs for the same reason: it simply isn't possible to come up with a set of regression tests that is in any real sense "complete" (ie: ensures no halting). The halting problem was proved mathematically by Alan Turing and applies to all Turing computers, so we know it applies to smart contracts. In fact, the inability of the developers to conceive of one possible input (a zero value from the oracle) is what led to halting in the case of IRON. To make the problem worse, even knowing that halting (aka bugs) was a possible outcome (a likely outcome, even), not only did the company apparently not seek any outside code audit, they locked down the contract (because it's "law," lol) so that the code can't be fixed even though it's now known to be broken. So there's the stupidest kind of programming ever. Smart contract is a name in the same vein as the Ministry of Peace in Orwell's 1984. It is anything but smart. It is known to have bugs (halting problem) and they cannot be fixed (locked down "by law," rotflmao).
- gerikson 5y ago> The developers seem to have been earnest in their attempt to create a new kind of stablecoin , one that was only partially collateralized by a “real” stablecoin. This space is a giant house of cards.
- bhaak 5y agoThe financial crisis of 2008 showed us that you can say the same about the traditional finance system. Crypto is reinventing the same system as traditional finance and hitting all the same problems that we encountered in the last 100 years. At least here everybody who opens their eyes can see that it's a house of cards.
- sashimi-houdini 5y ago"They are doing it too" is a favorite argument of crypto-enthousiasts. I'd argue the answer here is not more madness (crypto), but a serious attempt to fix the traditional financial system.
- hungryforcodes 5y agoWhy bother -- it's so broken. We can just again, it makes way more sense.
- sashimi-houdini 5y agoBut cryptocurrency's answer is usually not "how can we do better" but "how can we repeat the same mistakes in a shorter time span?"
- hungryforcodes 5y agoCryptocurrency is incrediably diverse at this point, so you would have to be more specific.
- 5y ago
- frgtpsswrdlame 5y agoInterestingly Mark Cuban got taken for a small amount of money by this and is already calling for regulation around stablecoins: https://www.bloomberg.com/news/articles/2021-06-17/mark-cuban-defi-iron-finance-crashed-100 https://www.bloomberg.com/news/articles/2021-06-17/mark-cuba... I read about it. Decided to try it. Got out. Then got back in when the TVL start to rise back up As a percentage of my crypto portfolio it was small. But it was enough that I wasn't happy about it. But in a larger context it is no different than the risks I take [in] angel investing. In any new industry, there are risks I take on with the goal of not just trying to make money but also to learn. Even though I got rugged on this, it's really on me for being lazy. The thing about de fi plays like this is that its all about revenue and math and I was too lazy to do the math to determine what the key metrics were. The investment wasn't so big that I felt the need to have to dot every I and cross every T. I took a flyer and lost. But if you are looking for a lesson learned , the real question is the regulatory one. There will be a lot of players trying to establish stable coins on every new l1 and L2. It can be a very lucrative fee and arb business for the winners. There should be regulation to define what a stable coin is and what collateralization is acceptable. Should we require $1 in us currency for every dollar or define acceptable collateralization options, like us treasuries or? To be able to call itself a stable coin? Where collateralization is not 1 to 1, should the math of the risks have to be clearly defined for all users and approved before release? Probably given stable coins most likely need to get to hundreds of millions or more in value in order to be useful, they should have to register.
- shadowgovt 5y agoHypothetically, what he's suggesting may not even need to be government-backed. An independent auditor, with reputation on the line, could, for a fee, offer independent coin analysis and risk assessment. Perhaps something similar to the Underwriters Laboratories model... knowing a coin was "Coincheck-certified" or something could give similar confidence to knowing the UL sticker on a lamp means it's a bit less likely to burn your house down.
- Nasrudith 5y agoThat whole concept doesn't make any sense really. You don't have a lamp which can quietly turn itself into a plasma torch from a perfectly safe prior configuration. Yet any stable coin is an attractive nuisance basically - it involves keeping sizable money around doing nothing. As seen by pension raids that is a huge "steal me" sign. Even if you could keep it secure such an arrangement is fundamentally very entropic without it being a real currency with backing. It is still entropic but that is being used to sustain a nation state instead of bad finance which actively tries to avoid useful investments.
- h2odragon 5y ago40 years ago, financial innovation involved finding new affinity groups to sell credit cards to (and others I'm sure but that was a scam I saw firsthand). It wasn't any more honest than this; it was just kept quieter with private meetings and less publicity for the collapsed scams. I'd be looking for the banker-adjacent people in these. The folks that don't work for the banks directly, but consult; somehow always seem to have some extra connection to someone at the bank, related, married, side projects...
- sashimi-houdini 5y agoI wrote Skepticoin as a serious parody of Bitcoin. Articles like these about the "state of the art" of cryptocurrency make me wonder: would a parody of a more "modern" cryptocurrency even be recognizable as such?
- jrickert 5y agoThis brings to mind Poe's Law (that on the Internet, any sufficiently advanced satire is indistinguishable from reality), so I would think not.
- bena 5y agoDoge says no
- meowface 5y agoI can't imagine it'd be possible. There're a whole lot of Andy Kaufman-esque / kayfabe / "the most entertaining outcome is the most likely" things going on. Literally no conceivable parody could work as an actual parody, I think. There are coins people are getting rich off of with names and logos like "Pregnant Butt", "CumRocket", racial slurs, etc. There's absolutely no doubt in my mind that if it hasn't already happened, coins named "Scamcoin", "Rugcoin", "Ponzicoin", "This is a scam coin, please ignore", "If you invest in this you will lose all of your money and be the laughingstock of your friends, family, and communitycoin" could probably quickly reach million/billion-dollar market caps. You could make a token with a smart contract which self-destructs itself at a random time, and explicitly disclose this fact, and it'd still probably get a huge market cap and retain it up until the day it explodes. Or you could make one that does this, don't disclose the fact, have millions of dollars flow in without a single person ever looking at the code, and get the same result. (Doesn't matter if you do or don't publish the verified source code; if you do, no one will look at it, and if you don't, no one will notice/care that you didn't before investing their life savings in it.) Poe's law doesn't even quite describe it, because it's not that you can't distinguish between parody and sincere absurdity. There's just no difference between the two in terms of actual real-world outcome. Whether you make an intentionally or unintentionally terrible coin, and whether or not you're open about it and whether or not people are aware of it, it's still going to receive a ton of investment. And it pretty much makes sense why this is and will be the case (unless the US government starts cracking down). People are buying because they find it entertaining and think other people will find it entertaining and buy and that they'll think other people will find it entertaining and buy, etc. And then they just wait until their initial investment multiplies a bit and they try to get out before the inevitable collapse. It's a fast-paced psychological arcade game. In some sense it's a distillation of Wall Street to its purest essence, for better and worse.
- gruez 5y agoThis is good for USDC right? Because it's $262 million that they don't have to pay back? >EDIT: I’ve since learned that the developer(s?) behind this are already the laughing stock of the DeFi community, having wrecked each of their 3 previous projects (now 4) — though this might be their biggest hit yet And people poured $262 million into this?
- onepointsixC 5y agoThey poured 1.33 X $262M at the very least as the stuck USDC was 75% of the collateral that still remains. But apparently a lot more than that even was poured in, in the first place.
- neither_color 5y agoWait so USDC is linked to existing USD in a bank somewhere, so what's stopping coinbase from just nulling the locked usdc and minting 262MM new ones? Sorry if it's a dumb question Im not sure how stablecoins work.
- rawtxapp 5y agoBecause those tokens are fungible, they can "blacklist" certain addresses and refuse deposits from them coming to their exchange, but they can't "null" some random addresses holdings.
- gruez 5y agoThe smart contract itself has a "blacklist" function[1], which presumably can be used to prevent those tokens from being moved. [1] https://etherscan.io/token/0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48#writeProxyContract https://etherscan.io/token/0xa0b86991c6218b36c1d19d4a2e9eb0c...
- gruez 5y ago>Wait so USDC is linked to existing USD in a bank somewhere Yep, short of the fed issuing USD tokens directly that's always going to be how USD stablecoins work. >so what's stopping coinbase from just nulling the locked usdc and minting 262MM new ones Nothing, other than that they have zero incentive to do it. I doubt whatever goodwill they get will come close to the $262 million that they don't have to pay back.
- meowface 5y agoProbably a dumb question, but is there any possibility of temporarily getting the price to slightly above 0 in order to let people get their money out? For example, could some group with a lot of money offer to buy/sell a bit until the oracle considers it above 0, in exchange for some sort of compensation from the investors or devs?
- Udik 5y agoYep, and btw, how can the price of anything be exactly 0? This doesn't sound right either.
- meowface 5y agoAccording to the graph in the post (https://miro.medium.com/max/6088/1*tzpAFvuxVeumWO8ENz_SZg.png https://miro.medium.com/max/6088/1*tzpAFvuxVeumWO8ENz_SZg.pn...), it's somewhere around 0.0961 as of that time, and I suppose the price oracle they're using rounds that down to zero, perhaps? Or maybe the contract is rounding it down? Either way, I agree it's odd that exactly zero would be reported even if it's very close to zero. edit: Nevermind, I misread. It's -0.0961, apparently.
- sva_ 5y agoThe price is actually something like $0.000000033869. https://www.coingecko.com/en/coins/iron-titanium-token https://www.coingecko.com/en/coins/iron-titanium-token
- exporectomy 5y agoNegative 0.0961
- meowface 5y agoOops, you're right. I misread.
- aodin 5y agoWell, a price can go negative [1], so I wouldn't consider zero to be surprising. [1] https://www.cnbc.com/2020/04/26/why-oil-prices-went-negative-and-why-they-can-go-negative-again.html https://www.cnbc.com/2020/04/26/why-oil-prices-went-negative...
- ww520 5y agoHere’s an arbitrage opportunity. Since the price of TITAN is 0, it only takes a small amount of $ to buy a vast amount of TITAN coins. Buy the locked out IRONs at a discount. Keep buying TITAN at $0 until it moves beyond $0 to satisfy the greater than 0 constraint on IRON. Cash out the IRONs.
- boomer_joe 5y ago>Non-collateralized stablecoins read: "ponzi scheme". This is pretty funny.
- bombcar 5y agoYou used to have to build your Ponzi scheme, now it builds itself and is fully automated. Such advances. Much technology. Wow.
- raziel2701 5y agoWe truly are witnessing the next-generation of Ponzi schemes.
- daaang 5y agoIs that related to IRON somehow? PlusToken was certainly a Ponzi, I don't see anything in this article that suggests IRON is/was one.
- xqk8 5y agoA Ponzi scheme requires a central actor like Charles Ponzi, you're quoting a description of a "purely algorithmic stablecoin" which implies no central actor to channel new investors' money to old, no central actor to defraud the new investors and by telling them they've gained money when they haven't. I guess they are comparable in the way that they both require a inflow of capital, is that what you're saying? That would make them similar to pyramid schemes and startups too. "Ponzi scheme" is more specific than "scheme."
- jonfw 5y agoA ponzi scheme largely refers to a scheme where you invest capital to get access to the future inflow of capital, where that future inflow of capital comes from other investors who are hoping to access future inflows of capital, etc. The difference between this and a startup is obvious- a startup intends to become financially independent at some point
- cwilkes 5y agoAnd this is why leetcode is important. Oh they use that in their interviews? They aren’t a true leetcoder then.
- runbathtime 5y agoDoes this contract have a money transmission license? Selling an IRON or a TRON for USDC is money transmission. BSA requires money transmitters to be licensed in states where they operate, as well as register with FICEN, etc. How can we enforce them to comply at the state level? Can an individual sue the states to enforce compliance on the people behind this smart contract? Those that have lost money might have an incentive to start wanting money transmission rules actually enforced.
- bruce343434 5y agoWere the devs even American? From reading the article and their bad grammar, it seems not. If so these US regulations don't really apply/have any consequences.
- bombcar 5y ago> Non-collateralized stablecoins require continual growth to be successful. In the event of a price crash, there is no collateral to liquidate the coin back into, and the holder’s money would be lost, as seen with many past projects trying to utilize such design [sic]. Isn’t that just a Ponzi scheme?
- raziel2701 5y agoIt sure sounds like it, new money needed to pay the old money.
- deleted 5y ago[deleted]
- RaketenStadt 5y agoA definition so broad it's meaningless. There was no Bernie Madoff here, no fraudulent scheme, just very poor design and outright mistakes. What you're describing is what they tried (and failed) to avoid. How can you make it to the "I’m wondering if this can last mathematically?" part of this article and still think there's a mastermind behind all of this?
- RaketenStadt 5y agoNo, much different, in a Ponzi scheme you're fraudulently claiming that the high returns you're delivering your old investors are real, and result from your investing acumen, when in fact they aren't real, they're just money from new investors that was never invested in the first place. This is more like if you bought a lot of dollar bills that were 75% backed by gold and %25 backed by Dogecoin. They are comparable in that both keep working as long as no one tries to cash out, and money keeps coming in.
- EDEdDNEdDYFaN 5y ago"They are comparable in that both keep working as long as no one tries to cash out, and money keeps coming in." So...a Ponzi scheme?
- runbathtime 5y agoIf a code error that was made that was supposedly 'dumb' wasn't caught that tells me the people behind this acted recklessly. This code error being described wasn't just dumb, it was catastrophic- locking up all the collateral. Is this collateral locked up forever, what would make Titan trade above 0? The code wasn't even audited, suggesting no care by the devs before release. Doing money transmission without a license is criminal offense- jail and fines in this case are on the table- all it takes is actual enforcement from regulators.
- tluyben2 5y ago> Doing money transmission without a license is criminal offense Who did the transaction though? These people? The eth network? Was it considered money? And where? Do these people live there who did the transaction? I am not saying you are wrong but this 'war on X' attitude never was a great idea, it also does not work as it is not a singular entity that is to blame. It is a vast network spanning countries.
- runbathtime 5y agoIgnorance or not understanding the money transmitter rules is not a defense. Focus directly on the entity doing the money transmission in this case- the smart contract IRON. They take in USDC and give out IRON and TITAN. IRON and TITAN are money substitutes. Money transmission includes anyone by any means conducting exchange of one type of money for another. Functionally that is what this contract is doing. The code didn't write itself, there are people behind it that released it, and they wrote it to conduct money transmission (a specific purpose). You don't even need to bring ethereum into the conversation to prove they are in violation. I'm not sure I understand your comment about 'war on X' but I think it is a problem when there is an arbitrary application of these laws and unfair dealing that we see by regulators within the crypto industry. Maybe this is natural (self interest), and maybe it isn’t entirely their fault (limited resources). I saw a twitter thread from a lawyer saying the SEC doesn't determine if something is a security, the courts and congress do. Then why are we obsessed with the SEC’s opinion? I speculate that we just need court cases and we do not need the regulatory authority to bring the court case. Maybe that is the problem to solve.
- Dotnaught 5y agoThe line of source code cited in the post isn't immediately evident in the Iron Contracts repo: require(_share_price > 0, “Invalid share price”); https://github.com/IronFinance/iron-contracts https://github.com/IronFinance/iron-contracts Is it in a different repo? Does it exist?
- meowface 5y agoNot unlike many package repositories (PyPI etc.) and GitHub, the actual code a smart contract is running doesn't necessarily have any connection to what's in some GitHub repo. The only way to know is to look at what's on the actual blockchain. (If verified source is published, you can see the actual code; else you'd have to decompile the EVM bytecode. But basically 100% of the time, if verified source isn't provided then it's a scam, so it's safe to just ignore things without source. And, of course, even if verified source is published, there's still a high chance any given contract picked out of a bucket will be a scam, but at least you can review the code and spot the backdoor.)
- tanzann 5y agoSeems this line is in Polygon contract: https://github.com/IronFinance/iron-polygon-contracts/blob/master/contracts/Pool.sol https://github.com/IronFinance/iron-polygon-contracts/blob/m...
- sva_ 5y agoI think it ultimately boils down to https://github.com/IronFinance/iron-polygon-contracts/blob/master/contracts/oracle/ShareOracle.sol#L34 https://github.com/IronFinance/iron-polygon-contracts/blob/m... > uint256 private constant PRICE_PRECISION = 1e6; yikes :D
- deleted 5y ago[deleted]
- ipsin 5y agoI found this article interesting, but the HN title ("Off-by-one error...") doesn't match the article's, or its conclusion? The article mentions a boundary condition ("_share_price > 0"), not an off-by-one error.
- karatinversion 5y agoThe off by one error is that the condition should have been >= 0
- deleted 5y ago[deleted]
- Dylan16807 5y ago"An off-by-one error or off-by-one bug (known by acronyms OBOE, OBO, OB1 and OBOB) is a logic error involving the discrete equivalent of a boundary condition." And these are discrete numbers, so I don't see the problem. A huge fraction of off by one errors are > vs >= or < vs <= in a for loop.
- occamrazor 5y agoNow everyone with USDC locked in the contract has a strong incentive to push the TITAN price above 0, in order to unlock their coins. OTOH everybody wants to dump TITAN at any price, but again only at a price >0. There should be an equilibrium where TITAN is valued exactly 1 tick above 0, if there is a concept of “tick” in TITAN.
- leephillips 5y agoSince the price is not an integer, this is not an “off-by-one” error. No? It was the common mistake of writing `>` when `>=` was intended.
- rmetzler 5y agoWhat do you think would be a better name? I kind of agree with you, but then, since it would fit for integers, I can’t think of a better name and could live with some generalization of “off by one”. I’m not a mathematician but maybe something like “off by n; n -> lim 0”
- Negitivefrags 5y agoAmoung my friends when we used to do ACM programming competitions we called it “Off by equals error” since it was actually a fairly common issue in those types of programs and it was useful to have a name for it. “I think you are off by equals here”
- leephillips 5y agoI’m not sure. Since it is related to the distinction in mathematics between open and closed intervals (except on computers we have floats in instead of reals), maybe “interval error” or “endpoint error”. But not “bounds error”, of course. EDIT: Or maybe “comparison error”. I like that the best. But calling it an off-by-one seems wrong, especially as what we usually mean by that is something more like not handling the last iteration of a loop correctly.
- iterati 5y agoIt's a boundary condition error.
- aidenn0 5y agoAre prices really not integers? That alone seems a huge design flaw. BTC prices are integers (in units of Satoshis, which are smaller than BTC).
- 5y ago
- Animats 5y agoTTN is not at 0. It's at $0.00206950, which ought to pass what the poster claims is a bad > 0 error test. So what's really going on?
- deleted 5y ago[deleted]
- wyager 5y agoStablecoins are stupid no matter how many layers of Rube Goldberg crap the developers slap on top. https://mises.org/wire/folly-economic-stabilization https://mises.org/wire/folly-economic-stabilization
- cannabis_sam 5y agoDid these people also write their ”smart contract” in anything resembling JS?
- ppeetteerr 5y agoI have never read so much about nothing as I have when reading about some new coin. It's worse than a pyramid scheme. At least there, you end up with a decade-worth of skin cream.
- dragontamer 5y agoYou're talking about multi-level marketing. Which isn't quite a pyramid scheme (even though it is pyramid-ish). Pyramid Schemes have the originators (the "top" of the pyramid) win lots of money, while the base (the "bottom" of the pyramid, where most people are) losers. And the top barely did any work to get there: they just took the money from people below them.
- ppeetteerr 5y agoYou are correct, good sir. As you point out, both are somewhat the same: your value increases as more people buy into the illusion of value.
- aidenn0 5y agoMany MLM companies fit the legal definition of a Pyramid scheme (and have faced consequences from the FTC in some cases). The general rule is that if the majority of money does not come from selling to retail customers (either directly or downstream), but rather from recruiting new members, then it's a pyramid scheme.
- perl4ever 5y agoThere really is no "general rule" as evidenced by the fact that companies accused of being MLMs have gone on as publicly traded companies for ages, while even billionaires and hedge fund managers have feuded about whether it is a scam. See: Herbalife and Ackman vs. Icahn. Or AFLAC. (I'm not saying they are an MLM, but I've been personally approached for a "job" that seemed to be sales with no qualifications needed and I wondered)
- 5y ago
- cabalamat 5y agoUnstable coin?
- runako 5y agoI also enjoyed this writeup: https://www.bloomberg.com/opinion/articles/2021-06-17/titanium-got-crushed https://www.bloomberg.com/opinion/articles/2021-06-17/titani...
- spamizbad 5y agoIs "unthought" some trendy positive-vibes-only newspeak for "didn't think"? Or just an artifact of non-native english?
- biztos 5y agoThis may be a stupid question but: is it actually possible to have a price less than zero? TFA suggests that this line: require(_share_price > 0, “Invalid share price”); ...should be "greater than or equal." But if the share price can't be negative then you'd want to just use an unsigned int and not pay for a require statement, right? Isn't everyone passing around uint256's these days?
- imtringued 5y agounsigned integers cause more problems than the additional range is worth. If you ever run into negative prices you want them to be negative, not positive in the trillions.
- ikeboy 5y agoFwiw the bug was fixed by submitting a transaction to change the oracle to a new contract that just had a fixed nonzero price for titan. Everyone was able to redeem at roughly 74.6 cents.
- oneshoe 5y agoQuite honestly, that's quite scary. The ability to just change an oracle sounds like a backdoor (and not De-centralized). I'm not exactly familiar with Poly - but, I thought that was the sell of Link, was the idea that you are dealing with Oracle pools rather than a specific, single, Oracle?
- ikeboy 5y agoThere's a timelock where any such changes are delayed by 12 hours. So if they were to submit a transaction that people didn't like, they could exit - this significantly reduces the expected value of trying to steal funds since most of it will vanish. But it's useful to be able to tweak some parameters in case of bugs such as this.
- pavel_lishin 5y ago12 hours is not a lot of time. And what does it mean that they could exit, when the contract itself was completely broken in the meanwhile?
- ikeboy 5y agoIt's enough time for most people to exit during normal circumstances. Sometimes longer periods are used. Definitely better than nothing. In this case people wouldn't have been able to exit due to the bug, correct.
- PragmaticPulp 5y ago> It's enough time for most people to exit during normal circumstances. Most people don't monitor the finer details of their investments 24/7. 12 hours is better than nothing, but it's unrealistic to expect everyone to stay tapped into news feeds about their crypto at minimum twice a day.
- tornato7 5y agoI think Circle is the real winner here. If there are 200 million USDC locked up permanently in some contract, then Circle can safely spend $200m of it's collateral knowing it will never be withdrawn. Or, if they were generous, they could return it to the community that invested in IRON (seems unlikely)
- ac29 5y agoGiven that Circle is based in the US and subject to US court rulings, more likely they would need to freeze and hold those assets pending any potential lawsuits to recover funds.
- Scoundreller 5y agoIf there’s a statute of limitations, they’d eventually be free and clear, no?
- ac29 5y agoIn other situations where a company is unable to return a customer's money or property to them, they don't magically get to keep it, statute of limitations or no. Where I live, they would have to give the money to the state office of unclaimed property, eventually. However, I'm not a lawyer and I imagine this is likely more complicated than that.
- elliekelly 5y agoIt would eventually escheat to the state, not Circle.
- timdaub 5y agobrilliant comment :D
- ethbr0 5y agoSo, as a thought experiment, because of the nature of the bug that $272M is locked until such time as TITAN becomes worth > 0. And TITAN is printed by the system itself, whenever IRON is < $1? Outside of abusing the oracle, that seems like a pretty pickle.
- sanderjd 5y agoSo, Dai is a stablecoin that by my understanding is collateralized similarly to this one, except that it requires ether (and I believe USDC is also an option). However, its peg held up very well during the recent precipitous drop in the price of ether. I'm curious if anyone here knows whether that was an algorithmic success in comparison to this, or perhaps just an artifact of people having more confidence in ether.
- RaketenStadt 5y agoAccording to paragraph 3 of TFA it's not collateralized similarly > Other on-chain stablecoins like DAI are over-collateralised. For every $1 of DAI, there’s ~$1.75 worth of crypto assets in the DAI system.
- sanderjd 5y agoThank you! That's the critical fact that I missed!
- zionic 5y agoDAI kept its peg while ETH went all the way up to 1440 and back down to $70. It’s also kept it up from $70 to $4400 and back to $2300, so we’re well within norms.
- freewilly1040 5y ago> I’ve since learned that the developer(s?) behind this are already the laughing stock of the DeFi community, having wrecked each of their 3 previous projects (now 4) — though this might be their biggest hit yet What's the best DeFi project? One where the value proposition is actually clear, there are actually people using it and it's actually at parity or better than a traditional financial system offering?
- neutrinoq 5y agoThe one I actively use and have benefited a lot from is PlanetFinance.io You can easily get 50%+ APY a year on various stablecoins and crypto.
- xtracto 5y agoThat looks so shady... It has a very 2017 ICO feeling. A lot of buzzwords, a stupid name "AQUA" "BluePlanet" "RedPlanet", a bunch of extraordinary and unfounded claims, etc. Reminds me of a "Amfeix" scam that was all the rage in the crypto circles a couple of years ago. It was even advertised in "reputable" crypto pages.
- wallacoloo 5y agoUniswap, the decentralized exchange. Is it decentralized finance?… up for debate (but at the very least, it’s a critical component of the DeFi ecosystem). But I can plop $x of Ethereum and $y of tokenized BTC onto it, providing a valuable service to anyone who wants to exchange the two for any reason (e.g. tuning their price exposure to those assets), forget about it for a couple months, and come back to see that it’s earned me a few % in fees. In many cases it’s easier to use than the traditional equivalents because there’s no registration system and it’s instant. It falls short in some comparisons because of Ethereum transaction fees, but there’s a lot of work happening to address that. Runner ups are Compound and Aave — two large overcollateralized lending platforms. And the Maker: the USD-pegged “stablecoin” which gives anyone who doesn’t want ETH price exposure access to these DeFi tools. That’s the area where a lot of people think there’s room for improvement, hence all the experiments like the project this article is about.
- kemonocode 5y agoI knew crypto detractors were going to have a field day with this one. ;) With DeFi, you're simply exchanging one type of risk for another. Without due diligence you're pissing your money away- as it is to be expected. And as it was brought up before, this was an unaudited contract that had been running for what, weeks? Months? Personally, I cannot say I understand DeFi deeply enough to get into the intricacies of "yield farming" and such, so I just avoid it altogether. Only have a relatively small amount of USDC and DAI accruing interest on Compound, which has at the very least been audited [0] a few times before, but even if it were to go tits up tomorrow for whatever reason, at least I understood there was that risk. [0] https://compound.finance/docs/security https://compound.finance/docs/security
- bombcar 5y agoI mean you don't need to do much due diligence to know that a 30,000% APR is unsustainable - so you're just gambling that you can get in, get some, and get out before it levels off or explodes.
- ayngg 5y agoThe big thing that people get caught up on is the fact that the space is essentially permissionless and because of that there is no regulation meaning everyone is entirely responsible for themselves, a level of responsibility that is foreign to most people. Anyone can make anything they want, which will inevitably lead to projects that outright scams, or fail because of bugs or misaligned incentive structures. Of course these are the projects everyone here loves because it reaffirms their belief that the entire space is a scam. I think the real story is the insatiable appetite for get rich quick schemes in today's world, because without that many of these projects would simply not be used. IIRC they had some insane yields of like 50k% apy on their token, anyone with any sense would know to run away from anything promising that.
- kemonocode 5y agoIf I understand things correctly, it didn't start out with such insane yields- that merely happened once it lost its peg. Even with my skepticism when it comes to stablecoins in general, I'd first put money in something that's overcollaterized so it has greater chances to survive "black swan" events (Such as DAI) or that has been properly audited so there's a guarantee $1=1 token (None yet- USDC is far less dodgy than USDT, but it too has only been merely audited, not attested.)
- api 5y agoI thought of a new framing of cryptocurrency reading this: it's a MMORPG for math nerds.
- lupire 5y agoWhy don't the IRON holders bid TITAN up to 0.000001 to unlock the IRON $0.75?
- aazaa 5y ago> _share_price here refers to the price of TITAN, as provided by an oracle, which is correctly reporting it as… 0 (somewhere in the distance, you can hear a room full software engineers burst into laughter ). Aside from the amusing programming error, the main problem with much of the "smart contract" activity today is that doing anything remotely interesting requires an oracle. An oracle is basically a server that reports the outcome of an event. And servers can be attacked in ways that systems like Ethereum can't. So a lot of the hype around Ethereum and its "smart contracts" is really people just misunderstanding the security model. The weakest link is a server in a dorm room or data center reporting a number. Here the oracle is doing the right thing. But it could easily go the other way.
- DennisP 5y agoI'd say Uniswap is interesting. That doesn't use an oracle.
- acjohnson55 5y agoBut it also only works with on-chain cryptoassets.
- DennisP 5y agoIf you want to work with off-chain things then necessarily your system is going to include off-chain things. I'm not sure of your point here. However, I can think of an exception. Augur is a prediction market that doesn't use a trusted source to resolve bets. It doesn't get a lot of use these days, and probably won't before scaling resolves gas prices, but the bets that have been live on the system have resolved correctly.
- bikamonki 5y agoOracle is a fancy name for an API, right?
- el_dev_hell 5y ago
- grouphugs 5y ago"billion dollar" people misinterpret indexes a lot
- matthewsinclair 5y ago> “which we have unthought of” Someone has to make this into a meme. It will definitely be my excuse for my next multi-hundred million dollar value destroying software bug.
- SV_BubbleTime 5y ago> More money has to come in Is there any better description of these coins?
- elliekelly 5y agoI quite enjoyed the triangular shaped diagram they used to further illustrate the crypto-coin conundrum.
- diveanon 5y agoI got burned by this crash. The biggest issue for me wasn’t TITAN itself, that was a risk I considered and had a plan to manage. What really got me was the Polygon network crashing and breaking all of the safeguards I had put in place. There is evidence that a DDOS attack was carried out against Polygon while this was happening, blocks were packed with self transfers for 0 MATIC. This took down rpcs and shot gas fees through the roof, preventing many people from exiting their positions.
- warkdarrior 5y agoA truly decentralized free market worked as advertised, though not as hoped.
- diveanon 5y agoIts not my first time getting burned by a defi project, but it was the first time where the network itself was a major contributor to my losses. If it weren't for the Polygon network going down my stop loss protection would have exited my pools and limited my losses to around 10% instead of 100%. Reminds of my retail trading days and waking up to see a stock gap below my stop loss during after-hours. This is one of the fundamental flaws with many L2 networks. The lower fees are enabled by a centralization of the versifiers which makes them more susceptible to high loads and DDOS attacks like this. BTC and ETH have both been the victims of DDOS attacks in the past, but it takes orders of magnitude more money to do it because of the high gas fees on those networks.