什么是区(qu)块链?
简单地说,区块链是(shi)一个分散的分布式分类账(zhang)数据库。
区块链没有中心服(fu)务器,各参与节点(人)是平(ping)等的,直接交换数据。数据生(sheng)成后,会被一个个打包成数据块(kuai),按照时间顺序连接成一个数据链。前后块都有密码机制防止篡改(gai),每个节点都会同(tong)步完整的数据链(lian)。
区块链的共识机制
上面提到(dao),区块链是通过一个接一个地链接(jie)数据块而合成的链(lian)。积木是怎么来的?是矿工把整(zheng)个网络的节点产生的数据打包。这(zhe)个过程也被称为采矿。将数据(ju)打包成块并连接到区块链中的节(jie)点称为挖掘器。你可能会问如果矿工(gong)造假怎么办?这需要一个共识机制,以便每个打包块中的矿(kuang)工不能进行恶意欺诈。如何(he)实现这一点?
这里我(wo)们只讲一种最原(yuan)始共识的机制叫pow共识是通过(guo)计算机的计算能力达(da)成共识,整个网络(luo)的节点一起做一个哈希运算。谁先算出一个正(zheng)确的值,谁就有权打包这个块,然后在(zai)全网同步这个块,再进(jin)行新的哈希竞赛。下一个获胜者将(jiang)有权包装下一个区块并将其连锁,系(xi)统将对每次包装区块(kuai)的矿工给予一定的虚拟货币奖励。这(zhe)种以计算能力决定记账权(quan)的规则被称为POW共识。
所谓‘哈希’,就是计算机可(ke)以对任何内容计(ji)算出相同长度的特征值。区块(kuai)链的哈希长度是256位(wei),这意味着不管原始内(nei)容是什么,最后都会计算出一个(ge)256位的二进制数。而且可以保证,只要原始内容不一样,对(dui)应的hash就一定不一样。并(bing)且散列操作是不可逆(ni)的。可以对某个数据(ju)进行哈希运算以获得精确的(de)值。如果依次给定一个哈希(xi)值,就不可能反(fan)过来计算它的初始值。唯一的办法就是(shi)蛮力运算(不断尝试遍(bian)历所有初始值,逐个比较结果)。
因为有(you)一个共识机制,规范矿工的行为,保证(zheng)数据的真实性和稳定性。矿(kuang)工要想作恶修改数据,就必须获得打(da)包块的权限,也就是说要(yao)先于其他节点计算(suan)出正确的哈希值,这就需要比全网(wang)其他节点更强大的计算能力。
区块链的几个特性(xing)
去(qu)中心化
去中心化(hua),即不像传统的中心(xin)化,没有中心化的(de)服务器,人与人之(zhi)间直接点对点交流;每个节点充当(dang)一个服务器,每个节点会同步(bu)共享整个账簿的数据。这相(xiang)当于每个节点都有一套完整(zheng)的数据。而且信息公开透明(ming),任何人都可以通过区块链查看这些(xie)数据记录。
传统的淘宝、QQ等。是集中的。当你使用(yong)这些产品时,你产生的数据先存储在他(ta)们的服务器中,然后通(tong)过中心服务器与他人(ren)进行交互。如果淘宝或者QQ服务器出现故障,那么(me)我们就无法使用。然而,在区块链,人们点对点直接交(jiao)流。即使某些节点服务器出现(xian)故障,也不会影响其(qi)他节点的交互。系统(tong)可以具有更高的(de)容错性和安全性。没有中心化,就没有平台操纵的风险。
商(shang)家和消费者作为(wei)平等的节点,绕(rao)过第三方中心机构直接进行数(shu)据交换。
数据不可篡改
区块链数据是一个接一个(ge)连接起来的区块链,受密码学保护。每个块由块头和块体组成(cheng)。头记录了当前块的特(te)征值(包括当前生成(cheng)时间2022、前一个块的hash、本块数据块体的(de)hash值等。),而块(kuai)体就是这个块的数据。因为每个块都包(bao)含前一个块的哈(ha)希值,所以形成(cheng)了防篡改的联动机制。
如果一个块的数(shu)据发生变化,这个块(kuai)的哈希值也会发生变化。因为前一个块(kuai)的哈希值记录在每个块的头(tou)中,所以改变数据的(de)块后面的所有块的哈希值都会改变。如果一个节点想把数据(ju)改邪归正,就需要把这个块到下(xia)一个块的所有块都改(gai)过来。
这意味着他需要返回到数据(ju)已经发生变化的区(qu)块,开始用计算(suan)能力挖掘获取记(ji)账权,然后继续用计(ji)算能力挖掘获取之(zhi)后所有区块直到(dao)最近的记账权。这(zhe)时可以理解为攻击者和正常节点两条链(lian)同时在挖。由于区块链有最(zui)长链原则:所有节点只会承认区块数量(liang)更多的最长链并同步(bu)它的数据。区块链攻击者需要做的就(jiu)是让他挖的那条链的长度追上并超过(guo)正常节点所挖的链。,当他(ta)挖出的块的长度超过正常节点(dian)。
块长度后,便(bian)能迫使其他节点接受(shou)他挖的那条链,此时攻击(ji)成功。实际上这(zhe)个攻击是非常困难的,攻击者(zhe)返回去挖想更改数据的(de)旧区块,正常节(jie)点也会持续挖矿,在已经落(luo)后若干区块的前提下,攻击者只有(you)在其算力达到全网51%及以上的情况下,挖矿(kuang)(取得记账权)的速度才有可能追上当前最新区块,业(ye)内把这种情况下的攻击叫做51%攻击。但是这个成本非常巨(ju)大以至于任何人都很难或者说无(wu)法完成。
比特(te)币
举个例让你明白这有多难,现在比(bi)特币网络的计算能力已经超过(guo)了全世界超级计算机运算能力的(de)总合,在共识机制(zhi)下节点作恶成本非常巨大(da)以至于根本办不到。比特币作为区块链的一个应(ying)用,从产生到现在一直稳定(ding)的运行了近10年。
正是通过这种(zhong)哈希值的联动和pow算力证明机(ji)制,区块链保证了(le)自身的可靠性,数据一(yi)旦写入,就无法被篡改。这就像历(li)史一样,发生了就是发生了,从此(ci)再无法改变。
去信(xin)任
区(qu)块链通过密码学算法和共识实(shi)现了信任机制。系统中所有节(jie)点之间无需信用基(ji)础也可以进行交易,因为数据(ju)库和整个系统的运作是公(gong)开透明的,在系统的规则和时间范围(wei)内,节点之间无法欺骗彼此;依(yi)靠密码学基础和共(gong)识机制也保证了每(mei)一个打包区块的矿工可靠性,进而保(bao)证了每一个区块(kuai)数据的可靠性,用密(mi)码学和共识机制让每一个参与节点(dian)无需有现实的信用基础也能(neng)够互相信任。这是传统中心化无法做到(dao)的一点。
区块链的应用(yong)场景
去中心化游戏
过去我们玩的游戏都(dou)是中心化的,即游戏运行在开(kai)发商的服务器中,开(kai)发商可以随意改编规(gui)则或者更改你的游戏账户的各种参(can)数。玩家不能真(zhen)正的掌控游戏。去中心化(hua)游戏让游戏运行流(liu)转都在分布式节点中进行,游戏代(dai)码开源供所有玩家检(jian)阅,杜绝暗箱操(cao)作,使游戏更加的(de)公平。
区块链(lian)存证系统
我(wo)们可以将商业合同票据(ju)等上链保存,以去中心化(hua)的特性发布到区(qu)块链上,增加了存(cun)证的公信力,并且(qie)发布后即不可篡改(gai)。前段时间深圳腾讯(xun)联合税务局已经试点开出了全国首个区(qu)块链税票。
区块链商品溯(su)源系统
商品(pin)溯源,将商品从产地到最终流入(ru)消费者手中的所有流转信(xin)息,都用区块链(lian)记录下来,任何人均可对商品溯源,保(bao)证真实可信。
虚拟货币
比特币、以太币等等虚拟(ni)货币就是区块链(lian)的实际应用,虚(xu)拟货币也是目前区块链应用最为(wei)成熟的领域。除了这两个外目前已经(jing)存在的币种超过几(ji)千种。总市值超(chao)过2000亿美(mei)元。
区块链的局(ju)限
当然区块链也有(you)很多弊端,比如(ru)效率低下不能满足(zu)规模化高频应用;重复存储带来的(de)存储资源浪费;试错成(cheng)本高;51%攻击等等,本(ben)文作为方便新手理解区块链的目的(de)便不再详细说明