Bitcoin Forum

Bitcoin => Bitcoin Discussion => Topic started by: johnyj on April 18, 2015, 02:01:17 AM



Title: How do you enforce a smart contract
Post by: johnyj on April 18, 2015, 02:01:17 AM
The idea of smart contract is that you can let a bitcoin address represent anything. Let's say that one bitcoin at a certain address represent the earth, then who owns that bitcoin will own the planet

Does that make any sense?

Ownership means the total control of the object. Even the blockchain is a universal transparent ledger that can not be compromised, a bitcoin owner can only have total control over his bitcoin, nothing else. Not USD, not Stocks, not a house. The total control of those things require the control of bank account/equity account/the land

Suppose that a bank claims that one bitcoin in a special address represent one million dollars (Of course the bank owns that address).  Then he can use that bitcoin to purchase one million dollars worth of products, because anyone who received those coins can redeem them at that bank, at an exchange rate of one million dollars per coin. This is in fact the process of money creation backed by assets

However, that will destroy the fungibility of bitcoin. You will have to check each bitcoin address to decide the value of those addresses depends on their backing

And the worst thing is, the bank could just refuse to redeem the dollar when they have spent the coins at that address. So you must have some mechanism to physically lock the address and the assets that backing them. This lock can only be enforced by an auditor with a written contract from the bank and a reserve of one million dollars controlled by the auditor

So I think it is difficult to use blockchain to guarantee the ownership of anything outside, better focus on bitcoin itself, it is already one of the most liquid form of assets



Title: Re: How do you enforce a smart contract
Post by: Lorenzo on April 18, 2015, 02:27:54 AM
Colored coins allow you to represent things on the Bitcoin blockchain. If you own a colored coin that represents a cow, then you own that cow. It is also possible for someone to own something that they don't have control over. e.g. the cow is stolen or it ran away. For real world examples such as these, you would need to find a way to enforce control over the assets you own. e.g. a fence.

In your example, the bank could choose to refuse to redeem the coins for dollars but most good banks with a good reputation aren't going to do this. When you get such a coin, you don't really own dollars. You own dollar IOUs. Whether or not the bank will redeem these IOUs for actual dollars is solely up to the bank's decision.

Smart contracts are pieces of code stored on the blockchain which both parties must agree to follow and other nodes will observe and enforce. Usually they work best when the data is on-chain and verifiable. Hence it doesn't really work for the cow example and it doesn't really work for your dollar IOUs either.


Title: Re: How do you enforce a smart contract
Post by: BADecker on April 18, 2015, 04:08:56 PM
When you buy something, you want to check out if the owner is really the owner. Maybe he is a swindler, and is attempting to sell you stolen property.

Wherever the property is registered, the registration could have listed in its paperwork, the corresponding smart property contract that would have to be activated before the sale is possible.

It would be something like a trust, where the trust owns the property. The thing you do when transferring trust property is to simply change the trustees. Many trusts are written so that the trustee can be changed. The new trustee is the one that now controls the property.

If the property is owned by a smart property contract, the new administrator of the contract is the new controller, and essentially the new owner.

:)


Title: Re: How do you enforce a smart contract
Post by: qxzn on April 19, 2015, 12:07:58 AM
OP, you are mixing up two issues with smart contracts, both of which are real issues:

#1:
The idea of smart contract is that you can let a bitcoin address represent anything. Let's say that one bitcoin at a certain address represent the earth, then who owns that bitcoin will own the planet

That's actually more specific than the general idea of smart contracts. You are talking about colored coins here, and yes, they do create fungibility issues. That's one of the reasons I don't think colored coins is the best way to implement smart contracts. There are, however, other ways.

#2:
Quote
And the worst thing is, the bank could just refuse to redeem the dollar when they have spent the coins at that address. So you must have some mechanism to physically lock the address and the assets that backing them. This lock can only be enforced by an auditor with a written contract from the bank and a reserve of one million dollars controlled by the auditor

So I think it is difficult to use blockchain to guarantee the ownership of anything outside, better focus on bitcoin itself, it is already one of the most liquid form of assets

Yes, smart contracts dealing with non-bitcoin things have to somehow be attached to the real world. This attachment point is tricky. If you're thinking about for example representing ownership of a house, or a car, say, you're going to have to get governments to recognize the token as the true notion of ownership. Otherwise a buyer buys a house token for, say, 1000 bitcoins, the seller hands over the token but never signs the deed over; as far as the local gov't is concerned the seller still owns the house and the buyer just got shafted for 1000 btc.

There are lots of kinds of smart contracts though; some are more tractable. Like for example futures, forward contracts or other derivatives that are purely settled in BTC. Or next step up, something involving one or more trusted or semi-trusted "oracles" which interface to the real world by giving truth values about events.


Title: Re: How do you enforce a smart contract
Post by: johnyj on April 19, 2015, 03:29:12 AM
Another problem is the loss of the private key. In real world when you lose the key of the house, you can ask the police/housing company to change the lock, since there are multiple places record the ownership of the house. But on blockchain, the ownership is gone when the private key is gone



Title: Re: How do you enforce a smart contract
Post by: Elwar on April 19, 2015, 08:32:41 AM
A paper contract on its own is of use.

I have a piece of paper that says I own the earth.

The only way that becomes true is if an entity that owns a lot of guns recognizes it as valid.


Title: Re: How do you enforce a smart contract
Post by: SpanishSoldier on April 19, 2015, 08:36:03 AM
Here is how: https://github.com/ethereum/wiki/wiki/White-Paper


Title: Re: How do you enforce a smart contract
Post by: yayayo on April 19, 2015, 01:27:56 PM
...

In your example, the bank could choose to refuse to redeem the coins for dollars but most good banks with a good reputation aren't going to do this. When you get such a coin, you don't really own dollars. You own dollar IOUs. Whether or not the bank will redeem these IOUs for actual dollars is solely up to the bank's decision.

...

I think the essence is contained in this statement. An IOU is not the same as holding the "real thing". So for most real world things represented as IOUs in the form of smart contracts you will have a counterparty risk.

To enforce an IOU that represents a "real thing" you obviously can't rely on a smart contract alone - you have to do something in the "real world" in case the issuer of the IOU does not adhere to the conditions of the contract.

So it doesn't matter how "smart" the contract is - in the end it all comes down to trusting the issuer. There's no difference to old school "dumb" contracts.

ya.ya.yo!


Title: Re: How do you enforce a smart contract
Post by: redsn0w on April 19, 2015, 01:57:47 PM
I can only suggest you "Oraclize", this is the site (beta) : https://www.oraclize.it/ . It is based on orisi (http://orisi.org/) and it is not still fully functional, but you can test some 'events' and in the future real autonomous contract (without the possibility of lie of one of the parts).


Title: Re: How do you enforce a smart contract
Post by: 687_2 on April 19, 2015, 02:14:36 PM
Yes, smart contracts dealing with non-bitcoin things have to somehow be attached to the real world. This attachment point is tricky. If you're thinking about for example representing ownership of a house, or a car, say, you're going to have to get governments to recognize the token as the true notion of ownership. Otherwise a buyer buys a house token for, say, 1000 bitcoins, the seller hands over the token but never signs the deed over; as far as the local gov't is concerned the seller still owns the house and the buyer just got shafted for 1000 btc.

There are lots of kinds of smart contracts though; some are more tractable. Like for example futures, forward contracts or other derivatives that are purely settled in BTC. Or next step up, something involving one or more trusted or semi-trusted "oracles" which interface to the real world by giving truth values about events.

None of these issues are really much of a problem, at least in the US. A valid contract needs only two things:

1) Meeting of the minds
2) Consideration

Even verbal agreements are enforceable in US courts (I don't know about elsewhere) so long as they have these two things, so contracts on the blockchain or even off chain are no problem to enforce at all, as long as both parties have assets in the same or cooperating jurisdictions. It will be a pain in the ass for the buyer if the seller defaults, but the buyer will eventually win in court.


Title: Re: How do you enforce a smart contract
Post by: 687_2 on April 19, 2015, 02:47:24 PM
Suppose that a bank claims that one bitcoin in a special address represent one million dollars (Of course the bank owns that address).

A bank (or anyone) can claim anything - whether or not people buy into it is up to them. In this example the bank is just a scammer - it did a classic bait and switch. Financial schemes and crimes are the easiest to perpetrate I think, due to information asymmetry in financial markets. This doesn't have anything to do with contracts or enforcement.

So I think it is difficult to use blockchain to guarantee the ownership of anything outside, better focus on bitcoin itself, it is already one of the most liquid form of assets

Possession/control/usage is 9/10 ownership.

DRM does well at controlling physical objects. You could quite easily install a chip that disables any electronic equipment inside cars, computers, phones, etc. that is activated (or de-activated) by sending precise amounts of XBT to pre-arranged addresses.

You can do the same thing with electromagnetic door locks, etc. The technology is here, it's just nobody has deployed it yet. It's a great business opportunity.


Title: Re: How do you enforce a smart contract
Post by: BitcoinPenny on April 19, 2015, 04:02:46 PM
So it doesn't matter how "smart" the contract is - in the end it all comes down to trusting the issuer. There's no difference to old school "dumb" contracts.

Interesting point.

Regards,
Christopher


Title: Re: How do you enforce a smart contract
Post by: BillyBobZorton on April 19, 2015, 04:08:07 PM
When you buy something, you want to check out if the owner is really the owner. Maybe he is a swindler, and is attempting to sell you stolen property.

Wherever the property is registered, the registration could have listed in its paperwork, the corresponding smart property contract that would have to be activated before the sale is possible.

It would be something like a trust, where the trust owns the property. The thing you do when transferring trust property is to simply change the trustees. Many trusts are written so that the trustee can be changed. The new trustee is the one that now controls the property.

If the property is owned by a smart property contract, the new administrator of the contract is the new controller, and essentially the new owner.

:)

True, but let's say someone enters your house bought via a smart contract... how do you send the police on him, if the smart contract has no recognize by the official authorities?
This is the main problem i see with this.


Title: Re: How do you enforce a smart contract
Post by: qxzn on April 20, 2015, 05:58:22 AM
Yes, smart contracts dealing with non-bitcoin things have to somehow be attached to the real world. This attachment point is tricky. If you're thinking about for example representing ownership of a house, or a car, say, you're going to have to get governments to recognize the token as the true notion of ownership. Otherwise a buyer buys a house token for, say, 1000 bitcoins, the seller hands over the token but never signs the deed over; as far as the local gov't is concerned the seller still owns the house and the buyer just got shafted for 1000 btc.

There are lots of kinds of smart contracts though; some are more tractable. Like for example futures, forward contracts or other derivatives that are purely settled in BTC. Or next step up, something involving one or more trusted or semi-trusted "oracles" which interface to the real world by giving truth values about events.

None of these issues are really much of a problem, at least in the US. A valid contract needs only two things:

1) Meeting of the minds
2) Consideration

Even verbal agreements are enforceable in US courts (I don't know about elsewhere) so long as they have these two things, so contracts on the blockchain or even off chain are no problem to enforce at all, as long as both parties have assets in the same or cooperating jurisdictions. It will be a pain in the ass for the buyer if the seller defaults, but the buyer will eventually win in court.

Does it complicate things if the buyer buys the token, then sells it to someone else and so on with many trades happening before the latest owner tries to redeem the token for the house?

What if the token has been stolen somewhere along the way?


Title: Re: How do you enforce a smart contract
Post by: Bizmark13 on April 20, 2015, 06:14:10 AM
I can only suggest you "Oraclize", this is the site (beta) : https://www.oraclize.it/ . It is based on orisi (http://orisi.org/) and it is not still fully functional, but you can test some 'events' and in the future real autonomous contract (without the possibility of lie of one of the parts).

One big problem with oracles is that by their very nature, they must either be completely trusted or semi-trusted. One of the advantages of smart contracts and the blockchain concept in general is decentralization, immunity to outside attacks, and the lack of a requirement to trust third parties. By using oracles to monitor, verify, and sign claims, you're adding a certain amount of trust into the mix. Sometimes, it might not be a huge issue: e.g. an oracle that monitors the price of a certain asset on a particular exchange and uses publicly verifiable code that both parties in the contract have agreed to beforehand. But not all cases where contracts are required are so clear-cut. Many contracts in the real world rely on data that is sketchy, subjective, or open to interpretation and/or manipulation.

How will smart contracts deal with and enforce such cases?


Title: Re: How do you enforce a smart contract
Post by: Agorista on April 20, 2015, 07:16:49 AM
In terms of who owns the digital IOU or proof of ownership...

Digital mediators could be a good option for complex contracts. They could have an 'overriding key' for complex situations beyond the original scope of the contract, to execute a contract with varying results or annul it. Part of the contract would include the consent of both parties to have this digital mediator (escrow with legal jurisdiction)

It would be like subscribing to a legal jurisdiction on a contract by contract basis. I think this would make for more efficient and fair courts.


Title: Re: How do you enforce a smart contract
Post by: ensurance982 on April 20, 2015, 11:22:46 AM
I think this mainly boils down to the fact that you're using the blockchain or Bitcoins to prove ownership. The actual execution has to be done by regular means: Courts, police, lawyers, etc.


Title: Re: How do you enforce a smart contract
Post by: redsn0w on April 20, 2015, 11:27:58 AM
I think this mainly boils down to the fact that you're using the blockchain or Bitcoins to prove ownership. The actual execution has to be done by regular means: Courts, police, lawyers, etc.

The problem here is that 'any governments' don't recognize the bitcoin blockchain, so a contract will be valid only if it is between private parts; but if one of those part wants to 'enforce' the contract I do not think the government will accept it.


Title: Re: How do you enforce a smart contract
Post by: ensurance982 on April 20, 2015, 11:34:03 AM
I think this mainly boils down to the fact that you're using the blockchain or Bitcoins to prove ownership. The actual execution has to be done by regular means: Courts, police, lawyers, etc.

The problem here is that 'any governments' don't recognize the bitcoin blockchain, so a contract will be valid only if it is between private parts; but if one of those part wants to 'enforce' the contract I do not think the government will accept it.

Well in many countries you can actually form contracts as you like - at least within the legal boundaries and to certain extents. If courts accept the blockchain as enough of a proof, then the contract may have decent chances of being recognized, I believe...


Title: Re: How do you enforce a smart contract
Post by: herzmeister on April 20, 2015, 11:37:40 AM
if you miss that rate of the payment for your car, its engine will stop working in the middle of the highway...


Title: Re: How do you enforce a smart contract
Post by: 687_2 on April 20, 2015, 11:53:10 AM
Yes, smart contracts dealing with non-bitcoin things have to somehow be attached to the real world. This attachment point is tricky. If you're thinking about for example representing ownership of a house, or a car, say, you're going to have to get governments to recognize the token as the true notion of ownership. Otherwise a buyer buys a house token for, say, 1000 bitcoins, the seller hands over the token but never signs the deed over; as far as the local gov't is concerned the seller still owns the house and the buyer just got shafted for 1000 btc.

There are lots of kinds of smart contracts though; some are more tractable. Like for example futures, forward contracts or other derivatives that are purely settled in BTC. Or next step up, something involving one or more trusted or semi-trusted "oracles" which interface to the real world by giving truth values about events.

None of these issues are really much of a problem, at least in the US. A valid contract needs only two things:

1) Meeting of the minds
2) Consideration

Even verbal agreements are enforceable in US courts (I don't know about elsewhere) so long as they have these two things, so contracts on the blockchain or even off chain are no problem to enforce at all, as long as both parties have assets in the same or cooperating jurisdictions. It will be a pain in the ass for the buyer if the seller defaults, but the buyer will eventually win in court.

Does it complicate things if the buyer buys the token, then sells it to someone else and so on with many trades happening before the latest owner tries to redeem the token for the house?

What if the token has been stolen somewhere along the way?

It might slow down law enforcement or the courts a day or two, because they'll want to make sure they have the right people an property. If you buy a stolen vehicle (for example), you're out the cash and the vehicle when the FBI or State police come to collect it, even if you had no idea the vehicle was stolen.


Title: Re: How do you enforce a smart contract
Post by: redsn0w on April 20, 2015, 11:56:35 AM
I think this mainly boils down to the fact that you're using the blockchain or Bitcoins to prove ownership. The actual execution has to be done by regular means: Courts, police, lawyers, etc.

The problem here is that 'any governments' don't recognize the bitcoin blockchain, so a contract will be valid only if it is between private parts; but if one of those part wants to 'enforce' the contract I do not think the government will accept it.

Well in many countries you can actually form contracts as you like - at least within the legal boundaries and to certain extents. If courts accept the blockchain as enough of a proof, then the contract may have decent chances of being recognized, I believe...

Here in italy (for example) a person has opened a company and the contribution of assets was all in bitcoin, as you can see here:

- http://www.newsbtc.com/2015/04/12/oraclize-company-bitcoin-incorporation/

So I think in some country the 'bitcoin blockchain' is recognized at 100%


Title: Re: How do you enforce a smart contract
Post by: ensurance982 on April 20, 2015, 12:12:27 PM
I think this mainly boils down to the fact that you're using the blockchain or Bitcoins to prove ownership. The actual execution has to be done by regular means: Courts, police, lawyers, etc.

The problem here is that 'any governments' don't recognize the bitcoin blockchain, so a contract will be valid only if it is between private parts; but if one of those part wants to 'enforce' the contract I do not think the government will accept it.

Well in many countries you can actually form contracts as you like - at least within the legal boundaries and to certain extents. If courts accept the blockchain as enough of a proof, then the contract may have decent chances of being recognized, I believe...

Here in italy (for example) a person has opened a company and the contribution of assets was all in bitcoin, as you can see here:

- http://www.newsbtc.com/2015/04/12/oraclize-company-bitcoin-incorporation/

So I think in some country the 'bitcoin blockchain' is recognized at 100%

Interesting. It still boils down to how courts rule in case there's as lawsuit or some sort of serious disagreement between two parties engaged in such a contract, I believe!


Title: Re: How do you enforce a smart contract
Post by: herzmeister on April 20, 2015, 02:00:17 PM
also, google might buy "the blockchain" after all and provide proper contractual enforcement:

http://www.sbs.com.au/news/article/2015/04/17/google-has-patented-ability-control-robot-army

http://google.com/killer-robots.txt  :)


Title: Re: How do you enforce a smart contract
Post by: AtheistAKASaneBrain on April 20, 2015, 02:31:25 PM
When you buy something, you want to check out if the owner is really the owner. Maybe he is a swindler, and is attempting to sell you stolen property.

Wherever the property is registered, the registration could have listed in its paperwork, the corresponding smart property contract that would have to be activated before the sale is possible.

It would be something like a trust, where the trust owns the property. The thing you do when transferring trust property is to simply change the trustees. Many trusts are written so that the trustee can be changed. The new trustee is the one that now controls the property.

If the property is owned by a smart property contract, the new administrator of the contract is the new controller, and essentially the new owner.

:)

True, but let's say someone enters your house bought via a smart contract... how do you send the police on him, if the smart contract has no recognize by the official authorities?
This is the main problem i see with this.

This is on point. Say you buy a car, or a house or any property. Just because it says so in the blockchain, if someone tries to steal it or damage it... are the authorities forced to assist you? unfortunately i dont think so unless it gets aknowledged by then that the blockchain smart contracts have the same value as a traditional signed contract.


Title: Re: How do you enforce a smart contract
Post by: TwinWinNerD on April 20, 2015, 02:40:55 PM
It's smart, it will figure out a way on its own. #skynet


Title: Re: How do you enforce a smart contract
Post by: BADecker on April 20, 2015, 02:46:20 PM
Get a bunch of your buddies together with their guns, and go enforce it.

:)