『学概念找员外』极瘦区块(Xthin)
2018-08-12 本文已影响1人
刘员外__
之前写过一篇文章比特币区块为什么是1M大小?,文章的摘要为:
- 在 2009 年,比特币在刚被创造出来的时候,并没有大功率的矿机来计算挖矿,只能通过普通电脑的 CPU 进行打包,而且当初计算机的 CPU 算力也极其有限。加上使用的用户非常少,所以当时被打包好的区块平均大小在 1~2K 左右;
- 保证全网节点足够多:如果区块太大的话,就可能导致普通计算机无法运行全节点,这样的话,全节点就会变得只有少数 CPU 较高的计算机或者专业的矿机才能运行,最后就只会导致算力的中心化,降低矿工的作恶成本,反而会对比特币不利;
- 电脑验证交易的速度:如果用现在普通的电脑来打包记录一个大小为 1M 的区块,那么从开始验证到结束大约需要 30 秒,但是如果是需要验证一个 2M 的区块,可能就需要高达 10 分钟,这个时间是极其漫长的,因为在这段时间内,黑客可以根据这个延时,对比特币网络进行攻击。
因为比特币区块大小限制在1M是比较理想的,但是对于每秒平均 8笔/秒 的交易速度来说,实在是无法满足用户的需求。同时对于区块扩容还有诸多问题和潜在的风险,所以在这个背景下面,就有人提出改进区块的传输模式,希望能突破这个瓶颈,让比特币更好的服务于更多人。然后他们提出了极瘦区块(Xthin)的概念,在原来的基础上,优化了比特币区块在节点之间的传播效率。极瘦区块(Xthin)思想的主要贡献者有:Andrew Clifford、Peter R.Rizun、@sickpig、Andrew Stone以及Peter Tschipper。

极廋区块
极瘦区块(Xthin)采用了布隆过滤器。这个布隆过滤器目前早已应用在了简单支付验证(SPV)钱包上面,该技术本质上是一个节省空间的概率性数据结构。还有就是为了让传输节点知晓接收节点的存储池的内容。这使得传输节点在发送接收节点知晓的交易时,可以使用短哈希,而对于接收节点不知晓的交易则完整地发送。结合这种方法,在交易比特币的过程中,不是发送该笔交易的数据列表,而是运行一个很小的布隆过滤器和IBLT,他们只占目前使用的区块广播协议的10%的内存。
同时极瘦区块(Xthin)提高了区块在节点之间的传输速度,与现在的区块架构相比,提高了大约5.6倍。这将可以让比特币网络轻松广播22M以内的区块。这一技术发布出来,瞬间得到整个比特币社区的拥戴。好处不仅如此,还包括在部署该项技术的时候,比特币无需分叉,无论是硬分叉还是软分叉,都不需要。