技术基础介绍

想知道更多区块链技术知识,请百度【链客区块链技术问答社区】
链客,有问必答!!

区块链入门笔记,小白萌新可以看一看。
1.本质
特殊的分布式数据库,主要用于储存信息,任何信息都可以在区块链中进行读写。
2.特点
区块链没有管理员,实现了无中心化,它的设计目标就是防止出现居于中心地位的管理当局。
3.区块
区块链由区块(Block)组成
区块像是数据库的记录,每次写入一个数据,创建一个区块
区块由两个部分组成

  • 区块头(Head):记录当前区块的元信息
  • 区块体(Body):实际数据
    区块头包含了当前区块的多项元信息
  • 生成时间
  • 实际数据(区块体)的 Hash,不是整个区块
  • 上一个区块的 Hash

  • Hash 指计算机可以对任意内容,计算出一个长度相同的特征值。区块链的 Hash 长度是 256 位,这就是说,不管原始内容是什么,最后都会计算出一个 256 位的二进制数字。而且可以保证,只要原始内容不同,对应的 Hash 一定也是不同的。
    因此有两个推论
  • 每个区块的 Hash 都是不一样的,可以通过 Hash 标示区块
  • 如果区块的内容变了,它的 Hash 一定会改变
    4.Hash 的不可修改性
    区块 与 Hash 一一对应,每个区块的 Hash 都是针对“区块头(Head)”计算的
    计算公式:Hash = SHA256(区块头)
    SHA256 是区块链的 Hash 算法
    如果一个区块被修改,则该区块的 Hash 改变,为了链接后面的区块,后面的区块也必须改变,上一个也得变。
    而 Hash 的计算又非常耗时,所以除非一个人掌握了全网 51% 的计算能力,否则无法同时修改多个区块。
    这种联动机制使数据一旦被写入,就无法被修改
    5.采矿
    由于必须保证节点之间的同步,新区块的添加速度不能太快,每个区块后只能跟着一个区块,采矿的人永远只能跟在最新的区块之后。一听到信号,必须同步。
    区块链的发明者(假名:中本聪)故意让添加新区块非常困难。他的设计规则:一个新区块 / 10min,也就是 1 小时 6 个。
    只有经过大量的运算,才能计算出当前区块的有效 Hash,所以快不起来。
    这个过程就叫做采矿(mining)
    6.难度系数
    只有满足条件的 Hash 才会被区块链接受。
    区块头包含一个难度系数(difficulty)
    目标值(target)= targetmax / difficulty

Hash 的有效性跟目标值密切相关,只有小于目标值的 Hash 才是有效的,否则 Hash 无效,必须重算。由于目标值非常小,Hash 小于该值的机会极其渺茫,可能计算10亿次,才算中一次。这就是采矿如此之慢的根本原因。
区块头里面还有一个 Nonce 值,记录了 Hash 重算的次数。第 100000 个区块的 Nonce 值是274148111,即计算了 2.74 亿次,才得到了一个有效的 Hash,该区块才能加入区块链。
7.难度系数的动态调节
为了保证 一个区块 / 10min,中本聪 设计了难度系数的动态调节机制
每两周调整一次难度系数
难度系数越高 -> 目标值越小 -> 采矿越难
8.区块链的分叉
当两个人同时向区块链写入数据,新节点总是采用最长的那条区块链(哪个分支后面先打到 6 个区块,就采用哪个分叉)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值