区块链课件第四章 区块链网络层.pptx
《区块链课件第四章 区块链网络层.pptx》由会员分享,可在线阅读,更多相关《区块链课件第四章 区块链网络层.pptx(43页珍藏版)》请在文库网上搜索。
1、本章内容4.1 P2P网络4.2 比特币网络4.3 以太坊网络4.4 网络层安全1.中心化拓扑2.全分布式非结构化拓扑3.全分布式结构化拓扑4.半分布式拓扑0什么是P2P网络不同的定义Intel:通过系统间的直接交换达成计算机资源与信息的共享IBM:由若干互联协作的计算机构成并具备如下特性之一:系统依存于边缘化设备的主动协作;每个成员同时扮演客户端和服务器的角色;系统应用的用户能意识到彼此的存在而构成一个虚拟或真实的群体特点节点彼此对等,既作为服务和资源的提供者,又作为服务和资源的获取者1区块链依靠P2P网络可扩展性、健壮性P2P网络中的所有对等节点都可以提供带宽、存储空间以及计算能力等资源,
2、随着更多节点的加入,系统整体的资源和服务能力也在同步地得到扩充负载均衡P2P网络的资源分布在多个节点上,可以实现网络的负载均衡去中心化在区块链系统的P2P网络中,节点是信息的发送方和接收方,它们共同维护区块链2拓扑形式一中心化拓扑由一台中心索引服务器和多个客户端节点构成,并非纯粹的P2P网络中心索引服务器用于保存接入节点的地址信息,向其他节点提供地址索引服务特点实现了文件查询和文件传输的分离,且维护简单一旦中心索引服务器发生了故障,就会导致整个网络无法正常工作3拓扑形式二全分布式非结构化拓扑没有使用中心索引服务器,其节点拥有真正的对等关系洪泛(Flooding)数据广播,即节点会将接收到的消息
3、向邻居节点转发,直到所有节点都接收到了这个消息或消息传播的深度到达一定的限制特点可能会出现广播风暴实现快速的消息传播和资源查找4拓扑形式三全分布式结构化拓扑采用分布式散列表(Distributed Hash Tables,简称DHT)来实现整个网络的寻址和存储,从而结构化地址管理分布式散列表将存储着网络中所有资源信息的散列表划分成很多不连续的小块,分散地存储在多个节点上特点维护机制较为复杂良好的健壮性、可扩展性和动态适应性5拓扑形式四半分布式拓扑将网络中性能较高的机器作为超级节点,每个超级节点存储着系统中其他部分节点的文件信息,执行维护这些节点的地址、文件索引等工作超级节点之间形成一个高速的转
4、发层,并与接入的普通节点形成一个自治的簇,簇内采用中心拓扑的P2P网络特点消除了网络拥塞的隐患,并在性能和可扩展性上具有一定的优势对超级节点的依赖性较大6本章内容4.1 P2P网络4.2 比特币网络4.3 以太坊网络4.4 网络层安全1.节点类型及其功能2.扩展比特币网络3.比特币节点通信4.比特币中继网络7比特币网络基于全分布式非结构化拓扑网络中的节点彼此对等,不存在特权节点和索引服务器,通过共识机制使所有诚实的节点保存一致的区块链视图,从而实现去中心化控制协议比特币网络是依照比特币P2P协议运行的一系列节点的集合,其P2P协议建立在传输层的TCP协议之上,采用8333端口作为主网默认通信端
5、口比特币还运行着其他协议,如应用于矿池挖矿、轻量级或移动端比特币钱包中的Stratum协议。这些协议由网关路由服务器提供,通过比特币P2P协议接入到比特币网络,使得运行着扩展功能的网络节点连接到比特币主网络8节点类型依照节点保存区块数据内容和是否能独立完成交易验证划分全节点(Full Node)拥有完整的区块链数据,可以独立地进行区块和交易的验证轻节点(Lightweight Node)只保存区块链数据的部分信息(如:区块头),不能独立地进行区块和交易的验证。它通过简易支付验证(Simplified Payment Verification,简称SPV)方式向其他节点请求数据来完成支付验证9功
6、能类型依照节点承载的功能进行划分钱包(Wallet)可以支持比特币交易、查询等功能矿工(Miner)可以运行工作量证明算法来争夺创建新块的资格,从而赚取系统奖励的比特币以及交易手续费完整区块数据存储(Full Blockchain)存储着区块链的完整数据,可以独立地验证所有交易,不需要借助任何外来参考网络路由(Network Routing Node)连接着一定数量的节点,能帮助转发交易和区块数据,发现和维护节点间的连接10节点类型依照节点的功能进行划分核心客户端节点(Reference Client(Bitcoin Core)包含钱包、矿工、完整区块存储、网络路由四种功能全节点(Full B
7、lock Chain Node)拥有完整的区块链数据,具有网络路由功能独立矿工节点(Solo Miner)拥有完整区块链数据,具有路由功能和挖矿能力,能不依赖其他节点的算力单独进行挖矿轻量级钱包(Lightweight(SPV)Wallet)包含钱包与路由转发功能11扩展比特币网络包含比特币P2P协议、矿池挖矿协议、Stratum协议(矿机与矿池软件之间的通信协议)及其他连接比特币系统组件的相关协议的整体网络结构被称为扩展比特币网络常见的扩展节点有矿池协议服务器(Pool Protocol Server):常作为比特币网络与其他矿池挖矿节点的网关路由挖矿节点(Mining Node):一种轻量
8、级节点,包含挖矿功能,但不包含区块链数据,必须依赖矿池服务器维护的全节点进行工作,通常运行Stratum协议或其他矿池挖矿协议轻型Stratum协议钱包(Lightweight(SPV)Stratum Wallet):运行在Stratum协议下包含钱包功能的节点12比特币节点通信为了能够参与协同运作,节点需要发现网络中的其他节点并与它们建立通信连接新加入的节点通常采用下面两种方式进行节点发现使用“DNS种子”(DNS seeds)来查询DNS。比特币客户端会维护一个记录长期稳定运行节点的列表,这些节点也被称为种子节点,种子节点能提供比特币节点的IP地址列表。通过与种子节点进行连接,新节点可以快
9、速发现网络中的其他节点通过-seednode命令指定一个比特币节点的IP地址作为比特币种子节点。节点会和这个种子节点进行连接以发现新节点13节点握手节点发现之后,节点间进行“握手”连接实现信息的交换节点A先向节点B发送version信息,包括以下内容nVersion:客户端采用的比特币P2P协议版本nLocalServices:一组该节点支持的本地服务列表,当前仅支持NODE_NETWORKnTime:当前时间addrYou:当前节点可见的远程节点的IP地址(节点B的IP)addrMe:当前节点的IP地址(节点A的IP)subver:指示当前节点运行的软件类型的子版本号BestHeight:当
10、前节点区块链的区块高度(初始为0,即只包含创世区块)14地址传播和发现当节点A和节点B的握手连接建立之后,节点B可以转发节点A的地址,让新节点被更多节点接收,并进一步向节点A提供节点引荐节点A将一条包含自己IP地址的addr消息发送给节点B,节点B会将这条addr消息转发给节点B的相邻节点,使得节点A的信息会在网络中广播出去,被更多节点发现此外,节点A可以向节点B发送getaddr请求,要求节点B向其发送已知的其他节点的IP地址。通过这种方式,可以实现比特币地址的传播和发现15地址管理比特币节点使用tried和new列表管理网络中节点的IP地址tried列表包含了64个桶(bucket),每个
11、桶可以存储这个节点成功建立过入连接或出连接的64个不同的地址。tried列表还保存最近一次成功连接到该节点的时间戳。当插入节点信息时遇到桶已满的情况,如果节点地址已存在于桶中,可以直接更新时间戳;否则,会从桶中随机选出四个节点,其中最远一次与节点成功建立连接的节点将被替换为新节点的信息,并被插入到new列表中。new列表包含了256个桶,每个桶可以为节点保存64个尚未成功发起连接的节点地址。节点会利用从种子节点或从addr消息中学习的信息来填充new列表。如果遇到桶已满的情况,会遍历桶中的所有节点,将时间戳超过30天或多次尝试连接不成功的节点移出桶。16全节点区块同步一个全节点在连接到其他节点
12、以后,需要构建完整的区块链数据节点A先向节点B发送version信息,包括以下内容在初始握手的version消息中,由于包含了BestHeight字段,节点可以了解对等节点的区块高度。然后节点间交换getblocks消息,其中包含本地区块链顶端区块的哈希值,通过判断接收到的哈希值是否属于顶端区块,节点可以判断哪一方拥有较多的区块信息。接着,拥有较多区块信息的一方会识别出其他节点缺少的区块数据,通过inv消息(每一个inv消息只包含500个区块的Hash信息,限制每次同步区块数量可以减少新节点同步区块对网络造成的影响)分批将对等方缺少的区块的哈希值传播出去。拥有较少区块的一方会向所有已连接的节点
13、发送getdata信息继续请求全区块数据,并根据inv消息的哈希值找到自己缺少的区块数据进行读取。17SPV节点通信一个全节点在连接到其他节点以后,需要构建完整的区块链数据借助Merkle树算法,可以通过以下步骤进行简易支付验证进行区块头同步寻找包含该交易哈希的区块,验证区块头是否包含在最长链中获取构造Merkle树所需的交易哈希,计算Merkle树根的哈希若计算出的哈希与区块中的Merkle树根的哈希值相等,则交易存在于区块中根据区块头所处的位置,判断交易得到的确认数。如果交易已经经过六次确认,则完成对交易的验证18加密和认证连接增加比特币网络的隐私性和安全性的方法Tor网络Tor软件将we
14、b请求进行多层加密,随机发给一个入口节点,入口节点第一次解密后发给中继节点解密经过多次中继节点解密,最后到出口节点出口节点最后一次解密后发给目的地址特点只有入口节点知道发送地址,出口节点知道目的地址每一跳都有独立密钥19加密和认证连接增加比特币网络的隐私性和安全性的方法P2P对等认证和通信加密请求方发送AUTHCHALLENGE(含对等体公钥哈希)响应方验证成功后发送AUTHREPLY(含签名)请求方验证成功后发送AUTHPROPOSE(含客户端认证公钥哈希)响应方验证成功后发送AUTHCHALLENGE(含客户端公钥哈希)请求方验证成功后发送AUTHREPLY(含签名)响应方验证成功后授予访
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 区块链课件第四章 区块链网络层 区块 课件 第四 网络