以太坊是运行在计算机网络中的软件,它确保数据以及称为智能合约的程序可以在没有中心协调者的情况下被所有网络中的计算机复制和处理。以太坊的愿景是平台上的应用按程序设定运行,不存在停机、审查、欺诈、第三方人为干预的可能。以太坊延伸了比特币的区块链概念,且是区块链的落地项目实验,因此又被称为比特币2.0版本。以太坊的官方网址为:Ethereum Project。
比特币用来分布式储存数据的,以太坊用来分布式储存数据并且计算。这些小型的电脑运行程序叫做智能合约,合约由参与者在他们自己的机器上通过一种称为 ”以太坊虚拟机“的操作系统运行。以太区块链的特点主要包括:
- 单独为智能合约指定变成语言Solidity;
- 使用了内存需求较高的哈希函数,避免出现算力矿机;
- 降低矿池的优势,减少区块产生间隔为15秒;
- 调整难度算法,该算法具有一定的反馈机制;
- 限制代码执行指令数,避免循环攻击;
- 某些情形下实现轻量级客户端;
- 为执行智能合约而设计的虚拟机EVM;
##以太坊和比特币的相似之处:
- 和比特币一样,以太坊有一条区块链,包含有交易和智能合约。
- 以太坊和比特币一样,都是一个公有的、无许可的网络,也就是说任何人都可以下载或者编写软件来连接网络,可以开始创建交易以及智能合约并且验证他们,还可以进行挖矿。
- 以太坊和比特币一样,都是工作量证明(POW)挖矿。
- 以太坊的代币是以太币,是一种内置的数字货币。
##以太坊和比特币的区别:
- 比特币生成一个新的区块需要10分钟,以太坊生成一个新的区块14秒。
- 比特币中最大的区块被限定在1M,而以太坊根据运行的智能合约的限制,大多数区块大小在2KB以下。
- 以太坊虚拟机上可以运行智能合约
##以太坊中的一些核心概念:
EVM:以太币虚拟机,轻量级虚拟环境,是以太坊中智能合约的运行环境。
Account:账户,分两类:合约账户存储执行合约的代码;外部账户为以太坊拥有者账户,相当于公钥。
Transaction:交易,包括以太币或合约执行参数,是一个账户到另一个账户的消息。
Gas:燃料,也就是通常所说的以太币币,没执行一条合约指令就会消耗一定的以太币,当某个交易还未执行结束,而以太币数量不足时,合约执行终止并会滚状态。
智能合约:一段存储在以太坊区块链上的简短计算机程序。用以太币可以激活或者运行这些代码。
## 以太坊的安装部署
安装GO环境
curl -O https://storage.googleapis.com/golang/go1.5.1.linux-amd64.tar.gz tar -C /usr/local -xzf go1.5.1.linux-amd64.tar.gz mkdir -p ~/go; echo "export GOPATH=$HOME/go" >> ~/.bashrc echo "export PATH=$PATH:$HOME/go/bin:/usr/local/go/bin" >> ~/.bashrc source ~/.bashrc
安装ethereum
sudo apt-get install software-properties-common sudo add-apt-repository -y ppa:ethereum/ethereum sudo add-apt-repository -y ppa:ethereum/ethereum-dev sudo apt-get update sudo apt-get install ethereum
安装solc编译器
sudo add-apt-repository ppa:ethereum/ethereum-qt sudo add-apt-repository ppa:ethereum/ethereum sudo apt-get update sudo apt-get install cpp-ethereum
安装后可以使用geth命令创建账户
geth account new
注:
1、以太坊的安装部署请参考区块链技术指南中以太坊安装部署一文;