区块链--BitcoinEthereumHyperledger Fabric

Posted 飞碟说

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了区块链--BitcoinEthereumHyperledger Fabric相关的知识,希望对你有一定的参考价值。

区块链(一)这个博文里面呢,我是简单的介绍了一下区块链和数字货币(Bitcoin),接下来我们这片文章呢讲一下这个Ethereum(以下简称以太坊)。

==================================================================

本人建议大家可以先看一下以太坊白皮书,这个非常有用,看完了白皮书可以看一下黄皮书(黄皮书就是很细节性的文档了,包括数据结构算法之类的 ,看之前做好心理准备)。看完这两个估计你也就不想看我在这胡扯了... ...

首先,我先让大家有一个直观的认识,你分析一个项目的时候第一要义是要搞明白它的目的是什么?拿Bitcoin来讲它的目的就很纯粹---去中心化的数字货币体系。那么以太坊的目的是什么?看了白皮书大家应该知道它和Bitcoin有很大的不同:

1>它添加了智能合约的功能

2>它有了账户的概念

3>它引入了叔块体系

给人直观的印象就是它想做一个全球性的金融体系---不仅仅是货币交易还可以执行智能合约,而且引入账户这个概念可以更方便商业化和实用化。但实际上它的野心很大,特别的大!!!它的真正目的是想做一个-- One Global Computer,实现真正的云计算。

现在的云计算有很大的水分,更准确的说是--云存储和云服务器,云服务系统就是用来动态分配硬件资源。真正云计算是动态的调用计算资源,将空闲的计算机资源有效的利用起来。我们举个简单的例子来说吧:

有A和B两台计算机,A计算机要求解一个难题,一直是饱和工作,而B计算机天天看网页和文件,有大部分的计算资源是空闲的,一个忙的要死一个闲的蛋疼。云计算要做的就是将A和B都纳入到一个系统中,然后可以将B的计算资源分配给A用,比如A要计算10000个样例,它分配给B 2000个来做,B做完了之后把结果返回给A。听着是不是很耳熟,这丫的不就是智能合约吗?

所以奉劝各位一句话:Ethereum目的是为了打造一个平台,就像是一个计算机系统一样,你可以去在这个系统上去开发各种应用,比如博彩、P2P信贷、拍卖之类的,但它不适合用来构建一个私有链或联盟链。

以太坊很open这一点在你们去研究fabric的时候就会深有体会,好了我们上面扯了这么多下面讲一点干货。

===========================================================================

前一篇的Bitcoin我们从攻击者的角度去理解了一下它,这一篇我们以关键性的名词为切入点来了解它。

Smart Contract

智能合约是以太坊的一大亮点,现在想想老外的脑洞是大啊,用代码写合同。智能合约是要在专用的虚拟机(EVM)中运行的,当满足条件的时候会自动触发执行。

举个例子:咱俩个线上赌球,以巴萨vs尤文谁晋级来下赌。我们用智能合同实现以下的功能:如果尤文晋级了我给你100以太币,如果巴萨晋级了你给我100以太币。比赛结果就是触发条件,比赛一出结果这个合约就会自动执行,谁也别想抵赖。

这份合约会在矿工节点的EVM中运行,直到返回结果为止。由于以太坊的智能合约是图灵完备的,支持while循环。如果有人写了个死循环在合约里面岂不是死翘翘了?以太坊用了一个很巧妙的方式解决这个问题--gas的设定。不得不说gas这个词用的是太恰当了,就跟车子驱动需要汽油一样,智能合约运行的时候也是需要gas的,这个gas从哪来?当然是要花钱买了,gas和以太币的比率我记不得了,大家可以自己去查。

说白了矿工运行智能合约不是义务劳动,是要收钱的,在以太坊的世界里包括转账也是要收手续费的(交易也会消耗gas)。当你的gas消耗光了时候智能合约就会运行结束,这个合约也无法生效,账号状态会回滚,当然你消耗汽油是回不来了,如果有剩余的汽油会返还给你。所以你写死循环也无所谓,只要你有钱!

Ethash 挖矿算法(介绍)

的共识机制(pow),而以太坊目前所采用的(在本人撰写本文时)也是pow,前面我们说过pow是一种很巧妙的一个共识机制,但是中本聪忽略了一群人的决心---来自华强北的土豪们。

Bitcoin火爆之后一种专门为挖矿设计的刀片机产生--挖矿机(ASIC),其中中国矿工大量的使用挖矿机,据统计他们手里掌握了比特币网络中70%的算量,打破了Bitcoin的生态平衡,中本聪本人已经承认Bitcoin的实验失败了,去中心化的数字货币体系出现了“中心化”。

以太坊作为后辈自然要吸取前辈们血的教训,他们推出了Ethash算法,这个算法在挖矿的时候需要很大的内存,而ASIC矿机是没有足够大的内存的来支持,从而达到抗衡矿机的作用。然而这也是属于治标不治本,大不了再设计矿机不就完了。

GHOST(Greedy Heaviest Observed Subtree,又称幽灵协议)

Ethereum 中产生块的速度要比Bitcoin速度快很多,保守估计的理论值是12s一块,远高于Bitcoin的10min 一块,矿工同时挖出块的概率相较于Bitcoin的概率更大。而这样就会产生许多孤儿块(a stale block,没有上链的块),而据分析孤儿块的生成的概率与算力成反比,算力弱的虽然能算出来结果但是没有报酬,这样会打击记账人的积极性(白白耗费电量但是挣不到钱),从而导致记账节点会变少,而整个网络的安全性会降低。

Ethereum implements a simplified version of GHOST which only goes down seven levels. Specifically, it is defined as follows:

  • A block must specify a parent, and it must specify 0 or more uncles
  • An uncle included in block B must have the following properties:
    • It must be a direct child of the kth generation ancestor of B, where 2 <= k <= 7.
    • It cannot be an ancestor of B
    • An uncle must be a valid block header, but does not need to be a previously verified or even valid block
    • An uncle must be different from all uncles included in previous blocks and all other uncles included in the same block (non-double-inclusion)
  • For every uncle U in block B, the miner of B gets an additional 3.125% added to its coinbase reward and the miner of U gets 93.75% of a standard coinbase reward.

This limited version of GHOST, with uncles includable only up to 7 generations, was used for two reasons. First, unlimited GHOST would include too many complications into the calculation of which uncles for a given block are valid. Second, unlimited GHOST with compensation as used in Ethereum removes the incentive for a miner to mine on the main chain and not the chain of a public attacker. 

大家受累自己翻译一下啊,这话的意思就是你挖出来块即使没上链也可以被后代的块引用,称之为Uncle Block(叔块)。引用叔块的块是有额外奖励的,而挖掘出叔块的也是有奖励的。说白了就是即使没上链也会有钱赚,大户吃肉小户喝汤,保证你饿不死,也可以有效遏制资金中心化的问题。同时也增加了区块链的安全性,不仅有链上的块做为记录还有叔块佐证。


Casper(小精灵

听起来名字很萌,这是目测下一代的共识机制。我前一篇就说过那个问题,除了Bitcoin以外其他的数字货币采用pow共识机制都很难有足够的算力去支撑了。

这个大家自己去看吧,英文很痛苦,我就不生翻了,以免误导大家。


以上是关于区块链--BitcoinEthereumHyperledger Fabric的主要内容,如果未能解决你的问题,请参考以下文章

区块链系统开发

区块链软件详解

星光区块链_区块链公司_区块链技术

[区块链] 区块链面试题

[区块链] 区块链面试题

[区块链] 区块链面试题