Login
欢迎来到未来世界

您现在的位置是: 首页 > 计算机 > 区块链

区块链

从技术角度简单理解区块链产品(从技术角度简单理解区块链产品的特点)

区块链 加入收藏
(1)区块链的本质区块链是一种特殊的分布式数据库。首先,区块链的主要作用是储存信息。任何需要保存的信息,都可以写入区块链,也可以从里面读取,所以它是数据库。其次,任何人都可以架设服务器,加入区块链网络
(1)区块链区块链的本质是一个特殊的分布式数据库。 首先,区块链的主要功能是储存信息。 任何需要保存的信息都可以写入区块链或从中读取,所以它是一个数据库。 其次,任何人都可以建立一个服务器,加入区块链网络,成为一个节点。 在区块链的世界里,没有中心节点(去中心化)。每个节点都是平等的,并且拥有整个数据库。 您可以向任何节点写入/读取数据,因为所有节点最终都会同步,从而确保区块链的一致性。 (2)区块链区块链最大的特点是没有管理员,完全无中心。 其他数据库有管理员,但区块链没有。 如果有人想在区块链中加入审计,那是不可能实现的,因为它的设计目标是防止出现一个中央管理机构。 没有管理员,大家都可以过去写数据。如何才能保证数据可信?这是区块链的奇妙之处。 (3)区块区块链由相连的区块组成。 块就像数据库中的记录。每次写入数据时,都会创建一个数据块。 每个块包含两部分:块头:记录当前块元信息的块体;实际数据块头包含当前块的多个元信息生成次数;实际数据的hash中前一个块的Hash(即块体):即Hash计算机可以对任意内容计算出一个长度相同的特征值。 区块链的哈希长度是256位,不管原始内容是什么,最后都会计算出一个256位的二进制数。 而且可以保证,只要原始内容不一样,对应的Hash就一定不一样。 比如字符串123的Hash是a 8 FDC 205 a 9 f 19 cc 1c 7507 a 60 C4 f 01 b 13d 11d 7 FD 0(十六进制),换算成二进制就是256位,只有123可以得到这个Hash。 (4)Hash的不可修改块与Hash一一对应,计算每个块的Hash作为“块头” Hash = SHA256(块头)块头包含了很多内容(包括前一块的Hash,当前块的Hash等。,见上图) 这意味着如果当前块的内容发生变化,或者前一块的Hash发生变化,一定会引起当前块的Hash发生变化。 如果有人修改了一个块,该块的散列也会改变。 为了使后面的块与之连接,必须同时修改所有后面的块,否则已更改的块将与区块链分离。 哈希计算耗时,同时修改多个块几乎不可能,除非有人掌握了全网51%以上的计算能力。 正是通过这种联动机制,区块链保证了自身的可靠性,数据一旦写入,就无法被篡改。 就像历史一样,发生的就是发生的,从此无法改变。 (5)因为必须保证挖掘节点之间的同步,所以新块的添加速度不能太快。 想象一下,你刚刚同步了一个块,准备基于它生成下一个块,但随后其他节点又有新的块生成,你不得不放弃一半的计算,重新同步。 因为每个块后面只能跟一个块,所以只能在最后一个块之后生成下一个块。 所以,你别无选择,只能一听到信号就同步。 因此,区块链的发明者故意增加新积木的难度。 他的设计是平均每10分钟,全网就能生成一个新块,一个小时只有6个块。 这种输出速度不是通过命令来实现的,而是通过刻意设置海量计算来实现的。 也就是说,只有通过极其大量的计算才能得到当前块的有效Hash,从而给区块链增加一个新的块。 因为计算量太大,所以不能快速起来。 这个过程叫做挖掘,因为很难计算出一个有效的哈希,就像在世界的沙子里找到一粒合格的沙子一样。 计算Hash的机器叫矿机,操作矿机的人叫矿工。 (6)难度系数。你可能有问题。人们都说挖掘难,但挖掘不就是用计算机算个哈希吗?这正是电脑的长处。怎么会变得计算困难和延迟呢?(比特币矿机是用来赚取比特币的电脑。一般都有专业的挖矿芯片,通过烧显卡来工作。)原来不是什么Hash都可以用,只有满足条件的Hash才会被block链接。 这个条件特别哈希,所以大部分哈希都不符合要求,必须重新计算。 头包含一个难度系数,它决定了计算散列的难度。 比如第十万块的难度系数是14000.0000000000006 区块链协议规定,目标值可以通过将常数除以难度系数来获得。 显然,难度系数越大,目标值越小。 哈希的有效性与目标值密切相关。只有小于目标值的哈希才有效,否则哈希无效,必须重新计算。 因为目标值很小,Hash小于这个值的几率极小,可能要计算10亿次才算一次。 这是采矿如此缓慢的根本原因 头中还有一个Nonce值,它记录了哈希重新计算的次数。 第10万个块的Nonce值是274148111,也就是需要2.74亿次才能得到一个有效的Hash,该块可以加入区块链。 (7)难度系数动态调整即使挖掘难度大,也没有保证。整整十几分钟就会产生一个区块,有时候一分钟就会计算出来,有时候可能几个小时都没有结果。 一般来说,随着硬件设备的完善,矿机的增多,计算速度会越来越快。 为了保持十分钟的输出速率不变,区块链发明家还设计了难度系数的动态调整机制。 他规定每两周调整一次难度系数(2016块)。 如果这两周的平均块生成速度是9分钟,说明比法定速度快了10%,那么难度系数会提高10%;如果平均生成速度是11分钟,就意味着比法定速度慢了10%,那么难度系数就会下调10%。 难度系数越高(目标值越小),挖掘难度越大。 (8)区块链的分叉即使区块链是可靠的,还有一个问题没有解决:如果两个人同时向区块链写数据,也就是两个区块同时加入,因为都连接到前一个区块,就形成了分叉。 这个时候应该采用哪个区块?当前的规则是新节点总是采用最长的区块链。 如果区块链有一个分叉,它将取决于哪个分支在分叉点后面,首先到达六个新块(称为“六个确认”)。 按照10分钟区块计算,一个小时就可以确认。 当前的规则是新节点总是采用最长的区块链。 如果区块链有一个分叉,它将取决于哪个分支在分叉点后面,首先到达六个新块(称为“六个确认”)。 按照10分钟区块计算,一个小时就可以确认。 为了保证数据的可靠性,区块链也有自己的价格。 第一,效率。当数据写入区块链时,至少需要等待十分钟。如果所有节点都同步数据,需要更多的时间;第二,能源消耗。区块的生成需要矿工无数次无意义的计算,非常耗费精力。
图集详情底部广告位