一文轻松看懂区块链的工作原理

IT之家 中字

区块链:去中心化的分布式数据库

大家都知道,“比特币”是一种数字货币。而“区块链”就是比特币的记账系统。可以把区块链想象成一个账本,上面记录了全球所有的比特币交易信息。那么,区块链跟传统的银行记账有什么区别呢?

这就涉及到区块链的本质了:区块链是一种去中心化的分布式数据库。我会一一解释这三个关键词。

数据库:

所谓“数据库”,就是计算机上的一组表格,它可以存放大量的有结构的信息(可以类比Excel,但远比Excel复杂)。比如我们去银行存款、取款、汇款,这些交易信息都是要上传到银行的数据库的。

分布式:

这个数据库可以存放在银行的一台超级电脑上,也可以放在多台电脑上。比如工行可能在华北、华中、华东、华南等地区各有一台服务器,每个地区的交易信息发送到本地区的服务器上,各个服务器之间通过银行的内部网络连接。这就叫“分布式数据库”。

去中心化:

传统的服务器,不管是不是分布式的,都是有“管理员”的。也就是说,有一个银行内部的“超级用户”可以查看所有的交易信息,并且可以随意添加、修改这些信息。这就叫“中心化”。

而区块链则是“去中心化”的。也就是说,区块链这个数据库中不存在管理员,所有人都是平等的,都有权查看、添加信息。去中心化是区块链的本质特征。

既然所有人都有权往区块链上添加信息,那么这个“账本”难道不会乱七八糟吗?要搞清楚这点,我们需要了解什么是“区块”,什么是“链”。

何为“区块”何为“链”?“区块”是区块链的基本组成。区块就是一个数据块。类比账本的话,区块就相当于账本上的一页,这一页上记录了多条交易信息。而把这些分散在整个互联网上的“页”串成一条链,就可以形成一个完整的“账本”。那么,“区块”是怎么串成“区块链”的呢?

区块链账本的记账原理

哈希值与防篡改:

除了比特币交易信息之外,区块上还包含了这个区块本身的一些特征信息。可以类比一页上的“页码”,只不过这个“页码”比较复杂。“页码”中最重要的,就是“哈希值”,它是理解区块链可靠性的关键。

所谓“哈希值”,可以理解为数据的一个“指纹”。我们签合同有时会摁手印,以后只要把自己的指纹和合同上的指纹对比一下,就可以证明合同是自己签的。类似地,我们在网上下载一个软件,有些网站会给出安装包的哈希值(可能称为CRC或SHA)。我们下载完安装包后,只需用专门的工具计算一下这个SHA值,再跟官网上给的SHA值对比一下,就可以知道自己下载的和网站提供的是否100%一致,下载过程有没有被人做了手脚。

不同的数据,算出来的哈希值一般来说是不同的。如果已知数据A的哈希值是H,想伪造另一个数据B,使它的哈希值也是H,这是极其困难的。也就是说,哈希值具有不可伪造性,起到了“指纹”的作用。

一个区块中,包含了两种哈希值:“上一个区块的哈希值”和“本区块的哈希值”。因为每个区块都包含了上一个区块的哈希值,所有的区块就依次连成一条(逻辑上的)链。“上一个区块的哈希值”就起到了“页码”的作用——给页排序。

▲区块所包含的内容

▲区块连接成区块链

如果一个区块上的交易信息被人恶意篡改的话,“本区块的哈希值”就会改变。由于区块链中下一个区块包含了“上一个区块的哈希值”,为了让下一个区块依然能连到本区块,需要修改下一个区块。而这又导致下下个、下下下个......区块也必须修改。

声明: 本文由入驻OFweek维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。
侵权投诉

下载OFweek,一手掌握高科技全行业资讯

还不是OFweek会员,马上注册
打开app,查看更多精彩资讯 >
  • 长按识别二维码
  • 进入OFweek阅读全文
长按图片进行保存