Hi 游客

更多精彩,请登录!

比特池塘 区块链茶馆 正文

Electrum钱包和Bitcoin Core的一些区别

人FL2
91 0 0
Electrum钱包和在线区块浏览器一样,都是即开即用,秒速出结果。为什么Bitcoin Core就不行呢?
拍脑袋就能想到:因为它们的服务器都开了各种索引,空间换时间。
Bitcoin Core就连txindex都不是默认开启的,开了的话,又吃掉几十GB硬盘。
这就像查字典,一页一页翻肯定又累又慢,还是需要有检字表啊。
其实,提供BIP37服务的全节点,在帮轻钱包查历史交易的时候,也是在“一页一页地翻”,所以磁盘/CPU各种繁忙。
而且,根据我刚刚翻bitcoin wiki看到的,BIP37的隐私保护被认为很失败。
BIP37的隐私是怎么来的?
客户端提交的“查询匹配条件”,也就是bloom filter,是模糊的,保证相关交易一定能匹配到,不会遗漏,但同时也会匹配到一堆无关交易,由它们来打掩护。
然而,BIP37存在很多问题,比如,同一个钱包在不同时间可能生成不完全重合的bloom filter。对于监视者来说,可以把几次匹配的结果取交集,光是这样就能一下子筛掉一大群无关干扰交易……
总之,开发者认为:BIP37效率低下(甚至可能成为DoS攻击载体),隐私保护不力,所以,还留着它干啥?等着过年么?砍!
终于,最近发布的Bitcoin Core 0.19.0.1默认禁用了BIP37。
不过,这个功能其实还在,可以手动配置开启;而且,那些没升级到最新、还开着BIP37的节点也不少。所以BIP37还是要继续苟一段时间的。
没了BIP37,轻钱包怎么办呢?答案应该就是BIP157/158,又名Neutrino。
就我的感觉,Neutrino是在“全索引,查询秒速、占硬盘”和“没索引,查询龟速,不占硬盘”之间取了个折衷,既不是很占硬盘(现在大约是4.6GB),查询速度又不是太慢(据估计,全扫一遍只需一两分钟)。
那轻钱包呢?很简单,让他们把这个索引(block filter index)下载回去,先查一下,看看哪个区块可能与自己有关(和BIP37一样,不会有遗漏),再下载这些有关的完整区块,最后在这些区块里把与自己相关的交易捋出来。
要说隐私,说实话,我觉得信息还是有泄露的,因为几十万个区块里,你只挑那么几个下载,那不是一下子就把搜查范围缩小了不少……
而且,对付BIP37的策略里还有一条是结合交易关系链进行分析,我觉得套用在Neutrino身上貌似也很难躲掉……
不过,Neutrino也有一些对策,比如分别向不同节点请求下载不同的区块,甚至是走不同的Tor回路……
不管隐私怎么样,对于Bitcoin Core全节点来说,我觉得,有一个折衷的索引,那还真是件不错的事情。
不仅是区块扫描时间可以缩短成原来的十分之一以下,以后应该还有望告别“启用修剪就不能导入地址/私钥/公钥/钱包”这种蛋疼。
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

人FL2 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    6