Preface

本文是 Anders Brownworth 在 2016 的一个科普视频 Blockchain 101 - A Visual Demo (youtube),视频中通过一个 demo 由浅入深介绍了 blockchain 的简易原理,推荐观看原视频,本文是视频的文字简述版,方便查阅与思考。文章附带了 demo 源码,可自行构建镜像本地启动,可设置国内源加快速度

  • 设置: npm config set registry https://registry.npmmirror.com
  • 查看: npm config get registry

blockchain

作者从 hash 开始,逐步引入到 Coinbase

hash

给定一些值,然后基于对应的 hash 算法,即可得到一串数字,称为 hash 值,如下图中输入 hello,生成了一串 hash 值

image-20241214212940089

block

block 则是在 hash 的基础上,加入了更多的传入值,共同决定生成的 hash 值,如果修改了其中任意一个的内容,那么 hash 值就会发生变化

image-20241214213041716

如果期望最终的 hash 值,保持与未修改前的一致,那么其他内容也需要相应变化,比如下图将 Data 由空修改为了 hello,点击 Mine 后,Nonce 值发生了变化(72608 -> 85869)

image-20241214213337758

blockchain

blockchain 则是引入了更多的 block,不同 block 间通过 hash 值串接,可以看到,修改其中任意一个的内容时,修改点后续的内容都将发生变化

image-20241214213529466

当然,如果想确保修改内容后,hash 值保持不变,只需要和修改单个 block 一样,重新计算即可,只不过这次需要计算的不再是单个 block,而是修改点后的所有 block

distributed

为了解决 blockchain 可以被篡改的问题,引入了分布式的 blockchain,即多条 blockchain,即使修改了一条 blockchain,也无法修改所有的 blockchain

image-20241214214119176

Tokens

Tokens 在 demo 中是引入了交易的 distributed,如下多了 Tx

image-20241214214213204

Coinbase

Coinbase 则是在 Tokens 的基础上,引入了 Coinbase 的概念,即交易的资金原始来源(即币库),demo 中的 Coinbase 没有实际的用处,看着是为了规定 hash 值随便写的

image-20241214214443329

Reference

  1. YouTube: Blockchain入门 - 可视化演示, anders94/blockchain-demo