输入脚本和输出脚本
输入脚本(BitCoin Script)
所谓校验,就是当前输入脚本和比特币来源的输出脚本拼接后是否能够给顺利执行。如果能够顺利执行才能够说明交易有效。
输出脚本
实际中每一个区块包含许多笔交易,这些交易就组织成 Merkle Tree,
区块头和区块体
每一区块分为区块头和区块体两个部分。
区块头
区块头中包含比特币宏观信息,例如使用比特币哪一个版本的协议
- Version
- PrevHash
- MerkleRoot
- target
- nonce
Version 表示版本号,PrevHash 保存指向前一个区块的 hash 值,MerkleRoot 是表示交易的MerkleTree 的根节点。其实 target 和 nonce 是挖矿相关的,target 表示挖矿难度值而 nonce 需要计算的随机数值。取 hash 只取区块头的数据。
全节点(full node)和轻节点(light node)
全节点也称为 fully validating node,一般来说轻节点无法独立验证交易合法性。只有全节点才参与区块链的构造和维护,轻节点利用区块链信息进行一些查询的操作。以上我们已经介绍区块链中都包含了哪些内容。接下来我们就开始研究这些内容是如何写入到区块链中。
区块链就是一个账本,这个账本由比特币网络所有节点共同维护,如何保证所有节点都拥有同样的样本,也就是样本一致性势必是一个我们要解决问题。要解决这个问题将要账本内容要取得分布式的共识。
有疑问加站长微信联系(非本文作者)