Cartesi Linux 应用链:何时值得使用
João Garcia Cartesi 开发者倡导者
dApp 何时需要独立的 Linux 执行环境?Cartesi 开发者倡导者 João Garcia 解释应用专用 Rollup 如何隔离计算、复用 Python 等成熟软件库,以及支持可验证 AI 和游戏。他也说明普通 Solidity 合约何时更简单。这段对话发布于 2025 年 5 月,研究原型和发布计划反映的是当时的情况。

- 在 03:12,João Garcia 解释应用专用 Rollup 允许验证者运行自己选择的应用。专用执行资源减少了与其他应用的竞争,即“吵闹邻居”问题,但并不消除所有基础设施瓶颈。
- 在 07:05,Garcia 区分了启动 Linux 与仅将语言编译到 RISC-V。完整操作系统带来文件系统和标准库,让开发者复用更多已有软件。Cartesi Machine 文档 介绍了执行环境。
- 在 08:36,Garcia 区分可验证机器学习与 LLM。他谈到回归、KNN 示例、交叉编译 PyTorch 和 scikit-learn,以及确定性 LLM 执行实验。这是研究进展,不是生产性能基准。
- 在 15:29,Garcia 建议,不需要额外算力或特定库的应用继续使用 Solidity。他反对仅因为偏好另一种语言,就在 Cartesi 中重写普通代币合约。
- 在 23:20,Garcia 表示没有万能方案。应用链互操作仍需设计,协处理器提供的优势也不同于 Rollup。他建议组合互补协议并复用现有工具。Dave 研究论文 解释了欺诈证明的设计和假设。
为什么选择 Cartesi Linux 应用链?
观看这一段 · 0:00Kevin 大家好。今天我和 Cartesi 的开发者倡导者 João Garcia 聊聊。Cartesi 是基于 Linux 的应用链基础设施,可以用来开发由 Rollup 验证的专用应用。最棒的是,你基本上可以使用 Linux 上已有的通用库或编程语言。这期很精彩,也有一点技术性。如果你想开发新项目,或者正在寻找好的基础设施,这期就是为你准备的。开发者选择你们平台、你们方案的三个主要理由是什么?
João 三个主要理由。第一个肯定是赋能。他们能做更多事情,使用更多工具,对吧?能够开发与其他 Web3 项目不同的应用。任何可以在 Linux 上运行的东西,都可以在用 Cartesi 创建的 Rollup 上运行。第二个是社区提供很好的支持。我们的 Discord 上公开了各种内容,每位贡献者都很活跃,我们为所有人提供很好的支持。第三个是保障和安全。通过我们的工具,你可以使用尽可能好的欺诈证明。我们刚开发了 Dave,L2BEAT 认可它是很出色的欺诈证明。此外,我们所做的一切都是开源的。讨论和开发都是公开的,所有人都可以在 Discord 上看到我们在构建什么。所以大家可以相信我们是在做好事。这是三个很好的理由。
应用专用 Rollup 如何避免“吵闹邻居”问题?
观看这一段 · 2:17Kevin 很棒。愿景和最终用户,也就是开发者,是一致的。再深入一点。刚才很有帮助,但纯粹从开发者角度看,假设我正在开发东西,我希望从这项技术本身获得什么价值?为什么我要采用基于 Linux 的 Rollup,而不是智能合约或其他方案?
João 这是个很好的问题。有两个主要理由,可以分开说,先说 A,再说 B。在 Cartesi,使用我们的 Rollups 框架,你创建的是应用专用 Rollup。也就是说,每个运行节点、希望执行某个应用的人,专门运行这个应用。当然,我们正在开发让一个节点运行多个应用的机制,但核心思想不变:你只托管你想运行的应用,不会浪费资源执行其他应用,也能避免应用相互抢占资源。在共享 Rollup 中,所有应用一起在节点上执行,一个应用消耗的资源也是其他应用需要的。如果它收到非常多请求和输入,其他应用就会缺少算力。我们相当于给每个应用一整颗 CPU。因此,一个应用不会因为另一个应用而出问题。每个应用独立运行。第二个理由是 Linux 本身。不过只说 Linux,人们似乎不明白它带来哪些优势。优势很多。几乎所有为计算机开发的东西,都是先为 Linux 开发。某些游戏可能不是,但游戏使用的服务、服务器、后端,大概率运行在 Linux 上。银行软件、社交网络,存储数据并运行处理逻辑的服务器,都在 Linux 上运行。机器学习库、游戏库、数学库,都是先为 Linux 开发的。这意味着过去开发的东西可以复用,你不再局限于 Solidity 的库。可以用 Python、JavaScript、Rust、Go 或其他语言的库。按你喜欢的方式,用你喜欢的语言写代码。这带来了向后兼容,因为已有的东西能用,也带来了向前兼容,因为未来的东西也会先为 Linux 开发。这很棒。我想基本说清楚了。
与 RISC-V 运行时相比,Linux 还能带来什么?
观看这一段 · 6:11Kevin 很好。为了确认我完全理解了:应用链通常能解决所谓的“吵闹邻居”问题,对吧?你和其他独立项目隔离,不会受到它们的 CPU 使用或执行任务的影响。这是第一个优势。第二个是,我不需要学习新编程语言,因为可以利用 Linux 生态和 Python 等通用语言。相比之下,其他很多应用链往往使用领域专用语言。
João 没错。再补充一个刚才忘了提、但挺重要的点。我们创建了 RISC-V 模拟器,并在上面运行 Linux。理论上,也可以直接把语言编译成 RISC-V 并执行。但那样就和其他一些协议一样了。借用 C 语言的说法,就是在独立环境中运行,只提供运行语言所必需的最低限度功能。这样会失去文件系统、某些标准库等资源,而这些资源让你能用不同方式处理信息。里面有一个操作系统,会带来更多灵活性和能力。
Cartesi 能运行可验证 AI 和 LLM 吗?
观看这一段 · 7:57Kevin 这往往就是问题所在。项目说,你可以用 C++、C、Python 或其他语言,但实际限制很多。所以,如果真的能使用完整生态,确实很棒,从技术角度也令人印象深刻。你们网站上的一个用例是可验证 AI,这当然是热门话题。能解释一下吗?
João 当然。可验证 AI 很有意思,我们已经做了一段时间。不过我也觉得,人们对“AI”这个词的理解有点偏。当有人说 AI,大家想到 AI 智能体,立刻想到 LLM,因为 ChatGPT 引起了那么大的关注,后来还有 DeepSeek 等。但 AI 远不止这些。它从线性回归、KNN 等基本概念开始,有很多算法。我们先做了简单示例,使用了一些技术,因为一开始把库编译到 RISC-V 并不简单,现在可以了。最初我们做 KNN、线性回归,需要用一种机制,是我的朋友 Marcos 做的,向他致意,叫作[将模型转换为代码的工具,名称不清楚]。基本上就是把机器学习模型转换成直接的 Python 代码,效果很好。后来我们成功把 PyTorch 和 scikit-learn 等机器学习库交叉编译到我们的机器上。因此,可以在我们机器的 RISC-V 和 Linux 环境中完整使用这些库。这很酷。不过,LLM 等很多模型需要大量资源,要验证它们,你需要非常强大的计算机,或者 GPU。GPU 又有非确定性的问题,所以需要一些变通方法。一开始 LLM 看起来非常复杂,但我们在推进,也取得了很好的进展。在内部开发者和贡献者黑客松中,Eduardo 这个很厉害的开发者找到了一个办法:在 Cartesi Machine 中执行程序,但把复杂计算,也就是 LLM 使用的矩阵乘法,委托给宿主机。这样不是只使用一颗 CPU,而是一颗 CPU 负责模拟部分,确定性计算可以交给宿主机。这很厉害。我们大幅提升了处理能力,现在可以开始确定性地运行 LLM。我们还在研究如何继续推进。
哪些 DeFi 和链上游戏需要这些算力?
观看这一段 · 11:41Kevin 在技术前沿开发,往往大部分工作就是研究,这是其中的一部分。我好奇你们还在探索哪些用例。通用意味着可以做很多事情,对吧?肯定也有一些事情不应该做,或者做不了。这也很有意思。
João 你指的是机器学习领域中的一般用例,还是整体上的用例?
Kevin 你个人最感兴趣的。
João 我觉得不能不提 DeFi,毕竟这是我们所在的领域。有个方案我很喜欢,叫 DCA.Monster。它做的是定投策略,也就是 dollar-cost averaging,但粒度非常小。你使用代币的最小单位,比如 10 的 18 次方之类,然后以非常小的批量兑换资产。你可以说,我想把这个代币换成美元或 USDT,但在一个月内完成。因此,这个月的每一秒都会兑换那一小部分。这很酷。如果没有一台能轻松进行这种粒度计算的机器,就做不到。所以它基本上是一个运作得很好的自动做市商。这个方案很有意思。当然,我有点技术宅,很喜欢游戏。我总会提到两个游戏方案。一个叫 RIVES,网站是 rives.io。这是一个链上的自定义游戏机,人们可以创建、出售并确定性地运行游戏。最初运行的是 Doom。玩家可以玩 Doom,把游戏日志,也就是发送给游戏的每条指令,提交到区块链,游戏过程就可以被验证。这很适合速通、比赛和锦标赛。另一个刚推出不久,叫 World Tycoon。你记得 SimCity 吗?当然。我们做了链上的 SimCity。刚完成这个资助项目,我正在评估、做代码审查。它就是链上的 SimCity。你先存入资产,如果你的城市能赚钱,就能获得其他人为了建城而存入的资产,前提是他们失败了。SimCity 中这种代币互动很有趣。
开发者何时应该用 Solidity 而不是 Cartesi?
观看这一段 · 15:05Kevin 很喜欢。GameFi 一直是区块链和加密领域的重要话题。有没有什么事情,你觉得 Cartesi 不是特别适合,或者不是理想选择?
João 很好的问题。如果孤立地看应用,我看不出为什么人们不想使用它。但我不认为大家应该只是为了开发而使用 Cartesi。如果你不需要额外的处理能力,或者不需要特定库来运行软件、实现想法,那么也许应该继续用 Solidity。Cartesi 不是为了让你说:“我能用 Solidity 做这个,但更喜欢 JavaScript,所以就用 Cartesi 写。”这不是原本的目的。当然,你可以这样做,任何人都能按自己的方式使用。但如果用 Solidity 更简单,有时候就直接用它,没问题。
Kevin 所以更多的是教育开发者:如果你想做一个常见的 Solidity 智能合约,做大家一直在做的事情,就遵循最佳实践,不必用 Python 重新造轮子。
João 没错。Cartesi 使用 Linux 和这些库,整个目的就是不重新造轮子。不要尝试在 Solidity 中重新实现非常复杂的机器学习库。直接用已有的东西,使用能让你做到这一点的 Rollup。反过来也一样,普通代币创建已经有很好用的方案,不要在 Cartesi 上完全重做。不同工具应该[不清楚]协同,而不是彼此竞争。发挥每个工具最适合的用途。
开发者做了哪些不寻常的游戏?
观看这一段 · 17:33Kevin 喜欢。我们已经聊了一些有趣、有用的用例。你有没有在社区里看到很疯狂或特别好玩的东西,让你觉得“不确定有没有用,但很有意思”?
João 不好意思,你具体指什么?
Kevin 你知道有人在你们平台上开发过疯狂的方案或用例吗?还是目前都是有用的东西?
João 不,有一些疯狂又好玩的东西。有一个我很喜欢,我觉得已经不在主网上了,也可能还在。那是一个表情包对战游戏。人们可以押注某个表情包,比如[角色名称不清楚]对 Sonic。模拟两者打架,能看到它们战斗,也能押注自己喜欢的角色。有点疯狂,由 AI 自动运行,像是一种零玩家游戏,非常好玩。还有一个特别离谱,我觉得还在运行,叫 Bubble Wars。你投入资产,然后根据存入的代币数量变成一个泡泡。使用链上物理来移动泡泡,把它推向某个方向。如果碰到另一个泡泡,就会拿走那个人的资产。[不清楚]。你会增长,泡泡也变大。这非常离谱,但真的好玩。
Kevin 哇,听起来很痛苦。想象一下,你已经收集了那么多,然后遇到那些大泡泡,就像那个游戏,我觉得叫[游戏名称不清楚],原来的游戏叫什么?[关于游戏名称的简短交流不清楚]。太疯狂了。我能想象,如果宣传得当,它可能会火起来,因为它可以病毒式传播。挺有趣的。
欺诈证明设计为什么困难?
观看这一段 · 20:06Kevin 我不确定,听起来你参与过,但你在基础设施开发中参与得有多深入?能分享初期开发的一些核心经验吗?当时的主要挑战是什么,现在又有哪些挑战,比如让它更可验证?
João 我不是从 Cartesi 一开始就在的。Cartesi 的想法应该是在 2018 年形成的,那时写了第一份白皮书。我大约两年前才加入。不过,从我现在学到的东西,以及看到团队正在做、正在解决的事情来看,欺诈证明的开发非常精细,也很美。它是如何设计、提出的。设计一个欺诈证明算法时,有很多小细节要考虑,比如链的活性,参与需要多少成本,要质押多少才能参与。所有这些一起决定,最后形成算法。这很厉害。最初我们有一个叫 PRT 的欺诈证明,很快会发布一个实用版本,同时已经有 Dave 的论文,它是改进版。看到每种欺诈证明中的困难和痛点,以及我们如何逐个解决,特别有意思。Gabriel Coutinho 负责这些算法的开发,在构思过程中给我解释。我总是惊讶:每次遇到障碍,这些聪明的人都能突破。他会告诉我会议怎么进行:“Augusto,我刚发现一个 bug,这行不通。”Cartesi 的创始人之一 Augusto 会说:“我需要一点时间想想。”然后走到白板前画一些东西,想出方案。这很棒。我觉得这是最精细、最难的部分。
应用链的局限和模块化的价值是什么?
观看这一段 · 22:42Kevin 很喜欢。密码学,如果我能把它念对的话,一直是很有挑战的主题。很高兴看到你们有好的团队合作方式。最后一个问题:你在这个项目中得到的三个关键启发是什么,或者想对准备了解、使用 Cartesi 的开发者说些什么?
João 关键启发是:没有万能方案。没有一个协议或技术栈能够做所有事情,大家都有局限。Cartesi 也有局限,即使运行 Linux,能做 Web2 中能做的事情,你仍然需要绕过一些问题。例如,希望 Rollup 之间互操作,就要仔细考虑。因此我们开发了其他方案,比如协处理器,提供不同的好处。它不提供 Rollup 机制,而是一个快速最终性的协处理器方案。这很好。所以第一点,没有万能方案。第二点,试图重新造轮子的人容易陷入陷阱。他们花很长时间做新东西,不用已有的工具,反而错过做真正有意义的事情的机会。第三点,协议应该协作,这最重要。我们与[名称不清楚]合作开发协处理器,也与 Espresso 和 Avail 合作。当两个在某些领域很擅长、很专业的团队融合知识,就能创造更好的东西。例如看我们的 Espresso 集成,可以把我们的执行环境与他们的数据可用性和排序结合,创造与以往不同的东西。因此,从每个方案中选最适合的部分,构建适合自己的完整方案。协作应该成为整个生态的座右铭。
Kevin 很喜欢。这就是 Web3 的精神。正如大家常说的,核心是社区,以及开发人们真正想要的东西。没错。太好了。
开发者如何开始使用 Cartesi?
观看这一段 · 26:01Kevin 还有最后想说的话吗?看完这次访谈后,大家应该做什么?
João 最近有人反馈说,我们的文档很好。所以试试 Cartesi,做实验,玩一玩。加入我们的社区。即使不想写代码,也可以进来看看正在开发什么、准备什么,了解更多。如果想聊聊或有问题,可以在 Discord 或 Twitter 上联系我,我都在。回头见。
Kevin 很好。我一定会把链接放在视频简介中。再次感谢你的配合和时间。和你聊天很愉快,有很多新东西我还想深入了解。最后对所有开发者和非技术人士说一句:好的文档太被低估了。这方面你们做得很棒。
João 完全正确。
Kevin 谢谢,很高兴和你聊天。祝你今天接下来的时间愉快。
João 回头见。回头见。
Kevin Wavect,理解你需求的 Web3 软件公司。