論文の概要: Towards Understanding the Bugs in Solidity Compiler
- arxiv url: http://arxiv.org/abs/2407.05981v2
- Date: Tue, 23 Jul 2024 05:47:18 GMT
- ステータス: 処理完了
- システム内更新日: 2024-07-24 22:04:29.208992
- Title: Towards Understanding the Bugs in Solidity Compiler
- Title(参考訳): ソリッドティコンパイラにおけるバグの理解に向けて
- Authors: Haoyang Ma, Wuqi Zhang, Qingchao Shen, Yongqiang Tian, Junjie Chen, Shing-Chi Cheung,
- Abstract要約: 本稿では,533のSolidityコンパイラのバグに関する最初の系統的研究について述べる。
本研究は, その特徴(症状, 根本原因, 分布など)とトリガー試験例について検討した。
次に,Solidityコンパイラファザの限界について検討するため,Solidityコンパイラファザを3つ評価した。
- 参考スコア(独自算出の注目度): 11.193701473232851
- License: http://creativecommons.org/licenses/by-nc-sa/4.0/
- Abstract: Solidity compiler plays a key role in enabling the development of smart contract applications on Ethereum by governing the syntax of a domain-specific language called Solidity and performing compilation and optimization of Solidity code. The correctness of Solidity compiler is critical in fostering transparency, efficiency, and trust in industries reliant on smart contracts. However, like other software systems, Solidity compiler is prone to bugs, which may produce incorrect bytecodes on blockchain platforms, resulting in severe security concerns. As a domain-specific compiler for smart contracts, Solidity compiler differs from other compilers in many perspectives, posing unique challenges to detect its bugs. To understand the bugs in Solidity compiler and benefit future research, in this paper, we present the first systematic study on 533 Solidity compiler bugs. We carefully examined their characteristics (including symptoms, root causes, and distribution), and their triggering test cases. Our study leads to seven bug-revealing takeaways for Solidity compiler. Moreover, to study the limitations of Solidity compiler fuzzers and bring our findings into practical scenarios, we evaluate three Solidity compiler fuzzers on our constructed benchmark. The results show that these fuzzers are inefficient in detecting Solidity compiler bugs. The inefficiency arises from their failure to consider the interesting bug-inducing features, bug-related compilation flags, and test oracles
- Abstract(参考訳): Solidityコンパイラは、Solidityと呼ばれるドメイン固有の言語の構文を管理し、Solidityコードのコンパイルと最適化を実行することによって、Ethereum上のスマートコントラクトアプリケーションの開発を可能にする上で、重要な役割を果たす。
Solidityコンパイラの正しさは、スマートコントラクトに依存する業界における透明性、効率性、信頼を促進する上で重要である。
しかし、他のソフトウェアシステムと同様に、Solidityコンパイラはバグを起こしやすいため、ブロックチェーンプラットフォーム上で不正なバイトコードを生成する可能性があるため、セキュリティ上の深刻な問題が発生する可能性がある。
スマートコントラクトのためのドメイン固有のコンパイラとして、Solidityコンパイラは他のコンパイラと多くの点で異なる。
本稿では,Solidityコンパイラのバグの理解と今後の研究のために,533のSolidityコンパイラのバグに関する最初のシステマティックスタディを示す。
本研究は, 症状, 根本原因, 分布などの特徴とトリガー試験例について慎重に検討した。
我々の研究は、Solidityコンパイラの7つのバグ発見に繋がる。
さらに,Solidityコンパイラファザの限界について検討し,実例に適用するために,構築したベンチマークで3つのSolidityコンパイラファザを評価した。
これらのファジィは、Solidityコンパイラのバグを検出するのに非効率である。
この非効率性は、興味深いバグ誘発機能、バグ関連コンパイルフラグ、テストオラクルを考慮しなかったことから生じる。
関連論文リスト
- KGym: A Platform and Dataset to Benchmark Large Language Models on Linux Kernel Crash Resolution [59.20933707301566]
大規模言語モデル(LLM)は、ますます現実的なソフトウェア工学(SE)タスクにおいて一貫して改善されている。
現実世界のソフトウェアスタックでは、Linuxカーネルのような基本的なシステムソフトウェアの開発にSEの取り組みが費やされています。
このような大規模システムレベルのソフトウェアを開発する際にMLモデルが有用かどうかを評価するため、kGymとkBenchを紹介する。
論文 参考訳(メタデータ) (2024-07-02T21:44:22Z) - Evolutionary Generative Fuzzing for Differential Testing of the Kotlin
Compiler [14.259471945857431]
JetBrainsが開発したKotlinコンパイラのバグ発見における差分テストの有効性について検討する。
そこで我々は,K1コンパイラとK2コンパイラの入力プログラムを生成するブラックボックス生成手法を提案する。
ケーススタディでは,提案手法がK1とK2のバグを効果的に検出している。
論文 参考訳(メタデータ) (2024-01-12T16:01:12Z) - Weak Memory Demands Model-based Compiler Testing [0.0]
コンパイラのバグは、コンパイルされたコンカレントプログラムの動作が、アーキテクチャメモリモデルによって許容されるように、ソースモデルの下でソースプログラムによって許容される振る舞いでない場合に発生する。
プロセッサの実装は、緩やかなアーキテクチャモデルの振る舞いをますます活用している。
論文 参考訳(メタデータ) (2024-01-12T15:50:32Z) - DebugBench: Evaluating Debugging Capability of Large Language Models [80.73121177868357]
DebugBench - LLM(Large Language Models)のベンチマーク。
C++、Java、Pythonの4つの主要なバグカテゴリと18のマイナータイプをカバーする。
ゼロショットシナリオで2つの商用および4つのオープンソースモデルを評価する。
論文 参考訳(メタデータ) (2024-01-09T15:46:38Z) - The Devil Is in the Command Line: Associating the Compiler Flags With
the Binary and Build Metadata [0.0]
コンパイラフラグの望ましくない組み合わせによる欠陥は、非自明なソフトウェアプロジェクトでは一般的である。
コンパイラがどのようにコンパイルされ、ソフトウェアシステムがリンクされたかの問い合わせ可能なデータベースは、早期に欠陥を検出するのに役立ちます。
論文 参考訳(メタデータ) (2023-12-20T22:27:32Z) - Guess & Sketch: Language Model Guided Transpilation [59.02147255276078]
学習されたトランスパイレーションは、手作業による書き直しやエンジニアリングの取り組みに代わるものだ。
確率的ニューラルネットワークモデル(LM)は、入力毎に可塑性出力を生成するが、正確性を保証するコストがかかる。
Guess & Sketch は LM の特徴からアライメントと信頼性情報を抽出し、意味的等価性を解決するためにシンボリック・ソルバに渡す。
論文 参考訳(メタデータ) (2023-09-25T15:42:18Z) - A Survey of Modern Compiler Fuzzing [0.0]
この調査は、コンパイラの欠陥を理解し、対処するための研究成果の概要を提供する。
研究者は、その症状や根本原因など、コンパイラーのバグに関する調査と専門知識をカバーしている。
さらに、テストプログラムの構築やテストオラクルの設計など、ファジング技術を設計する研究者の取り組みについても取り上げている。
論文 参考訳(メタデータ) (2023-06-12T06:03:51Z) - A Static Evaluation of Code Completion by Large Language Models [65.18008807383816]
単純なプログラミング問題に対するモデル生成コードの機能的正当性を評価するために,実行ベースベンチマークが提案されている。
プログラムを実行せずにエラーを検出するlinterのような静的解析ツールは、コード生成モデルを評価するために十分に研究されていない。
抽象構文木を利用して,Pythonのコード補完における静的エラーを定量化する静的評価フレームワークを提案する。
論文 参考訳(メタデータ) (2023-06-05T19:23:34Z) - Weakening Assumptions for Publicly-Verifiable Deletion [79.61363884631021]
我々は,様々な暗号システムに公開検証可能な削除を汎用的に付加する,シンプルなコンパイラを開発した。
コンパイラは片道関数のみを使用します。
論文 参考訳(メタデータ) (2023-04-19T17:51:28Z) - Using Developer Discussions to Guide Fixing Bugs in Software [51.00904399653609]
我々は,タスク実行前に利用可能であり,また自然発生しているバグレポートの議論を,開発者による追加情報の必要性を回避して利用することを提案する。
このような議論から派生したさまざまな自然言語コンテキストがバグ修正に役立ち、オラクルのバグ修正コミットに対応するコミットメッセージの使用よりもパフォーマンスの向上につながることを実証する。
論文 参考訳(メタデータ) (2022-11-11T16:37:33Z) - Configuring Test Generators using Bug Reports: A Case Study of GCC
Compiler and Csmith [2.1016374925364616]
本稿では,バグレポートのコードスニペットを使用して,テスト生成のガイドを行う。
GCCの8つのバージョンでこのアプローチを評価します。
我々は,本手法がGCCの最先端テスト生成技術よりも高いカバレッジを提供し,誤コンパイル障害を引き起こすことを発見した。
論文 参考訳(メタデータ) (2020-12-19T11:25:13Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。