比特币现在多少,比特币现在的数据存储量

  

  作者|李三   

  

  比特币从诞生之日起就被诟病浪费电力资源,但其强大的计算能力是必经的过程,很难找到更好的方式来替代。   

  

  由于它已经存在了很长时间,越来越多的人参与其底层技术区块链的交易,分布式账簿的内容正在迅速扩展。中本聪设定的块中1 MB的存储容量限制了事务处理过程和事务处理速度。   

  

  比如目前比特币主链的块数据高达200 G以上,对于普通用户来说太大了。所以,下载整个账本就成了一件很头疼的事情。能不能不下载整个账本,只找和自己有关的部分?换句话说,找个滤镜,把没用的都留在外面。   

  

  于是出现了SPV机制。   

  

  01 SPV 机制   

  

  SPV代表“简化支付验证”,通常翻译为简单的支付验证。其目的是验证交易是否存在,但不能验证交易的合法性。这需要两步。第一步是确认交易支付是否已经验证,第二步是计算确认的次数。   

  

  中本聪在他的论文中提到了这个概念:   

  

  仍然可以在不运行所有节点的情况下验证事务。用户只需要将所有的块头数据保存在最长的链上。   

  

  简单来说,就是:   

  

  如果小黑给大白转了一个比特币,大白怎么知道交易已经完成?在一个分散的系统中是不可能找到目击者的。   

  

  按照传统方法,大白需要把区块链的书全部下载下来,然后找到小黑的账号,先查一下之前有没有这个比特币,有没有给大白转账的记录。只是第一步,就让大白的储物能力爆炸了。   

  

  每个比特币的块容量是1 MB,块头只有80 KB,你只要下载块头就可以节省很多空间。   

  

  到底什么是块头和块体?   

  

  把一个块的头比作一个人的头,里面存储着块的头信息,比如哈希值,时间戳等。Block类似于整个人体,存储这个block的详细数据,比如具体的交易信息。块头包含在块体中。   

  

  也就是说,一个块头虽然有hash值,但是下载了块头之后,大白还是无法知道交易记录在哪个块里。这时候你就需要拿着事务ID去找整个节点检查有没有,在哪个块。   

  

  哎,02 SPV 的支付验证过程,如果矿工和小黑联合起来骗大白怎么办?   

  

  这就是SPV机制派上用场的时候。   

  

  如果矿工说小黑转身了,但他没有。那么为了撒谎,他必须伪造更多的交易,这样这些交易才能得到和自己的块头一样的哈希值。但是,由于哈希的技术特性,改变后的数据很难获得与原始数据相同的哈希值。   

  

  总之,SPV的整个交易流程如下:   

  

  第一步,确认交易支付是否已经验证。   

  

  首先计算待验证支付的交易哈希值,从区块链网络本地保存块头,然后从区块链获取待验证支付对应的Merkel树哈希认证路径。   

  

  得到的哈希值是否与自己的一致,如果一致,则证明支付是真实有效的。   

  

  第二步是验证获得了多少确认。根据块头的位置,已经确定了付款的确认数。   

  

  完成这两步后,交易支付验证就完成了。   

  

  03 小结SPV机制不仅节省了存储空间,减少了P2P网络带宽的浪费,使普通用户无需下载完整数据即可操作,而且给查账带来了极大的便利。   

  

  但是,由于SPV没有完整的块数据,因此无法验证该事务不存在。这种情况很容易导致双花,随机的链接节点也可能被网络恶意攻击。   

  

  你认为SPV有什么优点和缺点吗?   

相关文章