Browse Definitions :
Definition

Solidity

Solidity is a programming language used for developing smart contracts on Ethereum and other blockchain platforms, such as Monax and its Hyperledger Burrow blockchain. British software developer Gavin Wood proposed Solidity in 2014 and developed the high-level programming language along with other Ethereum aficionados, including Christian Reitwiessner, Alex Beregszaszi, Liana Husikyan and Yoichi Hirai.

Solidity is compiled to bytecode (or portable code) that is executable on the Ethereum Virtual Machine (EVM), the runtime environment for smart contracts in Ethereum. Although other languages, including Serpent, Viper and Mutan, can also be compiled into EVM machine-level bytecode to run on Ethereum nodes for payment, Solidity is the most widely adopted.

Solidity was created to be easily learned because it employs many concepts – such as variables, functions, classes, arithmetic operations and string manipulation – that appear in popular modern programming languages. An intentionally pared-down, loosely-typed language, Solidity draws from C, C++, C#, JavaScript, PowerShell and Python. It also adopts a syntax that similarly resembles ECMAScript (JavaScript). For example, in Java or C, a programmer would create some form of a “main” function, while Solidity uses a “contract” written in a similar manner.

Developers working with Solidity can write apps that implement self-enforcing business logic incorporated in smart contracts. A smart contract, also known as a cryptocontract, is a computer program that directly controls the transfer of digital currencies or assets between parties under specific conditions. It sets the rules and penalties related to an agreement, much like a traditional contract does, but can also enforce those obligations automatically. Smart contracts are considered a secure, easy and reliable medium that enables individuals to transact business with each other, even if they speak different languages or use different currency. Contracts also support complex member variables in hierarchical mapping and structures.

Solidity has a compiler that breaks down high-level code into simple instructions like "put data into a register," "add data from two registers," "jump back to instruction at memory point xxxxx." The programming language is statically typed (meaning variable types are declared explicitly and determined at compile time) and supports inheritance, libraries and complex user-defined types. Inheritance refers to an object or class that is based on another object or class and uses the same implementation to maintain the same behavior.

In addition, there are several integration platforms (to compile, execute and run code) that implement Solidity, including Remix, which is an easily available browser-based integrated development environment (IDE). Also supported are various type-safe functions, which means the compiler will validate types and produce an error if the wrong type is assigned to a variable.

This was last updated in October 2018

Continue Reading About Solidity

SearchCompliance

  • compliance risk

    Compliance risk is an organization's potential exposure to legal penalties, financial forfeiture and material loss, resulting ...

  • information governance

    Information governance is a holistic approach to managing corporate information by implementing processes, roles, controls and ...

  • enterprise document management (EDM)

    Enterprise document management (EDM) is a strategy for overseeing an organization's paper and electronic documents so they can be...

SearchSecurity

  • information security (infosec)

    Information security, often shortened to infosec, is the practice, policies and principles to protect data and other kinds of ...

  • denial-of-service attack

    A denial-of-service (DoS) attack is a security event that occurs when an attacker makes it impossible for legitimate users to ...

  • user authentication

    User authentication verifies the identity of a user attempting to gain access to a network or computing resource by authorizing a...

SearchHealthIT

SearchDisasterRecovery

  • risk mitigation

    Risk mitigation is a strategy to prepare for and lessen the effects of threats faced by a business.

  • call tree

    A call tree is a layered hierarchical communication model that is used to notify specific individuals of an event and coordinate ...

  • Disaster Recovery as a Service (DRaaS)

    Disaster recovery as a service (DRaaS) is the replication and hosting of physical or virtual servers by a third party to provide ...

SearchStorage

  • cloud storage

    Cloud storage is a service model in which data is transmitted and stored on remote storage systems, where it is maintained, ...

  • cloud testing

    Cloud testing is the process of using the cloud computing resources of a third-party service provider to test software ...

  • storage virtualization

    Storage virtualization is the pooling of physical storage from multiple storage devices into what appears to be a single storage ...

Close