ok, for some context here, I think a lot of people are getting hung up on the words "contract" or "smart contract".
If we want to talk about it intelligently it helps to taboo the term "contract" or else people get terribly terribly confused like in some of the existing comments.
I'm going to say "independent program" instead of "smart contract" for clarity
Ethereum allows for the existence of independent programs which can hold and transfer money. The rules have to be hardcoded into them when you create them. They cannot be changed once launched.
For example if you wanted to create a prize fund for people who've factored large numbers you could create an independent program which accepts a set of numbers, decides if they're the prime factors of another number and if it is then it transfers a prize fund to the first person to do so.
Years later, someone factors the number, connects and gets their payment.
You might be a thousand years dead but the independent program is still in the system and has control of the funds.
Depending on how you write it you may even not be able to retrieve the funds yourself without solving the problem.
It doesn't matter if a court orders you to pay out because they have a law declaring pi to be exactly three and someone has come forward with a kooky proof for their "factored" number. If it doesn't match the rules of the program there's nothing you or the court can do.
If you've not given yourself control at the start it will sit there until the end of time until someone actually factors the number.
Or perhaps you set up the program badly and it will accept numbers which aren't the factors as correct and gives a payment to someone who's not factored anything.
it is not a legal contract which says "I will give money to the person who solves this problem", it's a piece of code which, when followed, may give the money in it's control to someone who connects to it depending on the rules programmed into it.
Some funds have been set up controlled by independent programs and their "about" pages tend to say something along the lines of "you're agreeing to the code being followed, anything we write here is just our best try at explaining what the code does, here is the full source code, if you're happy with this then you're free to give control of some funds to this code or a copy of this code"
Subscribe to RSS Feed
= f037147d6e6c911a85753b9abdedda8d)
Security is one problem with smart contracts, but lack of applications is another one. AI may make the security problem worse, but it's needed for many potential applications of smart contracts. For example, suppose I want to pay someone to build a website for me that is standards conforming, informative, and aesthetically pleasing. Without an AI that can make human-like judgements, to create a smart contract where "the code is the contract", I'd have to mathematically define each of those adjectives, which would be impossibly difficult or many orders of magnitude more costly than just building the website.
The solution to this would be to have each of the contracting parties provide evidence to the AI, which could include digitally signed (authenticated) data from third parties (security camera operators, shipping companies, etc.), and have the AI make judgments about them the same way a human judge would.
If you're going to rely on signed data from third parties then you're still trusting 3rd parties.
In a dozen or so lines of code you could create a system that collects signed and weighted opinions from a collection of individuals or organisations making encoding arbitration simple. (does the delivery company say they delivered it etc)
You're just kicking the trust can down the road.
On the other hand it's unlikely we'll see any reasonably smart AI's with anything less than millions of lines of code (or code and data) and flaws anywhere in them destroy the security of the whole system.
This is not a great use for AI until we 1: actually have notable AI and 2: have proven the code that makes it up which is a far larger undertaking.