Blog

Home / Blog

Learn the basics of Ethereum smart contracts

Billy Yann
Data Scientist
Deep learning and machine learning specialist, well-versed with experience in Cloud infrastructure, Block-chain technologies, and Big Data solutions.
August 12, 2022


Ethereum is a decentralized platform that runs smart contracts via an open source protocol. Smart contracts allow developers to write rules that automatically execute when certain events occur. When you get right down to it, the concept behind Ethereum is quite simple; it allows people throughout the world to come together and use blockchain software to make transactions. To put into perspective just how revolutionary this idea is, consider the following examples of how traditional financial systems operate. You go to your bank, you fill out a loan agreement, you wait a week for approval, once approved you deposit money into your account, and then pay back the loan plus interest. Using Ethereum, the process goes something like this; First, someone wants to borrow money from you. They digitally sign a message showing they promise to repay you later. Once you agree, the money is transferred between you both immediately. The person who lent the money gets paid before they even see you again. And no waiting weeks for approval. Because the funds are transferred instantly, you can watch the transaction happen live on the blockchain. In this article, we will explore what Ethereum, blockchain are and how Ethereum smart contracts work, and the different types that exist today.

Knowing Ethereum

Ethereum, founded by Vitalik Buterin and developed by its community, is a public, open-source software project featuring a distributed timestamp server, verification methods, and cryptocurrency wallet implementations. It supports Turing complete languages including Solidity, Serpent, and LLL. Like Bitcoin, Ethereum aims to provide a secure decentralized alternative to existing financial institutions. Unlike Bitcoin, Ethereum has no pre-defined limit on block size. As a result, processing times increase exponentially concerning usage, resulting in transactions being validated on average 10 minutes later than Bitcoin.

Blockchain

A blockchain is an electronic ledger of past events, secured by cryptographic hashing power. These events can include the transfer of money, ownership of assets, trades, contracts, invoices, votes, and any kind of record keeping.

Smart contracts

Smart contracts are becoming increasingly popular due to their ability to automate tasks without human intervention. Even though they are often seen as being very secure, some experts believe that they could pose a threat to national security if they are hacked or misused.

Smart contracts allow people or companies to create self-executing agreements via code. In other words, You can think of them as computer programs running on the Blockchain that automatically execute once certain conditions are met. They allow the transfer of ownership from one party to another without the need for a middleman. Once they have been written, the program cannot be altered. Instead, the outcome is determined by the actions of the participants. The idea behind smart contracts is to create decentralized financial tools that can improve trust and reduce costs. They can be thought of as computerized agreements where the terms of the transaction are embedded into the program and executed automatically upon completion.

They promise to unlock many new use cases thanks to their incredibly strong security model and programmability features. 

Need of Smart Contracts

Smart contracting helps solve problems associated with traditional financial systems. Before the invention of the internet, online shopping was nearly impossible. Because of this, small businesses found themselves at a disadvantage over larger companies who had the time and manpower to build websites and handle customer orders. Nowadays, with ecommerce becoming increasingly popular, many people are now able to buy products without ever having to touch cash.

Ethereum Smart Contracts types

1. Simple contracts

In simple contracts, you do not have to worry about state changes in your smart contract. If you update your code, then you just send a transaction again. There is no need for any additional fee for updating the contract. However, this type of contract does not provide any security or encryption. So it is recommended only if you are a beginner to blockchain technology.

2. Stateful and stateless contracts

A stateless contract does not store its data between interactions. All data is stored externally in a shared network ledger. Instead, stateful contracts store information about previous states and interactions. These contracts hold knowledge about past events and allow them to execute different actions based on this history.

3. Encrypted contracts

Encrypted contracts have two layers of security, the first layer is the code and the second layer is the cryptography. When you encrypt data stored inside your smart contract using a cryptographic hash function, even hackers cannot access the data. Therefore, encrypted contracts provide the highest level of security compared to the others.

How does this Ethereum smart contract work?

A smart contract represents a program that uses cryptography to digitally facilitate the performance of an agreement. All information about the contract is recorded on the blockchain, ensuring that nobody can change the terms after execution. Smart contracts are run on thousands of computers around the world and are executed off chain. When the contract is ready, data representing the terms of the contract is sent from both parties to the blockchain. At this point, the blockchain executes the code contained within the contract. Once the execution is finished, the results of the contract are returned to the participants.

How to create a simple smart contract

To use these types of technologies, we will need to learn how to program using Solidity. Programming languages have been around since the early 1960s, only recently has programming language become accessible to non-programmers. 

What is Solidity?

Solidity was created by the Ethereum project team to enable anyone to easily develop their blockchain applications, known as *decentralized autonomous organizations* (DAOs). Solidity enables developers to add business logic to transactions and automate trustless exchange.

Why Solidity

For the past decade, web developers who wanted to build decentralized apps were forced to choose between two options: either use existing centralized services or implement their solution. However, both approaches have serious drawbacks.

Using existing centralized services means trusting the service providers and giving up control over data. Implementing a custom solution requires technical expertise to construct and maintain. Also, if a company decides to stop offering its service, customers lose access to their data. On the contrary, decentralization provides strong guarantees about security, privacy, censorship resistance, and ownership over our data. In addition, decentralization can provide features that existing solutions cannot offer.

Therefore, the Ethereum Project developed a software toolkit that includes Solidity, a high-level object-oriented programming language to write smart contracts. Smart contracts allow users to send and receive ether (the unit of account of the Ethereum system), set conditions upon those transfers, and execute a transaction accordingly. Digitally signing a smart contract allows the sender and recipient agree on terms to be verified and enforced automatically by the underlying peer-to-peer network. Once the terms of an agreement have been met, the smart contract automatically executes, and the funds transfer.

Benefits of Ethereum smart contracts

1. Automated execution of contracts is one of the major benefits they offer over regular contracts. No human needs to confirm the execution of the contract. It happens automatically and without any kind of intermediaries involved. 

2. One of the biggest problems with traditional contracts was the unpredictability of how they would perform under various scenarios. Smart contracts solve this problem by having a set of rules built into the program. Given the exact same inputs, the program will always come up with the exact same outputs. This removes the chance of different interpretations or actions producing different results.

3. Smart contracts are also helpful for auditing purposes and provide additional security, transparency, and control over who gets access to your assets. They also allow for a transparent audit trail and are immutable, meaning they cannot be modified after creation.

4. Smart contracts can also help us keep control of personal data. Because the blockchain is a public record, this can safeguard ourselves against unwanted intrusion. And since the blockchain is decentralized, nobody can intercept or access information without permission.

Conclusion

Although the concept of smart contracts is not new, their recent introduction to the blockchain has sparked a substantial development in the industry. The potential advantages that come with using smart contracts are enormous, and businesses are starting to realize the potential benefits. However, first, you need to learn how to use a smart contract. If you are not familiar with Solidity, then you'll want to learn more about it now and begin your journey into the world of Ethereum smart contracts and blockchain. Or, if you're ready to dive right into coding and building simple Ethereum contracts, then you should use some tutorials to create your first simple contract.