Also worth pointing out that a non-trivial number of people would say that no theft at all has occurred, as the smart contracts are supposed to be the final authority, and if you can convince a smart contract to give up its value to an attacker then that's perfectly fine as that's how the contract was written. Ethereum Classic is a good example of this.
That's OK for now as the _real_ money being put into crypto-currency is understood to be a speculative thrill-ride. People who put actual _real_ money into this stuff know it could vaporize at any time for completely insane reasons. Its basically a bunch of people playing with funny money and having loud arguments about absurdly complex rules.
If, somehow, this stuff is to make it into the real world and start interacting with money, institutions, courts and the livelihoods of regular people, it will have to be VERY different from what it is now. That means you can't have smug, over-confident programmers writing clever shit-code and proclaiming it to be "law" and the "final authority".
Either that, or the nature of expectations in the real world will have to change, kind of like they did in the 90s when, after a few technological iterations, real people decided that shopping online was not so batshit crazy after all; or like people did in the late aughts when they decided that sharing every damn thing they were doing, and taking pictures of their tacos, was how one conducted oneself socially.
You're not answering adrianN's question. You're saying why one wouldn't want the contract to be the final authority. But adrianN pointed out that we already have contracts which aren't the final authority. They're asking why the code-based ones are better, given that you still don't want them to be the final authority. (I'm with adrianN; I don't see the point.)
I think this is a common misunderstanding of Ethereum and blockchains in general. The current Ethereum blockchain is authoritative only as long as a majority of it users consider it to be authoritative. The same applies to Bitcoin. No single person decided to fork Ethereum after the DAO was hacked, it was decided by a quorum of Ethereum users. The original fork still exists as Ethereum Classic and if you believe that the "contract is king" then you are still free to continue using that fork along with everyone else who shares that view.
You say "To me at least Ethereum was dead the moment they chose to fork" and that is probably the view of many Ethereum users. I'm certain many Ethereum holders chose to divest their positions and move their assets elsewhere. That is a big loss for the currency but obviously enough people still believe it to be worth something and so it survives.
Because of their distributed nature, cryptocurrencies can be thought of more as living organisms fed by the collective computing power of their users. They don't need to be perfect to survive, only to be slightly fitter than their competitors.
https://www.reddit.com/r/ethereumfraud/comments/6bgvqv/faq_w...
The code had implications that the writers didn't intend. Those implications involved attackers being able to take/steal a large amount of ETH under its terms. But those writers got the entire network to fork and give them back their money in direct contravention of the terms of the code/contract.
Mm, I like this image. It completes something for me...
The world is filling up with these autonomous information organisms, who eat computing power. They also need other care, to go for walks, etc. If we humans want to survive in the information age, we will need to take shelter in one, draw a salary from the care of it.
This is where the Ethereum crowd has - in my eyes at least - already failed with how the handled the previous hack, the concept is as currently implemented fundamentally flawed.
https://www.cryptocompare.com/coins/guides/the-dao-the-hack-...
I can see the dilemma (get the money back or kill Ethereum) must have been a tough one but if they really wanted Ethereum to be taken serious they should have chalked that up to their education fund and call it a day.
You don't seem to understand how the law works. The problem isn't a judge trying to interfere with any of the technical features of the contract. A judge would rule on the legality of the contract as the law sees it[1]. You will be able to argue that the code is the final authority. You will probably also have to show why the other party knew and understood that risk. Depending on the situation, the judge, how each side argues their case, etc, the judge might even agree and dismiss the case.
However, a judge could, for example, rule that an important part of the contract is unconscionable, illegal, etc, and order YOU - not the contract, not the blockchain, not the software - to return the other party's money, or release the other party from their contractual obligations, or to change any particular detail of the contract's terms. The judge won't rule against the contract, they will rule against you, and it's up to you to figure out how to follow the judges order=. If the judge decides to throw the book at you for some reason, the judge isn't going to be interested in why you think about immutable contracts, or what you think the contract means. They could simply throw you in jail (or fine you $1000/day) for contempt until you follow the judge's orders.
It's generally a very bad idea to ignore a judge's orders. IN some situations, this can make immutability a serious liability.
[1] What was the offer? Was there a deliberately misleading or unconscionable clause in the contract? Were the terms understood and accepted? Did each party uphold their obligations under the contract? etc (this type of question will be asked regardless of how the contract is implemented)
You could simply reduce your argument to 'in situations where you use a smart contract where a normal contract would suffice a judge has their usual powers'.
But that wasn't the point I was making. Smart contracts will most likely be used in all kinds of situations where a judge does not have their normal powers, hence the reliance on a smart contract to begin with.
If you can rely on the courts you don't need a smart contract.
So far a few states (US) have passed laws regarding "blockchains", "smart contracts" and the like. For example, seeking to avoid any legal uncertainty surrounding blockchain transactions and smart contracts relating to certain digital assets, Arizona passed HB 2417, the following on point:
- A very specific definition of “blockchain technology” as a “distributed, decentralized, shared and replicated ledger, which may be public or private, permissioned or permissionless, or driven by tokenized crypto economics or tokenless” and provides that the “data on the ledger is protected with cryptography, is immutable and auditable and provides an uncensored truth.”
-A definition of “smart contracts” as an “event driven program, with state, that runs on a distributed, decentralized, shared and replicated ledger that can take custody over and instruct transfer of assets on that ledger.”
Other states in various stages of legislation on point include: Maine, Illinois, Nevada, Delaware and Vermont. interesting notes: Arizona also passed a seperate law restricting the use of blockchain as "fire arm tracking technology", likely a pro gun rights lobbying effort. Delaware will likely be codifying by statute the right to issue stock on blockchains. Courts have begun accepting blockchain entries as business records under the rules of evidence.
This whole notion of smart contracts being exempt from judicial review is crazy. I mean if I sign a regular contract to go sky diving and "waive all rights to sue in the instance of negligence" and they forget to pack my shute and die, the contract is express and speaks for itself but guess what, it's unenforceable, no one can contracts away negligence (no matter what the contract/smart contract says). Murder for hire; no competes in California, these things do not go from illegal/unenforceable contractually to legal because they are outside the jurisdiction of the courts.
I never thought a legal definition would be clearer than every "common" definition I have read. It's like the author of every blog post I've seen titled "What is Ethereum?" has no idea what title they used.
I guess that just shows how hype makes it hard to get to the truth.
For all the hate that lawyers and judges receive, they are as good as mathematicians at coming up with (or at least recognizing and choosing) concise and simple definitions.
The biggest stick that governments have is that they could make it illegal for their constituents to engage in smart contracts with some kind of very large penalty.
But other than that I don't really see what could be done about it once they are a fact.
Just like laws of nature do not care about what a judge thinks math does not either. Trying to overrule smart contracts from the bench is if they actually work roughly akin to outlawing math.
And yes, murder for hire is a serious potential problem, but murders for hire already happen in the world as we have it today so the existence of smart contracts is not going to be an enabler in this respect, hiring someone to kill for you is illegal, whether you use a smart contract or a verbal agreement is not really relevant to that, it's the act that is illegal, not the means of codifying the arrangement.
Just like the Arizona law I cited restricting use of smart contracts for "fire arm tracking", the law could restrict smart contracts in all sorts of ways to protect the public. Examples:
-drafters of smart contracts must be licensed and bonded/insured
-parties to smart contracts must purchase insurance to coverage sufficient to cover losses in full
-criminal liability when marketing materials are inconsistent with the smart contract itself (see: DAO)
-just like many contracts, deeds, trusts must/can be filed with the state...the states could require the same of smart contracts
Now I understand such laws undermine the purpose/intent of many smart contract opponents, but my point is judges/legislature are not powerless insofar as the laws of nature.
No, they are software. And the participants to such a contract have agreed that the execution of that software is the entirety of their transaction. If one of the parties changes their mind after the fact they will have to convince a judge first that even though they initially agreed that the execution of the contract was the entirety of the agreement that now this is no longer the case and that what they said was un-ambiguous before is now ambiguous and needs overriding.
So now you have a fairly complex situation:
- you will have to convince the judge that you entered into that contract and now wish to back out of the defining clause on something that is not classed as 'regret' (which is never a reason to annul a contract)
- you will have to find a way to communicate the judge what relief you feel will compensate you at a level that the judge will be able to enforce (this could be very difficult)
- and on top of that you will have all the usual issues you have to deal with in a lawsuit possibly complicated by your counterparty being anonymous and/or in an entirely different jurisdiction
States don't really matter here, smart contracts are software and are global, that changes their nature in a material way which will make it hard (possibly impossible) for a judge to enforce them one way or the other.
> And the participants to such a contract have agreed that the execution of that software is the entirety of their transaction.
How would such an agreement be communicated or enforced? The same thing happens with paper contracts: when you sign on the dotted line, it's understood that the contract encompasses the entirety of your transaction. However, there always remains the possibility of appealing to the judicial system later to argue that the contract is void/unenforceable.
You're saying no amount of evidence could show someone intended to abide in a way other than how the smart contract says they must abide, because their intention is part and parcel of what the smart contract says. True.
Your partner in this conversation is saying: You might have agreed to something illegal. It's not that the smart contract drifted from the contract's intention, it's that you weren't allowed to agree to that contract in the first place. And they're right: in such a case, the courts won't give an F what conclusions the smart contract comes to. Also true.
This is where the law could disagree with you. If you and I agree that you are my slave, that agreement is null and void. Similarly, the law does not automatically recognise the supremacy of smart contracts just because the parties thereto said so. If a dispute arose, damages could certainly be ordered by a court of law.
Put in X out comes Y,every time. No room for interpretation, just pure beautiful math. That was the idea anyway, for some reason it seems they decided to implement some of these contracts in a not particularly rigorous way.
Jacques is talking about the theory and premise behind the smart contracts, and you Marco are talking about the people interacting with the smart contracts. People who of course are existing under the scope of our present legal systems.
As long as real people can be hauled before a real court
I think this is the crux of the misunderstanding. Because actions can be taken in these crypto-systems more or less anonymously, it is not obvious that you can "haul some one before a real court" should they wrong you in some way, and in those cases when you have parties interacting in these systems anonymously, the laws of the crypto-systems are the extent of the laws they are operating under. Provided extensive investigative effort isn't undertaken to unmask anyone operating anonymously.
Tell that to Ross Ulbricht. Anonymity is not a guarantee of immunity from the long arm and unforgiving memory of the law. Especially in the United States.
This so that some guy in China or India and some guy in the United States can agree on terms without having to haggle over whose legal jurisdiction will kick in if and when there is a dispute about the contract.
Until we get a world government and until judges are able to order millions of nodes all over the world to do a hard fork there is no way around a smart contract environment that actually works. But we don't have that at the present, Ethereum as far as I'm concerned was DOA because of DAO.
The authority of the state ultimately rests on its ability to resort to violence to enforce its will. No smart contract can change that.
If everyone agrees that smart contracts will pay out when they are fufilled. But only if they are fufilled in the specific way each party believes they should be (as opposed to what the code actually says)--then there is no point in smart contracts.
A potential solution is some form of very explicit disclaimer that states you are agreeing X should be paid when the code in contract Y executes, not when the condition you believe the code in contract Y tests for is met.
Of course a court could still ignore the disclaimer.
You can't just ignore these rules by making a system that executes contracts automatically. The judge will simply order you to make the other party whole. Then, if the law allows it, he might hit you with a massive fine for breaking the rules.
It is possible you could eventually be able to sign something making the smart contract a form of binding arbitration.
But you're correct, courts law enforcement isn't going to let you enter into illegal contracts just because it's a smart contract.
Just like that judge that ordered the DAO hack to be reversed?
> or order me to enter into a different smart contract.
No, a judge will never order anybody to enter into a different smart contract just like they don't order people into regular contracts today.
> And if I don't comply, they will eventually hold me in contempt and at some point seize my property by force and throw me in jail if I resist.
Judges have a lot of power, but they can't enforce their views on people not in their jurisdiction without the cooperation of judges and governments in other countries. This is one of the major drivers behind the development of smart contracts. I think that for those situations where 'dumb' contracts suffice they will continue to be used and the courts will continue to have their power. But precisely for those situations where the courts do not have such power smart contracts are a potential solution.
> The authority of the state ultimately rests on its exclusive right to resort to violence to enforce its will. No smart contract can change that.
The world is larger than just your own country.
Not too much larger, considering that every major company and country has large amounts of assets and other financial interests that are subject to US jurisdiction. The government of Argentina recently learned that the hard way when American courts forced them to honor their sovereign debt, or have their US-based assets seized to pay them. The same applies if you want to do business in India, China, or Europe. Submit to their judgments or see your assets and interests in their jurisdiction confiscated or destroyed. Another recent example of this is French courts applying the "right to be forgotten" extraterritorially.
>No, a judge will never order anybody to enter into a different smart contract just like they don't order people into regular contracts today.
They certainly do, in effect. A court judgment very often creates new obligations between the parties. And if entering a new smart contract is the only way to right some legal wrong, then they can order that too. An American court, at least, can order just about anything it needs to in order to enforce its judgments.
or laws will have to be adapted to grant values to them. But then it isn't much different from today's contracts.
Correct, if you don't need a smart contract using one won't give you any advantages.
> Imho that doesn't cover a lot.
We're going to have to disagree on that.
> or laws will have to be adapted to grant values to them.
Absent a global government I don't see how that could be done.
> But then it isn't much different from today's contracts.
Well, it is, but not for most normal transactions.
if smart contracts can really be made to work they will be an enabler much like the laser, we didn't really have an application for those either when they were first invented.
But people are already getting creative with them and the DAO is a nice example of what could be done if smart contracts can be reliably built and executed.
I don't think this will happen in the near future because writing a regular contract is hard enough, a smart contract has to be perfect for it to be of value because any bugs will be beyond the regular safe-guards ability to be fixed, you will most likely simply lose your money or your goods without recourse.
> Absent a global government I don't see how that could be done.
What's so hard about the judge forcing you to form a new smart contract?
I have zero difficulty imagining a situation where a judge brings me in and says "Now unlock your laptop and sign this Ethereum contract that undoes the previous one".
But if i understand your point, you see smart contracts just as some kind of tool that could be used in place of regular ones, whenever all the corner cases can be determined in advance and coded against, right ?
In which case we could have state decide which type of smart contract are legal under their juridiction and which aren't. If that's what you mean, that could be interesting indeed. I don't see how that would be applicable in practice : everything can be hacked or tricked, or fall apart, and human always are needed at some point in any autonomous system i know of.
I think the crux of your argument with Marco is that he is viewing the "outcome" in a larger scope than you are. You seem to be focusing on the "outcome" as only the output of the smart contract, while the is viewing the "outcome" as the real-world consequences of the entire situation, as embedded in our political and legal systems.
>there is no way around a smart contract environment that actually works.
What about the present system where people develop trusting relationships in business and elsewhere and deal with the occasional anomalies and breaches of trust as they arise, but in the big picture they're not really a deal breaker because they are relatively rare and we humans are wired for socially harmonious behaviour and mutually beneficial actions. Is that a way around it? It seems to have been working decently well thus far in terms of facilitating extensive commercial networks around the world.
No, that's an alternative, and smart contracts are attempting to become a way around that.
What if trust is a feature not a bug? Why is it something we need to engineer around?
But not everybody can be trusted.
> Why is it something we need to engineer around?
We don't, but that won't stop it from happening and it is usually better to enter those situations informed rather than arguing from what world it would be nicer to live in.
When the automobile entered mass production the world changed. You could have of course argued that this made the world a worse place to live in (which it did in many respects) but the reality was that once invented people apparently wanted automobiles and that demand ended up being satisfied. If enough people want smart contracts they will be a fact of life, knowing their limitations, how to deal with them and whether or not you should enter into one is important knowledge. No amount of sticking your head in the sand will reverse the course of history, smart contracts will happen, or they won't and if they do it will pay off to know about them. Right now they're on the edge of being useful, in a few more years we will know for sure whether or not they were a fad or a harbinger of a novelty whose impact will be hard to predict.
I don't like them but I do believe they will happen and I also believe that they will alter our societies in material ways.
For instance, if two people who have no business to reside in 168 Park Avenue make up a contract in 'the real world' that the other can go and occupy 168 Park Avenue then they will find - probably not to their surprise - that their agreement will not work, regardless of which medium it is conveyed on.
Smart contracts are a tool for those situations where you believe present day law is going to leave you stranded or in a situation that is legally ambiguous. I do not believe their strength lies in areas that are already properly governed by existing law.
Now you could argue that that is all of society as we know it right now, but in international commerce there are quite a few legally gray areas that are now patched over with mechanisms such as escrow and various other instruments. But those are only 'worth it' when the transaction amounts are larger than a certain minimum.
So, in short, you are absolutely right, if you use a smart contract in a situation where a regular contract would suffice it will not change anything. All the parties to the contract are known, the whole thing has immediately verifiable effects in the real world and 'might makes right'.
But in situations where the participants would like to remain anonymous, in situations where both parties would for reasons known to them rather avoid dealing with lawyers, the law and associated mechanisms smart contracts could become an enabling device.
I am not a lawyer and not your lawyer.
It's very hard to outlaw progress, it will simply route around you, there are many historical examples of this.
And while it's hard to outlaw progress, it's also very hard to identify progress before it happens, and even then you can never be sure whether people won't go back to the previous system.
No one has bothered to sue over a smart contract yet. I concur with pkilgore in "I frankly can't wait until this shit gets litigated."
If that's not the point of smart contracts then what is a smart contract? How is it different from that thing which we call just "contract"?
So either the smart contracts are just contracts, or they are product of naive hacker thinking.
So for now nobody appears to be willing to stand by 'the code is the law'.
To the extent that that's true, the idea is simply wrong.
I would argue that it is quite possible to see smart contracts as having potential practical value without taking that ideological position on their role, however.
Let's assume offer, acceptance, capacity, legality for a transaction.
So question to me is, when do we have a contract (do we have a contract?) and what IS the contract. For this usually (not always) look to the so called "meeting of the minds."
If we define the meeting of the minds as the EXACT actual code, it's hard to argue that using a bug in the code is a breach. Simplistic example: I write a lease that says if I sell the house me or the buyer can terminate the lease on 30 days notice. You do not do any diligence on that lease. When I sell the house and the buyer terminates, you're out of luck.
If we define the meeting of minds as "you are promising to do thing X for me, and you propose to do it with a smart contract", then if there is a bug in the contract, that might be a breach on behalf of the person offering to do thing X. Simplistic example: Your website says if I send ETH to address "0xExample" you offer a service that will send it back in 6 months. If 0xExample is hacked and money wasn't returned, well, you could argue that there was a breach of a contract to return your money.
No idea how a Court might come out, and being the law, it depends on shades of grey, other factors, skill of lawyers, etc.
I frankly can't wait until this shit gets litigated.
And that's been true right from the beginning with Bitcoin: scams, schemes, heists, data loss - the headlines scream blood all the time. We've never had that kind of "mean time to disaster" in technology before. The status quo was that something would fail, but the failure would never quite get back to the individual or company that produced it. They would spin it away, and no careers would be harmed. But the likes of Solidity produces a meat-grinder, a blind destroyer of any who dare enter calling themselves rockstar.
I think it's kind of awesome and beautiful, in that sense. It will induce a maturation throughout the economy to adapt to this new pressure. But like adolescence, it can be an ugly work in progress, and I don't expect Ethereum itself to be a survivor at this rate.
Things is, with Apple and Google there is a rather low ratio of spectacular failures to output of products that are in many cases, rather effing amazing. Whereas with the cryptocurrencies unfortunately, the spectacular failures be they in the form of scams, schemes, or heists, more or less are the story.
It's not like these recurrent tales of avarice, greed, or just plain seediness are crowding out the print space for the tales of all the amazing things cryptocurrencies are bringing about, there's room to tell that story to, but where is it.
At this point it's getting harder and harder to locate where there is that glint of hidden potential in cryptos in the face of all the malice and fuckups.
It will never happen, but that's actually a great idea.
Clearly if TWO hackers both spend $90k and only one extracts the value, the other one has lost their entire $90k - unless there's a way to be sure you are the one who will win that, your expected return on the $90k is only $50k if there are two parties trying to hack the contract.
The interesting bit is yes - the immediate loss. But a loss of unmarked cash is similarly instant.
On the other hand, recently another country changed its note design, and made the older design no longer valid. Whatever physical cash you had in hand instantly lost its value, while whatever value you had in bank accounts was automatically converted.
As you can see, sometimes cash is safer, sometimes bank accounts are safer.
True, there isn't a global list of where every bank note is.
I've already lost a tiny amount of BTC just by testing a bit with short keys. Can you imagine what the world would be like if every time you left your wallet for 10 seconds, it vanished?
testing a bit with short keys.
He's put some bitcoin into wallets with keys/passwords that don't meet very high security standards.
I've already lost a tiny amount of BTC
He's then lost that bitcoin because there are programs running running around the clock to programatically empty any wallets with passwords that don't meet very high standards of security.
Thus,
Can you imagine what the world would be like if every time you left your wallet for 10 seconds, it vanished?
But this is the "trustless" world you signed up for right?
Nobody complains about the shortage of address space provided by 256 bits. This guy was experimenting, and being lazy during his experiments, so at the very least he should have known what to expect after the first loss.
If you live under the assumption that you're perpetually under attack unless you rigorously protect yourself, it's not really the example of trust we're promising to non-technically adept folks.
And it's a pleasant world where every time you do that, you get robbed.
> Nobody complains about the shortage of address space provided by 256 bits. This guy was experimenting, and being lazy during his experiments, so at the very least he should have known what to expect after the first loss.
This is totally beside the point.
There's a social cost to constantly having to watch what you do. If you're robbed any time you're on the street, you'll have to spend time learning self defence and you'll have to buy appropriate tools such as locks. You'll also have to teach your friends about this, and you'll need friends. And your attitude to strangers will change.
The scenario you gave should be fairly similar to any application outside of Ethereum that deals with money ie. a banking app, except for the fact that, like you mentioned, you can't prosecute someone.
Also, here's a possibly crazy idea: could one create bug bounties for algorithms (or even arbitrary software) on the Ethereum blockchain by writing the algorithm into a contract such that if you somehow break it you receive the bounty?
An example of this would be the massive implicit bounty currently placed on the crypto algorithms (SHA256, ECDSA/Secp256k1, etc) underpinning cryptocurrencies (of course, if those were broken the value of the cryptocurrency would plummet instantly)
There are already useful tools for symbolic execution, and I have a hunch that this kind of verification will be important along with model checking.
What I would like to see is a verified high-level smart contract language layered on top of the Ethereum stack, allowing non-logicians to put together contracts that mean what they think they mean. See [3].
[1]: https://github.com/pirapira/eth-isabelle
[2]: https://github.com/pirapira/ethereum-formal-verification-ove...
Cryptocurrencies are serving as bug bounties for their crypto primitives, but that only benefits other users of those primitives.
The Ethereum developers create Solidity with the goal to make it "super easy" for developers to create dapps. Security wasn't the #1 priority. And now the ecosystem will pay for that design decision. Whether the decision still ends up being a net positive in the long term, it remains to be seen.
However, keep in mind that Ethereum as a platform is still in its very early days, with not even 0.01% of the population using it. If $30 million can be stolen just like that, what happens when 10% of the population uses it and there are trillions of dollars invested in it? (assuming it will be the "next internet" or whatever)
Doesn't seem to quite work like that in real life.
I mean some of these things have bugs still, but generally when you have something of fixed scope then there are less bugs over time. Especially if you're restricting your scope to something simple
And 40 years ago they were actually able to convince people that this new thing was worth the risk and that's why we're having this conversation today.
Early adopters are simply early, they will most likely lose their shirt but some of them will end up making you wish that you too were an early adopter.
It's a bit like angel investing.
"[...] it always recurses on the first sub-partition, and iterates on the second sub-partition; but instead, it should always recurse on the smaller sub-partition, and iterate on the larger sub-partition [...] our attack constructs an input array of N elements that causes qsort() to recurse N/4 times." https://www.qualys.com/2017/06/19/stack-clash/stack-clash.tx...
That's from last month.
I'm guessing that smart contracts tend to be relatively short and simple? I mean I would never bet on an entire web/mobile app being bug free because the surface to attack is enormous but e.g. a sorting algorithm or something small in scope can be formally verified to be bug free as long as your specification is accurate.
I think a good analogy here is to compare to American settlers. You're going to have a few waves: the explorers who move into totally uncharted territory and take on significant risk by using smart contracts. These are kinda crazy people who love the innovation, and I'd argue this is the majority of people in the space right now.
Eventually there will be the settlers, who start finding early uses for this technology that can significantly lower costs. Basically collecting on low-hanging fruit. J.P. Morgan, many finance companies, some savvy governments will step in to capitalize on easy wins.
Then there will be the long tail of normal uses. By the time the average company invests in smart contracts, there will be very well-understood battle-tested templates and toolchains for creating smart contracts, as well as consulting firms that are specialized in writing them for you with provable security guarantees.
Right now it's early. Your average company should not use smart contracts, that's a no-brainer. But someday the economics are going to make it a no-brainer for certain things, like incorporation, or issuing shares, or doing payroll, or complying with import/export regulations, or doing corporate taxes, or whatever it is that ends up more efficient through blockchains.
You think a lack of technology is what's keeping these giants back from innovating? There's a reason many banks still have mainframes powering large portions of their internals. Lack of new tech is not holding them back.
There are many reasons. Institutional inertia for one, a lack of sufficiently knowledgeable people another. Banks are not innovating because you can't get around them anyway. And personally I don't mind, I'd much rather have my $ parked with an entity that moves slowly and predictably than with some 'move fast and break stuff' outfit that gives me a heartattack 3 times per year by showing me a $0 balance and no support department to call.
For example, stock option agreements are usually pretty straightforward... until a termination date has to be decided on. How does the termination get put into the contract?
Though I suppose smart contracts could exist as an automation mechansim , but there's a "wrapper contract" that provides "real deal" legal protection against abuse?
Coincidentally, that's (part of) the role our court system plays in contract disputes; but there are other existing systems e.g. arbitration.
Some things that are at stake on the lawyers side are their competence (can they actually make sure the contract is "secure" ?), their reputation (track record of competence established over time) and some insurance mechanism (if things go wrong can you get something back from their insurance).
All of the above seem to be missing in the case of "smart-contracts".
...Which was founded by the very person who developed the smart contract language Solidity. Which goes to show how difficult it is to write 100% bug-free smart contracts.
This is precisely because it was deemed impractical to write contracts that could be 'computationally' interpreted line by line. Seems like the etherium is slowly rediscovering this fact the hard way.
1) most contracts worth implementing in Ethereum are fairly complex
2) even given great developers, bugs are inevitable in complex code
3) the budget of the contract-makers' security team MUST be smaller than that of the hackers
You quickly see that if the chance of a bug is nonzero, "smart contracts" don't make economic sense. If you have a $100k contract, and you spend $5k on security (which would absolutely destroy most companies' margins by the way) you'll be facing hackers that are EACH willing to spend up to $90k or so. Let's say all the experts in this example world are $200/hr. You spent 25 expert-hours on security. But you're being hacked by people who spent 450 expert-hours on hacking you.
With that in mind, would YOU want to use a smart contract? Spend 5% of the contract value instantly on security, and risk losing 105%? This isn't a normal loss by the way, where you can prosecute someone or sue somebody. No, this is the instant, digital theft of the entire value of the contract, to an anonymous digital address where it will be quickly blended in with hundreds of millions of dollars of similar thefts a month.