以太坊

官网:https://haomo-tech.com

作者:毫末科技

邮箱:hxg@haomo-studio.com

微信二维码:

1 系统概述

1.1 什么是以太坊

以太坊(英语:Ethereum)是一个开源的有智能合约功能的公共区块链平台。通过其专用加密货币以太币(Ether,又称“以太币”)提供去中心化的虚拟机(称为“以太虚拟机”Ethereum Virtual Machine)来处理点对点合约。 以太坊的概念首次在2013至2014年间由程序员Vitalik Buterin,受比特币启发后提出,大意为“下一代加密货币与去中心化应用平台”,在2014年通过ICO众筹得以开始发展。 截至2018年2月,以太币是市值第二高的加密货币,仅次于比特币。

1.2 发展历史

1.3 发展现状

1.4 未来趋势

2 系统目标及意义

3 系统组成

以太坊采用:KECCAK-256 哈希算法 以太坊的全局状态就是由账户地址和账户状态的一个映射组成。这个映射被保存在一个叫做Merkle Patricia树的数据结构中。Merkle Tree(也被叫做Merkle trie)是一种由一系列节点组成的二叉树

以太坊系统主要组成部分:

  • 账户(accounts)
  • 状态(state)
  • 损耗和费用(gas and fees):
  • 交易(transactions)
  • 区块(blocks)
  • 交易执行(transaction execution)
  • 挖矿(mining)
  • 工作量证明(proof of work)

账户状态有四个组成部分:

  • nonce:如果账户是一个外部拥有账户,nonce代表从此账户地址发送的交易序号。如果账户是一个合约账户,nonce代表此账户创建的合约序号
  • balance: 此地址拥有Wei的数量。1Ether=10^18Wei
  • storageRoot: Merkle Patricia树的根节点Hash值(我们后面在解释Merkle树)。Merkle树会将此账户存储内容的Hash值进行编码,默认是空值
  • codeHash:此账户EVM(以太坊虚拟机,后面细说)代码的hash值。对于合约账户,就是被Hash的代码并作为codeHash保存。对于外部拥有账户,codeHash域是一个空字符串的Hash值

两种节点类型:

  • 全节点:一个全节点包含了整个链。如矿工节点,挖矿需要整个链。
  • 轻节点:仅仅下载链的头,从创世纪块到当前块的头,不执行任何的交易或检索任何相关联的状态。依然可以很容易生成和接收关于交易、事件、余额等可验证的答案。

单位换算:

1Ether = 10^18Wei
1gwei = 1,000,000,000 Wei

假设发送者设置gas limit为50,000,gas price为20gwei。这就表示发送者愿意最多支付50,000*20gwei= 1,000,000,000,000,000 Wei = 0.001 Ether来执行此交易。

以太坊交易:

4 系统实施

4.1 流程

4.2 挑战

5 产品介绍

5.1 商业产品

5.1.1 xxx商业产品

简介
功能模块
优缺点

5.1.2 xxx商业产品

简介
功能模块
优缺点

5.2 开源产品

5.2.1 xxx开源产品

简介
功能模块
优缺点

5.2.2 xxx开源产品

简介
功能模块
优缺点

6 参考资料

results matching ""

    No results matching ""