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