区块链

区块链 (英语:blockchain)是借由 密码学共识机制 等技术建立,存储数据保证不可篡改和不可伪造的 分布式技术。

什么是区块

区块 就是将一批数据打包在一起,并且给打包出来的区块编号。第一个区块的编号是 1,第二个区块的编号是 2。按照编号连在一起就称为区块链。

特点

不可伪造

每个区块都必须包含四个最基本的元素,上一个区块的散列值若干条数据一个调节数,本区块散列值。

散列值是通过散列函数生成的,散列函数是一种从任何一种数据中创建数字“指纹”的方法。散列函数把消息或数据压缩成摘要,使得数据量变小。一旦数据有改变,散列值必然会改变。

其中 调节数 是需要计算的,一旦有 节点(可以暂时理解成家用电脑)计算出 调节数,就可以通过散列函数为 上一个区块的散列值本区块的数据当前算出的调节数 生成 散列值,然后将 上一个区块的散列值本区块的数据当前算出的调节数、散列值打包在一起形成一个区块,发送给网络中的其它节点。其它节点会验证 调节数 和 散列值 是否正确,如果认为正确就接收这个区块,继续算下一个区块。如果错误就拒绝接受。

验证调节数非常简单,计算出调节数则非常困难。所有其它节点能快速的验证调节数的正确性。


不可篡改

区块链 不可篡改 的原因是一旦区块被计算出来,那么区块的散列值就需要被用于下一次区块生成。假设现在如果有一个A节点,尝试改变之前区块2里面的数据,此时最新的区块7已经产生,那么A节点就需要自己单独重新计算区块2至区块7的所有区块,否则不会被接受。

如果A节点只重新计算区块2,则不会被其它节点接受,因为当前已经有一个更长的链在运行,节点只认最长的链

另外一点,如果A节点修改了区块2的数据,那么区块2的散列值就变了,而生成区块3需要区块2的散列值,这样会导致A节点还需要重新计算区块3,区块4,区块5,区块6,区块7。但是此时还有其它节点也在一直计算区块8。大家计算的难度都是一样的,A节点想修改数据,就必须超过网络中的其它节点计算出一条更长的链,才会被接受。

和BTC的关系

  1. 中本聪在《比特币:一种点对点电子货币系统》一文中,并未给出“区块链”的具体定义,只是提出了一种基于哈希证明的链式区块结构,即称为区块链的数据结构。
  2. 目前区块链的最成功的应该就是比特币。

关注我,畅游web3世界

下期预告 – 比特币的前世今生

阅读资料

  • 维基百科 – 区块链
  • 百度百科 – 区块链
  • 百度百科 – 散列值