声明:本文旨在传递更多市场信息,不构成任何投资建议。文章仅代表作者观点,不代表MarsBit官方立场。
边肖:记得要集中注意力。
资料来源:马斯比特
我最近一直在设计一个区块链应用程序,它需要有一些复杂的可伸缩性需求。我非常高兴地看到了最近推出的Aptos区块链(被称为'索拉纳杀手'),并与Aptos和索拉纳的团队(包括大师本人阿纳托利)进行了交谈。
在本文中,我将解释Aptos可伸缩性的限制,以及为什么Solana不受Aptos的这些限制。虽然标题可能暗示了一些东西,但我不是索拉纳的最大股东,我在任何一个区链中都没有持有多少股份。
条件以太坊上的所有交易都是由独立的事件记录执行的。你可以把这些交易想象成单行道上的汽车。
该系统只能在一段时间内处理一定数量的车辆。在交通堵塞期间,该系统必须决定哪些车辆需要被包括在一个“街区”中,哪些车辆需要被拒绝。我们称这个过程为‘选车’。
独立事件的执行在某些情况下非常重要。例如,在铸造NFT时,每个NFT都有一个唯一的数字1、2、3、4等,这一点非常重要。由于这个原因,所有这些汽车必须一次又一次地处理掉。
现在想象一下,有两个不同的NFT收藏同时铸造硬币。在这种情况下,同一组的所有NFT必须按顺序铸造,但是每组NFT可以有自己的通道。你可以把这想象成一条双车道的高速公路。
以太坊只有一条车道,也就是说所有的车必须堆在一条车道上。
Aptos和Solana采用不同的方法提供多车道高速公路,从而大大提高系统的整体吞吐量。我们将在本文中比较这些方法。
SolanaSolana强制汽车提前指定车道。系统将交易(汽车)分组到车道,然后发送给它们执行。这条多车道高速公路大大增加了系统容量(TPS)。
提前指定需要哪条车道可能会有点难受。正因如此,Aptos希望像Solana一样处理多车道的交易,而不需要指定车道(系统会帮你计算车道)。
AptosAptos的算法被称为‘Block STM’,它将汽车添加到一个‘Block’中,而不知道这些汽车将使用哪条车道。这些车是按顺序排列的,虽然都共用一个车道(类似eth)。
当Aptos执行器接收到有序的汽车块时,执行器可以在执行过程中将汽车分成车道(你可以在这里了解更多关于这些细节)。可以用不同车道的车,把被执行人放在不同的车道。
Aptos的Block-STM的问题在于,当交通拥挤时,系统必须决定哪些汽车应该被包括在该街区中,哪些应该被拒绝(我们称之为‘车辆选择’)。在做出这个决定的时候,Aptos并不知道这些车的车道(是在执行的时候计算出来的)。相反,Aptos选择出价最高的汽车,并将其纳入区块。
让我们假设有四个车道,但所有最高出价者需要使用同一车道(假设他们都在铸造相同的NFT系列)。
系统为此区块选择了3笔交易。所有交易最终都需要使用同一个通道。
我们可以看到有几条车道没有使用。该系统仅发挥了其1/4的能力。如果系统在选车时能提前知道车道情况,就能把多余的车派到这些空车道上。
遗憾的是,Aptos在选择车辆时没有这些信息。简而言之,系统仍然存在单向瓶颈,只是发生在不同的地方。
遗憾的是,在block-STM中,无论你增加多少车道,都很难增加一个街区的车数(选车系统不知道所选的车是否需要同一车道)。
为什么索拉纳表现更好?索拉纳强迫汽车提前指定车道。虽然这可能会使开发更不舒服,但它允许“汽车选择”系统根据车道信息选择汽车。索拉纳的“车辆选择器”可以在每条车道的基础上限制一个街区的汽车数量。
这允许系统限制拥挤的车道,但允许车辆在不拥挤的车道上行驶。我们可以在图中看到这是如何增加系统的总吞吐量的。
索拉纳也接受按莱恩计算的优先权费。上图中,第二车道的车可能会提供额外的费用被移到第二车道的前面,但最后一个车道的车没有理由提供这样的费用(这个车道没有竞争)。
这也鼓励了开发者继续编写可以在免费车道上使用的代码。不需要使用繁忙车道的汽车竞争会更少,成本也会更低。所以开发商会更多的使用免费车道,总系统(TPS)会更高。
但Aptos不是。在Aptos中,即使你的代码写的是使用空车道,在‘选车’过程中,所有的车都是一视同仁的。你的用户(汽车)将不得不与所有车道竞争,以获得“车辆选择”队列的前列。这意味着开发商没有动力去使用和开发免费车道(收费是一样的)。