4 ms·
why does one need to execute the contact on thousands of nodes, when a verification proof (e.g. pinocchio) would be sufficient?
by inter_netuser 5y ago
why does one need to execute the contact on thousands of nodes, when a verification proof (e.g. pinocchio) would be sufficient?
- disruptalot 5y agoExecuting the contract takes very little compute. It's the transaction and block ordering which is the most important. For that, you need to distribute and add stake (PoW) to the blocks.
- grey-area 5y agoWhy does a contract between two counterparties need to use a network with thousands of nodes at all? What enforcement benefit does the network provide? I'd contend it's entirely superfluous to a smart contract system, which could just offer building blocks from a trusted third party instead for constructing contracts, and that trusted third party could also notary the transaction and provide arbitration. All of these complex problems are already solved (trust, arbitration etc) and involve recourse to real legal systems whether you use some distributed contract or a traditional one. The area in business contracts which is a mess and could do with attention is standard clauses for different industries, which are well understood by everyone, diffs between contracts etc etc.
- inter_netuser 5y agoThat's because they are not contracts per se, smart or otherwise. They are autonomous agents that act as your counterparty.
- grey-area 5y agoWow, that sounds fancy and sounds almost like an AI counterparty when you put it that way. Did you mean counterparty (the other person in the transaction) or trusted third party (the third leg of most transactions, like lawyers who negotiate then witness a deal). My understanding was smart contracts attempt to replace the trusted third party with a trusted system. But are they autonomous and do they really have any agency outside the very limited confines of a scripted response to known situations (like if x happens send x ETH)? Are they able to send contract disputes to arbitration or courts in case of disagreement? If not that doesn't strike me as particularly useful. I do really like the concept of standard contracts though which everyone agrees to just use - could save a lot of lawyer fees on contracts for M&A for example which really should have been standard components plugged together with very little customisation but instead take 6 months of bickering and use copy-pasted contracts inherited from 100 former deals at those lawyers with all sorts of archaic language. If I were in that space I'd be trying to attack that problem and partner with a law firm to take on either very small contracts like wills or very large contracts like M&A in a given vertical.
- inter_netuser 5y agoI meant as the other "person" in the transaction. I believe Japanese regulators adopted the term "person-to-machine" or "machine-to-machine" transactions in order to describe "smart contracts", as they are not contracts in the legal sense. The reason I called them "autonomous agents" because they don't really fulfill any part of a standard contract. No choice of jurisdiction, no severability clause etc. More of a judge&jury&executioner all in one. They are rather rigid and somewhat limited today, but I'd guess they are autonomous in the sense you can make them nearly unalterable once deployed. I suppose wih time we will be interacting with AI-agents at some point, there are some rather wild projects trying to do just that. It may not strike you as particularly useful, but some decentralized exchanges (uniswap, dydx) that now clear more trading volume than Coinbase, a 100 billion dollar company. This has to mean something. I have no idea if they could ever supercede legal contracts. Maybe in a 100 years.
- 123pie123 5y agoas a complete newbie to this, where does the code actually execute? what's the code writen in? whats stopping malicious code running?
- hobofan 5y ago> where does the code actually execute? what's the code writen in? On every Ethereum node that verifies it. It's usually written in Solidity and compiled to EVM (Ethereum Virtual Machine) bytecode (so it can also be written in other higher-level languages). > whats stopping malicious code running? It's sandboxed and since it's limited to the EVM, there isn't really any "malicious" code that could break out of the EVM AFAIK. Inside the EVM it's probably more of a philosophical question whether any code can actually be considered "malicious".
- 123pie123 5y agothanks - I'll do some research on this if the code is sandboxed, then what useful things can it do?
- 3r8Oltr0ziouVDM 5y agoIt can modify the state of the blockchain based on the inputs.
- baby 5y agoIt doesn’t but this is how Ethereum was designed: everybody re executes.