区块链技术的原理与特征
若要提及当下的大热门,“区块链”一定名列前茅,而且在多数专家看来,它还将会创造未来。那么,区块链到底是什么呢?其实,它就是一种特殊的分布式数据库。在很早之前,市场上就已经出现了分布式数据库这类的产品。不过,相比而言,区块链有一个革命性特征——去中心化。具体来讲,区块链将所有的数据都储存在独立的个人计算机网络中,使其变成去中心化的、分布式的结构。也正是因为如此,区块链才可以拥有如此巨大的价值,获得各界人士如此广泛的关注。
一、从数据和效果两个维度来看区块链技术原理
区块链初是由中本聪设计出来的一种独具特色的数据库技术,该技术是以密码学中的椭圆曲线数字签名算法为基础来实现去中心化的P2P系统设计。很多人认为,区块链只能在上发挥作用,但事实却并非如此。从目前的情况来看,区块链的含义似乎已经变得多种多样,例如,数据结构、数据库、数据库技术等。而无论是哪一种含义,都与没有必然的联系。
1、数据:区块链是一种分布式数据库
如果从数据的角度来看,区块链应该是一种分布式数据库,而这里所说的“分布式”则主要体现为数据的分布式储存,对此可以从以下两个方面进行详细说明。
(1)大家必须知道,区块链储存的基本单元是区块,在链式结构的助力下,新增的区块都知道自己的前一个区块是什么,而且可以一直追溯到根。此外,哈希值为区块链提供了标识,链式结构又将业务产生的轨迹保留了下来。因此,在有新交易增加的时候,链式结构就可以根据区块的标识和前面的记录对新交易进行校验,进而保证区块的数据不会轻易被篡改。
当然,在传统的数据库设计中,与之相类似的模式也经常会被采用,例如,拉链表模式。在拉链表模式下,数据的每一次更新都会被追加,交易历史(例如,起始时间、是否生效、失效时间等)也会被完整地保存下来。区块链在该模式的基础上,加入了哈希、时间戳等新技能,以此来保证链条的准确性和完整性。
(2)既然区块链以分布式的方式来储存数据,那就必须要解决存储时分布式一致性的问题,在解决这一问题的时候,区块链的前身采用了工作量证明的方法。那么,何谓工作量证明呢?具体来说,就是通过工作获得成果,然后再用成果证明已经付出的努力。
对此,很多人可能有所不解,为什么一定要用工作量来证明,难道就没有其他办法了吗?实际上,自从区块链与分离以后,上述问题就被归结为共识问题了,而工作量证明也成为了达成共识的一种方式。
实际上,除了工作量证明以外,权益证明、实用拜占庭容错也是达成共识的方式。其中,权益证明是一种通过业务规则达成共识的方式;实用拜占庭容错是一种通过技术规则达成共识的方式。
这里还需要介绍一个知识点,区块链可以分为三种类型——公有链、私有链、联盟链。在公有链和私有链上,达成共识的主要方式就是工作量证明,而且这一方式在短期内不会被轻易取代。但是在联盟链上,完全可以根据实际情况,创造出一些新的方式达成共识,以便更好、更有效地解决分布式数据存储的一致性问题。
总而言之,区块链可以实现全球数据的分布式储存,也正是因为如此,它才变成了一个巨大的数据库。在这个数据库当中,任何企业、机构、个人都可以完成数据储存,而且根本不需要担心自己的数据会被删除或者篡改。
2、效果:记录时间先后的、不可篡改的、可信任的数据库
如果我们想建立一个可以在世界范围内使用的数据库,那么就会面临三个亟待解决的棘手问题。
(1)如何让数据库既能储存海量的数据,又能记录这些数据产生的时间?
(2)如何保证存储在数据库当中的数据不被篡改?
(3)如何使数据库变得可信任,进而确保我们在无实名的背景下也不会上当受骗?
自从区块链出现以后,上述三个问题便不再像之前一样那么棘手,似乎已经有了解决的可能。之所以这样说,主要是因为如果从效果的角度来看,区块链可以生成一个记录时间先后的、不可篡改的、可信任的数据库。
为了生成一个这样的数据库,区块链做了不少努力。首先,创新数据库的结构,将数据库中的数据分成不同的区块;其次,通过特定的信息,把区块链接到上一个区块的后面;后,让区块以前后顺连的方式形成一条链,从而呈现出一套完整的数据。
在区块链当中,数据以电子记录的形式被储存下来,区块的主要作用就是储存这些电子记录,其生成遵循着严格的时间顺序。具体而言,每一个区块都会将自己被创建期间的交易活动记录下来,把全部区块汇总在一起就可以形成一个记录合集。
另外,不同区块链的区块结构可能会有所不同,但基本上都被分为区块头和区块体两个部分。区块头的作用是链接到前面的区块并保证区块链数据库的完整性;区块体的作用是储存与交易有关的所有记录。一般来说,区块结构有以下两个非常关键的特点。
,每一个区块上记录的都是上一个区块形成之后、该区块被创建前发生的交易活动。
第二,通常情况下,只要新区块完成记录并被加入到区块链的后,那么记录在这个新区块上的交易信息以及数据就不可以被删除或者篡改。
上述所提到的个特点为区块链数据库的完整性提供了有力保障,使其变得可以被信任。第二个特点为区块链数据库的严谨性提供了有力保障,使其变得不可以被随意篡改。也正是因为有了这两个特点的助力,区块链数据库才可以发挥如此巨大的作用。
那么,何谓区块链数据库呢?顾名思义,以“区块链+”的方式形成的数据库就被称为区块链数据库。在储存数据的时候,区块链数据库有自己的一套模式。
因为每一个区块头都包含了前一个区块的“交易信息压缩值”,所以,把开始的个区块,到当前近的区块连接起来就形成了长链。又因为如果不知道前一区块的“交易信息压缩值”就不能继续生成当前区块,所以,每个区块必须要严格按照时间顺序跟随在前一个区块之后。在这种模式下,储存在区块链数据库中的数据就可以有非常明确的产生时间,各自的先后顺序也十分的清晰明确。但应该知道的是,区块链数据库是以区块链为基础的,后还要归结到区块链上。因此,与区块链数据库储存数据的模式相比,区块链的基本结构也同样重要。
在《区块链:互联网金融的终局》当中,有这样一段话:“人们把一段时间内生成的信息(包括数据或代码)打包成一个区块,盖上时间戳,与上一个区块衔接在一起,每下一个区块的页首都包含了上一个区块的索引数据,然后再在本页中写入新的信息,从而形成新的区块,首尾相连,终形成了区块链。”
该段话深刻阐明了区块链的基本结构,而这一结构还有一个不得不提的大创新点——“区块链=时间戳”。“区块链”的结构可以保证区块链的完整性,从个区块开始,一直到生成当前区块为止,区块链上储存了与交易有关的所有数据。
不仅如此,在区块链的帮助下,区块链数据库中的任何数据都可以被查询,也可以被追本溯源,这样的话,无论是企业,还是机构,抑或是个人,都可以对这些数据进行验证,从而保证数据的真实性和有效性。
除了区块链的基本结构以外,区块链数据库的大创新点也是“区块链=时间戳”。区块链数据库可以在储存数据的过程中为每一个区块都盖上时间戳,以表示数据是在这个时间被记录到区块当中的。
上述做法不仅可以证明数据的储存顺序,还可以确保数据没有被篡改,更重要的是,可以大幅度地提升区块链数据库的可信任度。由此看来,区块链的确有能力生成一个记录时间先后的、不可篡改的、可信任的数据库,而这个数据库便是区块链数据库。
3、拜占庭将军问题
前面已经说过,区块链是一种分布式数据库,然而,提到分布式就会出现一个绕不开也躲不掉的难题——“拜占庭将军问题”。这个问题是由计算机科学家莱斯利·兰伯特提出的,而且广泛存在于点对点通信当中。
简单来说,“拜占庭将军问题”其实是一个在缺少可信任的中央节点和相关通道的情况下,分布在网络中的各个节点应该怎样达成共识的问题。此外,为了让我们可以更好地理解这个问题,莱斯利·兰伯特还编出了一个以拜占庭帝国时期为背景的小故事,具体内容如下。
拜占庭帝国时期,突然出现了一个像“怪兽”一样的敌人,于是拜占庭国王就派出了9支军队与这个敌人对抗,并采用包围战术以提高胜利的概率。
拜占庭帝国的9支军队分散在敌人的四周。不过,敌人虽然比较小,但还是可以凭一己之力抵抗4支军队的力量的,也就是说,任何1支军队都无法单独打败敌人。
在这种情况下,如果想真正打败敌人的话,就要有5支以上的军队达成进攻共识。与此同时,还要有相应的通信兵在各个军队间传递由将军下达的防守或撤退的命令,9个军队的将军不能聚在一起,因为只要出现这种现象,敌人就很可能会逃跑。
但现在的问题是,这些将军无法确定他们当中是不是有背叛者,一旦真的有背叛者,那么这个背叛者就会向其他将军传递假的命令,从而促成一个不是所有将军都认可的行动。例如,当将军们都希望撤退时却因为假命令促成进攻行动。
那么,各将军应该如何达成共识,从而顺利打败敌人呢?这便是困扰了计算机科学家们很多年的“拜占庭将军问题”。后来,计算机科学家们发现有两种办法可以解决这个问题、一种是口头解决;另一种是书面解决。然而,从这两种解决办法中又可以得出结论:当背叛者的数量少于三分之一时,各将军才能够达成共识。
假设在9个将军中有1个背叛者,那这个背叛者就可能会给4个希望防守的将军传递防守命令,而给另外4个希望撤离的将军传递撤离命令。不过,因为其他8个将军都是忠诚的,所以这8个将军在互相通信后还是能够达成共识的,也就是说,1个背叛者的干扰行为不会对终的共识产生任何影响。当然,有2个背叛者的时候结果也是一样的。
但是,假设有3个背叛者,这3个背叛者给希望防守的将军传递防守命令,又给希望撤离的将军传递撤离命令,当3个希望防守的忠诚将军与3个希望撤退的忠诚将军通信之后就会发现,分别有6个将军希望防守,6个将军希望撤退。这也就意味着,各将军之间并没有达成共识,无法做出一致的防守或者撤退的决定。当然,有3个以上背叛者的时候结果也是一样的。
由此可知,当背叛者的数量多于三分之一时,无论是口头解决还是书面解决,都将无济于事。那么,“拜占庭将军问题”究竟应该怎样解决呢?区块链似乎为这个问题提供了一些比较不错的解决办法,主要包括工作量证明、权益证明、委任权益证明等。简单来说,工作量证明实际上就是一份用来确认已经做过一定工作量的证明。如果将其放在区块的生成过程中,就变成了我们俗称的“挖矿”。
如果现在已经挖出了第1 000个区块,但有的“矿工”还想挖第1 001个,与其他区块一样,这第1 001个区块也是由区块头和区块体构成的,被用来储存数据。“矿工”们通过改变区块头中的随机数,经过哈希函数的计算输出一组哈希值。
在有效的哈希值出现之前,数十亿个无效的哈希值会被计算出来,整个过程需要花费大量的算力,而计算出有效哈希值的“矿工”就可以抢到记账权,并获得相应的奖励,这便是“工作量证明”。
对应到上述拜占庭帝国的故事当中,我们可以知道不仅通信兵传递命令需要时间,各将军对收到的命令进行验证和判断同样也需要时间。在这个过程中,9个将军之间就可以相互交流、沟通,当某个将军收集到正确且有效的命令并将其传递给其他将军验证之后,这个将军就相当于做出了贡献,也就可以获得奖励,如果把这个奖励放到区块链当中的话,那就是。
区块链钱包开发 区块链矿机APP 区块链交易所系统
深圳网站/软件服务相关信息
12小时前
12小时前
1天前
2天前
3天前
3天前
11月18日
11月15日
11月15日