欢迎访问比特币快报,了解最新比特币价格行情资讯及区块链技术信息就上eBTCnews.com!
🏠 学院 数字货币 以太坊(Ethereum / ETH)

以太坊(Ethereum / ETH)

比特王 比特王 | 2020-08-02 08:56 | 人气:67 | 赞:0 |

以太坊(英文Ethereum)是一个开源的有智能合约功能的公共区块链平台,通过其专用加密货币以太币(ETHer,简称“ETH”)提供去中心化的以太虚拟机(Ethereum Virtual Machine)来处理点对点合约。


以太坊(Ethereum / ETH)


以太坊的概念首次在2013至2014年间由程序员Vitalik Buterin受比特币启发后提出,大意为“下一代加密货币与去中心化应用平台”,在2014年通过ICO众筹开始得以发展。


截至2018年2月,以太币是市值第二高的加密货币,仅次于比特币。


项目愿景


以太坊(Ethereum/ETH)是将比特币中的一些技术和概念运用于计算领域的一个创新项目。它是一个全新开放的区块链平台,允许任何人在平台中建立和使用通过区块链技术运行的去中心化应用。像比特币一样,以太坊不受任何人控制,也不归任何人所有-它是一个开放源代码项目,由全球范围内的很多人共同创建;和比特币协议有所不同的是,以太坊的设计十分灵活,极具拓展性,赋予以太坊这些特质的正是其“智能合约”属性。


项目亮点


以太坊协议的设计遵循以下几点原则:


1、三明治复杂模型


我们认为以太坊的底层协议应尽可能的简单,接口设计应易于理解,那些不可避免的复杂部分应放入中间层。中间层不是核心共识的一部分,且对最终用户不可见,它包含:高级语言编译器、参数序列化和反序列化脚本、存储数据结构模型、leveldb存储接口以及线路协议等。当然,这样的设置也并非绝对。


2、自由


不应限制用户使用以太坊协议,也不应试图优先支持或不支持某些以太坊合约或交易。这一点与“网络中立”概念背后的指导原则相似。比特币交易协议就没有遵循这一原则。在比特币交易协议中,并不鼓励为了“去除标签”而使用区块链(如,数据存储,元协议)。某些情况下,对准协议进行明显修改会引起不法分子以未经授权方式使用区块链来攻击应用。因此,在以太坊,我们强烈建议设置交易费用,且用户使用区块链的步骤越多,交易费用也就越多(类似庇古税)。这样,既可以将交易费用作为合法矿工的奖励,又能让那些不法分子付出代价,一举两得。


3、泛化


以太坊协议的特性和操作码应最大限度地体现低层次的概念(就像基本粒子一样),以便它们可以随意组合。因此,通过剥离那些不需要的功能,使低层次的概念更加高效。遵循这一原则的例子是,我们选择LOG操作码作为向dapps提供信息的方式,而不是像之前那样记录下所有交易和消息信息。在早先,“消息(message)”的概念完完全全是多种概念的集合,它包含“函数调用(function call)”和“外在观察者感兴趣的事情(event interesting to outside watchers)”,而两者是完全可以分离开来的。


4、没有特点就是最大的特性点


为了遵循泛化原则,我们拒绝将那些高级用例内嵌为协议的一部分,哪怕是经常使用的用例,也绝不这么做。如果人们真的想实现这些用例,可以在合约内创建子协议(如,基于以太坊的子货币,比特币/莱特币/狗币的侧链等)。比如,在以太坊中就缺少类似比特币中的“时间锁定”功能。但是,通过以下协议可以模拟出这个功能:用户发送签名数据包到特定的合约中处理,如果数据包在特定合约中有效,则执行相应的函数。


5、没有风险规避机制


如果风险的增加带来了可观的好处,我们愿意承担更高的风险(例如,广义状态转换,区块时间提升50倍,共识效率)。


这些原则指导着以太坊的发展,但它们并不是绝对的;某些情况下,为了减少开发时间或者不希望一次作出过多改变,也会使我们推迟作出某些修改,把它留到将来的版本中去修改。


应用场景


一、物联网


物联网被很多互联网从业者认为是 next big thing,它的应用范围极其广泛,从大数据收集分析,到智能家居、环境监测、基础设施管理、智能交通、智能医疗等,包罗万象。物联网概念从1982年首 次提出,到现在已经历时33年,随着相关技术的不断演进,离物联网的大规模实施已经越来越近。然而,目前物联网发展缺乏一个标准化的、可扩展的开放协议, 这样的协议的好处是显而易见的:


避免物联网基础设施的重复建设;

协议的开放性保障了物联网的中立性,消除了物联网接入者的顾虑。

Facebook应该不会愿意参加Google设立的私有网络,微信也已经封杀了淘宝的URL,在物联网领域也是如此,任何一个巨头都不愿意自己的 设备接入到别人控制的私有网络。设想一下, 互联网如果没有开放的TCP/IP协议,如今会是什么样子,会不会只是众多割据的孤岛?


以太坊帮助物联网协议的诞生,成为协议的一部分,这似乎已经是一些物联网研究人员的愿景。这个视频展示了IBM和Samsung的ADEPT技术(Autonomous Decentralized Peer-to-Peer Telemetry): ADEPT由三个部分组成:消息协议——Telehash、文件分享协议——Bittorent、支付和使用协议—以太坊。


让我们想象这样一个使用场景:我打开手机,向自动驾驶汽车的智能合约支付预付款,汽车收到指令,把我接上;途中自动驾驶汽车经过一个收费站,管理汽 车的智能合约从我的预付款里支付过路费,将费用发送给收费站的智能合约,收费站放行;汽车将我送达目的地,智能合约根据路程和所花时间计算费用,并将剩余 的预付款打回给我。


在上面的示例中,经营自动驾驶汽车的公司并不需要自己从零开始建造物联网的基础设施,而只需接入协议;收费站也无需自营物联网,接入协议之后,任何公司的汽车都可以方便地支付过路费。


结合以太坊的开放、中性、无需信任的特点,使用物联网的开放协议连通全球的设备,可以大大提高人类社会的运行效率。


二、DAO(去中心化自治组织)


Decentralized Autonomous Organization (DAO),中文翻译是“去中心化自治组织”,是一种通过智能合约将个体与个体、个人与组织、或组织与组织联系在一起的新型组织形式。在展开讨论DAO之前,让我们先来看看传统的组织。


社会生活中普遍存在着各种形式的组织,例如公司、政府、军队、学校、行业协会等等,不胜枚举。在组织中,财务制度和人事制度是维持组织运行极其重要的两个方面,传统组织的这些制度都由法律保障,并强制执行。法律保障分为两步:


1)签订合约/制定规则;


2)法院判决并强制执行。正是这些可强制执行的制度将不同的个体、实体联系在一起,使得组织成为一个功能有机体。


前文讲到,智能合约是自带法院的合约。通俗地讲,可以把智能合约想象成以太坊平台上的自动代理机器人,这个机器人的所有行为都是可预测的,因为它的 行为方式都是合约创建的时候设立好的。设想一个组织创立的时候,将资金交给(智能合约)机器人保管,并且告诉机器人哪些人是组织的成员,另外合约的规则还 可以包括:什么条件下可以使用资金、增加/删除成员、修改DAO规则、解散DAO等。这样,DAO就将各个的成员从财务上、人事上捆绑在一起,形成一个组 织。


DAO相比与传统的组织,以下优势非常明显,我们以公司为例:


创立一个DAO比注册成立公司快得多,并且费用低得多;

运行成本低,财务和出纳人员不再是必需,也不用与开户银行不定期地对账;

DAO存在于互联网,对成员所在同一地域的要求降低;


如果成员之间出现争议,实施强制执行的成本比司法程序低得多。笔者不久前经历了注册成立公司的过程,真的可以用“痛苦不堪”形容,一共跑了6次,历时2个多月,花了几万人民币;而创建一个DAO无非就是几十、几百行代码,费用则可以几乎忽略。


DAO相比传统的公司,也有缺陷:DAO只能约束内部成员的关系,而无法与外部形成链外关系。例如公司可以与客户形成债务关系,客户付给公司预付 款,公司有义务给客户发送货物,这种关系由法律保障;而客户无法与DAO形成此等关系,因为传统的司法对于DAO不具备约束力,无法强制执行。随着DAO 生态体系的不断发展,今后一定会出现仲裁DAO,其它DAO可以在自愿的前提下将自己的部分资产或权利交由仲裁DAO管辖,那么该DAO与客户之间的关系 便引入了第三方的强制执行力。


总之,DAO开创了一个全新的组织关系,将来它在社会关系中发挥什么样的作用,目前还无法知晓。以现有的认知看,DAO的意义很可能是非常正面的,通过简化组织关系从而提升社会运行效率,造福于人。


三、金融应用


在以太坊上一定会出现众多的金融类合约,这些合约之间互动形成复杂的金融生态。因为以太坊的开放性,参与使用此类金融类合约一般没有门槛,在智能手机越来越普及的今天,可以造福最广大的受众,包括传统金融体系尚不健全的欠发达地区。下面我们举几个简单的例子。


A)CFD合约


CFD(Contract for Difference)差价合约在以太坊上的实现其实非常简单,例如买方和卖方在 1ETH=1USD 的时候建立合约(ETH是以太坊上的货币单位),双方都向智能合约各自注入1000ETH;等到合约到期时,假设 1ETH=2USD,那么此时智能合约将分配给买方1500ETH(价值3000USD),而卖方分配到500ETH(仍然价值1000USD)。


B)存款合约


人们把大额资金存于银行,因为银行更安全。而银行的安全一方面来自巨额的安全投入,另一方面我们社会从制度层面设立了众多的监管规则,来防止银行出 问题,因为一旦银行大范围地出现问题,结果是灾难性的。但是历史一次次地证实,银行不总是安全的,最近的一次危机就发生在2013年的塞浦路斯,在这次危 机中储户损失惨重。


其实,在以太坊上可以方便地实现这样一个合约,它既保障了资金的安全,又规避了银行本身出现问题的风险。这个智能合约在创立的时候生成两把私钥,为 了不过分突出技术细节,我们把该合约比作保险箱,私钥比作开保险箱的钥匙。保险箱创建后,用户把资金存入保险箱。钥匙A由用户掌管,合约规定该钥匙单独可 以每天从保险箱里提取5%的资金;钥匙B由第三方机构掌管,该钥匙单独可以每天从保险箱里提取0.25%的资金,是钥匙A速度的1/20;钥匙A和钥匙B 加在一起可以一次性提取所有资金。下面我们来分析几个出现问题的场景:


用户的钥匙A被盗了,那么用户可以找到第三方机构,两把钥匙加在一起可以一次性提取全部资金,小偷每天只能提取5%的资金。


用户的钥匙A丢失了,那么用户可以找到第三方机构,机构慢慢地还是可以把用户的资金提取出来。


如果机构恶意侵吞用户的资金,那么用户提款的速度是机构的20倍,用户只损失5%的资金。


四、预测市场


在以太坊平台上创建菠菜类合约是件非常容易的事,例如彩票、赌球等等,但是此类应用多是零和游戏,本身并不产生价值。预测市场是个例外(http://en.wikipedia.org/wiki/Prediction_market),虽然预测市场的参与者内部确实也是零和游戏——赢家赢的钱全部来自于输家的赌注,但是预测市场中下注情况体现了群体的智慧,此结果可以给外部(例如政策制定者)提供额外的有用信息,帮助提高社会的运行效率。


接下来的问题是,运行在以太坊上的预测市场有什么优势?早在2001年,intrade.com就已经实践了预测市场,该网站让玩家使用金钱在各种 事件预测中下注,事件范围包括商业、金融、政治等。Intrade.com于2013年被政府关停,关停的原因与开通预测大宗商品的价格有关,因为这涉及 到了大宗商品期货的监管。而建立在以太坊上的预测市场,由于背后没有单一主体,用户无需担心网站被关停而损失资金。


团队介绍


Vitalik Buterin


Ethereum的联合创建者和发明者,他共同创立了比特币杂志,现在领导以太坊,致力于升级其协议。


Joseph Lubin


加拿大企业家。以太坊联合创始人,区块链公司ConsenSys首席执行官


Gavin Wood


联合创始人兼首席技术官,2014年8月,他提出了Solidity——用于编写智能合约的面向契约的编程语言。他也是Parity Technologies的创始人兼现任首席技术官兼主席,他发布了Parity Bitcoin技术堆栈。他还撰写了Polkadot论文。


Jeffrey Wilck


联合创始人兼首席技术官,同时也是Parity Technologies的创始人兼首席技术官。此外,他始终是一名“黑客”,并且正在积极寻找方法,使Ethereum虚拟机随着时间的推移变得更高效。


MIHAI ALISIE


以太坊联合创始人兼比特币杂志创作者。专注于使AKASHA项目的梦想成为现实。


ANTHONY DI IORIO


Ethereum创始人,Jaxx&Decentral首席执行官兼创始人,他是一位连续创业者,VC,社区组织者,以及分散技术领域的思想领袖。


技术概况


以太坊技术的9个核心概念


1.以太坊虚拟机:EVM


EVM是以太坊中智能合约的运行环境。它是以太坊项目中的另一个主要创新。它是由许多互相连接的计算机组成的。任何人都可以上传程序,并让这些程序自动执行,同时保证现在和所有以前的每个程序的状态总是公共可见的。


2.以太坊账户


以太坊中有两类账户,它们共用同一个地址空间:外部账户:该类账户被公钥-私钥相对控制;合约账户:该类账户被存储在账户中的代码控制。外部账户的地址是由公钥决定的,合约账户的地址是在创建合约时由合约创建者的地址和该 地址发出过的交易数量计算得到。


两类账户的唯一区别是:外部账户没有代码,人们可以通过创建和签名一笔交易从一个外部账户发送消息。每当合约账户收到一条消息,合约内部的代码就会被激活,允许它对内部存储进行读取、写入、发送其它消息和创建合约。


以太坊的账户包含4个部分:


a.随机数,用于确定每笔交易只能被处理一次的计数器;


b. 账户目前的以太币余额;


c.账户的合约代码(如果有的话);


d.账户的存储(默认为空)。


3.以太坊消息


以太坊的消息在某种程度上类似于比特币的交易,但是两者之间存在3点重要的不同。


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


2)以太坊消息可以选择包含数据;


3)如果以太坊消息的接收者是合约账户,可以选择进行回应,这意味着以太坊消息也包含函数概念。


4.以太坊交易


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


5.燃料Gas


以太坊上的每笔交易都会被收取一定数量的燃料Gas,设置Gas的目的是限制交易执行所需的工作量,同时为交易的执行支付费用。当EVM执行交易时,Gas将按照特定规则被逐渐消耗。Gas价格由交易创建者设置,发送账户需要预付的交易费用=GASPRICE*Gas amount。如果执行结束还有Gas剩余,这些Gas将被返还给发送账户。无论执行到什么位置,一旦Gas被耗尽就会触发一个out-of-gas异常。同时,当前调用帧所做的所有状态修改都将被回滚。


6.存储、主存和栈


每一个账户都有一块永久的内存区域,被称为储存,其形式为Key-value,key和value的长度均为256位。相对于主存和栈,存储的读操作开销较大,一个合约只能对它自己的储存进行读写。


第二个内存区被称为主存。合约执行每次消息调用时都有一块新的被清除过的主存,主存可以按字节寻址,但是读写的最小单位为32字节。操作主存的开销随着主存的增长而变大。


EVM不是基于寄存器的,而是基于栈的虚拟机。所有的计算都是在一个被称为栈的区域内执行。可以把栈里的元素放到存储或者主存中。


7.指令集


EVM的指令集被房间保持在最小规模,以尽可能避免可能导致共识问题的错误。所有的指令都是针对256位这个基本的数据单位进行操作,具备常用的算术、位、逻辑和比较操作,也可以进行条件和无条件跳转。可约可以访问当前的相关属性,比如它的编号和时间戳。


8.消息调用


合约可以通过消息调用的方式来调用其它合约,或者发送以太币到非合约账户,消息调用 和交易非常类似,它们都有一个源,一个目标,数据负载,以太币,Gas和返回数据。事实上每个交易都可以被认为是一个顶层消息调用,这个消息调用会依次产生更多的消息调用。


一个合约可以决定剩余Gas的分配,如果在内部消息调用时发生了out-of-gas异常或者其它异常,合约将得到通知。被调用的合约会拥有崭新的主存,并能够访问调用的负载。


9.代码调用和库


以太坊中存在一种特殊类型的消息调用 ,被称为callcode。它跟消息调用几乎完全一样,只是加载来自目标地址的代码将在发起调用的合约上下文中运行,这意味着一个合约可以在运行时从另外一个地址动态加载代码。存储、当前地址、余额都指向发起调用的合约,只有代码是从被调用地址获取的。这使得Solidity可以实现“库”。可复用的库代码可以应用在一个合约的存储上,可以用来实现复杂的数据结构,从而使智能合约更加的强大。

共0条评论 你可以在 登录注册 后对本文发表评论