Groups of actors across the world can make an agreement that is enforced by a smart contract. When an actor fails to live up their obligation they are refused payment. There is no way to take off with something that is not yours. There is no reliable or efficient way to cheat. You don't have to know the other actors you are making an agreement for something with.
Can you do this now without a smart contract? Of course. The usefulness is in that it's universally visible and lowers the barrier to entry and is far less complex.
> make an agreement that is enforced by a smart contract
Please give me an example of how an agreement can be enforced by a smart contract.
> When an actor fails to live up their obligation they are refused payment
It works the same way with colored pebbles.
> There is no way to take off with something that is not yours
Why not? I know this is an abstract question in this context which is why I asked for a practical example so we could share a thought experiment regarding how the use of a smart-contract would play out in real life.
> There is no reliable or efficient way to cheat
Cheat what? Once again this is totally abstract. Seems to me like cheating is just as easy if not easier because the role of law-enforcement is questionable at best and nonexistent at worst. To cheat, all I have to do is agree to the terms of the contract then violate it after I have secured the funds or property. Then what?
> You don't have to know the other actors you are making an agreement for something with
I'll grant that this is possible and useful in special cases (e.g. online drug markets), but that is a benefit of blockchain money and smart contracts don't offer any benefit
> far less complex
This is certainly not the case, as victims of the DAO and orphaned eth blockchain can attest to.
Okay, I'll give you a practical example. Here is an excerpt from the book Blockchain Revolution.
"bAIRBNB VERSUS AIRBNB
bAirbnb is a distributed application (DApp), a set of smart contracts that stores data on a home-listings blockchain. The bAirbnb app has an elegant interface: owners can upload information and pictures of their property. The platform maintains reputation scores of both providers and renters to improve everyone’s business decisions.
When you want to rent, the bAirbnb software scans and filters the blockchain for all the listings that meet your criteria (e.g., ten miles from the Eiffel Tower, two bedrooms, four-plus star ratings only). Your user experience is identical to that in Airbnb, except that you communicate peer to peer on the network, through encrypted and cryptographically signed messages not stored in Airbnb’s database. You and the room owner are the only two people who can read these messages. You can swap phone numbers, an exchange that Airbnb blocks to preserve future revenues. On bAirbnb you and the owner could communicate off-chain and complete the transaction entirely off-chain, but you are better off completing the transaction on-chain for a few reasons.
Reputation: Because the network records the transaction on the blockchain, a positive review from each user improves your respective reputations. The risk of a negative review motivates each party to remain honest. Remember, people with good reputations can use the same persona across multiple DApps and benefit from continuity as a good person.
Identity Verification: Because we are not dealing with a centralized system that checks ID on our behalf, each party needs to confirm the other party’s identity. The blockchain calls up a contract from a “VerifyID” application, one of many contracts that bAirbnb, SUber (blockchain Uber), and other DApps use to verify real-world identity.
Privacy Protection: VerifyID doesn’t track and store all transactions in a database. It simply returns a TRUE or FALSE when it receives a request for verification of a public key (persona). Different kinds of DApps can call VerifyID, but VerifyID never knows details of transactions. This separation of identity from activity greatly improves your privacy. Risk Reduction: Home owners currently store customer identities and financial data on their own servers, which can be hacked and leaked, exposing owners to litigation and large liabilities. On the blockchain, you needn’t trust a vendor with your data; there is no central database to hack and leak. There are only individual peer-to-peer pseudonymous transactions.
Insurance: Today Airbnb offers $1 million insurance for owners and compensates them for theft and damage. On bAirbnb, owners can get the bAirbnb insurance DApp. Renters with good reputations like you have lower insurance rates and needn’t subsidize renters who lack caution, scrutiny of prospects, or poor treatment of property. When you submit a booking request, bAirbnb sends your public key (persona) to the insurance contract for a quote. The insurance DApp contacts a list of trusted providers; fake insurers need not apply. Insurers perform their own calculations in real time through autonomous agent software based on the inputs to the contract—such as the market value of the owner’s house, how much the owner wants insured, owner reputation, your reputation as a renter, and rental price. bAirbnb takes the best bid and adds it to the nightly fee the owner wants to charge. The blockchain processes this calculation in the background; owners and renters have a comparable user experience to that of Airbnb but a superior and more equitable value exchange.
Payment Settlement: Of course, on the blockchain, you transfer funds to the owner in seconds, not days as with Airbnb. Owners can manage security deposits more easily with smart contracts. Some parties use escrow accounts to release payments partially (nightly, weekly, hourly, etc.) or in full as the parties agree. In disputes involving smart contracts, parties can call for arbitration.
Property Access Using Smart Locks (IoT device): A smart lock connected to the blockchain knows when you have paid. When you arrive, your near-field communication-enabled smart phone can sign a message with your public key as proof of payment, and the smart lock will open for you. Owners need not drop keys off to you or visit the property unless they want to say hello or address some emergency.
You and the owner have now saved most of the 15 percent Airbnb fee. Settlements are assured and instant. There are no foreign exchange fees for international contracts. You need not worry about stolen identity. Local governments in oppressive regimes cannot subpoena bAirbnb for all its rental history data. This is the real sharing-of-value economy; both customers and service providers are the winners."
Essentially, it can turn any centralized middleman system, which are most companies in the world today, into decentralized ones, where the processing happens not on central servers but in the decentralized network.
Seriously? All that work just to save possibly 15%? And in reality the savings would be much less because someone has to pay to develop and support the app. You're going to have to come up with more realistic and compelling examples.
It also doesn't address compliance with laws on payments and money transfers. Regardless of what the anarchists might want, those rules aren't going away and will be enforced vigorously by many governments.
Why can't a blockchain technology in a matter of years offer the same type of convenience and stability with a much lower price due to the decentralized nature of it all?
Right now they can't you're right. But there is no reason to believe with certainty they won't in the future. Of course they might not but I'd bet the other way by virtue of the plain as day benefit they offer motivating iterative improvement over the many coming years.
Does this scale though? It all sounds nice, but with the massive blockchain overhead is this system going to be able to serve the community at all? I heard that each node has to execute the block chain in Ethereum. Sounds like a lot of duplicated computing just to do something that would be much more efficient if centralized.
Right now probably not. However, Etherum has sharding, as well as other features to help scale, as a feature for the future. It isn't like we are stuck with the current implementations.
I am not an Ethereum developer or expert on the codebase or technical capabilities. In fact I've read very little on how this sharding would be implemented. I have a lot of experience in distributed systems so I understand the benefits but I don't know how this would work for blockchain technologies.
However, it is a known issue and there are proposals and I'm sure more to come. Sharding is a leading proposal and it has been described. However, I cannot personally comment on the viability.
But I'm an optimist and believe it will be solved. Maybe not with Ethereum but eventually with something.
The one fallacy to be aware of is a lot of people it appears think that blockchain technologies are static. As if they can't evolve and change and iterate. They can and if history is any indicator they will so long as there is interest and outlandish people see potential.
> Risk Reduction: Home owners currently store customer identities and financial data on their own servers
I wasn't aware this was how Airbnb operated. I was under the impression whoever made the listing on Airbnb never saw details of the renters payment details.
> In disputes involving smart contracts, parties can call for arbitration.
Call who? A lawyer? Their heavies? Who's paying to operate all this infrastructure?
> Local governments in oppressive regimes cannot subpoena bAirbnb for all its rental history data.
So governments will outlaw it and prosecute anyone caught operating a bAirbnb, which should be simple to do because all this listings are publicly visibly. Which should also be true of real Airbnb now, but charging people who renting their houses / units / whatever illegally seems to be fairly low on the police's list of priorities. Oppressive regimes, however, tend to go after people for what should be trivial matters, which is what makes them oppressive.
Governments can also order ISPs to block certain types of network traffic, thereby denying access to these services.
> There is no way to take off with something that is not yours. There is no reliable or efficient way to cheat.
I'm a bit rusty on my crypto-currency knowledge, but I seem to remember that there is the possibility of a 51% attack, wherein if an evil actor managed to control 51% or more of the network, they could basically wreak all sorts of havoc on the network, from denial of service, to double-spending of coins to rewriting of (recent) transaction history.
As for feasibility, some mining groups have already briefly obtained 51% control of the network "by accident", but if you want to go the black hat route though, DDOS a large portion of the network, spin up a few dormant bots and presto, you have your 51%.
So it isn't impossible to cheat, and certainly not impractical.
This is a major problem. Has this problem been addressed at all?
While not a failsafe method, lots of newer cryptocurrencies use proof-of-work that is "ASIC-proof." This means that CPU and GPU mining will remain profitable, theoretically preventing the degree of centralization seen in Bitcoin.
While this doesn't remove all risks (e.g. an incredibly large mining pool), it is certainly harder to disable thousands of independent miners than it is to do so to a single centralized operation.
IIRC, It wasn't "hacked". Rather the contract was written incorrectly from the outset, and the "hacker" merely used the withdraw method to ... withdraw.
In the real world, you appoint a judge who decides based on cultural convention (civil law, common law, sharia law, idk) what the contract was supposed to mean.
Sometimes it does come down to punctuation, but all of the time it comes down to what was meant with the contract.
Letting the system only mean what it says is not great for users, either. You get an overhead of always having to check and double check everything you do.
Can you do this now without a smart contract? Of course. The usefulness is in that it's universally visible and lowers the barrier to entry and is far less complex.