Multicoin Capital: The Hidden Costs of Modular Systems

'Multicoin Capital: Hidden Costs of Modular Systems'

模块化系统给开发带来的复杂性

在区块链技术中,模块化系统被用于构建应用程序,但是模块化系统也给开发人员带来了一些复杂性。首先,模块化系统增加了应用程序开发人员必须管理的复杂性。无论是在他们自己的应用程序中还是在与其他应用程序和状态部分的交互中,都会增加技术和社会复杂性。

在技术复杂性方面,模块化系统使得开发人员需要处理更多的组件和功能模块。这些模块可能有不同的技术实现和接口,需要开发人员进行整合和协调。这可能导致代码的复杂性增加,也增加了程序出错的风险。

在社会复杂性方面,模块化系统涉及到多个应用程序之间的交互和协作。开发人员需要考虑其他应用程序的状态和行为,以确保它们能够正确地工作。这需要开发人员与其他开发人员进行沟通和协调,增加了开发的难度。

虽然模块化系统可以提供更大的灵活性和可扩展性,但也带来了一些挑战。模块化系统需要开发人员投入更多的时间和精力来管理复杂性,这可能会增加开发周期和成本。开发人员需要在技术和社会复杂性之间进行权衡,找到合适的平衡点。

模块化链的执行性能问题

另一个问题是模块化链无法更快地执行代码。模块化链通常被定义为数据可用性(DA)和执行的分离。然而,在实践中,分离数据可用性和执行并不会本质上提高性能。

不论是模块化链还是集成架构,执行代码的工作量是必须完成的。将数据可用性和执行分开,并不能加速或增加系统容量。

以一个简单的比喻来解释这个问题。假设你需要做一个蛋糕,按照模块化链的方式,你将任务分成了两个模块:制作蛋糕的材料和完成蛋糕的步骤。这样分离后,你需要花费同样的时间和精力来完成蛋糕。无论是在模块化链还是集成架构中,完成这个任务的工作是一样的,只是分配给不同的模块而已。

因此,模块化链并不是提高执行性能的最佳方案。开发人员应该慎重考虑选择何种架构来满足其需求,而不是盲目追求模块化链的设计。

模块化的用户交易成本

另一个挑战是模块化增加了用户的交易成本。在区块链中,资产的发行和交易是很重要的功能。当资产在单一层面上发行并且交易在单一状态机内进行时,去中心化金融(DeFi)将能够发挥最佳效果。

然而,随着资产层的增加,应用程序开发人员必须管理更多的复杂性。他们需要考虑不同资产之间的交互和兑换,以确保系统的正常运行。这增加了开发人员的工作量和风险,也增加了用户在使用这些应用程序时的成本。

举个例子来说,如果一个用户想要在应用程序A中购买一种代币,然后在应用程序B中使用这个代币进行交易,那么用户就需要在两个不同的应用程序之间进行交互。这不仅增加了用户的操作成本,还可能涉及到不同应用程序之间的技术和社会复杂性,给用户带来更多的挑战。

因此,开发人员在设计应用程序时,应该考虑到用户的交易成本,尽量减少用户需要进行的操作和交互,提供更简单和便捷的用户体验。

应用 rollups 对开发者的盈利机会

还有一种观点认为应用程序rollups可以为开发者创造新的盈利机会。然而,运行应用程序rollups并不是将MEV(最大交易价值)捕获回应用程序层代币的唯一方法,也并不是最佳方法。

应用程序rollups的思想是在链上执行一些简单的操作,然后将复杂的计算和数据处理放到链下进行。这样做的目的是提高性能和处理能力。然而,在大多数情况下,推出一个全新的链并不是必要的。

举个例子来说,假设你需要留在家里休息,但你还想跟你的朋友聚会。你可以选择自己在家做饭,然后与朋友在外面交流,也可以选择去附近的饭店就餐。在后一种情况下,你无需花时间和精力来准备食物,只需要支付饭店餐费即可。

同样地,开发人员可以选择在链上执行一些简单的操作,并将复杂的计算放到链下进行,而无需创建一个全新的链。这样做可以减少开发人员的工作量和复杂性,提供更简单和便捷的开发体验。

因此,开发人员应该审慎考虑运行应用程序rollups的需求,避免不必要的技术和社会复杂性,并提供更好的用户体验。

解决跨应用程序阻塞问题

另一个问题是应用程序rollups无法解决跨应用程序阻塞的问题。解决高费用问题的唯一解决方案是最大化L1数据可用性,使费用市场尽可能细化。

通过推出许多资产层,开发人员可能会增加技术和社会复杂性,而不会带来真正的性能收益。即使在其他应用程序推动交易量增加的情况下,这个问题依然存在。

举个例子来说,假设你在一个高峰期需要从一个市场买入一种商品。在高峰时段,市场的交易量可能会增加,导致交易费用上升。要解决这个问题,最好的方法是增加市场的交易能力,而不是仅仅增加资产层。

因此,开发人员应该考虑如何提高整个系统的性能,而不是仅仅增加资产层的数量。

模块化链的灵活性

支持者认为模块化链更加灵活。这句话显然是正确的,但尚不清楚这是否重要。

灵活性是指系统对变化的适应能力。模块化链可以通过组合和替换不同的模块来适应不同的需求。这使得开发人员可以根据自己的需求和优势选择适合的模块。

然而,灵活性并不是唯一的考虑因素。在选择开发架构时,还需要考虑其他因素,如性能、安全性和可扩展性。

因此,开发人员需要在模块化和集成架构之间进行权衡,找到最适合他们需求的方案。

扩展数据可用性的方法

有很多方法可以扩展数据可用性,例如重新抵押和模块化。然而,在当前情况下,这些机制并不是必要的。

扩展数据可用性是指提高系统中数据的可访问性和可用性。通过重新抵押和模块化可以增加系统的灵活性和处理能力。

然而,这些机制也会带来额外的复杂性和成本。目前,通过提高链的数据可用性已经可以满足大多数需求。

因此,开发人员需要根据实际需求来选择适当的方法来扩展数据可用性,并权衡复杂性和成本的问题。

为开发者构建应用程序

最后,我们得出的结论是模块化本身不应该是一个目标,而是为开发者构建应用程序的手段。

模块化构建块为开发者提供了灵活性和可扩展性的选择。然而,从最终用户和开发者体验的角度来看,集成数据可用性和执行的链提供了更简单和高效的解决方案。

因此,构建胜利的关键在于弄清楚堆栈的哪些部分需要集成,哪些部分可以交给其他人来处理。

总之,模块化系统在区块链技术中具有重要的作用,但也带来了一些挑战。开发人员需要在技术和社会复杂性之间找到合适的平衡点,以提供更好的用户体验和开发体验。只有这样,模块化系统才能够真正实现其价值。