SPV的技术原理
在区块链中,区块信息主要包括区块大小、区块头、交易数量和交易信息四部分内容。
区块头大小为固定字节,比如比特币中区块头的大小始终为80字节。区块头中一般包括如下信息:前一区块(也称父区块)的哈希值、区块中交易默克尔树的根哈希值、时间戳等。以比特币为例,其区块头的通过区块的哈希值,可以识别出区块链中的对应区块。区块前后有序链接,每一个区块都可以通过其区块头的“前一区块的哈希值”字段引用前一区块。这样把每个区块均链接到各自前一区块的哈希值序列就创建了一条一直可以追溯到第一个区块(创世区块)的链条。前一区块的哈希值,可以确保区块链所记录的交易次序。默克尔树的根哈希值则可以确保收录到区块中的所有交易的真实性。
区块链节点利用SPV对支付进行验证的工作原理如下:
①计算待验证支付的交易哈希值;
②节点从区块链网络上获取并存储最长链的所有区块头至本地;
③节点从区块链获取待验证支付对应的默克尔树哈希认证路径;
④根据哈希认证路径,计算默克尔树的根哈希值,将计算结果与本地区块头中的默克尔树的根哈希值进行比较,定位到包含待验证支付的区块;
⑤验证该区块的区块头是否已经包含在已知最长链中,如果包含则证明支付真实有效;
⑥根据该区块头所处的位置,确定该支付已经得到的确认数量。
网友评论