我对区块链的理解

171 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

概念

区块链是一个去中心化、分布式的数据库系统。本质可以理解为一个数据库系统。

结构

区块链逻辑上上看是,是一个个叫做区块的数据结构,按照先后顺序,每个区块指向前一个区块,依次链接起来成为链式的数据结构。 从物理上看,底层仍然是文件,存储在硬盘上。

数据库的分布

在电脑或服务器上安装了去区块链软件即可以称之为一个节点,每个节点都有区块链的完整数据存储称之为账本,节点接入网络,所有的节点账本才真正构成了区块链数据库系统。

写入权限

  • 任何人都可以有申请写入区块链的权限,申请写入区块链的步骤称之为-交易,交易并未实际写入区块链。交易是经过密码学算法签名,不可篡改,并且可以验证的。
  • 一部分人(矿工),经过一系列竞争或者机制(共识机制),才拥有将交易写入整个区块链系统权限,写入整个区块链系统是指,所有节点都认可(验证确认)这个区块,并写入自己本地账本

写入操作,交易和写入账本,会产生交易数据和区块数据,固定的数据结构,发送到其它节点(广播),让其它节点也可组装、写入账本数据,同步账本数据。

读取权限

任何人都可以读取区块链账本数据

区块的结构、以及如何构成的链

以比特币数据结构为例,其它区块链系统类似

大小字段名说明
4 bytesMgicNumber神奇数,固定值0xD9B4BEF9,作用是作为区块链间的分割符
4 bytesBlock Size区块大小,当前区块的大小
80 bytesBlock Heade区块头
可变大小Block Body区块体,存放交易信息(多个)

区块头说明

大小字段名说明
4 bytesVesrsion版本号
32 bytesPrevious Block Hash前一区块hash
32 bytesMerkle Root区块交易默克尔根hash
4 bytesTimestamp时间戳,产生区块时间
4 bytesDifficult Target当前区块,工作量证明目标难度值
4 bytesNonce随机数,用作工作量证明计算

可扩展自定义逻辑

通过智能合约实现逻辑并写入数据到区块链,智能合约可以理解为 区块链数据库系统的 复杂sql语句,发送交易申请执行智能合约,写入数据到区块链数据库系统。