比特币原理 区块链

区块链是技术,比特币是应用,区块链的技术也可以使用在其他的领域,包括电力、银行、农业等。

什么是区块链?

首先引用一下人民日报对区块链的图文解释,这张图主要是从应用的角度来解释区块链,本篇更多的从技术角度透析区块链。

DB88D9BA-20D2-47FA-8A38-99404CBC6D19.png

什么是区块?

区块是按照一定数据结构组织的数据块。比特币的区块的结构如下:

BFC241E7-096D-4535-AD5B-CDDC48DAE184.png

这个数据对象和Java等面向对象开发语言中的类的定义类似。只是该类对象有一个特殊的id属性:Hash 。 这个属性的值是对该数据块使用哈希算法得到的摘要。而且该摘要值还有一个特性,就是满足前面位数的值是0。

区块的内容

区块里存储的是交易的数据,和HTML以及Email的格式类似,区块也分为区块头(header)和区块体(body)。
区块头存储区块链相关的元数据:
包括:

  1. 前一个区块的哈希值
  2. 区块的时间戳
  3. 随机数

区块体存储的就是比特币交易记录。

区块的大小

A向B转账,则产生一笔交易信息。一个区块包含多少交易数据呢?通常,一笔交易大概是500个字节,一个区块包含2000笔左右的交易数据,大概占有1M的存储空间。

区块与区块链

下一个节点通过存储上一个节点的指针,将区块链接起来,其特性有:
特性:

  1. 历史的区块无法改变
  2. 只能在旧区块后生成新区块

将多个区块有序的链接在一起,类似List的数据类型,从字面上来看将区块数据链接起来就是区块链,这个理解尚不能完全解释区块链技术的核心。这里忽略了一个重要的概念-节点。

节点

节点指的是区块链网络中的终端,包括计算机、手机、服务器以及矿机等。

区块链的理解

对区块链的理解要结合节点,也就是区块链是分布式存储系统,网络中的每个节点都存储了完整的数据。
在软件中常见的存储系统是:

  1. 简单应用,一个应用服务器,一个数据库服务器,数据存储在数据库中。
  2. 单个数据库安全性不高,容灾性差,于是使用冗余,使用多个数据库,每个数据库同步相同的数据。但是有数据同步和效率的问题。在数据库集群中,可以设置主从数据,在主数据库上管理集群。

区块是存储数据的空间,把很多节点使用链表连接起来,每个节点都保存全部数据,每个节点的地位都是一样的,没有中心。这样问题就来了:

  1. 每个节点保持相同的数据,是不是很浪费?
  2. 保持多个节点数据一致,写入效率应该很低。

区块链取中心化,结构图如下:

669C5CB6-7734-4279-9F87-01526EB02C62.png

比特币的分支

通过以上原理介绍,比特币是通过区块链技术将交易数据打包成块,再链接起来。对交易进行有效确认的记账人有机会获取比特币作为奖励。接下来就有一个问题?这个链上的数据可以人为的去控制吗?也就是这个链可以出现分叉和分支吗?实际上是可以的,自比特币诞生以来,产生了很多的分支,比如国内知名的BCH(比特币现金),而最纯正的比特币的简写是BTC。完整的分支图谱如下:

31BB8F15-D133-47F1-B5BC-D77104BABA68.png

国内,币圈的大佬有孙宇晨和吴忌寒,孙宇晨在2019高价拍下了与巴菲特的午餐, 也是在2019年,吴忌寒和詹克团爆出了对比特大陆的控制权之争。正式这个吴忌寒,发起了比特币现金(BCH)的分叉。

也有很多其他的人和组织出于巨额理论的趋势,分叉了BTC,比如比特币黄金、比特币上帝等,有的还存活着,有的已经消亡了,要注意区分,有的完全是垃圾。

引用 孙宇晨高价拍下与巴菲特的午餐

添加新评论