区域链是一个设计精妙的伟大发明,主要是体现在几点:
- 解决了拜占庭将军问题
- 利用了点对点通信问题
- 区域链是一个“资产账本”
- 密码学的新成就来保证真实、一致和安全
解决了拜占庭将军问题
拜占庭将军问题
又称之为两军问题
,故事来由:
- 几个攻城的联盟将军,通过信使来传递信息
- 将军们思考的问题:如何防止被其中的叛徒欺骗、迷惑而做出错误的决策?
- 解决方法:将军们接到上一位将军的信息之后,加上自己的签名再传给
除发给自己信息之外的其他将军
区域链正是基于上面的算法设计的。它构建在点对点通信网络
P2P
上,用非对称加密算法和时间戳来实现将军们的“签名转发”机制。
- 用纯数学的方法来建立各方信任关系
- 不需要借助于第三方即可实现双方的交易
点对点通信网络
点对点通信
P2P
是一种对等网络,常用的计算机网络通信架构,主要特点是:
- 成千山万的服务器处于对等的地位
- 通过节点直接相连,节点可以自由进入和退出
- 整个网络不依赖专用的集中服务器
区域链是一个分布式系统,没有中心枢纽,即所谓的“去中心化系统”
区域链是一个“资产账本”
区域链是由区块 链
组成的。
区块 Block:在区域链中,交易记录是以电子化的形式存储下来的,存储数据单元称之为区块Block
。区块是按照顺序排列的,每隔一定时间生成一个区块。
区块结构Block Structure
:区域链的区块结构设计可能不完全相同,结构包含头Header
和Body
- 区块头:
- 包含区块的关键信息,最重要的是哈希值(
Hash
散列值),用于和上一个区块连接起来 - 记录区块的高度 - 本区块的生成时间、交易数量、总交易金额等- 区块体:记录完整的区块创建过程中所发生的所有交易的记录
- 区块文件目录
- 区块结构:分布式账本系统,每一笔交易数据都被记录下来
- 交易结构:交易结构中记录了交易时间、引用交易的哈希值、支出数量等各种具体信息
密码学来保证安全、真实和一致
区块按照时间顺序链接形成了区域链。中本聪采用了加密和数字签名
来保证数据一致性、完整性和安全性。
- SHA-256哈希算法(散列算法)
- 哈希算法:将任意长度的一串数据转化成一个长度较短、位数固定的输出值,即哈希值
- 特点:
- 哈希值是唯一的
- 具有不可逆性
- 算法保证相同的数据产生相同的哈希值
- 用途:快速查找和加密
一串数据的哈希值可以用来检验数据的完整性
- 非对称加密算法
- 加密过程中使用一个“密钥对”中的两个密钥,非对称密钥满足的条件:
- 对其中一个加密后,只有用另一个密钥才能解开
- 一个密钥公开后,根据公开的密钥,别人也无法算出另一个密钥
- 公钥:公开的密钥,全网可见的。所有的人都可以用公钥来加密一段信息
- 私钥:不公开的密钥,只有信息拥有者才知道,被公钥加密后的信息只有用私钥才可以打开
- 常用非对称的加密算法:
RSA
Elgamal
ECC
,椭圆曲线加密算法- DSA
比特币是基于椭圆曲线数字加密算法ECDSA实现的
- 加密过程中使用一个“密钥对”中的两个密钥,非对称密钥满足的条件: