关于比特币和区块链,你所知道的都对吗?

比特币是世界上第一个通过密码学,而非中央银行发行的电子加密货币。而区

块链是比特币使用的一种特殊的数据库,是比特币存在的基础。任何人都可以

架设服务器,加入区块链网络,成为一个节点。本文主要作为一篇普及贴,简

单的来探讨一下技术原理。 

区块链大火,让我等吃瓜群众猝不及防。虽然网上文章铺天盖地,比如:“一图

看懂”系列,但仍然鸡同鸭讲,莫衷一是,并不知其所以然,顶多知道是个同步

账本。

作为一篇学习总结,我希(尽)望(力)本文能作为一篇普及贴,也能让其他人

看懂。所以这里不会深入探讨技术原理,大佬们请绕过。

比特币是世界上第一个通过密码学,而非中央银行发行的电子加密货币。因为其

发行总量固定,无中央银行干预,让许多”民主人士“认为这是极为先进的民主

思想技术革命。

然而去中心化的系统带来了一些新问题:

没有政府背书和资产担保,货币信任、交易真实性成了问题。

每个人都有权了解这个世界在发生什么,信息一旦变化,所有数据库需

要同步更新,平等对称。

没有集中决策,为了信息对称,如何达成共识,变成了难题。

大问题“交易信任”、“数据对称”、“共识达成”。

解决办法“非对称加密”、“P2P网络”、“共识机制”。

中本聪用以上三种方法,构架出了区块链技术结构,让比特币的发行流通构想得

以实现。

诞生于2008年的一篇论文《A Peer-to-Peer Electronic

Cash System》并规定了一些基础协议:

图:比特币协议特点

比特币总量为2100万枚;

平均10分钟诞生一个区块;

被写入区块的交易按照手续费高低排优先级;

区块的大小只有 1MB,一笔交易大概是500字节左右,因此一个区块

最多只能包含2000多笔交易;

挖到新区块的矿工将获得奖励,一开始(2008年)是50个比特币,然

后每4年减半,目前(2018年)是12.5个比特币;

一笔交易确认需要等待6个区块。

比特币网络每10分钟,最多只能处理2000多笔交易,换算一下,就是处理速度为3

~7笔/秒。

也就是说,比特币区块链每秒最多只能处理7笔交易,要是交易数据再大点,可能

连7笔都达不到。而支付宝一秒处理12万笔交易,这本应在1秒处理的12万笔交

易,比特币需要10小时。

每4年奖励减半,那么到了2140年,矿工将得不到任何奖励,比特币的数量也将停

止增加。这时,矿工的收益就完全依靠交易手续费了。

这些数据是怎么确定的,众说纷纭。比如:一个区块链的大小是1MB,中本聪在设

计之初也并未预料到会发展到今天的规模,其本身是一个构想的实验。很多数据

并未验证,甚至可以说是拍脑袋定的。

比特币的基础是加密学,如果不知道一笔钱从哪来,是谁的,谁敢拿它当货币

呢?非对称加密从技术上解决了可信性问题,这也是这一类数字凭证被称为”加

密货币”的原因。

所谓非对称加密,其实很简单——加密和解密需要一把公钥和一把私钥。

交易的第一件事就是你必须拥有自己的公钥和私钥(任何交易所开户或钱包类网

站都会给)。

(1)FROM(谁发送的,包括两部分):

1. Previous tx:这笔钱的来源账单的id, 验证资金来源;

2. scriptSig:这笔交易的签名,就是把交易用私钥做hash。

(2)TO(谁接受,包括两部分):

1. Value:要发多少;

2. scriptPubKey:支付方的公钥,也就是比特币地址。

对于比特币,钱不是支付给个人的,而是支付给某一个地址,没有人知道,那些

私钥和地址背后的主人是谁——匿名性。

是比特币使用的一种特殊的数据库,是比特币存在的基

础。任何人都可以架设服务器,加入区块链网络,成为一个节点。

图:区块链结构示意图

区块链由一个个区块(block)组成,区块很像数据库的记录,每次写入数据,就

是创建一个区块。每个区块包含两个部分:

其中包含:

1. 生成时间;

2. 上一个区块的 Hash;

3. 区块体的Hash。

其中比较重要的概念是“Hash”,所谓 Hash 是对任意内容,计算出一个长度相

同的特征值。而且保证,只要原始内容不同,对应的 Hash 一定是不同的,比特

币区块用的SHA256加密算法。

1. 每个区块的 Hash 都是不一样的,通过 Hash 标识区块。

2. 如果区块的内容变了,它的 Hash 一定会改变。

图:区块结构示意图

把网络上待确认的交易写入新区块,并获得比特币奖励的过

程。

“矿工”是用GPU等硬件设备进行数据计算的一群人,正是这群人,把交易者的数

据一笔一笔记入帐中。“挖矿”的机器叫“矿机”;成规模“挖矿”的场地

叫“矿厂”。

回顾挖矿历史,比特币挖矿总共经历了以下五个时代:

图:矿厂

“挖矿”道理其实很简单,想要挖到新区块必算出符合要求的哈希值。你可能会

有一个疑问,计算一个哈希值为什么这么难?

你可能感兴趣的:(关于比特币和区块链,你所知道的都对吗?)