布隆过滤器使用场景,什么是布隆过滤器
chanong
|作者| 孙其超,组织者| 卡罗尔
来源| CSDN 博客;制作| 区块链营(blockchain_camp)
加密是区块链技术的核心。所有的交易信息都被编码成区块,这些区块相互连接形成区块链结构。
随着计算机时代的到来,加密技术跃升到了一个新的水平。那么密码学在区块链中能发挥什么作用呢?今天我们就来聊聊这个话题。
本文介绍了密码学在区块链中的具体运用,以了解为什么区块链可以防止消息篡改以及如何进行数字身份认证。如何在比特币中使用多重签名以允许多人共同管理一个账户上的比特币交易。
布隆过滤器布隆过滤器是高效的基于哈希的搜索结构,可以快速确定元素是否在集合中。
首先我们看一下基于哈希的快速搜索,哈希算法具有一项内容与哈希值一一对应的特性,最终可以转换为二进制编码。自然地,它构成了该结构的“内容索引”。
给定一个内容和存储数组,可以通过构造哈希函数来实现基于内容的快速搜索,使得哈希值的总数不超过数组的大小。例如,如果“算法改变生活”的哈希值为“1000”,则它将存储在数组的第1000个单元中。如果您需要快速查找内容,比如“算法改变生活”字符串是否在存储系统中,计算一个哈希值,并使用该哈希值显示系统中对应的元素,您只需要
布隆过滤器使用多个哈希函数来提高空间利用率。多个哈希函数对同一个输入计算出多个地址,对应的地址标记为1。搜索时,执行相同的计算过程来检查适用的元素,如果它们都为1,则意味着输入存在的概率很高。
与单一哈希算法搜索相比,布隆过滤器显着提高了空间利用率,可以用更少的空间表示更大的存在关系集合。上述哈希搜索和布隆过滤器背后的基本思想是基于内容的寻址。
布隆过滤器示例图(参考)
同态加密同态加密可以直接处理密文,因此结果与处理明文并加密结果相同。同态加密可防止处理器访问数据本身的信息。
什么是同态?它来自代数领域,包括四种类型:加法同态、乘法同态、减法同态、除法同态。同时满足加法同态和乘法同态意味着代数同态,或者完全同态。当同时满足四个同态时,称为算术同态。
在计算机中实现完全同态意味着所有进程都可以实现同态。只能实现某些特定运算的同态称为特定同态。
区块链应用:利用同态加密技术,运行在区块链上的智能合约可以在不知道实际数据的情况下处理密文,大大提高隐私安全性。
虽然同态加密的优点很明显并且已经实现,但问题是它需要较高的计算时间或存储成本,并且与传统加密算法相比在性能和强度上仍然存在差距。所以,困难与机遇并存,解决困难的人就会抓住这个机遇。
同态加密示例图(供参考)
数字签名数字签名可以验证某些数字内容的完整性并确认其来源或不可否认性。理论上,任何非对称加密算法都可以用来实现数字签名。常用的算法有DSA(基于ElGamal算法的数字签名算法)和ECSDA(基于椭圆曲线算法的椭圆曲线数字签名算法)。为了满足特定的安全要求,已经创建了几种特殊的数字签名技术。
盲签名:签名者必须在无法看到原始内容的情况下签署信息。这可以保护签名的内容并防止签名者看到原始内容。它还可以防止跟踪,因此签名者无法将其签名内容与其签名结果进行匹配。
多重签名:如果x 个签名者中至少收集到y (x=y=1) 个签名,则视为有效。 x 是提供的公钥数量,y 是必须与公钥匹配的最小签名数量。这可以有效应用于多人共同投票决策的场景。比特币交易支持多重签名,允许多人共同管理一个账户上的比特币交易。
群签名:群成员可以代表群匿名签名。您可以确认签名来自某个组,但无法准确跟踪哪个成员签署了该签名。也存在一些问题。这意味着群组签名需要群组管理员添加新的群组成员,从而使群组管理员面临跟踪签名成员身份的风险。
环签名:签名者首先选择一组临时签名者,包括自己。您可以使用自己的私钥和签名集中其他人的公钥独立生成签名,无需其他人的帮助。签名者组的其他成员可能不知道他们包含在最终签名中。环签名的主要目的是保护匿名性,是一种简化的群签名。
数字证书数字证书分为两类:
加密数字证书:用于保护用于加密目的的公钥。
签名验证数字证书:保护用于签名目的的公钥。
两种类型的公钥也可以同时放在同一个证书中。同时,证书必须经过证书颁发机构CA的签名和批准。权威的商业证书颁发机构包括DigiCert、GlobalSign 等。用户还可以构建自己的CA系统并在专用网络中使用。
数字证书内容包括证书字段(证书版本、序列号、签名算法类型、颁发者信息、有效期、颁发对象、颁发公钥)、CA的签名算法、证书签名值等。证书颁发者还必须使用自己的私钥对证书内容进行签名,以防止他人篡改证书内容。
PKI 系统PKI 的正式名称为公钥基础设施,是一个基于公钥和私钥的通用框架,用于安全可靠的消息传递和身份验证。包含三个核心组件。
CA:正式名称为证书颁发机构,负责颁发和吊销证书以及接受RA 的请求。
RA:正式名称为注册机构(Registration Authority),负责验证用户的身份、验证数据的合法性、进行注册,审核后发送给CA。
证书数据库:使用标准格式(主要是X.500 系列)存储证书。您可以通过与LDAP目录服务链接来管理用户信息。
CA是核心组件,负责维护证书信息。正常运行流程如下:
用户通过提供身份信息、认证信息等,通过RA注册并申请证书 经CA审核后创建证书并发送给用户 证书必须被吊销,如果再次向RA申请CA。
总结这篇文章,我们主要讨论了密码学中的一些核心问题和经典算法。我们假设读者对现代密码学的发展和关键技术有初步的了解。
获得这些知识对于理解区块链系统如何提供隐私和安全保护非常有帮助。最新的密码安全技术都是基于专业的现代数学知识而设计的,如果想详细了解它们的原理,就需要更深入地学**现代数学,尤其是数论和抽象代数。
区块链和密码学是一个相互促进和发展的过程,区块链使用了大量密码学方面的知识,但同样的,为了适应区块链的不同场景,反而反而促进了密码学的进一步发展。








