全球数字财富领导者

深入探讨Honeypot 一种 Optimistic Rollup 应用

2023-10-05 13:22:52
金色财经
金色财经
关注
0
0
获赞
粉丝
喜欢 0 0收藏举报
— 分享 —
摘要:欢迎来到Honeypot,这是一个集optimistic、特定应用Rollup概念于一体的挑战。
spacer.gif

欢迎来到Honeypot,这是一个集optimistic、特定应用Rollup概念于一体的挑战。

从技术角度来说,这意味着Honeypot运行在专用Rollup基础设施上,专为单个去中心化应用设计。它不与其他DApp竞争区块空间,并具有完全定制的自由。Honeypot之所以重要,是因为它预示了Cartesi Rollups的主网就绪,表明整个基础设施已准备好支持更多应用特定的Rollup的创建。Honeypot不仅仅是一个黑客挑战,它是为新时代专业化区块链应用铺平道路的事件。在其富有趣味性的外表之下,Honeypot发挥了重要的作用:

  • 它作为一个激动人心的竞技场,供黑客和开发人员展示技能并尝试攻破系统。

  • 它为衡量可以存储在这种新基础设施下的资产的安全限制提供了财务基准。

  • 它作为一个开源的漏洞猎人活动,邀请更广泛的Cartesi项目社区来测试、审查和完善潜在的代码。

在本文中,我们将深入探讨支持这个创新应用的重要细节,审视使其运转的代码,并剖析其基础设施中涉及的信任假设。所以,准备好迎接这个honeypot的精彩旅程吧!

数据可用性、状态根承诺和资产

当涉及舒适地与Rollup进行交互时,了解更细节的内容至关重要,包括数据可用性、状态根承诺以及资产的位置和控制。为了澄清,让我们解答这些问题:

  • 数据是如何存储的,以及如何确保在最需要时可获得?

  • 资产位于何处,谁有能力控制它们?

  • 状态根承诺何时何地发布,它们指向哪个状态?

请记住,在讨论应用特定的Rollups时,使用相同Rollup基础设施的应用可能对这些问题有不同的答案。例如,基于Cartesi的应用可能将其数据存储在以太坊上,但将其状态根承诺发布在Optimism上,或者他们可能确保数据在Syscoin上可用,同时将其资产保留在以太坊上。

但让我们专注于Honeypot DApp,牢记这些配置是该特定应用的开发人员所做的决定。Honeypot DApp是一个真正的以太坊第二层应用。创建者选择将以太坊作为解决上述所有问题的方案。因此,来回答上述问题:

  • 所有与Honeypot DApp交互的数据都源自标准的以太坊交易,发送到合约中,我们将在“基础设施/SDK代码”部分深入探讨。虽然输入以调用数据形式到达,但它们实际上以哈希形式存储在区块链上,从而允许在未来可能发生的纠纷中使用。

  • Honeypot控制下的所有资产都进入并保留在以太坊上,通过门户的使用实现,我们也将在接下来的部分进行解释。

  • 至于状态根承诺?你猜对了 - 它们也发布在以太坊上。Honeypot部署期间选择的验证器负责定期执行此操作。这些承诺或声明由三个元素组成:

  • 在考虑到所有需要考虑的输入后,DApp机器的完整状态。

  • 一组凭证,允许在底层区块链上执行调用(在本例中为以太坊)。凭证的示例:向Uniswap池中添加流动性。

  • 一组通知,这些通知是Honeypot DApp已经发出并可以在链上进行证明的陈述。通知的示例:最后一次分配后,对所有DApp的财务位置的摘要。

在Honeypot DApp的情境下,成功的黑客攻击意味着欺骗DApp以创建能够窃取资产的凭证,或执行DApp未创建的凭证。在接下来的部分中,我们将更深入地讨论凭证、状态承诺和其他相关主题。

验证、可升级性和争端解决

理解验证的复杂性也是与Rollup进行交互的重要方面。可以将应用链(appchains)视为最大化1-of-N信任假设效能的有效手段。基本上,这种信任假设表示依赖至少一个诚实的验证者(可能是用户自己)来确保DApp的正确执行,这是通过争端解决协议实现的。

Cartesi Compute,之前称为Descartes,运行一个功能齐备的双方仲裁系统。研究单位的成员最近发表的一篇学术论文详细阐述了将这个仲裁系统转变为抗延迟攻击的无权限(nxn)设置的概念。利用这一创新来打造一个可行的争端解决机制,而不是将Compute系统定制为在Rollup内运行,是一个由生态系统不同贡献者共同解决的开放问题。

现在,考虑到Honeypot应用程序,启动是在权限验证者制度下启动的,而争端解决机制尚未建立。在这个设置中,一个单一地址拥有确定真相的独占权力。尽管任何人都可以操作Honeypot DApp并检查验证者的诚实性,但目前还没有确立的方法来对抗潜在的不当行为,除了表示异议。因此,目前参与游戏需要对当局遵循协议并保持诚信放置信任。

至于可升级性,与共享EVM Rollups相比,这个方面对于特定于应用的Rollups来说问题较少。Cartesi Rollups软件开发工具包(SDK)允许应用程序选择谁拥有升级权利(甚至可以是应用程序本身)。在Honeypot的情况下,开发人员选择了一种不可升级的方法,确保部署的版本保持不变。

基础设施/SDK代码

深入研究创建特定应用Rollup的细节可能首先似乎是一项令人望而却步的任务,考虑到似乎需要为每次启动从零开始编写所有代码。然而,正如我们在本文中隐示的,这正是Cartesi Rollups SDK所要缓解的挑战。

使用Cartesi构建特定应用的Rollup涉及两种类型的代码:通用、可重用和共享的代码;以及特定于应用的代码。这种有效的平衡允许开发人员在定制其应用程序独特方面的同时,获得共享功能的好处。

在这一部分中,我们将努力概述关键组件并引用与我们早前讨论的主题相关的代码。虽然在这里详细介绍所有内容并非可行,但对于那些希望深入了解的人来说,可以在全面的文档和README文件中找到丰富的信息。

共享基础设施包括三个主要组件,它们相互交互:链上代码、Cartesi节点和Cartesi机器。每个组件在Rollup应用程序的运行和效率中起着关键作用。随着我们的深入探讨,我们将揭示这些组件如何共同促进Honeypot DApp的无缝运行。

链上:

链上代码充当了链下组件(如节点和Cartesi机器)与其他智能合约或外部拥有的账户之间的关键中介。这个组件以模块化的格式设计,每个模块都有明确的职责和明确定义的接口。为了全面理解,我们鼓励您探索此存储库中的README和智能合约。

对于数据可用性:Input Box合约

与数据可用性密切相关的是Input Box合约。该模块负责接收打算与DApps交互的用户输入。对于每个DApp,该模块维护一个只能追加的哈希列表,该列表由输入和相关元数据(如发送者的输入和区块时间戳)生成。用于重构哈希所需的所有数据都永久保存在链上,确保用户可以同步链下机器与最新输入,而无需依赖数据提供者。该模块完全是无权限的,让链下机器确定输入的有效性。有关更多详情,请考虑探索GitHub上或Sepolia Etherscan上的Input Box代码。

对于状态根承诺:共识接口和验证者合约

了解状态根承诺需要Consensus接口和验证者合约。这个模块的主要作用是在达成共识后向DApps提供有效的声明。该模块的接口意图通用,以满足不同共识模型的需要。声明的编码和存储方式完全由接口抽象,而History合约负责实现。目前,Cartesi仅实现了称为Authority的共识类型,该类型由一个拥有完全权力的单一地址拥有。这是可能的最简单实现,因此在功能方面非常有限。您可以在存储库或Sepolia测试网络上验证的代码中找到它。

输出验证和CartesiDApp

输出验证库和CartesiDApp代码本身对于理解承诺的后果至关重要。在这里找到错误可能会为窃取蜜糖打开一条路径。

凭证起着重要的作用,允许执行层中的DApps通过消息调用与基础层中的合约进行交互。每个凭证由目标地址和有效负载组成。只有在DApp的共识提交包含它的声明时,才能执行凭证。它们可以以任何顺序执行,尽管DApp合约对执行的凭证内容不关心,但它会在允许执行之前执行合理性检查。

资产管理:门户

在涉及资产管理时,应该研究门户。正如其名称所示,门户方便了将资产安全地从基础层传输到执行层。资产通过门户进行验证,但实际上存储在DApp合约中。DApp开发人员可以自由使用这些信息,可能在执行层为每个用户创建一个钱包,通过应用特定逻辑理解的输入来管理资产,从而以更低的成本进行管理。

Honeypot部署信息

在部署honeypot应用程序、选择验证者地址以及定义是否可升级时,要查看的代码是Cartesi DApp工厂。您可以在这里找到详细信息。

您可以在GitHub存储库中访问所有代码,并在Etherscan上验证的合约中,您可以参考部署文件:

https://github.com/cartesi/honeypot/tree/main/deployments/mainnet

https://etherscan.io/address/0x0974CC873dF893B302f6be7ecf4F9D4b1A15C366

Cartesi节点:

在应用特定滚动的世界中导航需要在智能合约和Cartesi机器的不同环境之间建立一座桥梁。这个桥梁以中间件的形式出现,巧妙地处理这些环境之间的信息流。该中间件负责从智能合约中提取数据,传递给机器进行处理,最终将处理结果广播回区块链

将该中间件视为两方使用不同语言进行对话的口译员。它将一方的输出转换为另一方能理解的格式,反之亦然。这个中间件与Cartesi机器一起构成了我们所称的Cartesi节点的基础。

无论您对滚动的状态感兴趣,还是您正在积极参与该领域,Cartesi节点的作用都不可或缺,类似于在以太坊生态系统中的Geth。它融合了执行和数据检索功能。Cartesi节点推进了链下机器的状态,并使得结果状态公开可用。它从区块链中获取信息并强制执行状态更新,保持链上状态更新的完整性。使用始终富有洞察力的Patrick McCorry术语,Cartesi节点扮演执行者的角色。

实质上,无论您是仅跟踪滚动的状态的用户,还是确保状态更新真实性的验证者,Cartesi节点都是您进入应用特定滚动世界的全面窗口。它处理复杂的交互,使您能够专注于您的特定兴趣或责任。

查看代码:

https://github.com/cartesi/rollups/tree/v0.9.0/offchain

Cartesi机器:

不可否认,Cartesi机器在Cartesi生态系统中具有关键地位,为可验证计算提供了创新解决方案。这项技术为DApps提供了类似于主流应用程序的扩展方式,并增强了DApp开发者的能力。

Cartesi机器的关键特征包括自我封闭、可复现性和透明性。它们在隔离环境中运行,不受外部影响;在Cartesi机器上执行的任何计算都将产生相同的结果,不论是谁执行的;此外,它们向外界展示其完整状态,以接受外部审查。

现代软件开发通常涉及合并各种现有软件组件。这些组件由全球社区在数十年间开发和审查,使用成熟的工具链,并依赖于现代操作系统提供的众多服务。

然而,智能合约通常使用专用工具链进行开发,并直接在定制的虚拟机上运行,而没有基础操作系统。这种设置使开发人员无法使用熟悉且有效的工具,严重限制了他们的表达能力,因此极大地阻碍了生产力。

这就是Cartesi机器的独特之处,它们建立在经过时间测试的RISC-V平台上。RISC-V平台得到了强大的开发人员社区的支持,他们建立了庞大的软件基础设施,包括Linux操作系统和GNU工具链的移植。

通过将DApp逻辑的关键部分转移到Cartesi机器内部,并在Linux操作系统上运行,开发人员可以绕过特定区块链的限制和特殊性,避免Cartesi机器架构的不必要细节。他们重新获得了对他们工作至关重要的熟悉工具的访问权限。

实质上,Cartesi的抱负是赋予DApp开发者无阻碍地释放创造力,并显著提高他们的生产力。这就是Cartesi机器的本质。也是Honeypot DApp运行的地方。

查看代码:

https://github.com/cartesi/machine-emulator

特定于应用的代码

诚然,前面的章节非常长而深入。但猜怎么着?这一节会简短而精炼。为什么?因为我们已经在前面的章节中做了繁重的工作。

honeypot的行为都整齐地打包在一个单独的C++文件中,就在这里:honeypot.cpp。如果你想更好地理解框架的运作原理,请查看我们的文档。

如果你在想:“等等,这对于一个简单的honeypot来说是很多代码!”——你没错。但让我来给你一些观点。这是Cartesi基础设施上独一无二的应用!当前honeypot代码的长度是因为我们处于开发周期的早期阶段。一旦我们有了像C++钱包库这样的东西,可以轻松处理门户交互和凭证提取,未来honeypot的代码将只有几行快速的代码。

如果你想了解honeypot应用的更详细信息,包括其功能和部署程序,我强烈建议查看存储库的详尽自述文件。它不仅描述了DApp的内部运作方式,还提供了逐步指南,说明如何启动你自己的honeypot:

https://github.com/cartesi/honeypot

所以你有它! 有了 Cartesi,令人畏惧的部分已经完成,让您可以专注于您独特的代码。

如何做出贡献并保持最新动态

在Cartesi,我们相信集体智慧的力量,透明度和活跃的讨论。这正是你会在我们的Discord频道找到的 - 一群多元化的贡献者进行头脑风暴,解决问题,并塑造Cartesi的未来。我们的沟通、开发和研究都是公开进行的。此外,我们有人热衷于回答你的问题,并深入讨论本文中讨论的架构的每个部分。

所以,想要参与热情洋溢的对话,分享你的想法,甚至可能问出一直在你脑海中的那个问题吗?来吧!加入Cartesi的Discord频道。如果你还没有,试试Honeypot吧!

关于 Cartesi

Cartesi 是一种特定于应用程序的汇总协议,具有运行 Linux 发行版的虚拟机,为 DApp 开发人员创造了更丰富、更广泛的设计空间。

 Cartesi Rollups 提供模块化扩展解决方案,可部署为 L2、L3 或主权 Rollups,同时保持强大的基础层安全保证。

免责声明 

本文章仅供一般参考和信息分享之用,不构成法律、金融或投资建议。本信息的准确性和完整性不受保证,也不应被视为对特定情况的建议。读者应自行进行独立的研究和咨询,以做出任何决策。作者和相关机构对任何因依赖本信息而产生的损失或损害概不负责。在做出任何金融或投资决策之前,强烈建议咨询专业人士以获取个性化的建议。

虚拟货币属于高风险投资品,在做出投资决策前,请咨询相关监管机构是否存在投资亏损风险。

来源:金色财经

敬告读者:本文为转载发布,不代表本网站赞同其观点和对其真实性负责。FX168财经仅提供信息发布平台,文章或有细微删改。
go