前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >对以太坊的优雅介绍

对以太坊的优雅介绍

作者头像
天空
发布2018-03-13 15:13:58
1.8K0
发布2018-03-13 15:13:58

重要提示:如果您拥有价值超过1,000美元的加密货币,那么您肯定应该使用硬件钱包,而不是在交易所保留硬币。我推荐Trezor,您可以直接从他们的网站购买€89 。


介绍

以太坊建立在blockchain和cryptocurrency概念,所以如果你不熟悉这些,首先阅读《对比特币的优雅介绍》和《对区块链技术的优雅介绍》是值得考虑的。本文假定读者对比特币的工作原理有基本的了解。

以太坊是什么?

以太坊是在计算机网络上运行的软件,确保在没有中央协调器的情况下,在网络中的所有计算机上复制和处理被称为智能合同的数据和小型计算机程序。愿景是创建一个不可阻挡的审查制度,自我维持的分散的世界计算机。官方网站是https://www.ethereum.org

它扩展了比特币的区块链概念,在全球许多计算机上验证,存储和复制交易数据(因此称为“分布式分类帐”)。以太坊进一步向前迈进了一步,并且还在世界各地的许多计算机上等效运行计算机代码。

以太坊在分布式数据存储方面做的是分散式数据存储和计算。正在运行的小型计算机程序称为智能合约,合约由参与者在其计算机上使用称为“以太坊虚拟机”的操作系统运行。

你如何运行以太坊?

为了运行以太坊,你可以下载(或者如果你有耐心的话,自己写一些)被称为以太坊客户端的软件。就像BitTorrent或比特币一样,以太坊客户端将通过互联网连接到运行类似客户端软件的其他计算机,并开始从他们那里下载以太坊区块链来追赶。它也将独立验证每个块符合以太坊规则。

以太坊客户端软件有什么作用?您可以使用它来:

  • 连接到以太坊网络
  • 探索以太坊的区块链
  • 创建新的交易和智能合约
  • 运行智能合约
  • 挖掘新块

您的计算机成为网络上的“节点”,运行以太坊虚拟机,并且与所有其他节点的行为相同。请记住,在点对点网络中,没有“主”服务器,任何计算机都具有与其他任何计算机相同的权力或地位。

以太坊如何与比特币相似?

我认为通过探索以太坊和更简单的系统之间的相似点和不同点,了解以太坊是最容易的。那么相似之处是什么?

以太坊拥有区块链

像比特币一样,以太坊拥有区块链,其中包含数据块(交易和智能合约)。这些块由一些参与者创建或挖掘并分发给验证它们的其他参与者。

你可以在这里探索这个区块链:https://etherscan.io

块通过引用前一个块的散列或指纹形成链。请参阅区块链技术的简单介绍

以太坊是公开的,并且是无权限的

与比特币一样,以太网主要网络是一个公共的,无权限的网络 - 即任何人都可以下载或编写一些软件来连接网络,并开始创建交易和智能合约,验证它们,在不需要登录或与其他组织签约的情况下进行挖掘。

一般来说,当人们谈论以太坊时,他们指的是网络的主要公共无许可实例(版本)。但是,像比特币一样,您可以采用以太坊软件,稍微修改它,并创建未连接到主要公共网络的专用网络。尽管如此,私人令牌和智能合约不会与公共令牌兼容。有关公共权限和私人权限网络之间的差异的更多信息,请参阅区块链混淆?革命与进化

以太坊拥有工作证明(PoW)采矿

和比特币一样,采矿参与者通过花费电力来找到解决数学难题的有效方法。以太坊的PoW数学挑战称为Ethash,与比特币的工作方式略有不同,这允许通用硬件用于采矿。这降低了称为ASIC的任务特定硬件的效率优势,这在比特币挖掘中很常见。在以太坊的路线图上,计划从未来发布的以太坊软件名为Serenity的软件中,从耗电量高的Proof-of-Work开采转变为更加节能的Proof-ofPake协议,称为Casper。

以太坊拥有内置的加密货币

以太坊的令牌称为以太,缩写为ETH。这是一种加密货币,可以像其他加密货币或其他主权货币一样进行交易,就像BTC一样。其当前价值约为每个ETH令牌13美元(2016年10月)。令牌所有权在以太坊区块链上进行追踪,就像比特币区块链上的BTC所有权一样,尽管在技术层面他们以稍微不同的方式跟踪它们。

以太坊与比特币有什么不同?

这是它变得更加技术化,并且在许多方面更加复杂的地方。

以太坊的入块时间更短

在以太坊,快之间的时间约为14秒,而比特币的时间约为10分钟。这意味着平均来说,如果您进行比特币交易和以太坊交易,以太坊的交易将会被记录到以太坊的区块链中,比比特币交易进入比特币的区块链要快得多。你可能会说,比特币每10分钟就会给它的数据库写一次,而Ethereum每隔14秒就会给它的数据库写一次。

以太坊有更小的块

在比特币中,最大块大小以字节为单位(当前为1 MB),而以太坊的块大小则基于正在运行的合同的复杂程度 - 它被称为每块的Gas限制,每个块的最大值可能略有不同。

目前在以太坊的最大块大小约为1,500,000Gas。从一个账户到另一个账户的基本交易或ETH支付(即不是智能合约)的复杂性为21,000 Gas,因此您可以将大约70笔交易合并到一个区块(1,500,000 / 21,000)中。在比特币中,您目前在一个区块内获得约1,500-2,000笔交易。

目前大部分以太坊数据块的数据大小都在2 KB以下。

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

与比特币的原始脚本语言相比,可以在Ethereum中部署并作为智能合约运行的代码对开发人员而言更为先进和熟悉。智能合约代码由一个称为以太坊虚拟机的东西运行,该虚拟机在网络上所有参与者的计算机上运行。如果您熟悉Microsoft Excel宏(由Excel运行的代码段),那么类似的智能合约就是由Ethereum的虚拟机运行的代码段。

在很多描述中,以太坊智能合约被称为“图灵完整”。这意味着它们功能完备,可以执行任何其他编程语言中可以执行的计算。

ETH令牌发行

ETH代币是如何打印或创建的?ETH和BTC令牌生成最大的不同在于,BTC每隔大约四年减半,而ETH每年继续以固定数量生成(可能只有在Serenity版本之前)。

这比比特币复杂得多。总之,ETH的存在数量是:

Pre-mine + Block奖励+ Uncle奖励+ Uncle奖励

预矿

2014年7月/ 8月为大众创造了约7200万ETH。这有时被称为“预先排雷”。已经决定,未来的ETH世代将被限制在每年25%(即每年可以开采不超过18m的ETH,此外还包括为众包产生的一次性约72m ETH)。

阻止奖励

目前每个矿区开采5个新鲜的ETH。做数学,如果每14秒发射一个地块,一年有31.5米秒(365x24x60x60),这意味着每年开采2.25米地块。每块5 ETH = 2.25m块=每年产生11.3m ETH。这符合每年产生的低于18m ETH的承诺。

叔叔奖励

实际上它比这更多一点。有些地块开采时间稍晚,不构成主要区块链的一部分。在比特币中,这些被称为“孤儿”,完全被丢弃,但在以太坊他们被称为'叔叔',可以被后来的块引用。如果叔叔在以后的街区被称为叔叔,他们会为叔叔的矿工创造大约4.375 ETH(全部5次ETH奖励的7/8)。这被称为叔叔奖励。目前,约有500名叔叔每天创建,每天增加额外的2,000 ETH(每年以这种速度每年增加约0.7M ETH)。

叔叔参考奖励

还有一点:一位参考叔叔的矿工每个叔叔也得到约0.15 ETH(最多2个叔叔)。

上面描述的这个模型,其中有效的块被确定并且矿工被奖励,被称为Ghost协议(贪婪最重要的观察子树)。

ETH一代的未来变化

当Ethereum从工作证明(包括Ghost发行规则)移动到股权证明作为块添加机制时,发行时会发生什么情况尚未真正确定。证明机制将使用一个名为卡斯帕的协议(是的,就像友善的幽灵一样,谁说冷兵器没有幽默感?)。根据卡斯珀的ETH发行率可能会低于现在的Ghost。

挖掘奖励

那么,矿工得到什么采矿?

在比特币中,矿区的矿工将收到:

  • 12.5新BTC(目前,请参阅关于比特币挖掘的详细介绍),另外
  • 交易费用包含在该区块中

在以太坊,一个街区的矿工会收到:

  • 5个新的ETH区块奖励(对于叔叔来说,新的ETH为4.375),加上
  • 一个小的新奖励参考2个最近的叔叔(1/32的块奖励,即1/32 x 5 ETH = 0.15625每个叔叔新的ETH),加上
  • 天然气从区块运行的合同中获得

目前,平均块体的天然气极限为1,500,000天然气,网络平均天然气价格为0.000 000 022 ETH,这意味着矿工可能在“全部”区块内获得0.033 ETH作为天然气奖励。请注意,合同中的天然气是现有 ETH的支付,而不是创建新的 ETH。

以太坊的其他部分:Swarm和Whisper

计算机需要能够计算存储数据和进行通信。为了让以太坊实现其作为一个不可阻挡的自我审查分散式'世界'计算机的愿景,它需要能够以一种可靠的方式高效率地完成这三件事情。以太坊虚拟机只是整体的一个组成部分:

  • 复仇虚拟机是可以运行契约逻辑“计算”元素
    • 这是不依赖中央服务器的计算

  • Swarm是Peer-to-Peer文件共享,与BitTorrent类似,但是通过ETH的微支付激励。文件被分成大块,分发和存储与参与志愿者。存储和提供数据块的这些节点由存储和检索数据的ETH进行补偿。
    • 这是不依赖中央服务器的文件存储

  • Whisper是一种加密的消息传递协议,它允许节点以安全的方式直接发送消息给对方,并且也将发送者和接收者从第三方窥探者身上隐藏起来。
    • 这是不依赖中央服务器的通信

以太坊的概念

智能合约

智能合约是储存在以太坊区块链上的小型计算机程序。他们可以通过为他们提供一些ETH来激活或运行。有关智能合约的更多信息,请参阅对智能合约的简单介绍

以下是来自维基百科的智能合约示例:

来源:https//en.wikipedia.org/wiki/Solidity

在以太坊,您通过创建一个包含一些代码的新帐户并在交易中将其上传到以太坊区块链来设置智能合约。

一旦合同上传完毕,它就像点唱机一样 - 当你想运行它时,你创建一个包含ETH支付给合同的交易,并且如果合同需要它可能提供一些其他信息。

每台采矿计算机将使用他们的以太坊虚拟机作为采矿过程的一部分在他们的计算机上运行智能合同,并对产出做出结论。从理论上讲,如果没有人表现不好,以太坊网络上的每台计算机都会得出同样的结论,因为它们使用相同的提供信息运行相同的合同代码。

当一个块被开采时,获胜的矿工将把块发布到网络的其他部分,其他计算机将验证他们得到了相同的结果,然后将块添加到他们自己的区块链中。这就是以太坊区块链的状态如何得到更新。

帐号

在比特币中,有一个称为地址的概念,其中比特币的存储方式 - 比如银行账号,但比特币。在以太坊这些通常被称为帐户,有两种类型:

叔叔和孤儿:不太成功的区块

以太坊的区块生成速度远高于比特币(以太坊为每小时250块,比特币为每小时6块)。当更多块创建得更快时,“块冲突”的速度就会增加 - 即几乎同时可以创建多个有效块,但其中只有一个可以将其加入主链。另一个“失败”,其中的数据不被视为主分类账的一部分,即使这些交易在技术上是有效的。

在比特币中,这些非主链块称为孤儿块孤儿块,它们不以任何方式构成主链的一部分,并且不会被任何后续块重新引用。

在以太坊他们被称为叔叔。叔叔可以被后面的几个块引用(参见ETH发行部分),尽管没有使用它们中的数据,但挖掘它们的稍微小一点的奖励仍然有效。

这实现了两件重要的事情:

  1. 尽管创建非主链块的机会很高(区块创建的高速度导致更多的叔叔与孤儿),但它激励矿工挖矿,
  2. 它通过承认创建叔叔块的能量来增加区块链的安全性

Gas和Gas价格

当您激活智能合约时,您会要求整个网络中的所有矿工各自单独执行其中的计算。这耗费了他们的时间和精力,而Gas则是你为这项服务付费的机制。

付款是少量的ETH,希望执行合同的人需要发送给矿工以使其工作。这与将硬币放入自动点唱机中相似。

支付(在ETH中)gas量(在gas中)×gas价格(在ETH /gas中)

Gas数量

智能合约(计算步骤的数量和类型,用于存储的内存等)越复杂,合同运行和完成所需的Gas越多。在自动点唱机的比喻中,歌曲越长或越大,那么你就需要付出更多努力才能使它工作。

gas价格

鉴于根据合同的复杂性确定的任何特定合同的gas数量是固定的,gas价格由希望合同运行的人在他们提出要求时指定(有点像比特币交易费用)。每个矿工都会考虑gas价格的慷慨程度,并决定他们是否希望将合同作为区块的一部分。如果你想让矿工来执行你的合同,你会提供高的gas价格。通过这种方式,这是一个竞争性的拍卖,由某人愿意支付多少钱来签订合同。

如果智能合同的签订是免费的,那么就会让人们不愿意随意地激活他们,解决与交易垃圾相关的问题。

ETH单位

就像1美元可以分成100美分,1 BTC可以分成100,000,000美元,以太坊也有自己的单位命名约定。

最小的单位是wei,每个ETH有1​​,000,000,000,000,000,000个单位。还有一些其他中间名:Finney,Szabo,Shannon,Babbage,Ada - 都以对加密货币或网络相关领域做出重大贡献的人命名。

wei和以太是两个最常见的教派。

智能合约语言:Solidity / Serpent,LLL

有三种通用语言写入智能合约,可以编译为智能合约并在以太坊虚拟机上运行。他们是:

  • Solidity - 类似于语言Javascript。这是目前最流行和最实用的智能合约脚本语言。
  • - 类似于Python的语言,并且在以太坊的早期历史中很受欢迎。
  • LLL(Lisp Like Language) - 与Lisp类似,仅在早期才真正使用。这可能是最难写的。

以太坊软件:geth,eth,pyethapp

Ethereum的官方客户端都是开源的 - 你可以看到他们背后的代码,并调整它们来制作你自己的版本。最受欢迎的客户是:

这些都是基于命令行的程序(认为黑色背景上的绿色文本),所以附加软件可用于更好的图形界面。目前官方和最流行的图形化版本是Mist(https://github.com/ethereum/mist),它运行在geth或eth之上。

所以,geth / eth做了令人讨厌的背景材料,而Mist就是最好的屏幕。


历史:以太坊时间轴

Vitalik Buterin 在2013年后期的白皮书中将Ethereum描述为一个概念。该概念由Gavin Wood博士开发,他最终于2014年4月发布了技术黄皮书。自此以后,Ethereum的开发工作由开发人员社区管理。

2014年7月和8月举行了一场众筹融资活动,并于2015年7月30日推出了以太坊的现场区块链。

以太坊众包

开发团队在2014年7月至8月期间通过网上销售 ETH代币获得资助,人们可以通过比特币购买ETH代币,初始固定汇率为2000 ETH 1 BTC(目前2016年10月1 BTC将购买50 ETH在公开市场上)。

Crowdsale参与者将比特币发送至比特币地址,并收到一张包含购买ETH数量的以太坊钱包。技术细节在以太坊博客https://blog.ethereum.org/2014/07/22/launching-the-ether-sale/上

有超过60m的ETH以这种方式卖出,超过31,500 BTC,价值约1800万美元。另外还有20%(12亿欧元)用于资助发展和以太坊基金会。

软件版本代号:Frontier / Homestead / Metropolis / Serenity

这些是以太坊核心软件版本的友好名称,有点像Apple的OS X版本名称,如Mavericks,El Capitan,Sierra。

  • Olympic(testnet):2015年5月推出 - 测试版本中硬币与“真实”ETH不兼容。测试网仍然与主现场网络平行运行,以便开发人员可以测试其代码。
  • Frontier:2015年7月30日发布 - 首次实时发布,让人们可以挖掘ETH并构建和运行合同。
  • Homestead:2016年3月14日推出 - 一些协议的变化,更稳定。
  • Metropolis:未来发布 - 从命令行转向图形界面。
  • Serenity:未来的发展 - 从工作证明转向利益证明(卡斯帕)。
评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • 以太坊是什么?
  • 你如何运行以太坊?
  • 以太坊如何与比特币相似?
    • 以太坊拥有区块链
      • 以太坊是公开的,并且是无权限的
        • 以太坊拥有工作证明(PoW)采矿
        • 以太坊拥有内置的加密货币
        • 以太坊与比特币有什么不同?
          • 以太坊的入块时间更短
            • 以太坊有更小的块
              • 以太坊虚拟机可以运行智能合约
                • ETH令牌发行
                  • 预矿
                  • 阻止奖励
                  • 叔叔奖励
                  • 叔叔参考奖励
                • ETH一代的未来变化
                  • 挖掘奖励
                    • 以太坊的其他部分:Swarm和Whisper
                    • 以太坊的概念
                      • 智能合约
                        • 帐号
                          • 叔叔和孤儿:不太成功的区块
                            • Gas和Gas价格
                              • Gas数量
                              • gas价格
                            • ETH单位
                              • 智能合约语言:Solidity / Serpent,LLL
                                • 以太坊软件:geth,eth,pyethapp
                                • 历史:以太坊时间轴
                                  • 以太坊众包
                                    • 软件版本代号:Frontier / Homestead / Metropolis / Serenity
                                    相关产品与服务
                                    腾讯云区块链服务平台 TBaaS
                                    腾讯云区块链服务平台(Tencent Blockchain as a Service,简称TBaaS)致力于打造全球领先的企业级区块链技术平台,帮助客户、开发者及合作伙伴轻松创建和管理可托管、可扩展的区块链网络,助力产业协同发展。TBaaS 支持长安链·ChainMaker、Hyperledger Fabric等区块链底层平台,简化部署、运维及开发流程,实现业务快速上链,提升链上治理效率。
                                    领券
                                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档