ChatGPT 无法识别何时缺少上下文来执行稳健的安全分析。
原文作者:Lotist
原文来源:odaily
在人工智能热潮席卷全球的当下,“ChatGPT”无疑是近期互联网上最火的一个话题,而 ChatGPT 在区块链领域也引起了不小的争议,从最基础的“你问我答”到简单的行情分析,甚至是设计一套量化策略来炒币……ChatGPT 的“超能力”也渗透进了区块链领域的每一角落。
上周,ChatGPT-4 正式上线。据其开发商 OpenAI 表示,“ChatGPT-4 在各种专业和学术基准测试中拥有人类水平的性能”。在实际应用中,ChatGPT-4 在 SAT 考试(美国高考)中获得高分,并能成功监测出以太坊智能合约中的漏洞,甚至提出利用漏洞的潜在方法(有点黑客思维呢)。
Coinbase 主管 Conor Grogan 随即证实了这一点,他在社交媒体上表示,自己已在 ChatGPT-4 中插入了一个实时以太坊智能合约,结果 AI 瞬间就找到了安全漏洞,甚至还展示了如何利用这些漏洞进行攻击。Conor Grogan 还表示,该合约的确在 2018 年被黑客利用漏洞攻击,此外他透露也尝试了 Euler 的智能合约,但由于合约过长而无法被 ChatGPT-4 处理。Conor Grogan 坦言道,AI 最终将使智能合约更安全、更容易构建。
随着这篇推文的发布,OpenAI ChatGPT 检测安全漏洞能力也成为了圈内最热门的话题之一,ChatGPT 真的可以检查出去中心化应用的安全漏洞吗?准确率有多高?安全公司慌不慌?为了回答以上问题,Coinbase 快速开展专项研究。
就在本周二,Coinbase 在其官方博客中正式发布了利用 ChatGPT 使用 ERC 20 代币审查框架来执行自动审查与区块链安全工程师执行审查的对比实验及其报告成果。
实验的目的是通过将审查结果与区块链安全工程师执行的标准审查结果进行比较,以确定 ChatGPT 代币安全审查的准确性。实验中,区块链安全工程师将利用内部工具审查代币智能合约中的每个功能,并根据标记到功能的风险输出风险评分;同样,为了将 ChatGPT 的准确性与标准评审的准确性进行比较,也需要 ChatGPT 生成一个风险评分。
为了让 ChatGPT 使用 Coinbase 的 ERC 20 安全审查框架生成风险评分,在此之前,Coinbase 需要对 ChatGPT 下达部分指令:
“我想让你担任区块链安全工程师。您的任务是根据与其功能相关的风险识别代币智能合约中的安全风险。这是我们的框架[+风险框架]。以下智能合约中是否存在这些风险?[+智能合约代码]、”如此,Coinbase 便可在 ChatGPT 的提示中定义其风险框架,并询问它是否存在任何风险。
那么,ChatGPT 的表现到底如何呢?
Coinbase 在其实验中对比了 ChatGPT 和人工安全审查之间的 20 个智能合约风险评分,其中,ChatGPT 12 次生成了与人工审查相同的结果。然而,在另外 8 次失误中,有 5 次是 ChatGPT 错误地将高风险资产标记为低风险资产。
看似表现还可以,然而我们都知道,低估风险评分的后果比高估风险评分更加严重,可能就因为一不小心的低估风险导致上架部分高风险币种,这将严重危害交易所以及用户的权益。
根据实验结果所得出的报告显示,ChatGPT 只能说“浅”具备了快速评估智能合约风险的能力,但并不符合 Coinbase 安全审查流程中的准确性要求:
首先,ChatGPT 无法识别何时缺少上下文来执行稳健的安全分析。这会导致覆盖缺口,额外的依赖项并未被审查。为了防止任何覆盖缺口,每次都需要对 ChatGPT 的审查范围进行初步的分类。
其次,ChatGPT 的输出可能不一致;当多次对 ChatGPT 输入同一个问题时,并总是输出相同的答案。ChatGPT 似乎也受到代码中注释的影响,并且似乎偶尔会默认注释而不是函数逻辑。
最后,OpenAI 继续迭代 ChatGPT 版本,导致额外的输出不稳定。过去可能用于提供一致输出的详细提示可能会在版本更改后产生替代输出。可能需要及时维护和输出质量控制,以确保一致的响应并避免任何操作故障。
综上所述,或许,Coinbase 可以通过进一步工程设计,提高 ChatGPT 代币安全审核的准确性。不过目前,Coinbase 依旧无法仅单独依靠 ChatGPT 来执行安全审查。Coinbase 希望未来可以提高其准确性,将 ChatGPT 作为二次 QA 检查的工具,从而使安全工程师可以利用该工具执行额外的控制检查,以捕捉可能被忽略的任何风险。ChatGPT 提示将被保存以供工程师将来使用,并计划在以后进行改进。
正如 Coinbase 的实验一样,我们可以通过调节 ChatGPT 的指令设计来进一步提高其准确性,但是对于安全审核这样偏机动性的工作而言,单靠 ChatGPT 使无法保证能在变量无法统一的情况下做出准确判断的,仍然需要进行人工干预,根据具体额外的控制检查来改进 ChatGPT 的提示。
总得来说,在区块链行业引入 AI,无疑给圈内创企提供了通过人工协作 AI 进行高效 build 的可能——ChatGPT 拥有广泛的知识库,人工输入特定的业务逻辑和提示,而开发人员可以通过使用 ChatGPT 在更短的时间内完成更多的工作。此外,对于安全工程师对智能合约审计的高成本而言,ChatGPT 提供了一种及时且经济高效的合约审计辅助。
就像区块链开发人员 Salman Arshad 在 ETHDubai 会议上回答的那样,“ChatGPT 和 AI 工具是福音;他们不是我们的敌人,也不是用来结束开发者职业生涯的。”ChatGPT 的协作性质,与自动化流程和取代人工的潜在威胁相比,或许对于广大用户更大有利。
最后,我想问作为用户的你,是否敢使用接受 ChatGPT 审计过的 DeFi 协议呢?