five

SolEval

收藏
arXiv2025-02-26 更新2025-02-28 收录
下载链接:
https://anonymous.4open.science/r/SolEval-1C06/
下载链接
链接失效反馈
官方服务:
资源简介:
SolEval是一个针对Solidity智能合约生成的 repository-level 基准,包含来自9个真实世界代码仓库的1,125个样本,涵盖了6个流行领域。该数据集旨在评估大型语言模型在Solidity代码生成方面的性能,不仅包含复杂的函数调用,还反映了以太坊生态系统中的实际复杂性,包括Gas费用和漏洞率。

SolEval is a repository-level benchmark tailored for Solidity smart contract generation. It contains 1,125 samples sourced from 9 real-world code repositories, covering 6 popular domains. This dataset is designed to evaluate the performance of large language models (LLMs) in Solidity code generation, which not only includes complex function calls but also reflects the actual complexities within the Ethereum ecosystem, including Gas fees and vulnerability rates.
提供机构:
上海交通大学
创建时间:
2025-02-26
搜集汇总
数据集介绍
main_image_url
构建方式
SolEval数据集的构建旨在填补现有Solidity智能合约生成基准的空白。该数据集由来自9个不同代码仓库的1125个样本组成,涵盖了6个流行领域,如安全、经济和游戏。这些样本不仅包括复杂的函数调用,还考虑了以太坊生态系统的现实复杂性,如燃气费用和漏洞率。SolEval的构建过程包括项目选择、函数解析、测试构建、人工注释和上下文解析五个关键阶段,以确保数据集的健壮性和多样性。
特点
SolEval数据集的特点在于其全面性和现实世界相关性。它不仅包含非独立函数,这些函数需要从其他文件中调用上下文依赖,这在现有的Solidity基准中是缺失的。此外,SolEval通过手动注释提供了详细的函数要求、仓库、代码、上下文信息和测试用例,确保了数据集的高质量。为了评估智能合约生成的安全性,SolEval还纳入了燃气费用和漏洞率属性,这些属性对于智能合约开发至关重要。
使用方法
使用SolEval数据集时,首先需要选择一个合适的LLM模型,并准备好相关的开发环境和工具。然后,使用SolEval提供的函数签名、要求、仓库依赖和上下文信息作为LLM的输入,以生成符合要求的Solidity函数。生成的函数将被集成到仓库中,以获取生成的智能合约,并通过Pass@k、Compile@k、燃气费用和漏洞率等指标进行评估。此外,SolEval还支持RAG和上下文信息的结合使用,以提高LLM生成合约的准确性和功能性。
背景与挑战
背景概述
在区块链技术和去中心化金融(DeFi)快速发展的背景下,智能合约的部署量显著增加,这带来了开发压力和安全需求的提升。Solidity作为以太坊智能合约的主要编程语言,在推动区块链革命中扮演着基础性角色。然而,现有的大规模语言模型(LLM)在代码生成方面主要关注Python和Java等主流语言,对Solidity的关注不足。由于缺乏足够的Solidity基准,LLM在生成安全、成本效益高的智能合约方面的能力尚未得到充分探索。为了填补这一空白,Zhiyuan Peng等研究人员构建了SolEval,这是第一个针对Solidity智能合约生成的仓库级基准,用于评估LLM在Solidity上的性能。SolEval由来自9个不同仓库的1125个样本组成,涵盖了6个流行领域,为LLM提供了一个全面的评估基准。与现有的Solidity基准不同,SolEval不仅包括复杂的函数调用,还通过纳入燃气费和漏洞率反映了以太坊生态系统的真实复杂性。
当前挑战
SolEval面临的主要挑战包括:1) LLM在生成Solidity代码方面的性能不足。目前,即使是性能最好的LLM,在SolEval上的Pass@10也只有26.29%,表明在Solidity代码生成方面仍有很大的改进空间。2) 平衡功能正确性与燃气效率。LLM在生成正确代码方面可能难以优化燃气成本,而专注于优化燃气效率的模型可能会牺牲生成代码的质量或正确性。3) SolEval目前是一个单语种基准,只关注Solidity代码生成,忽略了LLM理解各种自然语言要求并在多种编程语言(包括Vyper和Rust)中生成代码的必要性。4) SolEval中的函数样本来自9个GitHub仓库,这可能不足以与针对主流编程语言的基准相媲美。5) SolEval使用的燃气费和漏洞率指标仅用于评估智能合约的燃气效率和潜在漏洞,而没有提供优化或修复机制。
常用场景
经典使用场景
SolEval数据集被设计用于评估大型语言模型(LLMs)在生成Solidity智能合约代码方面的性能。该数据集包含了来自9个不同代码仓库的1,125个样本,涵盖了安全、经济和游戏等6个流行领域。SolEval不仅包括复杂的函数调用,还通过纳入燃气费和漏洞率来反映以太坊生态系统的现实复杂性。通过SolEval,研究人员可以对LLMs在Solidity代码生成方面的能力进行全面的评估,并发现LLMs在生成Solidity代码方面存在显著差距,为后续研究和改进提供了方向。
解决学术问题
SolEval数据集解决了现有Solidity智能合约生成基准的局限性问题。现有的基准规模较小,且与实际应用场景脱节。SolEval作为第一个支持仓库级智能合约生成的基准,拥有大规模且多样化的样本,涵盖了6个流行领域,并考虑了燃气费和漏洞率等关键属性。此外,SolEval还发现了LLMs在生成Solidity代码方面存在的问题,如功能正确性与燃气效率之间的权衡,以及RAG和上下文信息对模型性能的影响。这些发现为LLMs在Solidity代码生成方面的研究提供了重要的参考。
衍生相关工作
SolEval数据集的发布推动了相关研究的进展。例如,DeepSeek等模型在SolEval上的表现表明,LLMs在生成Solidity代码方面仍有很大的提升空间。此外,SolEval还揭示了LLMs在生成Solidity代码方面存在的问题,如功能正确性与燃气效率之间的权衡,以及RAG和上下文信息对模型性能的影响。这些发现为后续研究提供了重要的参考,并促进了LLMs在Solidity代码生成方面的技术进步。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作