混合 dApp 和智能合约的未来
2022 年 WASM 会议后发布材料
从历史上看,构建区块链协议时只有几种选择:使用智能合约构建并将其部署到第 1 层或第 2 层区块链,或者将其构建为第 1 层或第 2 层区块链。每个选项都有自己的优点和缺点,但总有一些权衡取舍。然而,还有第三种选择目前还未被探索。我们可以同时决定这两个选项。通过深思熟虑地设计组件架构并创建一个混合 DApp,利用开头提到的两种方法的优势,可以实现两全其美。使用在同一虚拟机(例如 WASM)中运行的相同语言(例如 Rust)构建区块链和智能合约的能力开辟了许多有趣且可能具有革命性的可能性。
Acala和协议的设置
Acala 是为 aUSD(原生多链超额抵押稳定币)生态系统提供支持的去中心化金融网络。 aUSD 是 波卡。 波卡 和 Kusama 的原生去中心化稳定币,可以轻松且无需信任地集成到平行链和 DApp 中。 aUSD 协议实施了先进的风险管理机制,例如链上管理员系统和 Oracle 价格源的服务质量。
Acala 利用由 Substrate 和 波卡 的共享安全性和跨链交互协议提供支持的独特功能,为构建新一代 DeFi 协议奠定了坚实的基础。通过提供 pallet 和智能合约协议,可以从混合 DApps 架构中实施新的创新想法。
Acala 支持三种原生协议:
- Homa Liquid Staking 为 LDOT/LKSM 抵押衍生品提供支持,作为 aUSD 的高质量抵押品和 波卡 上 DeFi 的重要组成部分
- Acalaswap 是一个不断发展的 DeX 聚合器。其核心目的是加强 Acala 网络任何代币功能中 aUSD 和 power pay 费用的清算机制。
- EVM+ 汇集了 Substrate pallet 开发和智能合约开发的精华;它使 Acala 成为多链流动性中心,智能合约可以将 波卡 原生资产无缝集成为 ERC 资产,而 ERC 资产可以成为 波卡 原生资产,并无需信任地交叉到任何其他连接的平行链。 EVM+ 还允许开发人员构建与原生Pallet协议集成并利用强大的 Substrate 功能(例如自动调度程序)的混合 DApp。
不同类型 DApp 的示例
- 使用Pallet构建的核心协议:aUSD 稳定币、Liquid Staking 和 Acalaswap。
- 智能合约 dapps:Wormhole(多链桥)、Citized(兼容 波卡 Launchpad)、Project Venkman(现实世界企业的忠诚度和 NFT 平台)
- 使用pallet和智能合约构建的混合协议:Taipo(稳定交换和合成资产)和 Kujira(清算市场)
编译与脚本方法
当团队考虑在 波卡 生态系统中构建他们的解决方案时,他们通常会考虑是否应该构建Pallet或智能合约。确定最佳选择需要了解Pallet和智能合约的优缺点,以及它们如何相互比较。有趣的是,这种比较类似于在构建 web2 项目时选择编译语言(例如 C++、Rust、Go)与选择脚本语言(例如 JavaScript、Python、Ruby)之间的比较。
Pallet的优缺点
构建Pallet的主要优势是能够访问平台的原始性能。这样,应用程序速度更快,使用的内存或存储空间更少。这也意味着应用程序可以直接访问低级功能,并可以使用各种可能可用的高级 API。由于访问低级原语的能力转化为更多的优化可能性,因此使用智能合约无法匹配性能。
使用 pallet 方法的缺点是 pallet 的开发、部署和执行反馈循环通常比智能合约长得多。这是因为整个运行时通常需要更长的时间来构建,更改会影响多个其他模块,此外,运行时的部署通常需要一个漫长的治理过程,类似于将本机应用程序部署到应用程序商店时的一个漫长的审查过程。访问低级原语的能力可能很强大,但同时引入了其他需要考虑的安全方面。这些包括但不限于逻辑错误、资源耗尽错误和拒绝服务攻击媒介。如果运行时出现恐慌,区块链可能会变砖并且很难恢复。将 pallet 方法的所有潜在陷阱加起来意味着学习曲线非常陡峭,因为除了编写业务逻辑之外还需要大量的知识。
智能合约的优缺点
与Pallet相比,智能合约提供了一系列全新的优点和缺点。智能合约的主要优势在于它们更易于访问。智能合约的部署通常是无需许可的,因此任何有足够资金支付交易费用的人都可以部署自己的智能合约。这类似于应用程序为外部开发人员提供使用脚本语言编写和部署插件的能力。智能合约的另一个好处是开发和部署周期通常更快,因为需要的编译更少,部署也更容易和更快。这可以通过让开发人员拥有更短的反馈循环并可以更快地根据实际执行调整代码来提高生产率。智能合约和脚本通常在沙箱中执行。虽然这意味着可能会限制可以做什么,但这也意味着代码不能做它不应该做的事情(除非沙箱中存在严重漏洞)。安全仍然是任何智能合约的首要任务,但如果出现任何问题,沙箱将确保只有有故障的智能合约(以及依赖它的合约)受到影响,而不会损坏潜在的平台。智能合约的另一个好处是开发人员只需要关注业务逻辑,而不用担心许多额外的细节。这意味着它们的学习曲线更加渐进,新开发人员也更容易上手。
在沙盒内运行也会引入额外的开销。这意味着应用程序可能会因开销而变慢并使用额外的资源。由于应用程序只能访问沙箱公开的功能,因此它可能无法访问一些被认为具有潜在不安全性的更高级的功能。智能合约只能执行平台允许的任何内容。
去中心化应用 设计的混合方法
我们观察了这两种方法的优点和缺点。然而,如果我们深思熟虑地处理我们的应用程序组件的设计,我们可以创建一个混合应用程序,利用这两种方法的好处,同时避免许多缺点。这种方法已经被用于解决各种用例,例如游戏引擎、IDE 和自动化工具。游戏引擎通常使用 C 或 C++ 等系统编程语言编写,因为它们对性能和资源使用非常敏感。它们还需要直接控制执行和所有资源。但是,为了提高游戏开发的生产力,大多数游戏引擎可以为对性能不敏感的游戏逻辑嵌入脚本语言。 IIt 为第三方开发人员创建自定义模组并向游戏添加其他功能创造了可能性。开发人员有能力在现有游戏之上构建新游戏。另一个例子是 IDE 和高级文本编辑器。他们中的大多数都支持第三方插件,允许第三方开发人员创建和发布插件以进一步增强其功能。为 IDE 创建新插件以支持新语言相对容易,根本不需要 IDE 团队参与。
检查传统应用程序如何采用混合方法可以深入了解在构建 去中心化应用 时如何使用类似方法。与游戏引擎设计非常相似,性能敏感的功能是用编译的编程语言实现的,计算密集型操作应该在Pallet中实现,以避免额外的开销,并以智能合约可以访问的方式公开它们.许多功能,如挂机初始化和交易费用定制,直接暴露给无需许可的智能合约是不安全的。但是,为特定目的公开一组有限的功能是安全的,以允许智能合约也利用这些高级功能。
例如,可以使用 Acala Swap 上列出的任何 ERC-20 代币在 Acala 中支付交易费用。由于安全要求和去中心化治理的性质,运行时升级过程必须很慢。这意味着部署Pallet的新更改可能需要大量时间。为此,Pallet代码需要稳定,需要频繁修改和升级的代码应该用智能合约实现,可以相对快速地升级,这取决于治理配置。例如,代币费用模型可以在智能合约中实现,允许任何人提出自己的模型并使用治理来决定选择哪个模型。智能合约可以增强Pallet代码。我们可以使用智能合约来实现更高级的批量交易机制,以根据各种条件自动智能地执行多步操作。这可以让每个人都能轻松获得先进的单产农业策略。我们还可以使用智能合约来补充Pallet。例如,我们可以实施被动清算池策略,在链下清算机器人上参与稳定币清算,从而主动参与清算。这些只是可以做什么的几个例子。混合 pallet 方法还有很多有趣的应用,它们可以改变我们构建 去中心化应用 的方式。
使用!ink专门构建的另一个优势!和 WASM 智能合约,如果它们由支持 Substrate 链的相同工具提供支持:Rust 和 WASM。这意味着有时您甚至不需要决定最初执行逻辑的位置。通过正确的抽象,您可以将逻辑设计为通用且可在Pallet和智能合约中运行。这提供了探索构建组件的最佳方式的自由,而无需在开发中过早地承诺一个选项。因此,我们可以在 pallet 和运行时之间共享很多代码。例如,XCM 定义了很多结构,用其他语言重新定义会很麻烦。但是用!ink理论上,我们可以只从 波卡 导入 crate,并拥有 XCM 的最新定义。在 pallet 和智能合约之间共享代码和接口的能力可以显着减少构建和维护混合应用程序所需的工作量,并消除由不匹配接口引起的一类错误。这也为智能合约提供了毕业路径。人们可以使用智能合约制作原型并启动他们的项目,部署到支持智能合约的平行链之一,然后,如果需要,可以通过重用大部分现有代码将它们升级为平行线程或平行链。
去中心化应用 区块链的未来
区块链应用程序开发或 去中心化应用 开发的障碍之一是设计方法的复杂性;开发人员必须选择Pallet路线或智能合约路线,并接受每个选项的优缺点。然而,通过混合设计,开发人员可以充分利用两全其美。
游戏等传统应用程序展示了利用不同方法交付高效、高性能应用程序的有效性。将相同的概念应用于 去中心化应用 鼓励对 去中心化应用 开发进行创造性思考。智能合约和 pallet 巧妙地、有目的地使用时,这两种技术可以协同作用,促进高级行业场景中复杂逻辑的执行。
混合模型为开发人员在区块链世界中的集成和进步提供了途径。通过混合模型,智能合约和 pallet 之间的代码共享能力鼓励开发人员逐步改进 去中心化应用 设计,智能合约和 pallet 之间的代码和接口交换可以激励开发人员继续构建,以不断升级或改进他们的 去中心化应用,因为他们更好地理解混合模型。
因此,混合应用程序凸显了智能合约的未来,开发人员将它们用作创建整体、强化平台的垫脚石。
This would be my translation work
0 comments