Smart Contract Vulnerability Detection via Symbolic Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Smart contracts, due to their complexity and immutability after deployment, pose challenges in detecting and verifying vulnerabilities, leading to potential property damage and increased costs in manual code audits, which are often inefficient and prone to human error.

Innovation Solution

An apparatus and method that uses symbolic execution and cost functions to automatically detect and validate vulnerable transaction sequences in smart contracts, allowing for quick and accurate identification of vulnerabilities through a processor and storage system, thereby reducing the risk of human mistakes and audit time.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If manual code audit is performed for smart contract vulnerability detection, then detection thoroughness may be improved, but time consumption and cost increase significantly

Engineering Contradiction:
Improvevulnerability detection thoroughnessVSAvoidaudit time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The system performs preliminary symbolic execution and generates verification conditions before final vulnerability confirmation. By pre-computing possible execution paths and identifying potential vulnerability patterns early in the analysis process, the system reduces the time required for thorough vulnerability detection while maintaining high detection accuracy.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an automated verification condition generation mechanism as an intermediary between manual code review and final vulnerability detection. This intermediary system uses symbolic execution to translate smart contract code into verifiable conditions, enabling automated analysis that maintains thoroughness while significantly reducing time consumption compared to purely manual auditing.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If manual code audit is used for vulnerability detection, then detailed analysis may be achieved, but human errors and mistakes frequently occur

Engineering Contradiction:
Improvedetection accuracyVSAvoidaudit reliability
Core Design Contradiction:
Measurement precisionVSReliability

Solution Approach 1:

The system implements self-service through automated symbolic execution and verification condition checking. The smart contract analysis is performed autonomously by the system itself without human intervention in the critical verification steps, eliminating human errors while maintaining high detection accuracy through mathematically rigorous verification methods.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent replaces the mechanical human review process with an automated computational verification system. By substituting human analysts with symbolic execution engines and automated solvers, the system eliminates human mistakes while maintaining or improving detection accuracy through systematic and consistent automated analysis.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

3Reliability

If comprehensive vulnerability checking is performed on smart contract code, then security may be improved, but complexity of analysis increases

Engineering Contradiction:
Improvecontract securityVSAvoidanalysis complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the vulnerability analysis process into distinct phases: symbolic execution, verification condition generation, and satisfiability checking. By dividing the complex analysis into manageable segments, the system achieves comprehensive security verification while reducing the apparent complexity through structured, modular processing steps.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system changes the analysis parameters by transforming smart contract code into symbolic representations and verification conditions. This parameter transformation simplifies the analysis complexity by converting complex control flow and state management into formal logical conditions that can be systematically verified for security properties.

Inventive Principle:
Principle #35Parameter changes

4Productivity

If smart contract code is deployed, then operational functionality is achieved, but modification becomes almost impossible

Engineering Contradiction:
Improvedeployment efficiencyVSAvoidcode modification capability
Core Design Contradiction:
ProductivityVSEase of repair

Solution Approach 1:

The system performs preliminary vulnerability verification through symbolic execution and formal verification before smart contract deployment. By conducting comprehensive security analysis and obtaining verification results in advance, the system ensures that no modifications are needed after deployment, thus maintaining deployment efficiency while preventing future modification requirements.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent applies preliminary anti-action by proactively identifying and eliminating vulnerabilities before deployment through automated verification. By preventing security issues in advance rather than correcting them after deployment, the system maintains the immutability advantage of blockchain while ensuring security through prior verification.

Inventive Principle:
Principle #9Preliminary anti-action

Data Source

PatentUS20220358223A1Apparatus and method for obtaining vulnerable transaction sequence in smart contract
Publication Date: 2022.11.10 KOREA UNIV RES & BUSINESS FOUND
  • US20220358223A1 patent drawing
  • US20220358223A1 patent drawing
  • US20220358223A1 patent drawing

AI summary

Provided is an apparatus and method for obtaining a vulnerable transaction sequence. A vulnerable transaction sequence obtaining apparatus may include a storage configured to transitorily or non-transitorily store at least one program; and a processor configured to receive the at least one program, to select a vulnerable transaction sequence candidate in the at least one program using a cost function, to obtain a verification condition by performing symbolic execution over the transaction sequence candidate, and to check whether the verification condition is satisfiable when the vulnerable transaction sequence is unfound as a verification result about the verification condition, and to determine the vulnerable transaction sequence candidate as the vulnerable transaction sequence when the verification condition is satisfiable.