6 ms·
professional etherem devs haven't even gotten to the point where they can write correct contracts themselves. but the concept is pretty simple. a "smart contra
by xj9 9y ago
professional etherem devs haven't even gotten to the point where they can write correct contracts themselves. but the concept is pretty simple.
a "smart contract" is a script that runs on a blockchain to execute terms and manage funds.
the problem is that the tools that you use to make these are basically garbage. you don't write fin-tech in what amounts to javascript y'know?
- sillysaurus3 9y agoPeople were saying the same thing about non-C++ back in the day. "Web apps aren't written in scripting languages y'know?"
- saurik 9y agoI view this more as "web apps should not be written in C++ due to security issues that we have long come to understand" than "web apps should be written in C++ due to performance issues we are guessing at"... like, do you believe that in a few years people will decide "no, strongly typed and proof assisted languages were overkill for contracts: it was actually better to code them in a language that has weirdly fluid rules and type semantics for reasons they did not quite grok in 2017"?
- sillysaurus3 9y agoThis criticism doesn't apply to Ethereum. Solidity is compiled to a VM. You can write other languages that meet your criteria that still use Ethereum.
- saurik 9y agoI know, and I am very excited for those languages to exist and be usable, and thereby have been tracking a couple such efforts; until then, this is about as useful as pointing out that website development is theoretically possible using a computer. The person did not state that it would always be the case that smart contracts are hard: only that right now, on Ethereum, they are hard, and the comment even used "gotten to the point where" (indicating this is a temporary state) and specifically blamed the "tools", which is all absolutely true and is born out not just in theory but in practice; it doesn't even disagree with your own statements that other different tools would be better. Why are you so defensive about this commentary?
- sillysaurus3 9y agoI'm like a goalie. Defense is my game. Actually, I didn't mean to come across as defensive. I just like to nerd out about tech. Once you accept the inherent craziness of the proposal, and go "Ok, this is crazy. What now?" you end up concluding that the future is going to be very interesting. It'd be worth investing some amount (that you can afford to lose!) in ETH on the off-chance that it doesn't suffer a major disaster. There are quite a few interesting applications for this technology, and historically that's been a pretty solid bet.
- Emilia34444 9y agomÿ möthërs nëïġhböür ïs wörkïnġ pärt tïmë änd ävëräġïnġ $9000 ä mönth. ï'm ä sïnġlë müm änd jüst ġöt mÿ fïrst päÿċhëċk för $6546! ï stïll ċän't bëlïëvë ït. ï trïëd ït öüt ċäüsë ï ġöt rëällÿ dëspërätë änd nöw ï ċöüldn't bë häppïër. hërës whät ï dö, AMAZING JOBS ¦¦¦¦F¦O¦L¦L¦O¦W¦¦M¦E¦¦¦¦¦http://ow.ly/P0wk30aVXfN http://ow.ly/P0wk30aVXfN ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
- JasoonS 9y agoThe main thing to keep in mind at this point in time is that these contracts have very little tolerance for inefficiency, since inefficiency in this case costs money. Even solidity is very inefficient. Sure it would be great to write contracts in Haskell or Coq but can you insure O(1) or at most O(n) run time with little to no constant overhead? For example LLL (Low-Level Lisp-Like Language) produces 70% more efficient code than solidity [1] and thus it is the chosen language for the ENS (Ethereum Name Service) registry smart contract (who wouldn't want to pay 70 less for interacting with a contract?). But no doubt, better languages will come with time :) [1] https://media.consensys.net/an-introduction-to-lll-for-ethereum-smart-contract-development-e26e38ea6c23 https://media.consensys.net/an-introduction-to-lll-for-ether...
- flunhat 9y agoDifference being that a poorly written web app amounts to some leaked passwords and email addresses. A poorly written smart contract that handles real money, on the other hand...
- sillysaurus3 9y agoSo? It's their money to lose. Yes, it's crazy, but it's also happening.
- flunhat 9y agoAgreed, and the massive hacks and losses will continue as long as smart contracts are written in Solidity.
- guscost 9y agoThe EVM is Turing-complete, so this will be a risk with any language that compiles into a smart contract. Solidity doesn't appeal to me because its goal seems to be on-boarding JavaScript programmers. But new languages that compile to EVM can be easier to use "safely" and you will see several of these in the next few years. I'm really excited that a project to embed Turing-complete behavior in a blockchain has actually taken off. It's completely insane from one perspective, but completely awesome from another.
- adrianratnapala 9y agoThe EVM might be Turing complete but you can still have languages that compile down to only some tractable sub-set of the possible EVM programs. The interesting question is whether a language can be design which allows the important domain-relevant requirements to written down in an understandable way and also proved rigorously. So far neither lawyers nor programmers have done a very good job of this in their respective field. Watching people trying to do it in both fields simultaneously sounds like popcorn time to me.
- 9y ago
- feedjoelpie 9y agoSolidity's relationship to JavaScript is negligible and way overplayed in its marketing. Similarities are entirely superficial.
- jjn2009 9y agoI agree, the syntax being similar doesn't really mean much for similarity when it comes to actually solving problems.
- cslarson 9y agoThis 100%. I think this becomes evident almost as soon as one tries to do any smart contract coding. It's an entirely different paradigm with considerations that dwarf anything about language syntax and style. In fact I think these considerations are very non-trivial to grasp.
- Siecje 9y agoWhat would be an example of a "smart contract"?
- mianosm 9y agoBasic smart contract found here: https://blockgeeks.com/guides/smart-contracts/ https://blockgeeks.com/guides/smart-contracts/
- AlwaysBCoding 9y agoA kickstarter clone, that could be implemented in a few lines of code on top of Ethereum.. If there is > 1,000 Ether in this contract address before timestamp x then send the Ether to the project lead, else refund all the users.
- thomk 9y agoNice! Thank you. You know there are many different types of contracts, why didn't they just call it 'smart transactions'?
- Brianne88 9y agobuddy recently bought a fantastic yellow Toyota Camry just by part-time work from a home pc _________http://bit.do/dnRs5 http://bit.do/dnRs5
- fragsworth 9y agoBecause it's conceptually more like a contract. Someone writes the contract code, and then by uploading and depositing money into the contract it's as if they signed it. After that point it works without anyone needing to trust the signer. And they can include conditions about arbitrary information that is reported on the blockchain (weather data, stock prices, etc...) And multiple people can sign these things. They really are like contracts.
- JasoonS 9y agoTheir main use case is maintaining critical/sensitive state information that you want to protect via rules of interaction between multiple parties (that don't trust each other) without the need for a trusted intermediary. The contract is tamper proof and only via correctly and cryptographically signing messages/transactions intended for the smart contract will the state of the smart contract change, but only according to the rules defined in the smart contract. The (non-fintec) example I often hear about often is a voting system. (See: https://github.com/stonecoldpat/anonymousvoting https://github.com/stonecoldpat/anonymousvoting , here zk-snarks algorithm is introduced to ensure privacy) Essentially anything that requires co-ordination between parties that don't trust each other over a piece of data (a balance of money, the tally of a ballot) is a perfect use case for smart contracts. But since there is cost to running it on these secure networks it is important that they remain O(1) or at most O(n) time complexity, which for these kinds of applications is often totally enough. (eg. if (the message is signed by the 'owner') { send the funds } else { throw })
- kovrik 9y agoNormally, if you deal with money, then you try to be extremely careful, right? You have to care much about security, verify that your app is not vulnerable, make an audit etc. And I think that even beginners know that you can't trust users' input - you have to sanitize it. And under no circumstances you want to execute it! But here it is the opposite, isn't it? You basically give users ability to run any code within your application (blockchain). And you give them very insecure, confusing and badly designed language. To me it is an epitome of insecurity. It is like giving a shotgun to a child!
- Jabanga 9y agoUsers cannot run 'any code'. They can run contract code, which can only interact with the underlying application through a protocol. The multisig hack was not a case of the underlying application being compromised. The contract itself was compromised due to a vulnerability in its code. The only parties affected were those that trusted the contract. The rest of the contracts operating on the application were unaffected.
- xj9 9y agothe problem is that the tools don't facilitate writing correct contracts i don't know how to do this myself, mind your. to be broadly applicable the tech has to be accessible to people who would be writing contracts. a fucking professional using the state of the art for this shit has very little tooling support for checking that the contract actually operates in a particular fashion. something like an SQL query planner that helps you write contracts
- Jabanga 9y agoThat's a different subject. I was only addressing the notion that Ethereum the application is at risk from the code that users run on it. I completely agree that the tools and processes for writing and testing smart contracts need to improve.
- sandralisa88 9y ago
- max_ 9y agoA law can only can be as bug free as software? 100% bug free software is impossible! As long as they are written by humans? Their will always be bugs. Matter who is writting them.
- xj9 9y agoi'd like formally verified laws if i could
- zdkl 9y agoI dislike algorithms that I understand, and I distrust algorithms that I don't when it comes to stuff like social security or insurance. Smart contracts by composition would be really nice. Like a compile to EVM lisp!
- jpamata 9y ago> ethereum dev. how would you even get started for this kind of job? all of the ads popping up seem to be looking for somebody who already has significant experience
- zdkl 9y agoRTFM & Hack?
- deleted 9y ago[deleted]
- mpeg 9y agoI can write secure smart contracts in Solidity or straight in EVM assembly, it's really not that hard as long as you code it defensively.