Understand ‘Solidity’ in 3 minutes

Solidity, the leading smart contract language

Decentralized application (DApp)‘ means an application that runs on a blockchain or other distributed ledger system and operates autonomously based on smart contracts. Although various programming languages can be used to develop smart contracts, ‘Solidity’ is the most representative language. This article is written to help developers who are unfamiliar with smart contract programming languages understand Solidity in a short time.

The basic concepts of Solidity

Solidity is an object-oriented high-level language for implementing smart contracts. It is mainly used to implement business logic on Ethereum-based blockchains. Solidity corresponds to curly-bracket languages and is known to have been affected by C++, Python, and JavaScript. In Solidity, variable types are statically specified, and inheritance and libraries can be used.

Solidity Execution Environment

Solidity can be executed on a runtime environment called ‘Ethereum Virtual Machine (EVM)’. In a static blockchain, all network participants store and manage the same data. Extending this concept, smart contracts can implement business logic in such a way that all participants execute the same programming code in the same runtime environment. In the case of Ethereum, EVM was introduced so that each network node could equally process smart contract programs.

Use Cases of Solidity

The Ethereum blockchain has the ideal of becoming a huge ‘world computer’. To realize this ideal, Solidity is designed to implement Turing completeness. Turing completeness, simply put, means the ability of a computer to perform any kind of operation, provided it has enough memory and time. Bitcoin can process simple logic with a scripting language, but it does not satisfy Turing completeness because the use of loops and conditional statements is limited. On the other hand, Ethereum has the potential to process any business logic because it satisfies Turing completeness. However, the application scope is still limited due to processing performance and security issues.

Voting, crowdfunding, and blind auctions are examples of Solidity-based smart contract applications. These cases have in common that they require trust between participants and that the conditions and execution results can be clearly defined. In the existing IT system environment, trusted third parties are in charge of these tasks. However, blockchain smart contracts can be considered as an alternative when central authorities can no longer be trusted due to corruption or moral hazard, or when costs and time are excessively high. Meanwhile, more technically, Solidity smart contracts have been often used to implement a multi-signature wallet on a blockchain.

Conclusion

So far, we have briefly looked at the basic concepts and use cases of Solidity. In order to understand Solidity more deeply, it is necessary to learn about the blockchain network structure and cryptocurrency mechanism. When the Ethereum smart contract was first introduced to the world, DApp development was carried out mainly on specific services such as gambling. However, more recently, DApps that are closer to our real lives have been released. In order to study how DApps work, it is essential to understand smart contracts. We hope that you will be able to improve your understanding of smart contracts through Solidity, a representative smart contract language.

(* Related article: Reasons for applying blockchain tech)