In the previous chapter we discussed what is Ethereum, what are the Ethereum’s accounts, how the transactions are made and how is Ethereum mined. You can find out more about it HERE.
Now let’s take a look on how Ethereum can be actually applied.
What does the Ethereum Team say
“In general, there are three types of applications on top of Ethereum.
The first category is financial applications, providing users with more powerful ways of managing and entering into contracts using their money. This includes sub-currencies, financial derivatives, hedging contracts, savings wallets, wills, and ultimately even some classes of full-scale employment contracts.
The second category is semi-financial applications, where money is involved but there is also a heavy non-monetary side to what is being done; a perfect example is self-enforcing bounties for solutions to computational problems.
Finally, there are applications such as online voting and decentralized governance that are not financial at all.” – from the Ethereum Whitepaper
Token Systems
Token systems on the blockchain can represent various things, from assets like USD or gold to company stocks or even just points for incentivization.
They are easy to implement in Ethereum, as they can be thought of as a database with one operation: subtract X units from A and give X units to B, with the proviso that A had at least X units before the transaction and the transaction is approved by A.
The code for implementing a token system in Ethereum looks similar to a literal implementation of the “banking system” state transition function. Some extra lines of code are needed for distributing the currency units in the first place, providing for other edge cases, and adding a function to let other contracts query for an address’s balance.
Ethereum-based token systems can potentially allow users to pay transaction fees directly in that currency, which is a feature that Bitcoin-based meta-currencies lack. The way this works is that the contract would refund the ether used to pay fees to the sender by collecting the internal currency units that it takes in fees and reselling them in a constant running auction. Users would need to “activate” their accounts with ether, but once the ether is there it would be reusable because the contract would refund it each time.
Financial derivatives and Stable-Value Currencies
Financial derivatives are contracts that are based on the price of an underlying asset, such as a commodity, currency, or stock. Derivatives are used to hedge against risks or to speculate on the future value of the underlying asset. Derivatives can take many forms, such as options, futures, and swaps.
In the context of Ethereum, financial derivatives can be implemented as “smart contracts”.
One of the main challenges in implementing financial contracts on the blockchain is the need for a reliable source of market data. In order to create a smart contract that hedges against the volatility of ether (or another cryptocurrency) with respect to the US dollar, for example, the contract needs to know what the value of ETH/USD is.
To solve this problem, a “data feed” contract can be used. The data feed contract is maintained by a specific party, such as NASDAQ, and provides an interface that allows other contracts to send a message to that contract and get back a response that provides the price.
Once the data feed contract is in place, a hedging contract can be created. The hedging contract would require both parties to input a certain amount of ether, and then record the USD value of the ether based on the current ETH/USD price obtained from the data feed contract. After a set period of time, the contract would allow one party to send the USD value of the ether to themselves, and the rest to the other party.
Financial derivatives have significant potential in the realm of crypto-commerce. Cryptocurrencies are often seen as volatile, and many users and merchants may not wish to risk losing a significant amount of the value of their funds in a single day. By creating a hedging contract, the risk can be reduced and the convenience of dealing with cryptographic assets can be maintained.
Financial derivatives can also provide an alternative to issuer-backed assets. Issuer-backed assets require the issuer to provide one unit of the underlying asset to anyone who sends back one unit of the crypto-asset. However, issuers may not always be trustworthy, and the banking infrastructure may not be strong enough to support such services. Decentralized markets of speculators betting on the future value of an asset can play the role of the issuer, with the hedging contract holding the funds in escrow. This approach is not fully decentralized, as a trusted source is still needed to provide the price ticker, but it does reduce infrastructure requirements and potential for fraud.
Identity and Reputation Systems
The earliest alternative cryptocurrency, Namecoin, attempted to create a name registration system using a Bitcoin-like blockchain, where users can register their names in a public database alongside other data. This is useful for mapping domain names to IP addresses, email authentication, and creating advanced reputation systems.
Ethereum provides a basic contract for a Namecoin-like name registration system which is essentially a database inside the Ethereum network that can be added to, but not modified or removed from. The registration is permanent, and anyone can register a name with some value.
A more advanced name registration contract would allow other contracts to query it, as well as a mechanism for the “owner” to change data or transfer ownership. Reputation and web-of-trust functionality can also be added on top.
Decentralized File Storage
The idea of decentralized file storage is to create a network of individuals who can rent out their hard drive space to others in exchange for small amounts of money. This will create a more efficient and cost-effective system for users who need to store large amounts of data. An Ethereum contract called the “decentralized Dropbox contract” is used to facilitate this process.
To begin, the user splits their data into blocks and encrypts each block for privacy. These blocks are then used to build a Merkle tree. A contract is created that is set up to pick a random index in the Merkle tree every N blocks. This index is used to award X ether to the first entity that provides a transaction with proof of ownership of the block at that particular index in the tree.
When a user wants to retrieve their file, they can use a micropayment channel protocol to do so. This protocol allows the user to pay a small fee per 32 kilobytes of data downloaded, which is more cost-effective than paying a monthly fee for large amounts of data storage. The user can also wait until the end of the download to publish the transaction, replacing it with a more lucrative one with the same nonce after every 32 kilobytes.
One of the key features of this system is the use of secret sharing to reduce the risk of data loss. The data is split into many pieces, and each piece is stored on a different node. The contracts can then be used to verify that each piece is still in some node’s possession. As long as the contracts continue to pay out money, there is cryptographic proof that someone out there is still storing the file.
Decentralized Autonomous Organizations
Decentralized Autonomous Organizations (DAOs) are virtual entities that can be governed by a set of rules coded into a smart contract on a blockchain network. A DAO can have members who collectively decide on how to allocate funds and modify its code. The general concept of a DAO is to replicate the legal trappings of a traditional organization but using only cryptographic blockchain technology for enforcement.
To code a DAO, the simplest design is a self-modifying piece of code that changes if two thirds of members agree on a change. Although code is theoretically immutable, one can easily get around this by having chunks of the code in separate contracts and storing the address of which contracts to call in modifiable storage.
The contract would then maintain a record of all open storage changes, along with a list of who voted for them. It would also have a list of all members. When any storage change gets two thirds of members voting for it, a finalizing transaction could execute the change. A more sophisticated skeleton would also have built-in voting ability for features like sending a transaction, adding or removing members, and even Liquid Democracy-style vote delegation.
Another model for a DAO is a decentralized corporation, where any account can have zero or more shares, and two thirds of the shares are required to make a decision. A complete skeleton would involve asset management functionality, the ability to make an offer to buy or sell shares, and the ability to accept offers (preferably with an order-matching mechanism inside the contract). Delegation would also exist Liquid Democracy-style, generalizing the concept of a “board of directors”.
There has been much talk around the “capitalist” model of a “decentralized autonomous corporation” (DAC) with dividend-receiving shareholders and tradable shares. An alternative model, perhaps described as a “decentralized autonomous community”, would have all members have an equal share in decision making and require 67% of existing members to agree to add or remove a member. The requirement that one person can only have one membership would then need to be enforced collectively by the group.
In summary, a DAO is a virtual entity that can be governed by a set of rules coded into a smart contract. It can be designed in different ways, such as a self-modifying piece of code or a decentralized corporation, and can have various voting and delegation mechanisms for decision-making.
Further Applications
Here are some examples of further applications of Ethereum:
- Savings wallets: Alice can put her funds into a contract with Bob, a bank, and set withdrawal limits based on her preferences. She can also give herself the ability to shut off Bob’s withdrawal ability if necessary, and both Alice and Bob together can withdraw anything.
- Crop insurance: Farmers can purchase a derivative that pays out inversely based on weather data, such as precipitation. This can be expanded to natural disaster insurance as well.
- Decentralized data feed: A protocol called “SchellingCoin” allows for a decentralized data feed, where N parties put in the value of a given datum and everyone between the 25th and 75th percentile receives a token as a reward. This can be used for financial contracts for difference, such as the ETH/USD price or the temperature in Berlin.
- Smart multisignature escrow: Ethereum allows for more granularity in multisignature transactions, such as allowing four out of five parties to spend everything, three out of five to spend up to 10% per day, and two out of five to spend up to 0.5% per day.
- Cloud computing: Ethereum can be used to create a verifiable computing environment, allowing users to ask others to carry out computations and ask for proofs that computations at certain checkpoints were done correctly. This can be used to create a cloud computing market where any user can participate with their device.
- Peer-to-peer gambling: Gambling protocols, such as Cyberdice, can be implemented on the Ethereum blockchain, with near-zero fees and no ability to cheat.
- Prediction markets: With the help of an oracle contract or SchellingCoin, prediction markets can be implemented on Ethereum, which may prove to be the first mainstream application of futarchy as a governance protocol for decentralized organizations.
- On-chain decentralized marketplaces: Using the identity and reputation system as a base, decentralized marketplaces can be created on the Ethereum blockchain.