多层区块链可扩展性

我们都知道比特币不是最可扩展的加密货币,每秒大约只能进行6.5次交易。好吧,这样的说法其实也并不是很靠谱,因为比特币有闪电网络,并接受SegWit,但简而意知,比特币仍然没有那么大的可扩展性。我喜欢社区里真正聪明的人来积极开发比特币。今天我将讨论一下我在2017年的一些想法。这些想法是我在提交大学论文时的理论基础。

我将简要介绍一些当前解决比特币可扩展性问题的解决方案。

闪电网络

目前可用的最酷的解决方案。闪电网络可以被认为是比特币的另一层。闪电网络允许双方进行近乎即时的交易,而不会阻塞比特币的主要层。双方之间的这些交易发生在闪电网络建立的支付通道上。一旦建立了支付通道,双方就可以发送数千笔不需要出现在主区块链上的交易。这明显减少了区块链上的拥塞。然后,当任何一方一旦终止合同,他们就会将合同广播到主网,然后矿工就会将其作为单个交易进行验证。

我喜欢闪电网络,我甚至可能在某个时候建立我自己的节点。闪电网络也有一些缺点。例如,它们只适用于很小的交易。

SegWit

另一种解决方案是所谓的隔离证人(SegWit)。这个解决方案的思想是将签名分割成一个单独的结构。由于签名约占块大小的65%,这就为交易提供了更多的空间。

比特币现金

比特币现金选择了一个更简单的解决方案。只需增加块大小。比特币块大小为1MB,比特币现金块大小为8MB。这使得比特币的吞吐量比比特币高出8倍。这个解决方案与原来的比特币网络不兼容。因此,比特币现金和比特币是两种不同的货币,当这种变化发生时,它被称为硬分叉。比特币现金的批评者表示,这只是一个创可贴式的解决方案,会拖延规模问题,并导致社区分裂。

背景

简单介绍一下我的背景,我是一名网络安全专业的应届毕业生。在我的论文中,我写了一篇关于比特币可扩展性问题的论文。我已经丢失了原来的文件,只能找到一个粗略的副本,如下图所示。

本文收集了我的一些想法,这些想法可以直接或间接地帮助解决比特币可扩展性问题。我想对它们做一个快速的概述。

分类账的压缩

关于区块大小争论的一个担忧是,分类账的大小将迅速增长。例如,BTC中的块是1MB,而BHC中的块是8MB。考虑到一个区块大约每10分钟就会被开采一次,随着时间的推移,分类账将会慢慢增长。我做了一张图表,向你展示总账的增长情况。

我想快速指出,这是假设所有的块都被填满到最大容量。比特币的现金流量从未达到8MB的块大小。

虽然数学计算起来很简单,结果却很令人惊讶。假设比特币将存在100年甚至1000年左右,我们很快就能看到账本的规模将变得大得离谱。100年后,比特币账户将达到5000Gb左右。

节点有两种类型,完整节点和轻节点。完整的节点存储整个区块链而轻量级的节点使用一种称为Simрlifiеdрауmеnt vеrifiсаtiоn (SPV)来验证交易。轻量级节点钱包跳过了几个安全步骤,这可能会使用户容易受到攻击。这一点很重要的一个例子是在2015年7月4日发生的意外分叉,其中更新的完整节点钱包不受影响,而轻量级节点钱包处于危险之中。

在基于区块链的项目中,这个问题显然会随着时间的推移而增长。解决这个问题的一种方法是压缩这个数据。我将假设,随着分类帐规模的增长,完整节点和轻节点之间的比例将倾向于完整节点。这是因为存储整个分类帐将变得越来越昂贵。这是一件坏事,因为完整节点的数量越少,网络的集中度就越高。由于比特币是一种去中心化的货币,及时解决这个问题符合社区的利益。

我的想法是,以某种方式实现压缩到比特币分类账,减少分类账的大小。其中一个问题是熵。熵在外行术语中是随机性的度量。

熵是压缩算法的一个重要方面。这是因为高熵数据更难压缩。签名和哈希值的熵非常大,这意味着它们压缩得不好。另一个问题是使用的压缩算法必须是无损的。无损压缩就是在压缩过程中不丢失任何数据。这是至关重要的,因为被压缩的信息是至关重要的。这意味着大约35%的数据可以被压缩。我没有具体数据来支持这一点,但我将作出一个假设,超过数据可以有一个2:1的压缩比。根据我上面描述的数字,随着时间的推移,我们可以看到分类账的规模减少了17.5%。对于BCH,它可以节省几个TB。

我们该如何实现呢?

目前,比特币区块的形成看起来像一条直线的区块。

BTC区块链结构
模式简单。当找到一个新块时,将它添加到区块链中,然后重复。如果我们添加检查点块呢?我将检查点块定义为n个块的合并。当找到n个块时,它们被用来创建检查点块。然后块1到块n可以删除。

检查点块
有什么优点?

· 首先,可以压缩检查点块。
· 这一额外步骤还允许删除冗余数据块。(您可以从数据库中删除或删除历史信息,并减小数据库的大小)
· 不需要硬分叉。
· 降低运行完整节点的成本。
· 更有效地实现分片。

分片是什么?

数据库分片是数据库或搜索引擎中的数据水平分区。每个单独的分区都被称为分片或数据库分片。每个分片都保存在一个单独的数据库serverinstance上,以分散负载。数据库中的一些数据仍然以所有分片的形式存在[notes 1],但是一些数据只出现在单个分片中。每个分片(或服务器)作为这个数据集子集的单一源,基本上不同的节点可以存储少量检查点块,而不是区块链的Gb甚至Tb。然后,当一个矿工想要某个检查点块时,他们可以广播他们想要的块,而另一个拥有正确块的节点将用有效数据响应。

这种技术在集中式系统上非常有效,可以通过节点或服务器实现信任。但正如你所知,比特币是一个不可信的系统。我们如何知道节点4不是恶意的,并给我们一个未修改的检查点块呢?目前,我们还不知道。这个的解是什么? Merkel的根源在于比特币如何确保交易没有被篡改。如果检查点块4的Merkel根位于检查点块5之前的Merkel根标题中,那么我们就可以假设这是一个有效的块。攻击者要生成假块,必须挖掘2n个块。

分割块以增加吞吐量

现在想象一下,如果我们可以让不同的团队或节点池处理不同的问题。例如,检查点块中的每个块可以有一个团队。团队可以解决不同的问题,允许吞吐量增加n。

此解决方案可以与其他扩展解决方案共存,如闪电网络、SegWit或增加块大小。

相关文章