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”
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”