从区块链到分布式账本系列之三

写在前面

这是<从区块链到分布式账本>系列第三篇.
前一篇请参考: 从区块链到分布式账本系列之二

这篇的更新目标有点小, 主要是尝试把昨天的更新计划中缺少的那一部分补上.简单概括说就是: 区块链的概念和原理. 想把这部分说清楚亦是不易的. 索性就把目标进一步缩小.这篇更新的小计划就是:

  • 随手画了一张图
  • 这张图简要的说清楚

我就是那张图

(请看这里, 我就是那张图)
PS: 原计划手绘一张简易图, 奈何每每在保存的时候, 总是出问题. 于是有了这个比较方方正正的略简单的图.

我是那张图的使用说明

犹如上一篇提到过的, 区块链并没有使用很复杂的技术, 但是有一个很好的工程设计思想.

说到区块链, 首先这是一个链状数据结构, 也就是把一个个区块串联起来的结构, 犹如图的上部分所示.每一个区块里面包含了很多条交易记录信息. 然后通过某种机制, 把这些区块串联起来, 但是有一个目标就是防止篡改. 或者说, 一旦有人篡改了这个链条中的某个区块, 是可以立刻被发现的.

回到这个区块中来说, 一一介绍下四个部分:

  • 第一个部分是上一个区块的Hash散列值. 它就相当于这些区块之间的链条. 区块之间靠着这个模块链接到上一个区块, 新的区块只能在后面添加, 之前的区块一旦生成, 就只能放在那里原封不动的.
  • 第二个部分是时间戳, 简单明了, 就是这个区块的时间信息, 不多讲.
  • 第三个部分是随机数. 这个是随机数就是和我们熟知的”挖矿”环节相关联. 全网所有的节点, 通过某种和这个随机数计算, 竞争来获取权利去生成下一个区块的机会. 这背后的计算力, 就是区块链公信力的背书. 在比特币中, 通过和这个随机数相关的计算, 可以做到大概每过10分钟可以产生一个新区块. 至于这其中的原理, 改天可以开一个新篇章来介绍.
  • 第四个部分和存储的交易记录有关. 每个区块中的所有交易, 以一种便于校验的数据结构存储起来, 然后把相关的校验结果存储起来. 图中, 我使用的是Merkle-tree (默克尔树, 又叫哈希树), 树中的叶子节点存储交易记录, 然后层层计算节点的哈希值.

这里说的比较概括, 这其中每一个部分都可以细细来谈, 先简要说这些.

图中没有画出每条交易信息的一些概括内容. 简单来说, 一条交易可能需要包括: 交易的编号, 类比日常生活中发票的ID; 交易的内容; 交易发起方的公钥; 交易发起方数字签名. 这里简单说下公钥和数字签名问题, 以后还会有详细的介绍. 在一个公钥密码体系中, 一个用户可以获取一对公钥和私钥对, 用户可以使用其私钥去对一段内容进行签名, 而其他所有人可以使用公钥去验证这个签名是否合法. 这样可以做到”防抵赖”效果.

似乎到这里今天就该结束了, 23333

我是正式的分割线

有点惭愧, 留一个维基百科的区块链定义.

A blockchain– originally block chain– is a distributed database that is used to maintain a continuously growing list of records, called blocks. Each block contains a timestamp and a link to a previous block. A blockchain is typically managed by a peer-to-peer network collectively adhering to a protocol for validating new blocks. By design, blockchains are inherently resistant to modification of the data. Once recorded, the data in any given block cannot be altered retroactively without the alteration of all subsequent blocks and the collusion of the network. Functionally, a blockchain can serve as “an open, distributed ledger that can record transactions between two parties efficiently and in a verifiable and permanent way. The ledger itself can also be programmed to trigger transactions automatically.”

坚持原创技术分享,您的支持将鼓励我继续创作!
0%