Mercle Tree:
mercle tree(计算机科学家 Ralph Merkle)提出,用于完整性的校验;
Git 版本控制系统,ZFS 文件系统以及我们自己下载电影常用的点对点网络 BT 下载,都是通过 Merkle Tree 来进行完整性校验的。
二叉树的形式,从叶子节点开始向上构建,使用双SHA256计算hash;
如果叶子是单数,则会复制最某位的那个,确保是双数;
好处:避免了对所有的交易来进行hash,可以单独拿分支来对部分数据进行校验,只需要分支就可以计算出root hash然后比较,最后还是落到了效率上。
不足:传统的merkle树的限制是,它们虽然可以证明包含此交易,但无法证明任何当前的状态,如bitcoin。因此,以太坊改进使用的是Merkle Patricia Tree (MPT) ,叫前缀树或者是字典树,具体有待学习。
----------------------------------------------------------------
比特币交易的构成:
要点:
(1)txid其实就是交易数据的hash,交易中tx_in中会包含输入使用的交易id,因此,不能有同样的交易id,如果在coinbase中构建了相同的交易的话,那么其实只能用其中一笔;
(2)sequence指代的是交易的版本号,用于在交易被写入block之前更改交易,另外lock_time指代锁定的交易的时间或者block数目,判断的界限是5×10的8次方。