1连接区块链知识的断点
为高速发展的区块链世界的欢呼是具有挑战的。这本书将会是你的指引。在开始之前,让我们定义一下之后将要用到的一些术语。
“区块链”是一种完全分布式的,点对点的软件网络,这个软件网络利用加密学来安全地群集应用软件,储存数据,简单地传输用于代表真实世界金钱的数字化工具。加密学是一个通过编码信息来进行的交流艺术。在比特币和以太坊中,加密学是用来给成千上万个相似的机器创造出来一种安全运算环境,没有集中的权力机构,没有单一的拥有者。在这种潜能之下,很明显就只能知道为什么这种科技会遭受史无前例的投机热,大肆宣传,质疑和预测。
“以太坊”这个专业名词可以用来区分三个不同的东西:以太坊协议,电脑用这个协议所创造出的以太网络,还有发展前两项技术的以太坊基金会。紧随着比特币的脚步,以太坊创立它自己的宏观世界,吸引了来自各界的狂热分子。一些文化中最令人叨扰的瑕疵可能会成为区块链领域的杀手级应用,同时以太坊协议(从比特币中分离,延展出的)会被广泛地认为是这些分布式应用萌发的地方。对于开发者,设计者还有产品经理来说,这正是最好的时机去开始研发以太坊网络的原型应用。
区块链大点名!
两大组织的醒客们都对区块链技术,更明确的说是以太坊,很感兴趣:开发者们有兴趣去建立产品和服务,那些对以太坊技术潜力好奇但不是开发者的人们,对于金融服务很感兴趣或工作在金融服务行,资讯,保险,法律,游戏创造,政府,物流,产品设计或者IT行业。这本书类似是跨行业的。它提给这些开发者或非开发者们提供了指引,给他们关于做什么产品或怎么去做的一些想法。它填补了位于计算机科学和经济,金融服务,必要时涉及一些银行历史的缺缝。
对于开发者来说,以太坊最大的挑战不是代码,就像大多数开源的软件项目一样,经历过一些开发项目环境的人更容易入站。反而,挑战性却在于密码经济学,或是保护网络的诱发或抑制系统。
对于那些非开发者而言,他们的所要挑战的是如何适应这个生态系统。有人声称区块链将会把银行系统现代化,改革保险,摧毁假币,这些也可能是过分吹嘘,但是有多少是吹嘘有多少是可以实现的呢?
以太坊是做什么的?
理论上来说,开源区块链网络,比如以太坊和比特币,它可以很快地在软件上实现一个经济系统,其中伴随着账户的管理和账户之间进行Native Unit交换。某种意义上很像大富翁这个游戏。人们称Native Unit交换为金币,代币或者是加密货币(cyrptocurrencies),但是他们在其他系统中也是一样的,他们是以一种钱(或纸条)的方式运作在这个系统之中。
区块链的运作就像网状网络或者LAN(局域网);他们只是连接其他计算机结点并运行相同的软件。当你想要通过浏览器创建其中一个P2P网络的时候,你需要使用特殊的软件库,就像用Web3.js去连接一个应用的前端(网页中的GUI图形用户界面),通过JavaScript API,连接他的后端(区块链)。
在以太坊中,你可以更深一步的利用这个概念,在这个系统中和其他用户写一个金融合约。这些金融合约(Financial Contract)就叫智能合约(Smart Contract)。
The key component is this idea of a Turing-complete blockchain. … As a
data structure, it works kind of the same way that Bitcoin works, except
the difference in Ethereum is, it has this built-in programming language.
—Vitalik Buterin, inventor of Ethereum
在以太坊中,智能合约使用Solidity这种语言来编写的,第四章会讲到。图灵完整这个优点被开发者们迅速的牢牢抓住,但是更重要的是以太坊的能力是状态储存(save state)。
在计算机方面,状态系统的定义是可以检测到信息的变化并随着时间记住这变化。
幻想一下,一台计算机没有硬盘驱动器;你没法在这台计算机上操作什么。他就像一个计算器,它的内容随着他的内存一闪而过。在未来特定的条件下,能精明的处理与用户的交互是区块链强大的附属之一。它允许开发者们在加密货币交易编程中采用控制流(control flow)。这是以太坊和比特币最大的区别,后面会后续介绍其他区别。
Control flow refers to the order in which computing instructions are executed or evaluated. Examples are conditional statements (if this, then that) and loops (which run repeatedly until certain conditions are met).
在比特币中,所有交易是发生的越快越好。因为比特币缺乏状态,它不得不一次执行所有交易。比特币创造者所预想的区块链是一个分布式交易账簿,它在网络中记录每个人的比特币余额(比特币网络是用大写字母写的,代币是用小写字母写的)。在以太坊中,一个类似的系统可以以一种标准方式去进行扩展。
第二,这个常见的脚本语言让区块链更直截了当,区块链可以分享以太坊协议从而分享数据,让使用不同区块链的团体可以分享他们的信息。
什么是协议?
如果你是软件开发的新人,一个IT的十秒钟突击课程对于你来说很有用。IT可以被定义为电脑系统储存,编辑,检索和发送信息。这些信息是怎么随着时间而表现和更新的呢,为了反映内部和外部的变化,它依据于哪个技术系统的使用。
在电信背景下,协议是一个系统的规则,它用于去描述计算机是怎么通过一个系统或网络去连接,分享和传输信息。这些指令定义了系统所期待的代码语法和语义。协议涉及硬件,软件和明语(plain-language)指令。以太坊不需要特殊的硬件,且软件是完全免费的。
在以太坊中,协议是用来涉及构建去中心化的应用,其强调迅速的开发时间,安全和交互。
区块链的第三部分
区块链可以被认为是一种分布式的,重复的,跨多个计算机的数据库。区块链的创新点在于它特殊的网络数据库能力,它可以协调交易的顺序,甚至这个指针接收的交易处在不同的顺序。
这经常发生是因为物理距离的网络延迟;比如,一个在东京的用户买了一份热狗,这个交易会首先被派发到日本结点。纽约接收到这个交易要几毫秒后,但是附近布鲁克林人可以排在这个东京的前面。这些前后不一致是因为分布式系统的主观方面造成的。集合多个科技的区块链系统就可以用来部署去解决这个问题。
我们总是说的区块链就是真的结合了三种科技,比特币创造者先调制的秘方。这三种原料如下:
P2P网络;一个计算机组,形如可以不依靠一个单一中央权力机构而进行交流且不会呈现单点故障的BitTorrent网络。
非对称加密:一种计算机发送加密信息给接受者的方式,就像任何人都可以核实发送者真实性,但是只有预期的接受者可以读到信息内容。在比特币和以太坊中,非对称加密用于创建一系列的证书给账户,去确保你可以传输你的代币。
加密散列法:一种可以给数据产生小的,独一无二的“指纹”的方法,它允许快速比较数据组和用一种安全的方式去验证数据没有被替换;在比特币和以太坊中,Merkle Tree数据结构就是被用于记录标准的交易订单,之后被hash加密成指纹作为一个基础比对在计算机和网络中,在其围绕下它可以迅速同时发生。
这些树元素的结合在1990年和2000年早起衍生出电子点金digi cash。在2002年,Adam发布HashCash,他首先应用挖掘是发送交易。2009年用假名字的Satoshi Nakamoto利用分布式一致性创建了比特币。
以此同时,这三个因素可以模仿一个简单的数据库,它可以去中心化并在网络中储存结点。以同样的方式,一群蚂蚁可以建成一个殖民队,你可以把比特币理解为一个机器。在计算机术语里面,它是一个虚拟机(VM),我们后面会详细说明。
在计算机术语里,以太坊在比特币虚拟机范围内添加了一个信任的全球的对象框架信息系统。2014年以太坊首先被建议用以太坊白纸(Ethereum White Paper).
——————————————————————————————————————————————————————TBC
10/11/2017
以太坊设想了许多链
我们今天所认知的比特币不是唯一的大规模的软件部署。比如莱特币Litecoin,它用修改一下的比特币软件,像这样的有很多。以太坊当初建立的时候有这样的设想,盲目模仿是必然的结果,它可能有许多区块链,因此在进行交流的时候会有一系列的协议在其中。
注意:以太坊的协议得益于经济和编程理念。这本书包含了必要的两者的定义。
相比于比特币的创造者,以太坊的创造者有着根本不同的观点,他对加密货币采取含蓄地的立场,如果加密货币未来存在,加密货币将不会是一个去中心化的系统。取而代之的,它将会是一个分布式网络的去中心化系统,让许多不同的加密代币有价值,不同的目的和解释将会很容易很快地被定义,然后应用到生活中。
这是诈骗,就像比特币一样!
如果你工作在金融服务行业或者学习经济学,去Google搜一下,会发现这样的结论,比特币本质上来说就是庞氏骗局。让我们这个先放一边。
你有一半是对的:比特币的价值是被比特币市场所决定的。当然,这些持有比特币的集体是获得了当地货币交易证书的,他们用美元,欧元,黄金或者其他货币来与比特币进行交换。但是这些集体术语私人贸易,他们从交易中收费,同样地他们也会在任何时候破产。
所以比特币和网络在某种程度上来说,它最大的致命点就是寻找最后的接盘侠,在未来将没有一个可信的实体(政府或集团)来兑换你的比特币。个人货币兑换的弱点就是,你唯一能做的就是讲比特币换成有实际价值的东西,在上网用比特币与法定货币去进行兑换,其实就是寻找接手的买家。
就像比特币网络转移比特币代币一样,以太坊网络也转移代币。以太币和比特币工作方式不同,你将会发现以太币可以被恰当地叫做加密货物(cryptocomodity)而不是货币。下面就让我们来看下以太坊经济是什么与这潜在的科技进行关联的。
作为一种货币或者货物的以太币
通常来说,比特币背后是没有任何财力支持的。当然,当代法定货币同样也是没有任何财力支持。但是这是不同的:政府批注授权的法定货币是用于税务和购买国债的。国际货物贸易是用美元的,同样的(像原油)也是人们持有美元的一个原因。
对于加密货币来说,挑战同样存在。如今,这些电子代币在当前的法定货币系统中保持了一个高速且安全的公共支付层次;一个实验性的部署在未来某天就有可能代替中心化支付网络科技,像Visa,MasterCard这样的。
然而,未来将有很大的可能性政府或者私人机构投资者会创造大量的加密货币市场和金融产品。中央银行同样也可能采用这项技术。当我写到这里的时候,至少有一个国家颁布了电子美元,它使用了比特币软件:巴巴多斯。其他的国家也在积极地研究其未来的前景。
格莱欣法则
为什么当金融产品,合同,保险政策等与加密货币有联系的时候它就变得很重要呢?这和以太坊又有什么联系呢?
一种货币可以买有价值的证券或者资产,那么他就是有储蓄价值的。以太坊网络允许任何人去编写一个值得信任的,可自己执行的商业合约(智能合约)。未来项目的商业合约将会是利益相关者们持有它的一个原因,同样它也可以储存价值。
对于最初黄金白银货币的使用,格莱欣法则是这么说的,在经济领域中,不好的金钱驱逐出高的东西("bad" money drives out "good")。换言之,人们存钱或者囤积钱财的目的是为了增值,花钱的时候是贬值。
尽管这个定律是以一个16世纪英国金融从业者名字命名,这个理念似乎是确定是中世纪的写法,所有的方式确实是以一个古老的文本来写的,其中包括阿里斯托芬的诗“The Frog”,日期可以追溯到公元405年:
Coins untouched with alloys, gold or silver, Each well minted, tested each
and ringing clear. Yet we never use them! Others pass from hand to hand …
几千年来,人们通过货币工具来储存他们工作创造出的价值,这样就价值就可以保持稳定或是增值或是抬高价格,而不是让价值暴跌。现如今,加密货币在价值上是不稳定的,而且就像我们所写的,加密货币也只是被一小部分的政府或企业接受。寥寥无几,去中心化的智能合约被现在的商业所应用。但是出于同样的原因,被中央银行所认定的法定货币有着可怕的历史记录,可论证性的证明是倾向于泡沫的,萧条的和被操纵的。加密货币能成为真正的货币么?它会比我们已经适应了的货币更好么?-----------------------------------------------------------------------------------------------------------------------
通往更好货币的道路
现如今,比特币(BTC符号所表示的)已经被人民,政府和企业用来去传递价格和购买产品和服务。他们每交易一次比特币都会付给网络一小部分的费用,这些都是在比特币中声明过的。用ETH符号来表示的以太币同样也是这么使用的。想要知道后面的东西,首先你要了解一些事。
第一,以太币有其他的用法:他可以在以太网络中支付运行的程序。这些程序可以在相应的条件下转移以太币。
因为它自身的能力,它在未来可以支付交易的实行,以太币同样地可以被认为是一种商品,就像是驱动网络去运行应用和服务的燃料。所以它相比比特币来说,拥有额外纬度方面的固有价值;它不只是储存价值。
当今,势不可挡的法定货币的使用可能会使加密货币显得很烂-因为加密货币会在长期的使用中趋向于领价值。但是,比特币和以太币却被持有者们极度看好的贮藏,甚至被一些公司所信任,这公司就是我们写道的:Grayscale,Digital Currency Group的一个子公司。同时,中央银行在West实验中奖金零利率和量化宽松,就是我们所熟知的印钞,越来越危险的不顾一切的去控制通货膨胀和通货紧缩。
随着比特币每四年减少一半的奖励,全球货币政策的不景气,一般经济的不确定,法定货币信任度的逐渐减少,大量潜在的贮藏加密货币被高价格的真实服务需求正在被拉向市场。在那些曾经暴涨的加密货币就可以体现出,尽管这个价格在一天之内都不会稳定。这个平衡是在囤积者,投机者和使用者之间的,这个平衡创建了一个蒸蒸日上的健康的加密货币市场,同样地也显示出了加密货币作为一种资产类别起到了金钱的作用,甚至更多的作用。
加密经济与安全
在我们讨论智能合约的时候,提及货币和货币的原因是要训练你自己去思考在纯软件条件下建立经济系统。这同样也是以太坊的保证。
利用游戏游戏理论规则的软件系统设计组成了加密经济领域,在这个领域我们将会在此书中沿着科技角度来讨论。这些东西起初看着很简单-一种公平的货币,举个例子-在代码中创建一个复杂的世界。事实上,是什么让像以太坊和比特币这样的系统很安全呢,它们不是基于任何反黑客科技,但是依赖于强大的金融赏罚系统来阻止作恶者。
对于软件设计师和工程师来说,这是很有吸引力价值的命题。但是,引导货币(或代币)硬币是完全独立的,这增加了人们对最终用户应用程序的兴奋。这本书解决了挑战的一半。
尽管这个软件最明显的应用程序可能在金融服务中被发现,但是未来的应用程序可能也会使用同样的levers信任、事务、金钱和脚本,这些都是完全不同的目的。就像命令行最终变成了GUI和现在的虚拟现实(VR)应用程序一样,决定使用Ethereum(以太坊)来创建什么取决于你。但我们还是会讨论一些例子。
回到过去美好的时光
没错,比特币和以太坊在编写软件的时候添加了一些复杂性和经济进去。但是在某些方面,它们也很简单。使用去中心化的协议和使用1970年的计算机一样简单。这些是巨大而昂贵的资源,但是人们可以从拥有这样机器的大学或者公司来租赁。以太坊网络的功能就像一个巨型计算机同时执行多个程序;它是一台被其他机器所“虚拟化”的机器。由多个私人计算机构成的EVM以太坊虚拟机可以被理解为一台无主的且被共享的计算机。
EVM以太坊虚拟机的改变是通过硬方式实现的:说服整个社区的节点操作员来更新到一个新版本的以太坊软件。对网络的更改不能简单地由核心开发团队来推动。它们涉及到说服和阐述的政治过程。这种无主配置是为了最大限度地提高正常运行时间和安全性,同时最小化了对子机制的激励。