(本文大部分内容来源于此链接的文章,我对部分内容做了一些改动,方便自己日后复习,若有侵权,请联系我,我会将此文删除,谢谢)
区块链是一种新型的去中心化协议,能安全地存储比特币交易或其他数据,内部的数据几乎不可伪造或篡改,维护区块链无需任何中心化机构的审核。区块链解决了拜占庭将军问题,大大降低了现实经济的信任成本与会计成本。
1 什么是区块链
区块链是由节点参与维护的分布式数据库系统,特点是难以更改,难以伪造。完整比特币的副本中,记录了其代币(token)的每一笔交易。
区块链是一串使用密码学方法产生的区块组成的,任一个区块都包含了上一个区块的哈希值,从创世区块连接到当前区块,形成一条链。每个区块都确保按时间顺序在上一个区块之后产生。这些特征使得双花问题非常困难。
节点始终将最长的链视为正确链,并持续工作和延长它。若有两个节点同时广播不同版本的新区块,那么其他节点在接收到该区块的时间上将存在先后差别。这时,各个节点将在率先收到的区块的基础上进行工作,也保留另外一条链,以防后者变为最长链。这种僵局的打破要等到下一个工作量证明被发现,而其中的一条链被证实为是较长的一条,那么在另一支分支链上工作的节点将转换到较长的链上工作。
比特币钱包的功能依赖于对区块的确认,一次有效检验称为一次确认,通常一次交易要获得数个确认才能进行。轻量级比特币钱包的客户端在本地只需存储与用户可支配交易相关的数据,并不会存储完整的区块链。
2 区块链的核心优势
区块链体系结构的核心优势包括:
- 区块链中的任意节点都可以创建交易,在经过一段时间的确认之后,就可以合理的确认交易是否有效。区块链可有效地防止双花问题的发生。
- 试图重写或修改交易记录的成本极高
- 区块链实现了两种记录:交易以及区块。交易是被存储在区块链上的实际数据;区块是记录确认某些交易是在何时、以何种顺序成为区块链数据库的一部分;交易是由参与者在正常过程中使用系统创建的(在加密数字货币,一笔交易是由XX将代币发送给XX时创建的),区块是旷工在挖矿时创建的。
3 区块链工作原理
3.1 什么是区块
交易数据存储在区块中,被永久记录在区块链上。可把区块链比作账本,每一个区块比作账本的一页,数据难以篡改,难以伪造,难以移除。
3.2 区块结构
字段 | 描述 | 大小 |
---|---|---|
区块大小 | 用字节表示的该字段之后的区块大小 | 4字节 |
区块头 | 组成区块头的几个字段 | 80字节 |
交易计数器 | 交易的数量 | 1-9(可变整数)字节 |
交易 | 记录在区块里的交易信息 | 可变的 |
3.3 区块头
区块头由三组区块元数据组成:1.引用父区块哈希值的数据,这组元数据用于将该区块与前一区块相连接;2.难度、时间戳和nonce,这组数据与挖矿有关;3.Merkle树根,Merkle树是一种用来有效地总结区块中所有交易的数据结构。
3.4 区块头结构
字段 | 描述 | 大小 |
---|---|---|
版本 | 版本号,用于跟踪软件或协议的更新 | 4字节 |
父区块哈希值 | 引用父区块的哈希值 | 32字节 |
Merkle根 | 区块中交易的Merkle树根的哈希值 | 32字节 |
时间戳 | 该区块产生的近似时间(精确到秒的Unix时间戳) | 4字节 |
难度目标 | 该区块工作量证明算法的难度目标 | 4字节 |
Nonce | 用于工作量证明算法的计数器 | 4字节 |
3.5 创世区块
比特币的首个区块创建于2009年,这个区块被称为创世区块。从任意区块回溯,都可以回溯到创世区块。
创世区块的哈希值为:000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f
4 区块链分叉
诚实矿工只创建最长有效链上的最新区块,这里的最长是指区块链的累计计算难度,而不是区块数目。当包括在链中的所有区块以及交易都有效,且是从创世区块开始的链,才是被承认的有效区块链。
区块链中的任一个区块到达创世块的路径只有一条。但是在区块链中会有分叉的情况出现:当有两个矿工挖出的区块的时间差只有几秒时,经常会创建出一个分叉区块。这时,每个节点会各自在最先接收到的那个区块之后继续创建新的区块。短链(无效链)中的区块没什么用。当比特币客户端切换至另外一条更长的区块链时,短链中的所有交易都将被重新添加到序列交易池中。短链中的区块奖励不会呈现在最长的区块链。
短链中的区块被称为孤儿块。
5 区块链的其他概念
5.1 公有链
公有链是指全世界任何人都能读取、发送交易且能得到有效确认的区块链。公有链的安全由工作量证明机制或权益证明机制等方式负责维护。是完全去中心化的区块链。
特点:
- 中立、开放、去中心化
- 不可更改、不可撤销
5.2 联盟链
联盟链是指其共识过程收到预选节点控制的区块链。如,由15个金融机构组成一个共同体,每个机构都运行一个节点,且为了使每个区块生效需要获得其中10个机构的确认。是部分去中心化的区块链。
5.3 私有链
私有链是指写入权限仅在一个组织手里的区块链。读取权限要么对外开放,要么被任意程度地进行了限制。相关的应用包括数据库管理、审计等。通常,公共的可读性并非必须。是中心化的区块链。
特点:
- 规则易于修改
- 交易成本低(交易只需几个受信节点验证即可)
- 读取权限受限
(本文大部分内容来源于此链接的文章,我对部分内容做了一些改动,方便自己日后复习,若有侵权,请联系我,我会将此文删除,谢谢)