3 ms·
full byte code execution engine was a big mistake An even better scheme would have been proof-carrying code: a contract should have been a pair (c, p) wher
by mafribe 9y ago
full byte code execution
engine was a big mistake
An even better scheme would have been proof-carrying code: a contract should have been a pair (c, p) where c is the program expressing the contract (in a Turing complete language) together with a proof p in a suitable program logic (for total correctness) that proves that c does not do a bad thing (e.g. consume too many resources). It's easy to check that the proof p is valid for c.
- Animats 9y agoToo complex for the purpose.
- mafribe 9y agoYes and no. The proofs could be auto-generated for decision table based contracts, so a decision table could be a convenient DSL for simple contracts, without preventing more complicated contracts. The average contract writer would never need to see the full language or be exposed to proofs.