UTXO池:区块链中所有未支付交易输出的集合
警告消息:警告通过公钥加密签名,对应私钥由核心开发团队所有。
alertnotify命令。
第七章区块链
识别区块:对每个区块头进行SHA256加密哈希,可生成一个哈希值;每一个区块都可以通过其区块头的“父区块哈希值”字段引用前一区块(父区块)。
父区块哈希值与子区块身份标识之间的对应,这种瀑布效应保证区块不会改变,除非强制重新计算该区块所有后续区块,重新计算需要耗费巨大的计算量,所以一个长区块链的存在可以让区块链的历史不可改变。
区块结构:区块头+区块主体(一长串交易)
区块头:
三组区块元数据:1. 父区块哈希值
2. 难度、时间戳、nonce
3. merkle树根
区块标识符:区块头哈希值和区块高度。存储在一个索引数据库表中以便快速检索。
创世区块:每一个节点都“知道”创世区块的哈希值、结构、被创建的时间和里面的一个交易。
0000000000 19d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f
Merkle树:被用来归纳一个区块中的所有交易,同时生成整个交易集合的数字指纹,且提供了一种校验区块是否存在某交易的高效途径。double-SHA256。
HA = SHA256(SHA256(交易Tx A))
Merkle根,产生的32字节哈希值存储在区块头,同时归纳了所有交易的所有数据。成百上千的交易被归纳为一个仅仅32字节的数据作为Merkle根。
证明区块中存在某个特定的交易,一个节点只需要计算log2N个32字节的哈希值,高
效地产生一条10或者12个哈希值(320-384字节)的路径,来证明在一个巨量字节大小的区块中上千交易中的某笔交易的存在。
形成一条从特定交易到树根的认证路径或者Merkle路径,在计算相对应的哈希值和Merkle根即可。Merkle路径H L、H IJ、H MNOP、H ABCDEFGHIJKLMNOP。
一个节点能够仅下载区块头(80字节/区块),然后通过从一个满节点回溯一条小的Merkle路径就能认证一笔交易的存在(bloom过滤器,Merkleblock消息(包含区块头和Merkle 路径),交易于区块的关联,区块与区块链的关联),而不需要存储或者传输大量区块链中大多数内容,证明交易存在于区块链。

