在区块流联合创始人彼得•维尔(Pieter Wuille)、比特币核心贡献者、区块流联合创始人格雷戈里•麦克韦尔(Gregory Maxwell)和区块流软件工程师格莱布•诺门科(Gleb Naumenko)的带领下,这个开源项目旨在实现每个完整节点数据之间的集合协调。
集合协调,简而言之,就是试图找出存储在不同计算机上的两个集合之间的差异,同时最小化它们之间需要交换的数据量。特别是,它试图在发送的数据少于整个数据集的情况下做到这一点。
对于比特币来说,这意味着识别节点之间交易数据的差异。Maxwell将集合协调比作:将您的手机联系人列表与拥有许多相同联系人的另一个人同步的过程。
“你可以给他们你的整个列表,但它不会适合以明信片的方式寄出,这会很浪费,因为列表上的人可能是相互就认识的, 他说,事实上, 即使事先不知道实际差异是什么, 也有可能通过只发送与列表之间差异大小相同的信息来向他们传达您的整套联系人。”Maxwell对比特币杂志说。
简而言之,集合协调将通过最小化每个节点之间传输的数据量,减少在比特币网络上运行完整节点所需的带宽。这将有效地允许节点更有效地同步其内存池中的数据。
分解集和解
minisketch想修改的问题并不是区块链特有的。
集合协调是任何分布式系统都要解决的问题。简而言之,这仅仅意味着分布式网络上的两个或多个参与方持有不同的数据集,为了解决这一问题,他们必须弄清楚自己丢失了哪些数据片段——以及对方缺少哪些数据片段。
对于比特币来说,这些数据就是交易。这些事务从一个节点中继到另一个节点,直到被包含到新块中的矿商拾取为止。
问题是,事务的顺序可能因内存池的不同而不同)。这意味着,内存池和新中继块之间的事务顺序可能存在差异。
“比特币节点之间进行交易时存在问题。任何给定的节点都将拥有与其任何一个节点相同的事务——从其他链接接收到的事务,但并不完全相同。今天的节点浪费了大量的带宽,只是为了弄清楚谁需要发送什么数据。”Maxwell说。
minisketch如何缩小差距
作为PinSketch算法的实现,minisketch构造了一个集合草图(即,对于本用例,是事务数据集)。然后,节点和挖掘人员可以使用这些集合进行紧凑的集合协调。
简单地说,该解决方案将允许节点 *** 作符对事务数据进行注释比较。它将允许它们勾画(创建)事务集(列表),并且程序将交叉检查这些集合,以查看哪些数据出现在一个而不是两个集合中。但是,节点不需要花费时间和精力向彼此展示所有这些数据,只需要知道它们的事务集之间的差异,就可以勾画出完整的事务集。
正如Wuille解释的那样,它在实际中看起来是这样的:
如果我们把它简化成一个单一的差异,就很容易看出它是如何工作的:
假设我有集合{3,5,7,11},你有集合{3,5,7,9,11},所以差是{9}。
我们都计算元素的和,得到3+5+7+11=26,得到3+5+7+9+11=35。
我把26的和发给你,你从和中减去它;差是9。
这种方法是有效的,但仅限于找出单一的区别。minisketch通过发送各种类型的数据“和”来概括这一点。结果是,有N个不同的和,你就能找到N个不同点……只要两组之间的差异不超过发送的“和”的数量,minisketch总能找到所有的差异。
如果成功实现,该集合协调可以使节点之间的事务中继更有效。Maxwell表示,与比特币基础设施的其他正在进行的改进一道,这可能会大大减轻每个节点的广播负担。不久前我做了一个测量,发现事务中继大约占节点带宽使用的87%。这是紧凑型块出现之前的情况,所以这个数字现在可能更大。我们的仿真结果表明,我们可以通过组合改进,包括minisketch,将中继数据的开销减少40倍。
据Wuille说,minisketch解决方案还可以创建一个更强大的网络。Maxwell进一步扩展了这一思路,他指出,有了协议,节点可以使用节省下来的带宽与16到24个其他节点连接,而不是使用标准的8个节点,“这将使一些理论上的攻击在不使用更多带宽的情况下更难实现。
Maxwell还希望有一天, minisketch也能被用于改进块传播。“有其他协议阻止传播使用IBLT好多了,”他说,尽管他承认这样一个解决方案是“紧急”的,但是块已经使块传输本身使用每天每个节点只有4 mb,因此即使减少这一数据也不会有什么大的不同用户或网络。相反,他设想这种解决方案更适用于“非常低的传输,比如Blockstream的satellite”。
Wuille指出,minisketch会降低节点带宽要求,比IBLT有更高的成功概率,但他也承认,对于较大的数据集,IBLT会更快。Maxwell补充说,IBLT对于少于几百个差异是非常低效的,而对于较小的数据集,minisketch更有效。
Wuille表示:然而,minisketch仍处于非常初级的阶段;真正的BIP还需要一段时间,而采用BIP还取决于许多因素。
Maxwell在一定程度上重申了他的观点,指出该协议也不是比特币网络共识的一部分。如果任何节点运营商感到足够舒适,并希望改善他们的事务中继,他们可以选择使用minisketch,即使它在网络上没有被普遍采用。
“一个有用的观点是,中继机制不是比特币共识的一部分。你和我可以开始使用我们之间改进的协议,不管其他人选择做什么。这意味着,对中继的改进只会因为普通协议/软件工程的考虑而延迟——我们必须构建它、验证它、集成它等等——但与共识改变不同,它不依赖于任何人同意它,但除了选择使用它的人。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)