Live data from Hacker News

The collapse of the IRON stable coin

irony-97882.medium.com

61–70 of 502 posts

Re: The collapse of the IRON stable coin

#62
post #20
post #5

This 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.

Hmm. 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.

While 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.

Re: The collapse of the IRON stable coin

#63

Earlier quoted context omitted.

Are 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?

I'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-... > 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…

Contracts, at least in my jurisdiction, can come in all forms and colours. Even purely verbal contracts are valid, in fact. Those are hard to enforce, with nothing written it is always he-said-she-said when it comes to disputes. So I would be surprised if "smart-contracts" couldn't be litigated if push comes to shove. No way avoid the legal system. And that is a good thing.

Re: The collapse of the IRON stable coin

#64

Earlier quoted context omitted.

They said "typically", so they aren't saying it's true in all cases, but generally when a person is trying to evade some legal authority, it's probably not for reasons good for society.

They are trading one legal authority for another, and this is agreed upon up front. Both parties agree that the code is the legal authority before entering into a contract, which is much different from evading authority after the fact. > but generally when a person is trying to evade some legal authority, it's probably not for reasons good for society Reminds me of the "nothing to hide" argument, that only someone tr…

Courts remain the legal authority, you cannot trade on for other unless provided by law (as in statute), and then it is back again to the courts to interpret. What did both parties really agree to? IANAL, but intentions and assumptions of the parties can matter - for example, quite a few things you cannot waive in some places, irrespective of what you agree or not.

Re: The collapse of the IRON stable coin

#65
post #2

> 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.

Seriously. I posit that many of the programmers in the field have no financial background whatsoever, on top of whatever shaky software background they may also have (especially if they went to a bootcamp). Just hilarious to watch.

Developers used to “we can fix it in production, ship it” develop system where fixes can’t be shipped with expected results.

Re: The collapse of the IRON stable coin

#66

The 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 Is it in a different repo? Does it exist?

Not 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.)

Re: The collapse of the IRON stable coin

#67

Earlier quoted context omitted.

They are trading one legal authority for another, and this is agreed upon up front. Both parties agree that the code is the legal authority before entering into a contract, which is much different from evading authority after the fact. > but generally when a person is trying to evade some legal authority, it's probably not for reasons good for society Reminds me of the "nothing to hide" argument, that only someone tr…

>They are trading one legal authority for another, and this is agreed upon up front. Both parties agree that the code is the legal authority before entering into a contract, which is much different from evading authority after the fact. The parties might "agree", but who cares? If they are in the US, for example, and the two parties have a smart contract that breaks US contract law, one of the parties can file a laws…

Yeah I agree with that. Once the contract has executed, enforcement actions can certainly happen in meatspace. But do you not see the difference between:

1. A normal contract (legal or illegal) that requires outside enforcement in the first place to force parties to comply.

2. A smart contract (legal or illegal) that executes itself without outside enforcement and can be overturned later (not literally overturned, but a subsequent transaction can be forced) by meatspace mechanisms

Re: The collapse of the IRON stable coin

#68
post #65

Earlier quoted context omitted.

Seriously. I posit that many of the programmers in the field have no financial background whatsoever, on top of whatever shaky software background they may also have (especially if they went to a bootcamp). Just hilarious to watch.

Developers used to “we can fix it in production, ship it” develop system where fixes can’t be shipped with expected results.

Even worse: unless you use a proxy contract, production code can't be updated period. Smart contracts are immutable, besides being able to self-destruct themselves.

And the unexpected results may be billions of dollars worth of assets lost. Like most of SV, most of the cryptocurrency space is "move fast and break things", but breaking things entails a little more than an app being down for a few hours.

Re: The collapse of the IRON stable coin

#69
post #32

Probably 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?

Yep, and btw, how can the price of anything be exactly 0? This doesn't sound right either.

Price can be a number of things - current best offer from a seller, best offer from a buyer, mid between them, etc. (Stocks often report either the mid or “last trade” but the bid-ask spread can get wide for rarely traded securities, especially Lon-dated options).

I don’t know what the Oracle is using but it would be amusing if something else means the price is “stuck” at zero once it hits zero.

Re: The collapse of the IRON stable coin

#70

Earlier quoted context omitted.

Wait 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.

USDC represents a claim on USD, but why would Circle want to help out this contract and lose 262 million? If a stablecoin issuer like USDC can make arbitrary decisions to null any USDC token and they use that power, that is a good argument for the point that they are not following aml/kyc on every hop or transaction of USDC, even though they are allowing the transfer of dollars behind it. USDC can be charged with vio…

> but why would Circle want to help out this contract and lose 262 million?

Probably a rhetorical question, but they might decide that it's a price they can pay for trust in their system.

Not sure if I understood where the real value currently is though.

Post reply on HN