码迷,mamicode.com
首页 > 其他好文 > 详细

区块链(一)--Bitcoin、Ethereum、Hyperledger

时间:2017-04-16 19:35:49      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:lan   保留   而且   blog   tar   方案   term   生成   lock   

现在区块链概念是炒的火热,而这其中Bitcoin是功不可没的。数字货币这个概念和前几年大火的物联网概念一样都是上个世纪就已经被人提出了,到了现在才火了起来。

数字货币在计算机网络刚刚兴起的时候就被人提出来了,也有人提出了很多实现的方案,但是都没有被实现它们或多或少都存在一些问题,直到bitcoin的出现。可以说中本聪不是第一个提出数字货币概念的,但他是第一个让数字货币从一个概念转化为现实的,这一点功不可没。

从事It行业的人对Bitcoin多少都会有一些了解,它自从2009年推出到现在已经经历了8年的时间,经过验证它是足够好用的。Bitcoin最大的特点就是去中心化,同时区块链做为其实现去中心化的关键性技术也被人们所熟知然后被爆炒.....

网上关于Bitcoin的介绍一抓一大把,我们这里也给出一个比较正规的介绍网站,它里面有现在各种火热的区块链项目的介绍点击打开链接,建议大家继续阅读前可以简单了解一下。好了前边这些都是没什么营养的,我们来讲一下干货,让那些不了解区块链的同志们对它有个直观的认识。

-----------------------------------------------------------------------------------------------------------

作者默认你们已经对Bitcoin已经有所了解了

1.我们先以Bitcoin为契入点

挖矿:在Bitcoin架构中bit币的来源有两种,一种是通过交易进行获得,还有一种就是通过挖矿获得bit币。所谓的挖矿是指矿工对一定数量的交易(大概在1500-2000之间它们被保存在一个默克尔树中)通过挖矿算法(通过穷举找到一个随机数,该随机数与区块数据合并在一起可以计算出符合要求的hash值,比如说开头10个0,现在使用的是hash算法是sha-3),具体的流程要见上面的链接)最后的过程形成一个区块的过程,其中挖矿的难度是可以动态调节的,保证在全网中每十分钟挖出一块。

每生成一个区块(不仅仅是算出来了,还被添加到总链而且生效,Bitcoin中一个块的生效过程是很漫长的,要在块后面继续添加六个块后才算是生效)会获得一定量的奖励,而这个奖励数根据Bitcoin的设计是会越来越少的,最后挖矿可能就没有奖励了,这种机制被称为激励机制。

我想第一次了解挖矿这个概念的同志们都会感觉很有意思,算算题就能挣钱(反正是计算机算),然而挖矿仅仅是为了获得bit币吗?可能在投资者看来是这样的,但挖矿的作用不只是这些,或者说这只是次要的作用。

挖矿的主要作用:Bitcoin通过挖矿保证了区块链的关键性特性--不可篡改

这里引出了一个很重要的概念:共识机制,因为是分布式的机制而且是去中心化的方式,所以不同的节点之间数据同步就很重要,而且要求要在存在恶意的攻击情况下仍然能够正常的运行。为了实现以上两点,Bitcoin就采用了工作量证明机制(POW

我们接下来从一个攻击者的角度说一下挖矿的重大作用:

<1>篡改交易

在Bitcoin中货币是承载在交易上的,每一个用户有多少个bit币是根据你交易记录推测出来的。每一笔交易都有上一个拥有者的签名,和上一笔交易的hash值,也就是说每一笔交易都是可追溯的。你要是想伪造一笔交易就要把前面的每一笔交易都篡改了,而交易都是记录在块上的,也就是说你要把包含这笔交易的块和交易来源的块全都改了。

<2>伪造交易

前面我们说了,每一笔交易都是有拥有者签名的,每一个节点验证交易的时候是进行签名校验,你如果盗取了人家账号那就不说了,就不算是伪造交易了。还有一种方法就是你造一笔合法的交易,从它的来源开始造。。。那Bit币从哪来?提交块是可以获取到bit币,那么我们可以伪造一个块。

那么Bitcoin是如何抵御以上两种方式的?

首先,挖矿算法保证你计算出结果是很费力的,而验证结果是很容易的,全世界的矿工一起挖矿,平均每十分钟才能挖出一个块,而篡改一笔交易有可能要从头到尾重新算一遍,以现在Bitcoin里区块的数量,这个工作量实在是太大了!

其次,我们去伪造一个块,那么我们就要伪造块里面包含的交易,而这些交易都是要被签名校验的...,块的hash值也是要被校验的...,这他么伪造一个块基本不可能。

<3>分叉攻击

以上两种方法都不行,那我们换一个思路。在Bitcoin的世界里存在这样一种情况,由于网络延迟的原因,可能导致同时有两个矿工同时公布出正确结果,而且被其他节点认同了,这个时候就造成了分叉!

技术分享 技术分享

这样就会将Bitcoin的世界割裂成两个部分,一部分的矿工沿着N+1块挖掘下去,一部分矿工沿着N‘+1挖掘下去,那么最后采取优胜劣汰的原则,谁的链长就保留谁作为真正的主链,另一个分之链被淘汰了,上面的块也被作废了,而上面的交易自然也就失效了!老子好不容易花出去的钱又回来了.....

如果有恶意的攻击者为了作废你的交易,就在你交易所在的前一个块挖,然后保证它的分支比你的分支增长的快就可以,这种攻击却是是有成功的可能性,不过前提是你要拥有很大的算量,足够左右链的走势。如果你的算量可以占据全世界的51%,那么你就可以说控制了Bitcoin,想废谁就废谁!这也就是传说中的51%攻击

技术分享

中本聪用工作量证明这种机制实现了bitcoin对安全的需要,不得不说这个方法看似愚蠢但是非常的巧妙,但是不可复制!!!因为除了Bitcoin之外其他的数字货币想得到如此强大的算量支撑已经很难了,而且这也是对计算资源和能源的浪费。

区块链(一)--Bitcoin、Ethereum、Hyperledger

标签:lan   保留   而且   blog   tar   方案   term   生成   lock   

原文地址:http://blog.csdn.net/i_can_do_1098/article/details/70182551

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!