2 ms·
This might be a very naive question, but would it not be the case that many contracts would be essentially similar in nature? So while weird loopholes would exi
by dilap 5y ago
This might be a very naive question, but would it not be the case that many contracts would be essentially similar in nature? So while weird loopholes would exist at first, over time there could be a large library of tried-and-true contracts which could be applied to the situation at hand?
- j_walter 5y agoYou are correct and there is already a bunch of off the shelf contracts that are basically plug and play...however it takes little knowledge to actually publish said contract and a small typo can either make the contact never accessible or easily exploitable.
- ljm 5y agoThat is arguably tending towards centralisation, as there will then be a market of brokers that know which contracts to suggest, and then there will be other places that will only accept contracts from a known broker. There will, of course, be the more expensive brokers that can exploit loopholes, but even as a stretch this isn't vastly different to a bank account in the Caymans. Of course, you don't have to participate - you can hold the 'cash' equivalent or concoct your own scheme, but you're not as protected from loss as you otherwise might be (provided there's an insurance package of sorts, in the absence of regulation).
- leppr 5y agoSmart contract code is open-source[1], so the centralization you're talking about shouldn't be confused with the (de)centralization of power people talk about when they talk about the decentralized web or decentralized finance. Circling around a small set of trusted open-source technologies doesn't cause centralization of power, as we can see with GNU/Linux, HTML/JS, ... [1]: On many platforms smart contracts are stored in the form of high-level interpreted languages. On Ethereum, the blockchain stores EVM code (assembly), but contracts that haven't "verified" their source, typically by uploading the high-level code to etherscan.org, are seldom used (with some notable exceptions).
- ljm 5y agoI contend that it doesn't cause centralisation of power, but centralisation and power are inevitable should the project hit the mainstream, proper: - GNU/Linux - GNU/Linux is open source but centralised. The userspace is the part that is distributed, via operating systems, and the source control is distributed, via git. But it's all for one Linux kernel. You can also build your own kernel, but that doesn't really make linux 'decentralized'. Similarly, Linux for a lot of people means 'Ubuntu'. - HTML/JS - this is centralised under WhatWG/W3C, etc. Arguably, these days, it's actually centralised under Chrome, because what Chrome does eventually becomes the spec. You can freely build your own implementations of HTML and JS/Ecmascript but most likely, you are using the centralised implementation via webkit, blink, or gecko. So, the fact that smart contract is open-source doesn't really mean anything. It'll grow big, then as a matter of convenience it will start to consolidate. git, for example, is decentralised, but git forges (github, gitlab, etc.) provide centralisation as a convenience.
- jonny_eh 5y agoImagine a scenario where a popular contract is discovered to have a serious flaw years down the line, and they can't be patched.
- tschwimmer 5y agoThe key difference (which is categorical) is that if there is a latent bug in one of these contracts that goes unnoticed and then gets exploited later, you're still out the money. Intent doesn't matter. There is essentially a 0% chance of such an outcome with a regular contract (at least in US contract law). Intent is a cornerstone of contracts in the real world. Just because someone came up with a clever "exploit" doesn't entitle them to rip you off. This is a very good thing.
- TimJRobinson 5y agoOn Ethereum there's an organization called OpenZepplin that does exactly that. They have common code for making contracts that are ownable, upgradeable, follow NFT / ERC20 standards etc. Makes it much easier to write safe solidity code.