首先,区块里有个区块头和一个区块体;
其次,区块体里除了一个标识该区块有多少笔交易的“交易数量”字段,其余的就是一笔一笔的交易了;
然后,每笔交易都是由输入和输出组成,除了“版本号”、“锁定时间”、“输入数量”、“输出数量”几个字段,剩下的就是每个输入和输出的详情;
最后,在每个输入里,都有一个解锁脚本,解锁脚本里有一个数字签名和一个公钥。
这个解锁脚本有一个很重要的作用,就是用来做见证:比特币节点们用此来验证这笔交易是否发起人发起。
隔离见证,顾名思义,就是通过把见证相关的部分,也就是解锁脚本隔离出去,来减小每笔交易的大小,从而让1M大的区块能容纳更多的交易。
一个区块里有这么多东西,光把见证部分移出去,能省很多空间吗?我们不妨找个具体的交易来看看。如图:
这笔交易的长度(红框)为666字节。然后,点开右下角(红圆)的脚本,看到了输入脚本和输出脚本的详情。如图:
我们来看看输入脚本有多长?其实不用一个个去数,在它前面有一条指令:PUSHDATA(71),这条指令的意思就是