北京大学肖臻老师《区块链技术与应用》公开课笔记6——比特币网络

简介: 北京大学肖臻老师《区块链技术与应用》公开课笔记6——比特币网络

比特币工作在应用层(application layer:Bitcoin block chain),它的底层是一个网络层(network layer:P2P overlay network)。

比特币的P2P网络是非常简单的,所有节点都是对等的。不像有的P2P网络有所谓的超级节点、纸节点。

要加入P2P网络首先得知道至少有一个种子节点,然后你要跟种子节点联系,它会告诉你它所知道的网络中的其他节点,节点之间是通过TCP通信的,这样有利于穿透防火墙。当你要离开时不需要做任何操作,不用通知其他节点,退出应用程序就行了。别的节点没有听到你的信息,过一段时间之后就会把你删掉。

比特币网络的设计原则是:简单、鲁棒,而不是高效。每个节点维护一个零度节点的集合,消息传播在网络中采取flooding的方式。节点第一次听到某个消息的时候,把它传播给去他所有的零度节点,同时记录一下这个消息我已经收到过了。下次再收到这个消息的时候,就不用转发给零度节点了。

零度节点的选取是随机的,没有考虑底层的拓扑结构。比如一个在加利福尼亚的节点,它选的零度节点可能是在阿根廷的。这样设计的好处是增强鲁棒性,它没有考虑底层的拓扑结构,但是牺牲的是效率,你向身边的人转账和向美国的人转账速度是差不多的。

比特币系统中,每个节点要维护一个等待上链的交易的集合。假如一个集合的交易都是等待写入区块链里的,那么第一次听到某个交易的时候,把这个交易加入这个集合,并且转发这个交易给节点,以后再收到这个交易就不用转发了,这样避免交易会在网络上无线的传播下去。转发的前提是该交易是合法的。

这里有冲突的情况,有可能你会有两个有冲突的交易,差不多同时被广播到网络上。比如说A→B和A→C,这两个如果同时广播在网络上,那么每个节点根据在网络中的位置的不同,收到两个交易的先后顺序不同。

比如一个人先收到第一个交易,就写入到集合里,再收到第二个交易的时候就不会写入集合,因为跟上一个交易有冲突,就认定是非法的。假设这两个交易花的是同一个币,那么写入集合的交易就会被删掉。

比如说节点听到一个新发布的区块,里面包含了A→B的交易,那么这个交易就可以删掉了,因为已经写入到了区块链里。如果节点又听到了A→C的交易,该怎么办?这时候也要把A→B删掉。因为A→C如果已经被写入到了区块里,那么A→B就变成了非法交易,就变成了double spending,这就是冲突的情况。可能某个先收到A→C的节点,抢先挖到了矿,发布了区块。

新发布的区块在网络上的传播有很多方式,跟新发布的交易是类似的。每个节点除了要检查区块的内容合法性之外,还要查它是不是在最长合法链里。越是大的区块,在网络上传播速度越慢。

比特币协议对区块的大小有1M字节的限制。比特币系统采用的传播方式是非常耗费带宽的,带宽是瓶颈。按1M的区块大小限制来算的话,一个新发布的区块有可能需要几十秒,才能传输到网络大部分境地,这已经是挺长时间了,所以这个限制值不算小。

还需要注意的一点:我们讲的比特币网络的传播属于best effort 。一个交易发布到比特币网络上,不一定所以的节点都能收到,而且不同的节点收到这个交易的顺序也不一定是一样的。网络传播存在延迟,而且这个延迟有的时候可能会很长,有的节点也不一定按照比特币协议的要求进行转发。

可能有的该转发的不转发,导致某些合法的交易收不到,也有的节点可能转发一些不该转发发的消息,比如说有些不合法的交易也被转发了。这就是我们面临的一个实际问题。

相关文章
|
供应链 安全 网络安全
区块链技术与网络安全:机遇与挑战
区块链技术与网络安全:机遇与挑战
544 2
|
机器学习/深度学习 存储 算法
《基于区块链技术的虚假新闻检测方法》文献阅读笔记+总结
《基于区块链技术的虚假新闻检测方法》文献阅读笔记+总结
240 0
|
供应链 安全 区块链
区块链模块化:构建灵活、可扩展的未来网络
**区块链模块化**拆分系统为独立模块,提升**可扩展性**和**安全性**,增强**灵活性**,适应不同场景需求,如跨链互操作、行业定制和公共服务。模块化设计促进系统**定制化**,支持快速迭代,是区块链技术发展和创新的关键趋势。
|
安全 物联网 区块链
未来已来:探索区块链、物联网与虚拟现实的融合趋势网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【8月更文挑战第30天】本文将带领读者穿梭于新兴技术如区块链、物联网(IoT)和虚拟现实(VR)的发展浪潮之中,揭示这些技术如何相互交织,共同塑造我们的未来。我们将从技术的基本原理出发,逐步深入到它们的应用场景,并探讨它们如何在未来形成一股不可逆转的融合趋势。通过深入浅出的分析,本文旨在为读者提供一个关于这些技术发展趋势的全景视图,同时激发思考它们将如何影响我们的生活和工作方式。
|
机器学习/深度学习 物联网 区块链
未来触手可及:探索区块链、物联网和虚拟现实的革新之路探索深度学习中的卷积神经网络(CNN)
随着科技的飞速发展,新兴技术如区块链、物联网(IoT)和虚拟现实(VR)正不断重塑我们的工作和生活方式。本文将深入探讨这些技术的最新发展趋势,分析它们如何在不同行业实现应用革新,并预测其未来的融合潜力。我们将从技术的基本原理出发,通过案例研究,揭示它们在现实世界中的创新应用场景,并讨论面临的挑战与机遇。 在机器学习领域,卷积神经网络(CNN)已成为图像识别和处理的基石。本文深入探讨了CNN的核心原理、架构以及在多个领域的应用实例,旨在为读者提供从理论到实践的全面理解。
|
算法 安全 区块链
在区块链中,共识机制是确保网络一致性的核心要素
**区块链的共识机制**是保证网络一致性的关键,涉及工作量证明(PoW)、权益证明(PoS)等算法。节点通过验证交易和解决数学难题来确认新区块,防止双重支付和篡改。共识确保去中心化网络的安全性、可靠性和信任,即使部分节点故障,系统仍能正常运行。
|
供应链 安全 区块链
区块链模块化:构建灵活、可扩展的未来网络
**区块链模块化**通过拆分系统为独立模块,如执行、结算、共识和数据层,提升**可扩展性**、**安全性和灵活性**。模块化允许定制化解决方案,适用于跨链互操作、行业特定需求及公共服务,如电子投票和版权保护。此方法降低耦合,增强安全性,为开发者创造更多创新机会,驱动区块链技术的未来发展方向。
|
安全 网络安全 区块链
【计算巢】区块链技术在网络安全中的应用与挑战
【5月更文挑战第31天】区块链技术为网络安全带来新机遇,其去中心化、不可篡改和共识机制特性有助于身份验证、数据完整性保护及提高网络抗攻击性。但面临性能、隐私保护和法规监管等挑战。简单Python代码展示了区块链在数据完整性验证的应用。随着技术发展,区块链有望在网络安全领域发挥更大作用,未来可能与其它安全技术融合,为网络安全提供更强保障。
261 0
|
存储 供应链 安全
区块链技术:解码未来的信任网络
在信息时代的浪潮中,区块链技术崭露头角,成为了一种全新的分布式记账和信任机制。本文将深入探讨区块链技术的概念,解析其核心原理,并探讨其在金融、物联网和供应链管理等领域的应用前景。
|
存储 算法 网络协议

热门文章

最新文章