一、区块链基本概念
(一)区块链定义
区块链(Blockchain)是指通过去中心化和去信任的方式集体维护一个可靠数据库的技术方案。通俗一点说,区块链技术就指一种全民参与记账的方式,是一种防篡改、共享的、可追溯的分布式账本技术。
(二)区块链的组成
区块链是由一系列区块组成的,每个区块由区块头和区块体组成。区块头存储结构化的数据,大小是80字节;而区块体利用一种神奇的树状结构,记录区块挖出的这段时间里所有交易信息,所需空间比较大。所有的区块根据散列值形成一条链状结构,这些区块一起就构成了区块链的分布式账本。每个区块都包含了前一个区块的哈希值,这样就形成了一个不可篡改的数据结构。
(三)区块头的主要包含内容
区块头主要包含:前一区块哈希值、版本,时间戳、计算难度,Merkle 根
前一区块哈希值用于链接上一个区块;版本相当于区块的编号;
时间戳用来记录该区块生成的时间;计算难度是该算术题的难度系数打分;
Merkle 根是一个哈希值,它是由该区块中所有交易数据计算得出的
-
区块链的好处:去中心化、开放性、信任独立性、安全性、匿名性、
-
区块链的结构 :链表式结构,各区块通过哈希指针链接在一起。
二、区块链技术原理
(一)区块链的关键技术
密码学,用于保证数据 的完整性和安全性;
共识算法,用于解决分布式系统中节点之间的信任问题;
博弈论,用于分析节点之间的利益关系;
P2P,点对点网络,用于实现去中心化的数据存储和传输。
(二)密码学
密码学:区块链又被成为哈希链,其实整个区块链的机制和运行都是基于密码学为基本架构的,即保证了数据的安全性,又构建了区块链不可篡改的特性。区块链底层的数据构架则是由区块链密码学来决定的,打包好的数据块,会通过密码学中的哈希函数处理成一个链式的结构,后一个区块包含前一个区块的哈希值。
(三)哈希算法
定义:哈希算法是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。
特点:正向计算容易、不可逆性、抗碰撞性、不可篡改
- 正向计算容易:对于任意长度的输入,都可以很容易地计算出对应的哈希值;
- 不可逆性:已知哈希值,无法推出原始数据。也就是说,哈希值不包含原始数据的任何信息,因此无法通过哈希值来确定原始数据;
- 抗碰撞性:对于不同的输入,其哈希值相同的概率非常小。这意味着,如果两个不同的输入产生了相同的哈希值,那么这就是一次碰撞,这种情况在理论上是存在的,但在实际应用中非常罕见
- 不可篡改:在区块链网络中,数据一旦上链就不可篡改,且可追溯,另外你的账户也会通过非对称加密的方式进行加密,进而保证了数据的安全,验证了数据的归属。
(四)共识机制
共识机制:在对等网络中,由于可能出现网络时延较大的情况,交易发生的先后顺序在不同的节点中可能会不一样。所以,有必要在区块链系统中创建一种能够让在极短的时间间隔内发生的交易的先后顺序达成一致,这种算法就叫做“共识机制”。
(五)P2P网络
P2P网络:P2P(peer-to-peer)网络也叫做点对点网络,这是一种没有中央服务器的Internet 系统,完全由用户群来实现信息的交换。点对点网络中的每个用户都是一个客户机,同时也具有服务器功能。区块链和P2P 都是以去中心化为出发点的,两者的契合度很高,因此区块链系统会选择将P2P 作为它的组网模型。这就意味着整个区块链电子现金系统的运行不再依赖任何第三方中介就可以自行完成。P2P 网络的优点是整个网络是平等的,没有特殊的节点。
(六)博弈论
博弈论:区块链中的博弈论主要应用在共识机制上,共识机制是指在区块链网络中,所有节点达成一致的规则和算法。博弈论是研究多个个体之间的收益与奖励,以及如何使用它们来分析一次性和持续性游戏中的激励因素。区块链中的共识机制就是一个典型的博弈过程,每个节点都是一个参与者,每个参与者都有自己的利益和目标,而这些目标和利益之间存在着矛盾和冲突,但又必须合作共赢。因此,区块链中的共识机制需要通过博弈论来分析和设计