7 ms·
Have you ever implemented a smart contract? If not, I highly recommend you do so before holding an opinion on blockchains. I've never owned crypto, and I've rec
by halpmeh 4y ago
Have you ever implemented a smart contract? If not, I highly recommend you do so before holding an opinion on blockchains. I've never owned crypto, and I've recommended others to stay away from investing in crypto. Yet, I think the computing platform has a lot of promise. Implementing a smart contract for fun helped me see why.
The block-chain can be thought of as cryptographically secure state. That is, everyone agrees on the state of the blockchain and no one can modify it save for modifications in accordance with the "rules". A smart contract can be thought of as a cryptographically secure program, i.e. it cannot be modified. So you have cryptographically secure inputs (the blockchain), and a cryptographically secure program (the smart contract), which means the output is also guaranteed to be cryptographically secure. That is quite a strong premise. You can give your program to anyone and they can execute it for you without you needing to worry about nefarious modifications. This level of trust allows for the creation of a global computing platform. Software authors need only to bring their program and can have it executed on-demand without needing to maintain their own infrastructure. That is quite an innovation.
Of course, in its current form, this "global computing platform" is actually pretty shitty. It is prohibitively expensive to store / operate on a lot of data. However, crypto-currencies are there first viable "apps" built on this platform. If you think about it a crypto-currency is basically a very primitive program that stores a series of transactions as two addresses and an amount. The total amount of data per transaction is tiny. And yet, just by operating on this tiny amount of data you can basically implement the entire financial system: currency, stocks, bonds, options, etc.
We're basically in the dot-com bubble for crypto. People are starting to realize that this new computing platform is cool and has a lot of potential, just as many realized the computers and the internet were cool in the late 90s. Yet, just like in the 90s, the tech sucks and isn't good enough to bring much of anything valuable to the market.
- NovemberWhiskey 4y agoIn my experience, virtually all kinds of substantially useful smart contracts depend on observing or modifying the world outside of the blockchain, which means you have the oracle problem, or you have the side effect problem. Not entirely coincidentally, aside from plain faulty implementations and operational security failings, these two problems represent the ways most successful attacks on smart contracts are accomplished.
- fishtoaster 4y agoI feel like I've heard this argument a lot over the last decade or so: it's early days, the valuable stuff is yet to come. I've gone through about three phases of opinions on crypto: 1. "Blockchain is an interesting primitive that you could probably build something neat (besides a cryptocurrency) out of! I can't think of anything good off the top of my head, but I look forward to seeing what valuable thing people come up with." 2. Smart Contracts are an interesting primitive that you could probably build something neat (besides rebuilding existing finance tools without regulation) out of! I can't think of anything good off the top of my head, but I look forward to seeing what valuable thing people come up with. 3. NFTs are an interesting primitive that you could probably build something neat (besides speculative digital assets) out of! I can't think of anything good off the top of my head, but I look forward to seeing what valuable thing people come up with. In each case, the tech looks like a neat idea, but I continue to wait for the actually valuable use-case to emerge. At this point, I'm starting to just pattern-match all crypto to "unlikely to provide real value ever."
- worik 4y ago> Have you ever implemented a smart contract? No > A smart contract can be thought of as a cryptographically secure program, i.e. it cannot be modified. So you have cryptographically secure inputs (the blockchain), and a cryptographically secure program (the smart contract), which means the output is also guaranteed to be cryptographically secure. The output is not guaranteed to be correct, what you intended, or even what you agreed to. Even the most trivial computer programme can have unexpected properties. Why would I have to explain that here?
- habinero 4y agoAgreed. I've never understood why people think this.
- deleted 4y ago[deleted]
- halpmeh 4y agoNo, the output is guaranteed to be correct. Correct, as in what you specified in the contract, which may not be what you had intended, but that’s besides the point. Can you explain how the output would differ from the contract specification?
- NovemberWhiskey 4y ago"The code does what it does" is not a useful statement; insisting that a smart contract is an executable specification is not helpful unless there's a really very small semantic step from how the user intentions are formed - which again is not the case here.
- halpmeh 4y agoI think you’re moving the goal post. As I mentioned in my original post, smart contracts allow for the creation of a global computing platform we call a blockchain. Maybe you want formal verification, but not everyone cares about that.
- habinero 4y agoSmart contracts are useless and will always be useless for two reasons: 1. It is impossible to write code that always works exactly how you want, all of the time, forever. 2. Law exists. The legal system exists. The moment you have a problem with a smart contract, it's going to court. You might as well save yourselves the time, expense, hassle and potential embarrassment by just going to a lawyer in the first place and having them draft a contract.