由 Consensys 打造的领先自托管加密钱包和 Web3 入口。
阅读所有文章ETHBogota 黑客马拉松 Snap

MetaMask Snaps 是将 MetaMask 打造成全球最具扩展性钱包的发展路线图。作为开发者,您可以通过全新的方式将自己的功能和 API 引入 MetaMask。Web3 开发者是这一增长的核心,本系列旨在展示当今正在构建的创新 MetaMask Snaps。
Snap 代码库: https://github.com/s-a-malik/blackbelt
为什么要构建它?
我们希望让终端用户在区块链上的交互更加安全,尤其是那些担心遭受诈骗和漏洞攻击的新手用户及非技术用户。因此,我们想到了一种为智能合约交互提供实时风险评估的方法。
能带我们了解一下技术实现吗?
技术架构
Blackbelt 由三个部分组成:我们的服务器、MetaMask snap 以及我们的网站前端。服务器负责检索数据并计算智能合约风险评分。MetaMask snap 和我们的网站都会调用服务器,并在 https 请求中提供具体的合约地址。项目的完整实现可在此处查看。
服务器
我们的服务器采用 Flask 后端,以 json 格式返回安全评分和元数据。当向路由 /security_score 发起 GET 请求时,函数 security_score() 将被调用。首先,所有提供的参数(如合约地址、用户地址、链 ID 和调用方来源)将被解包,然后部分解析到函数 compute_security_score(contract_address, chain) 中,该函数将检索链上数据并为多个变量(例如合约创建时间)计算安全评分。为了加快 MetaMask Snaps 内部的数据检索速度,当通过 MetaMask Snaps 调用服务器时(参见变量 is_snaps),我们会在有缓存结果时优先提供缓存结果。
compute_security_score 函数(位于 logic.py 文件中)基于来自 Coinbase Cloud API、etherscan API 以及我们自建的社区维护恶意地址数据库的链上数据,计算启发式风险评分。下方代码片段展示了用于计算评分的部分因素示例。例如,我们会检查合约在 etherscan 上是否被标记为已验证和已审计,以及合约的创建时间。
未来,我们计划整合更多有助于识别恶意合约的信息来源(例如自动化验证工具和现有黑名单数据库),并采用更精细的风险评分计算方法,例如引入机器学习方法。
Snap
对于 snap,我们使用交易洞察 API,该 API 在每次发生交易时触发。Snap 由四个步骤组成:第一步,从交易结构体中检索交易关键详情;第二步,将交易详情发送至我们的服务器并获取安全评分及元数据;第三步,检查请求状态并处理任何错误;第四步,在 MetaMask Snaps 中以 json 对象的形式返回安全评分和元数据。
网站
网站使用 React 编写,用于在将功能添加到 MetaMask 之前快速测试。用户可以通过输入合约地址并点击"立即评分"来试用我们的功能。如果用户喜欢我们的应用,可以点击右上角的"添加 MetaMask Snap"将其添加到 MetaMask 中。
如果要继续实现,下一步计划是什么?
下一步将是改进我们的后端和分析能力,以更可靠地检测高风险合约。目前,我们的评估基于启发式方法,例如日活跃用户数或交易数量(越高越好),但我们希望引入机器学习等更先进的技术来更准确地计算风险评分。在改进分析能力之后,我们将专注于加快整个风险评估流程,使用户体验尽可能流畅——这可以通过缓存或更快的数据检索程序来实现。
能介绍一下您自己和您的团队吗?
我们是一支由三名牛津大学博士生和一名牛津大学毕业生组成的团队。我们隶属于牛津区块链协会,并在 ETHBogota 黑客松期间相识并组建了团队。
Lucas Schneider: Lucas 是牛津大学计算机科学专业的博士候选人,研究方向为利用计算和机器学习模型预测 CRISPR 系统中的基因编辑结果。在攻读博士之前,Lucas 曾在伦敦巴克莱投资银行证券化产品结构组担任分析师,参与了多项特殊结构化信贷交易以及不良贷款和商业房地产投资组合的融资项目。他持有伦敦政治经济学院金融学硕士学位,以及弗里德里希-亚历山大大学埃尔朗根-纽伦堡分校侧重定量方法的经济学学士学位。
Shreshth Malik: Shreshth 是牛津大学机器学习专业的博士候选人,研究方向为提升深度学习方法的鲁棒性和可靠性,以实现更可信赖的现实世界应用。他还曾在多家 AI 初创公司以及一家总部位于伦敦的种子期风险投资基金工作。他持有机器学习(伦敦大学学院)和物理自然科学(剑桥大学)双硕士学位。
Paweł Narkiewicz: Paweł 是一位连续创业者、科学家和技术狂热者。18 岁时,他与来自斯坦福大学和哈佛大学的顶尖数学家共同发表了第一篇数论研究论文。一年后,他创立了一家成功的教育科技初创公司,旨在加速波兰的技术技能发展,该公司在 3 个月内实现了自负盈亏。与此同时,Paweł 以运营股东和机器学习工程师的身份加入一家医疗科技初创公司,主导开发该公司核心技术功能之一,并与来自牛津、斯坦福和哈佛的顶尖研究人员直接合作。该初创公司在 Pre-seed 轮获得 77 万美元融资,在种子轮获得 320 万英镑融资。他持有牛津大学数学与计算机科学学士学位。
Jessica Pointing: Jessica 正在牛津大学攻读物理学博士,专攻量子计算,此前曾作为 Knight-Hennessy 学者在斯坦福大学攻读计算机科学博士。她以 John Harvard 学者身份以优异成绩获得哈佛大学物理学与计算机科学学士学位,此前曾就读于麻省理工学院。Jessica 入选福布斯科学领域 30 位 30 岁以下精英榜,并被选为世界经济论坛量子应用全球未来委员会的理事会研究员。她曾受邀担任 TEDx 演讲者,并在国际科技会议上发表主题演讲,包括 IBM Think 大会和 Oracle Code One 大会。她曾在 NASA 艾姆斯研究中心 KBR 担任量子研究实习生,在谷歌担任软件工程师实习生,在麦肯锡公司担任管理咨询实习生,在高盛担任投资银行实习生,在摩根士丹利担任策略师实习生。Jessica 创立了斯坦福量子计算协会和哈佛大学量子计算协会。她带领团队赢得了 IBM Q 量子计算奖,该奖项颁发给 IBM 首届量子计算黑客松的获胜者。她还在 Creative Destruction Lab 量子计算黑客松中获奖。Jessica 参加了以太坊黑客松 ETHAmsterdam,其团队荣获大奖决赛入围奖及赞助商奖项。她曾获得麦肯锡女性影响力奖,并被评为谷歌 Anita Borg 学者。她还获得了来自微软、Palantir、Adobe Research、摩根士丹利、高盛、Neo、女性工程师协会和地球物理学家协会的奖学金。
您是什么时候第一次接触 MetaMask Snaps 的,体验如何?
我们在 ETHBogota 第一次接触到 MetaMask Snaps。它是以最用户友好的方式将 Blackbelt 变为现实的完美功能。总体而言,使用 MetaMask Snaps 的体验令人愉快,因为 MetaMask Snaps 相当易于上手。鉴于 MetaMask Snaps 的新颖性,仍存在一些小问题,在黑客松期间偶尔让我们头疼,但都不是什么大问题。
MetaMask Snaps 与其他钱包有何不同?
MetaMask Snaps 是开源钱包扩展开发的绝佳方式,能够为有不同需求的终端用户提供多样化的个性化解决方案。据我们所知,MetaMask 是目前唯一支持自定义插件的钱包提供商。
请谈谈您和您的团队使用 MetaMask 构建 Snaps 的体验?
使用 MetaMask Snaps 进行构建相当容易。我们从一个示例项目开始,帮助我们更好地理解 MetaMask Snaps 的运作机制,然后在示例代码的基础上进行构建。在 MetaMask Snaps 中构建很有趣,但偶尔遇到的一些 bug 确实给我们带来了挑战,尤其是在黑客松期间时间紧迫的情况下。
MetaMask Snaps 对您意味着什么?
MetaMask Snaps 是我们一直希望在钱包中拥有的功能。对于开发者而言,它开启了广泛的创新机遇。
您认为 MetaMask Snaps 为 Web3 领域带来了哪些机遇和可能性?
MetaMask Snaps 将为整个 Web3 生态系统带来更高的可定制性,从而提升整体用户体验,因为用户可以自主决定想要哪些功能。
对于有意尝试 MetaMask Snaps 的开发者,您有什么建议?
尽情探索 MetaMask Snaps 吧。最简单的入门方式是从一个示例项目开始,了解 MetaMask Snaps 的工作原理,然后在此基础上进行构建。如果遇到未知问题,您随时可以在 MetaMask Snaps 的 git 上发帖,向 MetaMask Snaps 开发者寻求帮助。
开始使用 MetaMask Snaps:
查阅开发者文档
在 Twitter、GitHub 讨论区和 Discord 上与我们保持联系
请关注我们团队在您附近举办的下一场黑客松!祝 BUIDL 愉快 ⚒️
免责声明:MetaMask Snaps 通常由 Consensys Software 以外的第三方开发。使用第三方开发的 MetaMask Snaps 完全由您自行决定并承担风险,且您同意对因此类活动造成的任何损失或损害承担全部责任。Consensys 对第三方开发的 MetaMask Snaps 不作任何明示或暗示的保证,并对第三方开发的 MetaMask Snaps 免除一切责任。使用区块链相关软件存在风险,使用 MetaMask Snaps 即表示您完全承担这些风险。
AI 翻译。可能包含错误。请务必核实信息。