巴比特论坛

发表于 2018-6-13 13:47:48 | 显示全部楼层

公众号:区块链朋克(微信号:CryptoPunk)


世界总在悄无声息间发生巨大的改变~



朋克之前讲完了区块链的开山鼻祖——比特币的各种特性之后,今天来给大家讲一讲区块链2.0的奠基者——以太坊(ETH)

通常来说,区块链1.0的代表:比特币、莱特币、比特币现金等,主要用途都是用于进行交易,定位更多是数字货币的支付功能

而区块链2.0,以以太坊为代表,是从单纯的货币职能,变成了可编程的智能合约及去中心化app(Dapp)。
image1.jpeg

那么以太坊为什么被称为区块链2.0的代表呢,相比比特币又有哪些优点呢?

一、以太坊的历史和现在

以太坊(Ethereum,简称ETH)是由Vitalik Buterin(也被尊称为V神)在2013年末第一次提出,不久后发布了白皮书。2014年V神正式宣布了以太坊并发表了黄皮书。在2015年ETH的主网正式运行。

目前ETH是市值第二大的数字货币,仅次于排名第一的BTC。截止目前(2018年3月7日),总市值约5000亿元。

二、以太坊与比特币最大的区别

BTC和ETH在设计之初就有着完全不同的定位:BTC的定位为电子支付系统;ETH的定位则是智能合约(smart contract)和中心化应用(Dapp)平台。

两者的核心区别就在于ETH脚本是图灵完备的,而BTC不是(上一章朋克提过,图灵完备指的是可以实现所有的代码编程)。这导致了在BTC仅能满足简单的金融类合约,如建立token,建立多重签名钱包等;而ETH理论上可以用来编写一切现代计算机语言能编写的程序,这也为其发展去中心化应用及智能合约奠定了良好的基础。
image2.gif


三、智能合约及去中心化应用

什么是智能合约?什么是去中心化应用?

智能合约朋克」在上一章提到过,通俗地讲就是代码化的合同Code is law.

用代码来写合约(合同),从而保证合约一定会按照约定好的条件执行。因为是代码是不会骗人的。

举个最简单的例子,通过智能合约,A和B两个人可以很容易的进行交换物品并且不会有任何的风险

假设A和B交换的是数字货币。A和B只要写好一个智能合约,约定如果A和B同时往一个账户里打了双方约定好的数量的不同种数字货币,那么智能合约就可以执行,将B打进来的数字货币自动转给A,同时将A打进来的数字货币转给B。如果A和B其中任何一方没有按照约定的进行操作,那么打进来的钱可以原路返回。

这只是最简单的应用。

「朋克」认为可能在未来的一天,纸质合同可能都会被淘汰了,因为所有的合同都是用代码来编写了。
image3.gif


智能合约相比纸质合同有几个好处。
  • 更加清晰。代码怎么编写的就是怎么样,非常清晰,不会有像纸质合同中可能出现的部分条款会由含义不是特别明确可能。
  • 完美执行。智能合约一定会不折不扣的进行执行。
  • 违约情况处理成本低。如果签约智能合约的一方发生了违约情况,只要合约中有约定违约惩罚,那么就一定会执行。而纸质合同如果出现违约,如果双方无法达成一致意见,需要打官司处理,时间成本和经济成本非常高。

那么去中心化应用又如何理解呢?

目前我们日常生活中使用的绝大部分的app、网站都是中心化的应用。它们的运营者会把用数据的存储和程序的执行都放在它们自己控制的服务器上,对程序和其中的数据有绝对的控制权

那么去中心化的应用,是指程序是通过开源的代码以及分布式的存储和运行,保证极高的透明度和安全性网络中不存在能够完全控制Dapp的节点,哪怕是这个程序的开发者,也不能控制程序

举个最简单的例子。

很多网络游戏(目前基本都是中心化的)都有可以抽奖的机制,但是很多时候感觉大奖总是怎么抽也抽不到。可能运营方会说这个大奖抽出的概率是1%,但是实际的利率到底是不是1%,除了运营方之外没有任何人能知道,更不要说验证了。

但是,如果这个网络游戏是去中心化的,那么首先(部分)代码是开源的,并且会有多个节点运行程序,且数据也会分布式存储,从而保证设定的概率一定会被严格执行

因此去中心化的程序相比起中心化的程序的好处在于:

  • 程序的运行更加的透明和公正,并且不会被篡改数据
  • 程序更加安全,即使部分节点被攻击,也不会影响全局的安全性

但是不论是智能合约还是去中心化应用(去中心化应用本质上就是一个复杂的智能合约),存在的最核心的问题就是,由于多个节点在运行程序,相互之间需要同步状态(数据),会导致整体程序运行的效率低于中心化的应用

ETH最核心的就是提供了一个图灵完备的计算平台,理论上可以运行各种智能合约以及去中心化应用。

可惜,目前这只是理论上的。
image4.gif

目前制约ETH链上的去中心化应用发展最大的问题,就是ETH的性能及TPS过低。目前ETH的TPS大约在20左右,高于BTC,但是还远远达不到承载现有主流app的能力。

之前大家经常调侃ETH的一个梗是,以太坊上养一只猫就把整个链搞瘫痪了。(注:这里说的是CryptoKitties,一个基于ETH的去中心化在线游戏,可以领养和交换虚拟猫咪)
image5.gif

目前由于ETH的应用数量的增长速度超过了区块链扩容的速度,ETH区块链出现和BTC区块链类似的拥堵状况,使得每笔交易的手续费持续提高,目前在0.5美金左右。

四、以太坊虚拟机(Ethereum Virtual Machine, EVM)

以太坊虚拟机是以太坊智能合约和去中心化应用程序(Dapp)的执行平台

每一个网络中的全节点都运行一个EVM的程序,从而执行每一笔以太坊网络上传输所需的计算,并最终得出相同的运算结果。这也就是去中心化应用程序运行的载体。

EVM使得运行在以太坊的智能合约和Dapp更加的安全,因为除非外部攻击同时攻击所有运行EVM的节点,否则整体的运行不会受影响。并且,由于多个节点同时运行相同的程序,可以使得程序输出的结果更加的透明和公正。

五、以太坊的共识机制

以太坊目前采用的也是基于PoW(工作量证明)的分布式记账的模式。但是,之后以太坊会慢慢转向PoW+PoS(权益证明)的模式,最后彻底转变为PoS的机制。

PoS的模式下,每个节点获得记账的概率与其质押的ETH数量*质押时间成正比。这样的优点不需要耗费大量的电量挖矿,但是缺点是可能会导致富者愈富,穷者愈穷

由于目前ETH还是采用PoW,而且转变为PoS的时间表目前没有清晰的计划,故「朋克」在这里还是以介绍ETH现有的PoW模式为主。

ETH的PoW模式相比BTC有几个改进。

1. 出块和容量方面

为了提升整体的确认和交互效率,ETH将出块时间调整为15秒(比特币为10分钟)。并且每个区块没有固定的大小限制,而是设置燃料上限(可以简单的理解为手续费上限,下文会详细讲解)。这样可以使得每个区块消耗的公链上的计算资源大致相同。

2. 叔块的设计

之前「朋克」在介绍过,比特币会产生自然分叉(多个节点几乎同时发现下一个区块),然后较长的链会成为主链,而被抛弃的区块,则会称为“孤块”。在BTC中,发现孤块的矿工不能获得主链上的代币奖励,孤块本身也不能为主链提供安全性,产生孤块的算力事实上是被浪费掉了。

同时,出块速度越快越容易造成自然分叉和“孤块”。而以太坊的出块速度调整为15秒之后,原本非常容易造成“孤块”,但是这里以太坊提出了“叔块”的概念,比特币中的“孤块”在以太坊中成为了“叔块”,通过非常巧妙的设计,将原有“孤块”浪费的算力充分的利用了起来。

除了引用父块外(即上一个区块),以太坊的新区块还可以引用0-2个不在主链上的合法叔块,新区块每引用一个叔块可以获得额外的区块奖励,同时发现叔块的节点也可以获得比一个正常区块稍低的区块奖励。此外,在原有比特币中的最长的链是主链的共识,在以太坊中改为了最“重”的链是主链的。这里以太坊提出了一个重量的概念,父块会增加链较多的重量,而叔块也会增加链较少的重量。

这样一方面的模式,这样的机制减少了‘发现主链之外的区块’这一事件的浪费,并且通过重量的设计,使得叔块也能够增加链的安全性,从而使即使以太坊有较高的出块速度,也会非常安全。

3. DAG的结构

image6.png



由于叔块的存在,以太坊的链就从简单的单链结构(BTC就是单链结构),升级成为了有向无环图(Directed Acyclic Graph, DAG)结构,如上图所示。如果,从任何一点出发,经过若干点后无法回到起点,这就是DAG的结构。

因为叔块的存在,形成的DAG结构,使得ETH的PoW算法在挖矿时,需要将DAG信息存储在内存中,并频繁的快速访问。

因此,不同于比特币只是计算密集(computational intensive),ETH的挖矿算法不仅是计算密集,同时也是内存密集(memory intensive)的。(注:比特币只需要进行哈希碰撞解密即可,而不需要频繁的调取内存,所以只是计算密集)

因此,比特币较为容易开发出专用挖矿的集成电路(ASIC),也就是俗称的矿机,而以太坊较难开发出专用的矿机。这个设定使得以太坊可以直接用民用的显卡进行挖矿,使得参与的矿工可以更加的去中心化

六、GAS是什么

与比特币链上的交易费直接用BTC支付不同,ETH网络有专用的交易燃料——Gas

在ETH上,不同的操作消耗不同数量的Gas,通过限制区块燃料上限保证每个区块执行的操作消耗计算资源大致相同

以太坊设置了专有的交易燃料,而不直接用ETH支付交易费的主要原因是:ETH的价格经常大幅波动,而单独设计交易燃料,可以使得消耗计算资源的费用不会随着ETH的价格波动而大幅波动

Gas Price(Gas的价格)至于当前网络的计算资源使用量(拥堵状况)有关。和BTC相似,燃料定价越高的操作被打包入块的优先级也就越高。

目前网络的平均燃料定价为23Gwei,一笔普通转账消耗Gas数量为21000,因此一笔普通转账的手续费就高达23Gwei*21000 = 0.000483ETH= 0.5美元。
image7.gif


七、ICO及ERC-20代币

如果说比特币是数字黄金,那么ETH可以定义为是数字世界的二级市场入口

区块链的二级市场是通过什么发行的——ICO。这也是目前ETH最大的应用,是ICO。ICO指的是首次数字代币公开发行(Initial Coin Offering)。ICO有点类似于IPO(上市),但是区别在于IPO是发行和交易的是股票,而ICO发行和交易的是数字代币,也被称为通证(Token)。

在ICO的过程中,项目方发布一个币种,然后自己留一定的比例,剩下的比例就通过ICO的方式,买给各个投资者。通过这个模式筹集到的资金,就用于项目推动和发展,最后如果项目发展顺利,那么整个社区的价值提升,投资方和项目方就都有了良好的收益。但是,其实整个过程中,项目方是基本没有成本的。说白了,项目方就是凭空造出了一个币,并且将整个币中的一部分卖给了别人(而且居然都还能卖出去),拿来的钱就随便怎么花了。

在ETH上实现ICO非常简单。举个栗子,如果「朋克」要发行自己的数字货币,例如叫做 PUNKCOIN(简称PKC),那么「朋克」会先通过ERC-20的模板,生成一定数量的PKC。(ERC-20是ETH上一个常用的token智能合约模板。通过ERC-20产生的新的token和以太币类似,持有人可以完全控制资产,也可以进行转让等。)

之后,「朋克」只需要生成一个地址,并且写好智能合约。合约里面约定号,每当有用户往里面这个地址打ETH,就会对应按照一定的比例返还PKC。之后,只要招呼想参加ICO的投资人往这个地址打钱就行了。

这就是ICO的操作模式。

非常的简单粗暴,操作成本为零,不需要任何技术含量!
image8.gif

理论上来说,如果是公链项目的ICO,等到这个公链项目上线之后,项目方会把以太坊上的这个项目当时发行的ERC-20的代币,换成这个公链上的专属代币。如果是非公链项目,一般来说这个,项目方会承诺这个token最后是可以有实际用途的(例如可以兑换计算资源、可以使用存储空间等等)。

但是,由于ICO完毕之后,事实上投资人对ICO的项目方是没有任何约束能力的。这也是目前ICO被人诟病的地方,非常多的项目实际上是骗钱的,随便写个白皮书,搞个官网,然后就马上进行ICO,骗一群小白用户来用以太币或其它数字货币换取这个项目的代币,实际上可能连一行代码都没写(这种也就是俗称的空气币)。

所以目前V神也提出了一种新的模式,DAICO。这是DAO(去中心化自治组织)与ICO的结合。

投资人在参与ICO之后,可以给开发团队一个合理而不太高的每月预算,假如团队不断证明其能力,预算可以通过投票提高。如果投资人对团队的开发进展不满意,他们可以完全关闭 DAICO 并取回自己的资金。

目前DAICO还没有正式大规模启用,但是这应该是一个值得的尝试,可以更好的保障投资人的利益,避免现在空气币泛滥的局面。

期待DAICO的正式应用
image9.gif


八、分片技术(Sharding)

和比特币一样,比特币的TPS为7,以太坊的TPS约30左右,都与支付宝等有巨大的差距以太坊养猫卡顿已经成为大家嘲笑以太坊的一个梗了。也因此很多打着要替代以太坊旗号的公链也越来越多。

那以太坊自己打算如何解决这个卡顿的问题呢?——分片技术。这也是「朋克」在上一章中提到过的,这里再介绍一下。

分片技术是由以太坊(ETH)最先提出的一种扩容技术,目前还没有开始使用,预计在3-5年内会部署完成。分片技术简单的说,类似于通过分层级的结构,把非常多的侧链链接起来,从而极大的提升系统的吞吐量。

分片会将整个区块链内的地址分成若干个小块(分片),每个账户隶属于一个小块,小块之间形成一个树形结构。每个账户只能直接与同一分片中的地址进行交易,和另外分片的交易就需要进行跨分片交易。每一个分片本身也是一条区块链,也遵循区块链的各种规则。

image10.jpeg

分片技术将整个系统分成树状结构的片


打个比方,现在把整个区块链分成全球(底层链)-国(一级分片)-省(二级分片)-市(三级分片)四级。然后属于同一个市地址之间的交易,在市级的分片中完成即可。如果是同一个省但是跨市的,则在省内进行交易并记录。只有跨国的交易才会导致每个国内的状态变化,最终会统一记录在全球区块链的底层链上。(当然上面这样的分法只是朋克为了大家更容易理解而说的,并不是最终的分法。)

这样分片的模式可以减少底层链上的交易信息,仅需记录最高层分片间的状态变化即可,从而极大的增加整个系统的TPS和扩容性

九、总结

虽然目前以太坊的公链也不够成熟,性能低,无法满足目前大规模应用的需求,但是我们已经看到一个未来区块链世界的雏形,正在越来越清晰。

如果说比特币是区块链的第一道曙光,那么以太坊则推开了区块链世界的大门,将区块链的应用从简单的支付领域,拓展到了智能合约及去中心化应用领域,极大的扩展了区块链的边界

就此,区块链技术从一个小盒子中释放了出来,即将改变整个世界。




往期精彩阅读:

【朋克智库】比特币详解1.0——区块链的萌芽

【朋克智库】比特币详解2.0——比特币的沉沦  

【朋克智库】比特币详解3.0 ——区块链的救赎

山寨币还是竞争币?—— 莱特币及比特币现金详解



区块链朋克,see you soon

1条回复 跳转到指定楼层

原石开天辟地 | 水手 | 发表于 4 天前 | 显示全部楼层
干货码住慢慢学习
高级模式
您需要登录后才可以发帖 登录 | 立即注册 | 用新浪微博登录

本版积分规则

搜索

0关注 2粉丝 58主题

作者的其他主题

返回顶部 返回列表

登录

分享 发帖