Earlier quoted context omitted.
>Neither of those limits actually makes solving the problem feasible in practice. That's the point. Theoretical limitations has no bearing on solving the practical problem. That is why RichardHeart's original point [1] is wrong. [1] The halting problem states you can't predict what a turing complete program will do, until you run it. This means to some degree, that you can't predict what your "smart" contract will do…
Pretty sure the parent was saying the opposite. Testing every possible input is infeasible, since the number of possible inputs (and number of possible states) is HUGE.
What does $100 Ether mean?
111–117 of 117 posts
Re: What does $100 Ether mean?
#112Earlier quoted context omitted.
If you want to know what a given transaction will do, you can simply run it locally; no need for formal analysis. Formal analysis is useful for proving properties about your program like "the total balance will always equal the sum of the accounts" and "transfers never increase the sender's balance".
I want to know what any possible transaction can do. See my sibling comments.
Edit: Rereading your earlier comment, I understand now - you're talking about other contracts your code calls, not vice-versa. In that case, I'd point out that you're totally free to either write those contracts yourself if they're not already provably secure, or write your own code such that it's formally proved to work regardless of what those contracts do.
Re: What does $100 Ether mean?
#113Earlier quoted context omitted.
"Internet of Agreements" we hope to stand up as a series of conferences, and then a trade association a bit like a more participatory "Internet of Things." Remember that Linux, Ethereum, Internet of Things are all trademarks. It's very much how the world works: if you want to build a commons, first you have to have something to share.
This statement that "If you want to build a commons, first you have to have something to share" doesn't relate in any way to a need to own this concept. Trademarking "Internet of Agreements" doesn't somehow give you more of "something to share", rather it gives you less. Whatever your reasons for capturing your IP, so that you can monetize and control it, generosity isn't among them IMHO. What you're trying to do is…
I have FOSS'd very, very significant IP in my time - most notably the Hexayurt Project - and it has been incredibly hard to get things done. In this instance, we need the protection in order to have our vision - rather than that of one of the big Stack companies - shape the future a little.
You'd grudge us that?
Re: What does $100 Ether mean?
#114Earlier quoted context omitted.
Pretty sure the parent was saying the opposite. Testing every possible input is infeasible, since the number of possible inputs (and number of possible states) is HUGE.
That is not the opposite of what I said. That is a reason why what I said is true.
Formal verification will be necessary in practice. This is not an ideal outcome either, since (1) you have to formally specify the problem you're trying to solve and (2) the proof that the code meets the specification can easily be bigger than the program, by many orders of magnitude. Even this does not guarantee that bugs won't happen, since there's no guarantee that your specification accurately describes the problem you're solving.
Re: What does $100 Ether mean?
#115Earlier quoted context omitted.
I want to know what any possible transaction can do. See my sibling comments.
But you can reason about what any possible transaction can do by reasoning about all possible inputs to your code; you don't need to know anything about how other contracts were written, since even if they are formally provable, they could send you literally any input. Edit: Rereading your earlier comment, I understand now - you're talking about other contracts your code calls, not vice-versa. In that case, I'd point…
I also have to reason about the transactions that invoke other smart contracts that, through one or more subsequent calls, will call into mine. These transactions are inputs to my smart contract as well. Recall that the DAO was hacked by an "attacker" contract that called into it, for example.
> I'd point out that you're totally free to either write those contracts yourself if they're not already provably secure, or write your own code such that it's formally proved to work regardless of what those contracts do.
If formal specification and verification were practical, we'd be doing it in every programming domain. Normally, few people bother since (1) it takes a lot of work, and (2) the consequences of bugs are small in most domains, especially compared to the consequences of not shipping code on time. If you have not tried to formally specify and verify the correctness of a non-trivial program before, I encourage you to try it before recommending that strategy (especially if that recommendation includes telling developers to rewrite other peoples' code).
Since smart contracts have other peoples' money attached to them, the developers' first priority must be user safety. Ethereum does not appear to take this seriously, since (1) its default programming languages are not designed to be amenable to formal verification, and (2) smart contracts are allowed to call into one another.
I would much rather program on a blockchain that kept smart contracts completely isolated from one another, and required me to submit a machine-checked proof that the user's money (1) will be sent to an address of the user's choice automatically no more than X blocks after the deposit, and (2) cannot leave the smart contract at an earlier time without a one-time-use signature from the user. If a smart contract cannot be proven to do both of these things, then the blockchain should prevent it from running.
Re: What does $100 Ether mean?
#116They forgot the feature where if a smart contract doesn't go the way they want it, they create a default-opt-in hard fork of the currency. Sorry if I don't trust the "small group of legends" more than the government.
Can you provide a solution to force all miners to run the same software forever? Exactly
Re: What does $100 Ether mean?
#117Earlier quoted context omitted.
Is that something we want? Because it doesn't sound like something I want. I like that there's some level of the human element in the personal transactions I conduct with businesses, and I don't think I'm alone given how hackneyed the joke about bypassing automated phone support systems has become. If something falls outside company procedures there's usually someone who can help me out by bending the rules or deferr…
> I like that there's some level of the human element in the personal transactions I conduct with businesses, and I don't think I'm alone[...] I'm quite sure the same argument was being used by many brick and mortar stores at the dawn of e-commerce. In certain businesses empathy matters, in many of them it doesn't. There are also businesses that would never be built without the blockchain - and that's the most intere…
It was, but even then every e-commerce company has a chain of escalation that, at some point, ends at a human who isn't controlled by an algorithm. Setting your business logic and "walking away" as the original comment said wouldn't have that escalation path. If it does, then how is it much different from the way things work now?