以太坊
Posted 恰同学少年
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了以太坊相关的知识,希望对你有一定的参考价值。
Ethereum(以太坊)简介
官网:http://www.ethereum.org
创世贴:https://bitcointalk.org/index.php?topic=428589.0
区块查询:https://etherchain.org/blocks
发布日期:2015年3月20日
开发者:以太坊基金会
算法:Ethash
区块时间:12秒
区块奖励:5.9
官方论坛:http://forum.ethereum.org
简介:
以太坊并不是以创造某种“币”为最终目的,而是致力于成为一个提供超强图灵完备脚本语言的优秀底层协议,在其上可以创建任意高级的合约,货币及其它去中心化应用。使用以太坊,让那些想出可能极大改变加密货币应用现状的点子的人将不再需要去启动他们自己的块链,他们可以简单地用以太坊脚本编码实现他们的想法,简而言之,以太坊是一个区中心话的创新基础平台。
比特币背后的核心技术是区块链技术,在区块链里加进“智能合约”便是以太坊(Ethereum)。
以太坊的设计将遵循以下原则:
1. 简洁原则
2. 通用原则
3. 模块化原则:以太坊的不同部分应被设计为尽可能模块化的和可分的。开发过程中,应该能够容易地让在协议某处做一个小改动的同时应用层却可以不加改动地继续正常运行
4. 无歧视原则:协议不应主动地试图限制或阻碍特定的目的或用法,不应试图反对特定的不受欢迎的应用。你甚至可以在以太坊之上运行一个无限循环脚本,只要你愿意为其支付按计算步骤计算的交易费用。
以太坊网络包含自身的内置货币以太币,以太币扮演双重角色,为各种数字资产交易提供主要的流动性,更重要的是提供了了支付交易费用的一种机制。
以太坊的单位有:伟、萨博、芬尼、以太;“以太”被用作普通交易,“芬尼”用来进行微交易,“萨博”和“伟”用来进行关于费用和协议实施的讨论。
2013年11月:创始现居加拿大的20岁俄罗斯少年科技奇才Vitalik Buterin创建了初 始的以太坊概念和基本代码,以太坊的核心理念开始有一个明确的看法
2013年12月:Vitalik发布了原始概念白皮书
2014年9月:以太坊为期42天的以太币预售结束,一共筹集到 31529.36369551 个比特币,一共售出 60102216个以太币,价值约1800万美元
2015年7月31日:历经十八个月的等待,终于迎来了其Frontier版本平台的正式推出,Frontier阶段只有命令行客户端,下一阶段将推出易用的客户端Mist和AlethZero
以太币的挖矿算法希望能够充分抵御中心化ASIC的影响。以太坊将使用混合型的安全协议,前期使用工作量证明机制(POW),用于分发以太币,然后会切换到权益证明机制(POS)。具体的细节资料还没有,仍在开发之中。
以太币发行
自上线时起每年都将有0.26x,即每年有60102216 * 0.26 = 15,626,576个以太币被矿工挖出。
以太币在各方的分配比例和发行速率:
每年挖矿会生成多少以太币?
图1. 左坐标轴代表以太币存量(深绿线)。右坐标轴代表货币性通胀率(浅绿线)。水平轴代表年份。(改编自Arun Mittal, 在此感谢。)
以太坊的商业潜能
引言
在基于密码学的计算机科学领域中,以太坊的技术愿景吸引到许多软件开发这和技术人员,他们看到了它所预示的清晰前景。但是,它的技术前景和商业应用没有被非技术人员所理解。
因为以太坊将要正式发布,进入市场,所以让商业社区理解它的应用前景将更加重要。
这篇文章的目的是:回答以太坊为什么重要,为什么非技术人员应该关注它,为什么我们需要另一条全球化的区块链,即使现在比特币区块链已经成为了全球化区块链了。这些是关键的问题,当你开始更加深入探索每一个问题的答案时,你就能够获得更多的理解和更加欣赏以太坊在整个领域中独特的地位,同时了解到它所采用的方法具有优势和长远性。
摘要
以太坊是一种新的去中心化账本协议,不是一种竞争币。以太坊的理念基因中不仅含有比特币基因,还含有BitTorrent、Java和Freenet的基因。从产品的角度而言,它是一个通用的全球性区块链,可以管理金融和非金融类型应用的状态。
本质上,以太坊促成去中心化的商业逻辑(business logic)--也被称为智能合约(smart contract),它是一个包含价值,当特定条件满足会被自动打开的加密“箱子”(boxes)。商业逻辑在区块链云上(不需要服务器)执行,在多方之间自动执行给定协议的条款。它们是“去中心化应用”(DApp)的基本构件。从前端角度而言,以太坊拥有一个强大的专用浏览器,使得用户可以方便地安装和使用DApp。
这一新技术将促成Web3.0的基础设施的建立。Web3.0建立在三层部件之上:作为客户端的先进浏览器,作为共享资源的区块链账本,和以去中心化方式运行智能商业逻辑程序的计算机虚拟网络。
与比特币相比,以太坊建立一种新的密码学技术基础框架,在其上开发应用更加容易,并对轻客户端友好,同时允许应用共享一个可行的经济环境和可靠的区块链安全。
以太坊的天才之处在于其神奇计算机网络,它促成了一种新型的软件应用:真正的去中心化应用,将信任逻辑嵌入到小程序里面,运行在区块链上。
它具有多种意义。对开发者来说,写新的应用时,将极大地节约成本和更加高效。对于非技术人员来说,通过分拆中心化的功能,并将它分散到去中心化结构中,它提供一个重新想象现有商业,或者创建新机会的可能。以太坊帮助任何想完全借助区块链开发去中心化应用、编码任意复杂商业逻辑、发布自治代理和管理关系的人。
以太坊是一种特殊的云计算,不仅高效和节省成本,也非常安全和可靠。同时,它还拥有一套完整的创建应用的工具。
以太坊交易账本可以用于安全地执行多种服务,包括:投票系统、域名注册、金融交易所、众筹平台、公司管理、自我执行的合约和协议、知识产权、智能财产和分布式自治组织。
以太坊正在全球范围内激发商业和社会创新,为前所未有的应用打开了大门。从长期来看,它所引致的结果将影响经济和控制结构。
数以千计的企业家和开发者正在创建和实施基于以太坊的新理念、新项目和创业公司。为了在未来保持竞争力,现有的组织、商业和IT领导者应该探索以太坊如何使得他们可以重构现有服务或者在现有服务上进行创新。
理解以太坊
为什么以太坊如此难以理解?出于相同的原因,比特币也难于理解,互联网刚刚开始商业化的前三年也不被公众所理解。原因是:它们都有多重功能身份(functional identities)。的确,这个回答没有特别的解释力,但是这就是事实:比特币、以太坊和互联网对不同的人意味着不同的东西。它们的范畴很广,因为它们的影响是多层面的。所以,为了更好地理解以太坊,让我们对以太坊做详细地解剖。
以太坊 vs 比特币
作为起点,我们可以比较以太坊和比特币,因为比特币似乎已经被理解了,至少被那些希望理解它的人所理解了。
初看起来,比特币和以太坊都是开源平台,具有四项共同点:底层的密码学货币、区块链、去中心化的共识证明机制、维护网络的矿工,这一切使得人们容易混淆比特币和以太坊,觉得它们肯定是类似的事物。但是,这是一个错误的结论。当你深入探究时,会发现两者的不同点多于相同点。四项共同点的每一项在以太坊和比特币中的作用和其目的是不一样的,出于这个原因,以太坊的朝着一个不同于比特币的方向发展。
比特币最初被设计成一个用于交易货币价值的去中心化密码学货币网络,比特币区块链的主要目的是:为这些金融交易提供信任支撑。只是到了最近,比特币区块链才开始在非金融应用中发现使用情景。因此,比特币区块链的可编程性只是事后的想法,并不是最初就具有的设计,虽然侧链的提议希望使得编程更加容易一些。与比特币相反,以太坊从第一天起就被构想为一个去中心化应用软件开发平台,它的区块链被设计为支持去中心化应用的运行。所以,以太坊的设计有幸从比特币的经验中学习,并改进了比特币的缺点。例如,与比特币10分钟的区块确认时间相比,以太坊区块链执行确认的速度更加快速,确认时间在5~30秒范围内。
以太坊的范式朝着促成的去中心化应用–需要确定的、可审计的和可预测的计算平台–方向进化,这不同于比特币范式的本质–它的计算是以货币为中心的(currency-centric)。因此,为了全面理解以太坊,你不能盲目地比特币的挖矿、密码学货币用途和可编程性推及到以太坊。
第一,以太坊的密码学货币(被称为以太币,ether)并不类似于比特币,因为它的主要目的不是用于商品或者服务的支付,也不是“数字黄金”,这是比特币的重要特性,以太坊志不在此。以太币更像一种“加密燃料”(crypto-fuel)形式的激励,支付运行各种智能商业逻辑程序所需的交易费用。
以太币类似于云计算费用。当你在云中运行一个应用时,基于你的运行时间、占用的存储空间、数据转移和计算速度,你需要向云计算公司支付相应的费用。以太币费用的新颖之处在于你为运行在区块链上的商业逻辑付费。它是一种基于云的小额价值定价(micro-value pricing),从传统的云计算栈中消除一层(layer)。
除了作为网络燃料以外 ,以太币也将作为一种加密货币在交易所交易,但是它的价值更多地受交易需求量影响,而不是货币投机者。
第二,以太坊区块链被设计为完全可编程的,比比特币更加具有经济效率。它具有更大的可扩展性,对于用户可以低成本是使用区块链而言,这是非常关键要求。因为以太坊不只关注于实现金融交易,所以以太坊区块链的目的不同于比特币。从技术上而言,以太坊的区块大小没有上限,它将动态地调整。另外,以太坊正在继续致力于提高可扩展性(scalability),这将对有益于降低整体的交易成本。
一般而言,当我们思考一个区块链的优良特性时,会考虑到以下的特性,这也是以太坊所擅长的:
可编程性(Programmability)
可扩展性(Scalability)
可升级性(Upgradability)
交易可管理性(Transactions Manageability)
可见性(Visibility)
可购性(Affordability)
安全性(Security)
速度/性能(Speed/Performance)
高可靠性(High Availability)
可延展性(Extensibility)
第三,尽管工作量证明是以太坊目前所选择的共识机制,但是它打算进化到更加节省能源的共识机制--权益证明。权益证明已经被证明是一种高效和可行的共识方式,运行的成本更加低,攻击的成本更加高。
最后,以太坊的挖矿可以有常规计算机完成,不需要比特币那样的专门化挖矿设备,因此以太坊挖矿能够被更多的人所参与。任何在自己的电脑上运行以太坊挖矿客户端软件的用户都可以成为矿工,就像BitTorrent允许任何用户公开分享自己的文件一样。这是一个好策略,因为它使得普通用户用得起以太坊,不需要过度依赖昂贵的挖矿。这也意味着,与比特币不同,以太坊不需要依靠积累挖矿算力来运行。它更加倾向于通过可负担的起的挖矿与支付所需计算费用之间的平衡实现自我维持(self-maintenance)。
作为自由网络的以太坊
以太坊还有一个有趣的对比,就是自由网络(Freenet)。从底层而言,Freenet是实施去中心化网络的先行者。它是自由软件,允许用户匿名分享文件、浏览和发布“自由站点”(freesites,只能通过Freenet连接)、在论坛上聊天,无需担心审查,不容易被攻击。Freenet的哲学理念是实现和保护没有审查的言论自由和传播知识。
Freenet的理念有益处,但是它存在两个由众所周知原因造成的主要缺陷,以太坊修缮了这两个缺陷。第一,下载一个网站往往需要超过一分钟的时间。第二,它没有应用,只有静态内容。以太坊通过其内在的激励机制和区块链解决了这些问题。
更多以太坊的特性
哪些额外的特征使得以太坊与众不同,使得开发者选择它作为开发去中心化应用的平台?
开发语言
以太坊的软件开发语言是其最大特性之一,因为对区块链进行编程是一项首要目标。以太坊具有四种专用语言:Serpent (受Python启发)、 Solidity (受javascript 启发)、 Mutan(受Go 启发) 和 LLL (受Lisp 启发),都是为面向合约编程而从底层开始设计的语言。
作为以太坊的高级编程语言,Serpent被设计为非常类似于Python。它被设计为最大可能地简洁和简单,将低级语言的高效优势与编程风格中的易用性相结合。
Solidity是以太坊的首选语言,正处于紧张开发中,它内置了Serpent的所有特性,但是语法类似于JavaScript,这降低了学习门槛,易于被掌握和使用,因为JavaScript是Web开发者的常用语言。因此,Solidity充分利用了现有数以百万程序员已掌握JavaScript这一现状。
以太坊区块链的另一关键特征是它的“图灵完备性”,这保证了以太坊可以解决必须的计算问题。更加准确地说,它是“半”图灵完备的,因为通过对计算量设置上限,它避免了完全图灵完备语言存在的无法停机问题。
此外,因为以太坊的语言为区块链专门设计的,他们在交易的可视化和活动性上不可思议的提供了在实时性上的粒度。这是一个受人欢迎的功能,但对比特币而言实现起来具有一定的挑战。在比特币上,你需要导入区块链数据库,解析所有的交易,并为了抽取出在区块链上的活动情报而查询交易。而用以太坊,你可以在活动的区块链上,实时的发行一个特定的地址要求。
以太坊促成去中心化应用
以太坊支持多种开发语言是非常重要的,因为这使得开发者可以选用自己喜欢的语言,可以更加容易和高效地写去中心化应用(DApp)。
一个DApp是由智能合约和客户端代码构成的。智能合约就像加密的“箱子”,包含价值,只有当特定条件被满足时,它才被打开。它封装了一些逻辑、规则、处理步骤或者双方间的协议。当它们被发布在以太坊上时,网络会执行它们的分支(ramification)。
从架构角度而言,DApp非常类似于传统的web(网络)应用,主要区别是:在传统web应用中,客户端有Javascript代码,由用户在自己的浏览器中执行,服务器端的代码由公司的主机运行;但是在一个DApp中,你的智能逻辑运行在区块链上,客户端代码运行在特殊浏览器--Mist--里面。
另外,DApp可以与其它web应用或者去中心化技术相交互或者连接。例如,一个DApp可以使用去中心化的消息服务(例如Whisper),或者去中心化的文件 (例如IPFS)。从web应用的角度而言,例如谷歌这样的公司可能打算从一个去中心化的信誉服务中获取数据,或者Bloomberg的数据馈送(data feed)可能打算与一个金融DApp进行交互。
以太坊客户端
以太坊包括一个专用的客户端浏览器,使得用户可以运行各种各样的DApp和发布智能合约。这一浏览器(被称为Mist)易于使用,所以DApp和智能合约能够被大量用户使用。从降低用户使用门槛角度而言,Mist是一项突破性成就。它的作用等同于浏览器之于互联网,或者iTunes之于数字化内容下载。Mist具有特殊的安全层、密钥管理、去中心化账户管理(即用户帐户由用户拥有并控制,而不是第三方机构),和与区块链相关的组件,这一切使得Mist成为普通用户运行或者管理区块链去中心化应用不可或缺的工具。普通用户不需要理解技术方面的东西。
从用户体验角度而言,你可以在Mist中使用DApp,就像你通过常规浏览器与网站进行交互一样。例如,一个纯DApp(例如预测市场Augur)就在以太坊Mist浏览器中。然而,这些服务也可以通过一个常规浏览器以更加传统的web2.0的方式实现。
以太坊虚拟机
当你想到这些自足的逻辑脚本–运行在区块链上,在其上存储数据,向发起人返回一些值–时,就像运行在云中的程序。简单的说,这些智能合约就是运行在以太坊虚拟机(EVM)上的代码。因此,这类似于一个去中心化的虚拟计算服务,但是它不存在网站服务器的负担,它被设计成点对点网络中所有参与者都可以运行它,安全地(通过加密和数字签名)向区块链写入数据和代码,读取上面的数据和代码。
以太坊虚拟机(EVM)概念是非常重要的,因为它是以太坊项目的另一个主要创新。如果你不理解EVM,那么你就不理解以太坊。
所以,EVM“位于区块链之上”,但是,实际上它是由许多互相连接的计算机组成的,任何人都可以上传程序,让这些程序自我执行,保证现在和所有以前的每个程序的状态总是公共可见的。这些程序运行在区块链上,严格地按照EVM定义的方式继续执行。这使得任何人都可以为所有权、交易格式和状态转换函数创建商业逻辑。
以太坊核心和生态系统
在最底层,以太坊是一个多层的、基于密码学的开源技术协议。它的不同功能模块通过设计进行了全面的整合,作为一个整体,它是一个创建和部署现代化的去中心化应用的综合平台。
它被设计为一个通用的去中心化平台,拥有一套完整的、可以扩展其功能的工具。
虽然,以太坊看起来像由多个互相联系的开源项目构成的混合体,但是它的进化一直被明确目标引导的,以此保证各个组件可以协同地组装在一起。
像大多数软件平台一样,以太坊核心的外围是一个有合作者、技术交互扩展(interchange extensions)、应用和辅助服务组成的丰富的生态系统,它增强以太坊核心。从功能角度而言,我们可以将以太坊生态系统拆分成三块:
核心协议技术:点对点共识、虚拟机、合约、密钥、区块链、软件语言和开发环境、货币(燃料)、技术整合和中间件服务(middleware services)。
应用:客户端软件(Mist 或者 AlethZero)、挖矿、监控服务(monitoringservices)、去中心化应用和其它第三方应用。
辅助服务:主要通过维基、论坛、以太坊学院、网站、赏金激励、未来的开发者会议实现的教育、研究、学习和支持。
在应用方面,已经有超过100个第三方项目、产品、技术扩展和完全或者部分基于以太坊的成熟商业。这些应用包括:预测市场、去中心化交易所、众筹、物联网、投票和管理、赌博、信誉系统、社交网络、聊天消息系统、保险、医疗保健、艺术、交通工具共享、分布式自治组织、交易(金融工具或者商品)、会计、社区、电子商务、物理安全、文件存储、所有权登记、内容、小微交易、社区管理、云计算、汇款、智能合约管理、智能资产、钱包、食品、制造业、数据存储、 供应链等等。
所有这些生态系统的组成部分促成了以太坊进入金融和非金融领域。以太坊的可编程特性提供了比比特币脚本语言更加强大的能力,因为它具有图灵完备性、价值知晓(value-awareness)、区块链知晓(blockchain-awareness)和状态转换逻辑能力。
为什么商人应该关注以太坊?
以太坊的技术主要是为开发者而建立的。但是,就像信息技术,以太坊也能够促成新的商业机会。初始阶段以太坊是由技术人员构成的社区驱动的,一旦商人也理解了去中心化应用的潜力,以太坊的影响力将倍增。
我们需要学习如何应用区块链技术。以太坊开发这和技术爱好者明白:为了发掘所有潜在应用,只有开发者是不够的。开发者需要与理解以太坊潜能的商人合作。
在1990s年代,公司重构的趋势流行起来。这一过程是由废除陈旧的、不再产生价值流程的愿望驱动的,用更加简单的流程取代。那时候每家大型组织都在重新审视自己的商业流程,找出那些迟钝的、中心化的、昂贵的、陈旧的,或者没有满足用户和消费者需要的部分。以太坊的出现也会伴随一个类似的重构。
以太坊带来的重构也上次类似,开始于找出迟钝的、昂贵的、陈旧的或者不能满足需要的应用,看看它们是否能够用分布式应用或者完全去中心化的应用重新思考。
商人必须了解去中心化,自问陈旧的商业流程是否能够被以太坊所促成的去中心化的流程所取代。特别是以前依靠中心化中介或者守门人–在与信任相关的环节享有最终的权力–的那类应用。以太坊使得分解信任成为可能,将信任运行在整个网络上。
一旦你理解了如何分解中心化流程,并把它们放到网络边缘时,唯一能够限制你的只有你的想象力了。现在是时候壮士断臂了,这样做总好于以后被竞争者干掉。
富有进取心的商业和IT管理者应该认清需要了解以太坊的团队技术资源,资助促进创新和重构的项目,发现和释放去中心化应用所有的潜能。
如果你处于以下范畴内,那么你处于探索以太坊的最好位置:
现有IT部门
具有新理念的创业公司
前卫的开发者
比特币爱好者
商业创新者、领导者、投资者和富有远见者
非营利组织、活动家、研究者和政策制定者
学习如何在以太坊上进行开发的最好出发点是以太坊维基。
你可以用以太坊做些什么?
以太坊通过去中心化应用促成创新,也将影响到工业、政府和社会。
理解去中心化和区块链在哪些领域最有价值是非常重要的,因为我们不能将它们应用到所有事物上。
从技术角度而言,去中心化特别适合于“基础层”服务,例如身份系统、信誉系统、通信、社交网络、市场,使得它们无需依赖特定的信任中介就能够运行。这些基础层服务是每个上层服务所必需的。从软件应用角度而言,区块链对在数据库上执行去中心化共识有用,这是基于以太坊的智能合约可以大放异彩之处。 以太坊交易账本可以用于安全地执行多种服务,包括:投票系统、域名注册、进入交易、众筹平台、公司管理、自我执行的合约和协议、知识产权、智能财产和分布式自治组织。
在促成去中心化方面,以太坊的部分愿景类似于比特币,但是重要的是实施细节。以太坊从底层开始就被设计为促成去中心化应用的平台,然而,比特币只是一个金融网络,已经过载许多额外的服务和性能。建立在比特币之上的协议对于轻客户端是不友好的,比特币区块链没有被设计成具有足够的可扩展性,不能支持每一种可能应用情景中的每一笔交易。
开发者正在选择以太坊,因为在以太坊上开发先进的去中心化应用比在比特币上更加容易。认为比特币的区块链能够实现以太坊的一切功能是一种错误的想法。
实际上,比特币需要以太坊成功,因为这将为基于共识的应用开发的可行性增加证明和正当性。以太坊的开发者和合作伙伴正在解决这个领域中的大问题,他们的成功将启发整个密码学技术生态系统。
开发者用自己的代码做出选择。成功将基于每个应用或者商业创新所带来的益处。无论是运行在比特币应用,还是运行在以太坊上的应用,在开发阶段都非常重要,但是应用一旦进入市场中,用户通过使用决定最好的应用。所以,如果以太坊开发提供优势,你可以好好利用。
我们所需要的是大量用户、开发者、投资者和创新者,不仅是矿工。
从长期而言,比特币和以太坊都将成为可行的平台,分别吸引最合适的应用。
结论
看待密码学领域的另一种方式区分比特币应用和区块链应用。以太坊正处于区块链应用领域,这是一个十分有想象力的领域。它的优越性通过先进的去中心化应用开发体现出来,这是比特币区块链力不从心之处,尽管有覆盖层协议(overlay protocols)、侧链项目和其它比特币改进提议。
认为比特币是唯一的密码学货币和区块链,反应了对密码学计算科学这一更大领域的缺少理解。这将相当于说Fortran语言是1957年所需要的唯一语言,只是因为它作为第一个工业使用的高级编程语言,取得了一些成功。或者相当于,当房子刚刚被发明时,说用木材建造房屋是唯一的方式一样。不要忘记福特在1922年所说的:“任何顾客可以将这辆车漆成任何他所愿意的颜色,只要它是黑色的。”
许多认为比特币一统江湖的观点是一种自我实现预言或者一厢情愿的偏见。说到创新和采用竞争币协议,这个趋势已经流行起来了,比特币并没有注定成功,其它协议也没有注定失败。对于去中心化应用开发,比特币和它的区块链并没有提供万能药。在比特币区块链上开发非常困难,但是相同的开发在以太坊上更加简单。
当你与开发者交谈和看到围绕以太坊技术展开的活动时,你将快速地认识到以太坊正在全球范围内促进商业和社会创新,同时为前所未见的应用打开了大门。以太坊正在领导去中心化应用协议,因为来自被以太坊平台性能优越性其社区成员的支持和活力。
但是以太坊没有幻想着一蹴而就,它计划逐渐解决大问题,同时开始更加基本、简单的开发。
如果说,比特币向我们展现了货币的未来,那么以太坊正在指明去中心化软件应用的未来。
如果你仍然不确定,问问你的开发者。
原文:https://blog.ethereum.org/2015/05/24/the-business-imperative-behind-the-ethereum-vision/
作者:William Mougayar
以上是关于以太坊的主要内容,如果未能解决你的问题,请参考以下文章