5 ms·
Augur REP Token Critical Vulnerability Disclosure
- motet_a 9y agoBut why do Ethereum people maintain a custom programming language? This could easily add a huge amount of complexity (and security issues) with very few benefits. Moreover, maintaining a large and critical project without automated tests seems impossible to me.
- Rmilb 9y agoThey needed a language to compile to the Ethereum Virtual Machine (EVM). Stack exchange with more info. https://ethereum.stackexchange.com/questions/3112/what-is-the-merit-of-creating-new-smart-contract-languages-like-solidity-instead https://ethereum.stackexchange.com/questions/3112/what-is-th...
- wslh 9y agoThe problem here is that you are handling a ton of money and it is irresponsible to manage a project in this way. More thinking that many people, including developers, in the community are millionaires, so it is not a resource problem. When you send a rocket to the space you also test it against ETs.
- Rmilb 9y agoValid points. The project is not production ready yet. One of the main devs has a good explaination of his tweet stating: >"Ethereum isn't safe or scalable. It is immature experimental tech. Don't rely on it for mission critical apps unless absolutely necessary!" https://medium.com/@Vlad_Zamfir/about-my-tweet-from-yesterday-dcc61915b572 https://medium.com/@Vlad_Zamfir/about-my-tweet-from-yesterda...
- kbody 9y agoHe's probably the only one, it's a surprise they haven't ostracised him already. (Btw your response is close to step #3 on https://news.ycombinator.com/item?id=14838148 https://news.ycombinator.com/item?id=14838148 :P ) At least Vitalik & Gavin Woods in combination with Joe Lubin (Consensys & Ethereum Foundation) keep pushing it without any talks about reality, but just sell unproven future ideas while they train people and manufacture ICOs (less so after the SEC) and sell Ethereum to dumb enterprise that drunk the cool-aid.
- atomical 9y agoThere are no rollbacks so it will never be production ready for 99% of businesses.
- eyezick 9y agoVlad isn't a dev fyi, and he pretty much does say his tweet was hyperbolic intentionally to temper the crazy bullishness of the time
- MichaelGG 9y agoSo Ethereum has 2 poorly thought out and implemented languages?
- dmix 9y ago> Second, the Serpent language is untyped. It allows any operation to be performed on any data. Every value is a 256-bit sequence which can be used as an address, a contract, an integer, or an array. I normally dislike people who criticize startups for not being perfect from day one and understand it takes iterations and a wide audience to get things right. But this isn't a normal startup and security was an obvious big piece of the puzzle from day one. Their reputation and developer adoption will depend on it. Why doesn't the primary Ethereum language have types? This is basic stuff if you're trying to reduce bugs from the outset. From my understanding they wanted the language to be as accessible as JS... but even JS developers are all converging on types via TypeScript, Flow, and Babel plugins like babel-typecheck. It's basically an accepted requirement of "5th-gen languages"... let alone for language-based interfaces to security focused systems. Immutability seems like another obvious choice here for catching errors at compile time and forcing careful design considerations. Also the language should have a (typed) Quickcheck implementation that hammers each function with random data to check for breakage... and it should be documented as standard practice. https://begriffs.com/posts/2017-01-14-design-use-quickcheck.html https://begriffs.com/posts/2017-01-14-design-use-quickcheck.... The fact Tevos is built with OCaml and is focused on code safety/verification gives me hope there is some sanity in the cryptocurrency marketplace. But it still blows my mind that this stuff wasn't given proper foresight. A security obsessed language designer should have been the first person hired to implement the VM and reference language on top of it. And competent security researchers, like the team in this blog post, should have been brought in to do QA at each major release. It's not like Ethereum has a shortage of funding for critical infrastructure.
- MichaelGG 9y agoThis isn't the JS-inspired language, that's Solidity, with it's own hilarious comedy of errors. Serpent is a Python-like language. What makes Python or JS suitable for any sort of inspiration for smart contract programming is up for debate. Probably the idea that making it popular trumps making it right.
- dmix 9y agoDynamic types make sense for newbie-friendly web languages like Ruby and stuff like bash/zsh or support languages like Lua is to game development... but I really don't see the downside to adding types for anything outside of that. It's really not that much of a learning curve nor does it result in a significant amount of boilerplate. People may believe static types are a drag from using Java or C++ but if you look at modern languages like Golang or typed Erlang/Elixir or Kotlin...it really isn't that bad at all. You don't even need to go hardcore with types the way Haskell does to get most of the safety gains. It actually provides lots of useful abstractions to make your code more efficent, it makes it easier to read (especially for others using your code), and makes using standard libraries easier to use by just reading the type specs. So I'm really curious what the motivations were here.
- deleted 9y ago[deleted]
- SirensOfTitan 9y agoI think Ethereum has a lot of potential and really love the platform. With that, the language options that work on top of the EVM are quite awful. There needs to be considerable investment in either building better options or building EVM compilers for well designed languages. Something functional would be great: OCaml, F#, Haskell with immutability and formally verified abstractions for dealing with the blockchain.
- daraosn 9y agoThat's what Tezos is doing, using OCaml for their smart contracts.
- dbrgn 9y agoActually they use OCaml for the blockchain implementation and their own functional and provable language "Michelson" for smart contracts. Fun fact: Michelson was the guy that disproved aether :)
- emsimot 9y agoYoichi's Bamboo is looking pretty good. https://medium.com/@pirapira/bamboo-compiler-started-producing-evm-bytecode-6a55e4633de9 https://medium.com/@pirapira/bamboo-compiler-started-produci...