区块链是什么

区块链

区块链本质上是一个去中心化的分布式账本数据库。

区块链解决什么问题

区块链解决信任问题,就是一旦写进去的数据,不能随意篡改,或者说没法篡改,也就保证数据一定是本人操作的,里面的数据也都是正确的,因为没人可以篡改,但中心化的账本会有一个管理员,管理员可以篡改数据,比如银行给你多转了100元,银行会把100元收回去,所以管理员如果天抽风,账号清零多恐怖。

区块链构成

只要了解区块链,才能知道为什么它解决了信任问题,首先它是一个数据库,也就是里面可以存储数据,数据格式是什么呢?难道跟我们的表结构一样,需要我们来定义数据结构吗?一般区块链应用在那个场景下,就会定下他的数据结构,这里不强调,但我们可以知道,数据库是由很多块链组成的,以链表形式串在一起的,每一个数据就是一个块链,类似单链表结构。

在这里插入图片描述

结构还是比较简单的,链表结构的数据库,我们也提到是一个分布式的数据库,但分布式数据库不是我们理解的分布式,不是把数据拆分存储到各个机器上,而是每一台机器都是同样的数据,也就是每个人都有这个数据库,所以是一个分布式数据库,那么第二个问题来了,每个人都有一份数据, 谁都可以改,那么怎么保证不可篡改呢?

共识算法:解决信任危机

我们了解了区块链的结构,每个人都保存一份数据,那么我们自然就可以修改数据,进行传统的CURD操作,那么区块链怎么保证不可篡改呢?这就依赖共识算法,但首先我们要明确:区块链只能CR操作,也就是创建、查询。

  • 问题:谁来写
    区块链是一个分布式系统,系统里的节点都可以来写一个块链,但不一定能写成功,再你要写这份数据的时候,需要其他人对此达成共识,需要共识算法,
  • 共识算法
    共识算法是区块链最核心,也是整个技术发展和学术界最热衷的领域:大量的公链项目都追求共识算法的创新。共识算法的目的,就是让所有节点对于新增区块达成共识,也就是说,所有人都要认可新增的区块。对于有中心的系统,这事很简单,中心说什么大家同意就好了,但是放到去中心化系统里,尤其是当有些节点有恶意的时候,这东西非常复杂,计算机科学里有个相应的问题,叫做“拜占庭将军问题”或者“拜占庭容错”(BFT)。这个问题很复杂,我们说通俗一点,让一半以上节点认可这个块数据,你就可以新增这个区块,如果一个恶意节点要去改数据,那么也要一半以上的节点认可,增加了篡改数据的成本,防止篡改。

既然防止篡改,是不是也防止了新增块链数据,一个正常的操作也被你防止了,能解决这个问题吗?这里共识算法非常多,我们拿比特币来讲解。

比特币 共识算法:工作量证明

比特币的记账就是挖矿,把数据写到数据库中,就有比特币奖励,所以节点都在抢占记账权,它做了简化版,并且设置了规则:

  • 一段时间只能有一个节点记账成功 ,目前是10分钟
  • 通过解决密码学难题(即工作量证明)竞争获得唯一记账权
  • 其他的节点只是复制计算结果

这里主要是第二点要讲解,主要工作是做hash运算,我们把流程梳理一下:

  • 当前节点收到了一个账单
  • 记账者要先把收集到的账单打包成一个区块,区块由区块头和区块体组成,区块头则相当于该区块的身份信息,里面有上一个区块头的哈希值、时间戳、哈希运算的难度目标、随机数等信息,
  • 随机数是可以改变的,改变之后这个区块就可以通过SHA256算法计算得到哈希值。而比特币网络要求产生的哈希值的前面若干个比特全部为0。不断调整随机数,重新hash运算,一直到符合难度目标。
  • 你找到了这个随机数,就说明你抢到了记账权,你就可以把这个块全网广播,告诉别人,我记账了
  • 其他节点就会更新账本,抢夺下一个记账权

争夺比特币记账权时算的哈希值是个 256位的二进制数,符合要求的哈希值,就是小于某个特定数值的哈希值,这个特定数值也就是区块头里的难度目标,可以简单地将其视作前面数位都是 0的哈希值(当然后面数位的大小也有要求,这里为简便起见只谈论前面数位为 0的情况),至于到底要求哈希值前面要有多少个零,则是由系统每隔 2016个区块就自动调节一次的,增加一个 0就会在原来基础上增加 1倍计算难度,谁的计算能力强,谁在单位时间内计算次数多,谁就有更大的概率试出符合要求的哈希值,得到丰厚的比特币奖励,这种模式也被称为工作量证明。

在这个系统里,如果比特币很值钱,那么会有很多的人为了赚钱而大把投入算力,努力的做好人。这个系统也就会处在一个很稳定的状态了。如果比特币分文不值,那么坏人们进来破坏这个系统,也没多少利益。没有利益坏人又何必要来呢?比特币系统通过奖励好人比特币的方式鼓励大家做好人,又通过让好人玩数学游戏竞争的方式,解决随机选择节点来构建新区块的问题。总结就是说话是要有代价的,说真话是有好处的,说假话是要扣钱的。比特币系统为大家诟病,新的区块链2.0和3.0蜂拥而至的主要原因有几个:

  • 比特币的交易速度很慢,平均10分钟一个区块的产生,交易的确认需要时间
  • 比特币需要大量的烧电,用Proof of Work的协议来达到随机选择节点的目的
  • 在比特币这个分布式共识系统里,能够做的只有转账问题

所以新的区块链,解决比特币交易速度的有之,解决Proof of Work的有之,扩展共识问题适用范围,引入智能合约的也有之。

应用

1、数字化
实体数字化,这样可以将实体交易改为区块链交易,一手交钱一手交货。

2、追溯源头
目前这个应用场景较多,都是各类记录物品流转,不可逆。

总结

共识算法是非常重要的,区块链技术的高效、不可篡改都需要共识算法支持。后续将会讲解更多关于共识算法的知识。

参考文档

区块链比传统数据库强在哪?
区块链是什么,如何简单易懂地介绍区块链?
【基础篇】理解区块链的结构及其设计原理
什么是比特币的记账与发行机制
比特币和区块链(3):比特币的共识机制

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值