Ethereum
Ethereum is a open-software platform that is operating using blockchain technology co-founded by Vitalik Buterin. Ethereum was released 2015. Ethereum gives a cryptocurrency called "ether" that can be moved from different accounts. While Bitcoin was designed for consumer payments, Ethereum was designed to allow for more complex party interactions called smart contracts.
Contents
Smart Contracts
A smart contract is a computer program that controls the transfer of assets to different parties. It defines the rules and pendalties of the agreement. They can be used for a number of things such as token creation, decentralized autonomous organizations, crowdsales and more.
DAO
A decentralized autonomous organization (DAO) is a type of smart contract that acts like a business or organization. Token owners are like voting members. They can make proposals on what to do with funds, add/ remove members, propose new rules or change old ones and more.
Crowdsale
A Ethereum crowdsale contract manages funds and determines how to the funds will be spent after the money is raised to help fight mismanagement. They are often used with a DAO to determine how the money is spent.
Ethereum ERC Tokens
An Ethereum based token is a fungible tradable asset that operates on Ethereum's blockchain. The Ethereum Request for Comments (ERC) for tokens is a way of describing a set of functions and rules that the token should posses and follow. The three most common standards can be seen here:
ERC20
The ERC20 token is the most commonly used standard. As such, it is the most popular token for companies running an ICO.
The ERC20 token required functions are:
- Get the total token supply:
function totalSupply() public constant returns (uint);
- Get the account balance of another account:
function balanceOf(address tokenOwner) public constant returns (uint balance);
- Returns the amount which the spender is still allowed to withdraw from the owner:
function allowance(address tokenOwner, address spender) public constant returns (uint remaining);
- Send amount of tokens to address:
function transfer(address to, uint tokens) public returns (bool success);
- Allow spender to withdraw from your account, multiple times, up to the amount written. If this function is called again it overwrites the current allowance with the value:
function approve(address spender, uint tokens) public returns (bool success);
- Send amount of tokens from one address to another address:
function transferFrom(address from, address to, uint tokens) public returns (bool success);
- Triggered when tokens are transferred
event Transfer(address indexed from, address indexed to, uint tokens);
- Triggered whenever approve is called:
event Approval(address indexed tokenOwner, address indexed spender, uint tokens);
}
Examples:
ERC223
The ERC223 token, which is still in the proposal stage, was created to solve issues with the ERC20 standard. It was created to prevent Ether loss when an unknowing individual sends Ether to an ERC20 contract that can't accept it. The new proposal also uses less gas when deploying contracts and sending tokens.
ERC721
The ERC721 standard was proposed to create an non-fungible token (NFT). The proposal allows for tokens to have varying parameters and can be priced differently.
Examples:
- Crypto Kitties Virtual game based on the Ethereum Blockchain that allows you to breed and trade virtual kitties.
See Also
Resources
- Ethereum main site
- MetaMask Chrome plug in that allows It allows you to run Ethereum dApps right in your browser without running a full Ethereum node