A blockchain is a distributed computing architecture where every network node executes and records the same transactions, which are grouped into blocks. Only one block can be added at a time, and every block contains a mathematical proof that verifies that it follows in sequence from the previous block. In this way, the blockchain’s “distributed database” is kept in consensus across the whole network.
The current block number can be viewed on the Ethstat website.
Individual user interactions with the ledger (transactions) are secured by strong cryptography. Nodes that maintain and verify the network are incentivized by mathematically enforced economic incentives coded into the protocol.
On traditional server architectures, every application has to set up its own servers that run their own code in isolated silos, making sharing of data hard. If a single app is compromised or goes offline, many users and other apps are affected. On a blockchain, anyone can set up a node that replicates the necessary data for all nodes to reach an agreement and be compensated by users and app developers. This allows user data to remain private and apps to be decentralized like the Internet was supposed to work.
Ethereum Virtual Machine
The Ethereum Virtual Machine (a.k.a. EVM) is the runtime environment for smart contracts in Ethereum. It is actually completely isolated, which means that code running inside the EVM has no access to network, filesystem, or other processes. This EVM makes Ethereum a programmable blockchain. It allows users to create their own operations of any complexity they wish. In this way, it serves as a platform for many different types of decentralized blockchain applications, including but not limited to cryptocurrencies.
Every Ethereum node runs the EVM in order to maintain consensus across the blockchain. Decentralized consensus gives Ethereum extreme levels of fault tolerance, ensures zero downtime, and makes data stored on the blockchain forever unchangeable and censorship-resistant.
Accounts represent identities of external agents (e.g., human personas, mining nodes or automated agents). Accounts use public key cryptography to sign transaction so that the EVM can securely validate the identity of a transaction sender.
Accounts play a central role in Ethereum: they are essential for users to interact with the Ethereum blockchain via transactions.
Account addresses are the last 20 bytes of a SHA-3 hash of a public key which is generated at account creation. This address is most often in this form :
Every account is defined by a pair of keys, a private key and public key. Every private key/address pair is encoded in a Keyfile. The critical component of the keyfile, your account’s private key, is always encrypted, and it is encrypted with the password you enter when you create the account.
Here is a non exhaustive list of wallets.
- My Ether wallet
- Mist ethreum wallet
The Mist Ethereum wallet, and its parent Mist project, are being developed under the auspices of the Ethereum Foundation. It is the GUI-based option for creating accounts with the geth command.
EtherLi is the worlds first multi-signature Ethereum web wallet. This is the first Ethereum wallet that allows you to access your funds from anywhere on the web while taking advantage of multi-signature security layered with two-factor authentication for outgoing transactions.
Create and manage your account
There are two methods to create and manage your Ethereum account.
- Command Line Interface (a.k.a. CLI) tool based on the geth command.
- Graphical User Interface (a.k.a. GUI) based option for creating accounts.
The “official” Mist ethereum wallet. and its parent Mist project, are being developed under the auspices of the Ethereum Foundation, hence the “official” status. Versions of the wallet app are available for Linux, Mac OS X, and Windows.
Contracts live on the blockchain in a Ethereum-specific binary format called Ethereum Virtual Machine (EVM) bytecode. Contracts are typically written in some high level language such as Solidity and then compiled into bytecode to be uploaded on the blockchain.
The best way to try out Solidity right now is using the Browser-Based Compiler.
All needed information to start writing code with Solidity can be found on the Read the doc website.
function keyword, then has a parenthesised parameter list, and finally has a braced expression block.
The phrase and concept of smart contracts was developed by Nick Szabo as far back as 1994, with the goal of bringing what he calls the "highly evolved" practices of contract law and practice to the design of electronic commerce protocols between strangers on the Internet. Nick is a computer scientist known for his research in digital contracts and digital currency. Although Szabo has repeatedly denied it, people have speculated that he is the one behind Satoshi Nakamoto, the designer of Bitcoins.
In 1996, as part of a startup doing bond trading on the net, Ian Grigg created a method to bring a classical 'paper' contract into touch with a digital accounting system such as cryptocurrencies. The form, which became known as the Ricardian Contract, was readily usable for anything that you could put into a written contract, beyond its original notion of bonds.
In short: write a standard contract such as a bond. Insert some machine-readable tags that would include parties, amounts, dates, etc that the program also needed to display. Then sign the document using a cleartext digital signature, one that preserves the essence as a human-readable contract. OpenPGP works well for that. This document can be seen on the left of this bow-tie diagram.
A smart contract is a collection of code (its functions) and data (its state) that resides at a specific address on the Ethereum blockchain. Contract accounts are able to pass messages between themselves as well as doing practically Turing complete computation. They are little programs that execute “if this happens then do that”, run and verified by many computers to ensure trustworthiness.
A smart contract is a mechanism involving digital assets and two or more parties, where some or all of the parties put assets in and assets are automatically redistributed among those parties according to a formula based on certain data that is not known at the time the contract is initiated.
The key property of a smart contract is simple: there is only a fixed number of parties.
Smart contracts are written using the Solidity language. A contract in the sense of Solidity is a collection of code (its functions) and data (its state) that resides at a specific address on the Ethereum blockchain. You will find a collection of very basic smart contracts on fivedogit github. For an exhaustive list of smart contracts on the Ethereum network, please visit Etherchains website.
Smart contract code validation
You can verify a smart contract with the following verification tools. These websites will allow you to review source code, as well as attached transactions.
A decentralized application (a.k.a. DAPP) is similar to a smart contract, but different in two key ways:
- a decentralized application has an unbounded number of participants on all sides of the market.
- decentralized application need not be necessarily financial.
Visit this link to see a list of current DAPP projects.
In general, a human organization can be defined as combination of two things:
- a set of property
- a protocol for a set of individuals
The idea of a decentralized organization (a.k.a. DO) takes the same concept of an organization, and decentralizes it. Instead of a hierarchical structure managed by a set of humans interacting in person and controlling property via the legal system, a decentralized organization involves a set of humans interacting with each other according to a protocol specified in code, and enforced on the blockchain
Decentralized autonomous organizations
The ideal of a decentralized autonomous organization (a.k.a. Introduction to the DAO) is easy to describe: it is an entity that lives on the internet and exists autonomously, but also heavily relies on hiring individuals to perform certain tasks that the automaton itself cannot do.
The DAO is a corporation whose bylaws are written entirely in code.
Wikipedia defines a corporation as “a company or group of people authorized to act as a single entity (legally a person) and recognized as such in law.” While The DAO is a group of people authorized to act as a single economic entity, no governmental body recognizes it as such.