主页 > imtoken钱包ios下载链接 > 详细解释以太坊

详细解释以太坊

imtoken钱包ios下载链接 2023-04-04 06:04:36

|红点指南|

这是红点指南的第42篇原创文章

eth以太坊挖矿hashrate_以太坊挖矿教程2021_以太坊ETH挖矿教程

更多原创内容正在制作中

点击上方“公众号”即可订购! !

29

星期五

2017 年 11 月

11月,以太坊创始人来SUSS做以太坊讲座,笔者有幸出席。 会场上,Vitalik用通俗易懂的语言介绍了以太坊及其发展。

以太坊挖矿教程2021_eth以太坊挖矿hashrate_以太坊ETH挖矿教程

去中心化解决方案往往比其他方法具有更高的计算成本,但它们承担了这一负担以实现更低的社会成本。

-----维塔利克

以太坊ETH挖矿教程_eth以太坊挖矿hashrate_以太坊挖矿教程2021

以太坊简介

自2008年比特币出现以来,数字货币就进入了人们的视野。 比特币的设计只适用于单一的支付场景,PoW 挖矿机制仍然存在资源浪费和效率问题,在很多区块链应用场景中并不适用。 人们需要一个新的基于区块链的、具有图灵完备性、高效共识机制、支持更多应用场景的智能合约开发平台。 以太坊就是在这样的情况下应运而生的。

以太坊由 Vitalik Buterin 于 2013 年底提出。2014 年 7 月至 8 月期间众筹了 1190 万个 ETH(占总供应量的 13%)。以太坊系统于 2015 年 7 月 30 日投入使用。以太坊的目的是整合和改进脚本、山寨币和链上元协议等概念。

比特币用于数据的分布式存储,以太坊用于数据的分布式存储和计算。 这些小型计算机运行称为智能合约的程序,合约由参与者通过称为“以太坊虚拟机”的操作系统在自己的机器上运行。 从底层来看,以太坊是一个多层的、基于密码学的开源技术协议。 它的不同功能模块在设计上完全集成,作为一个整体,它是一个创建和部署去中心化应用程序的综合平台。

同时,以太坊也是区块链和智能合约的完美结合。 它是智能合约的完整解决方案。 它被设计成一个通用的去中心化平台,拥有一整套可以扩展其功能的工具。 在P2P网络、加密、HttpClient等技术的支持下,实现了类似于比特币的区块链。 与比特币不同的是,以太坊上可以任意编写智能合约,通过智能合约实现强大的功能,实现去中心化应用的开发。 部署在以太坊上的智能合约运行在以太坊专用的虚拟机上,通过以太坊虚拟机和RPC接口与底层区块链进行交互。

以太坊整体系统架构如下图所示:

eth以太坊挖矿hashrate_以太坊挖矿教程2021_以太坊ETH挖矿教程

以太坊ETH挖矿教程_eth以太坊挖矿hashrate_以太坊挖矿教程2021

以太坊技术

01

虚拟机 (EVM)

以太坊虚拟机 (EVM) 是以太坊中智能合约的运行时环境。 这是以太坊项目的又一重大创新。 有人说 EVM 是“在区块链之上”,而实际上它是由许多互连的计算机组成的。 任何人都可以上传程序并让这些程序自动执行,同时确保每个程序的当前和所有先前状态始终公开可见。 这些程序在区块链上运行,并严格按照 EVM 定义的方式继续执行。

02

共识算法

在以太坊从工作量证明(PoW)(包括 Spectre 发行规则)切换到权益证明(PoS)之后,以太币的发行会发生什么,目前还没有定论。 权益证明机制将使用一种称为 Casper 的协议,在该协议下,以太币的发行率将大大低于 Spectre。

03

帐户

以太坊中有两种类型的账户,它们共享相同的地址空间。 外部账户,由公私密钥对控制。 合约账户,此类账户由账户中存储的代码控制。 外部账户地址由公钥确定,合约账户地址由合约创建者的地址和合约创建时该地址发送的交易数量计算得出。 两种账户的唯一区别是外部账户没有代码,人们可以通过创建和签署交易从外部账户发送消息。 每当合约账户收到一条消息时,合约内部的代码就会被激活,允许它读取、写入内部存储、发送其他消息以及创建合约。

以太坊中的一个账户由4部分组成:①一个随机数,一个计数器,用来确定每笔交易只能处理一次; ② 当前账户中的以太币余额; ③ 账户的合约代码(如有); ④ 账户的存储空间(默认为空)。

04

信息

以太坊消息传递与比特币交易有些相似,但两者之间有 3 个重要区别。

1)以太坊消息可以由外部实体或合约创建,而比特币交易只能在外部创建。

2) 以太坊消息可以选择性地包含数据。

3)如果以太坊消息的接收者是合约账户,可以选择响应,也就是说以太坊消息也包含了函数的概念。

05

贸易

以太坊中的“交易”是指存储从外部账户发送的消息的签名数据包。 交易包含消息的接收者、确认发送者的签名、以太币账户余额、要发送的数据以及两个称为 STARTGAS 和 GASPRICE 的值。 为了防止代码中的指数爆炸和无限循环,每个交易都需要限制执行代码所需的计算步骤数。 STARTGAS是通过需要支付的燃料来限制计算步数,GASPRICE是每一步计算需要支付给矿工的燃料价格。

06

气体

以太坊上的每笔交易都会收取一定数量的 Gas。 设置Gas的目的是为了限制交易执行所需的工作量,并为交易的执行付出代价。 当EVM执行一笔交易时,Gas会按照一定的规则逐渐消耗。 Gas价格由交易创建者设定,发送账户需要预付交易费=GASPRICE*Gas量。 如果执行后还有Gas剩余,则将Gas返还给发送账户。 无论在哪里执行,一旦Gas耗尽,都会触发out-of-gas异常。 同时以太坊ETH挖矿教程,将回滚当前所做的所有状态修改。

07

存储、主存和堆栈

每个账户都有一个常驻内存区域,称为storage,它是key-value的形式,key和value的长度都是256位。 在合约中,无法遍历账户的存储。 与主存和栈相比,存储读(read)操作的开销更大,修改(update)存储的消耗更大。 合约只能读写自己的存储。 第二个内存区域称为主内存(memory)。 每次调用消息时,合约执行都会有一个新的清除主内存。 主存可以按字节寻址,但读写的最小单位是32字节。 操作主存的开销随着主存的增长而变大。

EVM 不是基于寄存器的,而是基于堆栈的虚拟机。 因此,所有计算都在称为堆栈的区域内执行。 堆栈最多有 1024 个元素,每个元素有 256 位。 对栈的访问仅限于栈顶,允许将栈顶的 16 个元素之一复制到栈顶,或者交换栈顶的 16 个元素之一。 所有其他操作只能取最顶层的一个或几个元素,并将结果压入栈顶。 当然,你可以把栈中的元素放入存储器或主存中。 但是不可能只访问栈中指定深度的元素。 在此之前,必须从堆栈中删除指定深度以上的所有元素。

08

指令系统

EVM 的指令集故意保持在最低限度,以避免可能导致共识问题的错误。 所有指令都对 256 位的基本数据单元进行操作。 它们有共同的算术和比较操作,也可以进行条件跳转和无条件跳转。 此外,合约可以访问当前区块的相关属性,例如它的编号和时间戳。

09

留言电话

合约可以通过消息调用调用其他合约,或者发送以太币给非合约账户。 消息调用与交易非常相似,它们都有源(发送者)、目标(接收者)、数据负载(数据)、以太币、气体和返回数据。 实际上,每笔交易都可以看作是一次顶层的消息调用,进而产生更多的消息调用。

合约可以决定剩余 Gas 的分配。 比如内部消息调用使用了多少Gas,或者预留了多少Gas。 如果在内部消息调用过程中发生了 out-of-gas 异常或其他异常,将通知合约并将错误代码压入堆栈。 这种情况只是内部消息调用的gas耗尽。 在solidity中,这种情况下发起调用的合约默认会触发一个人为的异常,这个异常会打印出调用栈。

如前所述,被调用合约(以及调用合约)将拥有新的主内存并可以访问调用有效负载。 呼叫有效载荷存储在称为呼叫数据的单独区域中。 调用执行后,返回的数据会存放在调用者预先分配的一块内存中。 调用层数限制为1024。所以对于更复杂的操作,我们应该使用循环而不是递归。

10

代码调用和库

以太坊中存在一种特殊类型的消息调用,称为调用代码。 它与消息调用几乎完全相同,只是从目标地址加载的代码将在调用合约的上下文中运行。 这意味着合约可以在运行时从另一个地址动态加载代码。 这允许 Solidity 实现“库”。 可复用的库代码可以应用于合约的存储,可以用来实现复杂的数据结构,让智能合约更加强大。

11

蜂群和耳语

Swarm 是一种点对点文件共享,类似于 BitTorrent,但以以太币作为奖励的微奖励。 文件被分解成块,由参与的志愿者分发和存储。 那些存储和服务块的节点从那些需要存储和检索数据服务的节点那里得到以太币补偿。

Whisper 是一种信息检索协议,它允许节点以安全的形式直接向彼此发送信息,并向第三方窥探者隐藏发送者和接收者的信息。

以太坊ETH挖矿教程_eth以太坊挖矿hashrate_以太坊挖矿教程2021

以太坊挖矿

目前,每产生一个新区块,就会产生 5 个以太币。 算一算,如果每 14 秒挖出一个区块,一年有 3150 万秒(365x24x60x60),这意味着每年挖出 225 万个区块。 225万个区块,每个区块5个ETH,即每年会产出1130万个ETH。 这个数字与低于 1800 万 ETH 的产量相吻合。 事实上,这个数字可能略高于上述数字。 一些块是稍后开采的,因此不能称为主区块链的一部分。 比特币称这样的块为“孤立块”并完全丢弃它们。 但是,以太坊称他们为“叔叔”,在后面的区块中,可以引用他们。 如果叔块在后续区块链中被引用为叔块,每个叔块将为矿工产生大约 4.375 个以太币(5 个以太币奖励的 7/8)。 这称为叔块奖励。 矿工每引用一个叔叔(最多引用两个叔叔)可获得约 0.15 ETH。 这种定义有效区块并奖励矿工的模式称为“Greedy Heaviest-Observed Sub-Tree,简称GHOST”。

以太坊ETH挖矿教程_eth以太坊挖矿hashrate_以太坊挖矿教程2021

以太坊和比特币有什么区别

01

以太坊的出块时间更短

与比特币的 10 分钟相比,以太坊的区块间时间约为 14 秒。 这意味着当你在比特币和以太坊中发起交易时,以太坊中的交易比比特币更快地记录在区块链中。 你可以认为比特币平均需要 10 分钟才能写入数据库,而以太坊平均需要 14 秒才能写入数据库。

02

以太坊有更小的区块

在比特币中,目前最大的区块大小限制为1M,而以太坊的区块大小是根据其上运行的智能合约的复杂程度来决定的——这叫做Gas limit,每个区块的最大值会根据情况。 不同的。 以太坊当前的最大区块大小约为 1,500,000 Gas。 从一个账户到另一个账户的 ETH 基础交易或支付(不是智能合约)消耗大约 21,000 Gas。 因此,每个区块大约可以放置 70(1500000/21000)笔交易。 在 Bit 中,目前每个区块可以包含大约 1500 到 2000 笔交易。 目前大多数以太坊区块大小都在 2KB 以下。

03

智能合约可以在以太坊虚拟机上运行

与比特币最初的脚本语言相比,以太坊中用于部署代码和运行智能合约的语言更高级,因此也更为开发者所熟悉。 智能合约代码在称为以太坊虚拟机的东西上运行,该虚拟机在网络中所有参与者的计算机上运行。 如果您熟悉 Microsoft Excel 宏命令(Macro),同样,可以将智能合约视为运行在以太坊虚拟机上的代码块。

以太坊ETH挖矿教程_eth以太坊挖矿hashrate_以太坊挖矿教程2021

智能合约语言

共有三种常见的智能合约语言,可以编译成智能合约运行在以太坊虚拟矿机上。 他们是:

Solidity——类似于 Javascript 语言。 这是目前最流行、功能最丰富的智能合约脚本语言。

Serpent - 类似于 Python 语言以太坊ETH挖矿教程,它在以太坊历史的早期就很流行。

LLL (Lisp Like Language) - 类似于 Lisp,只在早期使用。 它可能是最难使用的。

以太坊ETH挖矿教程_eth以太坊挖矿hashrate_以太坊挖矿教程2021

以太坊软件

官方以太坊客户端都是开源的——你可以查看它们背后的代码并重构它们以开发你自己的版本。 最受欢迎的客户是:

1)geth(Go语言客户端)ethereum/go-ethereum

2) eth (C++ 客户端) ethereum/cpp-ethereum

3)pyethapp(Python客户端)ethereum/pyethapp

这些都是基于命令行的程序。 目前最流行的官方图形软件是Mist(ethereum/雾)。 Mist 在 geth 或 eth 之上运行。 所以,geth/eth是底层,Mist是顶层的雅屏。

以太坊ETH挖矿教程_eth以太坊挖矿hashrate_以太坊挖矿教程2021

总结

这里详细介绍一下以太坊的发展历史和技术分析,其中很多可以在以太坊白皮书中找到。 可以说以太坊是智能合约的完美解决方案。 它的出现标志着从单一的支付应用向普惠大众的平台转变。 其上运行的分布式程序(DApp)将改变现有的商业模式。 我们将在下一篇文章中重点介绍以太坊的商业应用,敬请期待。