Understanding the need of a currency "standard" like ether in a system like etherium

Hello there Etheriumites,

I've followed projects like FreeNet, Tor, Diaspora, BitCoin, FreedomBox, etc. for a while. It's a shame more of the world doesn't grasp how things like public key cryptography, Shamir secret sharing, and cryptographic hashing are tools for construction. It's like a big cryptographic Home Depot...where you can get everything you need to build solid and fair structures.

(Most people don't want to hear about that. They'd prefer to go sleep on the dirt floors of the sprawling shanty-tent that Mark Zuckerburg built, hand over all their possessions to him, and watch whatever *he* feels like putting on the TV...)

I could talk about that all day. But I wanted to ask a fairly focused question about something that I don't understand as "foundational". And that is why a generalized system would embrace a distinguished currency unit vs. a distinguished protocol. In other words: can the problem currently being addressed by "ether" also be tackled in a distributed fashion?

Let's say I like to diversify my currency holdings. I have some GoogleCoin, issue some of my own HostileForkCoin, a bunch of others. And imagine that I want to use the grand unifying centralized computer network. But I don't want to need to ever be *required* to pass through Ether in an exchange to accomplish that; let's say I've found the exchange rate for Ether to be gouging. I'd like there to be an underlying trading mechanism agreed on by the system that can "barter on my behalf".

Barter is of course inefficient when dealing with physical goods, so standards of value arose. But as with other domains, the inconvenience that centralization was designed to address becomes tractable when applying computers. Just as packets can find their way through networks and bypass blocked routers, a potential impasse at the currency node of "Ether" could be routed around.

If I get the gist of the overview: then to be able to use a different basis you would have to do that on a forked Etherium network--and it would not communicate with the Ether-based one. (My guess is that is easy, right?) But then you start having lots and lots of Web-3.0-s. I'm very supportive of the idea of everyone being able to declare their value and effectively be their own currency/stock. But having the network itself splinter would seem to defeat the purpose - I don't want to have to keep alt-tabbing between incompatible Internets!

So there's my question...and I'm curious about the official answer. How might the role of Ether be replaced itself with something distributed? How might the computational overhead for doing this currency routing be accounted for, and how might it be implemented?


  • StephanTualStephanTual London, EnglandMember, Moderator Posts: 1,282 mod
    edited September 2014
    @HostileFork‌ (very cool name by the way, love the avatar :)). Ether is in ethereum because of the halting problem: http://en.wikipedia.org/wiki/Halting_problem. Ie, if there was no scarce resource to limit usage via market forces, then infinite loops could be deployed and take down the network.

    I realize there is some academic work done on attempting to resolve this issue, including some javascript implementations (to a certain extent). But it's nowhere near the level of 'being done' that we need to launch ethereum in time.

    So that leaves us with cost of consensus...

    ... which is too damn high in many instances. That's why you wouldn't upload the King Jame's bible to ethereum (cost of storage), or run raytracing algorithms (cost of CPU execution).

    Instead, you'd upload the assets to swarm (our bittorrent-like network), and reference them from the chain, invalidating them as needed by simply repointing the references elsewhere.

    As for the raytracing algos, you'd simply incentivize them by say, interfacing Ethereum to something like BOINC (http://boinc.berkeley.edu/)

    Other solutions include Vlad Zamphir's multiple interconnected PoS chains, or Vitalik's hypercube. This is a very interesting new field of research which I'm following closely but in terms of implementation might wait for v.2.0 of ethereum.
  • HostileForkHostileFork Member Posts: 6
    Hello Stephan, glad you like the avatar/name. :-)

    Because I just found out about Ethereum yesterday, I am very new to the concept. Which raises a lot of questions that I'd like to ask. But I will try to keep this particular thread on the topic I mention. I hope it is not a problem that I am inquiring about your project while my understanding of BitCoin is somewhat superficial. (I'm a fairly quick study.)
    Ether is in ethereum because of the halting problem. Ie, if there was no scarce resource to limit usage via market forces, then infinite loops could be deployed and take down the network.
    This statement puzzles me, because of my "everyone keeps a copy of the ledger in BitCoin understanding". So I believed this implied that every Ethereum network node would be running all the contracts.

    It makes me wonder how if the contract language *wasn't* Turing-complete, the system wouldn't be overloaded. Why does it matter if it's Turing-complete or not? Just because something is *theoretically* able to be analyzed to determine if it halts or not does not say anything about the cost of doing the halting analysis--that won't be free either.

    (Note: Skimming the whitepaper I see that BitCoin is doing "lite nodes" and such now. But Ethereum currently is not implementing those it says...so all contracts are run.)
    if there was no scarce resource to limit usage via market forces, then infinite loops could be deployed and take down the network.
    I asked my question from a "point of principle / point of interface" and not a "point of implementation". (And I asked it before reading the whitepaper, which I have now, and grasp what the idea is a bit better.) Still...this topic I wanted to ask was mainly about the vision of the future.

    I'm a huge fan of formal contracts and imagined scenarios here. In daily life I see not just inefficiencies but misunderstandings when people don't think in terms of contracts. If someone wants to borrow my car, I don't just go "sure!" and give them the keys--even if I think they're a nice person--because there are various things we know happen with cars (accidents, etc.) A discussion needs to happen about the worst-case scenarios before any borrowing is made. If I believed in the institution of marriage, I'd use something like your marriage contract example.

    Turnkey contracts that are mechanically enforced are a great idea...and it's always neat when you keep it as honest as possible using cryptogeekery and networks, whose resilience to attack scales with the size of the network. (Safety in numbers--in both meanings of the word.) No lawyers or courts needed, just an ability to program--or a trusted source for the program you're using (which is how many real estate contracts are done with just ticking checkboxes to balance an offer between a buyer and seller). Nice.

    But the psychological blocking point for me was the "land grab" nature of the genesis block on the Ethereum home page. Here was something that started and ended before I'd ever heard of it, and some ambitious claims about being a future basis. Congratulations on your 31591 BTC...but that *doesn't* sound decentralized. It sounds like if it's successful it would lead to a world of Etherillionaires and then a bunch of poor lowly miners after that...

    So my "better living through technology" question was about how Ethereum sees the the project's role for those who like the idea, but want to go outside of Ether. Is it simply make your own genesis block and network, and try to convince people to join you (as with the alternate BitCoins)? How would contracts communicate between Ethereum networks? Could I ever make an automated trade with someone whose contract was running on the Ether-based Ethereum without at some point needing to convert our favored currencies into Ether?

    To repeat: my question is not about there needing to be a cost. "Everything you do has a cost, and if there is a cost there has to be a price." It's the question of how to prevent a specific cryptocurrency from recreating the problems of fiat money... on a contract executing network you foresee being used for large applications.
  • HostileForkHostileFork Member Posts: 6
    edited September 2014
    Why does it matter if it's Turing-complete or not? Just because something is *theoretically* able to be analyzed to determine if it halts or not does not say anything about the cost of doing the halting analysis--that won't be free either.

    ^-- Oops. I mis-spoke. I meant to say "there can be a cost of measuring the run time of a program in a non-Turing complete language".

    (I suppose you could build that into the transaction cost if the time to do it is bounded somehow by properties of the program.)
  • HostileForkHostileFork Member Posts: 6
    I will answer my own question, because I went and read the whitepaper to what all this was about. It confused me at first, because it seemed pitched as a decentralized computation engine that is powered by some exchange of a cryptocurrency. Just reading the pitch my question was "Why pick just one currency? Is that a foundational thing?"

    The answer in Ethereum's case is "yes". It isn't a distributed computational engine that you pay for work in with a cryptocurrency. It is strictly implemented as a BitCoin variation where you are stowing code and state in the "margins" of the first-to-file ledger. Then you're asking every node on the network to double-check the code that runs and maintain the state in those margins.

    (Had I heard of NameCoin/etc. prior to seeing this then I would have understood what the deal was more quickly. I'm still 99% certain this has nothing to do with the Halting problem, and I opened the topic as a second post in the protocol area.)

    It's an interesting idea. I don't know if it's $18 million dollars interesting. But if it's contributing to the state of open-source cryptography development then it's fine by me. Good luck.

    Yet on a personal note, I'll just say that the kind of "freedom" problems I'm interested in aren't being solved by this particular flavor of "decentralization".

    To give an example: let's compare NameCoin to the existing DNS mafia. It helps in a couple of ways; you don't have to worry about trusting any given domain registrar to be on the level about who-filed-what-name-in-what-order. A public record of all the data you can monitor and scan on your own can beat "domain tasting". The market of buyers and sellers can perhaps become a little fairER than it is, but I don't know if I'd go so far as to call it a tool for fairness. Maybe just the fairest and most transparent version of the loaded-dice monolith we've seen so far.

    I'm wondering when a truly decentralized solution will come along. One in which I can make contacts and establish trust with them...and then those connections build up an emergent notion of trusted reality. So let's say Joe BitcoinAire buys "goole.com" and claims it's some kind of site for the city of Goole. But then tries to make it look like a search engine and phishes for your information based on thinking it's Google... you and your trust network can ferret him out and turn his "goole.com" to nothing through the power of a distributed and balanced cryptonetwork.

    (Look it up. Can we take it off the net? Apparently not. Now you see my problem with first-to-file...with distributed and transparent "ledger" but never depending on *legitimacy*.)

    Anyway, I've been pondering this for a while. I see it's not an aspect of the problem Ethereum is attacking, and it really is an altcoin with a twist under the classic economic structures. The thing that maybe I like about BitCoin vs. NameCoin is precisely that BitCoin *has no meaning* and that is a given; its meaninglessness is its legitimacy because it claims nothing but how many bitcoins are sent and in what order. It's up to you to layer meaning on that.

    But the moment you are trying to store information in this way it loses its democratic nature. You're saying not just "this many coins here" but "this person owns the word 'pizza' and web browsers should honor it". At that point, if any one network "wins" and begins to guide people's notions of truth or reality...in the way that (say) the DNS does...I think it becomes coercive.

    I'm not a philosophy professor or anything so bear with me. I'm just trying to explain how I personally view these technologies and their potential for shaping the future. Over the years I've gotten a bit of a stab in the heart by seeing things like DRM locking music files to devices so that the liberating technology I bought into is making things *worse* than it was when we had books or records we could loan people... and it makes me want to hang around in the town square and go "are we all on the same page here, about how technology can improve the future?"

    Hence I tend to have something to say about "genesis sales" as they pertain to laying foundations for a future made better and fairer through technology.
  • PeterBBPeterBB Member Posts: 4
    @HostileFork‌: I think you're taking the analogy between NameCoin and Ethereum a little too literally. The beautiful thing about Ethereum is that something like a DNS registry will take about 10 lines of code. So if you don't like any of the Ethereum name registries that exist, you can just build your own that works the way you think is right, and try to get people to use your system instead.

    Personally, I'd love to see your scheme for a "personalized" web-of-trust name system. :)
  • JasperJasper Eindhoven, the NetherlandsMember Posts: 514 ✭✭✭
    The mining per year is not a tiny fraction, so the genesis sale wont dominate, though the people involved there could do good business. In principle we dont know beforehand if there will be a disproportionate distribute of ethers, it matters a lot on choices contract developers and users make. I think it is too much to ask to both want a system open to further development of contracts by anyone and those economic guarantees.

    Paying tokens for transactions is about managing how much the system is used, making it more expensive if overuse hurts the ability to run full nodes. That is basically needed anyway, even without Turing completeness. U can separate the issue further. However, for Turing complete computation, having a fee for each instruction ensures the actual cost of the program is what matters. Used to be that contracts paid for their own execution, but later gas was introduced, and the transactor pays.(bunch of advantages)

    I think there will be sub-name registries, so if you got some name, you can define names under there. However, due to the nature of links being human-readable strings that you just be able to enter without context, there is the issue of the 'top name registry'. The rules how to arrange that top name registry are pretty under-investigated, as is how a vote might change rules later, and who gets vote-power there.

    Btw, maybe some kind of word-distance could be used against similar words. Probably challenge-based. I.e. the contract itself doesnt check if a name is within the distance, but 'dumbly' registers names, however names can be revoked by anyone pointing out a word that is too close, and the contract then just checks the one challenged. Would mean that people would have to check it isnt word-distance-close to something else, the program making the transaction should check that. It would save a lot of gas to do it challenge-based.
Sign In or Register to comment.