THEBLOCKCHAINGUY

Personal blog byHoliviel Valdez.

Documenting and learning about
blockchain development.

25 words and more that every blockchain developer should know

February 11, 2021 • 👀9 min read

Recently I started the amazing and confusing world of blockchain, I am feeling like I have been in a bunker for a lot of time, and the world above me was evolving without me even notice. I know that many blockchain developers felt like that when they started this journey.

But the most common problem is when the developers start to talk and they use common blockchain terms like ERC 20, mainnet, and wei, is hard to follow a conversation, article, or video explanation without knowing these words.

That's why I created this article to list the most important blockchain keywords and explain a brief description for each one, so the next time you read an article or start a conversation about blockchain you will not feel lost maybe even the blockchain veterans can learn a new word.

Blockchain

Blockchain is a shared, immutable ledger that facilitates the process of recording transactions and tracking assets, anyone can view and verify the list of transactions inside the blockchain every time someone sent or received cryptocurrency.

Main characteristics:

  • ▪︎ Decentralization: Blockchain doesn't need a bank as an intermediary for the payments. In centralized systems like banks, all the information is store in one place.

In decentralized systems, the information is not stored by one single entity. Everyone in the network owns the information think about this like nodes in a peer to peer network like a torrent.

  • ▪︎ Privacy: Blockchain payments don't require your personal information like your name, id, or phone number, to do a successful transaction the blockchain needs your wallet address and that's it. That mechanism protects you from being hacked or having your identity stolen.

  • ▪︎ Transparency: The information of the transactions is open to anyone you can see the information of the first transaction until the last one.

You cannot see the personal information of the people to whom the transactions were made, but you do know the address and the amount even in more advanced blockchains like ethereum you can see the programming code behind the transaction.

  • ▪︎ Immutability: Once a transaction was made into the blockchain is immutable, which means no one cant change the amount, or the person the transition was sent.

The blockchain use complex rules for this to happen, but this is good to keep the immutability of the technology even the programming code in blockchains like ethereum is immutable once the code is uploaded.

There are different kinds of blockchains the majority of blockchains shared the principles listed before, but they have their characteristics too.

Here is a list of some popular blockchains:

A collection of information about blockchain transactions, a block is like a page of a ledger or record book. Each time a block is completed, it gives way to the next block in the blockchain and points to the previous block in the chain.

A block inside the blockchain is made of 4 important things:

  • ▪︎ Data: The data inside a block depends on the type of blockchain, but the majority of blockchains contain inside their data store details about the transaction such as the sender, receiver, and the amount from a list of transactions.

  • ▪︎ Hash: A unique identifier for each block inside the blockchain identifies a block and all its contents, and it's always unique like a fingerprint.

This is an example of a hash:

2142950db75c3d86833027a7691d04da4bacce3b2c9f3e57f6f5cacb84ad9aec

  • ▪︎ Previous hash: The hash code from the block of the past, with this hash you can follow the record of transactions inside the blockchain if you follow each block with the previous hash you can get the first block. The first block is the only one without a previous hash.

  • ▪︎ Nonce (number used once): Random whole number which is a 32-bit (4 byte) field, which is adjusted by the miners, so that it becomes a valid number to be used for hashing the value of block when the number was guessed a length of zeros is added in the front of the hash.

The nonce number can be used just only once, so you need heavy computing power to guess the next nonce number.

Example of hash with the nonce added:

000012fa9b916eb9078f8d98a7864e697ae83ed54f5146bd84452cdafd043c19

  • Proof of Work (PoW)

Proof of Work is the mechanism that allows the decentralized blockchain network to come to a consensus, or agree on things like account balances and the order of transactions. This prevents users from double spending their coins and ensures that the Ethereum chain is incredibly difficult to attack or overwrite.

Main characteristics:

  • ▪︎ Limited: The number of transaction it can process is limited. For example, miners can only create a Bitcoin (BTC) block every 10 minutes.

  • ▪︎ High energy use: Proof of work is expensive, labor-intense, and uses a lot of energy. Creating a new block requires a lot of energy, which a recent study that compared cryptocurrency mining to aluminum mining emphasized.

  • ▪︎ Transparent: It doesn’t rely on a single third party transactor. This builds a “trustless” and transparent network. It requires users to stake their cryptocurrency to become a validator in the network.

  • Proof of Stake (PoS)

Proof of stake is a type of agreement that blockchain networks use to achieve a decentralized consensus.

Validators are responsible for the same thing as trusted miners: they subscribe to events and create new blocks so that all nodes can agree on the status of the network.

Main characteristics:

  • ▪︎ Energy efficiency: Proof of stake is the underlying mechanism that activates validators upon receipt of enough stake, this is equal to better energy efficiency you don't need to use lots of energy mining blocks.

  • ▪︎ Lower barriers: To enter as a validator hardware requirements are reduced you don't need the last graphic card to stand a chance of creating new blocks.

  • ▪︎ Less centralization: Proof of stake should lead to more nodes in the network, centralization is less probable.

  • 51% Attack

A type of attack on a decentralized network where a group gains control of the majority of nodes, they can do this if they gain control of more than 50% of the network's mining hash rate. This would allow them to defraud the blockchain.

A group of miners with a 51% can do the next things:

  • ▪︎ Double spend: The attackers would be able to reverse transactions that were completed while they were in control of the network, meaning they could double spend coins.

  • ▪︎ Transaction block: The attackers would be able to prevent new transactions from gaining confirmations, allowing them to halt payments between some or all users.

  • Ico

Ico stands for initial coin offering. Ico is an unregulated number of funding sources offering new cryptocurrencies at an upfront cost. This is an alternative to other, more traditional funding methods.

An initial coin offering (ICO) of a cryptocurrency is similar to an initial public offering (IPO) of the stock exchange, but instead of buying stock in the company, you buy digital currency. However, it may be helpful to think of this as a public group fundraising activity that rewards investment in new businesses with assets tied to corporate value (but not necessarily directly through ICOs).

  • Exchange

Exchanges are cryptocurrency online platforms where you can exchange one cryptocurrency for another (or fiat currency). Apparently, through such an exchange, most newcomers have taken the first step into the beautiful world of crypto.

There are different types of exchanges here is the most popular:

  • ▪︎ Traditional exchanges: This kind of exchange is like the traditional stock exchanges where buyers and sellers trade based on the current market price of cryptocurrencies (with the exchange playing the middle-man). These types of trading platforms generally charge a fee for each transaction.

  • ▪︎ Brokers: These are website based exchanges that are like the currency exchange at an airport. They allow customers to buy and sell cryptocurrencies at a price set by the broker (generally at the market price plus a small premium).

  • ▪︎ Direct Trading Platforms: These platforms offer direct peer-to-peer trading between buyers and sellers. Direct trading platforms of this type don’t use a fixed market price. Sellers set their exchange rate and buyers either find sellers via the platform, or they denote the rates they are willing to buy for and the platform matches buyers and sellers.

  • ▪︎ Cryptocurrency Funds: Funds are pools of professionally managed cryptocurrency assets that allow the public to buy and hold cryptocurrency via the fund. Using a fund you can invest in cryptocurrency without having to purchase or store it directly.

  • Wallet

Software that stores private keys. Used to access and manage cryptocurrencies and communicate with the blockchain network. The key does not need to be stored in the wallet, but it can be stored offline (such as a memory card or paper) to increase security.

  • Dapp

Dapp, is a software program that runs on a distribution network. It is hosted on a peer-to-peer network (blockchain), not a central server.

Dapps examples:

Abbreviation of, decentralized financing is a broad category of Dapps designed to provide financial services executed in the blockchain without any intermediaries so that anyone with an internet connection can participate.

Dfi examples:

A Cryptocurrency is a virtual asset or virtual currency that is secured by cryptography, for that reason is impossible to counterfeit or double spend each cryptocurrency is unique. You can do transactions of cryptocurrencies inside decentralized networks based on blockchain.

Main characteristics:

  • ▪︎ Limited: The quantity of each cryptocurrency is limited, if cryptocurrencies were common assets there was no value in them.

  • ▪︎ Creation: Cryptocurrencies are created when a computer solves the nonce number of a complex algorithm the reward is a new cryptocurrency for the person that resolves that algorithm.

  • ▪︎ Portable: You don't need a bank account or physical wallet to hold cryptocurrencies, you need a blockchain wallet this wallet allows transfers in cryptocurrencies and the ability to convert them back into a user's local currency.

  • Stablecoins

Stablecoins is a class of cryptocurrencies that offer price stability and are backed by reserves. Stable currencies have gained popularity due to the advantages of the blockchain and the lack of volatility like other cryptocurrencies.

Types of stablecoins:

  • ▪︎ Centralized backed by fiat: These are backed 1:1 by fiat currencies, which are stored in bank accounts. They are centralized because they are launched and governed by a central organization, which could be either a company, a bank, or even a government. An example of this is the USD coin.

  • ▪︎ Decentralized Backed By Crypto: In this type of stablecoins you don’t have a central operator but are governed by a consensus of the users who take part in the network. An example of this is DAI.

  • ▪︎ Decentralized algorithmic: They don’t have any collateral backing their system, and they rely on algorithms to get their price to remain stable.

  • Bitcoin

Bitcoin is a digital currency and the first cryptocurrency was created by a programmer or group under the pseudonym Satoshi Nakamoto.

Main characteristics:

  • ▪︎ Limited supply: This is a common characteristic of cryptocurrencies, only 21 million coins will ever be created, making Bitcoin much more immune to the inflation traditional currencies are prone to.

  • ▪︎ Decentralized: Nobody controls or ‘owns’ the Bitcoin network, the transactions can never be altered or censored.

  • ▪︎ Less expensive: Is cheaper to move money through Bitcoin’s peer-to-peer network.

  • Ether

The native cryptocurrency used by the Ethereum ecosystem, Also written as ETH or its symbol Ξ, the Greek uppercase Xi character.

Main characteristics:

  • ▪︎ Gas fee: When you send ETH or use an Ethereum application, you'll pay a small fee in ETH to use the Ethereum network this fee is called gas.

  • ▪︎ Flexible amounts: ETH is divisible up to 18 decimal places so you don't have to buy 1 whole ETH. You can buy pieces at a time – as little as 0.000000000000000001 ETH if you want.

  • ▪︎ Evolution: Ether was intended to complement rather than compete with bitcoin, but it has nonetheless emerged as a competitor on cryptocurrency exchanges.

  • Solidity

Solidityis an object-oriented, high-level language for implementing smart contracts. Smart contracts are programs that govern the behavior of accounts within the Ethereum state.

Main characteristics:

  • ▪︎ Influence: Solidity was influenced by C++, Python, and JavaScript.

  • ▪︎ Syntax: Solidity is statically typed, supports inheritance, libraries, and complex user-defined types among other features.

  • ▪︎ Apps: Solidity can create contracts for uses such as voting, crowdfunding, blind auctions, and multi-signature wallets.

Solidity syntax example:

contract Coin {
// The keyword "public" makes variables
// accessible from other contracts
address public minter;
mapping (address => uint) public balances;
// Events allow clients to react to specific
// contract changes you declare
event Sent(address from, address to, uint amount);
// Constructor code is only run when the contract
// is created
constructor() {
minter = msg.sender;
}
// Sends an amount of newly created coins to an address
// Can only be called by the contract creator
function mint(address receiver, uint amount) public {
require(msg.sender == minter);
require(amount < 1e60);
balances[receiver] += amount;
}
// Sends an amount of existing coins
// from any caller to an address
function send(address receiver, uint amount) public {
require(amount <= balances[msg.sender], "Insufficient balance.");
balances[msg.sender] -= amount;
balances[receiver] += amount;
emit Sent(msg.sender, receiver, amount);
}
}

Keccak 256

The cryptographic hash function used in Ethereum. Keccak-256 was standardized as SHA-3.

Example using solidity:

pragma solidity ^0.5.0;
contract Test {
function callKeccak256() public pure returns(bytes32 result){
return keccak256("ABC");
}
}

Output:

0: bytes32: result 0xe1629b9dda060bb30c7908346f6af189c16773fa148d3366701fbaa35d54f3c8

Tokens

The term token is used to describe altcoins (cryptocurrency alternatives to Bitcoin) that exist on another coin’s platform instead of existing on their platform. Ethereum has tokens of this type, as do other platforms.

Most commonly then, here using the most popular of these platforms Ethereum as an example, “token” would refer to any ERC-20 tokens built on the Ethereum platform that isn’t the native token Ether. The ERC 20 defines 6 mandatory functions that your smart contract should implement.

Here is an example of the ERC 20 tokens interface in solidity:

// Optional functions
function name() public view returns (string)
function symbol() public view returns (string)
function decimals() public view returns (uint8)
// Required functions
function totalSupply() public view returns (uint256)
function balanceOf(address _owner) public view returns (uint256 balance)
function transfer(address _to, uint256 _value) public returns (bool success)
function transferFrom(address _from, address _to, uint256 _value) public returns (bool success)
function approve(address _spender, uint256 _value) public returns (bool success)
function allowance(address _owner, address _spender) public view returns (uint256 remaining)

EVM (Ethereum Virtual Machine)

A virtual machine that uses bytecode. In ethereum, the deployment model uses bytecode instructions and small sets of environmental data to determine how the state of the system is changed. This is determined using a formal model of a virtual state machine.

Ethereum state is a large data structure that contains all accounts and balances, but also a machine mode that can switch from one block to another according to a predefined set of rules and execute any machine code. The EVM defines specific rules for changing the status from block to block.

Mainnet

The abbreviation for the main network, also known as Level 1, is the main public blockchain. The mainnet is just the main network where the actual transactions take place in a distributed ledger with real cryptocurrencies, real value, and real consequences. Once the solidity code is uploaded to the main network, it will never change again.

Testnet

This is the network that protocol or blockchain developers use to improve their protocols and test potential smart contracts before deploying them in production environments on the mainnet.

Layer 2

The development area focused on allowing the corrections to the ethereum protocol. These improvements affect transaction speed, lower transaction fees, and transaction integrity.

Wei

A wei is the smallest sub-unit of Ether there are 10^18 wei in 1 ether.

Infura

Infurais a scalable backend infrastructure for creating Dapps in the ethereum blockchain. This allows you to connect to the ethereum network without running a full node. The service is provided by Consensys.

Web3.js

Web3.jsis a set of libraries that allow you to communicate with local or remote ethereum nodes using HTTP, IPC, or WebSockets.

Truffle

Truffleprovides a great development environment, test framework, and asset pipeline for the blockchain using EVM with the aim of making life as a developer easier.

Conclusion

There are a ton of words when you start in the blockchain world and with the time more words are added to this vocabulary the secret to understanding is to do research and if you can't explain this to others, start again until you get it.

Knowing these words just is the first step to become a blockchain engineer, the next step is hours of coding and trying until you get the level of a mature developer is the same with every new technology and blockchain is not the exception.