【9.比特币网络&10.区块和链】

本文详细介绍了比特币网络的两种架构(C-S与P2P),节点的不同角色(包括全节点、SPV节点和独立挖矿节点),以及通信过程、节点加入退出机制、SPV节点的交易验证方法,特别是布隆过滤器在保护隐私和验证交易中的应用。
摘要由CSDN通过智能技术生成

9.比特币网络

网络模型

两种网络架构

  • C-S架构:由终端用户发起请求,服务端进行处理各个请求。(目前大多数产品的架构,如:微信)
  • P2P架构:同一网络中的每台计算机都彼此对等,各个节点共同提供网络服务,不存在任何“特殊”
    节点。(如:迅雷)

节点的功能

节点的功能:钱包,挖矿,保存完整区块链,路由。
在这里插入图片描述

全节点

在这里插入图片描述

Bitcoin Core 全节点

在这里插入图片描述

SPV(Simplified Payment Verification) 钱包节点

又叫做轻节点,没有完整的区块链信息,需要通过向全节点去请求必要的交易数据。
在这里插入图片描述

独立挖矿节点

主要是挖矿,收集交易,制作区块头,获得出块奖励和手续费
在这里插入图片描述

通信过程

节点加入

客户端会维持一个列表,列出长期稳定运行的节点,称为“种子节点”。
注意:不一定会直接连到种子节点,但是通过种子节点,能快速发现网络中的其他节点。

  1. 发现其中一个节点进行连接,TCP,8333
  2. 发送包含基本认证内容的version信息
  3. 返回verack,确认连接
  4. 回传version信息
  5. 地址广播
    在这里插入图片描述

节点退出

在线节点必须定时进行两项工作!
➢ 新节点加入时“引荐”工作
➢ 定时发送信息,90分钟内无通信信息,认为已经断开连接。(心跳)

交换库存清单

在这里插入图片描述

SPV节点验证交易

在这里插入图片描述

SPV节点的逻辑

1、由于物理载体限制(存储空间等),只能保存区块头(仅有全节点
的1/1000)
2、同时SPV节点要维护该节点的钱包管理的地址(和余额)
3、所以需要委托对等节点将钱包相关地址的交易转发过来(并附带相应的merkle路径)
4、同时,SPV节点又不想暴露钱包管理的地址
在这里插入图片描述

布隆过滤器

利用了M个HASH函数和N位图法。
在这里插入图片描述
查询时,如果某个hash值的映射为0。则该地址不在为的集合内。
若全部为1,则大概率在集合内。概率和哈希函数的数量和位图的长度有关。

优势

对于SPV节点来说,保护了用户隐私(不需要存储元素本身)
可以承受一些误报时,布隆过滤器比其他表示集合的数据结构有更大的空间优势。
添加和查询的时间复杂度为O(M),与元素多少无关

10.区块和链

基本概念

区块是一种被包含在公开账簿(区块链)里的聚合了交易信息的容器数据结构。
Block = Block Header + Transactions
每个交易至少250字节,平均每个区块包含超过500个交易。

SizeFieldDescription
4bytes区块大小
80bytes区块头大小
1-9bytes交易数量
Variable交易集
在这里插入图片描述

区块高度不能唯一地标识某一区块,因为需要考虑"区块链分叉"情况。

概念解析(merkle树)

Merkle树树一种哈希二叉树,它是一种用作快速归纳和校验大规模数据完整性的数据结构。
在这里插入图片描述
当仅有奇数个交易时,把最后的交易复制一份以构成偶数个叶子节点,这种偶数个叶子节点的树也被称为平衡树。

区块链如何验证交易K是否存在,请证明方提供各个相关联节点的hash,通过计算根hash是否一致来证明交易K是否存在。
在这里插入图片描述
一个SPV节点对它钱包中某个比特币地址即将收到的付款感兴趣时:
1、在节点间的通信链接上建立bloom过滤器,接收感兴趣的交易
2、对符合要求的交易,以merkleblock消息的形式发送该区块
3、SPV节点使用merkle路径找到该交易相关的区块,从而进行验证
4、SPV节点同时也使用区块头去关联区块和区块链中的其余区块(证明交易存
在于区块链)
总而言之,SPV节点会收到少于1KB的有关区块头和merkle路径的数据,其数据量约为一个完整区块的千分之一。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值