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

初识区块链(二)

时间:2018-09-29 22:47:33      阅读:257      评论:0      收藏:0      [点我收藏+]

标签:中心   中介   学习   send   创建   分布式系统   忽略   size   共识算法   

区块链技术中几个关键问题

第一,去中心化

  去中心化并不是一个时髦的名词,简单说就是点对点交换信息,不存在第三方中介。我们日常使用的Internet、Email Service、SMTP等都使用了去中心化思想。

第二,分布式共识

  在去中心化的分布式系统中,如果要达成受信任的记账系统,需要考虑共识问题,也就是如何让点对点通信的各方达成一致,并解决叛徒或者恶意结点的问题。

  分布式共识要保证所有诚实结点的输入一致,且共识是由所有诚实结点达成的。拜占庭将军问题是一个典型的案例,但当叛徒数量超过总人数的1/3时,共识问题就无法解决了。这些算法都会出现一些漏洞。

  在区块链技术中,并未完全应用之前的分布式共识算法,而是结合了独有的奖励机制和逐步确认机制。可以说中本聪在用阳谋来对付阴谋。

  共识算法简要:

  一,广播交易。

  二,诚实节点将交易打包进区块。(矿工,看谁算力强)

  三,随机的节点广播该区块。

  四,如果区块中所有的交易都是有效的(有验证算法),则其他节点接受这个区块,并在之后创建的新区快中加入这个区块的哈希(链入算法)。

第三,奖励机制

  比特币是一种货币,大部分节点愿意通过维持这个系统的正常运转获得奖励,从而保证大部分结点是诚实的。

  目前由两部分组成:区块奖励和交易小费。

第四,逐步确认机制

  区块链中的共识不是立即确认,而是分两步走。

  第一步是第一个区块(一笔交易)的确认需要等待一个小时,可以基本确定这次交易是合法的(比如,A send 10 BTC to B,来购买B的货物,这个区块产生后,B需要等待再次链入6个区块的时间,才会完成交易,把货物交给A,这个时间可以认为之前的待确认区块基本无法更改)。

  第二步,随着链入的区块却来越多,代表这次交易的区块被更改的概率越来越小,合法性逐步增强。

第五,双重支付问题

  什么是双重支付?

  假设A广播一条交易信息,A send 10 BTC to B,矿工(其他节点)会将这个区块打包链入区块链,B发现该区块后,如果立刻将货物交给A(零确认机制),这时,A可能会利用自己强大的算力迅速将另一个区块也加入区块链,即A send 10 BTC to A,如果A可以成功将这个区块加入,并且利用算力在这个区块后继续加入新的区块,则真实的区块则会被忽略。因为诚实的结点会沿着最长的区块链创建的区块。

  怎么解决的?

  基本基于两点:第一,用上面提到的逐步确认机制代替零确认机制。第二,A很难达到能够在逐步确认机制下,仍能在假区块后控制链入6个以上新区块的算力。第三,即使真能达到这种算力,那么整个比特币系统就会因A这个强大BUG而失去其公信力,即信任崩塌,失去信任的BTC则一文不值,那么掌控强大算力的A也会一无所得,成本高于收益。这也是赤裸裸的阳谋,即想玩就一起好好玩,想捣乱,大家都别玩了。

 

(文章内容仅为区块链技术的学习记录,如有失误或考证不严谨的地方,请多多指教。)

(参考资料:https://www.zhihu.com/people/ustcsse308)

初识区块链(二)

标签:中心   中介   学习   send   创建   分布式系统   忽略   size   共识算法   

原文地址:https://www.cnblogs.com/ChengzhiYang/p/9726473.html

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