What is Solidity?
What is a smart contract and why are smart contracts interesting?
Smart contracts are build with blockchain technology. The first thing people associate with blockchain are crypto currencies, the hype that surrounded it left many people with a negative view on crypto currencies. However, the underlying blockchain technologies have great potential. Blockchain allows the storage of data in a way that makes the data accessible for many people but without the need for a middle man to ensure security. This feature is of great use in the construction of smart contracts.
A smart contract is “a set of programmable instructions, intended to automatically facilitate, enforce and verify the execution of an agreement”. The contracts are inspired by regular legal contracts between multiple parties. The difference with conventional contracts is that they are enforced automatically in a decentralized manner, as opposed to being enforced manually by a central authority. As such, as long as all the inputs and outputs of a contract are digital, a smart contract is fully automated and self-regulated.
The contracts can be used to record agreements and ensure the execution of such an agreement. One can imagine that this will be useful in many industries, ranging from mortgages to voting.
Why is Solidity interesting and what does Solidity offer?
Today, there are four major platforms for smart contracts, namely:
When thinking about whether Solidity is the right choice for you, you may ask yourself two questions. First, why Ethereum? Second, why Solidity?
Why choose Ethereum?
Ethereum was released in 2013 by Russian-Canadian programmer Vitalik Buterin. He envisioned it as a decentralized global supercomputer, allowing developers to pay “gas” to run their decentralized applications on it, known as dApps. It was incorporated as Ethereum Switzerland GmbH in 2014 and raised $18.4 million during its ICO.
- Ethereum plans to move away from Proof-of-work (POW) into Proof-of-stake (POS)
Proof of work, also known as Nakamoto Consensus, is the same consensus protocol used by Bitcoin. This comes with the same problems that Bitcoin has, notably considerable operating costs. Notably, the Bitcoin network is due to this very reason prone to reduced scalability, throughput and large power costs (in 2018, it used as much power as the entire country of Hungary!).
By replacing it with proof of stake, Ethereum estimates a reduction of over 99% in energy consumption.
Why choose Solidity?
Solidity is one of the first programming languages with support to compile to bytecode that can be run on the Ethereum Virtual Machine. As a result, it has more tools and has grown in popularity compared to other existing languages for the same purpose. The strong developer community is a good reason to choose for Solidity. There is a huge amount of online and offline documentation and help available for anyone who wishes to explore, learn and contribute to Solidity - making it ideal for a project such as ours.
Meet the Team
We are a diverse team with multiple nationalities, all following a master at the TU Delft. Our interest in blockchain technologies and smart contracts unites us into a solid (pun intended) team.
Our team members:
David is a CS undergrad on exchange at TU Delft, coming from EPFL. He loves learning while keeping as broad a horizon as possible. He is excited about the novel applications of blockchain technology besides cryptocurrency and the opportunities it offers to build a better world. You can find more info about him on his personal website.
Max is an Embedded Systems master student with a background in Computer Science. He wants to broaden his view and knowledge of the world, and hasn’t worked with blockchain yet. This project would be a great chance to make a first step into blockchain technology, considering Etherium is a very novel and new way of using the blockchain.
Luc is a Computer Science master student interested in sequential prediction. He likes to be in touch with new trends and believes that blockchain and smart contracts have a future in multiple industries.
This is the fourth and the last essay on the Solidity project. It covers an analysis on the variability of the Solidity compiler. Like most compilers, Solidity allows a lot of command line arguments that alter the expected input and output files and the expected command line arguments themselves. Because in the first place we are talking about a compiler, and in the second place security plays a crucial role in the project, it is rather important that the process and the output is trustworthy in all possible variances. This is why we decided that a variability analysis would be an interesting final vision on the Solidity project.