布隆过滤器(Bloom Filter)是1970年由布隆提出的,它实际上是由一个很长的二进制向量和一系列随意映射函数组成。
它是一种基于概率的数据结构,主要用来判断某个元素是否在集合内,它具有运行速度快(时间效率),占用内存小的优点(空间效率),但是有一定的误识别率和删除困难的问题。它能够告诉你某个元素一定不在集合内或可能在集合内。

共识机制是区块链的灵魂,它解决了区块链去中心化网络中两个关键的问题:谁来记账(创建区块)以及如何维护全网数据的一致性。它的目标就是让网络中的各个节点形成一致的区块链结构,也就是说需要满足以下属性:
一致性:所有诚实节点保存的区块链的前缀部分完全相同
有效性:由某个诚实节点发布的信息终将被其他所有节点记录在自己的区块链中

包括比特币、以太坊等在内的去中心化的区块链平台,其底层网络都是采用的P2P技术实现,每个节点都是对等的。而本文,则先通过介绍P2P技术的特点和发展历史,让大家对P2P这个技术的来龙去脉有一个初步的认识和了解。然后在下一篇文章中,我会详细介绍第三代P2P技术(DHT)—Kademlia算法的实现原理。

在《区块链的密码学基础》中,我们在数字签名和验证部分提出一个疑问:如果一个黑客,将发送者的私钥和接收者手上拥有的发送者的公钥都替换成黑客自己的私钥和公钥。接收者要怎么才知道这个公钥究竟是不是发送者本人呢?接下来通过讲解数字证书的原理来回答这个问题。