Erlay将通过减少网络参与者之间不必要的通信,帮助比特币网络保持去中心化。
关于Erlay将如何影响比特币的猜想图
感谢GlebNaumenko、PieterWuille、GregoryMaxwell、SashaFedorova以及IvanBeschatnikh提出了这一令人惊叹的改进方案。
关于这一技术方案,我首先是在BitcoinOptechNewsletter(#49)上看到的。特别感谢作者能够让技术型读者能够接触到这种技术,而我希望通过这篇文章,让更多的人了解它。
今天,比特币是怎样广播一笔交易的?
下面这个人是Bob。
Bob想要发送一笔比特币交易。
他显然希望自己的交易能够尽快被纳入区块链。为了实现这一点,如果比特币网络中的很多参与者知道Bob的钱包广播了他的交易,这将是有所帮助的。这将增加他的交易被纳入下一个被创建的交易区块的机会。
由于Bob对做某些事情很感兴趣,他并不拥有自己的比特币节点。相反,他相信Alice的节点会广播从他钱包所接收到的交易。
Bob知道Alice在使用她的节点时不可能偷他的钱
Alice的节点首先检查Bob的交易,看他的钱包是否对交易进行了签名。
当然,Alice的节点还会检查Bob之前是否有花过他的比特币,这是通过查看Bob当前未使用交易的记录来实现的。
关于“什么是UTXO”的解释
“一笔比特币交易既有一个输入,又有一个输出。每个交易输出,都可以反过来成为下一笔交易的输入。
为了确保你不会两次花费相同的比特币,节点可检查网络上亿笔交易的历史记录,以确定以前是否使用过相同的交易输入。
你可以想象,节点的工作量是有多么庞大,而为了更高效,节点将遍历整个历史记录一次,以创建一个尚未用作交易输入的所有交易输出的列表。
这被称为未花费交易输出,简称为UTXO。
今天,比特币网络中大约有5600万个UTXO,占用了大约3GB的存储空间。另一方面,整个比特币区块链约220GB,包含超过4.22亿笔交易。
每次发送一笔交易时,节点都会删除已花费的旧UTXO,并添加新的UTXO,以使列表保持最新。”
在检查完所有内容之后,Alice的节点,会把有关Bob的交易信息,告诉它所连接的8个节点。
Bob可能盲目地信任Alice的节点,但它的对等节点则不是。它们将对Alice的节点执行与Bob的交易相同的检查。
正如你可以想象的那样,很多节点在那之后会多次得知关于Bob的交易,因为它们都以不同的方式连接,并且不知道谁接收到哪些信息。
显然,发送的消息要比需要的信息要多的多,虽然这让比特币用户高度确信:世界上所有的节点都会知道他们的交易。但这给节点带来了不必要且很大的负担。
这些节点发送和接收的数据远比需要的多。准确地说,研究表明,节点间44%的流量都是这些不必要的消息!
这给节点增加了很大的压力,尤其是那些网络连接较为落后的节点,或者随着比特币的使用越来越多,其所有者不能一直为其网络订阅支付越来越多的费用。
而这个问题,正是Erlay协议所要解决的。
如何使用Erlay协议广播一笔交易
当你忙于了解UTXO以及节点的额外流量时,Bob已通过教程学习了如何设置自己的比特币节点。
Bob已使Alice成为他的对等节点之一,并将他的交易广播给她,以及其他7个对等节点。在验证了他的交易之后,Bob的对等节点也会告诉它们的8个对等节点。
Bob的对等节点用绿色线连接,对等节点各自的对等节点,则用蓝色线连接
一旦这笔交易通过了网络,并不是每个节点都收到了Bob的交易。如果你没有被包含在一个由8个对等节点所组成的小组当中,你可能被漏掉了。
不用担心,节点不必听到Bob的交易。相反,它将定期请求所有对等节点已接收的所有交易的概述。
每个对等节点发送一个表示它接收到的所有交易的概述,这比完整发送每笔交易占用的数据要少。
然后,节点将生成它自己收到的交易的概述,并将此概述与它收到的交易进行比较,这就好比一个“找茬”游戏。
然后,节点可以从其对等节点请求其自己的概述中所缺少的确切交易。
理解概述和缺失交易之间差异的一个很好的比喻,是景观的全景视图或景观中单个花朵或岩石的详细特写。
Erlay协议的优点和缺点
通过比较这些概述以找出差异的方法,会导致一个缺点。这使得一笔交易被全球比特币网络所有节点知道所需花费的时间,要稍长一些。
由于比特币平均每10分钟产生一个新的数据块,因此这种减速相对于减轻节点大量的负担而言似乎是值得的。
通过这样做,节点可以做较少的工作,那么人们就更容易地运行自己的节点,比特币网络可以保持去中心化。
我们不希望看到只有几个大数据中心运行比特币全节点的情况,因为我们所有人都必须信任它们能够诚实地处理我们的交易。如果这样的事情发生了,我们就会再次回到一个由中央控制的金融机构组成的世界,这是比特币要避免发生的。
你可以试着想想这个Erlay协议是如何失败的,论文的作者也有考虑!在这里,他们描述了用于比较这些概述的最佳参数,以及在节点无法找到概述之间差异时,节点可以依靠哪些步骤。
作者们还测试了该协议在一个由6万个节点组成的模拟网络和分布在世界各地的100个节点组成的实时网络上的性能。
如果节点将其对等节点的数量从8个增加到32个,那么它们的流量通常会增加300%,而使用Erlay协议之后,增加的流量花销仅为32%
那么,我们什么时候能够看到Erlay协议会被纳入比特币软件当中呢?
现在,这篇研究论文正在征求反馈意见的状态。
如果其他研究者、测试人员以及开发人员没有提出异议,GlebNaumenko计划编写一个比特币改进提议,然后将其纳入最流行的比特币节点软件:BitcoinCore.
另外,Erlay只需要584行代码,它不需要对比特币进行任何基本的规则更改,因此不会导致新版本的软件与旧版本不兼容。实际上,激活这一协议,要比其他比特币改进提议要更容易得多。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。