5 ms·
Some of the use cases can be fairly simple (thus easier to see the value). 1. Me and You start a company together. We would like to split things 50/50. We setu
by _red 9y ago
Some of the use cases can be fairly simple (thus easier to see the value).
1. Me and You start a company together. We would like to split things 50/50. We setup an address such that when values are paid to it, half goes to you, half goes to me. Effectively we've created an "LLC with an Operating Agreement", but we aren't relying on political legal system / country to enforce. Enforcement is automatic and done by the network.
2. You want to setup a Trust for your kids. You create a contract that holds 10 Bitcoin / Etherum / etc. On the date Jan 1, 2035 the value of that address will be forwarded to your child's address. Again, we created a "Non-Revokable Trust" that is network enforced. No need for probate, courts, trustees, etc.
- scandox 9y agoThose are both really interesting thanks. I assume in case 2 Solidity language has some built-in mechanisms for ensuring that the current datetime is agreed across the whole network?
- DennisP 9y agoYes, every block includes a timestamp so everyone is forced to agree, and nodes won't forward a block if the time is too inaccurate. Miners have some leeway to manipulate time a bit, so you wouldn't want to use the block's timestamp as a random seed for a lottery, but just using it as a coarse deadline works fine.
- _red 9y agoAs DennisP said, yes there are mechanisms to ensure date is agreed upon. Your question of "consensus" brings up other interesting points. I think an increasingly valuable service in a new smart-contract world will be to have an "Outcomes As A Service" arbiter. This would be a trusted 3rd party that publishes real-world outcomes in a method that can be accessed reliably via smart contracts. Who will win the football game between Dallas and New Orleans on Nov 22, 2019? Who is winner of 2020 Presidential Election? etc....Essentially a service that you can tell them you want to track some real-world event and publish outcome for use in smart-contracts. Obviously this 3rd party would need to be transparent, have an open appeal process, be neutral and earning income not tied to outcome, etc. What happens to gaming laws (and cities like Las Vegas), in a world where sports betting can be done with no middle-man needed?
- AlphaWeaver 9y agoServices like Oracleize already allow you to do something similar to this.
- edf13 9y agoThis is the main problem I see with smart contracts (Even with oracles?)... How do the nodes running the code all get the same response from an external data source? Even if they use a service such as oraclize if the contract calls https://api/query?param1 https://api/query?param1 and it returns lets say the weather: Node1 gets: 15.2c Node2 gets: 15.3c We've already failed on consensus haven't we?
- DennisP 9y agoThe nodes don't all separately query the source. Instead, someone queries the source and sends a transaction to the network, with the data and the source's signature. The transaction gets incorporated into a block, updates the state, and now everybody has the same data.
- arethuza 9y agoOut of interest, are there any examples of real "live" structures in place using those mechanisms?
- charlesdm 9y agoJust a simple example, sort of: https://hodlethereum.com/ https://hodlethereum.com/ It will send back your ETH after a certain date. You can check the smart contract in the bottom left corner.
- stupidcar 9y agoInteresting. So in the case of 1, I guess I could have a function in the contract called something like sellUserXStakeTo(userId Y), that would let me transfer my 50% ownership to another user Y. And that method would be secured to only accept being called by me, or by another contract written by me. Then if a user Y did come along and wanted to buy my stake, we'd agree a price P, then I would write a second contract that said: If user Y pays user X amount P, then call sellUserXStakeTo(Y). Then, once I'd published it, user Y would verify it, then pay the money, secure in the knowledge that I could not alter or back out of the deal.
- SeckinJohn 9y ago1- 50% of what? Revenue into the company or dividens/salary etc out of the company? if it's the latter, then, how do we make sure that you don't spend $500.000 for trash bins for the office? Do we have to make sure every decision goes through the network? (i.e. who is the authority to decide what is reasonable and what is blatant fraud if things go sour AND is it even possible to make sure that nothing possibly can go sour[I don't think so.]. So, fraud is possible, and in the case of fraud, -say; the network retroactively decides that something really constitutes a fraud, hence is a crime- who is the enforcer of the punishment[which is most likely to be physical: like prison sentence]?) 2- How do you make sure that your child doesn't sell it in 2025 and buys a Lambo? (which is a problem you don't have with regular Trusts AFAIK)
- Brotkrumen 9y agoParent gives you an answer that is scoped to "divide incoming by half and send the halves to given addresses" and you criticizing that the answer doesn't cover all scopes you can come up with? Him: "This baker makes bread rolls". you: "What about dark bread? What about non-bread items? What's his broker?"
- jackpeterfletch 9y ago_Red gave two examples of Ethereum applications. SeckimJohn quite quickly showed why neither work. The are some niche digital uses, but not the ones people often tout. Ethereum contracts basically break down at the point they need to interact with the real world.
- scandox 9y agoWell I'm entirely new to this and pretty blockchain sceptical but I don't think SeckimJohn showed why neither work, did he? As I understand it each concern requires some kind of function/method which addresses it within the smart contract, right? So the real problem is that once you publish the contract you better make sure you haven't forgotten something important...
- darepublic 9y agoHow about using smart contracts for prop betting
- Joeboy 9y ago> Me and You start a company together. We would like to split things 50/50. We setup an address such that when values are paid to it, half goes to you, half goes to me. What is the real world use case for that, though? That seems like a contract that makes sense as long as you and I trust each other, which rather negates the purpose of a contract. Some immediate issues that strike me: * There's nothing to stop either of us offering the services of the company outside of that contract; * There's no way to ensure that one of us isn't freeloading; * If my wallet gets stolen you'll be paying half the earnings of the company to the hacker until the contract is somehow voided; * Which raises the question of how can this contract get voided? Do either of us get to void it whenever we feel like it? What if I've lost my key? Do we potentially just have to live with the money being paid into hacked / unusable accounts forever? So all you've really saved is the bother of dividing a number by two and doing bank transfers, in return for which you've gained significant operational burdens.