Hacker News new | past | comments | ask | show | jobs | submit login
What Is Ethereum? (whatthefuckisethereum.com)
837 points by songzme on July 8, 2017 | hide | past | web | favorite | 257 comments

There's one point in particular that took me a while to grasp: while you can write code that runs on the Ethereum network, every single node has to process that code.

So if, for example, you had a big 3d animation sequence that you wanted to have rendered, you would not just send that code off to the network to be processed. You would have to pay to have every single person on the network process that job for you, and it would be so big the network wouldn't even accept it. Rather, you would create a simple contract that says "if you render this animation for me and prove that you did it right, I'll pay you X amount of Ether". Someone would take the job and the Ethereum network would process your contract and handle the payment. You would end up paying that person to do work for you, and you'd pay the network (using something called gas) to process the contract.

You could use Ethereum to create all kinds of interesting contracts for financial purposes, voting systems, insurance, or whatever else. But it's not some giant compute cluster that will run some big program for you.

I might be somewhat biased on this, but I strongly prefer database metaphor over computing metaphor.

Every blockchain is essentially a shared database. E.g. Bitcoin is a database which keeps track of address balances (as a first approximation) and enforces particular authorization rules. It's a fixed-functionality blockchain.

On the other hand, Ethereum can serve as an arbitrary, user-defined database. Ethereum smart contracts are essentially like stored procedures in SQL databases -- they can be used to enforce arbitrary consistency rules.

And the reason why transactions are quite expensive is that you're paying to update everyone's database. You can modify things locally for free, but if you need everyone to see your information, you gotta pay for it.

And computation is there just for the sake of enforcing arbitrary constraints.

I just wanted to thank you because while I viewed it this way I've never seen it so eloquently in words. My way of putting it into words was still a bit chaotic, so thank you!

I also prefer the database metaphor. Bitcoin is a set of rules that lets everyone take part in (in fact this is required) the creation of a database of transactions that has happened. To make sure there are no mistakes, every single node runs the transactions to verify their validity.

Interesting. Can I ask for a description of the Etherium database from the perspective of someone shopping databases? Paradigms, features, transactions, distributed consensus, etc.

On a low level it consists of multiple key-value stores (one store per contract). Keys and values are 256-bit integers (or 32-byte byte strings).

You never work with it directly, instead, you deploy a contract, which is sort of a collection of stored procedures. On the low level contracts are executed as imperative bytecode with special opcodes for reading/writing data to KV store.

There are also high-level languages which compile to this bytecode. Particularly, Solidity lets you to develop contracts using object-oriented metaphor: contract is an object, its store is accessible via object's fields. Besides primitive types, it supports types like structs, arrays and associative arrays, which can be nested. Compiler takes care of mapping field access to raw key-value store operations, particularly, it relies on cryptographic hash functions for layout mapping instead of deterministic allocation.

Contracts can also call each other, there is an opcode for it. Calls are done synchronously, so it looks exactly like OOP.

Since this database exists in multi-user environment, access control is necessary. The system identifies users using cryptographic signatures and exposes this information to contracts via `msg.sender` field. Contracts can use it to implement custom authorization policies.

The database is transactional, of course: a user-submitted transaction is either executed in its entirety (incl. all nested calls) or fails with all side-effects reversed).

Transactions are executed serially, one at time. So high performance is not a feature of the system, it is more like "high security".

Reading data can be done via "stored procedures" (well, I think technically you can read raw data from key-value store, if you want to). Also there is a separate "event log" mechanisms: contracts can generate custom event logs, which can be later read externally.

Distributed consensus: Each node has a complete copy of the database, so adding more nodes doesn't increase scalability. Currently Ethereum uses proof-of-work consensus. That means that any (mining) node can propose a new block of transactions to be executed, and eventually they converge to a single chain. So it's stochastic.

There are also "private Ethereum" systems which let you to use different consensus mechanisms. Typically they have Byzantine Fault Tolerant consensus, likely inspired by PBFT. It's kinda like Paxos but with more digital signatures.

If you want to do more intense computation, https://truebit.io/ has a cool solution. It's exactly what you said, it allows you to pay someone to do the computation for you and publish the result to the contract. After the result was published, anyone can verify that it's correct by re-running the computation. If the published result is not correct, you can interactively prove this to the smart contract because the smart contract is able to simulate 1 step of the computation. If there are N steps in the computation, it is possible to prove to the contract that the original person who did the computation cheated with log(N) transactions. After the contract is convinced that the original person cheated, he would punished by destroying his deposit.

Read the whitepaper and watch the videos if you want to learn more.

I only looked at it briefly. Very cool idea: Is it practical for heavy compute jobs though? Suppose a rendering takes 10 hours. If I don't know where the bug/difference is and just binary-search it, then they have to run at least 5 hours of computation to verify (out of the 2^^48 instructions, I'll start by asking for the 2^47th step).

I guess that's solvable by requiring payment for verification runs and just splitting up your work into much smaller pieces.

Yes, I think splitting up the work is a good idea.

The authors already thought about how to incentivize verification runs. It's really cool. Check out this informative podcast with some of the team members: https://youtu.be/QY0OUTaIWIc

For heavy compute, it's the Golem Network (golem.network)

What's the benefit over throwing it at a cloud provider?

There's an active downside of random people being able to see your data, not to mention randomly sized boxes and shoddy network connections (which is a big deal for the microservices which they are touting as a use case, and also for big data. Data transfer is one of the slowest bits of data science). Running a web service on random devices where keys, sessions, whatever end up in memory on some box would be a security nightmare. The government doesn't need a back door if all they need to do is host some compute nodes.

Is it just that for some tasks that are very parallel and not sensitive it might end up cheaper?

Technically, these problems also exist with cloud providers, but we more or less trust them because of their reputation.

Perhaps a digitally signed NDA could be verified by a smart contract? Then, to prove the NDA was breached, a quick court case (standardized NDA) leads to a published ruling that the digital contract can check.

Combine the clear guidelines of a standard NDA with a proper court adjudicating the more complex disputes, and you have the foundation for a strong reputation system for Eth-cloud services. Is reputation already a thing in the Ethereum network?

I mean, they exist in much less of a form. It's trusting 1 entity vs literally everybody, including people intent on being bad actors. You also have to have less trust because you're operating in a more or less known environment.

The network bandwidth will be a real problem regardless. Latency too. Single digit millisecond scale database roundtrips are awesome. 50-100ms would be just terrible. If that's a fundamental limitation then applications can only get worse, not really better.

Overall, what fundamental problem are these solving? If they aren't solving a real pain point with a worthwhile cost, uptake is going to be nonexistent.

Wow this is awesome!

> There's one point in particular that took me a while to grasp: while you can write code that runs on the Ethereum network, every single node has to process that code.

Yep. Unfortunately the creators of Ethereum marketed it heavily as a "world computer" on promotional roadshows, claiming it would replace Facebook and whatnot.

Perhaps more interesting is that, in my view, Ethereum has it wrong: re-executing computation is a really foolish way to do what it can actually do-- which is conditionally allow changes only if a stated predicate holds.

Check out this presentation by my colleague:

Video: https://www.youtube.com/watch?v=TGE6jrVmt_I

Slides: https://cyber.stanford.edu/sites/default/files/russelloconno...

> contracts for financial purposes, voting systems, insurance, or whatever else.

Many of these applications are severely harmed by the lack of privacy in the recompute-everything model.

I'm curious to know what roadshows the Ethereum people were marketing in?

How would Ethereum “replace Facebook”?

Well, it can't in its present form, but there is a market (me, at least) for a distributed app framework that would be the basis for uncensored (and uncensorable) serverless p2p versions of all your favorite social media.

I've heard that idea mentioned a lot but it doesn't seem like anyone has a good strategy for dealing with abuse. This seems especially problematic with a blockchain which cannot be altered: what do you do when someone creates a fake profile, uploads revenge/child porn, nazi propaganda, etc.? In many parts of the world that has a legal requirement to be blocked which would seem to either require a way to rewrite history or the entire system being blocked in that jurisdiction.

> what do you do when someone creates a fake profile, uploads revenge/child porn, nazi propaganda, etc.?

Ignore it and move on. Block the user from your personal feed if you want.

> In many parts of the world that has a legal requirement to be blocked which would seem to either require a way to rewrite history or the entire system being blocked in that jurisdiction.

How has that worked out against BitTorrent?

> Ignore it and move on. Block the user from your personal feed if you want.

That doesn't address the questions:

1. How can you ignore something which is causing you or someone you care about harm? Will you operate a node which keeps that content available against the wishes of the target? (For that matter, how many people will use a network which prevents you from removing mistakes?)

2. You can't just ignore things with legal implications — e.g. if someone uploads legally restricted content, everyone participating in the network has to expect legal consequences even if they personally aren't troubled by it. If you're in Germany and someone else can get Nazi content from your system, do you really think “I didn't upload it and there's no way to block it” is going to lead to a court reaction other than an order to turn it off until the underlying technology is fixed?

3. Ignoring that many places do block BitTorrent, it's different in the key aspect that torrents are independent. Someone who hosts Linux ISOs doesn't have to worry about getting sued because a different user is distributing copyrighted movies. That doesn't seem to fit with a blockchain model and it seems like a major problem growing a social network beyond the immediate founders if everyone has to find a private cluster to join.

> How can you ignore something which is causing you or someone you care about harm?

If it is really causing you harm, you can always sue for libel. If it is just something you dont like, deal with it. The internet is not a "safe space".

> Will you operate a node which keeps that content available against the wishes of the target?

If it is anything like DHT, yes. I don't give a shit. Whoever has a problem can take it up with the originator of the offending content. If they can trace them and prove it is illegal in a court.

> For that matter, how many people will use a network which prevents you from removing mistakes?

Everyone. Do you use git? Do you correct mistakes using a new commit? Congrats, you now know how to correct a mistake on the internet.

> if someone uploads legally restricted content, everyone participating in the network has to expect legal consequences even if they personally aren't troubled by it

In such cases the law is wrong and must change.

> If you're in Germany and someone else can get Nazi content from your system, do you really think “I didn't upload it and there's no way to block it” is going to lead to a court reaction other than an order to turn it off until the underlying technology is fixed?

The way German law treats Nazi sentiments is highly anti-free-speech. Cannot continue for much longer (~50 years). The correct way is to allow free speech but prosecute criminal acts (free-speech is not a criminal act). IMO, irrational laws in countries that are against free-speech should not impact adoption of technology, just as bittorrent is still widely used even though US law is against it.

> Ignoring that many places do block BitTorrent

I am curious how that is done. Are you talking about China? I do not know any way to block the bittorent protocol itself apart from DPI.

> That doesn't seem to fit with a blockchain model and it seems like a major problem growing a social network beyond the immediate founders if everyone has to find a private cluster to join.

I agree. Maybe someone can come up with a solution. Maybe we can encrypt everything so that nodes can not possibly know what the content is. I don't know.

> I don't give a shit. Whoever has a problem can take it up with the originator of the offending content. If they can trace them and prove it is illegal in a court.

If you have a computer serving that to other people (i.e. a real durable P2P system), you're going to be pulled in as a collaborator. Even if you're willing to risk the police and are willing to go to jail rather than compromise an absolute free speech position, which I highly doubt, almost nobody else is and that's kind of the death-knell for a P2P network.

If you want to build things people will actually use, following the law is more important than naive techno-utopian fantasies about being able to force your desires on nation-states.

Count me in as well. For about a decade I've argued that 'we' need a decentralized, encrypted, peer-to-peer way of communication wherein each user physically and legally owns their data (only granting temporary/revocable read rights to other users) and controls said rights on an ad-hoc basis. Including making it public as long as you damn please.

Basically a digital metaphor that you own your 'space' (eg home) and grant other people a temporary right to come in and see/use an item or hear/participate in a conversation. Strong emphasis on the legal aspect since no gov or law enforcement should be able to peek inside without proper authorization (warrant, probable cause, etc).

Diaspora indeed was an interesting idea in theory (good first step I'd say) but the execution sadly was flawed (too cumbersome to sell it to anyone, even free as in beer).

As far as I'm concerned, no social solution satisfies these tenets yet, and so that's an open 'market' as we speak. Blockchain is conceptually a good basis for history/logging (I'd considered torrent to be a good candidate before that).

Monetization of user data could be achieved on an individual basis by granting rights to commercial entities (eg Xbox, Spotify, clothing brand...) to monitor specific activities (eg my gaming metrics, my listening metrics etc). You'd have per-user contracts (eg Spotify authorized by x million people to monitor their musical habits, paying each a few cents per week possibly deducted from their bill if subscribed to the actual premium service).

No middleman, or at least not necessary by design if you can in-house the whole monitoring/marketing (but agencies would likely appear, such as Google adword or Facebook ads operate currently). In this design, even Facebook or any social media would have to be granted rights to read your data, and could not hold/copy it beyond said authorization (in storage space, also in time).

The whole point being to transfer physical and legal ownership back to users, thus able to revoke all rights to anyone, and operate solely on a peer-to-peer basis (maybe I just want to talk to a few people and that's it).

Newsfeeds of sorts can also be envisioned on a per-user basis if said user runs some dedicated software which sorts and presents data this user has viewing rights to, hopefully in a much more customizable way than current Silicon tech monopolies.

At least that's the idea. I'm pretty sure we'll eventually have something like that, we can't keep on digitalising our world with ever less control, it's a bit of a country without public space and no individual private space either, only corporations (not far from the ontology of fascism, although consensually accepted here since you're not obligated legally, only socially pressured into using said networks).

But from this idea to actual execution, there is still a pretty huge gap, notably because any worthy solution needs to be actually adopted by a majority of users. It needs to be sellable to the highest extent (even if it were free), and thus provide actual value over existing solutions. Tooling, ease of use, clarity so as not to trick users, all aspects matter.

Ten years ago I thought this would be long done by now. I evolved into thinking this is actually somewhat of a hard problem (per real-world constraints of all kinds, ie social, political, ethical, not strictly technically) that I want to actively try to tackle personally, whatever I can bring to a solution.

This is an incredible fleshing out of similar thoughts I've had for a while, thanks!

Even just simple 'sharing' things get to me: I want to get a huge bunch of files from my computer to a friend. For semi frequent transfers I just give my friend credentials to a guest account on a VPS so he can rsync them down.

I wonder if we'll ever get a fundamental method of moving files peer to peer that is as easy as email (and similarly open). Something like Resilio (Bittorrent) Sync or Syncthing but more ad hoc?

Well thank you for the comment first of all.

About moving files it also numbs my mind that we still haven't really solved this as we close the 2010s. I think it'll get easier as we gradually move mainstream storage to clouds but it begs the question of ownership; the now-old meme of dropbox etc being "someone else's computer". I strongly believe that a decent cloud provider should encrypt everything before data leaves the user's screen and until it reaches some end user's (blind transport and storage, just like the post office doesn't peak on your letters and boxes). Provided decent API and tooling some of these providers could indeed allow peer-to-peer management. Local storage is dying for the mainstream as networks get better, and it's ok if we tackle the privacy issues the right way. I think.

> ..I thought this would be long done by now. I evolved into thinking this is actually somewhat of a hard problem (per real-world constraints of all kinds, ie social, political, ethical, not strictly technically) that I want to actively try to tackle personally

A notable act would be to join the course of an ongoing project, if one which is flexible enough to build onto exists.

You meant noble act? I agree with you, wholeheartedly. I'm just not aware of any good candidate right now. However even if I or anyone were to build an original solution, it's just 'new' conceptually, but technically all the bits of tech exist already (peer-to-peer eg torrent, encryption eg rsa, etc.), so that solution would likely be about assembling the pieces together. Again no magical billion dollar idea here, but a matter of great execution, ie integration and value proposition in our case.

For cost reasons, quality, and security, I think it should absolutely rely on open-source pieces (and be an open-source project itself, to allow for public review and efficient feature growth). Whoever (individual, group) assembles said solution should therefore become a de facto contributor to all projects used, if only for the sanity of the arch-project.

The matter of profitability bugs me though, because it should not be for profit but you need full-time devs and actually a whole company to run the project with excellency (it needs to be 'sold' to users, I mean promoted to be known and used, a bit like NGOs, and supported/maintained), so I think opt-in marketing (ads, or taking a cut on peer-to-peer contracts like Spotify I mentioned) could be one way of doing it. Ideally, the corporate structure would be not-for-profit so there's no dividends (people and businesses get value but the actual structure doesn't beyond paying employees and contributions, that should be enough incentive for all actors, B or C or states, to root for its neutral continuation, kinda like DNS or email). The point being that everyone had motives for it to exist but no one would profit directly from it, only through it. It's like the police, or the state itself, or public streets: collectively supported.

> The point being that everyone had motives for it to exist but no one would profit directly from it, only through it. It's like the police, or the state itself, or public streets: collectively supported.

The Open Source community needs an open committee founded on promoting projects of this nature. -- [Open committee over closed since such a foundation could easily be corrupted by personal interests]

You would think so, but doesn't the lack of one already existing speak rather loudly about it's market potential?

I don't know about the serverless part, but wasn't this the promise of Diaspora?

It wouldn't, though a lot of the initial "Web 3.0" hype seemed to imply that, such as this post by a cofounder [1]. Even their website used to mention Facebook [2].

[1] https://web.archive.org/web/20140723210829/http://insightsin...

[2] https://web.archive.org/web/20140801161657/https://www.ether...

Here is one early stage project I've heard of using ethereum: https://akasha.world/

The difficulty is "prove you did it right". I'd guess that only works for cheap-to-verify (trapdoor"?) functions. However, Intel SGX does enable this. You would need an SGX-attested renderer, but the output would include a signature on the inputs in addition to the actual output image. You could verify this signature was made by the SGX-secured renderer code, then you'd know it executed as designed (i.e. the person didn't just draw an image in paint).

SGX would also enable hidden contract data. Right now, you can't publish a contract like "guess my weight and win $100", because the guess code is public (has to be, for miners to exec it). With an SGX-enabled system, this is now totally doable. (Though, you must trust Intel, and assume hackers can't reverse engineer the Intel chips with magic physics or other breaks. So it's probably safe for a few millions but not billions of dollars. (Upper bound, for a few hundred billion you could acquire Intel and compromise SGX secrets.))

SGX is pretty exciting and I'm in the early stages of getting at least one project working with it. There's also research called "Town Crier" to enable TLS-retrieved website data into Ethereum contracts.

For all the people that cry about SGX being big, bad, DRM, it really has its upsides. Too bad Intel requires special licensing to use it - it should just be enabled for all purposes. Maybe they're worried about malware backlash?

Also, an SGX-enabled Ethereum, apart from the Intel/SGX trust issues, means you can skip the computation and just verify the result. It also means you could replace the proof-of-work multi-hash with a single iteration plus a sleep.

The costs to subvert SGX are unfortunately far below millions. Probably hundreds or thousands after you have some one time research.

It is a viable additional client protection, especially against remote malware, software-only tampering (unless there are implementation bugs or backdoors), but not a viable server trust substitute.

Probing a live chip for 30k - https://zeptobars.com/en/

Probably cheaper side channel attacks, too. To some extent this depends on the software running under SGX.

how this will help if the encryption/decryption happens inside the chip?

Probing a chip means attaching probes directly to chip's circuitry/cells

I don't know about SGX but worked on HDCP and maybe the license charge is for the same reason: lazy or malicious partners could leak a key and compromise the whole system. All the charges pay into the fund to pay damages to the injured if the system suddenly collapses like DVD encryption did.

The moment SGX reaches 5% of the market, someone will already show how to hack it.

Definitely a very constrained system to write in. For anyone who loves to write compact optimized code though, Solidity is very fun to write. Squeezing out every last little bit of gas. With the Viper language in development being even more low level there could be a good market for developers who can create solid contracts. VISA recently posted a job opening looking for a Solidity developer. I think with how rare those developers are, you would be in a really great place to negotiate your salary.

Ethereum isn't trying to be some sort of generic distributed computing platform. The notion of writing a dApp to do distributed 3D rendering is outrageously stupid.

The idea is to program your money. Here's a dollar that can only be spent on healthy food. Give these to your kids for doing their chores or whatever.

> Here's a dollar that can only be spent on healthy food. Give these to your kids for doing their chores or whatever.

Are such restrictions meaningful though? One huge feature of these currencies/tokens is how easy it is to trade them; maybe your kids will trade their "healthy food dollar" for $0.75 of some unrestricted currency, hence "a dollar that can only be spent on healthy food" is actually "about $0.75, with an extra transaction step".

If the tokens can only be sent to a whitelist of healthy food providers, then they can't be sent to other individuals attempting to trade them for other types of tokens.

The token would just need to check against the whitelist in its transfer function.

How do you cryptographically, trustlessly verify that food is healthy?

The ideology that everything has to be completely cryptoeconomic and trustless is hugely overblown. It's good that Ethereum eliminates the central trusted third party for the base layer, but then you are free to be flexible with how you define trust in your applications. Obviously you can't "cryptographically verify" a complex topic like health; you need to delegate decisions to intelligent actors.

If you're delegating decisions to intelligent actors, why not delegate to intelligent actors who make a payment app that's denominated in dollars and includes none of the complexity of Ethereum?

Because for some reason I enjoy using a smart contract blockchain as the platform for my interactions. That might be for example because I also want the ability to use the service with a multi-signature wallet... or because I have been locked out of PayPal for political reasons or because I am a vendor of erotic literature (https://www.engadget.com/2015/12/02/paypal-square-and-big-ba...)... or because I want the ability to pay in a number of cryptographic tokens... and so on.

Ethereum has value even if it doesn't involve somehow replacing all real world services with cryptographically proven algorithms. Interfacing smart contracts with external actors is a really interesting frontier; see for example Vinay Gupta's latest venture, Mattereum. http://internetofagreements.com

A program could compare the output of a gene sequencing reaction against a known database to verify that such and such fish matches what's on the label. But then you have to trust whoever is loading your fish samples into the gene sequencer.

And the fish samples that are loaded into the sequencer are not the same as the ones in circulating supply.

Basically the way people are thinking about blockchain business models right now, require everyone to migrate to the new platform for it to really work.

Both migrate and participate earnestly with no attempts at dishonesty. Most discussion of smart contracts or sales where abuse wasn't either ignored or differed to the same courts and trusted third parties everyone currently relies on, at which point the discussion goes from revolutionary change to minor incremental improvements.

The Golem Network is the generic decentralized computing platform. https://golem.network/

"using something called gas"

gas is ETH. It is simply a term they chose to refer to the ETH fee paid to execute the code. I don't like their terminology. Calling it "gas" make it sound like it's a different currency. They should have just call it the "ETH fee".

No, gas is a synonym for fee. However, gas is its own unit, separate from ETH.

Each op code in the EVM has a gas price, depending on the complexity of the instruction. Eg. A store op costs more gas than a comparison op.

When you do a transaction, you specify how much ETH you will pay for one unit of gas. Typical transactions use 21k gas, but contracts need much more.

More info about why it's like that:https://www.cryptocompare.com/coins/guides/what-is-the-gas-i...

I often see 'gas required' 'gas limit' and 'gas price' terms confused, so careful what you read in the comments on the internet ;-)

A much simpler terminology Ethereum should have picked instead of "gas" is the "cycle". Each operation takes a predefined number of cycles to execute. For example SLOAD takes 20 cycles, SSTORE 100 cycles, etc. Then a transaction defines the maximum number of cycles it will need, as well as the ETH per cycle it will pay as a fee. That's it. Basically:

gasCost -> cycles

gasLimit -> max cycles per transaction

gasPrice -> ETH per cycle

The fact you need so much text to explain gasCost, gasPrice, etc, perfectly illustrates my point that their "gas" metaphor is the wrong one. Also as xur17 said, "cost" and "price" are too confusable.

Hmm, not sure about cycles too. It sounds more like CPU clock cycles, may be confusing to those who see it that way?

Note that there is also one more limit, the max gas per block limit..

Personally, I quite like gas, not too hard for a casual dev like me to understand. However, perhaps in the future it could be something that is totally abstracted, since asking everyone to understand how gas works is too much.

> It sounds more like CPU clock cycles, may be confusing to those who see it that way?

Having non-CPU cycles is extremely common in emulators and VMs, you can just say it's a "virtual cycle of the eth VM", something along those lines.

Gas doesn't only measure the computation resource but also memory and storage, so "cycles" too is an inaccurate metaphor.

Well "cycles" is good enough as a metaphor to convey the idea we are talking about a resource cost.

At least "cycles" and "ETH per cycles" makes it very obvious that you should multiply them to find the fee. On the other hand it's completely unintuitive you should multiply "price" and "cost" to calculate the fee. If gasCost was called gasQuantity, at least it would have been a little more logical (multiplying price with quantity).

The fact the #1 comment on this HN submission refers to "something called gas" (as if it was an advanced concept) instead of "fee" is another data point showing the gas metaphor is confusing :)

Also gas is not its own unit. gasPrice is the unit. Or... actually it's not even a unit. A "unit" implies a constant. But it's not constant since each tx can set its own gasPrice.

The more I think about the cycles metaphor the more I love it. Sorry I have zero sympathy for "gas"

Gas is its own unit, decoupled from ETH. Opcodes cost a certain amount of gas to execute [1]. When creating a transaction, a sender sets the maximum amount of gas that they are willing to pay. This is the "gas limit."

[1] https://docs.google.com/spreadsheets/d/1m89CVujrQe5LAFJ8-YAU...

I know what gas is. It would be more accurate to call it a unitless number describing the relative resource cost factor of each opcode.

If you define the term gas as a unit then it refers to both a value, and the unit of that value, which is where most of the confusion comes from. The language "1000 gas" could mean either "1000 wei/szabo/whatever of gas" or "1000 gasCost" which are 2 completely different things!

"This book is five dollars" vs.

"The price of this book is five dollars" vs.

"This is five dollars" (meaning "this book's price is") vs.

"This is five dollars" (meaning "five dollars are sitting here on the table.")

I know what you're saying, there is ambiguity, but these make sense to people based on context.

That is much easier to understand. I spent way too much time reading and converting units when trying to send my first transaction. GasCost and gasPrice sound too similar.

Clearly, it should be called "flooz" not "gas"

Yeah. Gas, wei. They need it to KISS.

Thanks. In your example, how could one hope to prove they had rendered the animation correctly? Presumably each node must be able to verify the correctness of this in order to process the contract?

I think that's still an open problem. You could render a few random tiles from a few frames to build some confidence in the result. You could also build a reputation system, also running on ethereum, to establish who is trustworthy.

> You could use Ethereum to create all kinds of interesting contracts for financial purposes, voting systems, insurance, or whatever else

Perhaps you could but currently no one does. There's still not a single real world legal application that needs cryptocurrency. Much as with the pro-life debate (to name a bad phrase) or with global warming now renamed climate change (to name a good phrase) the name of the thing frames the discussion. Calling it a "currency" makes people think it's not a Ponzi or a scam when it's decidedly one of them.

> currently no one does.

Clearly you haven't done enough research. Have you looked at the ethereum token (ERC20: https://theethereum.wiki/w/index.php/ERC20_Token_Standard) launch contracts? They raise large amounts of money (its actually scary!) and securely and transparently tokens are distributed to participants. These tokens can then represent anything (really anything) from stock (blockchain capital etc), to voting rights in the organisation (districtOx), to a utility token (golem, basic attention token) to allow use for what ever protocol is being developed.

There already are private secure voting systems being researched. Here for example: https://github.com/stonecoldpat/anonymousvoting ZK-snarks is used to ensure privacy.

You can see some of the other applications here: https://dapps.ethercasts.com/ (most of these are just fun ideas, but you don't have to look far to see the potential in them).

There is real utility to Ethereum, it is just very very young as a technology, and all the issues of scalability etc are a work in progress. But if you want to use the trust-less and secure computational power to execute your code (smart contract) you need to buy Ether first. Is that a Ponzi? I think you are unfairly grouping ethereum in the same category as a large number coins that very much are ponzis.

None of these tokens do anything useful today. And at least 99% will never do anything useful, since the market is full of scammers and over-promising start-ups who use the magic 'decentralize' word.

Exactly, that's why you probably shouldn't be throwing your money at any of them. That's not an indication of the future of the technology though. Only time will tell.

Blockchain != crypto currency.

There are quite a few private blockchains that are now running in the financial and healthcare industries at a pretty large pilot programmes that are very functional and bring destinct advantages.

Name some. And then explain why a private blockchain, controlled by a single entity, or a group of companies that trust each other, is better than a database.

It is effectively a database with specific features.

A blockchain isn't magic, I'm currently working on a project with the royal mint that will be used for correspondent banking applications.

Think of it this way you have a database that is guaranteed to be consistent across all nodes, offers you full tracking of any action performed on that database, offers you non-repudiation and much more.

Sure you can probably hack it over an existing standard DB but at what cost?

Blockchain has a lot of distinct advantages when things need a very clear audit trail. Auditors love the fact that a block can't be modified without recalculating all subsequent blocks. Of course, in a blockchain controlled by a single private entity, the entity could redo all the blocks, but that's not really the main concern. The concern is to try to prevent rogue individuals from modifying the ledger without detection, and that is harder to do with blockchain than plain DB access controls.

Blimey! Here I thought any database server worth a rusty copper can do a detailed, queryable audit log / trail if that's what you need.

At least MySQL, PostgreSQL, SQL Server, DB2, Oracle surely can.

Come on, it's not difficult to see how those DB solutions are easier to modify after the fact without detection than a blockchain-based solution, and blockchain-based solutions are generally easier to make distributed while still guaranteeing immutability.

There's no reason to use a blockchain within a single entity. Use a database for that.

Private blockchains do appear to be useful among a consortium of companies who don't completely trust each other, and don't want to pay a single company to maintain a central database.

It's not about "trust" it's that keeping the accounts and books consolidated even within a single bank is problematic and between banks even more so.

Banks lose billions each year and i mean lose as they have no idea where the money went. Account consolidation within a bank is a huge enterprise.

Even within a single entity like a bank a blockchain that governs all accounts and transactions is hugely beneficial because of the consistency and the trail any action within it leaves.

Interesting. I hadn't thought through the scale of a large bank.

> global warming now renamed climate change

Actually not true, the phrase 'climate change' has been coined more than half a century ago. The idea that there was a rebranding of the phenomenon is false beyond doubt, and actually hurtful to the process of acknowledging we have a big problem.

Here's some random link to support my claim, since some people in the HN crowd prefer to downvote instead of discussing what makes them uncomfortable.


So instead of hiring professional animator with good reputation and fair pricing, you write a sophisticated program to check correctness of animations (what would that do?), try to come up with fair price in somewhat cryptic market, and hope someone somewhere will take up a challenge of both, figuring required specs from your contract source code and actually have an expertise to do a job in question.

Revolutionary indeed.

No, you check the quality of the rendering. The rendering is already done by computers. The animators tell the computer what to render.

How are you checking? How is someone executing contract can be sure that you won't say "bad quality, won't pay", but use it anwywat. What is the point of ethereum in your concept?

I'm failing to understand how this is different from say buying a compute power from AWS or GCE. Isn't it almost the same except the transaction is done through ether instead of traditional money?

My article on costs in the ethereum network cover this idea. https://hackernoon.com/ether-purchase-power-df40a38c5a2f?sou...

Check out https://golem.network or https://sonm.io they are making a world computer on ethereum

The proof of work system imposes that and the fact that all the nodes compete to mine the blocks to earn coins. May proof of stake can make things more optimized.

I'm very wary of buying ETH because I've seen it shilled VERY HARD on 4chan.

I don't trust anything that 4chan is telling me to buy.

I doubt that opinions on 4chan have a strong correlation to reality in either the positive or negative direction.

the average 4chan user probably doesn't own a finney so I wouldn't worry about it, the development team for Ethereum is pretty solid I think that should be taken more into consideration before contributing money to a software project

That's what I would buy it for really: as an investment into a software project, not because it can make me money.

This is what Golem aims to do... and it's built on ethereum.

Your right, but Golem will be. And golem is built on ETH.

If you want a laugh, read the ethereum sharding document.


How does one prove they did it "right"?

This doesn't seem to do it for me. The multiple explanations it offers are all either:

1) Extremely vague and handwavy, or

2) Links to extremely long documents.

Neither one is an explanation, something that hits the key points and gives you enough to know what to ask to get greater detail.

Edit: toned down criticism.

Be my guest: http://github.com/Breefield/whatthefuckisethereum It's supposed to be a combination of layman information, reference material, and humor, I agree some of the content was rushed.

As soon as I understand ethereum, I will!

Shoot! Explainer site missed the target. I wrote the "average person" page to be quite high level. Unfortunately the "nerdy" page became a little too nerdy.

I should work on an "I'm a software developer who wants an intermediate technical understanding" or something like this.

Me and all my coworkers are in this boat and would greatly appreciate a "I'm a software developer who wants an intermediate technical understanding" page!

I'm still learning what the fuck ethereum is, but it seems like it could have some revolutionary implications for the political process, am I right? Maybe add an "Explain it like I'm a nerdy politician" (and also an "Explain it like I'm a nanny-state politician" for the politicians more interested in regulating it and protecting the children, than leveraging it)

This is the exact option I was looking for. I've dabbled a tiny bit in bitcoin but that's about it. An explanation about Ethereum that assumes I know some basic computer science stuff would be perfect :)

Something that would be helpful is "How is it different than X?", such as bitcoins or whatnot.

GitHub issue created [1]. I encourage everyone to add to it.

Thanks for the resource!

[1] https://github.com/Breefield/whatthefuckisethereum/issues/7

This is what i was trying to find! Would be very nice to have one :)

Unfortunately it's simply not something that can be explained easily and clearly. Imagine trying to explain the Internet to someone who has never seen a computer.

This is actually a sign that something innovative is happening, because it can't be explained in terms of something that already exists.

I hear that on every topic and have never found it justified. A high level explanation can illustrate the general structure of what you're explaining and then you can paint in details as necessary. It's always possible to find an "in between".

When I wrote understandingbitcoin.us, I explained it as a global ledger with mutiple versions floating around where everyone agrees to trust the version (out of the valid ones) with the most proven work invested in it. That provides the overall structure and allows me to dive into:

- How you sign transactions (public key crypto basics)

- How you know how much work has been invested in something (the guessing game and the crypto version with hashes and nonces)

- Why people invest work in it all (mining and transaction fees).

- Why people agree to follow these rules at all (dynamics that encourage people to follow vs reject a protocol and what effects that has for the network)

(I would like to see something similar for ethereum.)

If I were explaining the internet to someone in your example, I would explain what functions computers can perform, then introduce the concept of them communicating with each other and what that allows, and the flesh out the details of how the communication happens in a distributed way.

(The linked page also doesn't provide that kind of explanation.)

All of that is the same on Ethereum. But where Bitcoin has a table with "userid,balance" and a stored procedure that lets you move some of your balance to any other user, on Ethereum you have developer rights. Aside from the core ledger, you can make your own tables, and your own stored procedures that anyone else can use.

This isn't a precise analogy for various reasons. Bitcoin has the UTXO model (though Ethereum actually does have userid/balance), and Ethereum is more like an object database than SQL.

This is probably the best relatively quick explanation: https://youtu.be/66SaEDzlmP4

For me, a "relatively quick explanation" is one that I can read in five minutes, skipping around easily if I already understand part of it, and which points me to the appropriate concepts that I can research for deeper understanding.

Not one where I have to watch a 3 minute ad and a 23 minute video of someone reading off slides.

Few weeks ago I decided to spend a weekend to try to understand Ethereum. I found the whitepaper to be pretty instructive (it even helped me cement my understanding of bitcoin). Here is an annotated version of the whitepaper by vitalik:



The document mentions creating a crop-insurance application that would depend on a weather feed.

The problem is if the weather feed isn't something that's uniformly secureable the result could be bad given that the insurance application would take action automatically and no appeal to any higher authority concerning the fraud would be possible - without a "fork" as happened earlier. Hack an insecure feed, an insecure site or whatever and viola, free money.

And this seems like a problem any interface with the "real world" would face. The idea of automatically occurring, no-appeal financial transactions sounds but I would claim it's always going to be problematic - only a fool or a crook would put their money in this kind of system and the crook only puts in enough money to remove the money of the fool.

The ideal of say, money, is it belongs to you, where you is a broad but understandable concept. Something that belong to "whoever has X, Y, Z pieces of information about you" may sound great until someone beside you gets that information and there is no recourse. Indeed, the person who had the information "did nothing wrong" if the account really, really did belong to "whoever has this information" rather than belonging to you.

This to me is one of the fundamental problems (or challenges) of smart contracts - they remove humans and human judgment from the core, but they just push it to the edges.

You still end up trusting a human - an "oracle". You trust the weather feed, or you trust some exchange to give you the accurate price of some other asset. If that oracle is mistaken (bug, intentional misinformation), the smart contract can be manipulated.

This is a significant challenge for sure, at least with Ethereum there's no way around needing an external account (centralization) to feed data into the blockchain.

However, I know of at least 1 promising project on Ethereum (Augur) that provides decentralized oracles, and you can trust these oracles due to some clever game theorish mechanics.

The gist is randomized Reporters submit real-world information to the blockchain and earn a fee for their service. Reporters purchased a cryptoasset to have this priviledge, and if a certain Reporter submits information in conflict with a majority of other reporters (e.g. they lied) then they lose a portion of their cryptoasset giving them incentive to play by the rules and get paid for it.

And even further, if majority of Reporters report dishonestly then people will not use the Oracle service, the Reporters will not be able to earn fees, and the cryptoassets they purchased to allow to be reporters become worthless.

> Reporters purchased a cryptoasset to have this priviledge, and if a certain Reporter submits information in conflict with a majority of other reporters (e.g. they lied) then they lose a portion of their cryptoasset giving them incentive to play by the rules and get paid for it.

To be precise: it gives them incentive to submit the same information as majority of other Reporters. This is a huge difference.

This seems to be a massive flaw in the gambling markets that they propose. For example, let's say Augur (or any number of competitors) host a market on a football match, where team A are supremely better than team B. The odds on A will be extremely short, and there will be far far more people backing team A than team B.

Now, imagine that team B somehow win the match. How can the system prevent the overwhelming majority of team A backers from submitting a fake result claiming that their team won? They will vastly outnumber the people backing team B, and also outnumber any of the casual observers who might also contribute to the results. So the market will get settled as if team A won, thanks to the 'wisdom of the crowd'. The minority backers will be robbed.

Indeed, not only do you have a problem with corrupt backers of a particular view, you have a problem with systematic slipshodness. A whole raft of reporters would have an incentive to report "what you would expect" for any given outcome since that actually is what happens most of the time. So even if reporters can be separated from outcome bettors somehow, outcome bettors wind-up with an incentive to be on "what people expect will happen".

In a lot of ways, it seems like you could create something like a theory that it impossible to create a system that distinguishes "real world input" from "noise that I get from outside" without that system having a model of said real world.

For Augur, how it works is reporters are randomly handed events to report on. Meaning you can't buy REP and then choose to report on a specific event in order to further your financial interest.

Further even if you did that and by random chance are selected to report on your sporting event, you have to hope that majority of other reporters who were also chosen do the same thing you do (keeping in mind you don't know who they are), so if you still choose to report a lie you further risk losing a portion of the REP that you previously bought.

The only practical way to game the system is to have a majority of all REP holders collude and they would in truth control the outcome of all events. However it would be a waste of their money to do so, because the value of REP is derived from trading fees, and their trading fees would be non-existent because no one would use Augur if the reporting wasn't reliable, so the value of their REP holdings would plummet.

It's just like a 51% attack on Bitcoin, it's physically possible but you're financially incentivized against it.

That is the more precise definition, and there is reason to believe the majority will be honest as reporting events are randomly distributed, and you can't possibly know who's reporting what until the reporting results are all submitted.

It's a fundamental problem with abstractions: they will all leak once you are able to collect information from side channels.

The weather feed can provided by several oracles, and the contract can take the median value.

You could program whatever logic you want into the insurance. For example, some kind of dispute resolution system that appeals to a higher authority.

How do insurance companies deal with this problem today? Why do you trust the insurance company not to lie and say that the weather was fine? Whatever that mechanism is, it can be programmed into a smart contract.

> How do insurance companies deal with this problem today?

The legal system. It can put people in jail for fraud if necessary.

Do you really want "smart" "contracts" to have the power to put people in jail? Really?

A smart contract wouldn't put someone in jail(how often does that directly result from a contract dispute anyway?)...a lawsuit would he how someone resolves the issue if that remedy is available and necessary

Fraud is a criminal offense where you lie or deceive people about things. For example on contracts. Where you can end up in jail. Smart contracts don't fix this.

A contract dispute is where both parties are truthful, but disagree on the resolution of the contract. This is the part smart contracts fix.

And it's how insurance companies deal with these problems today.

People go to jail for insurance fraud all the time.

Not quite. You could make it a legally punishable offense to provide incorrect information to a weather oracle. The provider would be sent to jail for defrauding the oracle.

I'm just saying that it's possible to solve the problem the same way that it is solved today.

Not really. The basic problem is "fractional reserve". Essentially an insurance company will only have about 5% of the money needed to pay out their policies (less in Europe, around 2.5%, and there's other variations across the world). (Even then significant amounts of that 5% would be either loans or shares, which are technically also loans. Most large insurers would go bankrupt if their risk assessments were off by 1%).

Since this is the exact thing that the double spending algorithm would check against this wouldn't be allowed, and therefore you can't have normal insurance in a blockchain world.

An alternativ would be that the weather "oracle" has something on stake, e.g. if it lies or is hacked, it looses a deposit. But then it goes further, maybe you need a voting mechanism, or other weather "oracles" participating in the vote ... in the end you need to get it game theorically right to incentivise honest "oracles" and punish dishonest.

In general I see two really hard challenges with smart contracts. Getting them bug free (i think formal verification which is worked on will help a lot) and getting the incentives right to punish dishonest behavior. (So far I haven't seen a lot work being done here, I also don't know how you could automise that, maybe some kind of simulation with AI based actors)

We're working on a decentralized dispute resolution mechanism to address that. You could add it into your smart contract, which would call our contract that has voting pools that make decisions when a dispute arises.

What incentive will people have to vote for the fairer outcome in a dispute?

If people even know of the existence of a dispute, it's almost certainly because they have some personal stake in the outcome, and they will vote for the outcome that benefits them.

Yes, the value of blockchains is in their 'trustlessness', however the moment you need to retrieve data from outside of the blockchain, you have to trust it. In which case, there's no point in using the blockchain at all.

Oh nonsense, it's not all or nothing. There could be value in:

* Making the trust-liability explicit

* Building a trust-less core system that can swap out 'trustful' sources of data as needed

* Streamlining the processing and accounting of something that depends on a 'trustful' source of data

Not to mention that trust-less data is potentially achievable with prediction markets. This is obviously not a trivial innovation, and they may not be practical, but writing off the whole system is unfounded at this point.

This is drivel.

Protocols and decentralized applications around decentralized file storage, decentralized computation and decentralized prediction markets, among dozens of other such concepts, have the potential to substantially increase the efficiency of the computational industry, and provide a massive boost to other peer-to-peer protocols by adding for the first time an economic layer

It's a bit silly to dismiss the whole thing because the cofounder is trying a little too hard to sell the technology.. it certainly doesn't mean the technological aspect of the paper is "drivel"

This is Sokal level writing. If this was a random person trying his hand at a writing class, whatever, but this is the guy writing the code behind your crypto coin.

Literally everything I read about Ethereum that's written by Vitalik stinks of something I haven't been able to put my finger on. "Sokal-ish" nails it exactly. The writing is never straight-forward, and always appeals to mainstream idealogical preconceptions. It's liberally salted with economical-jibberish-nonsense that sounds good as well.

I believe blockchain technology is important and I think Ethereum is a strong contribution in its own right. But the more I read of Vitalik's Sokal-style writing the more I wish he would stop and let others handle it because he is making it sound like he's going to scam the shit out of everybody.

Really? I think Vitalik writes with a lot more precision than most in the space. E.g. https://blog.ethereum.org/2014/08/16/secret-sharing-erasure-...

When reading anything about Ethereum, the problem I've encountered is that the authors describe the supposed potential of the technology but never practical use cases. They never talk about successful, working applications.

The question for Ethereum, like any technology, is what real-world problem is it uniquely suited to solve? Personally, I don't think Ethereum will ever live up to the hype surrounding it because its founders have promised more than it can deliver.

I wasn't aware of Sokal. I'm going to include this concept on the "scammer" page.

At least each example in that sentence there already has one or more teams implementing it and actual working code you can run on top of Ethereum.

It's not necessarily drivel, it's just an unfounded assertion.

File storage: Swarm, and several other file storage protocols getting integrated with Ethereum.

Computation: pretty much the whole point of the Ethereum VM, plus there are a couple projects that put proofs on the blockchain of larger computations than the blockchain can handle.

Prediction markets: Gnosis and Augur

Efficiency: at least developer efficiency, in my experience

Economic layer: because you have reliable currencies on the network, both ETH and roll-your-own.

It might sound like buzzwords but at this point it's all real code.

Does that real code actually increase computational efficiency, or does only merely have the potential to do so?

Real code that doesn't provide the stated advantages doesn't mean much, right?

I'm in to prediction markets, but both Augur and Gnosis look like vaporware. Almost no volume on Augur and many poorly defined events to wager on (cost of having user generated content). Gnosis just looks like a fancy landing page and attempt to fundraise via ICO.

I have long-term hopes that decentralized currencies let us build some interesting products, but there's massive volatility against fiat when holding crypto, which makes it hard most people to want to use these auxiliary services

It'd definitely not computational efficiency. Vitalik has repeatedly pointed out that the total computation available on this network of thousands of computers is less than that of a first-generation smartphone.

But it doesn't say "computational efficiency." It's talking about efficiency of the industry, which is a completely different thing.

As a developer, I have various ideas for startups that would handle money. The easiest way to implement them is to build on Ethereum.

Ethereum is very simple in essence: it's a Turing-complete version of Bitcoin.

The way you transfer a bitcoin from one person to another is by creating a Bitcoin transaction that contains an input script that fulfills an in-blockchain output script with which a number of bitcoins are associated. The output script may say "provide a public key that hashes to <some_hash> and a signature, over a transaction (which sends the bitcoins to a new output script) that redeems this output, that verifies against this public key".

Bitcoins script language -- conditions be fulfilled to transfer tokens associated with one output script to a new output script -- is not Turing-complete, which means it's limited in how complex a condition can be set up for redemption. Ethereum's script language is Turing complete, allowing arbitrarily complex conditions for fulfilling an output script (which allows you to transfer coins/tokens from that output script to a new one).

Worth adding perhaps that Bitcoin is intentionally not Turing complete, as the complexity opens up a very big space for vulnerabilities. And indeed, we see a lot of those in ethereum contacts.

The DAO failed because of a lack of strong typing in the contract language, not because of Turing completeness.

The main problem with a Turing-complete contract language is that it becomes impossible to statically verify runtime properties, so a node can't know how long it will take to verify a transaction it receives. This opens up for denial-of-service attacks, e.g. embedding a transaction with an infinite loop in a block in the blockchain.

That's true theoretically and your argument still stands for a lot of cases.

However for practical purposes nodes only compute up to a certain amount of instructions. This is known as the "gas limit". Additionally it costs Ether to get them to run code so any DOS approached in this way is prohibitively expensive.

Yup. Why people would want turing complete contracts is completely beyond me. There is a reason why we use heavily restricted computational systems for high integrity systems. Until somebody is doing some sort of model checking on my smart contract you can count me out.

Nice thread but the issue I always have with all discussions around cryptocurrencies is:

I never know if the person who just worshipped or criticized a specific currency has a vested interest.

Somebody who sits on billions of ETH will write totally different tham someboy who is shorting/margin trading ETH.

A good litmus test is the level of technical depth of discussion, it's very easy to discuss hypothetical achievements at a high-level of any cryptoasset, but to be able to get into the details demonstrates knowledge beyond any regular trader as well as provides possibly objective reasons to be argued with.

Good point. There is one guy in he thread who doubts that ETH will scale. He stays quite meta but sounds credible because he gives one or two good reasons. Still it's hard to judge if it's just a claim or is it substantial, is it crucial for the success anyway?

This whole cryptothing feels like gambling, 'put all your money on red, red will win..'

The state of the art for theoretical blockchains is that, to maintain security, you need every single node to process every single transaction. No proposed solution to fix this can maintain anywhere near the same level of security, and while we are making progress on that issue, I think it's still pretty far away.

The problem with ether isn't the tech of contracts but the implementation of the network. There are very concerning scalability issues that have not only not been addressed, but who's 'plan' for resolution are either untried systems in development (sharding) or have significant architectural issues (proof-of-stake) that very smart people think will never be resolved. I hope they overcome these obstacles, but the jury is still well and truly out.

A framework for creating ponzis

I'm sure you're only partly joking, but sadly it does seem to be one of the biggest first uses. Oh and lotteries - those are popular.

On the other hand, people will continue to run ponzi schemes as long as there are greedy/ignorant people to attract, so it might as well be done all visibly. At least then the guy running the ponzi can't just tell everyone "sorry, feds raided the bank, all the money is gone" when he actually just moved it offshore.

Instead they can just go "sorry, my site / wallet was hacked, all the money is gone"

Can anyone help me with a reference for any study that has been published on the status of research for the conditions of successful crypto currency launches?

Or a serious reputable journal reviewing the literature comprehensively?

If I'm unable to find filling for the gaps in the study I seek, I'm inclined to think that I have a good chance of being able to work towards a (sincerely and despite being tempted by the ad rates) non spammy simple site to collate the references, this summer. So if you have any suggestions for the effort I will with about 70% probability undertake, I'd be happy to hear from you as well.

Are we at the "mania" stage of cryptocurrency interest yet?

Not until Nicki Minaj or Drake appear in a music video with a bitcoin necklace...

Certainly makes it easy to have a high-density, high-value object - much more dense than casino chips. Put the only copy of a wallet with tons of BTC on a microSD. Fun marketing gimmick, too. Put $100 worth on a bunch of micro SDs, spray 'em gold, toss em out at concerts or stuff.

Would totally get headlines if someone put $1M worth on an SD, then laughed and ate it live on TV and said good luck finding it. Or tossed it out of an airplane, or boat, etc. People show off wealth in all sorts of ways...

Ever heard about Casascius coins? Gold + BTC... there are physical coins with 1k BTC (~$2.5M) inside


I'm super interested in making cryptocurrency printable and exchangable.

It would be cool to make coins out of bits of recycled computer chips and resin, and only allow the e-waste recyclers to mint them. The global poor become our new bankers. ='D

You could get one of those Ether cards (https://ether.cards/) and put $1M worth on it.

It would make much more sense to do all those things with $100 bills.

They can use this design I made!


Pretty sure the majority of people don't know about cryptocurrency yet. On the other hand, less than 1% of Americans were invested in the stock market preceding the Great Depression..

Not until we have cryptocurrency bootcamps and people pursuing degrees in cryptofinance.

Wow it's further along than I thought!

Or job postings asking for a minimum of 5 or 10 years of experience working with Solidity and Ethereum

Visa? Hedging their bets, it seems. Or one of those projects to put undesirables on.

It's not even close. I've been told that at the height of the Dotcom bubble, companies received investments for simply having ".com" in their name. That's where we're headed.

There are companies raising >$100m with a prototype written by a single dev.

I think we are close to the top, how much worse than this can it get?

Everyone has realized there's crazy mania, and so now everyone is capitalizing on it. In a few months, the number of projects to fund will no longer be smaller than the amount of money being put towards funding.

I read about it in the newspaper for the small town my parents live in, and I have a completely non-technical friend duped into a weird Bitcoin ponzi scheme. It's getting there.

What is the best place to have discussions about Ethereum? I tried to follow the Reddit group, but I don't really need all the hype. I just need information and opinions on writing contracts and developing applications that use Ethereum network. I'm also very interested in the psychological side of trading and different trading strategies. No fuzz, just reasonable discussion.

For dev, there's /r/ethdev and various channels at https://gitter.im/ethereum, along with https://ethereum.stackexchange.com/.

There are some attempts at serious trading subreddits, but so far nothing that seems that informative to me.

Slack channels are widely used by developers in the cryptocurrency space. I also recommend trying to find local meetups.

How important is the adoption of Solidity for Ethereum's success?

I don't think it's very important. There are several other languages that can compile down to EVM bytecode. A cool one is Viper (https://github.com/ethereum/viper), which is NOT Turning complete, but decidable. This makes it easier to reason about the correctness of the code, and formally proving that your code is correct.

several? Really? Please link me other languages that compile to EVM bytecode.

Ethereum developers use Solidity almost exclusively, because it is by far the most developed, but there is also Serpent, Viper and LLL. I don't know if Serpent and LLL are still being actively developed. Yoichi Hirai is also developing Bamboo [1].

[1] https://github.com/pirapira/bamboo

I'm quite surprised by the answers. The truth is that Ethereum's success comes from the seemingly ease of the Solidity. It made it possible to have a crazy amount of developer jump in.

As a Node.js developer, it was effortless to start coding with Solidity. But that's part of the problem; it seems so easy, but there are no safeguards and a lot of traps. That's why we get so many flawed contracts that were taken advantage of/hacked and ICOs delaying their distribution or processes because a bug was found.

90s cypherpunks that gave birth and worked on these ideas of smart-contract etc. saw the things a bit more responsibly, instead of development velocity on something that proves unsustainable even from a security perspective not to mention scalability-wise. Here is are some thoughts from one of the originals - Christopher Allen co-author of TLS standard.

I'm disappointed in the corruption of the term Smart Contracts. Bitcoin's Script, and in particular P2SH is a good start to them, but massive multiple execution of arbitrary code is not (aka IBM's Chain Code), and I would even argue that Ethereum's languages are not smart contracts either—just another chain code. I do agree that business logic is hard to do with Bitcoin's Script, but for all of us talking about Smart Contracts in the late '90's (Szaboian Smart Contracts?) we desired cryptographic composabilty, that the code could be analyzed at multiple levels to be secure (from language proofs to high level business logic atomic validation), limitable (i.e. expression complexity & evaluation cost can be determined) and could often just be validated by consensus of parties not every node in the world (which only at most need to see proof of execution, not the full contract). These would be true cryptographic Smart Contracts!


I made this website. I don't know the answer to your question. If you cruise down to "The Solc Compiler" on this page https://www.ethereum.org/greeter#cleaning-up-after-yourself, it seems you could potentially use other compilers to generate a Application Binary Interface.

I've been reading a lot about Ethereum, and I am really interested in blockchain tech -- but I also wonder about this.

I am really curious as to whether it would be possible to develop new languages for the handling of smart contracts, or if it is possible to develop smart contracts (using a library or other resource) with existing, popular languages like c++, python, or javascript. I know web3 is already quite accessible and while I haven't looked at the source, it seems relatively easy to work with. But the core language for smart contracts... I think Eth would benefit from some flexibility on the development end. Or maybe I just don't know enough.

Anyway, I think that would be a big leap.

I know that Consensys (who is looking to hire hundreds of engineers https://consensys.net/open-positions/) is working on a special smart contract language that would be easy for lawyers to learn. The language compiles into EVM bytecode.

There are several languages that compile to the EVM. Also there's a somewhat speculative project to transition to a restricted version of WASM, which would let languages like C and Rust be compiled into smart contracts on Ethereum.

Interesting. All I knew of previously was Solidity, and it seemed... practical but limited. That said, I haven't done a deep dive yet.


Solidity is just the first try. I built a couple projects and ideas with it - found it to be a very uncomfortable language.

On the other hand you have Hyperledger, it's "contract" code is Go. Widely adopted language that was basically designed for networking efficiency.

Ethereum is an awesome idea, but before any practical Ether application booms, it's more like a bubble.

If you're interested in why there's also a token named "Ethereum Classic(ETC)", you can search "DAO" on Google to explore more about why the first largest Ethereum application DAO was failed and why this leads to the hard fork(ETH => ETC, ETH) of Ethereum.

As far as decentralized storage is concerned, there's production-already a blockchain-based product named Sia (http://sia.tech/ ), but Swarm (which is a similar thing based on Ethereum) is still in very early stage.

I'm still confused. Is this anything beyond another opt-in botnet at it's core?

What is Ethereum _useful_ for? When would I need it? Why is AWS (et al) not sufficient?

Decentralization and auditing. If you put some code on AWS there are two potential issues.

Firstly you don't know if AWS has actually run your code. They could potentially replace your code with their own modified version which does something malicious (like add a bias). For example in a voting system, code could be modified to ignore X percentage of unfavourable votes, or change unfavourable votes to a more favourable candidate.

Secondly I don't know what your code on AWS does. This isn't great for financial and voting systems that should be audit able.

With Ethereum you can view the code for a contract to validate it does not "cheat". You can also trust the contract was executed correctly because the miners have validated it and added it to the block chain.

Thank you.

well, not specifically ethereum but stuff like siacoin provide cheaper options than AWS and while I personally cannot attest to the performance, they seem to be interesting alternatives.[1]

In the case of siacoin, at face value it seems to be significantly cheaper than AWS or Google Cloud for providing bulk cloud storage.

[1] http://sia.tech/

Even more exciting for me is IPFS and Filecoin. Seems like this pairing could allow for a truly decentralized Internet. Ycombinator had one of the founders / lead programmers on the podcast in the last few weeks and I highly recommend it!

siacoin is relatively slow, it took me ~2 minutes to upload 40mb of stuff. But really it's meant to be cold storage and at $2/mo/TB it isn't that bad. The speeds will also increase with adoption.

Wow, I actually own some ETH on coinbase and had no idea it was more than just a competing crypto currency.

Hats off to attempting to explain a deeply technical topic to a variety of audiences, acknowledging different learner needs. A lot of posters here would probably benefit from taking a humanistic approach to explaining what they do to non-hacker news readers!

I don't believe all ICOs are illegal

ICO tokens are digital commodities/assets that are more similar to app credits or in-app mobile purchases than securities.

Unlike with Ethereum apps/dapps, you can't trade traditional app credits/in-app purchases on an exchange but imagine if there were farmville ERC-20 tokens a few years backs, people will buy thousands off speculation alone, it'll be interesting to see how the SEC will regulate this

Yo songzme, I have to thank you for throwing this up because as a result, I've since stumbled on 3Blue1Brown and his awesome video on crypto and math in general. You linked his video the same day he posted it, and I couldn't have been happier to find something that explained it in laymen terms so well. I've been meaning to solidify my understanding for friends and family, so thanks for sharing! Cheers mate.


I'm being sniffy here, and the technical achievement of Ethereum is considerable, but were I talking about a general contract computing platform, I'd want one where I could demonstrate the assertions the code makes. And that basically means a dependently typed functional programming language. I'd start with Idris, but even that might need strengthening before DAO-style issues were hard to find.

Here's a masters thesis by someone who made Idris compile to the Ethereum virtual machine.


That's cool (Idris seems to have an infinitely pluggable back end), but it's not the same thing. You can code in a higher-level language, but you can't inspect another program's guarantees and you can't safely use them within your own system.

The time estimate listed for an in-depth reading of the Yellow Paper (54 minutes) is... optimistic.

Don't need a whole website to tell me it is just a vehicle for fraudulent securities.

Ethereum is not immutable centralized and full of bugs

Good luck in the long run

Is the content on this website supposed to change based on the target audience selected in the dropdown? If so, it is broken on mobile safari.

I know I'll get hate for not commenting on the actual content of this article, but...why is this only taking up 1/3rd of my horizontal screen space? Perhaps all that space could be used to show the images alongside the text?

> here’s what we’ll talk about: (with links if you want to jump to a specific section).

Holy smokes, it's got links! Good thing he pointed it out to me since I never could have figured that out by the visual indicators that every web browser adds to links.

I love that the article ends in this line:

"Support this website! Send ETH to: 0x1c4d1804AD9d47de0D4209882843998E03E30dF9"

I was curious so I checked, actually two persons gave him some food : https://etherscan.io/address/0x1c4d1804ad9d47de0d42098828439...

~ 40$

Wouldn't whatthefuckisethereum.edu make more sense for an educational site?

.edu addresses are restricted to educational institutions in the US afaik.

What are people using Ethereum for though.

Outside of trading it between each other based on price speculation, is there a real world thing that isn't a prototype that people are using as part of the smart contract system?

An establishment backed control job.

Another cryptocurrency based scam?

The best way to think of ethereum is bitcoin with more flexibility, and its immutability define by owners* tolerance for loss. When vladmir and slock.it lose money they just roll it back. * owners being the slack group with 90% of the mining power. There exists shitcoins with more credibility than ethereum

Can we please stop bringing up slock.it and the DAO fork. It was more than a year ago and it's time to move on.

Why? It is quite defining. I would judge a bank on how it behaved 12 months ago, or 24 months, or 10 years ago. if(lapsed > months(12)) { forget; } errr no..

Another cryptocurrency? This is becoming a hyper inflation of crypto currencies...

Sounds terrible.

Ethereum has had a good start being the first mover in smart contracts, but EOS is coming and the value proposition is much more solid...


Blockchain tech is evolving...

EOS doesn't currently exist. It makes a lot of strong claims, and has delivered none of them yet.

Larimer has delivered them already in his previous projects: BitShares and Steemit. That's more proven track record than what Ethereum had in early 2014, and that didn't stop people from supporting the idea. I for instance have been a strong supporter of Ethereum since day 0, but now I feel EOS (with DPoS and Graphene) is the next step in blockchain tech.

Ethereum had no "solid" value proposition in 2014, and EOS doesn't have one now. You're overstating its proven value. We can share our opinions on the respective projects, but that's different from a demonstrable value proposition.

You should check the definition of value proposition. [0] Ethereum had one: "a cryptocurrency with a programming language beyond opcodes"

EOS value proposition is: "a platform for building DApps beyond PoW (using DPoS) and industry-ready TPS (with Graphene[1])".

Both DPoS and Graphene are inventions of Larimer. For many this is enough, and that reflects why it's already a top 15 crypto.

[0] http://www.investopedia.com/terms/v/valueproposition.asp

[1] http://docs.bitshares.org/

You're saying a vaporware blockchain with unproven claims has a more solid value proposition than Ethereum because its founder created two cryptocurrencies that combined have a market capitalization that equals 4% of Ethereum's.

>Ethereum had one: "a cryptocurrency with a programming language beyond opcodes"

It didn't have one until it had working code.

No, I'm saying that I trusted Ethereum would be built when it was a project idea although Vitalik was only a blogger, and that I'm trusting Daniel because hi has even better chances of delivering.

And that is the reason why I bought in both crowsdsales. Your call...

You can trust EOS all you want, but that doesn't give it a "solid value proposition" that can be demonstrated. I'm simply disputing your choice of words, as it gives a misleading impression in my opinion.

So tired of seeing blockchain, machine learning, and JS in hte news. Things like Ethereum and even Bitcoin are 100% hype, "what if", and are nothing more than dreams.

Last century gave us things like the personal computer, the internet, and so on. What about this one? Fancier webpages? Selfies? Tweets?

All of this blockchain and cryptocurrency and JS hype is tiresome to see. What happened to making real stuff that works and solves real problems?

Lots of hype, for sure, but this criticism is too hard for what is still a still nascent frontier technology.

The innovations you listed in "last century"- PC, internet, etc - both went through their fringe, hobbyists-and-nerds-only phases, during which their future value to society was totally unclear and uncertain.

Only in hindsight are these technologies impacts obvious.

While I couldn't agree more about the fact that there's ridiculous hype and (most annoyingly) greedy speculation in crypto, I for one am hugely excited and optimistic about the potential society-changing implications of the this tech.

If your comparing centuries you probably should give this one a bit more time, I mean we're in our second decade...

Well, we got ubiquitous mobile computing this century. That's been working out pretty well so far.

Cloud computing is pretty great too.

and get off my lawn! :-)

Can't trust ethereum or bitcoin for the same reason we can't trust the fed and their "quantitive easing": 1. It's way complicated 2. It's fiat 3. Nobody understand who really is in control of its value

It's NOT fiat currency, it's a product that can be used to exchange funds, evade taxes, go around a country's poor economy, make a buck via day or long-term trading / investing, etc. It's an investment product; nobody uses it as fiat outside of dodgy darknet websites, and whatever webshop does accept it only does so to hold onto it for a while and hope the value increases.

There's too much inflation and uncertainty for it to be a fiat currency. I mean the value of BTC fluctuated 1000% in the span of just a couple of years.

If it weren't too complicated, then it would just as well be too simple. But really, you cannot measure the efficacy of a solution by measuring your own ignorance.

What's wrong with fiat currency?

Is this a serious question

Yes. Can you answer it? Assume I'm neither a libertarian nor an anarchist.

During the past decade, the Federal Reserve has created 4 trillion dollars out of thin air in an attempt to prop up the economy. The Fed seems hesitant to unwind that as it carries the risk of harming the economy. Fiat money can always be created out of thin air, and it seems to be proving difficult for those in power to resist that temptation.


>During the past decade, the Federal Reserve has created 4 trillion dollars out of thin air in an attempt to prop up the economy.

During the 1840's to 1860's we created billions of dollars out of thin air by mining gold from the ground in California. Fiat currency saves us the digging.

Money is not a static "thing" that definitely exists. Markets need liquidity. QE has provided that liquidity as the vast majority of capital in our society has become locked up by the top 1%. If anything, they could increase the flow of QE because of how low inflation is right now.

If the reason I'm supposed to be concerned about fiat money is Jim Cramer's website, I feel even better about it now.

(Also, they're arguing against QE, not the entire concept of fiat money.)

But why is that bad?

Damn, I should've stick to actual goods barter trading instead of a piece of paper.

I think you meant to write intelligence and not ignorance.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact