five

YulCode

收藏
arXiv2025-06-24 更新2025-06-26 收录
下载链接:
https://huggingface.co/datasets/KrzysztofFonal/yulcode
下载链接
链接失效反馈
官方服务:
资源简介:
YulCode数据集是由弗罗茨瓦夫科技大学电子、光子学和微系统学院提供的,包含348,840个基于Yul的智能合约实例,涵盖了大约135,013个独特的合约。这些合约是通过编译部署在以太坊主网上的Solidity源文件生成的,直接反映了现实世界中的去中心化应用程序。YulCode为机器学习应用、形式验证、优化分析以及软件工程工具评估等研究任务提供了丰富的资源,特别是在低级智能合约代码的上下文中。

The YulCode dataset is provided by the School of Electronic, Photonics and Microsystems, Wrocław University of Science and Technology. It contains 348,840 Yul-based smart contract instances, covering approximately 135,013 unique contracts. These contracts are generated by compiling Solidity source files deployed on the Ethereum mainnet, directly reflecting real-world decentralized applications. YulCode provides a rich resource for research tasks such as machine learning applications, formal verification, optimization analysis, and software engineering tool evaluation, particularly in the context of low-level smart contract code.
提供机构:
弗罗茨瓦夫科技大学电子、光子学和微系统学院
创建时间:
2025-06-24
原始信息汇总

数据集概述

基本信息

  • 许可证: MIT
  • 数据集名称: yulcode
  • 数据集地址: https://huggingface.co/datasets/KrzysztofFonal/yulcode

数据集结构

特征

  • contract_name: 字符串类型,表示合约名称。
  • contract_address: 字符串类型,表示合约地址。
  • solc_version: 字符串类型,表示Solidity编译器版本。
  • sol_filepath: 字符串类型,表示Solidity文件路径。
  • yul_filepath: 字符串类型,表示Yul文件路径。
  • source_code: 字符串类型,表示源代码。

数据划分

  • train:
    • 样本数量: 348,840
    • 数据大小: 34,771,857,551 字节
    • 下载大小: 8,295,198,332 字节

配置信息

  • 默认配置:
    • 数据文件路径: data/train-*
搜集汇总
数据集介绍
main_image_url
构建方式
在区块链技术迅猛发展的背景下,YulCode数据集的构建依托于DISL数据集中的Solidity智能合约。通过筛选0.8.10及以上版本的Solidity编译器,将符合条件的合约编译为Yul中间表示形式。针对外部依赖问题,采用统一路径解析和文件整合策略,确保编译过程的顺利进行。最终,数据集涵盖了348,840个Yul合约实例,包括构造函数和运行时逻辑代码,为研究者提供了丰富的低层次智能合约分析素材。
使用方法
该数据集为智能合约编译器研究提供了多角度的应用场景。研究者可利用其开展编译器阶段排序策略实验,评估不同优化路径对字节码性能的影响。同时,丰富的Yul代码样本为神经网络模型训练提供了优质素材,适用于代码生成、漏洞检测等任务。通过关联原始Solidity文件与Yul中间表示,开发者还能进行跨版本一致性测试和逆向工程分析,推动智能合约工具链的创新发展。
背景与挑战
背景概述
YulCode数据集由波兰弗罗茨瓦夫理工大学的Krzysztof Fonał团队于2025年创建,旨在填补智能合约研究中中间表示层的数据空白。作为首个专注于以太坊虚拟机中间语言Yul的公开数据集,它收录了348,840个源自真实部署的Solidity合约的Yul实例,其中包含135,013个独特合约。该数据集为编译器优化、形式化验证和机器学习研究提供了重要基础,特别是解决了Solidity编译器在Yul层优化阶段缺乏基准数据的问题,对提升智能合约的安全性和性能优化具有深远影响。
当前挑战
YulCode数据集面临的核心挑战体现在两个维度:在研究层面,智能合约中间表示的复杂性导致传统程序分析方法难以直接适用,尤其在编译器相位排序优化和低级代码安全验证方面存在显著技术瓶颈;在构建层面,数据集需处理Solidity版本兼容性问题(限定0.8.10及以上版本),并解决合约依赖项解析的难题,包括处理OpenZeppelin等通用库的引用路径问题,以及整合分散的本地依赖文件。这些技术障碍的克服为后续智能合约中间表示研究建立了重要基准。
常用场景
经典使用场景
在智能合约编译与优化的研究领域,YulCode数据集为探索Solidity编译器的中间表示层提供了关键资源。该数据集通过收集大量真实部署于以太坊主网的Yul代码实例,为研究者提供了丰富的实验材料,特别是在编译器优化策略、代码生成效率及低层次智能合约行为分析等方面展现出独特价值。其经典使用场景包括编译器内部机制的深度解析,以及针对Yul代码的自动化优化算法开发。
解决学术问题
YulCode数据集有效填补了智能合约研究中中间表示层数据的空白,解决了传统研究中因缺乏Yul代码样本而难以深入分析的问题。该数据集支持编译器相位排序问题的研究,为优化Solidity编译器的硬编码转换序列提供了实证基础。同时,其多样化的代码样本也为形式化验证、漏洞检测及机器学习模型的训练提供了可靠数据源,显著提升了相关学术研究的深度与广度。
实际应用
在实际应用中,YulCode数据集为区块链开发者与安全工程师提供了重要工具。通过分析数据集中的Yul代码模式,开发者能够优化智能合约的Gas消耗,提升合约执行效率。安全团队则可利用该数据集构建低层级的静态分析工具,检测中间表示层的潜在漏洞。此外,数据集还为逆向工程提供了桥梁,帮助解析已部署合约的未文档化行为或混淆策略。
数据集最近研究
最新研究方向
在区块链与智能合约研究领域,YulCode数据集以其独特的Yul中间表示代码集合,为编译器优化与智能合约安全分析开辟了新的研究路径。当前研究聚焦于利用该数据集探索Solidity编译器的相位排序问题,通过机器学习模型预测最优化的编译路径,以提升智能合约的执行效率与安全性。同时,该数据集支持形式化验证工具的开发,使得在中间代码层进行漏洞检测成为可能,为智能合约的安全部署提供了更为可靠的技术保障。此外,YulCode数据集的应用还延伸至智能合约的反向工程与跨版本一致性测试,为区块链技术的软件工程研究提供了丰富的数据基础。
相关研究论文
  • 1
    Dataset of Yul Contracts to Support Solidity Compiler Research弗罗茨瓦夫科技大学电子、光子学和微系统学院 · 2025年
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

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

二维码
科研交流群

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

数据驱动未来

携手共赢发展

商业合作