Why Ethereum?
(Post originally written by Paweł Bylica, Ethereum Core Dev)
The Golem Project is about creating a technology enabling users to trade idle time of their computers. However, this requires a mean for requestors (those seeking more computing power) to transfer remuneration to providers (those providing spare computing power) in exchange for their services. We have chosen Ethereum to do the job.
Ethereum project is more than smart contracts
Ethereum is all about a new cryptocurrency, smart contracts, the world computer, right? That is just the first piece of the puzzle. It is probably the biggest, the most famous and the most advanced system in comparison to anything else out there. But people behind the Ethereum project have also designed and created other peer-to-peer solutions and technologies:
- Ethereum is powered by the Cryptographic Network & Transport Protocol RLPx, also known as ÐΞVp2p after the names of its implementing software libraries. It is just one of the RLPx subprotocols. What about creating a P2P protocol for your application? Why not base it on RLPx/ÐΞVp2p?
- Whisper is a communications protocol designed for internal use by decentralized applications. It allows peers to exchange and broadcast encrypted messages within the same network. Ethereum does not interfere with the blockchain and messages are delivered free of charge.
- Swarm is a distributed storage platform and a content distribution service — yet another network protocol based on RLPx. This is a platform where applications can store their resources. We think about using such a platform for Golem to distribute resources needed for computing tasks.
Moreover, the Ethereum components are available in many programming languages, including Go, C++, Rust, Python, JavaScript. This is quite impressive considering the complexity of the project and the fact that it has been launched today. This is also great news for startup projects that aim at preparing prototypes in short time cycles.
So, Ethereum is not only a breakthrough for the blockchain technology. It also creates a great environment and vibrant community for us, who are very much inside the new P2P Internet. It is a great source of software components, protocol designs or inspirations. So why do we need Ethereum in the Golem Project?
Highly extensible solution for payments
The Golem Network requires a reliable payment system to automatically transfer value between network peers. At the end, a peer should get a reward for computing done on behalf of others. The Golem Network is a peer-to-peer network, so the payment system must be decentralized as well. The blockchain-based technologies are natural candidates. So why is it Ethereum that we chose among other solutions?
The value of a single payment processed by the Golem Network is very low. We call them nanopayments. However, the problem with nanopayments is that transaction fees have to be even smaller. Ethereum allowed us to design a payment scheme where smart contracts act as an intermediary: we optimized the costs of the payment system by using the Bank of Deposit smart contract as the central payment proxy. This solution aggregates payments and sends them as a single Ethereum transfer to save on fees. It is nothing new, nor very “smart”; it is usually referred to as transaction batching. E.g. the cost of 10 payments processed in a single transaction is half of 10 payments processed in 10 transactions. And the lower the fee, the more payments you are able to aggregate.
Transaction batching makes Golem feasible for our initial use cases at the present costs of gas. But this is just the beginning: we decreased the transaction cost even further by introducing a probabilistic payment scheme. See A Probabilistic Nanopayment Scheme for Golem for more details.
Apart from lower transaction costs, the central contract, which proxies all payments, opens up a number of opportunities, like imposing (voluntary or obligatory) fees on transactions within the Golem Network; or introducing escrow-like solutions for improved security; or compensation for the use of third-party software in the software-as-a-service model, where the Golem Network serves as a platform-as-a-service. Especially the latter opens up a broad spectrum of business applications that can be used in the Golem Network. So it does not only compete with cloud providers, but can serve as a distribution channel for software developers — both in a proprietary and an open source model.
So, are you frustrated that you can only buy DAO tokens with your Ethers? Worry no more, soon you will be able to buy much more using Golem!