以太坊简介

Posted by Kaka Blog on June 24, 2021

以太坊的出现

2014年1月,Vitalik Buterin(V神)在自己任编辑的比特币杂志上发布了《以太坊:一个下一代智能合约和去中心化应用平台》,7月,启动以太坊众筹募资。2015年7月30日,以太坊主网上线,以太坊系统诞生。

发展阶段:2015年7月30日-前言(Frontier) -> 2016年3月家园(Homestead) -> 大都会(Metropolis)

以太坊基本概念

组成部分

  • P2P网络:以太坊在以太坊主网络上运行,该网络可在TCP端口30303上寻址,并运行一个名为DEVp2p的协议。
  • 交易(Transaction):以太坊交易是网络消息,其中包括发送者、接受者、值和数据的有效载荷(payload)。
  • 以太坊虚拟机(EVM):以太坊状态转换由以太坊虚拟机(EVM)处理,这是一个执行字节码(机器语言指令)的基于堆栈的虚拟机。
  • 数据库(Blockchain):以太坊的区块链作为数据库(通常是Google的LevelDB)本地存储在每个节点上,包含序列化的交易和系统状态。
  • 客户端:以太坊有几种可互操作的客户端软件实现,其中最突出的是Go-Ethereum(Geth)和Parity。实现以太坊规范并通过p2p网络与其它以太坊客户端进行通信。

重要概念

  • 账户(Account):包含地址,余额和随机数,以及可选的存储和代码的对象。
    • 普通账户(EOA),存储和代码均为空
    • 合约账户(Contract),包含存储和代码
  • 地址(Address):一般来说,这代表一个EOA或合约,它可以在区块链上接收或发生交易。更具体地说,它是ECDSA公钥的keccak散列的最右边的160位。
  • 交易(Transaction)
    • 可以发送以太币和信息
    • 向合约发送的交易可以调用合约代码,并以信息数据为函数参数
    • 向空用户发送信息,可以自动生成以信息为代码块的合约账户
  • gas:以太坊用于执行智能合约的虚拟燃料。以太坊虚拟机使用核算机制来衡量gas的消耗量并限制计算资源的消耗。

  • 以太坊全节点:整个主链的一个副本,存储并维护链上的所有数据,并随时验证新区块的合法性。
  • 远程客户端:不存储区块链的本地副本或验证块和交易,一般只提供钱包的功能,MetaMask就是这样的客户端。
  • 轻节点:不保存链上的区块历史数据,只保存区块链当前的状态。可以对块和交易进行验证。

运行全节点的要求

  • 最低要求
    • 双核以上CPU
    • 硬盘存储可硬空间至少80GB
    • 如果是SSD,需要4GB以上RAM,如果是HDD,至少8GB RAM
    • 8 MB/s下载带宽
  • 推荐配置
    • 四核以上CPU
    • 15GB RAM
    • 500GB SSD
    • 25+ MB/s下载带宽

以太坊的货币

以太坊的货币单位称为以太(ether),也可以表示为ETH。ether更小的单位wei,1 ether = 10^18 wei

以太币的发行规则:

  • 挖矿前:众筹大约发行了7200万以太币,每年被限制不超过7200万的25%
  • 挖矿产出
    • 区块奖励:和比特币类似。每产生一个新区块就会有一笔固定的奖励给矿工,初始是5个以太币,现在是2个。
    • 叔块奖励:每个叔块会为挖矿者产出区块奖励的7/8。
    • 叔块引用奖励:矿工每引用一个叔块,可以得到区块奖励的1/32作为奖励(最多引用两个叔块)

这样的一套基于POW的奖励机制,被称为以太坊的“幽灵(GHOST)协议”。以太坊出块时间:设计为12秒,实际14~15秒左右

代币(Token)

代币也称作通证,代表有所有权的资产、货币、权限等在区块链上的抽象

私钥、公钥和地址

  • 私钥(Private Key):一个256位的随机数,用于发送以太的交易中创建签名来证明自己对资金的所有权。
  • 公钥(Public Key):公钥是由私钥通过椭圆曲线加密secp256k1算法单向生成的512位数。
  • 地址(Address):是由公钥的Keccak-256单向哈希,取最后20个字节(160位)派生出来的标识符,40个字符。

以太坊应用

  • 基于以太坊创建新的加密货币
  • 基于以太坊创建域名注册系统、博彩系统
  • 基于以太坊开发去中心化的游戏,比如:CryptoKitties

工具:remix

MetaMask钱包

通过Chrome浏览器安装MetaMask钱包扩展,创建账号,需要输入MetaMask密码和记住助记词。

获取测试以太

切换到Ropsten测试网络,点击“购买”,然后点击“测试水管”,MetaMask将打开一个新的网页:https://faucet.metamask.io/

按绿色“request 1 ether from faucet”按钮即可。点击交易地址可在区块浏览器中查看详情。

比特币和以太坊的对比

  BitCoin Ethereum
设计定位 现金系统 去中心化应用平台
数据组成 交易列表(账本) 交易和账户状态
交易对象 UTXO Accounts
代码控制 脚本 智能合约

参考