Live data from Hacker News

The collapse of the IRON stable coin

irony-97882.medium.com

481–490 of 502 posts

Re: The collapse of the IRON stable coin

#481

Earlier quoted context omitted.

While we disagree on who is responsible for code, I do think we are saying the same thing about cryptos. If you can't fix software later, you're doomed because it all has problems. Likewise, humans make mistakes in transactions and if they can't be undone... problems. EDIT: I should clarify that I don't believe software authors are responsible for use , but rather for bugs .

> Likewise, humans make mistakes in transactions and if they can't be undone... problems But that is saying everything is shit. I do not disagree but I do live in this world. > EDIT: I should clarify that I don't believe software authors are responsible for use, but rather for bugs I got that but what would it look like? In practice? As that seems impossible to me.

I'm not saying most transactions are wrong, but some are. So transactions may need to be corrected, just like code. And, in practice, they often are.

In practice, software companies take responsibility for bugs in three ways today, based on their business model.

Old line companies like IBM paid millions of dollars for people and tools to find and fix bugs and to distribute the fixes to customers. IBM did not wait for you to tell them you had a bug. Their system could tell you if you had a bug that someone else reported. And IBM would ship you a custom tape which fixed that bug and didn't break the rest of your software. Let's call that The Gold Standard. With money, it's certainly possible.

Option 2 is a company like Red Hat. Unironically, IBM bought Red Hat. The reason that, while open source gives you the option to look at the code, most companies don't really want to do that. In other words, Ford could make a lot more money focusing on making cars than they can by hiring people to find and fix bugs in (free) Linux software. Voila! Red Hat offers bug fixing and finding (and a plethora of other things enterprise customers don't want to setup) for a hefty subscription fee. Red Hat has many service offerings in the $10,000/month+ range. Once again, if you pay people, you can find and fix bugs.

Finally, option 3 is a company like Google. They don't really care if anyone else can get open source software to work. But... and this is a big but... they need it to work for themselves. Having built a very lucrative empire on open source (Android, for example), Google cannot afford to wait for "the community" to find and fix bugs. They must pay people and they must pay them well. And, this they do. So while the free open source isn't directly monetized by Google, it's worth their while to pay to keep it up to date and correct. Other companies like Netflix do the same thing.

So there are three ways you can do it today.

What irks me about projects like Ethereum is that, having all these real world models out there, its founder doesn't seem interested in finding or fixing bugs at all. He is relying on "the community" (we know that doesn't work, see #3) and not spending any of his own money on debugging or fixes. In all the real cases where you want fixes to happen (and you want CI/CD to get them to customers), "you", being the publisher or heavy user of such software, must pay.

That's what I mean about responsibility. It's where the buck stops.

Re: The collapse of the IRON stable coin

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

The 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 de…

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

Re: The collapse of the IRON stable coin

#483
post #476

Earlier quoted context omitted.

If you just write the code that does money transmission and share it on github, not host it, not put it in production, then no you aren't doing money transmission, you just wrote some code and shared it. If someone takes that code and puts it in production, then they are doing money transmission. I think people are trying to use the idea that ethereum works differently than AWS, but that doesn't matter. The point is…

> I think people are trying to use the idea that ethereum works differently than AWS, but that doesn't matter. The point is the owners or writers of that code wrote it and put it out to the world with intent or purpose to do money transmission. They published that code, paid the gas fees to do so on ethereum. Now anyone can interact with it. The difference is that you have full control and ability to change the appli…

I have to disagree, but will consider your argument. I just don't think you can write code that does money transmission and publish it and say you are now not doing money transmission because you can't modify it after it is published. Paypal could write some code and publish it on AWS, perhaps they make it so that they can never modify it every again and imagine it functions just fine. Are they now not doing money transmission?

Re: The collapse of the IRON stable coin

#484
post #452

Earlier quoted context omitted.

Yes, and when normal contracts don't ( because they can't ) anticipate every possible scenario, there is a meta layer on top of that to resolve edge cases. In the case of a smart contract, it can even happen that both parties agree in how things should take place when there's a problem! But bad code doesn't work that way, and you can find yourself in a null state of indeterminacy without a built in layer to resolve t…

I trust the alarm on my phone to wake me up in the morning, even though it's been programmed by flawed human beings. It's possible to reach sufficient reliability despite our flaws and bugs.

"Sufficient Reliability" still needs mechanisms to resolve the rare issues that occur. A 5 9's system still needs resolutions for the 0.001% scenarios. In the case of your phone's alarm if your phone crashes, runs out of battery, app cache gets corrupted, whatever-- you can intervene with your human judgement to determine an appropriate resolution. What mechanism do smart contracts have for 0.001%?

Your phone's alarm is also not a critical transaction worth a person's life savings or the wealth of a country or a transaction involving life-critical supplies etc. The bar is a bit higher here, and even the most reliable systems ever designed have the ability to insert human judgement when the rare issue happens. Smart contracts are supposed to be appealing because they avoid the need for biased/imperfect judgement in favor of something "trustless", or at least that's the vision many see for them.

Contracts can also have hundreds or thousands of clauses, making "sufficient reliability" a much higher bar than an alarm clock. Especially because many of those clauses entail human concepts that would be extremely difficult to translate into code: What is the algorithm for determining "force majeur"? That's a pretty basic clause that appears in many contracts, but I don't know where you'd even begin to get a computer to understand & properly identify such events.

I don't see a pathway to sufficient reliability in smart contracts anywhere on the horizon, save for very simple cases. Even then, here we have IRON, which should have been relatively simple as these things go, but failed because the simple case of "Titan has no value" was not considered.

Re: The collapse of the IRON stable coin

#485

Earlier quoted context omitted.

I think a better question might be: what are some valuable "non-ouroboros" projects? Most of the stuff people use essentially seems to be one form or another of shuffling the unit(s) of account around, like the ones you listed. You have a cryptocurrency. What are the uses for the cryptocurrency? Well, you can swap the cryptocurrency for another cryptocurrency or let someone else borrow the cryptocurrency in exchange…

Algorand is a fairly underground project I've been following, but it basically has taken the good stuff from Ethereum (smart contracts, token-izing) and combined it with the possibilities of Chainlink, along with having a ridiculously fast chain and simple ecosystem. Give them 3-5 years they'll be leading the CYO token space. ETH is increasingly falling behind as they can't get ETH2 out the door and Algorand already…

If Eth2 isn't done by then, then yeah, you might be right. But if it's done by 2022, I think it's probably gonna win, like JavaScript in the browser. Algorand currently has less adoption than Ethereum Classic, and Ethereum Classic has way less adoption than Ethereum.

Re: The collapse of the IRON stable coin

#486

Earlier quoted context omitted.

ex-lawyer here: I can confirm it is possible to write buggy conventional contracts; I have done so on numerous occasions. I have missed the odd ',', or simlar lexical slips, in a clause. Fortunately no rockets or stablecoins crashed as a result. And yes, a judge would resolve this to the sound of mocking laughter in the courtroom.

Isn't this why laywers' have to get indemnity insurance?

It is. Being sued for professional negligence is hurty & we earn by inflicting pain on others not getitng hurt ourselves. A static type checker/formal verifier for legal contracts would be worth serious money.

Re: The collapse of the IRON stable coin

#487

Earlier quoted context omitted.

> Likewise, humans make mistakes in transactions and if they can't be undone... problems But that is saying everything is shit. I do not disagree but I do live in this world. > EDIT: I should clarify that I don't believe software authors are responsible for use, but rather for bugs I got that but what would it look like? In practice? As that seems impossible to me.

I'm not saying most transactions are wrong, but some are. So transactions may need to be corrected, just like code. And, in practice, they often are. In practice, software companies take responsibility for bugs in three ways today, based on their business model. Old line companies like IBM paid millions of dollars for people and tools to find and fix bugs and to distribute the fixes to customers. IBM did not wait for…

I think we are in agreement and the implementations that can fullfil so what remains is: how can you find the person or group responsible for fixing or getting sued in blockchain land? I can put some malicious code on the eth chain: how will you find it was me. And that is with intent.

But we agree and I will reiterate: without rollback, current human coders cannot write reliable software. So in it's current state, smart contracts are a utopia and no one should trust them, with or without code audit. But if you still want to play a lottery of humanity vs complexity, read the code, think hard and put or not put your money. If you put your money, do not whine after you lost it. You might as well shout at your toilet for the same endresult.

Re: The collapse of the IRON stable coin

#488

Earlier quoted context omitted.

The key thing here is that nobody can force you to pay your taxes. If you refuse to pay you can be arrested and/or go to jail but the change here is that you can't force someone to give you money but you can compel them to. I like to see cryptocurrency and crypto-assets as a pseudo force of nature. It's not really possible for governments to stop them and they pretty fundamentally change the game for most governments…

The internet requires a bunch of physical infrastructure to operate and crypto requires use of that physical infrastructure. Physical infrastructure is definitely controllable by governments if they so desire. The CEO of Comcast isn't going to go to jail to ensure that Bitcoin is accessible to the average user of their network.

Sure they may try but I don't see how they could make Bitcoin any less accessible than Bittorrent is nowadays. Doubly so considering that if this was to become a legitimate issue cryptocurrencies could just update their peer discovery mechanisms to minimise the meaningful damage that governments or ISPs could do.

The cat is out of the bag and unless governments want to start seriously pushing into authoritarian territory there's very little they can do to stop it. Could China kill cryptocurrencies within their borders? Probably. Now could the US or countries within the EU? Probably not. Particularly in the US I can't see this ever happening. It's too close to infringements upon the first amendment that I can't see any meaningful legislation or regulations sticking.

Re: The collapse of the IRON stable coin

#489
post #476

Earlier quoted context omitted.

> I think people are trying to use the idea that ethereum works differently than AWS, but that doesn't matter. The point is the owners or writers of that code wrote it and put it out to the world with intent or purpose to do money transmission. They published that code, paid the gas fees to do so on ethereum. Now anyone can interact with it. The difference is that you have full control and ability to change the appli…

I have to disagree, but will consider your argument. I just don't think you can write code that does money transmission and publish it and say you are now not doing money transmission because you can't modify it after it is published. Paypal could write some code and publish it on AWS, perhaps they make it so that they can never modify it every again and imagine it functions just fine. Are they now not doing money tr…

There is another issue though, on AWS, Amazon knows who you are. On Ethereum, unless you openly say you published that code, there is not many recourse to find you.

Re: The collapse of the IRON stable coin

#490
post #458

Earlier quoted context omitted.

> has no support from cryptographers I am a PhD student in cryptography, and judging by the papers I've read there is plenty of support from cryptographers, many of whom are directly involved in research and development. Silvio Micali is practically a founder of modern cryptography (and Turing Award winner), and he co-created the blockchain Algorand. There is also plenty of opposition, as the subject elicits strong o…

In fact, I can think of nothing more profitable for a cryptographer than designing a better cryptocurrency.

The fundamentals are all wrong though. Money is, amoung other things, a web of trust. Trying to remove trust from it is taking away some of what makes it money.

I do not think there is a solution in this space that works economically or financially.

What we need is a unit of exchange that: holds its value reliably, allows a lot of transactions, has low over head, allows anonymous transactions.

A central bank could build a system that does the first four, but they have no incentive to do the last.

Post reply on HN