Ethereum-Homestead-Guide中文版节选一、以太坊是什么

连载序言:

以太坊(Ethereum)是世界上第一个也是迄今为止最大的基于区块链技术的智能合约平台。这份手册是其第一个生产版本Homestead的技术手册,主要目的是帮助初中级用户和开发者了解以太坊的方方面面和相关客户端、开发工具的使用。它是由以太坊社区在Github上共同维护的。Github地址:https://github.com/ethereum/homestead-guide.git

我个人从今年4月中旬开始,用业余时间对这份手册进行了翻译,期间因为工作原因时有中断,到现在才基本完成。我计划在最后一个月的校对和语言润色过程中,节选部分与技术细节、客户端或开发工具无关的,关于以太坊所涉及的一些相关概念的介绍章节,作为独立的文章在我个人的简书上进行连载。节选的时候,我会在不影响阅读的前提下,去掉外部网站资源链接或这份在线文档内的引用。有兴趣的读者可以访问我个人的Github取得完整的翻译稿源代码自行编译为html文档。Github地址:https://github.com/riversyang/homestead-guide-cn.git

此外,相信很多朋友都会对今年上半年国内的区块链(虚拟货币ICO)热潮以及9月初央行联合各金融管理机构联合发布的ICO非法的公告造成的影响有些许了解,但ICO和以以太坊为代表的智能合约平台并没有关系,ICO也不是区块链应用的唯一出路。(关于区块链的基本概念及其应用的话题,我也会择机另行撰文探讨。)我个人依然很看好区块链技术在个人业务领域结合智能合约,以及在企业业务领域作为基础数据存储革新的市场前景,因为这代表着“未来”的去中心化自由经济趋势和更高的安全性、技术级别的可信性。所以我决定开始这个连载,帮助可能的用户和开发者了解以太坊及智能合约的概念。而这也是我在开博随笔中提到的今年做的另一件真正有意义的事情。同时我也希望各层次的读者都能在这个连载中有所收获。

对文章内容或者相关概念有任何疑问、意见或者建议,都可以在简书中给我留言,我会酌情回复;当然,也可以通过Github与我联系。期待与大家的更多互动。

2017年11月


以太坊是什么?

以太坊(Ethereum)是一个开放的区块链平台,可以让任何人都能够创建和使用基于区块链技术的去中心化应用程序。与比特币一样,没有人控制或拥有以太坊,它是一个由全世界的许多人所共通创建的开源项目。 不同于比特币的是,以太坊被设计成灵活的、可根据需求修改的模式。在以太坊平台上创建应用是很容易的,在Homestead这个版本中,所有人使用这些应用程序都已经很安全了。

下一代的区块链

区块链技术是比特币的基础技术,在神秘的作者中本聪(Satoshi Nakamoto)于2008年发表的的白皮书"Bitcoin: A Peer-to-Peer Electronic Cash System"中被首次描述。尽管在这篇最初的论文中已经提及了区块链技术的泛用性,但区块链作为通用术语出现,还是在几年之后的事。区块链是一个分布式的计算架构,每个网络节点都执行和记录同样的交易流水,这些流水数据被组织到所谓区块之中。在同一时间,只有一个区块可以被添加到区块链中;每个区块都包含一个数学证明,来证实它是在它之前的所有区块之后产生的。用这种方法,使区块链的“分布式数据库”在整个网络中达到共识。用户与账本(交易流水)的交互通过强大的加密方式保证其安全性。负责维持和校验整个网络状态的节点,将获得基于编码到协议中的经济学奖励算法计算得出的奖励。

对于比特币而言,分布式数据库被设想成通过比特币代币在账户间的转移来使个人用户间的去信任金融变为可能的一种账户结算表、账本和交易流水的集合。但随着比特币吸引了越来越多的开发者和技术专家,一些新奇的项目开始用比特币网络来做一些代币价值转移以外的工作。其中一些项目采用了"alt coins"的模式,通过改进原始的比特币协议形成自己的加密货币,从而将区块链分离以增加新的特性和功能。在2013年底,以太坊(Ethereum)的发明人Vitalik Buterin正式提出了一个设想,这是一个具有再编程能力的、用来执行任意复杂计算的单一区块链,可以将很多其他的项目纳入其内。

在2014年,以太坊(Ethereum)的创始人Vitalik Buterin, Gavin Wood和Jeffrey Wilcke就开始致力于构建下一代的区块链技术的工作,以实现一个通用的、完全去信任的智能合约平台(smart contract platform)。

以太坊虚拟机

以太坊是一个可编程的区块链。以太坊允许用户根据自己的设想创建任意复杂的操作,而不是只给用户一些预设好的操作(例如比特币的交易操作)。用这种方法,它成为了一个支撑许多不同类型的去中心化区块链应用的平台,包含但不仅限于加密货币。

狭义上说,以太坊是定义了去中心化应用平台的一套协议。其核心就是可以运行任意的复杂计算代码的以太坊虚拟机(Ethereum Virtual Machine,即EVM,后续连载中会有更详尽的介绍,译者注) 。用计算机科学术语来讲,以太坊是“图灵完备”的。开发者可以使用友好的编程语言在EVM上创建应用程序,比如使用JavaScript或Python。

与其他任何区块链一样,以太坊也包含一个P2P(peer-to-peer)网络协议。以太坊区块链数据库,由众多的连接到此网络的节点维护和更新。每个节点都会运行EVM并执行相同的操作序列。因此,以太坊有时也被形象的描述为“全球计算机”(“world computer”)。

这种跨越整个以太坊网络的超大规模并行计算,并不会使计算更加高效。事实上,这样的过程,使在以太坊上进行的普通的计算远比使用传统的“计算机”来的更慢、更昂贵。但是,由于每个以太坊节点都会运行EVM来在区块链上达成共识,这种去中心化的共识,也给了以太坊极致的容错性(fault tolerance)、零宕机时间(zero downtime)、使存储在区块链上的数据永远无法更改(forever unchangeable)和抗审查(censorship-resistant,即不怕审查,因为数据一直是真实的,无法篡改的,译者注)。

以太坊平台本身是无特性(featureless)或价值未知(value-agnostic)的。与编程语言一样,是企业家和开发者决定它应该用来做什么。然而根据以太坊本身的能力,某些特定的应用显然要比其他类型更能受益。具体来讲,以太坊 适合于那些旨在解决点到点之间直接交互,或者跨网络的团体协作问题的应用程序。 例如特定的点到点(peer-to-peer)交易市场应用,或者自动化的复杂金融合约应用等等。 比特币,允许个人在不引入任何中介,像金融机构、银行或政府的情况下进行货币交易。而以太坊的影响会更加深远。从理论上讲,任意复杂度的金融交互或交易(financial interactions or exchanges)都可以使用以太坊上的代码来自动化的、可靠的实现。而除金融应用以外,任何注重信任、安全、持久性的场合,比如资产注册、投票、管辖和物联网,都可以大范围的嵌入以太坊平台。

以太坊是如何运作的?

以太坊中包含了很多比特币用户很熟悉的特性和技术,同时它也引入了很多的修改和创新。

与比特币区块链中单纯的交易流水不同,以太坊区块链中的基础单元是账户(account,在后续连载中会有更详尽的介绍,译者注)。以太坊区块链跟踪每个账户的状态;以太坊区块链上的所有状态转换,都是账户间的价值或者信息的转移。以太坊中的账户有两种类型:

  • 由私钥控制的外部账户(Externally Owned Account,即EOA)
  • 由自身的合约代码控制的合约账户,这种账户只能由EOA“激活”(Activate)

对大多数用户来讲,它们最基础的区别就是人控制EOA,因为人能通过私钥控制EOA上的行为;而合约账户则由它们内部的代码来管理。对于合约账户,我们也可以说他们是有人“控制”的,因为他们 被编制为由一个有特定地址的EOA所控制,而这个EOA则由掌握其私钥的“人”所控制。当一个交易发送到合约账户上时,合约账户中的特定代码会被触发并执行,这些代码即是通常意义上的“智能合约”。用户可以在区块链上发布代码来创建新的合约。

仅当合约账户接到一个EOA的指示的时候,它才会去执行一个操作。所以合约账户不可能去做一些自发的操作,比如生成随机数或调用API,除非被EOA指定去做。这是因为以太坊中的节点需要一个严格确定的执行确认,来认证外来的计算要求。

与比特币一样,用户为了完成一个交易,需要向网络支付小额的交易费。这个机制是用来保护以太坊网络不被一些无价值或恶意的计算任务所影响,比如DDoS攻击或者无限循环。交易的发送者必须为他们所激活的每一步“程序”支付相应的费用,包括计算和存储。这些费用是用一定量的以太坊原生代币——以太币来体现的。

这些交易费用,是由验证整个网络的节点们所收取的。这些以太坊网络中接受、传播、验证和执行交易的节点,即是所谓的“矿工”。包含了以太坊区块链中账户“状态”变动的所有交易信息,由矿工们归集到“区块”中,然后开始互相竞争,以使 他们自己产生的区块成为区块链中的下一个区块。矿工每成功挖到一个矿(即把自己生成的区块添加到区块链上,译者注),都将获得奖励。这就是对那些为以太坊网络贡献硬件和算力的人的经济上的激励。

与比特币网络一样,矿工们想要成功“挖到”一个区块也需要解决一个复杂的数学问题。这就是被熟知的“工作量证明”("Proof of Work")。任何一个通过算法解决问题所消耗的资源大于验证结果所消耗的资源的计算问题,都是工作量证明的良好选择。为了弱化比特币网络中使用特定硬件(比如 ASICs,一种专门用于计算的集成电路硬件,译者注)所带来的中心化趋势,以太坊选择了一个强内存需求(memory-hard)的计算问题。如果解决一个问题就像需求CPU一样需求内存,那可以支撑的硬件会更趋近于通常的计算机。这使以太坊的工作量证明“抗ASIC”;并且与比特币的可能受制于特定硬件的挖矿过程相比,这种工作量证明更加有利于去中心化分布的安全性(即在一定程度上避免由于过多的区块都由一小部分计算能力非常强的节点所产生而导致的中心化趋势,译者注)。


待续。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容