The Future Is Smart Contracts
You have probably come across the terms cryptocurrencies and blockchain at some point in the past few years. What you might not have come across is the term smart contracts which are the key components of these loosely thrown terms. To get you you up to speed, here's the best description of what a smart contract is.
"A smart contract is a self-executing contract with the terms of the agreement directly written into lines of code. The code and the agreements contained therein exist across a distributed, decentralized blockchain network. Smart contracts permit trusted transactions and agreements to be carried out among disparate, anonymous parties without the need for a central authority, legal system, or external enforcement mechanism. They render transactions traceable, transparent, and irreversible.
Smart contracts are most commonly associated with the Ethereum blockchain, which was designed from the ground up to support smart contracts and decentralized applications. Smart contract code is executed by the Ethereum Virtual Machine (EVM) on each node participating in the network, ensuring the execution is consistent and correct across the network if the input conditions are met."
The TLDR of that is that, smart contracts are contracts that have already set conditions, that execute when these set conditions are met without the need for third party interventions. A solid example of what a smart contract would be is an agreement between a buyer and a seller where the conditions are ; the seller provides the item, the buyer sends the funds and the transaction ends when funds and the item are received on both ends. Seems simple right ? This is an example of how smart contract work autonomously.
A smart contract developer or blockchain developer is in-charge of the creation and deployment of such contracts. The occupation has been recently booming with multitudes of developers shifting focus to it citing the increased demand as well as the interesting payment terms.
领英推è
Practical examples of smart contracts that are prominent at the moment include ERC20 standard tokens, on the ethereum blockchain. These are simply tokens built on the ethereum blockchain that serve different purposes. Any one can deploy a token with the necessary skill-set and the lucrative environment serves as a key motivational factor in the space. This is a story for another day and just the beginning as I'll take you through the future of blockchain and how you can harness it and position yourself easier to reap the most.
If you found this article interesting, boring or mind opening, feel free to spread the word or even message me with questions regarding the topic personally, I don't bite. I also offer poffesional services on smart contract development so if you have a proposal feel free to reach out. The next article will focus on the types of smart contracts.
Have a good one.
"Example smart contract below to create your own ERC20token."
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.10;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
/**
* @title Mintable Token
* @author Breakthrough Labs Inc.
* @notice Token, ERC20, Mintable
* @custom:version 1.0.7
* @custom:address 5
* @custom:default-precision 18
* @custom:simple-description Token that allows the owner to mint as many tokens as desired.
* @dev ERC20 token with the following features:
*
* - Premint your initial supply.
* - Mint as many tokens as you want with no cap.
* - Only the contract owner can mint new tokens.
*
*/
contract MintableToken is ERC20, Ownable {
/**
* @param name Token Name
* @param symbol Token Symbol
* @param initialSupply Initial Supply
*/
constructor(
string memory name,
string memory symbol,
uint256 initialSupply
) payable ERC20(name, symbol) {
_mint(msg.sender, initialSupply);
}
/**
* @dev Creates `amount` tokens and assigns them to `to`, increasing
* the total supply. Only accessible by the contract owner.
*/
function mint(uint256 amount, address to) external onlyOwner {
_mint(to, amount);
}
}