区块链:以太坊Ethereum(一)

Ethereum
以太坊特点:
- 以太坊是“世界计算机”,这代表它是一个开源的、全球分布的计算基础设施
- 执行称为智能合约(smart contract)的程序
- 使用区块链来同步和存储系统状态以及名为以太币(ether)的加密货币,以计量和约束执行资源成本
- 本质是一个基于交易的状态机(transaction-based state machine)
- 以太坊平台使开发人员能够构建具有内置经济功能的强大去中心化应用程序(DApp);在持续自我正常运行的同时,它还减少或消除了审查,第三方界面和交易对手风险
以太坊的组成部分
- P2P网络 :以太坊在以太坊主网络上运行,该网络可在TCP端口30303上寻址,并运行一个名为DEVp2p的协议
- 交易(Transaction) :以太坊交易是网络消息,其中包括发送者,接收者,值和数据的有效载荷
- 以太坊虚拟机(EVM)以太坊状态转换由以太坊虚拟机处理,这是一个执行字节码的基于堆栈的虚拟机
- 数据库(Blockchain) :以太坊的区块链作为数据库本地存储在每个节点上,包含序列化后的交易和系统状态
- 客户端:以太坊有几种可互操作的客户端软件实现,其中最突出的是Go-Ethereum(Geth)和Parity
以太坊中的一些概念

  • 账户:包含地址,余额和随机数,以及可选的存储和代码的对象。
    普通账户(EOA),存储和代码均为空
    合约账户(Contract),包含存储和代码

  • 地址:一般来说,这代表一个EOA或合约,它可以在区块上接受或发送交易。更具体地说,它是ECDSA公钥的keccak散列的最右边的160位

  • 交易
    可以发送以太币和信息
    向合约发送的交易可以调用合约代码,并以信息数据为函数参数
    向空用户发送信息,可以自动生成信息为代码块的合约账户

  • gas:以太坊用于执行智能合约的虚拟燃料。以太坊虚拟机使用核算机制来衡量gas的消耗量并限制计算资源的消耗
    以太坊的货币
    以太坊的货币单位称为以太(Ether),也可以表示为ETH或符号三。
    以太币的发行规则:

  • 挖矿前:2014年7月/8月间,为众筹大约发行了7200万以太币。这些币有的时候称之为“矿前”。众筹阶段之后,以太币每年的产量基本稳定,被限制不超过7200万的25%

  • 挖矿产出:区块奖励,叔块奖励,叔块引用奖励

  • 以太币产量未来的变化:以太坊出块机制从工作量证明(PoW)转换为股权证明(PoS)后,以太币的发行会有什么变化尚未定论。股权证明机制将使用一个称为Casper的协议,在Casper协议下,以太币的发行率将大大降低目前幽灵(GHOST)协议下的发行率。
    以太坊的挖矿产出

  • 区块奖励:每产生一个新区块就会有一笔固定的奖励给矿工,初始是5个以太币,现在是3个

  • 叔块奖励:有些区块被挖得稍晚一些,因此不能作为主区块链的组成部分。比特币称这类区块为“孤块”,并且完全舍弃它们。但是,以太币称它们为“叔块”,并且在之后的区块中,可以引用它们。如果叔块在之后的区块链中作为叔块被引用,每个叔块会为挖矿者提*出区块奖励的7/8。这被称之为叔块奖励。

  • 叔块引用奖励:矿工每引用一个叔块,可以得到区块奖励的1/32作为奖励(最多引用2个叔块)
    以太坊区块收入

  • 普通区块收入:固定奖励,每个普通区块都有,区块内包含所有程序的gas花费的总和,如果普通区块引用了叔块,每引用一个叔块可以得到固定奖励的1/32

  • 叔块收入:叔块收入只有一项,就是叔块奖励,计算公式为:叔块奖励=(叔块高度+8-引用叔块的区块高度)*普通区块奖励/8 (最多给到7级)
    常用网站:Etherscan.io
    幽灵(GHOST)协议
    以太坊出块时间:设计为12秒,实际14~15秒左右
    快速确认会带来区块的高作废率,由此链的安全性也会降低
    幽灵协议:Greedy Heaviest Observed SubTree

  • 计算工作量证明时,不仅包括当前区块的租区块,父区块,还要包括祖先块的作废的后代区块,将他们综合考虑。

  • 目前的协议要求下探到第七层,也就是说,废区块只能以数区块的身份被其父母的第二代至第七代后辈区块引用,而不能是更远关系的后辈区块

  • 以太坊付给以“叔区块”身份为新块确认作出贡献的废区块7/8的奖励,把它们纳入计算的“侄子区块”将获得区块奖励的1/32,不过,交易费用不会奖励给叔区块。
    以太坊与图灵完备
    如果一个系统可以模拟任何图灵机,它就被定义为“图灵完备”的。这种系统被称为通用图灵机(UTM)。
    以太坊能够在称为以太坊虚拟机的状态机中执行存储程序,同时向内存读取和写入数据,使其成为图灵完备系统,因此成为通用图灵机。考虑到有限存储器的限制,以太坊可以计算任何可由任何图灵机计算的算法。
    简单来说,以太坊中支持循环语句,理论上可以运行“无限循环”的程序。
    DAPP去中心化应用
    基于以太坊可以创建智能合约来构建去中心化应用(Decentralized Application,简称DApp)
    以太坊的构想是成为DApps编程开发的平台
    DApp至少由以下组成:

  • 区块链上的智能合约

  • web前端用户界面
    以太坊应用

  • 基于以太坊创建新的加密货币

  • 基于以太坊创建域名注册系统、博彩系统

  • 基于以太坊开发去中心化的游戏,如以太猫
    代币(Token)
    代币也称作通证,本意为“令牌”,代表有所有权的资产、货币、权限等在区块链上的抽象
    可替代性通证:指的是基于区块链技术发行的,互相可以替代的,可以接近无限拆分的token
    非同质通证:指的是基于区块链技术发行的,唯一的,不可替代的,大多数情况下不可拆分的token,如加密猫。
    相关名词
    EIP:以太坊改进建议
    ERC:以太坊征求意见。一些EIP被标记为ERC,表示试图定义以太坊使用的特定标准的提议
    EOA:外部账户
    Ethash:以太坊1.0的工作量证明算法
    HD钱包:使用分层确定性密钥创建和转账协议的钱包。
    Keccak256:以太坊中使用的密码哈希函数。Keccak256被标准化为SHA-3
    Nonce:密码学中,nonce用于指代只能使用一次的值。以太坊使用两种类型的随机数,账户随机数和POW随机数。

上一篇:Ubuntu18.04环境下 以太坊Geth的安装


下一篇:Day28