4 ms·
> Trusting any smart contract of sufficient complexity is like trusting that a code base has absolutely zero bugs and zero unanticipated edge cases. I just don'
by everfree 5y ago
> Trusting any smart contract of sufficient complexity is like trusting that a code base has absolutely zero bugs and zero unanticipated edge cases. I just don't see that as realistic.
You can do this to some extent using formal verification. Most code doesn't get formally verified because it's kind of a pain to do, and you can usually fix bugs later, but smart contracts are the perfect candidate for it since they are (1) mission critical, (2) naturally limited in size and scope, and (3) cannot be fixed after the fact. You can write perfect code if you have the right tools and do it carefully.
- DonHopkins 5y ago>You can write perfect code if you have the right tools and do it carefully. Obviously you are not a programmer.
- everfree 5y agoIs there something about formal verification of systems that I don't understand?
- chrisseaton 5y agoPeople make mistakes in their verification code the same way they make mistakes in their actual code.
- avereveard 5y agoNo automatic verification would flag misunderstood business logic
- DonHopkins 5y agoThere is something about this "business logic" that I don't understand: >Because the TITAN price falls to 0 which we have unthought of, the contract will revert the redemption transaction.
- dwaltrip 5y agoFormal verification doesn’t help with bad assumptions that went into the design of the program.
- everfree 5y agoThat is absolutely true, but even legal contracts can't help you with bad assumptions that underpin the entire contract itself.
- afiori 5y agoBut with legal contracts there is a baseline common sense of things that will not happen.
- ineedasername 5y agoYes, that's sort of what I mean though: you can't avoid mistakes like that, but with legal contracts there is mechanism to resolve that issue with hundreds of years of experience and benchmarks and mechanisms for figuring out how to hand these things. It's messy and imperfect, but there's no achieving perfection human affairs. Smart contracts don't have a mechanism if this sort. If you have an issue with them as in this case with IRON, your best hope is that IRON will find a way to handle it that satisfies everyone (which may be hard) or that the normal legal system is able to resolve it. Both of those kind of negate the purpose many people want smart contracts to have in being free of sovereign legal systems and, once implemented, automated without the need for human judgement that may be biased or bad etc, so no longer able to be trustless. At best they simply automate portions of a contract, which is still a very good thing, but not really what enthusiasts are hoping for.
- nuclx 5y ago> You can write perfect code if you have the right tools and do it carefully. And you are DJB.