What is a block? 什么是区块,如何形成链?

1. 什么是区块链

从狭义的层面来理解区块链,即由一个个区块链接起来形成的区块链。

1.1 什么是区块

每个区块都包含区块头和交易列表。

1.1.1区块头

(1)上个区块的哈希值:每个区块的哈希值是根据当前区块所包含的交易信息和其他信息计算出来的唯一值;区块所包含的任何信息的变动都会导致哈希值发生改变。

(2)时间戳:当前区块的生成时间。同时也用于计算每个区块的生成时间有多接近比特币协议规定的区块生成时间10分钟。

(3)难度目标:生成新区块时需要满足的哈希值条件,即下个区块生成的哈希值难度。

1.1.2 交易列表

(1)输入:上笔交易的输出(实际上所有输入的BTC是被销毁的,输出是上笔交易新生成的比特的归属,故,一旦交易成功,则不可逆)。

(2)输出:新比特币的归属(即本次比特币的实际输出数量和对象)

(3)数字签名:私钥签名,签名的过程是对交易数据进行哈希计算,并用私钥加密哈希值,使交易在传输过程中不被篡改。矿工负责用对应的公钥对交易的合法性进行验证。

(4)其他相关信息

1.2 如何形成链

    以比特币为例。区块头不仅记录当前区块的生成时间,还具备承上启下作用。承上是指当前区块的区块头包含上个区块的哈希值,使二者紧密相连,不可分割。启下则体现在为下个区块提供难度目标,以确保新区块出块时间无限趋近10分钟,使新区块能持续生成,区块链得以延长。

1.3 区块链的特点

(1)不可篡改:所有交易一旦上链就会被哈希值锁定,无法篡改。由于哈希值的唯一性,任何人想要篡改其中一笔交易,需要改变这笔交易之后的所有哈希值,这从技术上几乎无法实现。

1.4 区块链重要技术实现

(1)UTXO模型

每笔交易销毁旧UTXO并生成新UTXO,即每笔交易输入的BTC全部被销毁,重新生成输出的BTC。同时,交易有效性验证需检查输入UTXO是否未被花费且签名有效。

模型优势:同一次交易操作可并行发给多个地址。

模型缺陷:如果发送人没有把找零的BTC发给自己,会导致资产丢失。

(2)SHA-256

输入任意长度数据 → 输出固定长度(256位)哈希值,哈希计算不可逆,即无法通过哈希值推算出加密内容。哈希函数为数据生成唯一的“数字指纹”,确保数据的不可篡改性。,每个区块头通过双重SHA-256计算生成唯一哈希,形成区块链的链式结构。

(3)其他

脚本语言(Script)、Merkle树等。