「魏扒皮」人人看懂“以太坊白皮书”

区块链世界日新月异,公链联盟链、牛币马币层出不穷。李笑来说扯价值投资你就输了,但谁也不想当韭菜任人宰割。在大妈都跑步入场的“区块链世界”,如何区分一个项目的好坏,不要遇到空气币而瞬间灰飞烟灭?大家说要一看项目、二看团队、三看社群,翻译成人话就是:一看项目是不是真的能解决问题?二看项目团队成员是不是很牛逼?三看会不会运营,懂不懂营销。而白皮书就是项目团队向公众传达项目信息、证明团队实力的最佳载体。

但现实的情况是,越是好项目的白皮书越是看不懂,什么共识机制,哈希算法对普通投资者来说简直就是天书。鉴于此,老魏试图做一件事,看能不能把天书翻译成人书。先从以太坊开始吧。

一、了解区块链必须先了解比特币,同样搞清楚以太坊也必须从比特币开始。

以太坊的初衷是解决比特币存在的一些问题,所以在了解以太坊之前,我们先简单了解一下比特币。对于比特币,建议主要了解以下信息:

1、现在人民币都是国家发行,我们要转账都要通过银行。假设没有银行,你会在网上给一个陌生人转钱吗?比特币就是能在没有银行这样的中央机构背书的情况下,还能让你安全的把钱(币)转给其他不认识的人,只是在这里面转的不是人民币,而是比特币。比特币是比特币网络发行的数字货币,这个数字货币本身没有价值,但是因为流通就产生了价值。

2、比特币是怎么保障在没有中央机构背书的情况下让转账安全运行的呢?又是怎么把数字货币发行出来的呢?这里就涉及到很多概念,重点理解以下几点:

一个是P2P网络,就理解成这个网络就像是一个蜘蛛网,网络上的每个人也就是一个节点,都是平等的,节点之间直接交易,不用经过什么中心化的机构。P2P网络是比特币的基础,大家在这张网上活动。

二是区块,就把区块理解成账本中的一页纸,节点之间的交易就记录在这张纸上。

三是链,就是账本,把每一张纸按照时间顺序连在一起就形成了账本。

四是记账,想象一下如果有一个账本,大家都随意的往里面记账,是不是就乱套了?所以比特币对于每一张账页纸,都通过一些机制找出一个人,让他来记账,并让所有其他人来确认,没问题就加到账本里面去。下一页纸又重新找出一个人来记账,但是大家为什么要来记账呢,没好处的事谁干啊,所以会给每一个记账的人一些比特币奖励,这样大家就都抢着来记账了,这也叫挖矿

五是账本谁来保管呢?既然没有中央机构来保管,那放在谁那里都不放心啊,万一有人改了账本怎么办?所以比特币会把最终的账本给所有人都发一份,一起来保管,这样就算有某个人改了账本也没关系。

六就是数据安全的保护了,大家的数据都在网络上跑着,隐私怎么保护?数据安全怎么保障?这里面涉及到一些密码学的技术,比如密钥、签名、哈希算法等等。目前通过这些技术还是能比较好的保障数据的安全,具体细节就不细说了。

以上我们大概了解了比特币,但是比特币存在一些问题,主要有下面两个:

1、工作能力有限:大概也就能干点转点比特币给别人这样的事。区块链既然这么好,自己当家做主,共产共妻了,能者多劳啊,能不能干点更复杂的事呢?

2、做事慢慢吞吞:首先一秒钟只能处理几笔交易,要知道银行转账一秒钟可是可以处理上万的交易;然后比特币设定要10分钟才能记录一张纸,而且要等记录6张纸以后,这张纸才真正算没问题了,这就得1个小时。要是转账交易的人多的话,你得等老长时间。

3、不环保:前面讲到记账是根据一些规则选出一个人来记的,这个机制就是工作量证明,是根据节点的计算能力来决定的,意思是你的计算机的性能越强大,你获得记账的概率就越高。比特币值钱啊,为了获得比特币,是不是就要提高计算机的计算能力,就出现了专业的矿机专门来挖矿(现在个人电脑基本都挖不到矿了)。这些矿机非常耗电,有数据显示,完成一次比特币交易耗电量,可供一个美国主流家庭使用5.5天。

4、存在被人控制的风险:上面的工作量证明机制,还带来一个问题,因为普通人已经很难挖到矿了,算力就越来越集中到那些专业挖矿的人手中,甚至很多矿工矿机加入矿池,形成了联盟,导致算力越来越集中。如果有人联合这些矿池矿机,控制总算力甚至达到了51%,这个时候是不是他就可能控制网络,比如他把一笔比特币转给别人,获得了他要交换的东西,但是在网络还没最终确认之前,他又把这笔钱转回给自己,因为他控制了大部分的算力,就可以联合大家一起强行逆天改命,都来确认说这个交易是合法的,这个也叫51%攻击。(实际细节比这复杂,只是为了让大家理解概念)

二、以太坊的由来和希望解决什么问题?

后来,有一个俄罗斯19岁的小伙子叫V神,他就在想,能不能来解决这些问题?能不能让区块链可以做一些更复杂的事。回来区块链世界,比如是不是可以把房产、股票都放在区块链上来交易?比如航空延误险,是不是不用保险公司,只要航班延误就自动赔偿,把相应的以太币转到你的账户?这些都要比简单的货币转账复杂多了。

另外,既然以太坊能支持这么多的应用场景了,那就会有很多有想法的人希望能实现这些场景,但是没必要每个人都去建一套这么复杂的区块链系统吧,毕竟完整的建一个区块链系统还是非常复杂的事,所以以太坊团队就提出他们把底层的系统做好,大家只需要关心怎么把业务场景实现出来就可以了,不用管底层这么复杂的东西。就像盖房子,以前都是自己一砖一瓦的建房子,现在可以选择门、墙、窗等这些别人已经做好的东西来组装就好了,你要考虑的是建学校,还是建银行。

以太坊还是从比特币延伸出来的,也是没有中央机构,基于P2P网络,用区块和链来记账,所有节点共同维护账本,也发行自己的数字货币,记账挖矿也有数字货币奖励,以太坊发行的数字货币叫ETH。

三、以太坊是怎么来解决这些问题的呢?

1、怎么能做更多的事?(智能合约)

为了要解决干更复杂的事,以太坊引入了“智能合约”,合约就是合同,合同双方可以约定一个事,当某个条件达到时,这个事就自动执行。比如你可以和航空公司约定,当某个航班延误了,航空公司就赔偿你1个ETH,那么当这个航班真的延误了,赔偿就会自动执行;还比如你可以和任何人约定,双方先各押1个ETH,如果明天下雨就你赢了,2个ETH都给你,否则你输了,2个ETH就给对方。

2、合约是怎么制作出来和被使用的?(DAPP)

合约本身是静态的,只有外部一些条件满足时才被触发。所以合约本身就是一段程序,需要专业的开发人员先开发出来,以满足不同的应用场景,比如前面说的航空延误险的智能合约,这些合约最终展现出来就是一个个APP(区块链世界叫DAPP,分布式APP),就理解成手机里面的APP一样,这些APP就是普通用户能接触和使用的了。

3、怎么让有想法的人很简单的做出DAPP呢?

首先以太坊提供一套理论上可以无所不能的编程语言(也叫图灵完备脚本语言),开发者不需要了解以太坊底层是怎么运转的,只需要基于这套语言开发智能合约即可。但是这套语言还是很复杂,大部分人没学过怎么办?以太坊还可以让开发者用自己熟悉的编程语言,比如Java、C语言来开发,然后以太坊会通过EVM来翻译成他自己的语言。这套他自己的语言就类似普通话,然后大家熟悉的编程语言就类似各地的方言,这个EVM就像是自动翻译机。

然后以太坊采用模块化的设计,就是把很多能力和工具打包成模块封装起来,一是大家可以直接使用,大家只需要关心模块能干什么,不用关心怎么干的;二是在模块内部做一些改动,不用影响底层系统。

还有以太坊提出不反对特定的不受欢迎的应用,只要你愿意为其支付按步骤计算的交易费用(以太坊每一步计算都要支付交易费用,使用存储资源也要支付费用)

4、怎么提高做事的效率?

以太坊只能说在比特币的基础上效率高了一些,但其实也并不是很高,这也是现在被很多人诟病的问题之一,也有很多其他链希望来解决效率的问题,比如EOS,下一讲我们再来专门扒EOS。

首先简化交易模型。比特币是没有账户概念的,就是说没有一个账户告诉你有多少比特币余额,比特币只记录别人转给你和你转给别人的交易记录,你要转币给别人,只能用别人转给你的币。比如有ABCDE五个人分别转了1个币给你,你可以说把A和B转给我的2个币中的1.5个币转给F,那么剩余的0.5个又会作为零钱再转回给你,那么B收到你给他的币以后,他也可以这样再转给别人,以此类推,所有交易实际上也形成了一条链。这个模型相对比较复杂,也不直观,而且交易的确认效率也很低,在以太坊中引入了账户的概念,分为普通账户和合约账户,通过这种直观的账户模型,提高交易效率和交易确认的效率。

然后缩短记账的时间,比特币记一页帐需要10分钟,以太坊将这个时间缩短到60秒。

还有以太坊不控制区块的大小。在比特币网络中,一个区块大小,也就是一页账纸的大小是1M,大概一个区块能记录3000多笔交易(因为一笔交易的大小和交易的复杂度有关系,这个只是大概的平均值),那么如果一张纸上可以记录多一点交易,是不是效率就提高了?以太坊采用了完全不同于比特币的做法,使用gaslimit来限制,所以以太坊的区块大小是不固定的。

5、怎么解决不环保和被集中控制的问题?

在这个问题上,初期的以太坊并没有太大的改进,还是延续了比特币的工作量证明机制。不过引入了幽灵协议,由当前区块和上一级区块的兄弟区块一起来证明工作量,此处省略100字。

6、以太坊数字货币(以太币)是怎么发行的?

7、以太坊的奖励怎么给?交易费用怎么收?

三、以太坊可以做些什么?

在以太坊白皮书中列举了一些应用以太坊的例子,比如:

1、发行子货币

如果基于以太坊开发了智能合约和DAPP,有了自己的用户群体,也想发行自己的数字货币怎么办?以太坊可以很简单的实现,也就是说基于以太坊你可以很简单的就发行自己的数字货币,这些子货币也可以用来代表其他数字资产,比如美元、黄金、股票,或者抵押物等等,从而实现在区块链上进行这些资产的安全交易。

2、金融衍生品

比如可以开发对冲合约,大概的意思是,A 存进 4000 个以太币来创建合约,任何人都可以接受这个合约,他只要往里存进 1000个以太币。假如合约创建时,1000 以太币值 25 美元,如果 B 接受这个合约,那么 30 天后,合约将发送价值25 美元的以太币给 B,再把剩下的发给 A,任何人都可以通过发送一个交易给合约让它执行。这样 B 就免除了以太币价格波动的风险,且不需依靠任何发行方。B 的唯一风险就只是剩下以太币价格在 30 天内下跌 80%以上,但甚至连这个风险都是可以通过建立另一个对冲合约来规避,当然这需要 B 在线 。 而 A 拿到的好处是那隐含的 0.2%的合约费用,至于风险, A 可以通过另外持有等额的美元来对冲(或者 A 看好以太坊的未来,他想通过这个合约用 1.25 倍的杠杆看涨以太币,如果是这样的话,那 A 可能甚至愿意支付合约费给 B )。

注意,任何形式的金融合约都需要全额担保,因为以太坊网络不控制任何国家机器,也不能帮忙追债。

3、身份和信誉体系

比如域名币,域名币最大的用途被认为可以用来做 DNS 系统,把诸如“bitcoin.org”的域名(在域名币体系里可能会是 bitcoin.bit)映射成 IP 地址。

4、去中心化自治组织和公司

指由一定数量股东组成的实体,这些投资者可以获得分红,这些股东共同决定该怎么花公司的资金,是以悬赏的形式,还是工资的形式?甚至别的更新奇的方式,如用内部货币奖励贡献,这些资金还是自动分配的,等等。这是去中心化组织的公司模型,(去中心化自治组织的)另一种形式可被称为“去中心化自治社区”,其成员将在决策时有相等的投票权,添加或者移出成员需要 67%的成员统一。一个成员的加入强制地需要群体共同决定。

5、储蓄钱包

假设A希望保障他的资金安全,但是担心自己会弄丢私钥或私钥被黑客盗走,那他可以把以太币打进与B(是一家银行)的合约里,规定如下:A每天可以单独取款最多 1%的资金,A 和 B 一起则可以取走全部,而 B 单独最多只能取0.05%。通常一天 1%对于 Alice 是足够的,如果她想取更多可以找 B 帮忙;如果 A 的私钥被盗了,她可以赶紧跑去找 B 一起把资金转移到一个新的合约里;如果她丢了私钥,B 最终还是可以把资金(缓慢地)取出来的;如果最后发现 B 是恶人,那 A可以以 20 倍 B 的速度把钱转走。

6、农作物保险

你可以很容易地建立金融衍生品合约,这里用的是天气的数据输入,而不是价格指数。如果一个衍生品合约支付出来的金额与爱荷华州的降雨量负相关,那么一个爱荷华州的农民如果买它,就可以在干旱的时候收到补偿;而当降雨充沛的时候,他会很开心因为他的农作物会长得很好。

7、点对点赌博

比如可以用来赌下一个区块的哈稀值与猜测值之间的差额,可以通过给每一次赌博创建一个合约来实现,也可以通过半中心化的合约来实现。

以太坊还举了其他的应用场景,这里不一一列举,有兴趣的可以查阅以太坊白皮书。


分享到:


相關文章: