区块、链
最后更新于
这有帮助吗?
最后更新于
这有帮助吗?
Hash也称散列、哈希。基本原理就是把任意长度的输入,通过Hash算法变成固定长度的输出(更多解释见)
特点是:相同的输入一定得到相同的输出,不同的输入大概率得到不同的输出
举例:用shell命令行下的md5sum
来计算任意的字符的MD5哈希
常见的hash算法:
文件防篡改:MD5
比特币挖矿:SHA256
证明数据片段:Merkle root
文本去重:SimHash
区块(block)由区块头(block header)和交易列表(transaction list,tx list)组成,block之间通过block header的hash连接成了一个链表结构。
当前我们只需要关注其中两个字段(其他字段会在后续课程中解释)
hashPrevBlock
/ParentHash
,上一个block header的hash
hashMerkleRoot
/TxHash
,tx list的hash
block body
block body就是tx list,block header通过TxHash
指向唯一的tx list
从tx hash list得到TxHash
的hash算法叫做默克尔树(Merkle tree),相比其他的hash算法有特殊的性质(可以简洁地证明tx存在其中)
block header通过ParentHash
指向唯一的上个block header,并最终形成一条链
高度为0的block称之为Genesis,即创世区块
比特币创世区块上记录的报纸头条文章标题
高度最高的block称之为Tip,即最新区块
TxHash
和ParentHash
相结合,赋予了区块链不可篡改的特性
比特币的block header()
以太坊的block header()
写死在程序里()
也可以在上看到比特币的创世区块,以及中本聪留下的那句话
可以在上观察以太坊链的情况