Hacker News new | past | comments | ask | show | jobs | submit login

> The community killed scripting because it was antithetical to the thing that makes money in BTC: trust. The constant flow of n00bs coming in who got their transactions reversed by OP codes and said "BUT I THOUGHT BITCOIN TRANSACTIONS WERE IRREVERSIBLE!!?!?!!?!?!1111" was eroding trust in the ecosystem.

I never heard of all of this having happened. To my knowledge Bitcoin's scripting language was not trimmed, it was in fact extended over the years by various BIPs [1].

What's your source for these statements?

[1] https://github.com/bitcoin/bips




I agree that OP is confusing / conflating a bunch of different things.

But to clarify that one bit (I think?) they're talking about -- the code is OP_RETURN. Originally it could return larger amounts of arbitrary data, which was used to effectively store external data on-chain. It was later reduced down to only allow 40 bytes, which would be enough for a hash, but not enough to store larger amounts of state.

This was what Vitalik Buterin and others were using for things like scripting and colored coins, and Vitalik cited (concerns that devs were threatening to constrain it / remove it as a major reason he started Ethereum.

---

Vitalik about OP_RETURN (wish I had link w/ more context) - https://twitter.com/vitalikbuterin/status/929808394487320577


He has no idea what he is talking about.


I talked to a friend in 2010 who claimed that some opcodes could cause transactions to appear as valid on the chain but not actually result in the movement of funds to the targeted address. I realize now that I have not done the work to validate those claims beyond that conversation and will retract my statement until I speak to him.


I think you or your friend might be conflating malleability, which was a UX issue in 2013 that caused people to be confused about whether a tx was confirmed or not, with the disabling of a handful of script opcodes in 2010 for security reasons (they had buggy implementations and were the cause of a severe vulnerability).

Edit for detail: In 2010 the "worst bug in bitcoin's history" was discovered, which let anybody spend ANY output on the chain, due to an obscure feature of the bitcoin scripting system allowing the signature script to simply "return true" before the actual script is executed. This was when OP_RETURN's semantics were changed to unconditionally fail the script if ever encountered rather than the short-circuiting behavior implied by its name and present in early versions. A quick emergency audit was simultaneously done and ALL opcodes that were unused at the time and moderately complex to review were "disabled" as a precaution.

It's not clear that the developers understood at the time that they would not be able to re-enable those opcodes for existing scripts without a hard-fork. The distinguishing between soft-forks and hard-forks were still being worked out back then. So large parts of script were in fact removed, but it was done as part of an emergency bug-fix and the permanent disabling may not have even been intentional.

The disabled opcodes weren't really that important to smart contracts though, at least not without additional primitives that bitcoin never had. There are various proposals to add these features in to segwit script or the upcoming taproot extension.




Consider applying for YC's W25 batch! Applications are open till Nov 12.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: