LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 币圈百科 > 区块链是什么

区块链是什么

2019-10-15 比德财经 来源:区块链网络

  区块链是什么 分布式数据库,一个不能随便更改的数据库。关注科技的人会知道,这并不是什么新发明,只是通过技术手段将原来存储数据的中心(公司或政府)去掉而已。

  经历了资本和市场的起起落落,区块链正在从“风口上的猪”回归到现实的尘埃。参与区块链的人群也是大道朝天,各走一边。一些人,他们从来没有相信过它将改变世界,仅仅是因为赚钱效应。一些人,他们相信它所许诺的未来,它将走进生活,改变生产和组织方式,以一种前所未有的方式,就像马车时代,无法想象汽车的样子。按键手机时代,无法想象全屏幕的样子。

  最初,区块链的口号是颠覆世界,至少目前来看,区块链承载不了这个期望。等到资本泡沫散去,故事不再动听,需要实际落地的东西来打动人心。但是不管怎么说,区块链依然有自己的独特性。

  区块链,顾名思义,是由一个个区块以链条(有序列表)的形式构成。其中每一个区块是由区块头(head)和区块体(body)两部分组成的数据结构容器。

一、区块

  如下图一所示的创世区块,区块头包含 3 个区块元数据集合。

  1、前指针,即前序区块哈希(previous block hash),是前一个区块的哈希值,以此来链接上一个区块和本区块。

  2、元数据集,包括难度(difficulty)、时间戳(timestamp)、随机数(nonce)。图示中,我们只看到随机数(nonce),后面文章会做详细解释。时间戳(timestamp)就是区块链大致的创建时间,

  3、哈希,即包含所有交易的默克尔树的根(merkle root)的哈希值。

  区块体,就是下图中的 Tx 部分,包含所有的数据结构(即交易记录)。

3UbjKRRenjevALesHaXkuwh3r52KAYHtpqSj3Y5e.png

二、哈希

  哈希(hash),是上述描述中的高频词汇,那到底什么是哈希呢 所谓的“哈希”,是计算机对任意内容,计算出的一个长度相同的特征值。

  区块链的哈希值长度是 256 位,一般显示的是十六进制,长度是 64 位,换算成二进制就是 256 位。如下图二所示,字符串 1 的哈希值是

w2JTTAh2s39VnmkvEHo6nwnAecsDgYyRPDssH6AR.png

  不一样的数据内容对应的哈希一定是不同的,只要原始内容一样,对应的哈希一定是相同且唯一的。

zv1JVGp66ZvEQJVtBGhKsiBohrzdc4z0Q3HVmIEP.png

  哈希的计算公式是 hash = SHA 256(区块头),SHA 256 就是区块链的哈希算法。它本质上是一个加密散列函数,用来进行文件效验、数字签名和鉴权协议。

  计算机很容易计算,但是根据哈希值反过来推导就很困难。就好比,计算 2019 乘以 1024 并得到答案很简单,不用计算机直接笔算可以轻松得到 2067456。但是,现在要你反过来根据 2067456 推导出 2019 和 1024 这两个数字,那就很困难了。由此看出,哈希算法是一种只能加密,不能解密的密码学算法。所谓“挖矿”,可以简单理解为根据结果猜 2019 和 1024这两个数字的过程,一次又一次的去猜数字。

  每一个区块对应一个唯一的哈希,每一个区块只针对区块头进行简单的哈希计算,获得唯一的标识。因此,区块哈希并没有包含在数据结构中,即不会在区块传输时存在,也不会作为区块链的一部分保存到相关的存储设备中。实际上,区块哈希只在网络接收区块的时候才自行计算生成。

  如图一所示,区块中还有一种标识,就是“区块高度”,意思是指每一个被加到上一区块顶部的后续区块,都要比前一区块“高”一个位置,于是,用区块高度形象的表述。虽然它同样不是数据结构的一部分,区块高度并不能作为唯一的标识符,但可以作为元数据存储的一个索引数据库,提高读取速度。

三、随机数

  随机数(nonce),用于查找有效哈希值的数字。由哈希介绍知道,只要原始内容一样,对应的哈希一定是相同且唯一的。每一个哈希值无法提前预知,也不能创建模式使其产生,需要不停地尝试,直到找到一个与目标值匹配的哈希值。但是,区块的内容都是一样的,产生的哈希值就是一样的,所以需要加入一个随机数,构造出一个新的数据内容产生新的哈希值,重新验证是否是所需哈希值。

四、难度(difficult)

  如图三看出,每一个区块的哈希都是以至少 4 个 0 开头。因为一般的哈希计算耗时很短,如果只是把区块头进行哈希计算,每个人都可以轻松完成记账。为了让哈希算法更有挑战性,保证只有一个人拥有记账权,哈希的结果必须以若干个 0 开头,这就是所谓的难度(difficult)。

bPm34l7ANYTEx9XfDb4LOMflEf9Njn269e6tn0yx.png

五、默克尔树

  默克尔树,也被称为二叉哈希树(binary hash tree),就是由加密哈希组成的数据分支结构。如图四所示,不同于我们理解的树,这里的默克尔树的“根”常常被放在最上面,“叶子”在下面,它的叶子就是当前所有区块的哈希值,可以理解为存储哈希值的一棵“倒立”的树。

iGsuN76ePn6amSpf0Um0LvPqK28cZqx7LvEDN3oS.png

  默克尔树汇总区块中的所有哈希值,用来高效验证交易是否包含在区块链中。通过递归算法计算一对对节点的哈希值,直到只剩一个节点,即默克树根。证明一个特定交易包含在区块中,形成一条从交易扫根的路径,叫做默克尔路径。

  随着交易数的增长,区块的大小增长迅速,从 4 KB、16个交易,到16 MB、65535 个交易,但是默克尔路径增长慢得多,仅仅从 128 字节增长到 512 字节。有高效的默克尔树,节点可以只下载区块头,通过其他完全节点获取一个很小的默克尔树路径,即可以判断交易是否包含在区块链中。

六、区块链的不可修改性

  区块头包含当前区块哈希,还有上一个区块哈希,如果其中一个区块的数据发生改变,其对应的哈希也随之发生改变。如图五所示,区块 2 随意添加数据“data”,哈希值变更为非 4 个 0 开头,需要我们点击“挖矿”,运行公式 hash = SHA256(区块头),重新计算哈希,获得匹配要求的哈希值。因此,如果区块链中其中一个区块发生变化,需要从变化的区块开始依次重新运行哈希算法,获得符合要求的哈希,以便让后序的区块重新连接起来。区块链保证了自身的可靠性,数据一旦写入,就无法被篡改。这就像历史一样,发生了就是发生了,从此再无法改变。

  区块链作为无中心管理的分布式数据库,从2009年开始已经运行了8年,没有出现大的问题。这证明它是可行的。但是,为了保证数据的可靠性,区块链也有自己的代价。一是效率,数据写入区块链,最少要等待十分钟,所有节点都同步数据,则需要更多的时间;二是能耗,区块的生成需要矿工进行无数无意义的计算,这是非常耗费能源的。因此,区块链的适用场景,其实非常有限。

  数字化技术的特点使数字金融去掉了中间环节,以点对点的支付清算和非担保的交易交收为核心特点,区块链和数字货币是满足这些需求的最好技术方案。

  区块链技术的特点就是足够数字化,是跨境、跨时空、跨组织的,同时也是分布式的、自组织的、去中心的。去中心不是指社会治理的去中心,而是商业活动的去中心。真正基于区块链的应用从一定程度上,都要体现上面的两个特色,这也是区块链的巨大潜力,让我们拭目以待。

—-

编译者/作者:比德财经

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...