区块链学习(6)区块链
写了几篇区块链的学习笔记,今天来写写比特币中的区块链。比特币中区块链是由包含交易信息的区块从后向前有序链接起来的数据结构。每个区块从后向前有序地链接在这个链条里,每个区块都指向前一个区块。 区块结构 区块是一种数据结构,存放了多组交易,并且块与块之间相互连接,每个块都指向前一个区块。为了提高性能,一组交易确认打包成块,下面就是区块的结构 区块头中由版本,父区块哈希值,Merkle根,时间戳,难度目标,Nonce。Nonce、难度目标和时间戳会用于挖矿过程。 每个区块通过SHA256算法对区块头进行二次哈希计算而得到一个哈希值叫做区块哈希值,不过只有区块头进行了哈希计算。区块哈希值可以唯一的表示一个区块。还可以用区块高度表示区块,第一个区块高度为0,第二个区块为1,之后的区块依次增加。但区块高度并不能唯一的表示一个区块,若区块链出现分叉就有可能出现两个区块的高度相同。而一个区块中的区块头内储存着它上一个区块的哈希值的引用,而上一个区块的区块头内又有再上一个的区块的哈希值的引用。这样就将各区块组成了区块链。 该区块中的所有交易都是用Merkle树表示的,在区块头中就储存了Merkle树的根。关于Merkle树这个博客讲的是相当详细https://blog.csdn.net/wo541075754/article/details/54632929 有兴趣的可以去看看。 Merkle树