This a bajillion times. Can I call this Bingledack's Law?
Not really disagreeing, but I think one needs to be careful when identifying such cases. The above farmer example works already on BCH AFAICS.
Also agree with this 100%. It is very heard for us to anticipate how exactly an emergent system like Bitcoin will develop, so it behooves us to provide very simple constituents for the market to work with.
Exactly my saying as well. While I am revisiting my thoughts on this, I think what one wants is just enough complexity on the Bitcoin script side of things that the entities providing services on top of Bitcoin can themselves build their contracts to then provide said services more smoothly.
Imagine the scenario above of "trustworthy computation services" (TCF).
Assume that the insurer and the farmer would agree to a highly detailed, complex, digital contract that involves neural networks and all kinds of bells and whistles. (The meta problem of trusting the contract implementation and implementers that Ethereum fights so badly and will fight in the future comes into play here as well, but let's assume it is still simple enough to be understood by all parties and so let's leave this other fundamental concern aside for a moment).
So they implement their contract on such TCFs. Assume that they agree to take the simple majority vote of a handful of TCFs that they contracted to execute their contract:
The
contracting to execute the contract might have a little bit of complexity, and to not rely on "turtles all the way down", in other words, another third party that is contracted to judge on the contract, that kind of complexity needs to happen on chain.
So, for example, assuming one of the TCFs goes bankrupt and does not answer and publish their oracle anymore. Or, alternatively, takes too long to provide the answer. The on-chain contract should have provisions to deal with such a case, and Bitcoin Script enough expressive power to specify things like timeouts etc.
Another example would be that the TCFs do not agree on the outcome. The TCFs might want to punish the disagreeing minority as kind of a service-level-agreement and/or "quality seal" in their industry. Bitcoin script as-is would likely allow this as well (though I didn't do the math / details
Along similar lines: I actually think that LN, for better or worse, is another such example. It has dubious value on the
customer end, but if you think about the problems involved on the LN
service provider's side, the problems along the lines of "how do we make sure we're running LN smoothly" such as their penality systems etc. (which are
complex already...) can only happen on-chain, as they fundamentally do not want to introduce a layer of trust beneath them. They might introduce themselves as a "slightly" trusted party (as some of us have argued), but LN would make even less sense if they'd start to dig themselves into´ "we trust on others to trust others" kind of "turtles all the way down" etheresque mind games and self-deception. As in that case, it would be clear as day that they are
really just banks.
And I think the on-chain complexity of BCH should be raised only to the level to make the lives of such trusted providers
to interact trustlessly with each other easier, not to create bells and whistles to put everything on chain.
Bitcoin provides just the trust anchors. Of course it needs to be capable enough for everyone to create such anchors freely (hence BCH, not BTC), and to build such anchors in all the various shapes and with all the various hooks that one might imagine are necessary for the products built using those anchors. But only anchors, not full boats (hence BCH, not ETH).
I think Vitalik Buterin either didn't understand this point when he built Ethereum, or he does but knows about the disease that is the love of complexity in large fractions of the nerd crowd and used that as the vehicle to get Eth marketed. I think he's young and smart but not wise yet, so it is likely the former. (And I suspect some of his backers might have been of the latter variant)
As they say, six months is "an eternity in crypto." Speculation in crypto drives price more than most people would comfortably admit and ongoing "governance successes" (as perceived by the market) can also drive adoption. I agree that ultimately there may be many off-chain solutions that ultimately succeed, but if there is no harm, it may be wise to give the market a more flexible platform on which to work its magic.
Yes, but with the above in mind. Complexity really is evil. All the stuff that is added to BCH needs to be supported for a damn long time. What would you say about building a TCF platform as an alternative to on-chain smart contracts for BCH?