虚拟币-ETH(Ethereum)

以太坊简介

以太坊是一个为去中心化应用(DApp)而生的全球开源平台。

官方地址: https://ethereum.org/zh

源码地址: https://github.com/ethereum/

以太坊主网于 2015 年上线,是世界领先的可编程区块链。和其它区块链一样,以太坊也拥有原生加密货币,叫作 Ether (ETH)。 ETH 是一种数字货币, 和比特币有许多相同的功能。

以太坊历史

年份 历史名 区块高度 价格 概述 改进提议EIP
2013年11月27日 白皮书发布 0 $0 该项目在 2015 年启动。但早在 2013 年,以太坊的创始人 VitalikButerin维塔利克·巴特林(V神) 就发表了介绍性[文章]
2014年4月1日 黄皮书发布 0 $0 以太坊白皮书概要性地介绍了以太坊,以太坊黄皮书通过大量的定义和公式详细地描述了以太坊的技术实现的[文章]
2014年7月22日 - 9月2日 公开招募 0 $0 以太币预售为期 42 天。 你可以使用比特币进行购买。[请阅读以太坊基金会公告]
2015-7月-30日 Frontier 0 $0 边境是以太坊的最初版本,但在上面能做的事情很少。 它是在 Olympic 测试阶段之后进行的。 它面向技术用户,特别是开发者。 每个区块有一个 gas 限制为 5,000。 这个“缓冲”期使矿工能够开始工作,并使早期采用者能够安装他们的客户端而不必“匆忙”。
2015-9月-7日 Frontier thawing 200000 $1.24 USD Frontier thawing 分叉取消了每个区块 5,000 gas 的限制,并将默认的 gas 价格设置为 51 gwei。 这开启了交易功能——交易需要 21,000 gas。
2016-3月-14日 Homestead 1150000 $12.50 USD 展望未来的 Homestead 分叉。 其中包括若干协议修改和网络变更,使以太坊能够进一步进行网络升级。 EIP-2\EIP-7\EIP-8 [EIP详情]
2016-7月-20日 DAO 分叉 1920000 $12.54 USD DAO 分叉是为了解决 2016 DAO 攻击 ,当时一个不安全 DAO 合约被黑客盗走了超过 3 百万个 ETH。 这个分叉将资金从错误的合约转移到 这个只有 withDraw 方法的新合约。 任何损失资金的人都可以在他们的钱包中为每 100 个 DAO 代币提取 1 个 ETH。
2016-10月-18日 Tangerine Whistle 2463000 $12.50 USD 处理与价格低廉的操作代码有关的紧急网络健康问题 EIP-150\EIP-158
2016-11月-22日 Spurious Dragon 2675000 $9.84 USD 1、调整操作码的价格以防止今后对网络的攻击。 2、启用区块链状态的“区块链减重”。 3、添加重放攻击保护。 EIP-155\EIP-160\EIP-161\EIP-170
2017-10月-16日 Byzantium 4370000 $334.23 USD 拜占庭分叉: 1、将区块挖矿奖励从 5 ETH 减少到 3 ETH 2、将[难度炸弹]升级延迟一年 3、增加了调用其他合约的能力 4、添加加密算法以允许[第二层扩容] EIP-140\EIP-658\EIP-196\EIP-197\EIP-198\EIP-211\EIP-214\EIP-100\EIP-649
2018-2月-28日 君士坦丁堡升级 7280000 $136.29 USD 君士坦丁堡分叉: 1、保证在 POS 实现前区块不会被冻结 2、优化 EVM 数据存储操作的 Gas 耗用量计量方式 3、添加了与尚未创建的地址进行交互的能力 EIP-145\EIP-1014\EIP-1052\EIP-1234
2019-9月-8日 伊斯坦布尔升级 9069000 $151.06 USD 伊斯坦布尔分叉: 1、优化 EVM 数据存储操作的 gas 耗用量计量方式。 2、提高拒绝服务(DoS)攻击的弹性 3、使基于 SNARK 和 STARK 的 二层扩容第二层方案性能更佳 4、使以太坊和 Zcash 能够互操作 5、让合约能够引入更有创造性的功能 EIP-152\EIP-1108\EIP-1344\EIP-1884\EIP-2028\EIP-2200
2020-1月-2日 缪尔冰川升级 9200000 $127.18 USD 缪尔冰川分叉将 难度炸弹 的启动延迟。 增加Pow 的区块难度可能会增加发送交易和使用数据库的等待时间,从而降低以太坊的可用性。 EIP-2384
2020-10月-14日 质押合约部署 11052984 $379.04 USD [质押合约]将质押引入以太坊生态系统。 虽然这只是一个 ETH1.0 主网 合约,但它直接影响了启动 信标链重要的 Eth2 升级。
2020-12月-1日 信标链的起源 1 (信标链区块高度) $586.23 USD [信标链]需要 16384 个 ETH 并且每个节点拥有 32 个 ETH 来保证网络的安全。 2020 年 11 月 27 日确定规则,并且在 2020 年 12 月 1 日开始生产区块。 这是实现 Eth2.0 愿景的重要一步。
2021-8月-5日 伦敦升级 1296500 $3292.71 USD 「伦敦」升级顺利完成,作为以太坊2.0全面部署前的最后一次全网升级,「伦敦」重要性不言而喻,尤其是以太坊改进提案EIP-1559的激活,不仅消除了用户通过投标系统竞争区块包含的方法,更会从根本上改变以太坊交易机制和ETH供应量。

[EIP详情地址]

总结:2014年实行预售,可以从2016年到2017年价格上涨,然后2020年到2021年价格上涨。每次升级都会影响价格的波动。2020年12月上线的信标链,只是以太坊2.0“阶段 0”迈出的第一步,「伦敦」升级之后将会进入到「阶段 1」(最初预计是2021年完成,但目前几乎可以肯定会延迟到2022年),而 ETH 1.0ETH 2.0 的完整升级则可能需要5-10年。个人觉得可以买币,放个几年。

以太坊智能合约

以太坊的智能合约并非现实中常见的合同,而是存在区块链上,可以被触发执行的一段程序代码,这些代码实现了某种预定的规则,是存在于以太坊执行环境中的“自治代理”

智能合约是什么

智能合约
以太坊的智能合约设计很简明。

  • 任何人都可以在以太坊区块链上开发智能合约,这些智能合约的代码是存在于以太坊的账户中的,这类存有代码的账户叫合约账户。对应地,由密钥控制的账户可称为外部账户。
  • 以太坊的智能合约程序,是在以太坊虚拟机(Ethereum Virtual Machine,EVM)上运行的。
  • 合约账户不能自己启动运行自己的智能合约。要运行一个智能合约,需要由外部账户对合约账户发起交易,从而启动其中的代码的执行。
  • 智能合约的代码永远不能被修改。

在以太坊,智能合约是可以处理资金的脚本,就是这么简单。

这些合约由我们称为“矿工”的参与方强制执行和证明。我们给这些矿工支付一种叫作 “Gas” 的东西,它是运行一份合约的成本。当你发布一份智能合约,或者执行一份智能合约,或者把钱转到另一个账户,你就要支付一些被转换成Gas的以太币。

智能合约有什么用

图2 是一个简明的图示,图示是一个典型的 ERC20 通证发行过程:一个项目通过智能合约创建通证,这个通证是实体资产或线上资产的价值表示物。投资者(用户)发起交易,向智能合约转入以太币(ETH),智能合约自动运转,在满足一定规则后,它向投资者账户转入相应数量的通证。
智能合约

为什么我们需要合约?

在一个没有合约或货币的世界里,我们只能局限于同步的易货交易——你有一个苹果,我有一条面包,我可以当场用面包换你的苹果。 然而,我们交易的越多,就越有可能陷入经济学家所谓的需求的双重偶合(double coincidence of wants)问题:我们之间达成交易的前提必须是我们同时想要对方手里的东西,而这种情况不常出现。

货币是解决这个问题的一种方法。 我可以卖了面包换到钱,然后用钱换苹果或其他物品。通过钱,我们可以把双重需求减少成单一需求:我无需持有你想交易的东西;我可以通过后续交易获得苹果。这样时间限制就被削弱了。

合约的工作原理与货币类似,但它们能促进更多潜在的交易。 合约不要求同步交换价值,甚至不需要以货币作为中介。 我现在可以把一条面包卖出去,买方可以答应下个月付款给我。 这种能力从根本上扩展了我们可以进行的交易类型。

但仍有一个问题。 你怎么确定我会履行承诺付款给你? 我们如何建立可信的约定?

履行合约约定

在点对点交易过程中,无论谁先履行合约都要承担对方违背合约的风险。 如果卖方先发货,买方可能不会付款;如果买方先付款,卖方可能不会发货。

怎么来解决这个问题?

解决方案是使用多重签名的智能合约,在针对在线交易的多重签名合约中,可以要求至少获得三方(买方,卖方和中立的第三方)中任意两方的签名。 第三方可以是任何人(或任何事物!),只要能让我们相信 ta 能公正地解决争议即可。 特别要注意的是,第三方仲裁员的权力非常有限,ta 们只能在买卖双方出现争议的情况下,决定将钱汇给其中一方。 仲裁员不能私吞这笔钱或是将它汇给买卖双方以外的其他人。

合约的风险

事件1-Parity钱包

在2016年6月,一名黑客企图转移一大笔众筹资金 (350 万个 ETH, 占当时ETH总数的15%)至他自己的子合约,这笔资金被锁定在该子合约中 28 天。

众多创业公司使用的多重签名钱包的逻辑大多通过库合约实现。每个钱包都包含一个轻量级的客户端合约,连接到这个单点故障。漏洞是一种叫做wallet.sol的多重签名合约出现bug导致的,问题在于其中一个初始化函数只能被调用一次。
parity多重签名钱包

预防措施

  • 使用开放的资源与社区接受的库合约的实质标准 (de facto standards),例如 Open Zeppelin’s contracts。
  • 使用推荐的模式与最优操作指导手册,例如 Consensys 提供的。
  • 考虑由信誉好的供应商审核您的智能合约。

以太坊地址

以太坊地址

以太坊地址生成过程 可以借鉴此[文章]

1、生成256位随机数作为私钥
2、将私钥转化为 secp256k1 非压缩格式的公钥,即 512 位的公钥。
3、使用散列算法 Keccak256 计算公钥的哈希值,转化为十六进制字符串。
4、取十六进制字符串的后 40 个字母,开头加上 0x 作为地址。

以太坊地址生成实例

  • 私钥:1f2b77*6a7efaa065d20
  • 公钥:04dfa1*0bbf8865734252953c9884af787b2cadd45f92dff2b81e21cfdf98873e492e5fdc07e9eb67ca74d
  • 地址:0xabcd**4A2d57

以太坊合约地址

以太坊合约地址生成过程 可借鉴此[文章]

利用发送代币生成合约地址

利用Remix - Solidity IDE 网站来发布智能合约 [地址]

发币过程

第一步:在 Chrome 插件商店搜索并安装 MetaMask

MetaMask是钱包的一种,在chrome浏览器中,安装MetaMask插件即可,安装完成后,右上角会出现一个“狐狸头”的标志,点击该标志,打开钱包,第一步,创建账户,(创建账户只需要输入面密码即可,名称创建后可以随便改,该账户就是一个hash值,如何给自己创建的账户冲以太币呢,你可以通过在交易所买入一些ETH,然后转入即可)创建成功后,记住密码还有产生的几个随机单词(一定要记录下来)。
MetaMask

第二步:编写合约代码

智能合约代码

注意事项:

  • 合约代码引用版本需要与编辑器所选版本匹配

    pragma solidity ^0.4.16;
  • 精度默认值decimals=18,就是小数点后18位。
    BTC是8位,0.00000001 (Gwei) = 1(sat)
    ERC20是18位,0.000000002578400219 (Ether) = 2.578400219 (Gwei)

第三步:注入环境、绑定合约、部署发币

发币

注意事项:

  • 以太币数量填写0,不然要报错

第四步:等待发币结果

注意:对于EIP-1559升级后,文章后面会详细讲解矿工费机制。

以太坊参数(难度炸弹、出块速度、TPS、矿工费、Nonce)

难度炸弹

指的是随着挖矿难度增加.[以太坊浏览器]

为什么要引入难度炸弹?

以太坊参数
如图可以看出从20年中旬开始,难度指数上涨明显,这是因为ETH升级2.0造成的。

因为他们最终将希望矿工停止挖矿并开始验证工作。

以太坊(ETH)正试图通过将现有的工作量证明(PoW)共识算法切换为权益证明(PoS)共识算法来解决这个问题。挖矿的奖励将由参与者质押资金的大小决定,而非由现在的电力和资源密集型计算机算力决定。如果出现算法转变的情况,以太坊社区可能会选择通过硬分叉来完全移除或者延迟难度炸弹。

出块速度

[参考地址]

以太坊出块速度
POW模式(接下来会讲)下ETH的出块速度
如图蓝色线是出块耗时时间,红色线是币价,黄色线是平均线(可以看出平均耗时在13.45秒)

出块速度怎么计算的?

以太坊参数

如图中蓝色线,以太坊的发行每年产量被限制在7200万以太币的25%(每年以太币的矿产量,不高于1800万。7200万为一次性crowdsale而发行的以太坊)

区块
按照这个总量来计算

区块奖励: 每挖一个区块奖励5个以太坊

叔块奖励: 有些区块被挖得稍晚一些,因此不能称为主区块链的组成部分。比特币称这类区块为“孤块”,并且完全舍弃它们。但是,以太币称它们为“ uncles”,并且在之后的区块中,可以引用它们。如果uncles在之后的区块链中作为叔块被引用,每个叔块会为挖矿者产出大约4.375个以太坊。目前每天有大约500个叔块被创建,每年产量为70万以太坊

叔块引用奖励: 矿工每引用一个叔块,就得到了大约0.15个以太币(最多引用两个叔块)

出块速度计算

一年3150万秒(365x24x60x60),每产生一个新区快就会奖励5个以太坊

出块速度 : 3150万 / ( (1800万-70万) / 5) ≈ 9 s

注: 这里的计算,忽略了叔块引用奖励,真实出块速度可能大于9s,目前真实平均在13.45秒。

TPS

[eth的tps数据]

以最高的日期算: 2021年5月9日星期日的最高交易数的tps是1716600/24/60/60 ≈ 19.868055笔

目前平均: 1250000/24/60/60 ≈ 14.4675笔

tps

TPS困扰区块链久矣

很多区块链项目都面临着TPS性能不足的难题,区块链技术的鼻祖自然也不避免。一直以来比特币每个区块容量设置为1MB,平均每10分钟出一次块,在理想情况下TPS可以达到每秒7笔,但实际情况下只能达到每秒3到4笔。而且随着全网交易量走高,已经出现了拥堵的情况,很多交易无法上链,用户体验不好。如今比特币网络中未确认的交易数已经达到22000笔,将近60MB大小,也就是说平均要等待一小时的时间才可以确认。

矿工费计算

伦敦升级(EIP-1559)升级后矿工费机制变更。

矿工费

升级前的矿工费机制

  • 矿工费 = GasPrice * GasUsed
    • GasUsed(gas):交易消耗的总 gas 数量。
    • GasPrice(gwei):即对单位 gas 的定价,1 gwei= 10^(-9) eth。
  • 采用竞价机制,GasPrice 设置越高,交易处理速度越快。
  • 交易由矿工处理,矿工费完全由矿工收取。

GasPrice越多速度越快,web3j默认取得Average值

升级后的费用机制

  • 交易费用 = (baseFee + PriorityFee)* GasUsed

思考? 这里为什么叫交易费用,而非矿工费?

对比升级前后的公式,可以看出 EIP-1559 是将 GasPrice 拆分成了两个费率的组合:baseFee 和 PriorityFee。

名词解析

baseFee(基础费用)

baseFee 会根据上一区块的空间利用率自动调整,如果利用率超过 50%,则提升当前区块的 baseFee;反之降低。

按照 baseFee 计算公式,相邻区块间的 baseFee 变化幅度在 ±12.5% 之间:

  • 如果上一区块空间利用率为 100%,则当前区块 baseFee 将自动提升 12.5%
  • 如果上一区块空间利用率为 0%,则当前区块 baseFee 将自动降低 12.5%

不同于原来的矿工费机制,EIP-1559 升级后,交易费用不完全由矿工收取,其中 baseFee 将被完全销毁。

PriorityFee(小费)

PriorityFee 表示给矿工的小费,延续了竞价设计。如果希望自己的交易在区块中被尽快打包,可通过设置 PriorityFee 激励矿工,矿工将优先处理 PriorityFee 高的交易。

同时,用户还可以自行设置 PriorityFee 的最高值,即付给矿工小费的上限,也叫 maxPriorityFee。

maxFee(最高费用)

maxFee 表示用户愿意对某笔交易可支付的最高交易费用。对应到公式中,maxFee = baseFee + maxPriorityFee,其中 maxFee 和 maxPriorityFee 都支持用户自行设置,baseFee 则由算法自动给出。

注:升级后「矿工费」的说法已经不合适了,因为费用中的 baseFee 是要销毁的,只有 PriorityFee 由矿工收取。或许 EIP-1559 升级后,我们应该在以太坊生态中弃用「矿工费」的说法了。

EIP-1559 交易费用计算实例

  • 升级前
    • 矿工费 = GasPrice * GasUsed
  • 升级后
    • 交易费用 = (baseFee + PriorityFee)* GasUsed
      maxFee >= baseFee + maxPriorityFee
maxFee maxPriorityFee baseFee 销毁 PriorityFee(矿工小费)
50 10 1 1 10
50 10 40 40 10
50 10 45 45 50-45=5
50 10 50 50 50-50=0
50 10 60 由于 maxFee 小于 baseFee,这笔交易无法进入当前区块,将继续排队

注:如果交易失败,交易费用会退款给源地址,但是其中的PriorityFee矿工小费不会退还。

Nonce

Nonce决定了交易顺序,以上述链上交易详情[链上地址]为例。

val

排除非本账号发送方交易

val

可以看出同交易地址每交易一笔nonce则增加1,第一笔从O开始

val

以太坊共识机制

共识机制(也称为共识协议或共识算法)允许分布式系统(计算机网络)协同工作并保持安全。

共识机制常见类型

工作量证明(POW)

以太坊目前采用工作量证明 (PoW) 共识协议。这种机制允许以太坊网络的节点就以太坊区块链上记录的所有信息的状态达成共识,并防止某些产生经济影响的攻击。

什么是工作量证明 (POW)?

工作量证明是一种允许去中心化的以太坊网络达成共识或者一致认可账号余额和交易顺序的机制,这个机制防止用户“双花”他们的货币。

名词解析:“双花”问题是指一笔数字现金在交易中被反复使用的现象。

以太坊的工作量证明机制是如何运作的?

以太坊的交易被处理为区块。 每个区块有一个:

  • 区块的难度,例如:3,324,092,183,262,715
  • 混合哈希(mixHash),例如:0x44bca881b07a6a09f83b130798072441705d9a665c5ac8bdf2f39a3cdf3bee29
  • nonce–例如:0xd3ee432b4fb3d26b

区块的数据直接和 Pow 关联。

工作量证明机制

要求矿工经过激烈的试错竞赛,找到一个区块的 nonce。 只有具备有效 nonce 的区块才能被加入区块链中。

当通过比赛创建一个区块时,矿工将反复放置一个数据集,只能通过数学函数从下载和运行完整链(像矿工那样)中获得数据集。 这是为了根据区块所声明的难度,生成一个低于目标 nonce 的混合哈希(mixHash)。 做到这些最好的方式是试错。

难度决定了这个哈希(mixHash)的指标。 目标越小,有效的哈希值的集合就越小。 一旦哈希值生成,对于其他矿工和客户来说,是很容易校验哈希值是否有效的。

终局性

由于矿工是分散的,两个有效的区块是可以同时开采的。 这就造成一个临时的分叉。 最后只要两条中一条支链通过先挖出下一个区块成为最长的支链,这条支链就会被添加到主链上。

但为了使情况更复杂, 临时分叉上被拒绝的交易将会被记录在公认的主链上。 这意味着区块是可逆的。 因此,终局性是需要你等待一段时间至交易不可逆。 以太坊推荐的时间是等待 6 个区块或者超过 1 分钟。 这样你才能确定这笔交易已经成功。

POW总结

简单来说,pow就是“按劳分配“一个矿工付出多少,提供多少工作证明就是能拿到多少报酬,这也是千百年来社会分配最公平的方式,自己购买显卡显然是有收益的,按照自己工作量获取报酬,多少矿机工作记录可以提供证明,就可以获取相应的报酬。

权益证明机制(POS)

Eth升级到2.0,正在将其共识机制从工作量证明(POW)转变为权益证明(POS)

什么是权益证明?

这将要求用户抵押他们的以太币从而成为网络中合法的验证者。 验证者有着与矿工在 工作量证明(pow)中相同的职责:将交易排序和创建新的区块,以便让所有的节点就网路状态达成一致。

权益证明相较于工作量证明系统有许多改进:

  • 提高能效——您不需要大量能源去挖掘区块
  • 门槛降低,硬件要求减少——您不需要优秀的硬件从而获得建立新区块的机会
  • 更强的去中心化——权益证明可以在网络中提供更多的节点。
  • 更有力的支持分片链——一个得以扩展以太坊网络的关键升级

权益证明、权益质押和验证者

权益证明是一种用于激励验证者接受更多质押的基本机制。 就以太币而言,用户需要质押 32ETH 来获得作为验证者的资格。 验证者被随机选择去创建区块,并且负责检查和确认那些不是由他们创造的区块。 一个用户的权益也被用于激励良好的验证者行为的一种方式。 例如,用户可能会因为离线(验证失败)而损失一部分权益, 或因故意勾结而损失他们的全部权益。

以太坊权益证明是如何运作的?

与工作量证明不同的是,验证者不需要使用大量的计算能力,因为它们是随机选择的,相互间没有竞争。 他们不需要开采区块,他们只需要在被选中的时候创建区块并且在没有被选中的时候验证他人提交的区块。 此验证被称为证明。 你可以认为证明是说“这个块在我看来没问题”。 验证者因提出新区块和证明他们已经看到的区块而获得奖励。

如果你为恶意区块提供证明,你就会失去你的股权。

信标链

当以太坊用权益证明取代工作量证明时, [分片链] 的复杂性会增加。这是需要验证者来处理交易和创建新区块的独立区块链。 计划中将有 64 个分片链,并且它们都需要对网络的当下状态有一个共同的理解。 所以这需要额外的协调工作,这将由信标链来完成。

终局性

可以让验证者在某些检查点就一个区块的状态达成协议。 只要 2/3 的验证者同意,该区块就会被最终确定。 验证者如果试图稍后通过 51% 的攻击恢复,就会失去他们的全部权益。

POS与POW对比总结 [借鉴对话]

现目前仍然是POW,还没有升级完,预计明年初,或者年末,应该有兼容版本行为。

POW

  • 【人工】检查每个人的余额和交易是否检查出来,所以没有人会花费他们没有的硬币。这需要非常低的计算能力。|
  • 【机器】矿工通过购买更多和最好的采矿设备来做到这一点。该硬件不会为网络做有用的计算工作,它只是为块奖励奖品抽奖。PoW 矿工本质上是在硬件设备上投入资金以获得更多回报。
  • 如果矿工恶意行事,他们将失去区块奖励和运行钻机的运营成本,其中大部分是电费。恶意玩家损失的越多,区块链就越安全。所以钻机的运营成本和区块奖励必须尽可能高。这就是 PoW 在电力资源上如此浪费的原因。

POS

  • 摆脱了这种“硬件设备”中介。你直接下注你的钱,你的投票权与你下注的数量成正比。随机选择一个人提出一个区块,其他人必须签署该区块是正确的。
  • PoS 运营成本非常低。相反,如果你恶意行事,除了失去奖励(正强化),你的赌注也会被烧毁(负强化)。
  • 考虑到股权现在以网络货币计价,它可以更好地将激励措施与网络中的参与者保持一致。
  • 由于你的股权表现不佳,如果你再次尝试不诚实,你的下一次攻击就不那么有效了,因为你的股权现在降低了,你的投票权也降低了。
  • 由于不良行为者现在具有负强化,参与者不再那么狡猾,并且可以降低网络正强化以保持相同的安全水平。因此,网络可以减少块奖励。
  • 由于运营成本低,更多的人可以参与网络共识。您无需靠近矿机分销渠道或获得较低的电力成本。网络以这种方式更加去中心化

测试网络

BTC只有一个测试网络,为什么ETH会有多个,让我们一起来探究吧!

以太坊可以搭建私有的测试网络,不过由于以太坊是一个去中心化的平台,需要较多节点共同运作才能得到 理想的测试效果,因此并不推荐自行搭建测试网络。

以小狐狸为例

小狐狸

测试网 共识机制 出块间隔(s) 提供方 上线时间 备注 状态
Morden PoW 以太坊官方 2015.7 因难度炸弹退出 stopped
Ropsten PoW 30 以太坊官方 2016.11 接替Morden running
Kovan PoA 4 以太坊钱包Parity开发团队 2017.3 不支持geth running
Rinkeby PoA 15 以太坊官方 2017.4 最常用,只支持geth running
Goerli PoA 15 以太坊柏林社区 2018.9 首个以太坊2.0实验场 running

上图可以看出以太坊有一个主网络,四个测试网络。

  • Morden(已退役)

Morden是以太坊官方提供的测试网络,自2015年7月开始运行。到2016年11月时,由于难度炸弹已经严重影响出块速度,不得不退役,重新开启一条新的区块链。Morden的共识机制为PoW。

  • Ropsten网络[区块链浏览器]

    现目前项目采用的web3j-api,采用的Ropsten网络,也是最接近主网络的。

Ropsten也是以太坊官方提供的测试网络,是为了解决Morden难度炸弹问题而重新启动的一条区块链,目前仍在运行,共识机制为PoW。测试网络上的以太币并无实际价值,因此Ropsten的挖矿难度很低,目前在755M左右,仅仅只有主网络的0.07%。这样低的难度一方面使一台普通笔记本电脑的CPU也可以挖出区块,获得测试网络上的以太币,方便开发人员测试软件,但是却不能阻止攻击。

PoW共识机制要求有足够强大的算力保证没有人可以随意生成区块,这种共识机制只有在具有实际价值的主网络中才会有效。测试网络上的以太币没有价值,也就不会有强大的算力投入来维护测试网络的安全,这就导致了测试网络的挖矿难度很低,即使几块普通的显卡,也足以进行一次51%攻击,或者用垃圾交易阻塞区块链,攻击的成本及其低廉。

2017年2月,Ropsten便遭到了一次利用测试网络的低难度进行的攻击,攻击者发送了千万级的垃圾交易,并逐渐把区块Gas上限从正常的4,700,000提高到了90,000,000,000,在一段时间内,影响了测试网络的运行。攻击者发动这些攻击,并不能获得利益,仅仅是为了测试、炫耀、或者单纯觉得好玩儿。

为了解决测试网络中PoW共识机制的问题,以太坊钱包Parity的开发团队发起了一个新的测试网络Kovan。Kovan使用了权威证明(Proof-of-Authority)的共识机制,简称PoA。

PoW是用工作量来获得生成区块的权利,必须完成一定次数的计算后,发现一个满足条件的谜题答案,才能够生成有效的区块。

PoA是由若干个权威节点来生成区块,其他节点无权生成,这样也就不再需要挖矿。 由于测试网络上的以太币无价值,权威节点仅仅是用来防止区块被随意生成,造成测试网络拥堵,完全是义务劳动,不存在作恶的动机,因此这种机制在测试网络上是可行的。

Kovan与主网络使用不同的共识机制,影响的仅仅是谁有权来生成区块,以及验证区块是否有效的方式,权威节点可以根据开发人员的申请生成以太币,并不影响开发者测试智能合约和其他功能。

https://app.mycrypto.com/faucet 使用时,注意体检切换你的metamask钱包网络。 它支持多个网络水龙头领币。

Rinkeby也是以太坊官方提供的测试网络,使用PoA共识机制。与Kovan不同,以太坊团队提供了Rinkeby的PoA共识机制说明文档,理论上任何以太坊钱包都可以根据这个说明文档,支持Rinkeby测试网络,目前Rinkeby已经开始运行。

目前开发人员最常用的测试网络是Rinkeby

以太坊 2.0 是一个 PoS 网络,由质押代币的验证节点来生产区块并维持网络运行。因此,首先要解决的问题是如何将代币分配给验证节点以运行网络。

水龙头地址

水龙头(需翻墙,亲测可用 5ETH):https://faucet.dimensions.network/
水龙头(需翻墙,亲测可用 1ETH):https://app.mycrypto.com/faucet
水龙头:https://faucet.ropsten.be/

水龙头(需翻墙,亲测可用 1ETH):https://app.mycrypto.com/faucet

水龙头: https://faucet.rinkeby.io/

ETH节点客户端

[参考地址]

客户端

名称 地址 语言 支持系统 磁盘容量(快速同步) 磁盘容量(完整归档) 备注
geth https://github.com/ethereum/go-ethereum Go windows、linux和OSX 400GB+ 4.7TB+ 最广泛的以太坊客户端
Open Ethereum https://github.com/openethereum/openethereum/ Rust windows、linux和OSX 280GB 4.6TB+ 最小内存和存储空间占用
nethermind https://github.com/NethermindEth/nethermind C#、.NET Linux 、Mac 、 Windows 200GB+ 3TB+ 性能强劲的虚拟机
Parity https://github.com/paritytech/parity C++ Windows 、Linux、Mac 前面出问题的客户端

节点分布

节点分布

世界分布

城市分布

中国分布

城市分布

API [参考文章]

以太坊官网开放了前段、后端相关的技术API文档。每个以太坊客户端都将履行 JSON-RPC 规范,因此我们有一个统一的端点组可供应用程序们依赖。

以whateverPay使用api举例,采用了web3j库。[参考文章]

代币协议

在区块链上,数字加密货币分为原生币和代币两大类。代币之中又可分为同质化和非同质化两种

原生币

正如大家熟悉的比特币(BTC)、以太坊(ETH)等,拥有自己的主链,使用链上的交易来维护账本数据,交易手续费也是以原生币结算的。

代币

则是依附于现有的区块链,使用智能合约来进行账本的记录,如项目方依附于以太坊发布的token。最多的是以太坊(Ethereum)上的ERC20代币,部署一个ERC20的智能合约就可以发布一个token。

同质化代币

即FT(Fungible Token),互相可以替代、可接近无限拆分的token。例如,你手里有一个ETH与我手里的一个ETH,可以拆分,1 ETH = 1 * 10^18 Wei,本质上没有任何区别,这就是同质化代币。

非同质化

正如最近比较火:科比花55个以太坊(约18万美元,合人民币116万元)买下了一个猿猴头像。 孙宇晨韭菜王以1.2亿枚TRX购买NFT,价值约合1050万美元。有钱人的世界想象不到!

同质化代币,即NFT(Non-Fungible Token)属于ERC721协议,则是唯一的、不可拆分的token,如加密猫、艺术家的油画等。NFT都是独一无二、不可分割的。这意味着当一件作品被铸成NFT之后,这个作品就成为了区块链上独一无二的数字资产。

代币如何交易?

交易所的杠杆代币为ERC20代币,可直接在交易所的现货市场用USD进行交易。如果你有USDT的话,需要先在现货市场中使用USDT买入USD,然后再进行杠杆代币交易。需要注意的是,不管你在哪个交易所上交易他的杠杆代币,都会每天收取万三的持仓管理费,相较于其他交易所,管理费是最低的了。

空想不如实践

下载DAPP进行交易吧,实际操作,真实体验。输赢则在那一刹间,先给自己定一个小目标,先来一个亿。

文章作者: 陈 武
文章链接: http://www.updatecg.xin/2021/09/01/虚拟币-ETH/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 我的学习记录
打赏
  • 微信
  • 支付寶

评论
目录
  1. 1. 以太坊简介
  2. 2. 以太坊历史
  3. 3. 以太坊智能合约
    1. 3.1. 智能合约是什么
      1. 3.1.1. 智能合约有什么用
      2. 3.1.2. 为什么我们需要合约?
      3. 3.1.3. 履行合约约定
      4. 3.1.4. 合约的风险
        1. 3.1.4.1. 事件1-Parity钱包
      5. 3.1.5. 预防措施
  4. 4. 以太坊地址
    1. 4.1. 以太坊地址
      1. 4.1.1. 以太坊地址生成过程 可以借鉴此[文章]
      2. 4.1.2. 以太坊地址生成实例
    2. 4.2. 以太坊合约地址
      1. 4.2.1. 以太坊合约地址生成过程 可借鉴此[文章]
      2. 4.2.2. 发币过程
        1. 4.2.2.1. 第一步:在 Chrome 插件商店搜索并安装 MetaMask
        2. 4.2.2.2. 第二步:编写合约代码
        3. 4.2.2.3. 第三步:注入环境、绑定合约、部署发币
        4. 4.2.2.4. 第四步:等待发币结果
  5. 5. 以太坊参数(难度炸弹、出块速度、TPS、矿工费、Nonce)
    1. 5.1. 难度炸弹
      1. 5.1.1. 为什么要引入难度炸弹?
    2. 5.2. 出块速度
      1. 5.2.1. 出块速度怎么计算的?
    3. 5.3. TPS
    4. 5.4. 矿工费计算
      1. 5.4.1. 升级前的矿工费机制
      2. 5.4.2. 升级后的费用机制
      3. 5.4.3. 名词解析
      4. 5.4.4. EIP-1559 交易费用计算实例
    5. 5.5. Nonce
  6. 6. 以太坊共识机制
    1. 6.1. 共识机制常见类型
      1. 6.1.1. 工作量证明(POW)
        1. 6.1.1.1. 什么是工作量证明 (POW)?
        2. 6.1.1.2. 以太坊的工作量证明机制是如何运作的?
          1. 6.1.1.2.1. 工作量证明机制
          2. 6.1.1.2.2. 终局性
        3. 6.1.1.3. POW总结
      2. 6.1.2. 权益证明机制(POS)
        1. 6.1.2.1. 什么是权益证明?
        2. 6.1.2.2. 权益证明、权益质押和验证者
        3. 6.1.2.3. 以太坊权益证明是如何运作的?
          1. 6.1.2.3.1. 信标链
          2. 6.1.2.3.2. 终局性
      3. 6.1.3. POS与POW对比总结 [借鉴对话]
        1. 6.1.3.1. POW
        2. 6.1.3.2. POS
  7. 7. 测试网络
    1. 7.1. 以小狐狸为例
    2. 7.2. 水龙头地址
  8. 8. ETH节点客户端
    1. 8.1. 客户端
    2. 8.2. 节点分布
  9. 9. API [参考文章]
  10. 10. 代币协议
    1. 10.1. 原生币
    2. 10.2. 代币
    3. 10.3. 同质化代币
    4. 10.4. 非同质化
    5. 10.5. 代币如何交易?
  11. 11. 空想不如实践