智能合约上链是唯一解?探究 MEM 如何另辟蹊径,无缝构建 Web3 应用

  • PermaDAO
  • 更新于 2023-11-21 13:18
  • 阅读 580

erverless functions(函数计算)是 Serverless 架构中的小型、独立代码单元,用于执行特定任务,通常以事件触发方式运行,无需维护服务器。它们简化开发,降低成本,提供弹性和可伸缩性,适用于各种应用。

1.png 作者:Kyle @ Contributor of PermaDAO

审阅:Sandy @ Contributor of PermaDAO


云计算的演进与 Serverless 的崛起

云计算的前世今生

云计算是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需求提供给计算机各种终端和其他设备,使用服务商提供的电脑基建作运算和资源。——维基百科

在过去的十年里,云计算已经崭露头角,不仅成为移动和内容服务的重要基础,还逐渐取代了传统企业计算环境。服务器作为计算硬件的核心,针对各种不同的计算需求逐渐多样化和发展。

云计算的起源众说纷纭,而大家普遍都认为开创者是 Google 前 CEO 埃里克·施密特,他在 2006 年搜索引擎大会上第一次提出了云计算的概念,发展至今也已经差不多二十年了。若要追溯云计算的演进过程,大致依次经历了以下几个阶段:

阶段 描述
物理服务器 互联网初期,Web 基础架构依赖庞大、昂贵、难以维护的物理服务器,导致资源浪费和应用冲突等问题。
虚拟化 虚拟化通过软件模拟物理服务器硬件,增加了程序的可移植性,但仍需考虑硬件需求和运营成本。
基础架构即服务(IaaS) IaaS 提供网络、存储和计算资源,客户按需使用,减少硬件管理成本,但仍需考虑基础架构管理。
平台即服务(PaaS) PaaS 是在 IaaS 之上的服务,简化应用部署和管理,但有时限制了选择的语言、库和功能。
云计算 云计算通过互联网提供计算、存储和服务,让用户能轻松访问和使用资源,而不必依赖本地设备,提供了灵活便捷的计算和资源管理方式。

在云计算技术引领快速发展的时代,出现了一个必然产物:云计算 2.0—— Serverless。

云计算 2.0—— Serverless

Serverless(无服务架构)是由 Iron 公司在 2012 年首次提出,而被大家熟知是 2014 年亚马逊云科技推出了 Amazon Lambda 之后。作为云计算的一种特定计算模型,Serverless 让开发者只需要专注于编写代码,无需关心底层服务器的管理。Serverless 的软件架构由 FaaS + BaaS 构成。

  • FaaS(函数即服务):FaaS 提供函数级别的计算服务。开发者可以编写单独的函数,并在需要时触发它们,云服务提供商负责管理函数的运行环境和资源。
  • BaaS(后端即服务):BaaS 专注于提供后端支持服务,如数据库、身份验证和存储。

Serverless 具备三个核心价值:弹性伸缩、按需付费和运维简化,被视为下一代计算引擎。正如 Serverless 白皮书作者 Johann 的观点——Serverless 简化了云计算的编程,其代表了程序员生产力的又一次的变革,如编程语言从汇编时代演变为高级语言时代。

然而,笔者通过回顾云计算的前世与了解今生的 Serverless,目的是为了便于读者理解下一个陌生的概念—— Serverless functions。

搭建 Serverless 的积木—— Serverless Functions

Serverless functions(函数计算)是 Serverless 架构中的小型、独立代码单元,用于执行特定任务,通常以事件触发方式运行,无需维护服务器。它们简化开发,降低成本,提供弹性和可伸缩性,适用于各种应用。

2.png

图片描述:Serverless 架构组成

具体来说,Serverless 架构包括 FaaS(函数即服务),它允许开发者在构建应用程序时将其分解成独立的小函数,即 Serverless functions(函数计算)。每个函数计算都由 FaaS 进行托管,根据流量需求自动扩展,使应用程序更具弹性高效。

函数计算与智能合约

智能合约是一种在区块链上运行的自动化合同,与此不同,函数计算在云环境中提供灵活的计算,把开发者从繁琐的服务器运维管理中解放出来。然而,它们虽然所处的领域不同,但也存在着相似性——两者都是能够自动执行、由事件驱动的代码片段。

智能合约和函数计算都是引人瞩目的创新,但它们都存在着自己的局限性。

智能合约的局限性

智能合约提供了可靠、不可篡改的执行框架,通过区块链确保去中心化、透明和安全的交易,但同时也存在安全性、灵活性、高成本等方面的问题。

  • 安全性隐患:因为代码通常都是开源的,而且无法修改,可能导致被黑客发现漏洞发起攻击。
  • 缺乏灵活性:由于区块链的不可篡改性,一旦智能合约完成部署,合约需要更新或改进会很困难。
  • 高昂的成本:执行智能合约可能涉及高昂的计算资源成本,例如以太坊。

函数计算的局限性

函数计算的出现彻底改变了我们构建、部署和管理软件应用程序的方式,但这不妨碍它会存在一些缺点,包括:

  • 冷启动延迟: 当函数计算长时间没有被调用后,下次调用时可能会发生冷启动。系统需要重新分配资源和初始化环境,导致函数执行时间延迟。
  • 难以调试: 由于函数计算是基于事件触发的,调试过程可能相对复杂。你不能像传统的本地开发环境一样轻松地对整个应用程序进行调试,因为函数计算是分散部署在云端的。
  • 供应商锁定: 使用特定云服务提供商的无服务器平台可能导致供应商锁定。如果你的应用程序依赖于特定云服务提供商的特性和功能,转移到另一个云平台可能需要大量的重写和调整。

从构建 Web3 应用的角度看,函数计算的确可以提供更好的开发体验,但它除了上述的局限性,还存在中心化的问题。当然,智能合约也存在很多问题,并且其经常为了接入外部数据源,也会引入中心化的中间件。对于开发者来说,难道构建 Web3 应用就没有更好的选择了吗?

MEM—— Web3 的 Serverless Functions 平台

Molecular Execution Machine(MEM)由 Decent Land Labs 团队推出,是一个基于 SmartWeave 标准的、可扩展的、支持 Web3 的 Serverless Functions(函数计算)平台,其提供了无需支付 Gas 费的智能合约执行环境,开发者无需拥有自己的服务器,可以在任何区块链上无需信任地构建和部署 Web3 应用程序。此外,MEM 不局限于为 Web3 应用提供服务,还可以无缝集成到 Web2 应用技术堆栈中。

MEM 将函数计算的可扩展性与区块链的透明度相结合,使应用程序能够在不牺牲用户体验的情况下保持去中心化。这些都得益于 MEM 具备的核心特性:

  • 支持多种编程语言:MEM 构建在 3em之上,支持多种编程语言用于编写智能合同,包括JavaScript/TypeScript、Rust、C/C++、Zig、GoLang、Solidity 和 Vyper。
  • 多链身份验证:MEM 智能合约可以在多个不同的区块链网络上进行身份验证,包括 Arweave、Ethereum、Solana、Polkadot、ICP 和 Tezos 等,从而实现无缝互操作。
  • 与区块链无关:MEM 在设计上与区块链无关,所以开发人员无需深入了解区块链,只需安装 MEM SDK 或 MEM CLI 即可轻松开始构建应用程序。
  • 安全且隔离的运行环境:MEM 提供了一个安全的智能合同评估运行环境,确保合同免受潜在漏洞和恶意活动的威胁。
  • 无钱包交互(可选):MEM 支持无钱包功能,这意味着用户无需加密货币钱包即可使用,提高了应用易用性。

为什么需要 MEM?

在构建和发展 Web3 应用的过程中,我们时常面对一个关键问题:如何确保应用在用户规模不断增长的情况下保持可扩展性和可组合性?当前普遍采用的方式是通过“智能合约 + 自定义中间件”来实现。然而,这些中间件通常以函数计算的形式在 Web2 中心化的云平台(如 AWS Lambda)上运行,这与 Web3 的核心理念存在一定的背离。

3.png 图片描述:中心化中间件 来源:https://pbillingsby.hashnode.dev/serverless-functions-with-molecular-execution-machine

MEM 方案——实现可扩展性与透明性的平衡

当我们审视 Web3 项目的构建方式时,会发现我们正处于 Web2.5 时代,仍然依赖着中心化的 API 和中间件。即使像 AWS Lambda 这样强大的传统函数计算平台作为中间件,对于 Web3 来说就是一个封闭的“黑箱”,缺乏对内部代码执行和状态的外部验证机制。

与此同时,当即使在使用最广泛的以太坊虚拟机(EVM)上运行智能合约,也还是无法解决性能限制、可扩展性差与高成本等问题。

4.png

图片描述:MEM vs EVM vs AWS Lambda 来源:https://pbillingsby.hashnode.dev/serverless-functions-with-molecular-execution-machine

MEM 为这些问题提供了全新的解决方案,可以弥合可扩展性与透明性之间的差距。MEM 可以高效地处理交易信息,即时地更新合约状态,并将其永久记录在 Arweave 网络上。任何人都可以独立验证合约的结果,保障公开透明且可验证性。此外,MEM 的智能合约可以通过使用 Molecule 库,使其能够像处理数据的智能合约一样执行各种操作,更具可扩展性。

如果从更宏大的视角去看,MEM 从技术层面上给 Web2 与 Web3 领域带来许多积极的影响。

  • 从 Web2 层面看:与 Web2 的函数计算不同,MEM 函数是有状态的,而且在执行响应中可以快速、准确地更新智能合约的状态。同时,MEM 采用惰性评估提高效率,允许任何人验证合约状态是否完整准确。最重要的是,MEM 还继承了区块链的去中心化等特性,并且无需使用加密钱包,从而消除了 Web3 的高门槛。总而言之,MEM 同样是 Web2 应用程序堆栈的理想选择。
  • 从 Web3 层面看:除了前文所提的优点,MEM 还具备出色的灵活性,不仅支持跨链进行身份验证,还可以从任何链或 API 调用数据。同时,MEM 是兼容任何编程语言的,这极大地降低了开发者的学习成本。此外,开发者在 MEM 构建应用无需支付 Gas 费,加上低进入门槛等特性,未来有望会更广泛地被应用。

MEM 技术架构

MEM 建立在 molecule.sh、Arweave 和 3EM 的堆栈之上,是 VACP(可验证原子计算范式)的实现,通过结合惰性评估、无需许可的可验证计算和防篡改数据可用性层,旨在保持核心去中心化原则的完整性,同时解决可扩展性和用户体验问题。

技术堆栈

MEM 整合了一系列前沿的技术,共同打造一个强大且创新的开发平台。以下是构成 MEM 基础的一些核心平台和协议:

  • 3EM:3EM 是 Arweave 生态内智能合约的执行环境,具有超高速、安全可靠、支持多种编程语言等特点。MEM 利用 3EM 为智能合约提供了运行环境。
  • Bundlr & Arweave:Bundlr 高效地将 MEM 交易打包上链到 Arweave 网络,而 Arweave 则作为 MEM 的数据可用(DA)层,永久存储数据以确保安全。
  • everPay:everPay 是一个毫秒级交易速度、0 gas 的金融协议,MEM 与其集成可以创建出具有支付功能的金融 dApp。
  • molecule.sh:molecule.sh 库扩展了原生 MEM 功能,充当 MEM 合约和 RESTful 服务之间的桥梁,增强了 MEM 应用的可扩展性和灵活性。
  • Supabase & Vercel Serverless Functions & PlanetScale:三者都是组成 MEM 后端架构的关键组件,可以为 MEM 提供了企业级可扩展性,并且可以快速可靠地处理大量的数据和交易,给用户带来了良好的体验。

可验证原子计算范式(VACP)

MEM 就是原子计算范式(VACP)的实现。VACP 全称为 Verifiable Atomic Computing Paradigm,是由 Decent Land Labs 团队提出的一种全新的可扩展性解决方案。它将 Web3 应用中的计算和存储工作分开——链下计算、链上存储,旨在解决 Web3 中的可扩展性和用户体验问题,同时保持去中心化原则。

VACP 关键要素

VACP 为 Web3 开发人员提供了一个强大的框架,既能实现可扩展和可验证的计算,又能保持去中心化、透明度和数据可信。这得益于组成 VACP 的三个关键要素

  • 惰性评估:VACP 采用的是惰性评估策略,通过将执行责任分散给客户端或中间层来提高效率。客户端不再需要处理之前的所有交易来确定当前状态,而是可以按需执行合约。这种方法保持了去中心化和信任,同时提高了执行的效率。
  • 可验证计算:VACP 利用高效的中心化计算方式,将计算结果存储在去中心化的区块链,并且允许任何人随时验证这个结果的正确性。
  • 不可篡改的数据可用层:VACP 利用 Arweave 作为数据可用(DA)层,实现了数据的不可篡改性,从而确保整个工作过程中的数据完整性和可用性。

综上所述,VACP 之所以可以同时具备去中心化、可扩展性、良好用户体验,是因为其采用了惰性评估策略,提高了效率。既然选择了延迟验算计算结果,那么数据必须可验证与可信。而 Arweave 作为一个数据不可篡改且可追溯的永久存储方案,理所当然地被 VACP 采用数据可用(DA)层。

VACP 工作过程

原子计算范式(VACP)的工作过程大致分为两步:数据上传 DA 层、引入可信第三方处理数据任务。

5.png

图片描述:VACP 工作过程 来源:https://pbillingsby.hashnode.dev/serverless-functions-with-molecular-execution-machine

第一步:数据上传 DA 层。

数据计算规则(智能合约/函数计算代码)和初始状态被上传到 Arweave 网络。初始状态记录了随着时间的推移发生的所有状态变化。这些规则和状态的上传是为了进行后续的计算和验证。

第二步:引入可信第三方处理数据任务。

可信第三方(TTP)扮演着重要的角色,这里又称为原子节点(Atomic Node),专门负责接收用户交易、评估新状态和维护数据缓存等任务。TTP 的可信度依赖于它能够诚实地反映上传到 DA 层的数据的真实性与有效性。TTP需要通过终端用户进行的可验证计算检查,以确保其操作的完整性和准确性。

MEM 工作原理:遵循 VACP 原则

MEM 遵循 VACP 原则,也是 VACP 的实现。理所当然地,MEM 在运行的过程中也具备了 VACP 的三个关键要素——惰性评估、可验证计算和不可篡改的数据可用层。

核心组件

MEM 系统的运行涉及到两个核心组件:处理器(mem-core)和编排器(Orchestratior),它们分别扮演不同的角色,确保了 MEM 系统的正常运行。

  • 处理器负责执行用户的交易,通过懒惰评估更新智能合约,并保存最新状态。
  • 编排器相当于传送系统,充当处理器和 DA 层之间的桥梁,确保交易成功存储在 Arweave 网络。

MEM 工作过程

当用户产生交易时,mem-core 会对交易进行接收,并使用最新的数据重新计算智能合约,然后升级并保存智能合约的最新状态,方便用户随时验证。接着,编排器作为传送系统,会像搬运工一样将处理器产生的交易搬运到 Arweave 网络。这整个过程,MEM 保证了智能合约时刻处于最新状态,也确保了数据的可信度,同时也充当了一个可信第三方(TTP),实现了可验证计算。

此外,MEM 的可验证计算也是需要遵循一些前提条件的——即智能合约的源代码必须与 mem-core 兼容,并且两者都需要存储在 Arweave 网络中。只有这样,才可以确保无论何时执行合约都是产生相同的结果。

MEM 的用例

MEM 遵循 VACP 原则,带来了许多创新和优势,不仅提供更强大的扩展性,还改善了用户和开发者的体验。在 Web3 领域,Decent Land Labs 团队已经基于 MEM 构建了一系列核心的产品:Arweave Name Service(ANS,Arweave 域名协议)、Permacast(去中心化播客协议)、Ark Protocol(Web3 钱包身份认证协议)等。

其实不局限于 Web3 领域,在 Web2 领域开发者也同样可以用 MEM 来构建应用。以下是一些 MEM 的代表性用例:

  • 代币门控访问:应用的 UI 把从区块链网络获取的数据提交给 MEM 合约,然后 MEM 存储到 Arweave 网络以提供确切性的声明,而且任何人都可以验证其有效性。
  • 去中心化身份管理:MEM 可以用于打造一个支持多链的去中心化身份管理系统,使用户能够拥有自己数据的所有权,自主控制身份验证的权限。
  • 内容发布平台:创建一个内容发布平台,用户可以在 Arweave 上发布和永久存储他们的内容,同时将数据计算交由 MEM 平台处理。用户可以撰写、发布与分享文章内容,并保持对数据的所有权和控制,同时去中心化的特性确保了数据不可篡改和抗审查。
  • 无服务器 API 网关:利用 MEM 的无服务器功能部署无需 gas 费的 API 应用程序,从而节约了托管成本。另外,开发者还可以用自己熟悉的编程语言来高效地构建 API 网关。
  • 不可变文档签名:结合 MEM 技术,用户能够以去中心化和不可变的方式对文档进行签署和验证,确保了 Web2 应用文件签署过程的可信度。

此外,MEM 团队正在研发 xMEM,用于将 MEM 内的函数代码、输入和输出的数据进行加密。

如何使用 MEM?

MEM 平台面对的主要受众是开发者,目前还处于测试阶段,开发者需要申请白名单才可以使用。与此同时,MEM 官方为了让开发者可以轻松地编写、测试与集成 MEM 合约,他们提供了详尽的 开发文档与工具包,内容包括了 MEM 开发规范、Molecules、MEM API 与 MEM CLI 等。

  • MEM 开发规范:开发规范的内容包括合约语法规范、合约规范、交易规范、支持的编程语言等。
  • Molecules:这是一个面向 MEM 开发人员的综合开发人员工具库和 API,它促进了 MEM 合约与任何 RESTful 服务的集成。
  • MEM API:MEM API 遵循 REST 架构风格,提供返回 JSON 编码响应并遵循标准 HTTP 响应代码的端点。
  • MEM CLI:开发者可以使用 CLI 来部署 MEM 智能合约。
  • MEM IDE:MEM IDE 是官方提供的立即可使用的集成开发环境,方便开发者试用 MEM 功能并集成到项目中。

结语

站在今天的节点去回首互联网技术的发展,你会衷心地感叹。人类一直在探索新的技术来解决问题,随后又带来了新的问题,然后继续去解决这个新的问题。人类社会就是在这种孜孜不倦地探索中螺旋上升地发展的。Molecular Execution Machine(MEM)的诞生,也是经过了云计算的演进与新生代 Serverless 的崛起,然后在此基础上发展出 Web3 的函数计算平台。

MEM 基于 VACP 全新范式,采取了链下计算、链上存储的模式。其具有惰性评估、可验证计算与不可篡改的数据可用层三个关键要素,既实现了可扩展性与计算可验证,又保持了去中心化与透明度。作为一个强大的开发平台,MEM 无需开发者深入了解区块链知识与维护自己的服务器,只需使用自己熟悉的编程语言就可以无缝地构建和部署 Web3 应用程序。此外,MEM 还为开发者提供了详尽的开发文档与齐全的工具包。

MEM 是现有“智能合约+中间件”框架下新的选择,也是开发者构建应用时施展拳脚的强大工具。MEM 是为了创造一个更好的未来而生。

参考材料

  1. https://jimmysong.io/serverless-handbook/concepts/serverless-history.html
  2. https://www.infoq.cn/article/4rkig4bk1u3lmqcxihqg
  3. https://zhuanlan.zhihu.com/p/76180907?utm_id=0
  4. https://docs.mem.tech/
  5. https://www.mem.tech/learn
  6. https://mirror.xyz/decentlandlabs.eth/qTh6hWC20PshautTANoj8l93SZvgwk930EZL-wp6NlA

关于 PermaDAOWebsite | Twitter | Telegram | DiscordMediumYoutube

0.png

点赞 0
收藏 0
分享

0 条评论

请先 登录 后评论
PermaDAO
PermaDAO
0x40F9...8718
Arweave 生态系统的共建者 DAO。 @ArweaveEco will be adopted by more developers. All projects of Arweave ecology can post their tasks and rewards here. @everVisionHQ@permaswap@ArweaveSCP