大白话说区块链和通证

1 区块链

简单地说,区块链其实就像是一个不可篡改的分布式数据库,该分布式数据库记录了一系列交易或事件。区块链运行在至少1个以上的节点上,每个节点都有自己的一个分布式数据库,也就是分布式账本。正常情况下,每个节点的分布式数据库里的数据都是一样的。区块链由不断生成的区块链接而成。一个区块包含区块头(Block Header)和区块数据(Block Data),区块数据又称为区块体(Block Body)。每个区块包含了一批交易的数据、时间戳和前一个区块的哈希值。哈希值是一种唯一标识,它保证了每个区块的完整性,一旦数据发生改变,哈希值也会立刻发生变化,因此保障了数据的安全性。而要改变一个区块,就要改变它之后所有的区块,这种特性使得区块链非常安全。此外,区块链是分布式的,因此没有单一的控制中心(除非区块链只运行在1个节点上),使得数据变得更加透明、可追溯和公开。总的来说,区块链是一种用于记录交易和事件数据的技术,它的特点是去中心化、不可篡改、透明、安全,并且可以实现智能合约等功能。

1.1 区块头

对于比特币来说,区块头(Block Header)包含以下几个字段:

  1. 版本号(Version):这是表示区块链协议的版本号。
  2. 前一个区块的哈希值(Previous Block Hash):这是前一个区块的哈希值,将前一个区块与当前区块链接起来,形成区块链。
  3. 默克尔根(Merkle Root):这是由所有交易数据构建的默克尔树的根哈希值,确保区块中的交易数据的完整性。
  4. 时间戳(Timestamp):这是区块的创建时间,以UNIX时间戳的形式表示。
  5. 难度目标(Difficulty Target):这是一个用于控制区块链的挖矿难度的参数,在计算哈希值时起到限制条件的作用。
  6. 随机数(Nonce):这是一个用于满足挖矿难度要求的随机数,矿工需要不断尝试不同的随机数来寻找满足要求的哈希值。

1.2 区块体

区块数据可以包含0笔、1笔或多笔交易,这些交易包括矿工的挖矿交易和其他转账交易。每笔交易信息都可以通过哈希函数,例如MD5、SHA-256,得到一个唯一对应的哈希值,也就是这笔交易的哈希值。对于比特币来说,使用SHA-256哈希函数。需要注意的是,每笔交易的信息,改变了哪怕1 bit的内容,交易的哈希值也就会被改变。哈希函数,简单地说,就是对于任意长度的输入,通过散列算法变换,都能得到一个成固定长度的输出,该输出就是散列值。

例如,如果使用MD5算法:

对于输入:"123456",它的MD5的输出就是:"E10ADC3949BA59ABBE56E057F20F883E",即: MD5("123456")="E10ADC3949BA59ABBE56E057F20F883E"

对于输入:"哈希函数,简单地说,就是对于任意长度的输入,通过散列算法变换,都

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值