V神吹“牛皮”?大姨太的W+的TPS(一)

本文阅读时长大约8分钟。

本文实时同步发布在区块链原创技术公众号【堂说区块链】上,欢迎关注订阅。

推荐一个新的区块链领域优质内容输出平台:币读【www.biduDNA.com】博主已在币读平台上首开专栏,区块链领域技术原创文章将同步首发在【币读】平台上;

币读专栏地址:https://www.bidudna.com/statics/topics?id=49


V神吹“牛皮”?大姨太的W+的TPS(一)_第1张图片

1.区块链项目的TPS现状

在系列文章《区块链的发展走向:一场去中心化与TPS的角力战争》中,已经介绍了目前整个区块链领域各项目的TPS现状。不清楚的看官们,请移步了解一下~

业内曾经有一个口号,虽然特别武断,但也可以从中略窥一二:“凡是敢号称TPS上万的,都是耍流氓,白皮书都不用看,绝对的空气币”

不过,直到EOS的诞生,以及大姨太分片技术的诞生,这个口号成为了历史。

PS:

1)关于EOS的介绍将在系列其他文章中做介绍;

2)本文讲分两个子篇幅来介绍下以太坊的Casper以及V神牛气的分片技术~本篇为第一篇,主要介绍以太坊的Casper+POS共识算法(也是延续上一篇《区块链的灵魂:共识机制》中3.5小节未讲述到的Casper)

2.以太坊与Capser

2.1 什么是以太坊?

以太坊(英语:Ethereum)是一个开源的有智能合约功能的公共区块链平台。以太坊是一个基于交易的状态机。从创世区块开始,以太坊的状态随着一笔一笔的交易而发生改变。

通过其专用加密货币以太币(Ether)提供去中心化的虚拟机(“以太虚拟机” Ethereum Virtual Machine)来处理点对点合约。

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

以太坊的底层支撑技术最大的亮点就是跨平台的EVM。可以对标JVM(Java Virtual Machine)进行理解。

2.2 EVM的实现原理概括

简单一句话概括下EVM的运行原理:

智能合约的开发流程是用solidlity编写逻辑代码--->再通过编译器编译元数据---->最后再发布到以太坊上。

以太坊底层通过EVM模块支持合约的执行与调用,调用时根据合约地址获取到代码,生成环境后载入到EVM中运行。

如下图所示

(各位看官莫急,动手搭建区块链JAVA版,将在《动手编写区块链》系列文章中一一实现)。


V神吹“牛皮”?大姨太的W+的TPS(一)_第2张图片
EVM原理

2.3 以太坊上几个概念介绍

1)ETH

以太坊网络的内部的加密代币。以太是用来支付交易和以太坊交易的计算费用。

2)智能合约

一套以数字形式定义的承诺(promises),包括合约参与方可以在上面执行这些承诺的协议。可以理解为就是一段预定义好的代码,达到触发条件就自动执行。

3)Gas

以太坊上用Gas机制来计费,Gas也可以认为是一个工作量单位,智能合约完成的动作越复杂用,来完成运行就需要支付的Gas就越多。

智能合约里的每一步动作都是要消耗Gas的,比如乘法(MUL)消耗5个Gas,加法(ADD)消耗3个Gas。

所以可以把Gas理解为:执行一步操作需要消耗多少单位的工作量(这个量不等同于消耗的价格,虽然,最终Gas付费体现在ETH上),而且针对于相同的一步操作,这个消耗的单位工作量永远是恒定的。

另外:Gas只是EVM内部使用的一个计量单位。

(类比:某品牌汽车百里耗油10个,含义是行驶100公里需要耗油10升)

4)Gas与Fee

燃料不等于费用,一笔交易的总费用,又叫做GasCost,公式如下:

GasCost = GasUsed*GasPrice  GasUsed上面已经说到是消耗的燃料的量,gasPrice可以理解为是动态调节的燃料单价。单价*消耗量 = 总Gas消耗,即费用。

gasPrice可以动态调节,由矿工和用户自主调节。

5)区块GasLimit与交易GasLimit

区块GasLimitt是单个区块允许的最多可消耗的gas总量,用来限制单个区块中能打包多少笔交易。

交易GasLimit是单笔交易设定的最高消耗Gas量。

例如,我们有4笔交易的GasLimit分别是10、20、30、40.如果区块gas limit是60,那么前3笔交易就能被成功打包进入这个区块。

矿工有权决定将哪些交易打包入区块。所以,另一个矿工可以选择打包第2&4笔交易进入这个区块(20+40)。

如果尝试将一个会使用超过当前区块GasLimit的交易打包,这个交易会被网络拒绝,以太坊客户端会反馈错误”交易超过区块GasLimit”。

6)消息

以太坊中的消息不同于我们常规理解的消息,在EVM中,消息指的是合约与合约之间的触发调用,可以理解为是函数调用,是只存在于EVM内部的,不可序列化的。

7)以太坊客户端

以太坊客户端俗称钱包,提供账户管理、挖矿、转账、智能合约的部署和执行等功能,以太坊节点利用以太坊客户端接入到以太坊网络。开发中使用最广泛的客户端是Geth。

8)账户

在的以太坊有两类账户:即外部账户和合约账户。

以太坊正在试图模糊二者的界限,即你可以同时拥有合约账户和外部账户,这种做法本质上就是让用户按照合约账户的格式来定义外部账户。

合约账户存在于以太坊的特定地址(发布智能合约的地址上),拥有以下特性:

1)拥有以太币余额    2)有相关联的代码 3)通过交易或消息调用的方式触发并由以太坊虚拟机(EVM)解释执行

3. 以太坊的灵魂:Casper

Casper是POS的一个变种。通过增加惩罚机制的方式,解决了Nothing at Stake问题的POS共识机制的一个变种。

Casper是一种基于保证金的经济激励共识协议。协议中的节点,作为“锁定保证金的验证人”,必须先缴纳保证金(这一步叫做锁定保证金,才可以参与出块和共识形成。

Casper共识协议通过对这些保证金的直接控制来约束验证人的行为。具体来说就是,如果一个验证人作出了任何Casper认为“无效”的事情,他的保证金将被罚没,出块和参与共识的权利也会被取消。

保证金的引入解决了"nothing at stake",也就是经典POS协议中做坏事的代价很低的问题。现在有了代价,而且被客观证明做错事的验证人将会付出这个代价。

参见下图(POS的两大核心问题)


V神吹“牛皮”?大姨太的W+的TPS(一)_第3张图片

关于POS的Nothing at stake

Nothing at stake:指的是低险的投机。这是POS共识机制最严重的问题,拥有股权的越少的人,作恶成本越低。

比如:如果攻击者fork当前的链,挖矿节点的保证金已经押在了两条链上,他不需要去判断哪条是正确的链,而是都支持,从而导致攻击者得逞,而无论攻击者是否得逞,节点选择全部挖的策略也可以保障自己的收益,所以只要理性节点不是“token大户”,都会去支持攻击者。

关于POS的Long range attack(长距离攻击)

Long range attack 含义:

与Nothing at Stake不同,作恶节点不是去fork现有的主链,而是回到主要的初始阶段的某一块上,试图快速的去创造一个比现有主链更长的链,让网络的其余节点误以为此链为主链。

POW不存在Long range attack问题,原因是:规定了平均10分钟出一块,而且是基于算力的挖矿行为,作恶节点永远也追赶不上主链。

但POS却没有规定准确的出块时间。

Casper通过限定更改区块长度上限来一定程度上降低了Long range attack的发生概率,但是也没有从根本上解决该问题。

Long range attack可以理解为是POS中的女巫攻击。

4.以太坊扩展可选路线

4.1分片Sharding技术

以太坊最新分片技术落实进展。

参加V神在北京以太坊开发者大会上的报告:《何成为Casper+POS分片技术的验证者?》

分片是什么意思呢?

就是如果你有 100 个共识节点,不分片的话,只能同时做一个智能合约。那么你分片的话,比如每 20 个共识节点,分到一个片,那么你就有 5 个片。每个片处理一个智能合约, 你同时就可以做 5个智能合约,那么你速度就提高 15倍。

分片的核心难点是什么?

分片必须要保证同一个地址的交易要分到同一个分片里,不然就会出现“双花”问题-这简直就是天灾。

分片分为硬分片和软分片

硬分片:比如Zilliqa项目。固定600个节点为一个组,其中选举出一个组长,组长负责与其他599个组员节点交互,收集500个签名之后,做一个多重签名出来即可。这样就把信息交互量大幅度减少,交易速度就大幅度的提升了,但是就变中心化了。

软分叉:典型的墨客就是逻辑分片,又叫软分片,是按照智能合约的要求来分片。

4.2雷电网络(闪电网络LightingNetwork)

就是比特币系统用的闪电网络, 在以太坊上面称为雷电网络。

解决的方法,就是把频率高金额小的交易放到链下, 然后在固定时间段,将交易汇聚成一笔更新到链上。在经常发生高频小额交易的节点之间,开辟独有的状态通道。

闪电网络的安全性不是很完善,因此只适合那些高频并且小额度的交易场景。

这个方法,主要处理本地的用户交易,在墨客里面,解决方法叫做Flash,已经报了专利,是在链内的智能合约服务器里实现的。这个也是墨客的交易处理速度能从 5000tps提升到1W+的关键。

本章介绍了一下以太坊的相关知识点,以及以太坊的Casper共识算法的运行机制,下一篇将站在源码角度分析下《Casper分片技术的底层原理》,敬请期待~~~

今天的堂说区块链时间到此结束,个人理解欢迎关注diss。

欢迎关注同名微信技术公众号

V神吹“牛皮”?大姨太的W+的TPS(一)_第4张图片

你可能感兴趣的:(V神吹“牛皮”?大姨太的W+的TPS(一))