了解Cardano对抗垃圾邮件交易的弹性

Understanding Resilient Of Cardano Against Spam Transactions | Cardano Explorer (cexplorer.io)

区块链网络以其原生形式面临可扩展性挑战。网络的吞吐量通常以每秒交易数(TPS)来衡量,受到区块大小和区块生产率的限制。在交易量突然激增的情况下,网络可能会变得拥塞,从而导致用户尝试提交交易时遇到潜在困难。在这篇文章中,我们将深入研究卡尔达诺网络上的交易处理机制及其在处理垃圾邮件交易方面的稳健性。

区块链网络经常堵塞
首先,重要的是要理解,没有针对垃圾邮件交易的万无一失的防御措施。每笔包含网络使用费的交易都由区块链网络理想地处理,没有任何歧视。

区块链不区分来自单个用户的交易和来自旨在堵塞网络的垃圾邮件机器人的大量交易。从区块链的角度来看,所有交易都是有效的。没有预定义的限制限制用户(或机器人)可以提交的交易数量。至少在理想的世界里是这样。

交易费用是防止垃圾邮件的预防措施之一。例如,对于转移价值 1000 美元的交易,0.1 美元的交易费是合理的。一次性向网络注入 100 万笔交易将花费 10 万美元。

由于需求突然激增,例如在新 NFT 系列的铸造期间,区块链网络可能会变得拥堵。 NFT系列的作者可能会指示用户以特定的时间间隔发送交易。这可能会导致 100 万笔交易涌入网络,造成类似于垃圾邮件攻击的拥塞。关键区别在于交易费用由 100 万用户支付,每人支付 0.1 美元。

对于其他用户来说,这两种情况的结果可能相似。他们在提交交易时可能会遇到困难。

在 NFT 系列铸币的情况下,网络最终将处理所有交易并返回接受新交易。然而,在垃圾邮件攻击的情况下,只要攻击者愿意资助攻击,他们就可以坚持下去。

值得注意的是,攻击者或许能够通过套利等经济收益来收回部分攻击成本。然而,这取决于多种因素,并且不能保证。

卡尔达诺采用固定的交易费用结构,其中费用根据交易大小(以字节为单位)确定。例如,一笔200字节的交易每次需要支付0.164 ADA的费用。

采用收费市场的网络具有优势,因为当网络拥塞时,用户可能会选择支付更高的使用费。这意味着任何向网络发送垃圾邮件的尝试在经济上都变得更加困难。攻击者被迫提高费用,因为一旦达到网络容量(例如内存池),节点就可以开始丢弃交易。这些被丢弃的交易可能是费用最低的较旧的交易。因此,垃圾邮件攻击的成本是不可预测的。

高 TPS 和一定程度上的去中心化进一步放大了垃圾邮件攻击的成本。

网络处理交易的速度越快,攻击者必须提交并支付的交易就越多。 TPS 较低的网络更容易成为垃圾邮件的目标。

卡尔达诺以其平均 TPS 和可预测的费用(卡尔达诺没有费用市场,因此交易费用永远不会上涨),理论上可能成为垃圾邮件攻击的主要目标。然而,由于区块链的分布式特性,卡尔达诺表现出了强大的抵御垃圾邮件攻击的能力。

Cardano 由大约 3100 个节点组成,每个节点都拥有两倍于区块大小的内存池。在网络停止接受所有新交易之前,垃圾邮件交易理论上必须首先填满所有节点上的所有内存池。

为什么可扩展性对区块链来说是一个挑战?
在传统的基于服务器的系统中,当一台服务器无法满足需求时,通常通过添加更多服务器来实现可扩展性。这称为水平缩放。然而,区块链网络的运作方式不同,并且不能以相同的方式扩展。

在区块链网络中,每个节点都维护整个区块链的副本并参与共识过程。共识过程包括就下一个区块中包含的交易达成一致,并确保所有节点具有相同的数据。这对于维护区块链的完整性和安全性至关重要。

向区块链网络添加更多节点并不会增加其交易处理能力的可扩展性。它可能会减慢网络速度。这是因为每个额外的节点都会增加达成共识所需的通信量,这可能会减慢区块创建过程。

因此,简单地向区块链网络添加更多节点(或“服务器”)并不意味着提高其可扩展性。相反,区块链网络中的可扩展性是一个复杂的问题,正在通过各种策略来解决,例如分片(并行处理交易)、第 2 层解决方案(链下交易)和优化共识算法。这些解决方案旨在增加网络每秒可以处理的交易数量,而不损害其去中心化性质和安全性。

在客户端-服务器模型中,服务器是单点故障。如果服务器出现故障,整个系统可能会变得无法访问。然而,在区块链网络中,没有中央机构或服务器。该网络由多个节点维护,每个节点都持有整个区块链的副本。这意味着即使一个节点出现故障,网络仍将继续运行,确保服务不间断。

区块链的三难困境对所有团队来说都是一个挑战,因为很难同时实现去中心化和高可扩展性。对于服务器-客户端解决方案,可扩展性和垃圾邮件防御相对简单。

在服务器-客户端架构中,当网络变得拥塞时,可以采用多种策略来管理负载:

限制:这涉及限制服务器处理请求的速率。它通过确保服务器接收到的请求不会超过其在给定时间可以处理的数量,从而有助于防止服务器过载。
负载平衡:此技术将网络流量分布到多个服务器上,以确保不会有任何单个服务器因过多的请求而不堪重负。
流量优先级:某些系统可能会优先考虑某些类型的流量。例如,视频流服务可能会优先考虑视频数据而不是其他类型的数据,以确保流畅播放。
丢弃事务:在极端情况下,当服务器充斥着太多传入请求时,服务器可能会开始丢弃传入请求。这通常是防止服务器崩溃的最后手段。
然而,由于其去中心化、无需许可和开放的性质,这些机制并不直接适用于区块链网络:

去中心化:与中心化服务器不同,区块链网络由多个节点组成,每个节点维护整个区块链的副本。这意味着无法集中管理限制或负载平衡。
无许可、开放性:任何人都可以加入和参与区块链网络,每个参与者都有平等的提交交易的权利。可以根据费用确定交易的优先级。然而,网络可能变得排他性,只有富人才能使用。
公平性:区块链协议确保所有交易都得到平等对待,无论其来源和金额如何。
在集中式系统中,单个服务器或一组服务器可以通过控制服务请求的速率(限制)或在多个服务器之间分配负载(负载平衡)来管理负载。然而,在去中心化的区块链网络中,这些任务无法集中管理。这是因为网络中的每个节点都处理其请求,并且没有中央机构来协调这些任务。

然而,一些项目倾向于在这方面集中共识,因为团队试图实现高 TPS。

区块链通过去中心化确保公平。这意味着没有任何一个参与者可以为了自己的利益而操纵系统。网络中的所有节点在维护区块链方面拥有平等的权力和责任。集中共识的努力可能会导致限制节点的自主权,即系统中某种形式的不公平。

如果发生严重的垃圾邮件攻击,节点可能会开始丢弃交易或停止接受新到达的交易。这不是一个理想的解决方案,因为它违背了公平原则。但这是保护网络并确保其生存的必要措施。

连接到网络的每个设备(即区块链节点)必须保护其资源免遭耗尽,否则设备可能会崩溃。多个节点同时崩溃可能会危及整个系统的功能。重新启动网络不是区块链的一个选项。

然而,如果特定节点自主保护其资源,或者由中央机构完成,情况就会有所不同。

当团队的目标是构建具有高交易处理速度(TPS)的区块链并纳入类似于服务器-客户端架构中的反垃圾邮件机制时,他们通常需要在去中心化方面做出妥协。共识机制可能表现出中心化的元素。更大程度的集中化有助于制定针对网络垃圾邮件的保护措施。

卡尔达诺抵御垃圾邮件的能力如何?
除了适当的交易费用之外,区块链网络的去中心化结构还可以有效防范垃圾邮件攻击。卡尔达诺的目标是处理所有已接受的交易。

如果无法接受新提交的交易,用户会立即收到通知并可以尝试重新提交。

卡尔达诺网络由 3,100 个矿池组成。每个池充当出块节点,通常连接到 2-3 个中继节点,并在它们后面进行屏蔽。这种设置禁止与出块节点的直接网络通信。中继节点充当核心网络节点和互联网之间的中介,在核心出块节点周围建立安全边界。

在卡尔达诺中,每个出块节点或池都维护其内存池。这是交易在被包含到区块之前保存的地方。内存池的大小设置为当前区块大小的两倍,使其能够容纳大约 600 个标准交易或少量较大、费用较高的交易。

内存池充当网络缓冲区,在将交易合并到块中时可能会导致轻微的延迟。在“先到先得”的基础上操作,假设内存池中的交易已扩散到所有节点,则应将其包含在接下来两个块内的新块中。然而,在网络拥塞期间,一笔交易可能只存在于少数内存池中,导致其被包含在新区块之前需要更长的等待时间。

提交后,新交易从中继节点传递到出块节点。然后该交易被扩散到所有其他块生成节点,这是由中继节点促进的过程。我们将进一步讨论如何利用节点到节点(NtN)迷你协议进行交易扩散。

交易不是即时处理的。相反,它们存储在各个网络节点的内存池中。下一个时隙领导者(被赋予铸造新区块特权的节点)从内存池中检索交易并将其包含在新区块中。因此,卡尔达诺网络中的所有池都准备好铸造新区块,通过消除单点故障来增强网络的稳健性。

在附图中,您可以观察到交易(由红色框表示)通过交易通过中继节点的逐渐扩散(由红色箭头表示)逐渐到达所有内存池(由黄色框表示)。

在任何给定时刻,所有节点上内存池的内容都可能不同。这是由于交易是从不同位置同时提交的,以及它们传播所需的时间。因此,每个内存池都包含一组独特但非常相似的交易。

在 3,100 个区块生成节点中,每个节点都有可能生成包含一组类似交易的新区块。被选为下一个时隙领导者的节点将负责生成这个新块。

卡尔达诺作为需求驱动的协议运行。每个节点控制传入数据的速率、最大并发性(同时任务的数量)和未完成数据量(已发送但尚未确认的数据)。这意味着每个节点仅在准备就绪时请求额外的工作,而不是强加工作。

节点到节点(NtN)协议通过中继节点促进全节点之间的交易传输。 NtN 包含三个迷你协议(链同步、块获取和 tx 提交),它们在单个 TCP 通道上复用。

NtN 采用基于拉动的策略,其中发起者节点请求新事务,响应者节点提供事务(如果可用)。该协议非常适合无需信任的设置,在这种设置中,双方都需要防范来自另一方的资源消耗攻击。

在下图中,您可以观察池之间的区块扩散是如何通过迷你协议发生的。 Alice 将交易提交给节点 1(由红色箭头表示)。节点 2 的内存池中有可用空间,开始向其附近请求事务。节点 2 向节点 1 发送请求,从而获取 Alice 的交易(如蓝色箭头 1 至 6 所示)。片刻之后,节点 3 执行相同操作,询问节点 2(蓝色箭头 7 到 12)。 Alice 的交易现在存在于所有内存池中。

每个节点负责在中继交易之前验证交易。如果节点发送无效或未经请求的交易,则有被其他节点断开连接的风险。为了维持其网络连接,节点可以选择与不同的节点连接。

重要的是要了解内存池是从网络中的各个点同时填充的。许多用户通过不同的中继节点同时提交交易。然后这些交易通过迷你协议逐渐传播。

在附图中,您可以观察三个内存池的逐步填充。 Alice、Bob 和 Bot 各自从不同的位置提交交易。在 TIME-1,每个内存池包含一个交易。到 TIME-2,节点已从其对等节点提取交易。现在,所有内存池都包含一个机器人交易操作和两个用户事务。无论哪个节点成为时隙领导者,后续区块中的交易集都将是相同的。

让我们深入研究一下垃圾邮件攻击期间会发生什么。

机器人可以用有效的垃圾邮件交易淹没单个节点,填满该节点的内存池。一旦内存池饱和,节点将停止接受新交易,即不会将它们添加到内存池中。

其他节点只有在其内存池中有空间时才会开始提取交易。他们提取的交易可能是机器人生成的交易和用户生成的交易的组合。

节点可以从其中继节点接收用户交易。如果一个节点有足够的交易来填充其内存池,则它不需要从其他节点提取交易。这是网络中所有节点的标准做法。如果机器人针对单个节点,它将无法阻止大多数用户交易包含在后续区块中。

成功攻击的可能性随着机器人瞄准的节点数量的增加而增加,因为它们会用有效的垃圾邮件交易填充更多的内存池。然而,这极大地使攻击变得复杂并增加了其成本。

每个选择拒绝交易的节点,认为它们是机器人生成的,本质上是保护网络中的其他节点。

在附图中,您可以看到机器人将有效的垃圾邮件交易发送到节点 1。节点 1 的内存池可能充满了有效的垃圾邮件交易。同时,Alice 和 Bob 将有效的用户交易发送到节点 3。节点 3 在其内存池中有空间,只从节点 2 中提取一个有效的垃圾交易。如果节点 3 在下一轮中成为时隙领导者,则大多数区块中的交易将来自用户。

如果节点 1 或节点 2 被选为槽领导者,则生成的块将充满垃圾邮件交易。然而,如果用户能够成功地将交易提交到内存池,那么所有交易最终都会找到进入区块的方式。

可以看出,卡尔达诺在任何给定时刻接受的交易最多可达各个节点上各个内存池的容量。它不区分垃圾邮件交易和用户交易。

收到新区块后,节点会检查该区块内的交易,并将这些交易从其内存池中删除。此操作释放内存池中的空间,允许节点接受新交易。

如果所有内存池中都存在相同的垃圾邮件交易,则所有内存池将在两个区块内再次清空。

如果唯一的垃圾邮件交易填满了所有内存池,则每两个新生成的区块后只有一个内存池会被清空。

如果攻击者的目的是长时间阻止新用户交易的提交,他们必须不断尝试用独特的垃圾邮件交易填充所有内存池。一旦内存池被清空,用户就有机会在攻击者之前提交交易。

如果攻击者在网络内的单个位置提交垃圾邮件交易,这些交易可能会使特定节点的内存池饱和。同时,这些垃圾邮件交易可能会在短暂的延迟后被相邻节点部分拉取。然而,一旦这些交易被包含在一个新的区块中,几个内存池将同时被清空。距离较远的节点更有可能在其内存池中拥有更高比例的用户交易。

垃圾邮件攻击的大致成本
让我们来分解一下数字。

内存池可容纳 600 个标准交易。假设 ADA 当前的市场价值,填充单个内存池的交易费用将达到 50 美元。

由于有 3,100 个节点,每个节点都有一个内存池,攻击者同时用唯一交易填充所有内存池的成本约为 155,000 美元。这将需要提交 180 万笔交易。

卡尔达诺每秒可以处理 15 笔标准交易,相当于每天约 130 万笔交易。这意味着在一天和几个小时内,卡尔达诺将能够处理内存池中的所有唯一交易。

然而,一旦内存池中有可用空间,用户就会立即提交新交易。其中一些新提交的交易将在内存池中的旧交易之前得到处理。因此,实际上,从内存池中清除所有垃圾邮件交易需要更长的时间。

攻击者可以选择延长攻击时间。

ADA 币市场价值的增加会增加执行垃圾邮件攻击的成本。此外,如果卡尔达诺的交易处理速度(TPS)得到提高,比如通过输入背书者的实现,它将进一步增加攻击成本。加速的交易处理迫使攻击者以更快的速度提交有效交易(包括费用)。分级定价的实施对垃圾邮件的抵制产生积极影响交易,因为较高级别的交易变得更加昂贵。

结论
重要的是要了解,针对垃圾邮件交易的弹性取决于网络中各个节点对交易的公平接受。即使在网络拥塞的情况下,用户也应该能够及时提交交易,并确信他们的交易将被包含在即将到来的区块之一中。当然,有些用户可能无法提交交易。均衡的交易费用是防范垃圾邮件交易的最佳保护措施。

不应有一个中央机构有权决定拒绝哪些交易或以任何方式限制交易流。从区块链三难困境的角度来看,挑战是在不牺牲去中心化的情况下实现高 TPS。对于目前 TPS 高、交易费用低的网络,您通常会发现一些中心化的元素。