以太坊(英语:Ethereum)是一个开源的有智能合约功能的公共区块链平台。通过其专用加密货币以太币(Ether,又称“以太币”)提供去中心化的虚拟机(称为“以太虚拟机”Ethereum Virtual Machine)来处理点对点合约。
以太坊的概念首次在2013至2014年间由程序员维塔利克·布特林受比特币启发后提出,大意为“下一代加密货币与去中心化应用平台”,在2014年透过ICO众筹得以开始发展。
截至2018年6月,以太币是市值第二高的加密货币,以太坊亦被称为“第二代的区块链平台”,仅次于比特币。
相较于较大多数其他加密货币或区块链技术,以太坊的特点包括下列:
智能合约(smart contract):存储在区块链上的程序,由各节点运行,需要运行程序的人支付手续费给节点的矿工或权益人。
代币(tokens):智能合约可以创造代币供分布式应用程序使用。分布式应用程序的代币化让用户、投资者以及管理者的利益一致。代币也可以用来进行首次代币发行。
叔块(uncle block):将因为速度较慢而未及时被收入母链的较短区块链并入,以提升交易量。使用的是有向无环图的相关技术。
权益证明(proof-of-stake):相较于工作量证明更有效率,可节省大量在挖矿时浪费的电脑资源,并避免特殊应用集成电路造成网络中心化。(测试中)
支链(Plasma):用较小的分支区块链运算,只将最后结果写入主链,可提升供单位时间的工作量。(尚未实现)
状态通道(state channels):原理类似比特币的闪雷网络,可提升交易速度、降低区块链的负担,并提高可扩展性。尚未实现,开发团队包括雷电网络(Raiden Network)和移动性网络(Liquidity Network)。
分片(sharding):减少每个节点所需纪录的数据量,并透过平行运算提升效率(尚未实现)。
分布式应用程序:以太坊上的分布式应用程序不会停机,也不能被关掉。
以太坊最初由 Vitalik Buterin 在2013年提出。Vitalik 本是一名参与比特币社群的程序员,曾向比特币核心开发人员主张比特币平台应该要有个更完善的编程语言让人开发程序,但未得到他们的同意,因此决定开发一个新的平台作此用途[8]:88。Buterin 认为很多程序都可以用类似比特币的原理来达成进一步的发展。Buterin 在2013年写下了《以太坊白皮书》,说明了建造去中心化程序的目标。然后2014年透过网络公开募资得到开发的资金,投资人用比特币向基金会购买以太币。
最初以太坊程序是由一间位在瑞士的公司 Ethereum Switzerland GmbH 开发[11][12],之后转移至一个非营利机构“以太坊基金会”(Ethereum Foundation)。
在平台开始发展的最初,有人称赞以太坊的科技创新,但也有人质疑其安全和可扩展性。
比特币开创了去中心化密码货币的先河,五年多的时间充分检验了区块链技术的可行性和安全性。比特币的区块链事实上是一套分布式的数据库,如果再在其中加进一个符号——比特币,并规定一套协议使得这个符号可以在数据库上安全地转移,并且无需信任第三方,这些特征的组合完美地构造了一个货币传输体系——比特币网络。
然而比特币并不完美,其中协议的扩展性是一项不足,例如比特币网络里只有一种符号——比特币,用户无法自定义另外的符号,这些符号可以是代表公司的股票,或者是债务凭证等,这就损失了一些功能。另外,比特币协议里使用了一套基于堆栈的脚本语言,这语言虽然具有一定灵活性,使得像多重签名这样的功能得以实现,然而却不足以构建更高级的应用,例如去中心化交易所等。以太坊从设计上就是为了解决比特币扩展性不足的问题。
2016年初,以太坊的技术得到市场认可,价格开始暴涨,吸引了大量开发者以外的人进入以太坊的世界。中国三大比特币交易所之二的火币网及OKCoin币行都于2017年5月31日正式上线以太坊。
自从进入2016年以来,那些密切关注数字货币产业的人都急切地观察着第二代加密货币平台以太坊的发展动向。
作为一种比较新的利用比特币技术的开发项目,以太坊致力于实施全球去中心化且无所有权的的数字技术计算机来执行点对点合约。简单来说就是,以太坊是一个你无法关闭的世界计算机。加密架构与图灵完整性的创新型结合可以促进大量的新产业的出现。反过来,传统行业的创新压力越来越大,甚至面临淘汰的风险。
比特币网络事实上是一套分布式的数据库,而以太坊则更进一步,她可以看作是一台分布式的计算机:区块链是计算机的ROM,合约是程序,而以太坊的矿工们则负责计算,担任CPU的角色。这台计算机不是、也不可能是免费使用的,不然任何人都可以往里面存储各种垃圾信息和执行各种鸡毛蒜皮的计算,使用它至少需要支付计算费和存储费,当然还有其它一些费用。
最为知名的是2017年初以摩根大通、芝加哥交易所集团、纽约梅隆银行、汤森路透、微软、英特尔、埃森哲等20多家全球顶尖金融机构和科技公司成立的企业以太坊联盟。而以太坊催生的加密货币以太币近期又成了继比特币之后受追捧的资产。
以太坊基金会:
总部设在瑞士楚格州的非营利基金会,这个基金是负责为未来加密货币研发和推进开发的其他机构分配资源的伞形公司。该基金会的董事会由Vitalik Buterin(主席),Mihai Alisie(副主席),Taylor Gerring, Stephan Tual, Joseph Lubin, Jeffrey Wilcke 还有 Gavin Wood组成。该基金会将重点放在首要的“使命”上,即,使运营机构来完成每天的日常工作。
以太坊瑞士有限公司:
总部设在瑞士的一家公司,为了领导创世块链的发行,将负责运营2014年度的一部分工作。该公司由以太坊基金会100%控制,计划在创世块链发行后停止运作。
以太坊是一个平台,它上面提供各种模块让用户来搭建应用,如果将搭建应用比作造房子,那么以太坊就提供了墙面、屋顶、地板等模块,用户只需像搭积木一样把房子搭起来,因此在以太坊上建立应用的成本和速度都大大改善。具体来说,以太坊通过一套图灵完备的脚本语言(Ethereum Virtual Machinecode,简称EVM语言)来建立应用,它类似于汇编语言。我们知道,直接用汇编语言编程是非常痛苦的,但以太坊里的编程并不需要直接使用EVM语言,而是类似C语言、Python、Lisp等高级语言,再通过编译器转成EVM语言。
上面所说的平台之上的应用,其实就是合约,这是以太坊的核心。合约是一个活在以太坊系统里的自动代理人,他有一个自己的以太币地址,当用户向合约的地址里发送一笔交易后,该合约就被激活,然后根据交易中的额外信息,合约会运行自身的代码,最后返回一个结果,这个结果可能是从合约的地址发出另外一笔交易。需要指出的是,以太坊中的交易,不单只是发送以太币而已,它还可以嵌入相当多的额外信息。如果一笔交易是发送给合约的,那么这些信息就非常重要,因为合约将根据这些信息来完成自身的业务逻辑。
合约所能提供的业务,几乎是无穷无尽的,它的边界就是你的想象力,因为图灵完备的语言提供了完整的自由度,让用户搭建各种应用。白皮书举了几个例子,如储蓄账户、用户自定义的子货币等。
2013年年末,以太坊创始人Vitalik Buterin发布了以太坊初版白皮书,在全球的密码学货币社区陆续召集到一批认可以太坊理念的开发者,启动了项目。
在2013年12月到2014年1月这段期间,以太坊的工作重心是如何启动Vitalik在以太坊白皮书所描绘的愿景。团队最后都认为创世纪预售是一个好主意,经过长期、多层面的讨论,为了创建一个合适的基础结构和法律策略,团队决定延期原本在2014年2月份举行的以太币预售。
2014年2月对于以太坊是一个非常重要的月份,以太坊的各方面都在突飞猛进:社区成长、写代码、写wiki内容、商业基础结构和法律策略。在这个月,Vitalik在迈阿密比特币会议上第一次公布了以太坊项目,并在Reddit上举办第一次“问我们任何事儿”活动,核心开发团队成为世界级的密码学货币团队。迈阿密会议后,Gavin Wood和Jeffrey Wilcke加入以太坊,进行全职工作,虽然在在这以前,他们完全出于兴趣为以太开发C++和GO客户端。
在三月初以太坊发布了第三版测试网络(POC3),并最终将以太坊总部搬到了瑞士楚格州。在六月份,团队发布POC4,并快速向POC5前进。在这期间,团队还决定将以太坊做成一个非营利性组织。四月份,Gavin Wood发布了以太坊黄皮书,这是以太坊的技术圣经,将以太坊虚拟机(EVM)等重要技术规格化。 在7月份,团队创建了瑞士以太坊基金会、发布了POC5,在24日开始了创世纪预售,同时在Reddit上组织了第二次“问我们任何事儿”。
从2014年7月24日起,以太坊进行了为期42天的以太币预售,一共募集到31,531个比特币,根据当时的比特币价格折合1843万美元,是当时排名第二大的众筹项目。预售时所使用的比特币地址是36PrZ1KHYMpqSyAQXSG8VwbUiq2EogxLo2,在比特币区块链浏览器里可以看到每一笔转入和转出。在预售前两周一个比特币可以买到2000个以太币,一个比特币能够买到的以太币数量随着时间递减,最后一周,一个比特币可以买到1337个以太币。最终售出的以太币的数量是60,102,216。另外还有0.099x(x = 60102216 为发售总量)个以太币被分配给在BTC融资之前参与开发的早期贡献者,另外一个0.099x 将分配给长期研究项目。所以以太坊正式发行时有 60102216 + 60102216 * 0.099 * 2 = 72002454个以太币。自上线时起,在POW(工作量证明机制)阶段,计划每年最多有60102216 * 0.26=15,626,576个以太币被矿工挖出。1~2年内转成POS(权益证明机制)后,每年产出的以太币将大为减少,甚至可以不再增发新币。
2014年的秋季是以太坊的收获季节,在代码和运营方面都取得了很大进展。10月5日发布了POC6。这是一个具有重要意义的版本,亮点之一是区块链速度。区块时间从60秒减少到12秒,并使用了新的基于GHOST的协议。在11月份,以太坊在柏林举办了第一次小型开发者会议(DEVCON 0)。
在2015年1月,团队发布了POC7,在二月份,团队发布了POC8。在三月份团队发布了一系列关于发布创世纪区块的声明,同时POC9也在紧张开发中。在5月份,团队发布了最后一个测试网络(POC9),代号为Olympic。为了更好地对网络进行测试,在Olympic阶段,参与测试网络的成员会获得团队给予的以太币奖励。奖励形式有多种,主要包括测试挖矿奖励和提交bug奖励。
经过近两个的严格测试以后,团队在七月末发布了正式的以太坊网络,这也标准着以太坊区块链正式运行。以太坊的发布分成了四个阶段,即Frontier(前沿)、Homestead(家园)、Metropolis(大都会)和Serenity(宁静),在前三个阶段以太坊共识算法采用工作量证明机制(POW),在第四阶段会切换到权益证明机制(POS)。
在2015年7月30日,以太坊发布了Frontier阶段。Frontier阶段是以太坊的最初版本,不是一个完全可靠和安全的网络。Frontier是空白版的以太坊网络:一个用于挖矿的界面和一种上传和执行合约的方法。Frontier的主要用途是:将挖矿和交易所交易运行起来,从而社区可以运行挖矿设备,和开始建立一个环境,人们可以在里面测试分布式应用(DApps)。由于Frontier阶段的以太坊客户端只有命令行界面,没有图形界面,所以该阶段主要开发者。随着Frontier的发布,以太币也开始在世界各地的交易所进行交易。在2016年初,以太币的价格开始暴涨,以太坊的技术实力开始在市场上得到认可,吸引了大量开发者以外的人进入以太坊的世界。另外,在此阶段每年被矿工挖矿的以太币大约为1000万个,少于最初计划的每年1500万。
2015年11月9日到13日,以太坊在伦敦举行了为期五天的开发者大会(DEVCON 1),吸引了全世界三百多名开发者参加。第三次开着大会(DEVCON 2)将于2016年9月份在上海举行。
在2016年3月14日(圆周率节),以太坊发了Homestead阶段。Homestead阶段与Frontier阶段相比,没有明显的技术性里程碑,只是表明以太坊网络已经平稳运行,不再是不安全和不可靠的网络了。在此阶段,以太坊提供了图形界面的钱包,易用性得到极大改善,以太坊不再是开发者的专属,普通用户也可以方便地体验和使用以太坊。
Metropolis阶段发布日期尚未确定。在Metropolis阶段,团队将最终正式发布一个为非技术用户设计的、功能相对完善的用户界面,也就是发布Mist浏览器。团队期望Mist的发布将包括一个去中心化应用商店和一些功能完善、设计良好的基础性应用,表现以太坊网络的强大。Mist浏览器将非常简单易用,只要会使用普通浏览器就会使用Mist。在以太坊平台上,第三方开发者为普通用户开发的去中心化应用逐渐增多,以太坊不仅是一个开发平台,还逐渐成为一个应用市场,开发者和用户都是不可或缺的部分。
Serenity阶段发布日期尚未确定。在Serenity阶段,以太坊将从PoW转换到PoS。工作量证明意味着将电力转换为热量、以太币和网络稳定性。但是若非必要,以太坊不想因为挖矿排放过多热量,所以需要修改算法:权益证明(POS)。网络从工作量证明(POW)转换到权益证明(POS)将需要一个实质性的转换,一个转变过程,这似乎是一个长期过程,但并不是那么遥远:这类开发工作正在进行中。POW是对计算能力的严重浪费,就像民主–除了其它系统以外的最坏系统。从POW的约束中解脱出来,网络将更加快速、出块更快、更加有效、对新用户来说更加易用、更能抵制挖矿的中心化等。这将可能是像将智能合约放到区块链一样的巨大进步。 转换到POS以后,前三个阶段所需要的挖矿将被终止,新发行的以太币也将大为降低,甚至不再增发新币。
在以太坊2.0阶段,开发团队的主要目标是通过分片(sharding)方式解决可扩展性问题(Scalability),即提高区块链的处理交易处理能力,这也是所有的区块链项目致力解决的瓶颈。 预计 2017年年末发布。
如何获得ETH?
获取ETH最简单的方式就是购买。 市面上有许多可以购买ETH的数字货币交易所,但用户需要根据所处地址和付款方式选择合适的交易所。
在以太坊系统中,状态是由被称为“账户”(每个账户由一个20字节的地址)的对象和在两个账户之间转移价值和信息的状态转换构成的。以太坊的账户包含四个部分:
随机数,用于确定每笔交易只能被处理一次的计数器
账户目前的以太币余额
账户的合约代码,如果有的话
账户的存储(默认为空)
以太币(Ether)是以太坊内部的主要加密燃料,用于支付交易费用。一般而言,以太坊有两种类型的账户:外部所有的账户(由私钥控制的)和合约账户(由合约代码控制)。外部所有的账户没有代码,人们可以通过创建和签名一笔交易从一个外部账户发送消息。每当合约账户收到一条消息,合约内部的代码就会被激活,允许它对内部存储进行读取和写入,和发送其它消息或者创建合约。
消息和交易
以太坊的消息在某种程度上类似于比特币的交易,但是两者之间存在三点重要的不同。第一,以太坊的消息可以由外部实体或者合约创建,然而比特币的交易只能从外部创建。第二,以太坊消息可以选择包含数据。第三,如果以太坊消息的接受者是合约账户,可以选择进行回应,这意味着以太坊消息也包含函数概念。
以太坊中“交易”是指存储从外部账户发出的消息的签名数据包。交易包含消息的接收者、用于确认发送者的签名、以太币账户余额、要发送的数据和两个被称为STARTGAS和GASPRICE的数值。为了防止代码的指数型爆炸和无限循环,每笔交易需要对执行代码所引发的计算步骤-包括初始消息和所有执行中引发的消息-做出限制。STARTGAS就是限制,GASPRICE是每一计算步骤需要支付矿工的费用。如果执行交易的过程中,“用完了燃料”,所有的状态改变恢复原状态,但是已经支付的交易费用不可收回了。如果执行交易中止时还剩余燃料,那么这些燃料将退还给发送者。创建合约有单独的交易类型和相应的消息类型;合约的地址是基于账号随机数和交易数据的哈希计算出来的。
消息机制的一个重要后果是以太坊的“头等公民”财产-合约与外部账户拥有同样权利,包括发送消息和创建其它合约的权利。这使得合约可以同时充当多个不同的角色,例如,用户可以使去中心化组织(一个合约)的一个成员成为一个中介账户(另一个合约),为一个偏执的使用定制的基于量子证明的兰波特签名(第三个合约)的个人和一个自身使用由五个私钥保证安全的账户(第四个合约)的共同签名实体提供居间服务。以太坊平台的强大之处在于去中心化的组织和代理合约不需要关心合约的每一参与方是什么类型的账户。
应用
一般来讲,以太坊之上有三种应用。第一类是金融应用,为用户提供更强大的用他们的钱管理和参与合约的方法。包括子货币,金融衍生品,对冲合约,储蓄钱包,遗嘱,甚至一些种类的全面的雇佣合约。第二类是半金融应用,这里有钱的存在但也有很重的非金钱的方面,一个完美的例子是为解决计算问题而设的自我强制悬赏。最后,还有在线投票和去中心化治理这样的完全的非金融应用。
令牌系统
链上令牌系统有很多应用,从代表如美元或黄金等资产的子货币到公司股票,单独的令牌代表智能资产,安全的不可伪造的优惠券,甚至与传统价值完全没有联系的用来进行积分奖励的令牌系统。在以太坊中实施令牌系统容易得让人吃惊。关键的一点是理解,所有的货币或者令牌系统,从根本上来说是一个带有如下操作的数据库:从A中减去X单位并把X单位加到B上,前提条件是(1)A在交易之前有至少X单位以及(2)交易被A批准。实施一个令牌系统就是把这样一个逻辑实施到一个合约中去。
用Serpent语言实施一个令牌系统的基本代码如下:
这从本质上来说是本文将要进一步描述的“银行系统”状态转变功能的一个最小化实施。需要增加一些额外的代码以提供在初始和其它一些边缘情况下分发货币的功能,理想情况下会增加一个函数让其它合约来查询一个地址的余额。就足够了。理论上,基于以太坊的充当子货币的令牌系统可能包括一个基于比特币的链上元币所缺乏的重要功能:直接用这种货币支付交易费的能力。实现这种能力的方法是在合约里维护一个以太币账户以用来为发送者支付交易费,通过收集被用来充当交易费用的内部货币并把它们在一个不断运行的拍卖中拍卖掉,合约不断为该以太币账户注资。这样用户需要用以太币“激活”他们的账户,但一旦账户中有以太币它将会被重复使用因为每次合约都会为其充值。
金融衍生品和价值稳定的货币
金融衍生品是“智能合约”的最普遍的应用,也是最易于用代码实现的之一。实现金融合约的主要挑战是它们中的大部分需要参照一个外部的价格发布器;例如,一个需求非常大的应用是一个用来对冲以太币(或其它密码学货币)相对美元价格波动的智能合约,但该合约需要知道以太币相对美元的价格。最简单的方法是通过由某特定机构(例如纳斯达克)维护的“数据提供“合约进行,该合约的设计使得该机构能够根据需要更新合约,并提供一个接口使得其它合约能够通过发送一个消息给该合约以获取包含价格信息的回复。
当这些关键要素都齐备,对冲合约看起来会是下面的样子:
等待A输入1000以太币。.
等待B 输入1000以太币。
通过查询数据提供合约,将1000以太币的美元价值,例如,x美元,记录至存储器。
30天后,允许A或B“重新激活“合约以发送价值x美元的以太币(重新查询数据提供合约,以获取新价格并计算)给A并将剩余的以太币发送给B。
这样的合约在密码学商务中有非同寻常的潜力。密码学货币经常被诟病的一个问题就是其价格的波动性;虽然大量的用户和商家可能需要密码学资产所带来的安全和便利,可他们不太会乐意面对一天中资产跌去23%价值的情形。直到现在,最为常见的推荐方案是发行者背书资产;思想是发行者创建一种子货币,对此种子货币他们有权发行和赎回,给予(线下)提供给他们一个单位特定相关资产(例如黄金,美元)的人一个单位子货币。发行者承诺当任何人送还一个单位密码学资产时。发还一个单位的相关资产。这种机制能够使任何非密码学资产被“升级“为密码学资产,如果发行者值得信任的话。
然而实践中发行者并非总是值得信任的,并且一些情况下银行体系太脆弱,或者不够诚实守信从而使这样的服务无法存在。金融衍生品提供了一种替代方案。这里将不再有提供储备以支撑一种资产的单独的发行者,取而代之的是一个由赌一种密码学资产的价格会上升的投机者构成的去中心化市场。与发行者不同,投机者一方没有讨价还价的权利,因为对冲合约把他们的储备冻结在了契约中。注意这种方法并非是完全去中心化的,因为依然需要一个可信任的提供价格信息的数据源,尽管依然有争议这依然是在降低基础设施需求(与发行者不同,一个价格发布器不需要牌照并且似乎可归为自由言论一类)和降低潜在欺诈风险方面的一个巨大的进步。
身份和信誉系统
最早的替代币,域名币,尝试使用一个类比特币块链来提供一个名称注册系统,在那里用户可以将他们的名称和其它数据一起在一个公共数据库注册。最常用的应用案例把象“bitcoin.org“(或者再域名币中,”bitcoin.bit“)一样的域名与一个IP地址对应的域名系统。其它的应用案例包括电子邮件验证系统和潜在的更先进的信誉系统。这里是以太坊中提供与域名币类似的的名称注册系统的基础合约:
合约非常简单;就是一个以太坊网络中的可以被添加但不能被修改或移除的数据库。任何人都可以把一个名称注册为一个值并永远不变。一个更复杂的名称注册合约将包含允许其他合约查询的“功能条款“,以及一个让一个名称的”拥有者“(即第一个注册者)修改数据或者转让所有权的机制。甚至可以在其上添加信誉和信任网络功能。
去中心化存储
在过去的几年里出现了一些大众化的在线文件存储初创公司,最突出的是Dropbox,它寻求允许用户上传他们的硬盘备份,提供备份存储服务并允许用户访问从而按月向用户收取费用。然而,在这一点上这个文件存储市场有时相对低效;对现存服务的粗略观察表明,特别地在“神秘谷“20-200GB这一既没有免费空间也没有企业级用户折扣的水平上,主流文件存储成本每月的价格意味着支付在一个月里支付整个硬盘的成本。以太坊合约允许去中心化存储生态的开发,这样用户通过将他们自己的硬盘或未用的网络空间租出去以获得少量收益,从而降低了文件存储的成本。
这样的设施的基础性构件就是我们所谓的“去中心化Dropbox合约“。这个合约工作原理如下。首先,某人将需要上传的数据分成块,对每一块数据加密以保护隐私,并且以此构建一个默克尔树。然后创建一个含以下规则的合约,每N个块,合约将从默克尔树中抽取一个随机索引(使用能够被合约代码访问的上一个块的哈希来提供随机性), 然后给第一个实体X以太以支撑一个带有类似简化验证支付(SPV)的在树中特定索引处的块的所有权证明。当一个用户想重新下载他的文件,他可以使用微支付通道协议(例如每32k字节支付1萨博)恢复文件;从费用上讲最高效的方法是支付者不到最后不发布交易,而是用一个略微更合算的带有同样随机数的交易在每32k字节之后来代替原交易。
这个协议的一个重要特征是,虽然看起来象是一个人信任许多不准备丢失文件的随机节点,但是他可以通过秘密分享把文件分成许多小块,然后通过监视合同得知每个小块都还被某个节点的保存着。如果一个合约依然在付款,那么就提供了某个人依然在保存文件的证据。
去中心化自治组织(DAO)
通常意义上“去中心化自治组织(DAO, decentralized autonomous organization)”的概念指的是一个拥有一定数量成员或股东的虚拟实体,依靠比如67%多数来决定花钱以及修改代码。成员会集体决定组织如何分配资金。分配资金的方法可能是悬赏,工资或者更有吸引力的机制比如用内部货币奖励工作。这仅仅使用密码学块链技术就从根本上复制了传统公司或者非营利组织的法律意义以实现强制执行。至此许多围绕DAO的讨论都是围绕一个带有接受分红的股东和可交易的股份的“去中心化自治公司(DAC,decentralized autonomous corporation)”的“资本家”模式;作为替代者,一个被描述为“去中心化自治社区(decentralized autonomous community)”的实体将使所有成员都在决策上拥有同等的权利并且在增减成员时要求67%多数同意。每个人都只能拥有一个成员资格这一规则需要被群体强制实施。
下面是一个如何用代码实现DO的纲要。最简单的设计就是一段如果三分之二成员同意就可以自我修改的代码。虽然理论上代码是不可更改的,然而通过把代码主干放在一个单独的合约内并且把合约调用的地址指向一个可更改的存储依然可以容易地绕开障碍而使代码变得可修改,在一个这样的DAO合约的简单实现中有三种交易类型,由交易提供的数据区分:
[0,i,K,V] 注册索引为i 的对存储地址索引为K 至 v 的内容的更改建议。
[0,i] 注册对建议i 的投票。
[2,i] 如有足够投票则确认建议i。
然后合约对每一项都有具体的条款。它将维护一个所有开放存储的更改记录以及一个谁投票表决的表。还有一个所有成员的表。当任何存储内容的更改获得了三分之二多数同意,一个最终的交易将执行这项更改。一个更加复杂的框架会增加内置的选举功能以实现如发送交易,增减成员,甚至提供委任制民主一类的投票代表(即任何人都可以委托另外一个人来代表自己投票,而且这种委托关系是可以传递的,所以如果A委托了B然后B委托了C那么C将决定A的投票)。这种设计将使DAO作为一个去中心化社区有机地成长, 使人们最终能够把挑选合适人选的任务交给专家,与当前系统不同,随着社区成员不断改变他们的站队假以时日专家会容易地出现和消失。
一个替代的模式是去中心化公司,那里任何账户可以拥有0到更多的股份,决策需要三分之二多数的股份同意。一个完整的框架将包括资产管理功能-可以提交买卖股份的订单以及接受这种订单的功能(前提是合约里有订单匹配机制)。代表依然以委任制民主的方式存在,产生了“董事会”的概念。
更先进的组织治理机制可能会在将来实现;现在一个去中心化组织(DO)可以从去中心化自治组织(DAO)开始描述。DO和DAO的区别是模糊的,一个大致的分割线是治理是否可以通过一个类似政治的过程或者一个“自动”过程实现,一个不错的直觉测试是“无通用语言”标准:如果两个成员不说同样的语言组织还能正常运行吗?显然,一个简单的传统的持股式公司会失败,而像比特币协议这样的却很可能成功,罗宾·汉森的“futarchy”,一个通过预测市场实现组织化治理的机制是一个真正的说明“自治”式治理可能是什么样子的好例子。注意一个人无需假设所有DAO比所有DO优越;自治只是一个在一些特定场景下有很大优势的,但在其它地方未必可行的范式,许多半DAO可能存在。
进一步的应用 1. 储蓄钱包。 假设Alice想确保她的资金安全,但她担心丢失或者被黑客盗走私钥。她把以太币放到和Bob签订的一个合约里,如下所示,这合同是一个银行: ``` Alice单独每天最多可提取1%的资金。 Bob单独每天最多可提取1%的资金,但Alice可以用她的私钥创建一个交易取消Bob的提现权限。 Alice 和 Bob 一起可以任意提取资金。 一般来讲,每天1%对Alice足够了,如果Alice想提现更多她可以联系Bob寻求帮助。如果Alice的私钥被盗,她可以立即找到Bob把她的资金转移到一个新合同里。如果她弄丢了她的私钥,Bob可以慢慢地把钱提出。如果Bob表现出了恶意,她可以关掉他的提现权限。 ``` 2. 作物保险。一个人可以很容易地以天气情况而不是任何价格指数作为数据输入来创建一个金融衍生品合约。如果一个爱荷华的农民购买了一个基于爱荷华的降雨情况进行反向赔付的金融衍生品,那么如果遇到干旱,该农民将自动地收到赔付资金而如果有足量的降雨他会很开心因为他的作物收成会很好。 3. 一个去中心化的数据发布器。 对于基于差异的金融合约,事实上通过过“谢林点”协议将数据发布器去中心化是可能的。谢林点的工作原理如下:N方为某个指定的数据提供输入值到系统(例如ETH/USD价格),所有的值被排序,每个提供25%到75%之间的值的节点都会获得奖励,每个人都有激励去提供他人将提供的答案,大量玩家可以真正同意的答案明显默认就是正确答案,这构造了一个可以在理论上提供很多数值,包括ETH/USD价格,柏林的温度甚至某个特别困难的计算的结果的去中心化协议。 4. 多重签名智能契约。比特币允许基于多重签名的交易合约,例如,5把私钥里集齐3把就可以使用资金。以太坊可以做得更细化,例如,5把私钥里集齐4把可以花全部资金,如果只3把则每天最多花10%的资金,只有2把就只能每天花0.5%的资金。另外,以太坊里的多重签名是异步的,意思是说,双方可以在不同时间在区块链上注册签名,最后一个签名到位后就会自动发送交易。 5. 云计算。EVM技术还可被用来创建一个可验证的计算环境,允许用户邀请他人进行计算然后选择性地要求提供在一定的随机选择的检查点上计算被正确完成的证据。这使得创建一个任何用户都可以用他们的台式机,笔记本电脑或者专用服务器参与的云计算市场成为可能,现场检查和安全保证金可以被用来确保系统是值得信任的(即没有节点可以因欺骗获利)。虽然这样一个系统可能并不适用所有任务;例如,需要高级进程间通信的任务就不易在一个大的节点云上完成。然而一些其它的任务就很容易实现并行;SETI@home, folding@home和基因算法这样的项目就很容易在这样的平台上进行。 6. 点对点赌博。任意数量的点对点赌博协议都可以搬到以太坊的区块链上,例如Frank Stajano和Richard Clayton的Cyberdice。 最简单的赌博协议事实上是这样一个简单的合约,它用来赌下一个区块的哈稀值与猜测值之间的差额, 据此可以创建更复杂的赌博协议,以实现近乎零费用和无欺骗的赌博服务。 7. 预测市场。 不管是有神谕还是有谢林币,预测市场都会很容易实现,带有谢林币的预测市场可能会被证明是第一个主流的作为去中心化组织管理协议的“ futarchy”应用。 8. 链上去中心化市场,以身份和信誉系统为基础。
以太坊总量和挖矿时间
初始总量7200万,每年新增约1500万,预计2018年转为POS算法(不能挖矿),转为POS算法后,产量减少。每个区块5个币,每天产量约为4万,挖矿孤块率较高,难度为每个块调整一次。
以太坊矿机选择
选择矿机一看算力,二看功耗,三看历史口碑,包括机器稳定性、售后服务情况等。算力就是一台机器进行运算的能力,也就是这台机器能够每秒进行多少次哈希运算。目前主流比特币矿机的算力为14T,也就是每秒进行14*10^13次哈希碰撞。
如何测算显卡的性价比
简单的成本计算公式:显卡算力÷显卡价钱=每1块钱获得的算力。比如我们一张r x 5 8 0配备8 g内存的显卡,未超频挖取以太币算力是2 2 m h z / s , 价 钱 是 2 2 0 0 人 民 币 , 那 么 每 1 块 钱 获 得 的 算 力 就 是22/2200=0.01,那么超频后基本可以达到平均28.5mhz/s的算力,这样情况下每1块钱获得的算力就是28.5/2200=0.01295。
以太坊矿机的硬件
以太坊主要是使用显卡(GPU)来挖矿。需要配置一台多显卡PC来运行挖矿程序,主要硬件包含:显卡,主板,电源,CPU,内存,硬盘(推荐60G以上SSD),延长线、转接线等。其中显卡决定了挖矿的速度,主板、电源很大程度上决定矿机运行的稳定程度。
硬件准备:显卡挖矿不需要很大的PCIE带宽,主板上具备PCI-E 1X即可满足带宽要求。一般主板上具有3-5个PCI-E 1X接口,1个PCI-E16X接口,此外主板上具有大4PIN供电接口对稳定性有一定的提升。PCI-E1X需要淘宝购买1X转16X延长线。
以太坊挖矿常用显卡算力表:
挖矿靠显卡核心计算,所以AMD显卡比NVIDA卡更高效。选择AMD卡,要求显卡显存大于2G,推荐购买4G显存显卡。
常见显卡的算力图示:
AMD显卡算力表:
相关资料: