Where exactly does ethereum fit?


I'm interested in developing a framework, which would allow anyone, with a basic programming knowledge, to develop p2p applications. It would need to handle lookups in the local network, as well as providing a reliable way to find other nodes across the internet. Other features supported should include NAT traversal, to establish connections between different nodes inside private networks and a simple relay mechanism which could be set up on a small dedicated server, which don't cost too much anymore. I also thought about using PGP to handle encryption and identification.

Now looking at ethereum, I'm not sure how this would fit in my concept. I'm not saying that it has to fit, I'm just trying to understand what exactly Ethereum can do, or is supposed to be able to do. As far as I've understood it so far, I could use it instead of PGP and it would provide also further functionality, like transactions and distribution of information without anyone being able to alter it.

Is this what Ethereum is designed for, or can you clarify for me the actual idea?
Do I want to use Ethereum instead of PGP if I want to use it only for encryption and identification? Or do I want to allow in my framework both systems to coexist? Would Ethereum be used by people which are developing applications with my framework to have a reliable communication on top of TCP and HTTP (or what other underlying protocols I would choose to use), and I wouldn't need to consider it in my framework at all? Also, how is Ethereum licenced?

Thank you for your time and answers.


  • mlacortemlacorte Los AngelesMember Posts: 27 ✭✭
    I'm not quite sure what you're looking to solve with your framework, but I can still answer some of your Ethereum questions.

    What Ethereum solves is the problem of distributed consensus. The same way it's hard to get 10 people to decide on what restaurant they want to eat at, it's hard to get a network of potentially millions of nodes to decide on something. Throw some malicious actors into the system, and you can see why it's hard to do distributed consensus in a way that's fast, reliable, and secure.

    This was the big breakthrough that Bitcoin made. It decided that only one node was actually going to make the decision, and that this node was going to be randomly chosen based on the proof of work. This way, malicious actors couldn't just take over the network by making a whole bunch of nodes.

    What Ethereum does is extend the scope of what Bitcoin managed to accomplish as a currency. Instead of deciding only how much money people have, and in which order payments are made, Ethereum allows for arbitrary[1] scripts to run as part of a transaction. This gives developers an easy way to build distributed applications that need to rely on some form of consensus.

    For example, what if you wanted to build a system that requires a unique username when you sign, but allows the re-use of usernames if they haven't been used in over a year? Normally this would be really hard, because nodes would be continuously popping in and out of the network, and there's no great way of knowing whether or not they are lying about what content they are storing. With Ethereum, this is simple. Just store the usernames and login times in the blockchain. Not only do you not have to worry about synchronization logic, but your data is guaranteed not to be lost. This is only a simple example, but it shows you the flexibility of the system, and how it goes far beyond just transferring money from one account to another.

    [1] For security reasons, there are some limitations. For example, you can't make calls over the internet. If you want to gather outside data, it has to be accessed from within the Ethereum blockchain or as part of the transaction.
Sign In or Register to comment.