区块链入门小结一

       区块链是最近比较火的技术,且与金融的关系也比较密切,对于从事互联网金融的人士也是一个学习的方向,最近计划学习下区块链相关方面的知识,周末在家看了下网上订购的区块链科普书籍,同时结合网上的相关资料,算是对区块链有了一个初步的了解,现将两天来的学习成果小结下。

一.区块链的工作流程

      区块链本质上是一个去中心化的分布式数据库。其解决的问题类似拜占庭将军问题。即在一个互不信任的多个节点构成的分布式网络环境下,如何取得一致性的结果。最典型的区块链应用就是比特币,区块链的工作流程如下:

 

 

1. 发生交易记录时发送节点全网广播记录。

2. 节点监听到新的交易记录。

3. 节点对交易记录进行验证并放入节点缓存区。

4. 节点开始执行共识算法'算题',争取到记账权,打包记录生成区块,并向全网广播进行共识。

5. 经过共识的区块被追加到区块链的尾部。

当有新的交易记录生成时,进行全网广播,接收到交易的节点将交易记录校,将记录纳入到一个区块中,全网的所有节点对区块执行共识算法争取记账权,取得记账权后,将自己计算出的区块全网广播,其他节点认可该区块,将该区块的随机散列值视为最新的区块散列值。

节点在工作时有两个前提:

1.每个节点都始终将最长的区块链视为正确的链。

2.每个节点争取记账权是需要消耗资源的,故必须要对获取到记账权的节点给予奖励,否则所有节点就没有争取记账权的动力,区块链无法工作,这是区块链能够正常工作的原动力。

在上面的执行流程中,最核心的环节是第4步骤,执行共识算法,共识算法详细说明下:比特币的共识算法是PoW共识机制,在计算之前先要说明一下区块链中的单个区块的结构,

每一个区块中都包含两个哈希值,和本区块的内容。共识算法就是找到一个值X,使得

Hash(X0+内容+X)<target

其中

target为N个前导0的随机数

X0为前一个区块的哈希值

求得X的过程成为挖矿,X求出来之后就为本区块的哈希值。

求出本区块的哈希值X后,将X写入区块中,然后将该区块广播给全网,其他节点对这个区块进行确认,将最新的哈希散列值调整为此区块的哈希散列值。

如果某个节点第一个计算除了待确认区块的哈希值,则这个节点会获得一定的比特币奖励,这是区块链的奖励机制。是区块链能够正常工作下去的动力。

二.区块链的防篡改

假设现在有10个区块,有一个节点恶意修改了第5个区块的内容,那么按照上面的hash函数计算出来的第5个区块的target值就会变化,为了使第5区块的target值仍然为N个前导0的随机数,则他需要重新计算第5区块的哈希值。就算它计算出来第5区块的哈希值,那么为了使区块间能够串联起来,那么对于第6个区块来说,其上面的前一区块的哈希值(即第5区块的哈希值)发生变化,第6区块的哈希值也需要重新计算,以此类推下去,后面的每个区块的哈希值都需要重新计算,这个计算的工作量是很大的,当它重新计算出来第5区块到第10区块的哈希值,那么其它的节点中几乎肯定又有节点完成了新的区块的哈希计算,按照前述的原则,每个节点都始终以最长的链作为正确的链,那么其他节点有比10还有长的链,那么恶意者篡改后的链不能作为正确的链。所以这就防止了有节点对数据的恶意篡改。

有一种情况,就是51%攻击,如果整个网络中的大多数人都决定叛变,欺骗剩下不到半数的人,那么整个协议就自然而然地走向了灭亡。在PoW中是指如果有节点掌握的超过了全网算力的50%,那么就算其篡改数据,将篡改写入其生产的区块中,也可以让其生产的链为最长的链,被其他节点共识为正确的链。即如果某个节点的算力超过全网算力的50%,则其可以篡改区块链上的数据。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值